← Files AkinatorARCHIVED FILE
docs/skills.md
7.64 KB · Oct 3, 2026 · 06:33 UTC
# The skill Akinator is **one skill and one command** - on every platform. | Platform | The one entry | How it is always on | |---|---|---| | Claude Code | `/akinator:everything` | the plugin's SessionStart hook | | Codex | `$akinator` | a marked block in `AGENTS.md` | | Cursor | `/akinator` | an always-applied rule | You normally type none of them: the contract applies to every prompt. The explicit form is for when you want to say "the full pass" out loud. ## The skill | Skill | Use when | |---|---| | [everything](../skills/everything/SKILL.md) | Every prompt in a repository. For anything that can change the repository - a feature, a fix, a refactor, docs, onboarding, an audit, a release - it runs the complete pass so the code and the knowledge around it change together. It is also the one command | Canonical source: `skills/everything/`. It holds `SKILL.md`, its station `references/` and its host-repository tools in `scripts/`. The Codex and Cursor copy in `.agents/skills/akinator/` is generated from it by `scripts/build_codex_pack.py`. **Why one skill, not twenty-one.** Claude Code lists every skill in its `/` menu, Codex has no way to hide a skill from its `$` picker, and Cursor lists every folder in `.agents/skills`. Twenty-one skills meant twenty-one entries on every platform, for a plugin whose owner asked for exactly one. The stations became reference files inside the one skill - loaded on demand, never listed. See `docs/adr/0009-one-skill-one-command-one-installer.md`. ## Its station references Each is opened when the work reaches that station. They carry the full procedure of what used to be separate skills, and keep their old names as **station ids** - which is how the rest of Akinator refers to them. ### The pass | Reference | Load when | |---|---| | [procedure](../skills/everything/references/procedure.md) | Running the complete pass: the five phases, their exit conditions and every tool command | | [akinator](../skills/everything/references/akinator.md) | The full creed, the twelve-station loop, the knowledge taxonomy (where each kind of fact lives) and the non-negotiables | ### The loop's stations | Station | Reference | Load when | |---|---|---| | 1 ASK | [akinator-intake](../skills/everything/references/akinator-intake.md) | Before planning substantive work, at an ambiguity gate, or when implementation forces a product decision no doc answers | | 3 AUDIT | [akinator-audit](../skills/everything/references/akinator-audit.md) | Something is claimed to already exist. Returns done / partial / missing, and catches present-but-not-wired | | 4 PLAN | [akinator-plan](../skills/everything/references/akinator-plan.md) | Before implementing anything multi-step. Declares the knowledge delta by path, per batch | | 6 DOCUMENT | [akinator-document-change](../skills/everything/references/akinator-document-change.md) | In the same batch as the code. Routes the why, the when-not-to, the business meaning and the operational consequence to their homes | | 7 SKILLIFY | [akinator-skillify](../skills/everything/references/akinator-skillify.md) | A procedure was worked out that will happen again - the host repository's own skill, written the first time | | 8 RULE | [akinator-rule-forge](../skills/everything/references/akinator-rule-forge.md) | A constraint was established. Turns it into a numbered rule with a real enforcement mechanism | | 9 CONTEXTIFY | [akinator-contextify](../skills/everything/references/akinator-contextify.md) | A structural fact changed. Updates the map and builds the extractor so it regenerates instead of drifting | | 10 MEMOIZE | [akinator-memoize](../skills/everything/references/akinator-memoize.md) | A durable fact, preference, surprise or dead end is worth carrying forward | | 11 INDEX | [akinator-index-sync](../skills/everything/references/akinator-index-sync.md) | An artifact was created, renamed, moved or deleted. Unindexed means nonexistent | | 11 SYNC | [akinator-router-sync](../skills/everything/references/akinator-router-sync.md) | What a router says has changed. All routers update together or truth forks | | 12 VERIFY | [akinator-gate-economy](../skills/everything/references/akinator-gate-economy.md) | Before any lint, typecheck, test or build, and before any commit during multi-step work | | ALWAYS | [akinator-wiki](../skills/everything/references/akinator-wiki.md) | After every prompt that changes or decides anything - even with no code change. The repository is its own wiki; fans the update out to every home it affects (product, business, market, requirements, drift, architecture, libraries, stack, infra, testing, UX, project, decisions, changes, glossary, onboarding), in the same batch | | 1 ASK / 4 PLAN | [akinator-decide](../skills/everything/references/akinator-decide.md) | A choice must be made - forced by implementation, asked by the owner, or a prompt contradicts a recorded decision. Classifies decide-and-record versus recommend-and-ask, builds costed options, recommends one, and records the outcome | ### When the work touches their domain | Reference | Load when | |---|---| | [akinator-adr](../skills/everything/references/akinator-adr.md) | A decision was made between real alternatives that will be questioned later | | [akinator-business-map](../skills/everything/references/akinator-business-map.md) | Money, plans, quotas, entitlements, refunds - anything a customer is charged or granted | | [akinator-product-map](../skills/everything/references/akinator-product-map.md) | Building, changing or removing a user-facing feature | | [akinator-ops-map](../skills/everything/references/akinator-ops-map.md) | A change alters how the system is deployed, migrated, restarted, recovered or rolled back | | [akinator-onboard](../skills/everything/references/akinator-onboard.md) | The repository has no knowledge layer yet. Detects what exists and adopts it | | [akinator-coverage](../skills/everything/references/akinator-coverage.md) | Auditing whether a knowledge layer is complete, reachable and true | | [akinator-anti-gaming](../skills/everything/references/akinator-anti-gaming.md) | Reviewing whether documentation work is real, or when tempted to weaken a failing check | | [akinator-resource-guard](../skills/everything/references/akinator-resource-guard.md) | Before anything heavy, and at the end of every task | ### Templates these stations write `akinator-wiki` and `akinator-decide` write against three templates added for the living wiki, each with a filled example in `templates/examples/`: [library-page.md](../templates/library-page.md) (generated facts plus curated why/how/pitfalls/upgrade - written by `extract_libraries.py`, curated by hand), [requirement.md](../templates/requirement.md) (one requirements-register entry: current, changed, missing or dropped, with its source and append-only history), and [business-drift.md](../templates/business-drift.md) (one change of direction: before, after, why, who decided, impact). ## Changing the skill 1. Edit `skills/everything/` - it is canonical. A new station is a new file in `references/`, linked from `SKILL.md`, declared in `scripts/extract_components.py`. Never a new skill: every skill is another menu entry on every platform. 2. Keep `SKILL.md` under 8,000 bytes. Codex truncates an explicitly invoked skill there, so detail belongs in `references/`. 3. Regenerate the portable pack **in the same batch**: `python scripts/build_codex_pack.py --write`. 4. Update this index and every router. CI fails on drift between `skills/everything/` and `.agents/skills/akinator/` - see `rules/07-codex-pack-is-generated.md`. The structural tests fail if a second skill, a command file, an unlinked reference or an oversized `SKILL.md` appears - see `tests/test_plugin_structure.py`.
SHA-256: 052c06be06ad16cebb65e6d3e06fc854b80104db19565eb5a8801cc729eb37d6