akili-specs 2.7.1 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/.claude/commands/akili-archive.md +2 -0
  2. package/.claude/commands/akili-audit.md +4 -0
  3. package/.claude/commands/akili-constitution.md +104 -14
  4. package/.claude/commands/akili-execute.md +5 -3
  5. package/.claude/commands/akili-propose.md +2 -0
  6. package/.claude/commands/akili-quick.md +2 -0
  7. package/.claude/commands/akili-seo.md +2 -0
  8. package/.claude/commands/akili-specify.md +7 -2
  9. package/.claude/commands/akili-test.md +4 -2
  10. package/.claude/commands/akili-validate.md +2 -0
  11. package/.claude/skills/angular-developer/SKILL.md +4 -0
  12. package/.claude/skills/api-design-principles/SKILL.md +8 -0
  13. package/.claude/skills/aws-serverless/SKILL.md +8 -1
  14. package/.claude/skills/brainstorming/SKILL.md +25 -1
  15. package/.claude/skills/cognitive-doc-design/SKILL.md +14 -0
  16. package/.claude/skills/error-handling-patterns/SKILL.md +8 -0
  17. package/.claude/skills/frontend-design/SKILL.md +8 -1
  18. package/.claude/skills/gsap-animation/SKILL.md +182 -0
  19. package/.claude/skills/gsap-animation/references/frameworks.md +137 -0
  20. package/.claude/skills/{gsap-performance/SKILL.md → gsap-animation/references/performance.md} +10 -20
  21. package/.claude/skills/gsap-animation/references/plugins.md +390 -0
  22. package/.claude/skills/gsap-animation/references/react.md +122 -0
  23. package/.claude/skills/gsap-animation/references/scrolltrigger.md +255 -0
  24. package/.claude/skills/{gsap-timeline/SKILL.md → gsap-animation/references/timeline.md} +7 -19
  25. package/.claude/skills/gsap-animation/references/utils.md +254 -0
  26. package/.claude/skills/judgment-day/SKILL.md +19 -1
  27. package/.claude/skills/kaizen/SKILL.md +1 -0
  28. package/.claude/skills/nestjs-expert/SKILL.md +8 -0
  29. package/.claude/skills/product-manager-toolkit/SKILL.md +7 -1
  30. package/.claude/skills/react-doctor/SKILL.md +6 -0
  31. package/.claude/skills/seo-audit/SKILL.md +18 -9
  32. package/.claude/skills/shadcn-ui/SKILL.md +6 -0
  33. package/.claude/skills/stitch-design/SKILL.md +7 -0
  34. package/.claude/skills/systematic-debugging/SKILL.md +21 -0
  35. package/.claude/skills/tailwind-design-system/SKILL.md +8 -0
  36. package/.claude/skills/ui-ux-pro-max/SKILL.md +21 -0
  37. package/.claude/skills/vercel-react-best-practices/SKILL.md +3 -0
  38. package/.claude/templates/leader.md +1 -1
  39. package/CHANGELOG.md +31 -0
  40. package/README.md +3 -8
  41. package/bin/akili.js +40 -0
  42. package/docs/cli.md +1 -1
  43. package/docs/commands/akili-constitution.md +17 -13
  44. package/docs/flow.md +39 -5
  45. package/docs/model-routing.md +92 -24
  46. package/docs/skills/README.md +34 -31
  47. package/docs/skills/brainstorming.md +2 -0
  48. package/docs/skills/cognitive-doc-design.md +2 -0
  49. package/docs/skills/governance.md +77 -0
  50. package/docs/skills/gsap-animation.md +29 -0
  51. package/docs/skills/judgment-day.md +2 -0
  52. package/docs/skills/product-manager-toolkit.md +1 -1
  53. package/docs/skills/seo-audit.md +2 -0
  54. package/docs/skills/systematic-debugging.md +2 -0
  55. package/docs/skills/ui-ux-pro-max.md +2 -0
  56. package/package.json +1 -1
  57. package/.claude/skills/gsap-core/SKILL.md +0 -254
  58. package/.claude/skills/gsap-frameworks/SKILL.md +0 -153
  59. package/.claude/skills/gsap-plugins/SKILL.md +0 -426
  60. package/.claude/skills/gsap-react/SKILL.md +0 -136
  61. package/.claude/skills/gsap-scrolltrigger/SKILL.md +0 -296
  62. package/.claude/skills/gsap-utils/SKILL.md +0 -284
  63. package/docs/skills/gsap-core.md +0 -21
  64. package/docs/skills/gsap-frameworks.md +0 -20
  65. package/docs/skills/gsap-performance.md +0 -21
  66. package/docs/skills/gsap-plugins.md +0 -20
  67. package/docs/skills/gsap-react.md +0 -22
  68. package/docs/skills/gsap-scrolltrigger.md +0 -21
  69. package/docs/skills/gsap-timeline.md +0 -20
  70. package/docs/skills/gsap-utils.md +0 -21
@@ -1,7 +1,13 @@
1
1
  ---
2
2
  name: seo-audit
3
- description: When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help with SEO" — start with an audit. For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema. For AI search optimization, see ai-seo.
3
+ description: When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help with SEO" — start with an audit. In AKILI-SPECS projects, /akili-seo loads this skill in its audit phase.
4
+ license: MIT
4
5
  metadata:
6
+ author: Corey Haines (coreyhaines31)
7
+ source: https://github.com/coreyhaines31/marketingskills
8
+ adapted-by: "Juan Carlos Cadavid — jcadavid.com"
9
+ adapted-for: "AKILI-SPECS"
10
+ binding: core
5
11
  version: 2.0.0
6
12
  ---
7
13
 
@@ -453,7 +459,6 @@ Same format as above
453
459
 
454
460
  - [AI Writing Detection](references/ai-writing-detection.md): Common AI writing patterns to avoid (em dashes, overused phrases, filler words)
455
461
  - [International SEO](references/international-seo.md): Evidence and sources for hreflang, canonical + i18n, sitemaps, URL structure, and content quality across locales
456
- - For AI search optimization (AEO, GEO, LLMO, AI Overviews), see the **ai-seo** skill
457
462
 
458
463
  ---
459
464
 
@@ -487,11 +492,15 @@ Same format as above
487
492
 
488
493
  ---
489
494
 
490
- ## Related Skills
495
+ ## AKILI-SPECS Integration
491
496
 
492
- - **ai-seo**: For optimizing content for AI search engines (AEO, GEO, LLMO)
493
- - **programmatic-seo**: For building SEO pages at scale
494
- - **site-architecture**: For page hierarchy, navigation design, and URL structure
495
- - **schema**: For implementing structured data
496
- - **cro**: For optimizing pages for conversion (not just ranking)
497
- - **analytics**: For measuring SEO performance
497
+ | AKILI moment | How to use this skill |
498
+ |---|---|
499
+ | `/akili-seo` audit phase | Required skill — load before starting and apply throughout; the Audit Report Structure above is the finding format |
500
+ | `/akili-validate` | When validating pages with search-visibility requirements, apply the On-Page checklist to the affected routes |
501
+
502
+ Adaptation rules:
503
+
504
+ - Findings land in the AKILI report artifacts (`/akili-seo` output), using the Issue / Impact / Evidence / Fix / Priority shape.
505
+ - Fixes that exceed the trivial gate are routed through `/akili-propose` — never applied silently during the audit.
506
+ - Sibling skills mentioned by upstream versions of this skill (programmatic-seo, schema, ai-seo, cro, analytics) are **not packaged** with AKILI-SPECS; when a finding needs them, note the gap in the report instead of loading them.
@@ -2,6 +2,12 @@
2
2
  name: shadcn-ui
3
3
  description: Provides complete shadcn/ui component library patterns including installation, configuration, and implementation of accessible React components. Use when setting up shadcn/ui, installing components, building forms with React Hook Form and Zod, customizing themes with Tailwind CSS, or implementing UI patterns like buttons, dialogs, dropdowns, tables, and complex form layouts.
4
4
  allowed-tools: Read, Write, Bash, Edit, Glob
5
+ metadata:
6
+ author: community (origin unverified)
7
+ curated-by: "Juan Carlos Cadavid — jcadavid.com"
8
+ adapted-for: "AKILI-SPECS"
9
+ binding: stack
10
+ version: "1.0"
5
11
  ---
6
12
 
7
13
  # shadcn/ui Component Patterns
@@ -5,6 +5,13 @@ allowed-tools:
5
5
  - "StitchMCP"
6
6
  - "Read"
7
7
  - "Write"
8
+ metadata:
9
+ author: Google (google-labs-code)
10
+ source: https://github.com/google-labs-code/stitch-skills
11
+ adapted-by: "Juan Carlos Cadavid — jcadavid.com"
12
+ adapted-for: "AKILI-SPECS"
13
+ binding: conditional
14
+ version: "1.0"
8
15
  ---
9
16
 
10
17
  # Stitch Design Expert
@@ -1,6 +1,14 @@
1
1
  ---
2
2
  name: systematic-debugging
3
3
  description: Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
4
+ license: MIT
5
+ metadata:
6
+ author: Jesse Vincent (obra)
7
+ source: https://github.com/obra/superpowers
8
+ adapted-by: "Juan Carlos Cadavid — jcadavid.com"
9
+ adapted-for: "AKILI-SPECS"
10
+ binding: core
11
+ version: "1.0"
4
12
  ---
5
13
 
6
14
  # Systematic Debugging
@@ -287,6 +295,19 @@ These techniques are part of systematic debugging and available in this director
287
295
  - **superpowers:test-driven-development** - For creating failing test case (Phase 4, Step 1)
288
296
  - **superpowers:verification-before-completion** - Verify fix worked before claiming success
289
297
 
298
+ These `superpowers:*` skills are not packaged with AKILI-SPECS. In AKILI projects, their role is covered by the methodology itself: the regression test comes from `/akili-specify` Bug Mode (red before the fix, green after), and verification comes from each task's verification command plus the Reviewer/Tester gates.
299
+
300
+ ## AKILI-SPECS Integration
301
+
302
+ | AKILI moment | How to use this skill |
303
+ |---|---|
304
+ | `/akili-propose` Bug Track | Confirm reproduction + root cause and record them in the proposal's **Bug Diagnosis** section — never propose a fix for a guessed cause |
305
+ | `/akili-specify` Bug Mode | If no proposal exists, run root-cause investigation before writing the fix plan |
306
+ | `/akili-test` | When a Tester reports `PRODUCT_BUG`, apply Phases 1–3 to characterize the defect before any fix is planned; the test stays red |
307
+ | `/akili-validate` / `/akili-seo` | Investigate mismatches and failures with this process before recommending corrections |
308
+
309
+ The root cause and its evidence feed `/akili-archive`'s Kaizen retrospective (5W1H) — a lesson without a confirmed root cause is not recorded.
310
+
290
311
  ## Real-World Impact
291
312
 
292
313
  From debugging sessions:
@@ -1,6 +1,14 @@
1
1
  ---
2
2
  name: tailwind-design-system
3
3
  description: Build scalable design systems with Tailwind CSS v4, design tokens, component libraries, and responsive patterns. Use when creating component libraries, implementing design systems, or standardizing UI patterns.
4
+ license: MIT
5
+ metadata:
6
+ author: Seth Hobson (wshobson)
7
+ source: https://github.com/wshobson/agents
8
+ adapted-by: "Juan Carlos Cadavid — jcadavid.com"
9
+ adapted-for: "AKILI-SPECS"
10
+ binding: stack
11
+ version: "1.0"
4
12
  ---
5
13
 
6
14
  # Tailwind Design System (v4)
@@ -1,6 +1,14 @@
1
1
  ---
2
2
  name: ui-ux-pro-max
3
3
  description: "UI/UX design intelligence. 67 styles, 96 palettes, 57 font pairings, 25 charts, 13 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind, shadcn/ui). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient. Integrations: shadcn/ui MCP for component search and examples."
4
+ license: MIT
5
+ metadata:
6
+ author: nextlevelbuilder
7
+ source: https://github.com/nextlevelbuilder/ui-ux-pro-max-skill
8
+ adapted-by: "Juan Carlos Cadavid — jcadavid.com"
9
+ adapted-for: "AKILI-SPECS"
10
+ binding: conditional
11
+ version: "1.0"
4
12
  ---
5
13
  # UI/UX Pro Max - Design Intelligence
6
14
 
@@ -15,6 +23,19 @@ Reference these guidelines when:
15
23
  - Building landing pages or dashboards
16
24
  - Implementing accessibility requirements
17
25
 
26
+ ## AKILI-SPECS Integration
27
+
28
+ This is AKILI's preferred UI/UX skill — commands reference it as "`ui-ux-pro-max` if available" (fallback: `frontend-design` + `stitch-design`).
29
+
30
+ | AKILI moment | How to use this skill |
31
+ |---|---|
32
+ | `/akili-constitution` Step 4 | Drive `docs/ux-ui/design.md`: design tokens, palettes, typography, accessibility expectations |
33
+ | `/akili-specify` design phase | Shape UI states, responsive behavior, and component architecture in `design.md` |
34
+ | `/akili-execute` UI tasks | The Implementer loads it for UI-heavy tasks listed in `tasks.md` |
35
+ | `/akili-test` / `/akili-validate` | The Tester/validator checks accessibility and UX rules (priority 1–4 categories) against the built screens |
36
+
37
+ Design-token decisions made with this skill are recorded in `docs/ux-ui/design.md` — the Reviewer audits diffs against that document, not against this skill.
38
+
18
39
  ## Rule Categories by Priority
19
40
 
20
41
  | Priority | Category | Impact | Domain |
@@ -4,6 +4,9 @@ description: React and Next.js performance optimization guidelines from Vercel E
4
4
  license: MIT
5
5
  metadata:
6
6
  author: vercel
7
+ adapted-by: "Juan Carlos Cadavid — jcadavid.com"
8
+ adapted-for: "AKILI-SPECS"
9
+ binding: stack
7
10
  version: "1.0.0"
8
11
  ---
9
12
 
@@ -21,7 +21,7 @@ Your sole responsibility is to coordinate execution of an approved spec by orche
21
21
  * If no tasks are eligible, report completion or the blocking condition and stop.
22
22
 
23
23
  3. **Delegation Discipline (Dynamic Skill Loading):**
24
- * Extract any recommended skills listed in the task (e.g., `shadcn-ui`, `nestjs-expert`).
24
+ * Extract any recommended skills listed in the task (e.g., `shadcn-ui`, `nestjs-expert`). If the task lists none, derive them from the project's `## Skill Map` in root `AGENTS.md`/`CLAUDE.md` (stack skills) plus the conditional skills matching the work (UI → `ui-ux-pro-max`, animation → `gsap-animation`).
25
25
  * Spawn the **Implementer** subagent with: the active task scope, the relevant spec sections, the verification command, and the contents of `.agents/implementer.md`.
26
26
  * **Crucial:** Explicitly instruct the Implementer: "You MUST use the `skill` tool to load these skills: [skill names] BEFORE you begin writing code."
27
27
  * After the Implementer reports completion, extract the git diff and spawn the **Reviewer** subagent with: the diff, the relevant spec sections, and the contents of `.agents/reviewer.md`.
package/CHANGELOG.md CHANGED
@@ -10,6 +10,37 @@ The format is inspired by Keep a Changelog and the repository follows semantic v
10
10
 
11
11
  - No unreleased changes yet.
12
12
 
13
+ ## [2.9.0] - 2026-07-20
14
+
15
+ ### Added
16
+
17
+ - **Model Routing 2.0 — enforced for subagents, guided for the main loop:**
18
+ - **Tool-native agent wrappers (`/akili-constitution` Step 8E):** with user approval, the constitution now binds the `.agents/` personas to the Model Routing registry via native agent definitions — `.claude/agents/akili-{leader,implementer,reviewer,tester}.md` in Claude Code (alias-based `model:`) and agent config in OpenCode (provider slugs). `/akili-execute` and `/akili-test` prefer these named agents, so the multi-agent fan-out (where most tokens are spent) routes automatically and **author ≠ auditor becomes structural** — the Reviewer wrapper pins a different model than the Implementer wrapper. Wrappers are thin references to `.agents/`; personas remain the single source of truth. Antigravity stays guidance-only (no per-agent model binding).
19
+ - **Model checkpoints in every command:** all 10 commands (`propose`, `specify`, `execute`, `test`, `validate`, `archive`, `audit`, `quick`, `seo`, `constitution`) perform a one-line, never-blocking check during setup — if the phase's tier maps to a different model than the current session, the user is told (e.g. "This phase is T1 — the registry recommends `/model opus`") and offered the switch at the first approval pause.
20
+ - **Model Registry Drift check in `/akili-audit`:** new drift category and Conformance Matrix row — registry entries naming models the tool no longer offers, dated pins where a floating alias exists, missing tiers/author ≠ auditor notes versus the packaged default, and Step 8E wrappers contradicting the registry. Report-only.
21
+
22
+ ### Changed
23
+
24
+ - **Alias-first model registry (survives model churn):** `docs/model-routing.md` and the Step 8C scaffold now mandate floating aliases (`opus`/`sonnet`/`haiku` in Claude Code — they always resolve to the latest generation, so new model families require zero registry edits); dated model pins require a recorded reason. The default registry was rewritten alias-first with an `Updated:` stamp; OpenCode slugs (no alias mechanism) keep the Fallback column and are covered by the drift check. Safe Update mode now also flags stale registry entries against the packaged default without touching user pins.
25
+ ## [2.8.0] - 2026-07-20
26
+
27
+ ### Added
28
+
29
+ - **Skill governance (binding taxonomy + acceptance checklist):** new `docs/skills/governance.md` establishes the curation rule for the packaged skill set. Every skill now declares `metadata.binding` — `core` (hard-wired to a command step), `conditional` (loaded when the work touches its domain), or `stack` (never referenced in command text; reaches agents via the project Skill Map) — plus original author/license and `adapted-by`. New skills enter only through the acceptance checklist (need + binding + attribution + size + docs/CHANGELOG).
30
+ - **Project Skill Map:** `/akili-constitution` Step 8D scaffolds a `## Skill Map` section into the project's root `AGENTS.md`/`CLAUDE.md` from the detected stack; `/akili-specify` derives each task's required skills from that map, and the `/akili-execute` Leader falls back to it when a task lists no skills.
31
+ - **New unified `gsap-animation` skill** (author GSAP/GreenSock, MIT; adapted for AKILI-SPECS): replaces the 8 sibling `gsap-*` skills with one conditional skill — a compact router `SKILL.md` plus `references/` files (timeline, scrolltrigger, plugins, react, frameworks, performance, utils) following progressive disclosure. Wired into `/akili-specify` and `/akili-execute` for animation work.
32
+ - **AKILI-SPECS Integration sections** added to the deeply-wired skills: `brainstorming` (AKILI artifacts override its generic `docs/plans/` flow), `judgment-day` (ledger persisted as `judgment.md` in the spec folder, author ≠ auditor note), `cognitive-doc-design` (document map per command), `systematic-debugging` (Bug Track / Bug Mode / PRODUCT_BUG / Kaizen 5W1H mapping), `seo-audit` (finding format + escalation rule), and `ui-ux-pro-max` (per-phase usage map).
33
+
34
+ ### Changed
35
+
36
+ - **Skill attribution normalized across the package:** every kept skill's frontmatter now carries the standard schema (`license`, `metadata.author`, `source`, `adapted-by`, `adapted-for`, `binding`, `version`), preserving original authors — including newly researched attributions: `ui-ux-pro-max` → nextlevelbuilder, `seo-audit` → Corey Haines, `brainstorming` → Jesse Vincent (obra/superpowers), `nestjs-expert` → Daniel Avila, `react-doctor` → Million.dev, `stitch-design` → Google Labs, `product-manager-toolkit` → Alireza Rezvani, `api-design-principles`/`error-handling-patterns`/`tailwind-design-system` → Seth Hobson (wshobson/agents), `frontend-design` → Anthropic — plus the already-attributed Google, Vercel, GSAP, gentleman-programming, and vibeship. Only `shadcn-ui` remains `community (origin unverified)`.
37
+ - **Truthful skill inventory:** `docs/skills/README.md` rebuilt with Binding and Origin columns and command associations that match the real command wiring (the previous table claimed command integrations that did not exist for `angular-developer` and the `gsap-*` family).
38
+ - **`angular-developer` reclassified as a stack skill:** kept in the package, reachable via the project Skill Map and the constitution/specify stack lists (previously packaged but never referenced anywhere).
39
+ - **Dangling references removed:** `seo-audit` no longer points to unpackaged sibling skills (`programmatic-seo`, `schema`, `ai-seo`, `cro`, `analytics`); `judgment-day` documents the fallback for its unpackaged shared-ledger references.
40
+
41
+ ### Removed
42
+
43
+ - **The 8 `gsap-*` skill directories and their doc pages** (`gsap-core`, `gsap-frameworks`, `gsap-performance`, `gsap-plugins`, `gsap-react`, `gsap-scrolltrigger`, `gsap-timeline`, `gsap-utils`), fused into `gsap-animation`. **Existing installs are migrated automatically:** the installer's legacy cleanup now also removes stale legacy skill directories on every `akili install` run (counted in the `legacy cleaned` summary column, previewed in `--dry-run`), and `akili doctor` reports them as `STALE` with `--fix` removing them. Upgrade path for existing users: `akili update` (or `npm i -g akili-specs`) then `akili install --tool <tool>` — old gsap-* dirs are deleted and `gsap-animation` is installed in the same run.
13
44
  ## [2.7.1] - 2026-07-20
14
45
 
15
46
  ### Added
package/README.md CHANGED
@@ -82,14 +82,7 @@ AKILI-SPECS is a constitution-first, spec-driven methodology for AI-assisted dev
82
82
  - `cognitive-doc-design`
83
83
  - `error-handling-patterns`
84
84
  - `frontend-design`
85
- - `gsap-core`
86
- - `gsap-frameworks`
87
- - `gsap-performance`
88
- - `gsap-plugins`
89
- - `gsap-react`
90
- - `gsap-scrolltrigger`
91
- - `gsap-timeline`
92
- - `gsap-utils`
85
+ - `gsap-animation`
93
86
  - `judgment-day`
94
87
  - `kaizen`
95
88
  - `nestjs-expert`
@@ -746,6 +739,8 @@ Fallback rule:
746
739
 
747
740
  - when `ui-ux-pro-max` is unavailable, use `frontend-design` + `stitch-design` for UX/UI design work and `frontend-design` for UI validation/testing support.
748
741
 
742
+ **Skill governance:** the skill set is curated, not accumulated. Every packaged skill declares its original author and license plus how AKILI binds it into the flow (`core` — hard-wired to a command step; `conditional` — loaded when the work touches its domain; `stack` — selected per project via the `## Skill Map` that `/akili-constitution` writes into the project guides). New skills enter only through the acceptance checklist in [docs/skills/governance.md](docs/skills/governance.md). Curation and adaptation by [Juan Carlos Cadavid](https://jcadavid.com), always preserving original authorship.
743
+
749
744
  ## Methodology Contract
750
745
 
751
746
  - **User-Facing Summaries:** All major commands (`/akili-propose`, `/akili-specify`, `/akili-execute`, `/akili-validate`, `/akili-test`, `/akili-constitution`) generate a short, digestible summary on the screen before proceeding to the next step, ensuring developers always understand what the agent just did.
package/bin/akili.js CHANGED
@@ -14,6 +14,18 @@ const SOURCE_SKILLS = path.join(SOURCE_CLAUDE, "skills");
14
14
  const SOURCE_TEMPLATES = path.join(SOURCE_CLAUDE, "templates");
15
15
  const AGENT_TEMPLATES = ["leader.md", "implementer.md", "reviewer.md", "tester.md"];
16
16
  const RESOURCE_SCRIPTS = ["gsc_verify.py", "parse_tests.js"];
17
+ // Skill directories removed from the package; deleted from installs during legacy cleanup.
18
+ // v2.8.0: the 8 gsap-* skills were fused into the single gsap-animation skill.
19
+ const LEGACY_SKILLS = [
20
+ "gsap-core",
21
+ "gsap-frameworks",
22
+ "gsap-performance",
23
+ "gsap-plugins",
24
+ "gsap-react",
25
+ "gsap-scrolltrigger",
26
+ "gsap-timeline",
27
+ "gsap-utils",
28
+ ];
17
29
  const SOURCE_SCRIPTS = path.join(PACKAGE_ROOT, "scripts");
18
30
  const SOURCE_MCP_EXAMPLE = path.join(PACKAGE_ROOT, ".mcp.json.example");
19
31
  const BANNER = ` █████╗ ██╗ ██╗██╗██╗ ██╗
@@ -316,6 +328,21 @@ function cleanupLegacyFiles(tool, args) {
316
328
  }
317
329
  }
318
330
 
331
+ if (shouldInclude("skills", args)) {
332
+ for (const skillName of LEGACY_SKILLS) {
333
+ const skillDir = path.join(paths.skills, skillName);
334
+ if (fs.existsSync(skillDir)) {
335
+ if (args.dryRun) {
336
+ console.log(` ${colors.red}would delete legacy skill${colors.reset} ${skillDir}`);
337
+ } else {
338
+ fs.rmSync(skillDir, { recursive: true, force: true });
339
+ console.log(` ${colors.red}deleted legacy skill${colors.reset} ${skillDir}`);
340
+ }
341
+ cleaned++;
342
+ }
343
+ }
344
+ }
345
+
319
346
  if (shouldInclude("resources", args)) {
320
347
  if (paths.legacyResources && fs.existsSync(paths.legacyResources)) {
321
348
  if (args.dryRun) {
@@ -677,6 +704,19 @@ function doctorTool(tool, args) {
677
704
  }
678
705
  }
679
706
  }
707
+ for (const skillName of LEGACY_SKILLS) {
708
+ const skillDir = path.join(paths.skills, skillName);
709
+ if (fs.existsSync(skillDir)) {
710
+ if (args.fix) {
711
+ fs.rmSync(skillDir, { recursive: true, force: true });
712
+ console.log(` ${colors.cyan}REMOVED${colors.reset} ${skillName} (legacy, replaced by gsap-animation)`);
713
+ fixed += 1;
714
+ } else {
715
+ console.log(` ${colors.red}STALE${colors.reset} ${skillName} (legacy, replaced by gsap-animation — run with --fix or akili update to remove)`);
716
+ missing += 1;
717
+ }
718
+ }
719
+ }
680
720
  }
681
721
 
682
722
  if (shouldInclude("resources", args)) {
package/docs/cli.md CHANGED
@@ -58,7 +58,7 @@ akili install --tool both --local
58
58
 
59
59
  Every command closes with a clear end-of-run summary:
60
60
 
61
- - **`install`** — an **Install Summary** with per-tool `installed | overwritten | skipped` counts (plus legacy cleanup), target paths, totals for multi-tool installs, a dry-run banner when `--dry-run` is used, and contextual next steps (`--force` hint, OpenCode restart, `akili doctor` verification).
61
+ - **`install`** — an **Install Summary** with per-tool `installed | overwritten | skipped` counts (plus legacy cleanup), target paths, totals for multi-tool installs, a dry-run banner when `--dry-run` is used, and contextual next steps (`--force` hint, OpenCode restart, `akili doctor` verification). Legacy cleanup removes artifacts from older versions on every run: `sdd-*` command files, the `sdd-jc` resources directory, and skill directories that were removed from the package (e.g. the 8 `gsap-*` skills replaced by `gsap-animation`); `akili doctor` reports still-present legacy skills as `STALE` and `--fix` deletes them.
62
62
  - **`doctor`** — a **Doctor Summary** with a per-tool `HEALTHY | REPAIRED | INCOMPLETE` status, `ok | missing | fixed` counts, and repair suggestions (`--fix` or `akili update`).
63
63
  - **`update`** — an **Update Summary** with the version change (`before → after`), install type, and the verification command, after the changelog of what changed.
64
64
  - **`list`** — a totals line: commands, skills, resources, and the package version.
@@ -63,19 +63,23 @@ The `.agents/` directory is tool-agnostic: pure Markdown + YAML frontmatter, res
63
63
 
64
64
  ## Model Routing Scaffolding
65
65
 
66
- Step 7C adds or upgrades a `## Model Routing` section in the project's root `AGENTS.md` and `CLAUDE.md`: a capability-tier registry that maps each AKILI-SPECS phase to a model **per tool** (Claude Code and OpenCode). It is guidance only no `model:` frontmatter is added and the installer is unchanged. The registry enforces **author ≠ auditor** (the Reviewer runs on a different model than the Implementer) and, in Active-AKILI-SPECS mode, is non-destructive: an existing customized registry is preserved and only gaps are filled. See [Model Routing](../model-routing.md) for the tiers and the default registry.
67
-
68
- - `product-manager-toolkit`
69
- - `ui-ux-pro-max`
70
- - `frontend-design`
71
- - `stitch-design`
72
- - `nestjs-expert`
73
- - `api-design-principles`
74
- - `error-handling-patterns`
75
- - `aws-serverless`
76
- - `shadcn-ui`
77
- - `tailwind-design-system`
78
- - `vercel-react-best-practices`
66
+ Step 8C adds or upgrades a `## Model Routing` section in the project's root `AGENTS.md` and `CLAUDE.md`: a capability-tier registry that maps each AKILI-SPECS phase to a model **per tool** (Claude Code and OpenCode), following the **alias-first rule** (floating aliases like `opus`/`sonnet`/`haiku` wherever they exist, so the registry survives model generations without edits). No `model:` frontmatter is added to commands and the installer is unchanged. The registry enforces **author ≠ auditor** (the Reviewer runs on a different model than the Implementer) and, in Active-AKILI-SPECS mode, is non-destructive: an existing customized registry is preserved, gaps are filled, and stale entries are flagged against the packaged default without touching user pins. See [Model Routing](../model-routing.md) for the tiers and the default registry.
67
+
68
+ ## Model Binding Scaffolding (Tool-Native Agent Wrappers)
69
+
70
+ Step 8E (with the user's approval) binds the `.agents/` personas to the registry's models via **tool-native agent definitions**: `.claude/agents/akili-{leader,implementer,reviewer,tester}.md` in Claude Code (alias-based `model:` frontmatter) and the equivalent agent config in OpenCode (provider slugs). The wrappers are thin — they reference the `.agents/` persona instead of duplicating it — and make model routing **enforced** for the `/akili-execute` and `/akili-test` fan-out, including a structural author ≠ auditor guarantee (the Reviewer wrapper pins a different model than the Implementer wrapper). Antigravity has no per-agent model binding and stays guidance-only. In Active-AKILI-SPECS mode existing wrappers are never overwritten.
71
+
72
+ ## Skill Map Scaffolding
73
+
74
+ Step 8D adds or upgrades a `## Skill Map` section in the project's root `AGENTS.md` and `CLAUDE.md`: a table of the **stack-bound skills** that apply to this project's detected or declared stack (see [Skill Governance](../skills/governance.md)). Stack skills are never hardcoded into command text — `/akili-specify` derives each task's required skills from this map, and the `/akili-execute` Leader passes them to the Implementer/Tester via dynamic skill loading. In Active-AKILI-SPECS mode an existing customized map is preserved.
75
+
76
+ Skills the constitution itself draws on:
77
+
78
+ - `brainstorming` (Step 0 — project mode and intent)
79
+ - `product-manager-toolkit` (Steps 2–3 — interview script and PRD)
80
+ - `cognitive-doc-design` (all baseline documents)
81
+ - `ui-ux-pro-max`, or `frontend-design` + `stitch-design` (Step 4 — UX/UI design)
82
+ - Stack skills matching the repo (Step 5 TRD and the Skill Map): `nestjs-expert`, `api-design-principles`, `error-handling-patterns`, `aws-serverless`, `shadcn-ui`, `tailwind-design-system`, `vercel-react-best-practices`, `angular-developer`
79
83
 
80
84
  ## Next Step
81
85
 
package/docs/flow.md CHANGED
@@ -303,11 +303,25 @@ T4 Context-Ingest, T5 Fast-Cheap, T6 Multimodal** — map to the phases:
303
303
  | `/akili-audit` | T4 + T3 |
304
304
  | `/akili-archive` | T5 |
305
305
 
306
- A single editable registry binds each tier to a concrete model **per tool** (Claude Code and
307
- OpenCode). `/akili-constitution` (Step 7C) scaffolds a `## Model Routing` copy of that registry into
308
- the project's `AGENTS.md` / `CLAUDE.md`. It is **guidance only** no `model:` frontmatter, no
309
- installer changes and it enforces **author ≠ auditor** (Reviewer model ≠ Implementer model). See
310
- [model-routing.md](model-routing.md) for the tiers, principles, and the default registry.
306
+ A single editable registry binds each tier to a model **per tool** (Claude Code and OpenCode),
307
+ using **floating aliases** (`opus`/`sonnet`/`haiku`) wherever they exist so the registry survives
308
+ model generations without edits. `/akili-constitution` (Step 8C) scaffolds a `## Model Routing`
309
+ copy into the project's `AGENTS.md` / `CLAUDE.md`.
310
+
311
+ Routing operates at two levels:
312
+
313
+ * **Enforced (subagents):** `/akili-constitution` Step 8E can generate tool-native agent wrappers
314
+ (`.claude/agents/akili-{leader,implementer,reviewer,tester}.md` in Claude Code, agent config in
315
+ OpenCode) that pin each persona to its tier's model. `/akili-execute` and `/akili-test` prefer
316
+ those named agents — so **author ≠ auditor** (Reviewer model ≠ Implementer model) holds by
317
+ configuration on the fan-out where most tokens are spent.
318
+ * **Guided (main loop):** every command emits a one-line, never-blocking **model checkpoint** in
319
+ its setup step when the phase's tier maps to a different model than the current session.
320
+
321
+ No `model:` frontmatter on commands and no installer changes. `/akili-audit` reports **Model
322
+ Registry Drift** (stale model names, dated pins where an alias exists, wrappers contradicting the
323
+ registry). See [model-routing.md](model-routing.md) for the tiers, principles, and the default
324
+ registry.
311
325
 
312
326
  ### 8. The Kaizen Loop
313
327
 
@@ -327,3 +341,23 @@ Juan Carlos Cadavid — jcadavid.com). Every archive runs one bounded pass:
327
341
  Lessons target either the **Product** (this project) or the **Methodology** itself — Methodology
328
342
  lessons are flagged for upstreaming to the AKILI repository, so the methodology learns from every
329
343
  tool built with it. The retrospective never blocks the archive.
344
+
345
+ ### 9. Skill Binding (Governance)
346
+
347
+ The packaged skills are curated under a three-level binding taxonomy (see `docs/skills/governance.md`),
348
+ which answers *when and how each skill loads*:
349
+
350
+ * **core** — hard-wired to a precise command step: `kaizen` in `/akili-archive`, `judgment-day` in
351
+ `/akili-specify`'s Review Design gate, `cognitive-doc-design` for every human-facing document,
352
+ `brainstorming` for exploration, `product-manager-toolkit` in `/akili-constitution`,
353
+ `systematic-debugging` in bug flows, `seo-audit` in `/akili-seo`.
354
+ * **conditional** — loaded when the work touches its domain: `ui-ux-pro-max` / `frontend-design` /
355
+ `stitch-design` for UI work, `gsap-animation` for animation work.
356
+ * **stack** — framework/platform skills (`angular-developer`, `nestjs-expert`, `shadcn-ui`,
357
+ `aws-serverless`, …) are never hardcoded into commands. `/akili-constitution` Step 8D writes a
358
+ `## Skill Map` into the project's `AGENTS.md`/`CLAUDE.md` from the detected stack;
359
+ `/akili-specify` derives each task's required skills from that map; the Leader passes them to the
360
+ Implementer/Tester via dynamic skill loading.
361
+
362
+ Every skill preserves its original author and license; AKILI adaptation is recorded as `adapted-by`
363
+ in the skill frontmatter. Curation by Juan Carlos Cadavid — jcadavid.com.
@@ -4,8 +4,17 @@ AKILI is model-agnostic: no command, skill, or persona hardcodes a model. This d
4
4
  **human-facing guidance** for choosing which model runs which AKILI-SPECS phase, so each phase runs on a
5
5
  model matched to its dominant computational demand rather than one model doing everything.
6
6
 
7
- It is **guidance-first**: you switch models yourself per tool (Claude Code `/model`, OpenCode
8
- model selector). Nothing here is injected into command frontmatter or the installer — see
7
+ Routing operates at two levels:
8
+
9
+ - **Enforced (subagents):** `/akili-constitution` Step 8E can bind the Implementer / Reviewer /
10
+ Tester / Leader personas to models via **tool-native agent definitions** (see
11
+ [Enforced routing](#enforced-routing-tool-native-agent-bindings)). This is where most tokens are
12
+ spent and where author ≠ auditor becomes structural instead of aspirational.
13
+ - **Guided (main loop):** the session model can only be switched by you (Claude Code `/model`,
14
+ OpenCode model selector). Commands emit a one-line **model checkpoint** when the phase's tier
15
+ points to a different model than the current session, so the switch happens at the right moment.
16
+
17
+ Nothing here is injected into command frontmatter or the installer — see
9
18
  [Cross-Tool Safety](#cross-tool-safety).
10
19
 
11
20
  ## Philosophy: criteria first, model second
@@ -75,25 +84,35 @@ tier (to the deeper reasoner) to preserve independence.
75
84
  ## Model registry
76
85
 
77
86
  This is the single editable source of truth. Phases reference **tiers**; only this table names
78
- concrete models. When models change, edit only this table.
87
+ models. When models change, edit only this table. *Registry updated: 2026-07.*
79
88
 
80
- | Tier | Claude Code (PRO) | OpenCode Go | Fallback |
89
+ **Alias-first rule: never pin a dated model name where a floating alias exists.** Claude Code's
90
+ `opus` / `sonnet` / `haiku` aliases always resolve to the latest version of each family — when
91
+ Anthropic ships a new generation, an alias-based registry needs **zero edits**. Pin a dated ID only
92
+ when you deliberately need to freeze a version, and record why next to the pin. OpenCode slugs are
93
+ concrete (no alias mechanism), which is why they carry the Fallback column and the drift check
94
+ below.
95
+
96
+ | Tier | Claude Code | OpenCode Go | Fallback |
81
97
  |---|---|---|---|
82
- | **T1 Architect** | Opus 4.8 | `opencode-go/kimi-k2.6` | `opencode-go/deepseek-v4-pro` / Sonnet 4.6 |
83
- | **T2 Coder** | Sonnet 4.6 | `opencode-go/glm-5.1` | Haiku 4.5 / `opencode-go/qwen3.7-max` |
84
- | **T3 Auditor** | Opus 4.8 *(must differ from T2)* | `opencode-go/deepseek-v4-pro` | Sonnet 4.6 / `opencode-go/kimi-k2.6` |
85
- | **T4 Context-Ingest** | Sonnet 4.6 (1M context) | `opencode-go/deepseek-v4-flash` | Opus 4.8 / `opencode-go/deepseek-v4-pro` |
86
- | **T5 Fast-Cheap** | Haiku 4.5 | `opencode-go/deepseek-v4-flash` | Sonnet 4.6 / `opencode-go/mimo-v2.5` |
87
- | **T6 Multimodal** | Sonnet 4.6 (vision) | `opencode-go/qwen3.7-max` *(weak — prefer Claude/Gemini)* | Opus 4.8 |
98
+ | **T1 Architect** | `opus` *(alias — always latest)* | `opencode-go/kimi-k2.6` | `opencode-go/deepseek-v4-pro` / `sonnet` |
99
+ | **T2 Coder** | `sonnet` | `opencode-go/glm-5.1` | `haiku` / `opencode-go/qwen3.7-max` |
100
+ | **T3 Auditor** | `opus` *(must differ from T2)* | `opencode-go/deepseek-v4-pro` | `sonnet` / `opencode-go/kimi-k2.6` |
101
+ | **T4 Context-Ingest** | `sonnet` (long context) | `opencode-go/deepseek-v4-flash` | `opus` / `opencode-go/deepseek-v4-pro` |
102
+ | **T5 Fast-Cheap** | `haiku` | `opencode-go/deepseek-v4-flash` | `sonnet` / `opencode-go/mimo-v2.5` |
103
+ | **T6 Multimodal** | `sonnet` (vision) | `opencode-go/qwen3.7-max` *(weak — prefer Claude/Gemini)* | `opus` |
88
104
 
89
105
  ### Why these models
90
106
 
91
- **Claude Code (PRO).** Opus 4.8 carries the tightest PRO rate limits, so it is **reserved for
92
- T1 (propose, specify reasoning) and T3 (validate, review)** — the two phases that most reward deep
93
- reasoning. **Sonnet 4.6 is the workhorse** for coding (T2), large-context ingestion via its 1M
94
- window (T4), and vision (T6). **Haiku 4.5** handles fast/cheap formatting, orchestration, and
95
- summarization (T5). This concentrates scarce Opus budget on architecture and audit and avoids
96
- exhausting it during execution-heavy work.
107
+ **Claude Code.** The top-family alias (`opus`) carries the tightest plan rate limits, so it is
108
+ **reserved for T1 (propose, specify reasoning) and T3 (validate, review)** — the two phases that
109
+ most reward deep reasoning. **`sonnet` is the workhorse** for coding (T2), large-context ingestion
110
+ (T4), and vision (T6). **`haiku`** handles fast/cheap formatting, orchestration, and summarization
111
+ (T5). This concentrates the scarce top-tier budget on architecture and audit and avoids exhausting
112
+ it during execution-heavy work. Because these are aliases, the mapping survives model generations
113
+ unchanged (e.g. when the top family moves from one generation to the next, `opus` follows it).
114
+ Users on plans that expose additional tiers (e.g. a Mythos-class model above Opus) can pin it for
115
+ T1/T3 in their project registry.
97
116
 
98
117
  **OpenCode Go.** The two strongest open models anchor the two highest-leverage tiers:
99
118
 
@@ -115,20 +134,69 @@ exhausting it during execution-heavy work.
115
134
  All OpenCode Go slugs are taken from the [OpenCode Go model list](https://opencode.ai/docs/go).
116
135
  Confirm them against your own OpenCode configuration and adjust if your roster differs.
117
136
 
137
+ ## Enforced routing (tool-native agent bindings)
138
+
139
+ The `/akili-execute` and `/akili-test` fan-out (Implementer, Reviewer, Testers) is where most
140
+ tokens are spent — and a generic subagent **inherits the session model**, which silently breaks
141
+ author ≠ auditor when the whole session runs on one model. Both tools support a `model` field on
142
+ **agent definitions** (never on commands), so `/akili-constitution` Step 8E binds the personas
143
+ there:
144
+
145
+ | Tool | Native agent location | Model value |
146
+ |---|---|---|
147
+ | Claude Code | `.claude/agents/akili-{leader,implementer,reviewer,tester}.md` (project-level) | Alias from the registry (`model: sonnet`, `model: opus`, `model: haiku`) |
148
+ | OpenCode | Project agent config (`.opencode/agent/*.md` or the `agent` block of `opencode.json`, per your OpenCode version) | Provider slug from the registry (`model: opencode-go/glm-5.1`) |
149
+ | Antigravity | Not supported — `invoke_subagent` has no per-agent model binding | Guidance-only fallback |
150
+
151
+ Each wrapper is thin: frontmatter (`name`, `description`, `model`) plus a body that instructs the
152
+ agent to read and fully adopt the corresponding `.agents/<role>.md` persona. The persona files in
153
+ `.agents/` remain the tool-agnostic source of truth; the wrappers only add the model binding.
154
+ `/akili-execute` and `/akili-test` prefer these named agents when they exist and fall back to
155
+ generic subagents seeded with the persona content when they don't.
156
+
157
+ **author ≠ auditor becomes structural:** `akili-reviewer` is pinned to a different model than
158
+ `akili-implementer` in the wrapper files themselves — no human discipline required.
159
+
160
+ ## Model checkpoints (main loop)
161
+
162
+ The session model cannot be switched programmatically, but the agent knows which model it is
163
+ running on. Every AKILI command performs a one-line **model checkpoint** during setup: read the
164
+ project's `## Model Routing` registry, compare the phase's tier to the current session model, and
165
+ if they differ, tell the user in one line (e.g. *"This phase is T1 — the registry recommends
166
+ `/model opus`; you are on haiku"*) and offer the switch in the phase's first HITL pause. The user
167
+ can always continue on the current model; the checkpoint never blocks.
168
+
169
+ ## Surviving model churn
170
+
171
+ Models change constantly; the design absorbs that at three layers:
172
+
173
+ 1. **Tiers are the stable layer.** Phases map to T1–T6 and never change when models do.
174
+ 2. **Aliases are the default.** The Claude column uses floating aliases that track the latest
175
+ generation automatically (see the alias-first rule above).
176
+ 3. **Drift is detected, not discovered.** `/akili-audit` includes a **Model Registry Drift** check
177
+ (registry entries naming models the tool no longer offers, or a project registry older than the
178
+ packaged default), and `/akili-constitution` in Safe Update mode flags stale entries against the
179
+ packaged default without overwriting user pins. Each AKILI release refreshes this document's
180
+ default registry.
181
+
118
182
  ## How to apply per tool
119
183
 
120
- - **Claude Code (PRO):** switch with `/model` before running a phase — e.g. `/model opus` for
184
+ - **Claude Code:** switch with `/model` before running a phase — e.g. `/model opus` for
121
185
  `/akili-propose` and `/akili-validate`, `/model sonnet` for `/akili-execute` and `/akili-test`,
122
- `/model haiku` for the tasks split and `/akili-archive`. For the `/akili-execute` triad, run the
123
- Implementer on Sonnet and the Reviewer on Opus so author auditor holds.
124
- - **OpenCode:** select the `opencode-go/...` model for each phase per the registry. Keep the
125
- Reviewer/validator on a different model (`deepseek-v4-pro`) than the Implementer (`glm-5.1`).
186
+ `/model haiku` for the tasks split and `/akili-archive` or simply respond to each command's
187
+ model checkpoint. With Step 8E bindings in place, the execute/test triad routes itself
188
+ (Implementer on `sonnet`, Reviewer on `opus`).
189
+ - **OpenCode:** select the `opencode-go/...` model for each phase per the registry, or use the
190
+ Step 8E agent bindings. Keep the Reviewer/validator on a different model (`deepseek-v4-pro`)
191
+ than the Implementer (`glm-5.1`).
126
192
 
127
193
  ## Cross-tool safety
128
194
 
129
- - **No `model:` frontmatter.** Command prompts stay `description:`-only. A single frontmatter value
130
- cannot serve both tools anyway (Claude Code expects `opus`/`sonnet`/`haiku`; OpenCode expects
131
- `provider/model`), so model choice stays out of the prompts.
195
+ - **No `model:` frontmatter on commands.** Command prompts stay `description:`-only. A single
196
+ frontmatter value cannot serve both tools anyway (Claude Code expects `opus`/`sonnet`/`haiku`;
197
+ OpenCode expects `provider/model`), so model choice stays out of the prompts. Model bindings live
198
+ exclusively in **agent definitions**, which are per-tool, per-project files generated with the
199
+ user's approval in Step 8E.
132
200
  - **No installer changes.** Nothing here is force-injected. `/akili-constitution` scaffolds a project
133
201
  copy of this registry into `AGENTS.md` / `CLAUDE.md` as plain Markdown — identical handling across
134
202
  Claude Code, OpenCode, and Google Antigravity.