agents/ contained only README.md after the 2026-05-09 migration. The roster information is more naturally located alongside the skills it points into. skills/README.md is now the single index (skill table, pipeline diagram, agent roster, discovery, conventions, how-to-add). CLAUDE.md updated: code-layout entry consolidated, @-reference points to skills/README.md.
AILang Skill System
This directory holds the project-local development skills. A skill
is a SKILL.md plus the agents that skill primarily dispatches.
Skills formalise the AILang development cycle into named, trigger-bound
discipline so the orchestrator (me) cannot accidentally diverge from
established practice without explicitly violating a named rule.
The system was bootstrapped on 2026-05-09. See
docs/specs/2026-05-09-skill-system.md for the design and
docs/JOURNAL.md ("Skill system live") for the rationale.
The five skills
| Skill | Trigger | Output | Mandatory? |
|---|---|---|---|
brainstorm |
New milestone starting | docs/specs/<milestone>.md |
Hard-gate before plan |
plan |
New iteration within an open milestone | docs/plans/<iteration>.md |
Hard-gate before implement |
implement |
Plan exists | Code + tests + per-task commits + JOURNAL entry | Standard iteration path |
audit |
Milestone closing OR baseline drift suspected | Drift report + bench-regression report + rustdoc audit | Mandatory at milestone close |
debug |
Bug encountered (failing test, segfault, wrong stdout) | RED-test commit + cause analysis | Mandatory RED-first for any bug |
Pipeline
[new milestone] [bug observed]
| |
v v
brainstorm -> plan -> implement debug -> implement (mini)
(per iteration loop)
|
[milestone close]
|
v
audit --(clean)--> next milestone
--(drift)--> plan + implement (tidy iteration)
OR ratify in DESIGN.md
Skipping rules are codified in each SKILL.md. Ad-hoc skipping is
forbidden by design.
Agent roster
Agents live next to the skill that primarily dispatches them. There are no orphan agents (an anti-pattern after the 2026-05-09 build-out).
| Agent | Path | Dispatched by skill |
|---|---|---|
ailang-implementer |
implement/agents/ |
implement |
ailang-tester |
implement/agents/ |
implement (E2E coverage) |
ailang-architect |
audit/agents/ |
audit |
ailang-bencher |
audit/agents/ |
audit (regression diagnostics) |
ailang-docwriter |
audit/agents/ |
audit (rustdoc-drift branch) |
ailang-debugger |
debug/agents/ |
debug |
Each agent file has YAML frontmatter (name, description, tools)
plus a system-prompt body. The description field is the one-sentence
summary the orchestrator (or a skill) reads to decide whether to
dispatch.
Subagent-type discovery
Subagent dispatch needs the agent files reachable under
.claude/agents/. The repo provides one symlink per skill (tracked
in git, no setup needed after clone):
.claude/agents/implement -> skills/implement/agents
.claude/agents/audit -> skills/audit/agents
.claude/agents/debug -> skills/debug/agents
Conventions
- No orphan agents. Every agent lives under the skill that
dispatches it. If a recurring need does not fit any skill, raise
the question in
docs/JOURNAL.mdbefore adding the agent. - Agents do not call other agents. The dirigierende skill
composes (e.g.
implementdispatches implementer, then a separate spec-compliance reviewer, then a code-quality reviewer). - Mandatory reading order stays in the agent file. Skills provide task-specific context (plan extract, bug symptom, drift item) on top of the agent's standing reading list.
- Skill and agent definitions are reviewable code. Edits go through git. Commit messages name why the role shifted.
Adding a new skill
- Decide what triggers it and what it produces.
- Write
skills/<name>/SKILL.mdwith frontmatter (name,descriptionstarting "Use when…"). Keep the description trigger-focused; never a workflow summary. - If the skill dispatches subagents, add them under
skills/<name>/agents/and create.claude/agents/<name>as a symlink to that directory. - Update this file (skill table + agent roster).
- If the skill replaces or supersedes a CLAUDE.md section, migrate that section: leave a one-line pointer in CLAUDE.md.
Adding a new agent
- Decide which skill primarily dispatches it.
- Add the
.mdfile under that skill'sagents/directory. - Update the agent roster above and the dispatching skill's "Cross-references" section.
- If the agent is genuinely standalone (no skill dispatches it),
raise the question in
docs/JOURNAL.mdfirst.