@jaimevalasek/aioson 1.33.1 → 1.37.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 (162) hide show
  1. package/CHANGELOG.md +76 -0
  2. package/docs/en/1-understand/ecosystem-map.md +45 -29
  3. package/docs/en/1-understand/glossary.md +6 -6
  4. package/docs/en/1-understand/what-is-aioson.md +5 -5
  5. package/docs/en/2-start/existing-project.md +7 -7
  6. package/docs/en/2-start/first-project.md +33 -39
  7. package/docs/en/2-start/initial-decisions.md +22 -19
  8. package/docs/en/3-recipes/README.md +2 -2
  9. package/docs/en/3-recipes/continuity-between-sessions.md +2 -2
  10. package/docs/en/3-recipes/from-idea-to-prd-via-briefing.md +13 -3
  11. package/docs/en/3-recipes/full-feature-with-sheldon.md +329 -338
  12. package/docs/en/4-agents/README.md +33 -16
  13. package/docs/en/4-agents/briefing-refiner.md +146 -0
  14. package/docs/en/4-agents/discovery-design-doc.md +20 -8
  15. package/docs/en/4-agents/forge-run.md +3 -2
  16. package/docs/en/5-reference/README.md +1 -0
  17. package/docs/en/5-reference/autopilot-handoff.md +286 -0
  18. package/docs/en/5-reference/cli-reference.md +57 -48
  19. package/docs/en/5-reference/executable-verification.md +10 -7
  20. package/docs/en/5-reference/parallel.md +2 -0
  21. package/docs/en/5-reference/qa-browser.md +2 -2
  22. package/docs/en/README.md +3 -3
  23. package/docs/pt/1-entender/glossario.md +5 -5
  24. package/docs/pt/1-entender/mapa-do-ecossistema.md +33 -22
  25. package/docs/pt/2-comecar/decisoes-iniciais.md +20 -18
  26. package/docs/pt/2-comecar/primeiro-projeto.md +2 -2
  27. package/docs/pt/3-receitas/README.md +1 -1
  28. package/docs/pt/3-receitas/app-saas-do-zero.md +35 -122
  29. package/docs/pt/3-receitas/da-ideia-ao-prd-via-briefing.md +8 -1
  30. package/docs/pt/3-receitas/feature-completa-com-sheldon.md +291 -338
  31. package/docs/pt/4-agentes/README.md +13 -11
  32. package/docs/pt/4-agentes/analyst.md +9 -5
  33. package/docs/pt/4-agentes/architect.md +9 -5
  34. package/docs/pt/4-agentes/briefing-refiner.md +64 -40
  35. package/docs/pt/4-agentes/briefing.md +6 -1
  36. package/docs/pt/4-agentes/dev.md +38 -8
  37. package/docs/pt/4-agentes/deyvin.md +4 -0
  38. package/docs/pt/4-agentes/discover.md +4 -0
  39. package/docs/pt/4-agentes/discovery-design-doc.md +25 -23
  40. package/docs/pt/4-agentes/neo.md +4 -0
  41. package/docs/pt/4-agentes/orache.md +6 -0
  42. package/docs/pt/4-agentes/orchestrator.md +176 -118
  43. package/docs/pt/4-agentes/pentester.md +11 -5
  44. package/docs/pt/4-agentes/pm.md +15 -7
  45. package/docs/pt/4-agentes/product.md +19 -1
  46. package/docs/pt/4-agentes/qa.md +10 -2
  47. package/docs/pt/4-agentes/setup.md +3 -1
  48. package/docs/pt/4-agentes/sheldon.md +178 -99
  49. package/docs/pt/4-agentes/tester.md +6 -0
  50. package/docs/pt/4-agentes/ux-ui.md +9 -5
  51. package/docs/pt/5-referencia/README.md +1 -1
  52. package/docs/pt/5-referencia/agent-chain-continuity.md +14 -5
  53. package/docs/pt/5-referencia/autopilot-handoff.md +191 -74
  54. package/docs/pt/5-referencia/comandos-cli.md +16 -7
  55. package/docs/pt/5-referencia/sdd-automation-scripts.md +6 -6
  56. package/docs/pt/5-referencia/sdd-framework.md +53 -16
  57. package/docs/pt/5-referencia/sdd-planos-e-estrutura.md +27 -15
  58. package/docs/pt/5-referencia/skills.md +2 -0
  59. package/docs/pt/README.md +4 -4
  60. package/docs/pt/agentes.md +50 -50
  61. package/package.json +2 -2
  62. package/src/agents.js +1 -1
  63. package/src/artifact-kinds.js +111 -0
  64. package/src/autopilot-signal.js +71 -0
  65. package/src/cli.js +112 -81
  66. package/src/commands/agent-epilogue.js +251 -186
  67. package/src/commands/agents.js +122 -50
  68. package/src/commands/audit-code.js +344 -0
  69. package/src/commands/briefing.js +337 -1
  70. package/src/commands/classify.js +389 -389
  71. package/src/commands/feature-close.js +122 -4
  72. package/src/commands/harness-check.js +259 -175
  73. package/src/commands/live.js +71 -11
  74. package/src/commands/review-feature.js +189 -0
  75. package/src/commands/runtime.js +81 -66
  76. package/src/commands/sync-agents-copy.js +115 -0
  77. package/src/commands/update.js +5 -1
  78. package/src/commands/verification-plan.js +143 -0
  79. package/src/commands/verify-artifact.js +593 -0
  80. package/src/commands/workflow-execute.js +434 -316
  81. package/src/commands/workflow-next.js +193 -20
  82. package/src/commands/workflow-plan.js +5 -5
  83. package/src/constants.js +2 -0
  84. package/src/doctor.js +4 -2
  85. package/src/gateway-pointer-merge.js +7 -1
  86. package/src/handoff-contract.js +267 -172
  87. package/src/harness/contract-integrity-gate.js +172 -0
  88. package/src/harness/contract-integrity.js +111 -0
  89. package/src/harness/contract-schema.js +377 -332
  90. package/src/harness/detect-runtime-feature.js +90 -0
  91. package/src/harness/static-criteria.js +192 -0
  92. package/src/i18n/messages/en.js +10 -5
  93. package/src/i18n/messages/es.js +10 -5
  94. package/src/i18n/messages/fr.js +10 -5
  95. package/src/i18n/messages/pt-BR.js +10 -5
  96. package/src/install-wizard.js +8 -8
  97. package/src/installer.js +13 -6
  98. package/src/lib/briefing-refiner/apply-feedback.js +18 -4
  99. package/src/lib/briefing-refiner/feedback-schema.js +73 -4
  100. package/src/lib/briefing-refiner/refinement-report.js +11 -0
  101. package/src/lib/briefing-refiner/review-html.js +388 -68
  102. package/src/parser.js +12 -0
  103. package/src/preflight-engine.js +12 -12
  104. package/src/verification/policy-engine.js +95 -95
  105. package/src/verification-policy.js +398 -0
  106. package/src/version.js +52 -1
  107. package/template/.aioson/agents/architect.md +34 -5
  108. package/template/.aioson/agents/briefing-refiner.md +91 -48
  109. package/template/.aioson/agents/briefing.md +4 -0
  110. package/template/.aioson/agents/committer.md +2 -1
  111. package/template/.aioson/agents/copywriter.md +30 -21
  112. package/template/.aioson/agents/design-hybrid-forge.md +10 -1
  113. package/template/.aioson/agents/dev.md +35 -23
  114. package/template/.aioson/agents/deyvin.md +4 -0
  115. package/template/.aioson/agents/discover.md +16 -3
  116. package/template/.aioson/agents/discovery-design-doc.md +7 -2
  117. package/template/.aioson/agents/genome.md +19 -10
  118. package/template/.aioson/agents/neo.md +34 -30
  119. package/template/.aioson/agents/orache.md +24 -11
  120. package/template/.aioson/agents/orchestrator.md +100 -7
  121. package/template/.aioson/agents/pentester.md +4 -0
  122. package/template/.aioson/agents/pm.md +8 -8
  123. package/template/.aioson/agents/product.md +25 -1
  124. package/template/.aioson/agents/profiler-enricher.md +20 -11
  125. package/template/.aioson/agents/profiler-forge.md +20 -11
  126. package/template/.aioson/agents/profiler-researcher.md +20 -11
  127. package/template/.aioson/agents/qa.md +96 -31
  128. package/template/.aioson/agents/setup.md +12 -1
  129. package/template/.aioson/agents/sheldon.md +103 -13
  130. package/template/.aioson/agents/site-forge.md +11 -2
  131. package/template/.aioson/agents/squad.md +20 -5
  132. package/template/.aioson/agents/tester.md +4 -0
  133. package/template/.aioson/agents/ux-ui.md +2 -1
  134. package/template/.aioson/agents/validator.md +33 -1
  135. package/template/.aioson/config/verification.json +61 -0
  136. package/template/.aioson/config.md +13 -9
  137. package/template/.aioson/docs/LAYERS.md +2 -2
  138. package/template/.aioson/docs/agent-help.md +126 -0
  139. package/template/.aioson/docs/autopilot-handoff.md +30 -20
  140. package/template/.aioson/docs/dev/execution-discipline.md +41 -0
  141. package/template/.aioson/docs/dev/phase-loop.md +50 -0
  142. package/template/.aioson/docs/play/llm-data-and-bindings.md +70 -7
  143. package/template/.aioson/docs/presets/workflow.config.full-merged.json +15 -0
  144. package/template/.aioson/docs/presets/workflow.config.lean.json +15 -0
  145. package/template/.aioson/docs/product/prd-contract.md +12 -12
  146. package/template/.aioson/docs/prototype-contract.md +21 -4
  147. package/template/.aioson/docs/reference-identity.md +94 -0
  148. package/template/.aioson/docs/sheldon/harness-contract.md +155 -28
  149. package/template/.aioson/docs/verification-config.md +82 -0
  150. package/template/.aioson/docs/verify-artifact-gates.md +91 -0
  151. package/template/.aioson/docs/workflow-lean-lane.md +129 -0
  152. package/template/.aioson/skills/design/interface-design/SKILL.md +17 -0
  153. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +2 -0
  154. package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +16 -14
  155. package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +2 -2
  156. package/template/.aioson/skills/process/aioson-spec-driven/references/classification-map.md +4 -4
  157. package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +15 -15
  158. package/template/.aioson/skills/process/prototype-forge/SKILL.md +6 -0
  159. package/template/.aioson/skills/process/reference-identity-extract/SKILL.md +164 -0
  160. package/template/.aioson/skills/static/multi-agent-patterns.md +5 -5
  161. package/template/AGENTS.md +36 -36
  162. package/template/CLAUDE.md +15 -11
@@ -0,0 +1,91 @@
1
+ ---
2
+ description: "Artifact done-gates (verify:artifact) — build-free, model-agnostic completeness/integrity checks for the non-code artifacts the specialized agents produce before they register done."
3
+ agents: [setup, genome, profiler-researcher, profiler-enricher, profiler-forge, discover, orache, design-hybrid-forge, site-forge, copywriter, committer, squad]
4
+ task_types: [verification, configuration]
5
+ triggers: [verify:artifact, artifact gate, done gate, artifact done-gate, placeholder gate, kind=]
6
+ ---
7
+
8
+ # Artifact done-gates — `aioson verify:artifact`
9
+
10
+ The periphery analog of the code pipeline's `SG-*` / `RG-*` harness gates: a
11
+ build-free **"done = proven, not asserted"** check for the **non-code artifacts**
12
+ the specialized agents produce. Where `audit:code` scans code quality and the
13
+ harness contract gates a feature, `verify:artifact` proves a produced artifact is
14
+ complete and well-formed before the agent calls `agent:done`.
15
+
16
+ The failure mode it closes is the one the runtime smoke gate closed for code: an
17
+ agent self-declaring done with no proof — a `project.context.md` with an invalid
18
+ enum, a genome missing its manifest, a research report with an unfilled
19
+ `[Full Name]`, a generated site that never built.
20
+
21
+ ```bash
22
+ aioson verify:artifact . --kind=<kind> [--slug=<slug>] [--file=<path>] [--advisory] [--strict]
23
+ ```
24
+
25
+ A `kind` routes to either an **existing validator** or a declarative **SG-\***
26
+ **ruleset** over the shared static-criteria engine — pure `fs` + `RegExp` +
27
+ `JSON.parse` / `node --check` (no shell, no build, cross-platform by
28
+ construction). Adding a gate to a new agent is a registry entry plus one
29
+ done-gate line, not a bespoke implementation.
30
+
31
+ | kind | agent | backed by | default |
32
+ |---|---|---|---|
33
+ | `project-context` | `@setup` | `validateProjectContextFile` (required fields, enums, frontmatter parse) | blocking |
34
+ | `genome` | `@genome`, `@profiler-forge` | `genome:doctor` (manifest/references/anchor/Track-4.3 quality) | blocking |
35
+ | `research-report` | `@profiler-researcher` | ruleset (frontmatter + inventory/extracted/gaps sections, no template token) | blocking |
36
+ | `enriched-profile` | `@profiler-enricher` | ruleset (exec summary / psychometric / operational method / trait interactions) | blocking |
37
+ | `bootstrap` | `@discover` | ruleset (all 4 cold-start files exist with real frontmatter, no placeholder) | blocking |
38
+ | `orache-report` | `@orache` | ruleset, resolved via `--file` (7 dimensions + impact + source) | blocking |
39
+ | `hybrid-skill` | `@design-hybrid-forge` | ruleset (`.skill-meta.json` parses + sources, SKILL.md, both previews) | blocking |
40
+ | `site` | `@site-forge` | static floor + `npm run build` on the real stack | blocking |
41
+ | `copy` | `@copywriter` | ruleset (placeholder / Lorem / TODO / unfilled-token scan) | advisory |
42
+ | `commit-message` | `@committer` | subject heuristics (`--file` draft or HEAD commit) | advisory |
43
+
44
+ ## Contract
45
+
46
+ - Every gate returns a uniform `{ ok, issues[], warnings[] }`, persists
47
+ `.aioson/context/verify-artifact-<kind>.json`, and sets **exit 1** on a hard
48
+ failure — **unless `--advisory`** (warn-only, always exit 0). `--strict`
49
+ promotes warnings to blocking issues.
50
+ - `--slug` resolves a slug-keyed artifact path; `--file` resolves a
51
+ caller-known / date-stamped path. A kind that needs one fails with a clean
52
+ usage error instead of probing a `null/` path.
53
+ - `--no-build` (kind=`site`) runs the static floor only — a fast mid-work
54
+ re-check that skips the `npm run build` runtime floor.
55
+
56
+ ## Auto-fire at `agent:done`
57
+
58
+ These gates do not depend on each agent remembering to run its `## Done gate`
59
+ line. `aioson agent:done` resolves the calling agent to its artifact kind
60
+ (`src/artifact-kinds.js`) and runs the matching `verify:artifact --advisory`
61
+ itself — so the check fires at the one call every agent already makes at session
62
+ end (and rides on `agent:epilogue`, which wraps `agent:done`):
63
+
64
+ - **Self-resolving kinds** (`setup`→`project-context`, `discover`→`bootstrap`,
65
+ `committer`→`commit-message`) run with no extra input — fully deterministic,
66
+ no markdown dependency.
67
+ - **Locator-keyed kinds** run when the agent threads its locator into that same
68
+ call (`--slug` / `--file` / `--dir`, which the agent's Observability line now
69
+ carries); without it, `agent:done` surfaces a one-line hint naming the exact
70
+ command, so the gate is visible rather than silently skipped.
71
+
72
+ Always advisory at this layer: a failed or skipped check is surfaced but never
73
+ flips the session-end result. The explicit per-agent `## Done gate` stays as the
74
+ agent-facing "check and FIX" step; this is the deterministic engine net beneath
75
+ it — the periphery analog of how `audit:code` auto-fires in `agent:epilogue`.
76
+
77
+ ## `@squad` is gated separately
78
+
79
+ A squad ships through its own `aioson squad:validate` (structural: manifest
80
+ schema, required files, every declared executor file exists, no duplicate slugs,
81
+ canonical paths) plus its source-grounded multi-model **eval-gate** — both
82
+ promoted from opt-in into the default `validate` step. See `@squad`'s Done gate.
83
+
84
+ ## Why this shape
85
+
86
+ Same philosophy as the `audit_code` gate in `verification-config.md`: build-free,
87
+ model-agnostic, deterministic, and cheap enough to run at **every** agent's done
88
+ gate. It does not judge subjective quality (resonance, voice, persuasiveness) —
89
+ those stay with each agent's own checklist. It proves the artifact is *there*,
90
+ *structured*, and *not a placeholder*, which is exactly what self-asserted "done"
91
+ was silently skipping.
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: workflow-lean-lane
3
+ agents: [setup, product, sheldon, dev, qa, validator, neo, orchestrator]
4
+ modes: [planning]
5
+ task_types: [workflow, routing, configuration]
6
+ load_tier: trigger
7
+ triggers: [lean lane, workflow.config.json, fewer agents, menos é mais, lean pipeline]
8
+ ---
9
+
10
+ # Workflow Lean Lane (SMALL default; opt-in for MEDIUM)
11
+
12
+ SMALL features now run the **lean chain by default**, and MEDIUM runs the **`@orchestrator` maestro lane**
13
+ (`@product → @orchestrator → @dev → @pentester → @qa`), where `@orchestrator` fans out to
14
+ `@analyst`/`@architect`/`@pm` (+ `@ux-ui` when UI-heavy) as sub-agents and consolidates one gated spec
15
+ package, with `@scope-check`, `@discovery-design-doc`, and `@ux-ui` available as opt-in detours. The older heavy chain (`product → analyst → scope-check → architect →
16
+ discovery-design-doc → pm → dev → qa`) is no longer a built-in default, but its spec hops can be opted
17
+ back in. The bottleneck was never "too few design documents", it was the absence of a gate that runs the
18
+ real app (now fixed: see `.aioson/docs/sheldon/harness-contract.md` §2c and `@qa`'s Runtime smoke gate).
19
+
20
+ The **lean lane** removes the intermediate hops and makes `@sheldon` the single spec authority:
21
+
22
+ ```
23
+ product (PRD) → sheldon (enrich + ACs + design + plan + harness-contract) → dev → qa → (validator detour)
24
+ ```
25
+
26
+ `@sheldon` runs in **Lean lane mode (RF-LEAN)** and produces, in one pass, what analyst/architect/
27
+ discovery-design-doc/pm would have produced (requirements + ACs, design-doc + readiness, implementation plan,
28
+ and the §2c runtime-gated harness contract). `@dev` implements from that plan using the project's design skill;
29
+ `@qa` runs the Runtime smoke gate; `@validator` runs as a detour when a harness contract exists.
30
+
31
+ ## When to use which lane
32
+
33
+ | Use the **lean lane** when… | Opt into the **full chain** when… |
34
+ |---|---|
35
+ | Most features — bounded scope, a single product surface, a clear prototype | Genuinely large or multi-domain scope |
36
+ | You want velocity and one spec authority | Sensitive surface (money, multi-tenant ownership, regulated data) that wants independent architecture + scope-check + adversarial review as distinct gates |
37
+ | The team trusts `@sheldon` to own the bridge | You want the readiness/scope-check checkpoints to be separate agents |
38
+
39
+ The **runtime smoke gate is mandatory in both lanes** for every runtime surface the framework can prove from
40
+ local artifacts. The CLI blocks detectable runtime features (prototype manifest or migration/Prisma evidence)
41
+ without a valid `RG-*` contract; `@validator` still owns the target-app-only `has_api` judgment.
42
+
43
+ ## How to opt in
44
+
45
+ SMALL already ships lean — no config needed. Use this preset to extend the lean shape to MEDIUM (or to pin it
46
+ explicitly). Drop this file at `.aioson/context/workflow.config.json` (the CLI's `readWorkflowConfig` merges it over the
47
+ built-in defaults — per-classification arrays replace the defaults). Then run `aioson workflow:next .` as usual.
48
+
49
+ A ready-to-copy preset lives at `.aioson/docs/presets/workflow.config.lean.json`:
50
+
51
+ ```json
52
+ {
53
+ "version": 1,
54
+ "feature": {
55
+ "MICRO": ["product", "dev", "qa"],
56
+ "SMALL": ["product", "sheldon", "dev", "qa"],
57
+ "MEDIUM": ["product", "sheldon", "dev", "qa"]
58
+ },
59
+ "project": {
60
+ "MICRO": ["setup", "dev"],
61
+ "SMALL": ["setup", "product", "sheldon", "dev", "qa"],
62
+ "MEDIUM": ["setup", "product", "sheldon", "dev", "qa"]
63
+ },
64
+ "rules": { "required": ["dev"], "allowDetours": true }
65
+ }
66
+ ```
67
+
68
+ `allowDetours: true` keeps `@validator` (harness contract present) and `@tester`/`@pentester` (fired by `@qa`'s
69
+ triggers) available as detours — they are not in the static sequence in either lane.
70
+
71
+ Autopilot (`auto_handoff: true`) drives only the **post-dev** cycle (`@dev → @qa → …`) in the lean lane:
72
+ `@product`/`@sheldon` always hand off manually (upstream-agent policy), so there is nothing to auto-chain before
73
+ `@dev`. This matches the MEDIUM maestro lane, whose `@product`/`@orchestrator` pre-dev handoffs are also manual —
74
+ so the lean lane loses no automation it was ever supposed to have.
75
+
76
+ Running the agents by hand (slash commands) is equivalent: activate `@product → @sheldon → @dev → @qa` and skip
77
+ analyst/architect/discovery-design-doc/pm. No config file is needed for the manual path.
78
+
79
+ ## Full-merged chain (heavier, opt-in)
80
+
81
+ The lean/maestro defaults are enough for most work. When a project genuinely wants the heavier multi-agent
82
+ chain back — independent `@analyst`, `@architect`, and `@pm` as distinct gates — drop the **full-merged**
83
+ preset at `.aioson/context/workflow.config.json` (ready-to-copy at
84
+ `.aioson/docs/presets/workflow.config.full-merged.json`): it is that chain with `discovery-design-doc`
85
+ removed. On this full-merged detour, when the active sequence routes `@architect` → `@dev` while omitting
86
+ `@discovery-design-doc`, `@architect` runs in **merged mode** (see `agents/architect.md` → *Architect merged
87
+ mode*) and produces the design-doc + readiness + dev-state itself, then hands off to `@dev`. Merging `@architect` +
88
+ `@discovery-design-doc` keeps the readiness gate (the cheap, valuable part) while dropping the redundant
89
+ second file-level-plan hop; it is a velocity change, not a correctness one — the runtime gate is what
90
+ prevents the green-but-broken outcome.
91
+
92
+ ```json
93
+ {
94
+ "version": 1,
95
+ "feature": {
96
+ "MICRO": ["product", "dev", "qa"],
97
+ "SMALL": ["product", "analyst", "scope-check", "architect", "dev", "qa"],
98
+ "MEDIUM": ["product", "analyst", "architect", "pm", "scope-check", "dev", "pentester", "qa"]
99
+ },
100
+ "project": {
101
+ "MICRO": ["setup", "dev"],
102
+ "SMALL": ["setup", "product", "analyst", "scope-check", "architect", "dev", "qa"],
103
+ "MEDIUM": ["setup", "product", "analyst", "architect", "ux-ui", "pm", "orchestrator", "scope-check", "dev", "qa"]
104
+ },
105
+ "rules": { "required": ["dev"], "allowDetours": true }
106
+ }
107
+ ```
108
+
109
+ ## What this does NOT change
110
+
111
+ - The override mechanism is unchanged — `readWorkflowConfig` still merges `workflow.config.json` over the
112
+ built-in defaults (per-classification arrays replace the defaults). Only the built-in default *shape* changed
113
+ (SMALL ships lean, MEDIUM ships the `@orchestrator` maestro lane); the lean lane stays a project-level config +
114
+ agent capability, not a different engine.
115
+ - The runtime safety gates are unchanged: `@qa`'s Runtime smoke gate, the §2c `RG-*` criteria, the CLI
116
+ contract-integrity backstop, and `@validator`'s target-app judgment apply identically in both lanes.
117
+
118
+ ## What the lean lane DOES change about the gates
119
+
120
+ Removing `@analyst`/`@pm` removes the agents that produced `spec-{slug}.md` and approved the process gates
121
+ A (requirements), B (design) and C (plan). Those gates still fire under `aioson workflow:next` — `@dev`'s
122
+ completion checks **Gate C** against `spec-{slug}.md`, and `@qa`'s checks **Gate D** against the same file — so
123
+ the lean lane would dead-end at `@dev` if nothing produced them. In the lean lane **`@sheldon` owns that**: its
124
+ RF-LEAN pass writes `spec-{slug}.md` with `gate_requirements`/`gate_design`/`gate_plan: approved` and an
125
+ `implementation-plan-{slug}.md` with `status: approved` (the hops it collapsed, after the user confirms its
126
+ spec-authority output). Gate D / execution stays with `@qa`, which writes the `## QA sign-off` PASS into the same
127
+ file after the Runtime smoke gate. If you run the lane by hand (slash
128
+ commands, untracked), the gate frontmatter is informational — but writing it keeps the manual and tracked paths
129
+ identical.
@@ -28,6 +28,23 @@ It helps the agent make strong decisions when the user wants a deliberate, high-
28
28
  - Do not combine it with any other design skill.
29
29
  - Use it when the user wants strong design craft but has not asked for a very specific visual system.
30
30
 
31
+ ## Identity resolution (run FIRST, before any visual decision)
32
+
33
+ Resolve an `identity.md` in this order: `.aioson/briefings/{slug}/identity.md` (feature scope) →
34
+ `.aioson/context/identity.md` (project brand) → none.
35
+
36
+ - **If one exists, it is the identity source of truth this engine APPLIES**: take palette,
37
+ typography, spacing/layout, radius & depth, motion, design pillars, and signature moves from it as
38
+ the token layer, and feed its `## Component structure notes` into component/screen decisions. It is
39
+ extracted **data** (from the user's reference images via `reference-identity-extract`) that
40
+ parameterizes this one engine — never a second design skill, and never a license to skip the
41
+ quality gates below.
42
+ - **If none exists**, run intent-first: choose the surface type, domain palette, and signature move
43
+ yourself per the references. Do not fabricate an `identity.md`.
44
+
45
+ Every consumer of this package (ux-ui, prototype-forge, dev builds) inherits this step by loading
46
+ this SKILL — see `.aioson/docs/reference-identity.md`.
47
+
31
48
  ## Loading guide
32
49
 
33
50
  | Task | Load |
@@ -19,6 +19,8 @@ If `.interface-design/system.md` exists, treat it as the visual source of truth:
19
19
  - Respect it unless the user explicitly wants a redesign.
20
20
  - Update it when you introduce a reusable pattern, token rule, or layout decision.
21
21
 
22
+ If an `identity.md` exists (`.aioson/briefings/{slug}/identity.md`, else `.aioson/context/identity.md`), treat it as the visual source of truth too — it is the **extracted-from-references** form of `system.md`, distilled once from the user's own reference images (see `.aioson/docs/reference-identity.md`). Load its token sections and `## Component structure notes` before choosing a direction, and **apply** them rather than re-deriving a generic one. It is an input you apply, not a separate design system.
23
+
22
24
  If the file does not exist and the task covers more than one screen or component family, create it with:
23
25
  - Product context and UI intent
24
26
  - Chosen design direction and anti-goals
@@ -5,15 +5,15 @@
5
5
 
6
6
  ## When to use
7
7
 
8
- Load this skill when:
9
- - starting spec work for a new feature or project (any agent)
10
- - deciding phase depth based on classification (MICRO / SMALL / MEDIUM)
11
- - preparing a clean handoff to the next agent
12
- - retaking work after a session break (check `last_checkpoint` + `phase_gates` first)
13
-
14
- Do not load this skill for `@deyvin` activation-only recovery. A bare `@deyvin` activation is status recovery, not spec work; run Deyvin's fast path and stop before opening this file.
15
-
16
- Do NOT load the entire `references/` folder. Load only the file matching your current need.
8
+ Load this skill when:
9
+ - starting spec work for a new feature or project (any agent)
10
+ - deciding phase depth based on classification (MICRO / SMALL / MEDIUM)
11
+ - preparing a clean handoff to the next agent
12
+ - retaking work after a session break (check `last_checkpoint` + `phase_gates` first)
13
+
14
+ Do not load this skill for `@deyvin` activation-only recovery. A bare `@deyvin` activation is status recovery, not spec work; run Deyvin's fast path and stop before opening this file.
15
+
16
+ Do NOT load the entire `references/` folder. Load only the file matching your current need.
17
17
 
18
18
  ## What phases exist
19
19
 
@@ -21,9 +21,9 @@ Do NOT load the entire `references/` folder. Load only the file matching your cu
21
21
  |-------|----------------|---------------|-------|-------|--------|
22
22
  | Specify | `prd*.md` | @product | lite | full | full |
23
23
  | Research/Discuss | `sheldon-enrichment*.md` | @sheldon | optional | recommended | required |
24
- | Requirements | `requirements-{slug}.md` | @analyst | skip | required | required |
25
- | Alignment Check | `scope-check*.md` | @scope-check | skip | early | final before dev |
26
- | Design | `architecture.md`, `design-doc*.md` | @architect | skip | selective | required |
24
+ | Requirements | `requirements-{slug}.md` | @analyst | skip | required | required |
25
+ | Alignment Check | `scope-check*.md` | @scope-check (detour) | skip | opt-in detour | opt-in detour |
26
+ | Design | `architecture.md`, `design-doc*.md` | @architect | skip | selective | required |
27
27
  | Tasks/Plan | `implementation-plan*.md` | @dev | optional | recommended | required |
28
28
  | Execute | code, commits, spec updates | @dev, @deyvin | — | — | — |
29
29
  | State/Resume | `spec*.md`, runtime | @dev, @deyvin | — | — | — |
@@ -31,8 +31,10 @@ Do NOT load the entire `references/` folder. Load only the file matching your cu
31
31
  ## Phase depth by classification
32
32
 
33
33
  - **MICRO**: Specify (lite) + Execute. Skip Requirements, Design, Plan unless complexity warrants it.
34
- - **SMALL**: Specify + Requirements + scope check + selective Design + Plan. @sheldon recommended before downstream.
35
- - **MEDIUM**: Full packall phases, all artifacts, @sheldon validation before @analyst, final scope check before @dev, implementation plan required.
34
+ - **SMALL**: lean by default — Specify (`@product`) + `@sheldon` as the single spec authority (requirements + ACs, design-doc + readiness, plan, and harness contract in one pass) → `@dev` → `@qa`. The heavier multi-agent chain (`@analyst` + selective Design + `@scope-check` detour) is an opt-in escape hatch.
35
+ - **MEDIUM**: `@orchestrator` maestro`@product @orchestrator @dev @pentester @qa` (feature). `@orchestrator` is the single spec authority: it fans out to `@analyst` + `@architect` + `@pm` (+ `@ux-ui` when UI-heavy) as sub-agents, then consolidates/verifies/redoes their output into one gated spec package (requirements + spec[Gates A/B/C] + design-doc + readiness + implementation-plan + harness-contract) for `@dev` — the horizontal counterpart to `@sheldon`'s lean lane. `@analyst`, `@architect`, `@pm`, `@discovery-design-doc`, `@scope-check`, and `@ux-ui` are no longer default hops (sub-agents the orchestrator invokes) and remain opt-in detours; `@architect`'s merged mode survives only for the opt-in full-chain detour. The deterministic drift check (`spec:analyze`) runs at the `@dev`/`@qa` done gate, not as a separate scope-check hop. Implementation plan required.
36
+
37
+ **Lean lane (SMALL default; opt-in for MEDIUM):** `@product → @sheldon → @dev → @qa`, where `@sheldon` runs **Lean lane mode (RF-LEAN)** and produces the requirements/ACs, design-doc + readiness, implementation plan, and §2c runtime-gated harness contract in one pass — replacing the analyst/architect/discovery-design-doc/pm hops. SMALL runs this by default; MEDIUM opts in via `.aioson/context/workflow.config.json`. See `.aioson/docs/workflow-lean-lane.md`. The runtime smoke gate is mandatory in both lanes.
36
38
 
37
39
  ## References available
38
40
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  ## Gate A — Requirements approval
7
7
 
8
- **Before leaving @product / @analyst → @scope-check, @architect, or @dev**
8
+ **Before leaving @product / @analyst → @architect or @dev (`@scope-check` only when its opt-in detour is in the sequence)**
9
9
 
10
10
  Required for the gate to pass:
11
11
  - [ ] Objectives are clear and unambiguous
@@ -54,7 +54,7 @@ Required for the gate to pass:
54
54
  Required for the gate to pass:
55
55
  - [ ] Execution sequence is defined
56
56
  - [ ] Checkpoints are listed with criteria of done
57
- - [ ] Context package is listed as a short primary activation package plus phase-triggered loads (which files to read before each phase, and why)
57
+ - [ ] Context package is listed as a short primary activation package plus phase-triggered loads (which files to read before each phase, and why)
58
58
  - [ ] Review / QA requirements are noted
59
59
  - [ ] Decisions marked "pre-taken" are FINAL — @dev does not re-discuss
60
60
 
@@ -7,10 +7,10 @@
7
7
  | Phase | MICRO (0–1) | SMALL (2–3) | MEDIUM (4–6) |
8
8
  |-------|-------------|-------------|--------------|
9
9
  | Specify (PRD) | 1 conversation, lite template | Full PRD conversation | Full PRD + `## Specify depth` section |
10
- | Research (@sheldon) | Skip unless links/external sources provided | Recommendedrun before @analyst | Required — run Modo C (full validation) |
11
- | Requirements (@analyst) | Skip — go @product → @dev | Required `requirements-{slug}.md` | Required — with requirement IDs + ACs |
12
- | Design (@architect) | Skip unless auth or external integration | Selective only if new architecture pattern | Required — full `architecture.md` |
13
- | Plan (implementation-plan) | Optional — suggest only if @dev asks | Recommended | Required — with gate approval + verification criteria |
10
+ | Research (@sheldon) | Skip unless links/external sources provided | Required`@sheldon` is the single spec authority (lean default) | Required — folded into the `@orchestrator` maestro fan-out (consolidated, not a separate `@sheldon` hop) |
11
+ | Requirements (@analyst) | Skip — go @product → @dev | From `@sheldon` in the lean default; `@analyst` only on the full-chain detour | Required — produced via the `@orchestrator` maestro fan-out (`@analyst` sub-agent), with requirement IDs + ACs |
12
+ | Design (@architect) | Skip unless auth or external integration | From `@sheldon` in the lean default; `@architect` only on the full-chain detour | Required — produced via the `@orchestrator` maestro fan-out (`@architect` sub-agent), design-doc + `architecture.md` |
13
+ | Plan (implementation-plan) | Optional — suggest only if @dev asks | Recommended | Required — produced via the `@orchestrator` maestro fan-out (`@pm` sub-agent), with gate approval + verification criteria |
14
14
  | Execute (@dev) | Direct from PRD | From requirements + spec | From approved plan only |
15
15
  | State (@dev, @deyvin) | Minimal `spec.md` note | `spec-{slug}.md` with phase_gates | Full spec pack — phase_gates + checkpoints + maintenance notes |
16
16
 
@@ -2,15 +2,15 @@
2
2
 
3
3
  > Router file. Do not duplicate logic from the generic references — load those directly.
4
4
 
5
- ## Which references to load for implementation
6
-
7
- ### Always load when this skill is active
8
-
9
- - `maintenance-and-state.md` — use to write and update `spec-{slug}.md` correctly: `phase_gates`, `last_checkpoint`, `pending_review`, and `Key decisions` format
10
- - `approval-gates.md` — Gate C (plan approval) must be checked before executing a significant batch; Gate D (execution verification) defines done criteria for each phase
11
- - For SMALL/MEDIUM work, confirm `.aioson/context/design-doc*.md` and `.aioson/context/readiness*.md` were produced by `@discovery-design-doc` before implementation starts. Load them only when `dev-state.md`, readiness, the plan, or touched paths require their details.
12
-
13
- ### Load when starting a new feature with classification context
5
+ ## Which references to load for implementation
6
+
7
+ ### Always load when this skill is active
8
+
9
+ - `maintenance-and-state.md` — use to write and update `spec-{slug}.md` correctly: `phase_gates`, `last_checkpoint`, `pending_review`, and `Key decisions` format
10
+ - `approval-gates.md` — Gate C (plan approval) must be checked before executing a significant batch; Gate D (execution verification) defines done criteria for each phase
11
+ - For SMALL/MEDIUM work, confirm `.aioson/context/design-doc*.md` and `.aioson/context/readiness*.md` exist before implementation starts — produced by `@orchestrator` (maestro mode) on MEDIUM, by `@sheldon` on the SMALL lean lane, or by `@architect` (merged mode) / `@discovery-design-doc` when those detours are in the sequence. Load them only when `dev-state.md`, readiness, the plan, or touched paths require their details.
12
+
13
+ ### Load when starting a new feature with classification context
14
14
 
15
15
  - `classification-map.md` — use to confirm whether an implementation plan is optional (MICRO), recommended (SMALL), or required (MEDIUM) before starting
16
16
 
@@ -35,7 +35,7 @@ At session start, after reading `spec-{slug}.md`:
35
35
  3. If versions match: proceed normally
36
36
 
37
37
  Additionally, at session start for SMALL/MEDIUM:
38
- 4. Run `aioson ac:test-audit . --feature={slug}` when a feature slug exists, or manually check that each `AC-*` from `requirements-{slug}.md` appears in a corresponding test file
38
+ 4. Run `aioson ac:test-audit . --feature={slug}` when a feature slug exists, or manually check that each `AC-*` from `requirements-{slug}.md` appears in a corresponding test file
39
39
  5. If coverage is < 50%:
40
40
  > "⚠ AC coverage is low ({N}/{M} ACs have tests). Consider writing missing tests before adding new behavior."
41
41
  This is informational, not blocking.
@@ -43,8 +43,8 @@ Additionally, at session start for SMALL/MEDIUM:
43
43
  ## Behavioral notes
44
44
 
45
45
  - `spec-{slug}.md` must be updated at the end of every implementation session — see `maintenance-and-state.md` for format
46
- - Gate C from `approval-gates.md` means the implementation plan is locked — do not re-discuss pre-taken decisions
47
- - Treat `dev-state.md` as the primary activation package and `implementation-plan-{slug}.md` as the source for phase-triggered context loads
48
- - Gate D verification must happen before marking a phase complete — not just "I think it works". The deterministic floor is `aioson ac:test-audit . --feature={slug}` plus the real test command.
49
- - If `phase_gates.plan` is `pending` and classification is SMALL/MEDIUM, suggest generating an implementation plan before proceeding
50
- - If `design-doc.md` or `readiness.md` is missing for SMALL/MEDIUM, route to `@discovery-design-doc` instead of coding first
46
+ - Gate C from `approval-gates.md` means the implementation plan is locked — do not re-discuss pre-taken decisions
47
+ - Treat `dev-state.md` as the primary activation package and `implementation-plan-{slug}.md` as the source for phase-triggered context loads
48
+ - Gate D verification must happen before marking a phase complete — not just "I think it works". The deterministic floor is `aioson ac:test-audit . --feature={slug}` plus the real test command.
49
+ - If `phase_gates.plan` is `pending` and classification is SMALL/MEDIUM, suggest generating an implementation plan before proceeding
50
+ - If `design-doc.md` or `readiness.md` is missing for SMALL/MEDIUM, route back to their producer instead of coding first — `@orchestrator` (maestro mode) on MEDIUM, `@sheldon` on the SMALL lean lane, or `@architect` (merged mode) / `@discovery-design-doc` when those detours are active
@@ -39,6 +39,12 @@ not in the design skill's.
39
39
  `.aioson/docs/feature-expansion-taxonomy.md`.
40
40
  2. `.aioson/briefings/{slug}/briefings.md` for problem, users, and the chosen direction.
41
41
  3. `design_skill` from `.aioson/context/project.context.md`; load that skill before any layout.
42
+ 4. When `design_skill: interface-design`, resolve an `identity.md` — `.aioson/briefings/{slug}/identity.md`,
43
+ else `.aioson/context/identity.md`. If one exists it is the visual source of truth the engine **applies**:
44
+ tokens come from its `## Palette` / `## Typography` / `## Spacing & layout` / `## Radius & depth` /
45
+ `## Motion` sections, and its `## Component structure notes` augment the surface map (input 1) with
46
+ per-component regions, anatomy, and states. `identity.md` overlays the one engine — it is **not** a
47
+ second visual system. If none exists, `interface-design` runs intent-first.
42
48
 
43
49
  If no operational surface map exists, build one first — it is the screen inventory, and without it the
44
50
  prototype cannot be complete.
@@ -0,0 +1,164 @@
1
+ ---
2
+ name: reference-identity-extract
3
+ description: "Process skill that distills user-provided reference images — a brand/visual-identity set and an optional component/structure set — into a single text identity.md (token system + per-component structure notes) ONCE, so the build consumes text, not images. Use inside @briefing-refiner (or @setup for project-wide brand) when the user wants a specific, premium look driven by their own references instead of a fixed preset. Pairs with the interface-design engine: identity.md is the extracted-from-references form of its system.md. Owns extraction + the identity record; never owns the build."
4
+ ---
5
+
6
+ # Reference Identity Extract
7
+
8
+ Turn **reference images** into a **text identity record** that the `interface-design` engine
9
+ applies. The user drops images — their brand, a product they admire, a screen they want — and this
10
+ skill reads them **once** (vision) and writes `identity.md`: real tokens (palette, type, spacing,
11
+ depth, motion, signature moves) plus per-component **structure notes**. Every later build reads the
12
+ **text**, never the images.
13
+
14
+ Why text, not images on every build: the build then runs on any harness (a vision-less harness still
15
+ reads the record), the user can **correct** the extracted palette, the record is **gateable**
16
+ (`verify:artifact --kind=identity`), and two extractions can't silently disagree — the frozen text is
17
+ the source of truth.
18
+
19
+ This generalizes what AIOSON already does when it extracts a real website into a token spec: same
20
+ idea, but the **source** is images and the **lifetime** is per-briefing (or per-project brand), not a
21
+ frozen preset.
22
+
23
+ ## Division of labor (do not blur)
24
+
25
+ - **This skill owns** extraction + the `identity.md` record: tokens from identity images, structure
26
+ notes from component/screen images.
27
+ - **`interface-design` owns the build**: it *applies* `identity.md` as its identity source-of-truth.
28
+ `identity.md` is an INPUT that parameterizes the one engine — never a second design skill.
29
+ - **`prototype-forge` owns** screens/navigation/CRUD/state; it reads `identity.md`'s
30
+ `## Component structure notes` to seed its surface map.
31
+
32
+ ## Two image roles (keep them separate)
33
+
34
+ | role | folder | feeds |
35
+ |---|---|---|
36
+ | **Visual identity** (brand: color, type, texture, feel) | `references/identity/` | the token sections |
37
+ | **Component / structure** (a board, a table, a screen) | `references/structure/` | `## Component structure notes` → the surface map |
38
+
39
+ Synthesis = **apply the identity to the structure**. A component image contributes layout/structure
40
+ *only* — its own colors/fonts are ignored; the look comes from the identity images.
41
+
42
+ ## Scope & paths (resolve before writing)
43
+
44
+ - **Per-briefing (default):** record `.aioson/briefings/{slug}/identity.md`; images in
45
+ `.aioson/briefings/{slug}/references/identity/` and `.../references/structure/`.
46
+ - **Project brand:** record `.aioson/context/identity.md`; images in
47
+ `.aioson/context/brand-references/identity/` and `.../brand-references/structure/`.
48
+
49
+ Read order used by every consumer (`@ux-ui`, `prototype-forge`): per-briefing → project brand → none.
50
+ The **text record is canonical and committed**; the images are raw source and may be `.gitignore`d —
51
+ extraction is one-time, so the build never needs them again.
52
+
53
+ ## Inputs (read in this order)
54
+
55
+ 1. Scope + target path (briefing `{slug}`, or `brand`).
56
+ 2. Every file under `references/identity/` and `references/structure/` for that scope.
57
+ 3. `.aioson/context/project.context.md` for `design_skill` / domain (and to confirm interface-design).
58
+
59
+ ## Build contract (enforceable)
60
+
61
+ 1. **One vision pass, then text only.** Read each image once. Identity images →
62
+ palette/type/spacing/radius/depth/motion/signature/anti-goals. Structure images → one
63
+ `### {component}` block each (regions, anatomy, state matrix, interactions). After this pass the
64
+ build never touches images again.
65
+ 2. **Real values, never placeholders.** Emit concrete hex, named font stacks, numeric scales. Do not
66
+ leave `#RRGGBB`, `{hex}`, `{token}`, `TODO`, `Lorem ipsum`, or any unfilled token — the gate
67
+ rejects them.
68
+ 3. **Map to interface-design token families.** Palette → foreground/background/border/brand/semantic;
69
+ type → display/body/mono + scale; spacing/radius/depth → the engine's families. Pick **exactly one**
70
+ depth strategy (`borders-only` | `subtle-shadows` | `layered-surfaces`).
71
+ 4. **Anti-sameness anchors are mandatory.** `## Design pillars` (2–3) and `## Signature moves` (1–3,
72
+ something that could only belong to THIS product) must be present and specific — they are what
73
+ defeat the generic look.
74
+ 5. **Structure notes drive the surface map.** Each `### {component}` lists regions, anatomy, the
75
+ empty/loading/error/populated/permission states, and the interactions. If no structure images were
76
+ given, write `None — identity-only` under `## Component structure notes`.
77
+ 6. **Self-gate before handing back.** Run
78
+ `aioson verify:artifact . --kind=identity --file=<path> --advisory 2>/dev/null || true` and fix any
79
+ reported gap before returning.
80
+ 7. **Generic provenance.** `## Provenance` describes the sources by type only (e.g. "3 identity
81
+ images, 1 board screenshot"). Never name an external product, brand, site, or tool in any field.
82
+
83
+ ## identity.md schema (write exactly these headers)
84
+
85
+ ```markdown
86
+ ---
87
+ kind: identity
88
+ scope: briefing # briefing | brand
89
+ slug: {slug} # briefing slug, or "project" for brand scope
90
+ source: references # references (from images) | intent (image-less fallback)
91
+ generated_by: reference-identity-extract
92
+ generated_at: {YYYY-MM-DD}
93
+ confidence: high # high | medium | low — how well the images pinned each token
94
+ theme: light-dark # light | dark | light-dark
95
+ base_unit: 4px
96
+ ---
97
+
98
+ ## Design pillars
99
+ - <2–3 specific pillars; the primary anti-sameness anchor>
100
+
101
+ ## Palette
102
+ - foreground/primary: #RRGGBB ← real hex only
103
+ - foreground/secondary: #RRGGBB
104
+ - background/base: #RRGGBB
105
+ - background/surface: #RRGGBB
106
+ - border/default: rgba(…)
107
+ - brand/primary: #RRGGBB
108
+ - semantic/success | warning | danger | info: #…, #…, #…, #…
109
+
110
+ ## Typography
111
+ - display / body / mono: "<family>", <fallback stack>
112
+ - scale: page <px/weight>, section <px/weight>, body <px/weight/line-height>, meta <px/weight>
113
+
114
+ ## Spacing & layout
115
+ - base: 4px — scale: 4, 8, 12, 16, 24, 32
116
+ - breakpoints: mobile <px> / tablet <px> / desktop <px>
117
+ - grid: <cols>-col, gutter <px>
118
+
119
+ ## Radius & depth
120
+ - radius ladder: sharp <px> / medium <px> / large <px>
121
+ - depth strategy: borders-only ← exactly ONE of borders-only | subtle-shadows | layered-surfaces
122
+
123
+ ## Motion
124
+ - posture: <duration/easing>; entrances <description>
125
+ - reduced-motion: honor prefers-reduced-motion
126
+
127
+ ## Signature moves
128
+ - <1–3 moves that could only belong to THIS product; second anti-sameness anchor>
129
+
130
+ ## Anti-goals
131
+ - <3 generic defaults this identity explicitly replaces>
132
+
133
+ ## Component structure notes
134
+ <one ### block per structure image, or "None — identity-only">
135
+
136
+ ### Board
137
+ - regions: <…>
138
+ - anatomy: <…>
139
+ - states: empty, loading, error, populated, permission-denied
140
+ - interactions: <add / move / edit / archive / …>
141
+
142
+ ## Provenance
143
+ - Generic only. e.g. "identity references: 3 images; structure references: 1 board screenshot."
144
+ ```
145
+
146
+ ## Image-less fallback (no references given)
147
+
148
+ Do **not** fabricate a palette. Either:
149
+ - **(default)** write nothing and let `interface-design` run its own Phase 0 (intent-first) — its
150
+ domain palette + signature move already defeat sameness; or
151
+ - if the user wants a **persisted** system anyway, run interface-design Phase 0 yourself and write
152
+ `identity.md` with `source: intent` and the same schema (still no placeholders).
153
+
154
+ ## Cross-harness note
155
+
156
+ A vision-less harness cannot run the extraction pass. There, either run extraction once on a
157
+ vision-capable harness, or hand-author `identity.md` from the schema above — the gate then proves it
158
+ is complete. The build is identical in both cases because it only ever reads the text.
159
+
160
+ ## Output
161
+
162
+ - The `identity.md` record at the resolved path (briefing or project scope).
163
+ - Nothing else. This skill never builds UI, never edits `briefings.md`, and never becomes canonical
164
+ feedback — it produces the identity record the build consumes.
@@ -28,11 +28,11 @@ When Evaluator finds issues:
28
28
 
29
29
  ### Session isolation
30
30
 
31
- Each role should run from a compact operational handoff:
32
- - Planner sessions: produce artifacts, then /compact for same-feature continuation
33
- - Generator sessions: read spec pack + implement, then /compact for same-feature continuation
34
- - Evaluator sessions: read code + spec + verify, then /compact for same-feature continuation
35
- - Use /clear only for a hard reset, feature switch, polluted context, or security-sensitive reset
31
+ Each role should run from a compact operational handoff:
32
+ - Planner sessions: produce artifacts, then /compact for same-feature continuation
33
+ - Generator sessions: read spec pack + implement, then /compact for same-feature continuation
34
+ - Evaluator sessions: read code + spec + verify, then /compact for same-feature continuation
35
+ - Use /clear only for a hard reset, feature switch, polluted context, or security-sensitive reset
36
36
 
37
37
  Cross-role communication happens through artifacts on disk, not conversation history.
38
38