Seventh skill via the boss pattern. brainstorm is the spec-generation hard-gate; grounding-check is its Step-7.5 read-only assumption-ratification reviewer. Vocabulary substitutions: - AILang → "this project" - milestone → cycle - Boss → orchestrator - ailang-grounding-check → grounding-check - "the AILang program" / ".ail Form-A" → "the user-facing program in the project's canonical authoring/consumer form" - "Brummel (orchestrator) + Claude" → "orchestrator + Claude" AILang-specific bits dropped or generalized: - `docs/specs/<milestone>.md` / `docs/plans/` → `paths.spec_dir` / `paths.plan_dir` - AILang feature-acceptance criterion's three specific clauses (LLM-author-reaches-for-it, measurable correctness/redundancy improvement, no-reintroduction-of-core-constraint-bug) → "the criterion declared in the project's CLAUDE.md", with the three typical-shape clauses retained as illustrative - `design/contracts/0004-feature-acceptance.md` cross-ref → pointer to project CLAUDE.md - "AILang's own thesis is structured concrete form over prose description" → "concrete code first, prose second" (the discipline survives without the project-thesis hook) - The 2026-05-11 incident date → generic "recurring failure mode" framing (the discipline survives without the date) - `tea issues create --repo Brummel/AILang` → "the project's issue-tracker create command (typically tea/gh)" with both examples shown - `cargo test --list -p <crate>` / `cargo check` → "the project's test-list / type-check command" with Rust example - `crates/*/tests/`, `crates/*/src/**/tests.rs`, `examples/` → derived from `paths.code_roots` and the project's examples / fixtures convention - The `Spec-23 / prelude free-fn ne / typeclass elaboration` worked example → generic "spec section that proposes adding to a table or extending a pass without stating that the existing entries / passes cover the new shape" - AILang skill-system index reference (`skills/README.md`) → `../../README.md` (plugin's top-level) - "Form-A / .ail / monomorphised compare__T symbol" examples → generic "function names, type names, schema fields, pass names" example Universal substance preserved verbatim: - The hard-gate (3 lines) — NO IMPLEMENTATION UNTIL SPEC APPROVED - Nine-step process (explore context → clarify Q&A → propose 2-3 approaches → apply feature-acceptance → present in sections → write spec → self-review → grounding-check → user-review-gate → hand off) - "Concrete code first, prose second" discipline (the universally-applicable form of what was the AILang-thesis hook) - "The criterion is unjudgeable without concrete code" rule (universal good practice; project's CLAUDE.md picks the specific criterion) - Spec structure (Goal / Architecture / Concrete code shapes / Components / Data flow / Error handling / Testing strategy / Acceptance criteria) - Step-7 self-review checklist (5 items) - Step-7.5 grounding-check dispatch + PASS/BLOCK/INFRA_ERROR three-way classification + failure-mode procedure + re- dispatch on post-PASS edit rule - All 8 Common Rationalisations rows - All 9 Red Flags bullets - grounding-check's six-step process incl. assumption extraction, search design, ratification classification, aggregate status computation - grounding-check's Iron Law (5 lines), output format (exact layout preserved), 6 Common Rationalisations rows, 8 Red Flags bullets The brainstorm is the largest skill in the migration (366 → 355 lines after substitutions). Calibrated discipline kept intact per memory feedback_dont_strip_repeated_discipline.md: "concrete code first" + grounding-check hard-gate + "re- dispatch on post-PASS edit" are the load-bearing rules; all survive verbatim except for project-specific identifiers.
skills
A self-contained set of development-cycle skills and agents for
Claude Code. Originally distilled from the AILang project's
in-tree skills/ directory and generalised so it can carry the
same discipline across any project.
The plugin is mechanics: pipeline shape, hard-gates, TDD,
RED-first bug fixing, agent-template, working-tree-as-quarantine,
status protocol. It does not know your project's paths,
build commands, vocabulary, or domain-specific contracts. Those
live in a small per-project profile file
(.claude/dev-cycle-profile.yml) plus the project's CLAUDE.md.
What's in the box
Eight skills, each with the agents it primarily dispatches:
| Skill | Trigger | Output | Mandatory? |
|---|---|---|---|
brainstorm |
New cycle starting | spec under the configured spec dir | Hard-gate before plan |
planner |
New iteration within an open cycle | plan under the configured plan dir | Hard-gate before implement |
implement |
Plan exists | code + tests, uncommitted in working tree | Standard iteration path |
audit |
Cycle closing OR baseline drift suspected | drift report + regression report | Mandatory at cycle close |
debug |
Bug observed | RED test in working tree + cause analysis | Mandatory RED-first for any bug |
fieldtest |
Orchestrator-dispatched post-audit, surface-touching cycle | example fixtures + friction spec | Optional |
docwriter |
API surface stable across N cycles | rustdoc / docstring sweep | Optional |
boss |
User types /boss |
autonomous-orchestrator session — dispatches the other skills until done-state or bounce-back | User-invoked, never auto-dispatched |
Vocabulary is configurable. AILang calls a cycle a milestone and a sub-cycle an iteration; your project may call them release and sprint, or epic and story, or whatever fits.
The two-layer split
This repo (the plugin) carries everything that is universal:
- Pipeline form:
design → plan → execute → review → close - Hard-gates between phases
- TDD as an independent inner-loop discipline
- RED-first bug fixes
- Agent template (frontmatter / Iron Law / standing reading / process / status / output / rationalisations / red flags)
- Status protocol:
DONE / DONE_WITH_CONCERNS / PARTIAL / BLOCKED / NEEDS_CONTEXT - Working-tree-as-quarantine and only-orchestrator-commits
- main HEAD sacrosanct
- No nested subagent dispatch (Claude Code platform constraint)
- No orphan agents
Your project carries a small profile that fills the slots:
- Paths: spec dir, plan dir, design ledger, code roots, bench dir
- Commands: build, test, lint, regression scripts
- Vocabulary: cycle name, sub-cycle name, ledger-entry name
- Naming: counter prefix vs date prefix vs flat, slug shape
- Standing reading list: concrete files, per role
- Git: issue tracker kind, close marker, main-protection policy
- Pipeline customisations: which phases are mandatory, when optional ones fire
See docs/profile-schema.md for the full schema and
templates/project-profile.yml for a copy-and-fill starting point.
Install
See INSTALL.md. In short: clone, run install.sh, then drop
a dev-cycle-profile.yml into each project that should use the
plugin.
Status
Migration from AILang's in-tree ~/dev/ailang/skills/ is in
progress. The boss skill is the landed pilot; the remaining
seven skills follow. See docs/migration.md for the per-skill
and per-agent migration checklists and the expected final
layout.