typescript-discipline
Design or review TypeScript domain types, parsing boundaries, and type-safety trade-offs.
Skill by draht-dev
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/draht-dev-typescript-discipline
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/typescript-discipline
What's inside
- Skill name
typescript-discipline- Description
- Design or review TypeScript domain types, parsing boundaries, and type-safety trade-offs. Use when the task concerns type modeling, unsafe assertions, or exhaustive handling.
- License
- MIT
- Instructions
- 17 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- patterns.md · references/
SKILL.md (first lines)
# TypeScript Discipline Use types to express the cases callers must handle, with the least complexity that keeps operations correct. - Model mutually exclusive states with discriminated unions. Enforce exhaustive handling so adding a variant reveals missing cases. - Parse external data from `unknown` at the boundary into a named type. Keep business logic typed and avoid repeating already-established validation inside it. - Prefer constructive representations when they remove invalid combinations. A non-empty tuple proves a head exists; it does not prove an arbitrary numeric index is in bounds. - Strengthen a type where an operation requires it. An empty list is valid input for a sum; a head operation must require non-empty input or return an optional result. - Brand primitives when mixing their meanings is a plausible defect. Match the project's brand convention and validate at construction. - Avoid `any`, unchecked `as`, and non-null assertions. Narrow, validate, or revise the model; isolate and explain an assertion that the compiler cannot express. - Derive shapes from authoritative schemas and existing types. Use `satisfies` to check a value against a type without a type assertion. - Type predicates must check their full claim. A named guard is not evidence that its implementation is sound. - Use named object arguments when they prevent confusion; follow existing APIs and consider allocation-sensitive paths. See [boundary and totality patterns](./references/patterns.md) for the cases that commonly need care. Follow repository rules on imports and type definitions; consult installed dependency declarations rather than guessing external APIs.
From draht-dev/draht, MIT.
More from draht-dev/draht
- 0.624score
explainers
draht-dev
Choose prose, a Mermaid diagram, or a self-contained HTML explainer for agent output, built only from cited evidence.
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
hexagon-animation
draht-dev
Generates a randomized 3D hexagon animation as a single self-contained HTML file - an isometric field of hexagonal prisms pulsing with seeded noise-driven…
SkillAFreshness: A★ 7Claude Code +9 - 0.621score
unslop
draht-dev
Edit requested prose for clarity, specificity, and the reader's register, including simplified technical instructions when requested.
SkillAFreshness: A★ 7Claude Code +9 - 0.621score
epistemics
draht-dev
Calibrate historical or uncertain investigation findings, distinguish evidence from inference, and report source coverage and gaps.
SkillAFreshness: A★ 7Claude Code +9 - 0.616score
atomic-reasoning
draht-dev
Decompose complex work into coherent, independently verifiable units when planning dependencies, parallel implementation, or atomic commits.
SkillAFreshness: A★ 7Claude Code +9 - 0.613score
multiline-description
draht-dev
This is a multiline description.
SkillAFreshness: A★ 7Claude Code +9 - 0.610score
disable-model-invocation
draht-dev
A skill that cannot be invoked by the model.
SkillAFreshness: A★ 7Claude Code +9 - 0.610score
dynamic-resources
draht-dev
Example skill loaded from resources_discover
SkillAFreshness: A★ 7Claude Code +9 - 0.610score
child-skill
draht-dev
A nested skill in a subdirectory.
SkillAFreshness: A★ 7Claude Code +9 - 0.607score
calendar
draht-dev
First calendar skill.
SkillAFreshness: A★ 7Claude Code +9 - 0.607score
calendar
draht-dev
Second calendar skill.
SkillAFreshness: A★ 7Claude Code +9 - 0.606score
different-name
draht-dev
A skill with a name that doesn't match the directory.
SkillAFreshness: A★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 0
- Open issues
- 2
- Last commit (this folder)
- Oct 21, 2026 (7 days ago)
- Last release
- Oct 24, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/draht-dev/draht
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from draht-dev
- 0.624score
hexagon-animation
draht-dev
Generates a randomized 3D hexagon animation as a single self-contained HTML file - an isometric field of hexagonal prisms pulsing with seeded noise-driven…
SkillAFreshness: A★ 7Claude Code +9 - 0.624score
explainers
draht-dev
Choose prose, a Mermaid diagram, or a self-contained HTML explainer for agent output, built only from cited evidence.
SkillAFreshness: A★ 7Claude Code +9 - 0.621score
epistemics
draht-dev
Calibrate historical or uncertain investigation findings, distinguish evidence from inference, and report source coverage and gaps.
SkillAFreshness: A★ 7Claude Code +9 - 0.621score
unslop
draht-dev
Edit requested prose for clarity, specificity, and the reader's register, including simplified technical instructions when requested.
SkillAFreshness: A★ 7Claude Code +9 - 0.616score
atomic-reasoning
draht-dev
Decompose complex work into coherent, independently verifiable units when planning dependencies, parallel implementation, or atomic commits.
SkillAFreshness: A★ 7Claude Code +9 - 0.613score
multiline-description
draht-dev
This is a multiline description.
SkillAFreshness: A★ 7Claude Code +9
Cite this page
typescript-discipline skill. Agent Mart. https://agentmart.dev/skills/draht-dev-typescript-discipline (last updated 2026-10-24)