Skip to content
AI CraftsmanSUPERPOWERS

Packs

One pack per stack. The same gate behind all of them.

Seven ship with the plugin, and the engine holds no list of languages: a pack declares its own. Write yours against the same manifest.

Built-in Packs

Symfony

DDD entities, CQRS commands, PHPStan, Doctrine repositories. Ships backend-craftsman, api-craftsman and symfony-reviewer

PHPDDDCQRS

React

TypeScript strict, TanStack Query, shadcn/ui, branded types. Ships frontend-craftsman and react-reviewer

TypeScriptReact 19TDD

AI/ML

RAG pipelines, embeddings, LLM integration, MLOps. Ships the ai-engineer agent.

PythonRAGMLOps

Python

Type hints and lint rules enforced through the same gate as PHP and TypeScript

PythonType hintsRuff

Go

Error handling, context propagation, layer boundaries, and a Go structure scanner for the ratchet

GoLayersRatchet

Rust

Error handling, unsafe discipline, layer boundaries, clippy at Level 2

RustClippyRatchet

Bash

Shell rule coverage for the scripts your pipeline actually runs

BashShellCheckCI
pack.yml
# pack.yml
name: my-company
languages:
  - id: php
    extensions: [php]
    validators: [hooks/company-validator.sh]
    protected_configs: [phpstan.neon]
    test_commands: [vendor/bin/phpunit]

rules:
  owned:
    - id: CO001
      group: Architecture
      text: "no manual instantiation of a Repository"
      default_severity: block

Get Started

Up and Running in 3 Commands

No boilerplate. No YAML hell. No devops. Just install and craft.

1

Install on your agent

$/plugin install craftsman@ai-craftsman-superpowers

Claude Code shown here. Codex installs it with codex plugin add, Grok with bin/craftsman-grok-install, Hermes with hermes plugins enable. Same engine on all four, no API key for the core.

2

Configure

$/craftsman:setup --quick

Setup reads your repository and loads the matching packs (Symfony, React, Python, Go, Rust, Bash, AI/ML). Without --quick it asks at most four plain-language questions.

3

Code

$every write is judged before it lands

From now on, every file your agent writes through its write tool passes the gate first. Layer and strict_types violations are refused before the file exists, and the same rules fail your pipeline in CI.

💡 Pro tip: Run /craftsman:metrics after your first session to see exactly how many violations were caught.

Live Demo

See the Forge in Action

Write bad code. Watch the hook catch it. See it fixed automatically.

The Difference

What Changes When You Add Craftsman

FeatureWithout Craftsman⚡ With Craftsman
Code consistency across sessions
Varies by mood
Iron-law enforced
Architecture validation
Hope for the best
Pre-write quality gate
Cognitive bias detection
Non-existent
Real-time, session-aware
CI / hooks parity
"Works on my machine"
Same rules everywhere
Learning from corrections
Resets every session
SQLite feedback loop
Cost control
Pay for bad code generation
Core gate needs no API key; model tiering on Claude Code
Commit hygiene
Hooks skipped with --no-verify
Hook bypasses refused (from 4.14.0)

Free & open source

No seats. No keys. Apache 2.0.

The core gate runs entirely on your machine and costs nothing. Agent hooks are optional and cost cents per session. Two commands, one restart, and the next write is checked.

Install it now