mcpField
C
code-craft

code-craft

github.com/jssblckDevelopment01.7k installsUpdated 3w ago
Repository

About code-craft

code-craft is a software development skill for choosing how to establish invariants, from types and proofs to tests. It guides developers through type design, error handling, architecture boundaries, and verification while respecting repository conventions.

Key features

  1. 01Choose invariant checks by proof strength
  2. 02Model states, workflows, and domain identities
  3. 03Parse external input into useful types
  4. 04Handle dependencies, failures, and lifetimes
  5. 05Select test levels by risk

Use cases

  1. 01Choose verification for a code change
  2. 02Design state and error representations
  3. 03Implement features within repository conventions

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/jssblck/agents --skill code-craft

After installing, type/code-craftin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

agents/
openai.yaml
languages/
go.md
python.md
rust.md
typescript.md
principles/
architecture-docs.md
effects.md
errors-as-values.md
illegal-states.md
parse-dont-validate.md
proof-ladder.md
proof-parameters.md
simplicity.md

Details

From the project README

Code craft

Prove what the types can, then test only what they cannot. Every invariant has one owner: the strongest rung of the proof ladder that can actually prove it. In order: types and linters, effects, proofs, database constraints, unit tests, integration tests, end-to-end tests.

Use the repository's current instructions and established conventions. Apply these defaults where the requested change needs a design decision; they do not authorize unrelated restructuring or new tooling.

Read the reference for the decision in scope:

DecisionReference
Decide which rung owns an invariantProof ladder
Represent states, workflows, and domain identitiesIllegal states
Decode external input into useful typesParse, don't validate
Type dependencies, failures, and resource lifetimesEffects
Model recoverable errors and required gatesErrors as values
Guard a sensitive preconditionProof parameters
Choose an abstraction or investigate performanceSimplicity
Maintain module boundaries and their documentationArchitecture docs

Read a language reference only when its idioms, concurrency, or tooling details matter: TypeScript, Rust, Go, or Python.

For new TypeScript code and the full project template, Jess's stack is Effect, Effect Schema or Zod, xstate, and gdp-ts. For new Rust servers it is tokio, axum, snafu, aerosol, and sqlx. In an existing repository, use its equivalents; adding any of these is an architecture change to ask about first.

Use database-craft for schemas, constraints, queries, and jobs, and testing-craft for the test rungs. Repository setup belongs to project-bootstrap when that setup is requested. Follow the project's required verification; reviews do not automatically require a full test suite.

Adapted from leonardomso/rust-skills (MIT), Matklad's Rust100k series, Alexis King's writing on parsing and type safety, and Matt Noonan's Ghosts of Departed Proofs.

Comments

Markdown supported