PluginBench
Skill
Pass
Audit score 90

code-craft

jssblck/agents

Apply established engineering conventions for architecture, typing, error handling, and abstraction decisions.

What is code-craft?

Code-craft guides architectural and design decisions by referencing a repository's established conventions and principles. Use it when making choices about state representation, input validation, error handling, abstraction levels, and module boundaries across TypeScript, Rust, Go, and Python projects.

  • Reference decision frameworks for state representation and domain modeling
  • Apply parse-don't-validate patterns for external input handling
  • Model recoverable errors as values with required validation gates
  • Evaluate abstraction choices against simplicity and performance trade-offs
  • Maintain and document module boundaries and architectural constraints
  • Provide language-specific idiom guidance for TypeScript, Rust, Go, and Python

How to install code-craft

npx skills add https://github.com/jssblck/agents --skill code-craft
Prerequisites
  • Repository must have established conventions or principles documentation
  • Language-specific reference files (TypeScript, Rust, Go, or Python) optional but recommended
Claude Code
Cursor
Windsurf
Cline

How to use code-craft

  1. 1.Identify the design decision category (state modeling, input parsing, error handling, abstraction, or architecture)
  2. 2.Specify the target language: rust, typescript, go, or python
  3. 3.Reference the corresponding principle document for decision guidance
  4. 4.Apply the convention to your specific context, respecting existing repository patterns
  5. 5.Use testing-craft skill for test-design decisions; use project-bootstrap for setup questions

Use cases

Good for
  • Designing type systems to prevent illegal states in domain models
  • Converting unvalidated external input into strongly-typed internal representations
  • Structuring error handling that distinguishes recoverable failures from invariant violations
  • Choosing between abstraction layers when performance or complexity trade-offs arise
  • Documenting and enforcing architectural boundaries in growing codebases
Who it's for
  • Backend engineers designing type-safe systems
  • Full-stack developers working across multiple languages
  • Teams establishing or enforcing architectural conventions
  • Contributors to repositories with documented engineering principles

code-craft FAQ

Does code-craft authorize restructuring or introducing new tooling?

No. Code-craft applies defaults only where a design decision is needed. It does not authorize unrelated restructuring or new tooling beyond what the repository already uses.

When should I use code-craft vs. testing-craft or project-bootstrap?

Use code-craft for architecture, typing, and error-handling decisions. Use testing-craft for test design. Use project-bootstrap for repository setup and initialization.

What if my repository doesn't have documented conventions?

Code-craft works best with established conventions. If your repository lacks them, the skill provides general principles (illegal states, parse-don't-validate, errors as values, simplicity) as defaults.

Does code-craft support languages other than TypeScript, Rust, Go, and Python?

The skill includes language-specific references for those four languages. For others, use the language-agnostic principle documents.

Full instructions (SKILL.md)

Source of truth, from jssblck/agents.


name: code-craft description: Apply Jess's engineering conventions to architecture, boundary typing, error handling, and abstraction decisions. user-invocable: true argument-hint: "[rust|typescript|go|python] [target]"

Code craft

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
Represent states and domain identitiesIllegal states
Decode external input into useful typesParse, don't validate
Model recoverable errors and required gatesErrors as values
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.

Use testing-craft for test-design decisions. 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, and Alexis King's writing on parsing and type safety.