@jaimevalasek/aioson 1.28.0 → 1.29.1

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 (94) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/docs/pt/4-agentes/briefing.md +2 -0
  3. package/docs/pt/4-agentes/copywriter.md +2 -0
  4. package/docs/pt/4-agentes/genome.md +1 -0
  5. package/docs/pt/4-agentes/profiler-enricher.md +2 -0
  6. package/docs/pt/4-agentes/profiler-forge.md +2 -0
  7. package/docs/pt/4-agentes/sheldon.md +2 -0
  8. package/docs/pt/4-agentes/squad.md +12 -10
  9. package/docs/pt/5-referencia/comandos-cli.md +2 -0
  10. package/docs/pt/5-referencia/memoria-e-contexto.md +60 -0
  11. package/package.json +1 -1
  12. package/src/cli.js +5 -0
  13. package/src/commands/rules-lint.js +116 -0
  14. package/src/context-selector.js +29 -5
  15. package/template/.aioson/agents/analyst.md +57 -41
  16. package/template/.aioson/agents/architect.md +40 -33
  17. package/template/.aioson/agents/briefing.md +96 -81
  18. package/template/.aioson/agents/copywriter.md +34 -2
  19. package/template/.aioson/agents/discover.md +5 -8
  20. package/template/.aioson/agents/discovery-design-doc.md +42 -35
  21. package/template/.aioson/agents/genome.md +3 -1
  22. package/template/.aioson/agents/orache.md +6 -15
  23. package/template/.aioson/agents/orchestrator.md +38 -31
  24. package/template/.aioson/agents/pm.md +7 -0
  25. package/template/.aioson/agents/product.md +146 -174
  26. package/template/.aioson/agents/profiler-enricher.md +19 -0
  27. package/template/.aioson/agents/profiler-forge.md +6 -0
  28. package/template/.aioson/agents/qa.md +18 -10
  29. package/template/.aioson/agents/scope-check.md +6 -0
  30. package/template/.aioson/agents/sheldon.md +30 -14
  31. package/template/.aioson/agents/site-forge.md +2 -6
  32. package/template/.aioson/agents/squad.md +5 -12
  33. package/template/.aioson/agents/tester.md +29 -23
  34. package/template/.aioson/agents/ux-ui.md +43 -36
  35. package/template/.aioson/agents/validator.md +2 -2
  36. package/template/.aioson/docs/LAYERS.md +2 -0
  37. package/template/.aioson/docs/autonomy-protocol.md +7 -5
  38. package/template/.aioson/docs/autopilot-handoff.md +2 -0
  39. package/template/.aioson/docs/dev/execution-discipline.md +3 -0
  40. package/template/.aioson/docs/dev/simple-plan-lane.md +95 -92
  41. package/template/.aioson/docs/dev/stack-conventions.md +3 -0
  42. package/template/.aioson/docs/deyvin/continuity-recovery.md +21 -18
  43. package/template/.aioson/docs/deyvin/debugging-escalation.md +3 -0
  44. package/template/.aioson/docs/deyvin/pair-execution.md +3 -0
  45. package/template/.aioson/docs/deyvin/runtime-handoffs.md +3 -0
  46. package/template/.aioson/docs/dossier/agent-templates.md +3 -0
  47. package/template/.aioson/docs/dossier/schema.md +3 -0
  48. package/template/.aioson/docs/example-external-api-context.md +2 -0
  49. package/template/.aioson/docs/handoff-persistence.md +96 -94
  50. package/template/.aioson/docs/pentester/app-playbooks.md +3 -0
  51. package/template/.aioson/docs/pentester/browser-dast-playbook.md +401 -398
  52. package/template/.aioson/docs/pentester/llm-supplychain.md +3 -0
  53. package/template/.aioson/docs/quality/code-health-analysis.md +2 -0
  54. package/template/.aioson/docs/sheldon/enrichment-paths.md +3 -0
  55. package/template/.aioson/docs/sheldon/harness-contract.md +3 -0
  56. package/template/.aioson/docs/sheldon/quality-lens.md +3 -0
  57. package/template/.aioson/docs/sheldon/research-loop.md +3 -0
  58. package/template/.aioson/docs/sheldon/web-intelligence.md +3 -0
  59. package/template/.aioson/docs/site-forge-build.md +4 -2
  60. package/template/.aioson/docs/site-forge-extraction.md +2 -0
  61. package/template/.aioson/docs/site-forge-qa.md +2 -0
  62. package/template/.aioson/docs/site-forge-recon.md +7 -5
  63. package/template/.aioson/docs/site-forge-transform.md +2 -0
  64. package/template/.aioson/docs/squad/content-output.md +3 -0
  65. package/template/.aioson/docs/squad/creation-flow.md +22 -1
  66. package/template/.aioson/docs/squad/domain-breadth.md +3 -0
  67. package/template/.aioson/docs/squad/domain-classification.md +3 -0
  68. package/template/.aioson/docs/squad/eval-gate.md +3 -0
  69. package/template/.aioson/docs/squad/genome-bindings.md +14 -0
  70. package/template/.aioson/docs/squad/package-contract.md +5 -0
  71. package/template/.aioson/docs/squad/persona-grounding.md +65 -62
  72. package/template/.aioson/docs/squad/quality-lens.md +3 -0
  73. package/template/.aioson/docs/squad/research-loop.md +3 -0
  74. package/template/.aioson/docs/squad/session-operations.md +3 -0
  75. package/template/.aioson/docs/squad/workflow-quality.md +3 -0
  76. package/template/.aioson/docs/tester/coverage-quality.md +3 -0
  77. package/template/.aioson/rules/README.md +28 -0
  78. package/template/.aioson/rules/agent-language-policy.md +26 -21
  79. package/template/.aioson/rules/agent-structural-contract.md +5 -0
  80. package/template/.aioson/rules/aioson-context-boundary.md +6 -1
  81. package/template/.aioson/rules/canonical-path-contract.md +15 -10
  82. package/template/.aioson/rules/data-format-convention.md +16 -11
  83. package/template/.aioson/rules/disk-first-artifacts.md +10 -6
  84. package/template/.aioson/rules/example-monetary-values.md +4 -0
  85. package/template/.aioson/rules/output-brevity.md +2 -0
  86. package/template/.aioson/rules/prd-section-ownership.md +17 -12
  87. package/template/.aioson/rules/security-baseline.md +4 -0
  88. package/template/.aioson/rules/simple-plan-lane.md +5 -0
  89. package/template/.aioson/rules/spec-level-ownership.md +10 -5
  90. package/template/.aioson/rules/squad-driver-pattern.md +5 -0
  91. package/template/.aioson/tasks/squad-create.md +11 -0
  92. package/template/.aioson/tasks/squad-design.md +3 -3
  93. package/template/AGENTS.md +1 -1
  94. package/template/CLAUDE.md +1 -1
@@ -17,20 +17,32 @@ If routed here for any out-of-scope reason, **refuse and redirect**:
17
17
  - Structural review of implemented system → `/aioson:agent:architect`
18
18
  - New feature framing without a PRD → `/aioson:agent:product` first, then come back here for enrichment
19
19
 
20
- ## Project rules, docs & design docs
20
+ ## Activation-only fast path
21
21
 
22
- These directories are **optional**. Check silently if a directory is absent or empty, move on without mentioning it.
22
+ Evaluate this immediately after the strict scope boundary and before loading any other context, doc, or skill.
23
23
 
24
- 1. **`.aioson/rules/`** If `.md` files exist, read each file's YAML frontmatter:
25
- - If `agents:` is absent or `[]` → load (universal rule).
26
- - If `agents:` includes `sheldon` load. Otherwise skip.
27
- - Loaded rules **override** the default conventions in this file.
28
- 2. **`.aioson/docs/`** — If files exist, load only those whose `description` frontmatter is relevant to the current task, or that are explicitly referenced by a loaded rule.
29
- 3. **`.aioson/context/design-doc*.md`** — If `design-doc.md` or `design-doc-{slug}.md` files exist, read each file's YAML frontmatter:
30
- - If `agents:` is absent load when the `scope` or `description` matches the current task.
31
- - If `agents:` includes `sheldon` → load. Otherwise skip.
32
- - Design docs provide architectural decisions, technical flows, and implementation guidance — use them as constraints, not suggestions.
33
- 4. **`.aioson/design-docs/*.md`** — Load relevant governance docs when enrichment, sizing, or phased planning changes module boundaries, naming, reuse, or code-structure constraints.
24
+ If the user only activates `@sheldon` without naming a PRD, slug, or concrete enrichment task:
25
+
26
+ 1. When the CLI is available, run `aioson context:select . --agent=sheldon --mode=planning --task="agent activation without concrete task" --paths=""`.
27
+ 2. Load only: `project.context.md`, a filename listing of `.aioson/context/prd*.md` (names only — no contents), and the `features.md` table.
28
+ 3. Present the RF-01 PRD list for selection and stop.
29
+
30
+ Do NOT load on activation: PRD contents, `.aioson/brains/_index.json`, `plans/`/`prds/` contents, `done/MANIFEST.md`, dossiers, `sheldon-enrichment*.md`, rules/docs/design docs, or any sheldon doc. Everything else loads after the target PRD is selected.
31
+
32
+ ## Context loading modes
33
+
34
+ Use explicit modes instead of eager-loading rules, docs, memories, and design docs.
35
+
36
+ - **PLANNING** — inspect PRD lists, frontmatter, registry/status, research cache indexes, and `context:select`; do not load full rule/doc folders.
37
+ - **EXECUTING** — before applying improvements or writing `sheldon-enrichment-{slug}.md` / phased plans, load only selected context plus the sheldon docs required by the Deterministic preflight.
38
+
39
+ When the CLI is available:
40
+ ```bash
41
+ aioson context:select . --agent=sheldon --mode=planning --task="<task>" --paths="<prd or source files>"
42
+ aioson context:select . --agent=sheldon --mode=executing --task="<task>" --paths=".aioson/context/sheldon-enrichment-{slug}.md"
43
+ ```
44
+
45
+ The selector may choose from `.aioson/rules/`, `.aioson/docs/`, `.aioson/context/design-doc*.md`, and `.aioson/design-docs/*.md` (governance matters when enrichment, sizing, or phased planning changes module boundaries, naming, reuse, or code structure). Load only selected files. If the CLI is unavailable, read frontmatter first and load only files whose `agents`, `modes`, `task_types`, `triggers`, `scope`, or `description` match the current enrichment decision. Loaded rules override this file.
34
46
 
35
47
  ## Position in the workflow
36
48
 
@@ -47,6 +59,9 @@ These directories are **optional**. Check silently — if a directory is absent
47
59
  **Rule**: `@sheldon` can only be activated on PRDs not yet implemented. After the target PRD is selected, only `features.md` for that selected slug decides whether the feature is already `done`; project-level `spec.md` never blocks enrichment.
48
60
 
49
61
  ## Required input
62
+
63
+ Load each item at the step that needs it — never all upfront (see **Activation-only fast path**):
64
+
50
65
  - `.aioson/context/project.context.md`
51
66
  - `.aioson/context/prd.md` or `prd-{slug}.md`
52
67
  - `.aioson/context/features.md` (if present)
@@ -55,7 +70,7 @@ These directories are **optional**. Check silently — if a directory is absent
55
70
 
56
71
  ## Brain (procedural memory)
57
72
 
58
- Load `.aioson/brains/_index.json` on activation. If review tags match `sheldon/architecture-decisions`, load `.aioson/brains/sheldon/architecture-decisions.brain.json` and apply nodes with `q ≥ 4` as defaults — they encode structural lessons proven inside AIOSON itself.
73
+ Load `.aioson/brains/_index.json` after the target PRD is selected (RF-01) — never on bare activation. If review tags match `sheldon/architecture-decisions`, load `.aioson/brains/sheldon/architecture-decisions.brain.json` and apply nodes with `q ≥ 4` as defaults — they encode structural lessons proven inside AIOSON itself.
59
74
 
60
75
  Cross-reference query before architectural recommendations:
61
76
 
@@ -199,7 +214,7 @@ When done, say "ready" or "analyze".
199
214
 
200
215
  Apply a short, branch-by-branch decision style:
201
216
 
202
- - Before asking, mine the PRD, briefing source, feature dossier, features registry, rules, docs, design docs, research cache, brain memory, and prior handoffs.
217
+ - Before asking, mine the PRD, briefing source, feature dossier, features registry, research cache, brain memory, and the files chosen by `context:select` — do not open rules/docs/design-docs wholesale to hunt for answers.
203
218
  - Do not ask the user to restate facts already present in those sources.
204
219
  - A question is valid only if the answer changes enrichment priority, scope, acceptance boundary, risk, reversibility, delivery path, or a real trade-off.
205
220
  - Prefer owner-only questions: risk tolerance, launch sequencing, excluded scenarios, operational burden, compliance/privacy constraints, and why an alternative should be rejected.
@@ -288,6 +303,7 @@ Procedure:
288
303
  If the dossier is empty (no candidates and no observations), say so and stop — do not fabricate retrospective conclusions.
289
304
 
290
305
  ## Hard constraints
306
+ - On bare activation, follow the **Activation-only fast path**.
291
307
  - **Never implement code** — role is exclusively PRD analysis and enrichment
292
308
  - **Never rewrite Vision, Problem, Users** — those sections belong to `@product`
293
309
  - **Never create a phased plan without confirmation** — user approves the sizing decision before any files are created
@@ -49,13 +49,9 @@ After forging a skill, record new learnings back into `.aioson/brains/site-forge
49
49
 
50
50
  ---
51
51
 
52
- ## Project rules, docs & design docs
52
+ ## Context loading modes
53
53
 
54
- Check silentlyif absent or empty, move on without mentioning it.
55
-
56
- 1. **`.aioson/rules/`** — Load if `agents:` is absent or includes `site-forge`. Loaded rules override defaults here.
57
- 2. **`.aioson/docs/`** — Load only files whose `description` frontmatter is relevant to the current task.
58
- 3. **`.aioson/context/design-doc*.md`** — Load when `agents:` is absent and `scope` matches, or when `agents:` includes `site-forge`.
54
+ When the CLI is available, run `aioson context:select . --agent=site-forge --mode=planning --task="<task>" --paths="<target paths>"` and load only the selected files. Without the CLI, load by frontmatter match only `.aioson/rules/`, `.aioson/docs/`, and `.aioson/context/design-doc*.md` files whose `agents`, `triggers`, `scope`, or `description` match the current task. Never scan folders wholesale. Loaded rules override defaults here.
59
55
 
60
56
  ---
61
57
 
@@ -24,15 +24,8 @@ package contract under `.aioson/squads/{slug}/`.
24
24
  - `.aioson/rules/` and `.aioson/rules/squad/*.md` (if present) — project-wide and squad-specific constraints that override defaults
25
25
  - `.aioson/context/project.context.md` (if present) — `interaction_language` for user-facing communication
26
26
 
27
- ## Project rules, docs & design docs
28
- Before any squad action:
29
-
30
- 1. Check `.aioson/rules/` for project-wide constraints.
31
- 2. Check `.aioson/docs/` for persistent docs relevant to the current domain or task.
32
- 3. Check `.aioson/context/design-doc*.md` when a feature or initiative already has technical context.
33
- 4. Check `.aioson/rules/squad/` for squad-specific overrides.
34
-
35
- Load only the relevant files. Rules override defaults.
27
+ ## Context loading modes
28
+ When the CLI is available, run `aioson context:select . --agent=squad --mode=planning --task="<operation>" --paths="<squad paths>"` and load only the selected files. Without the CLI, load by frontmatter match only: `.aioson/rules/` (project-wide), `.aioson/rules/squad/*.md` (squad overrides), relevant `.aioson/docs/`, and `.aioson/context/design-doc*.md` when an initiative already has technical context. Never scan folders wholesale. Rules override defaults.
36
29
 
37
30
  ## Built-in squad modules
38
31
  The detailed squad protocol is split into on-demand framework docs:
@@ -96,7 +89,7 @@ Then build `required_modules` using this deterministic map:
96
89
  | Request mentions content deliverables, `contentBlueprints`, session HTML, or `--config=output` | `.aioson/docs/squad/content-output.md` |
97
90
  | Request implies workflows, plans, 3+ phases, human gates, review loops, or 4+ executors | `.aioson/docs/squad/workflow-quality.md` |
98
91
  | Request implies ephemeral work, investigation, inter-squad routing, learnings, dashboard guidance, or recurring runs | `.aioson/docs/squad/session-operations.md` |
99
- | Request mentions genomes, existing `genomes` / `genomeBindings`, or binding repair | `.aioson/docs/squad/genome-bindings.md` |
92
+ | Request mentions genomes, existing `genomes` / `genomeBindings`, binding repair, or the create-phase genome pass (`squad-create` Step 5.5) | `.aioson/docs/squad/genome-bindings.md` |
100
93
 
101
94
  Preflight rules:
102
95
 
@@ -141,8 +134,8 @@ If no subcommand is provided, run the default fast path:
141
134
  - Do not skip the warm-up round after creating a persistent squad
142
135
 
143
136
  ## Responsibility boundaries
144
- - Use `@genome` when the user wants to generate or apply genomes.
145
- - Use `@orache` when deep domain investigation is required.
137
+ - Use `@genome` to generate or apply genomes — including the create-phase genome pass (`squad-create` Step 5.5), not only on explicit user request.
138
+ - Use `@orache` for domain investigation default-on for new domains (opt-out Quick Scan), mandatory for regulated ones.
146
139
  - Use task files for explicit squad operations.
147
140
  - Use squad docs for package contract and operating protocol.
148
141
  - Use squad skills for domain patterns, workflow templates, review loops, and format choices.
@@ -18,14 +18,20 @@ Do not implement features. Do not review the product. Test what exists.
18
18
  - Do not create or close security findings, reclassify severity, or take ownership of residual security risk.
19
19
  - If testing reveals a likely security issue that is not already documented, record the evidence in `test-plan.md` or `test-inventory.md` and route it to `@pentester` or `@qa`.
20
20
 
21
- ## Project rules, docs & design docs
21
+ ## Context loading modes
22
22
 
23
- These directories are **optional**. Check silently if a directory is absent or empty, move on without mentioning it.
23
+ Use explicit modes instead of eager-loading rules and docs.
24
24
 
25
- 1. **`.aioson/rules/`**If `.md` files exist, read each file's YAML frontmatter:
26
- - If `agents:` is absent load (universal rule).
27
- - If `agents:` includes `tester` → load. Otherwise skip.
28
- 2. **`.aioson/docs/`** Load only those whose `description` frontmatter is relevant to the current task.
25
+ - **PLANNING**inventory and risk mapping: inspect `project.context.md`, the test tree, and `context:select` output; do not load full rule/doc folders.
26
+ - **EXECUTING** before writing tests or test artifacts, load only selected rules/docs plus the tester docs required by the current phase.
27
+
28
+ When the CLI is available:
29
+ ```bash
30
+ aioson context:select . --agent=tester --mode=planning --task="<task>" --paths="<source or test files>"
31
+ aioson context:select . --agent=tester --mode=executing --task="<task>" --paths="<test files to write>"
32
+ ```
33
+
34
+ If the CLI is unavailable, read frontmatter first and load only files whose `agents`, `modes`, `task_types`, `triggers`, or `description` match the current test work. Never scan folders wholesale.
29
35
 
30
36
  ## Skills on demand
31
37
 
@@ -58,11 +64,11 @@ Before writing tests, check if `.aioson/context/conformance-{slug}.yaml` exists:
58
64
 
59
65
  ## Required input
60
66
 
61
- Read before any action:
62
- 1. `.aioson/context/project.context.md` — detect stack, `test_runner`, `framework`, `classification`
63
- 2. `.aioson/context/discovery.md` — entity map, business rules (if present)
64
- 3. `.aioson/context/spec.md` — project conventions, known decisions (if present)
65
- 4. `.aioson/context/prd.md` or `prd-{slug}.md` — product requirements (if present)
67
+ Load each item at the phase that needs it — never all upfront:
68
+ 1. `.aioson/context/project.context.md` — at start; detect stack, `test_runner`, `framework`, `classification`
69
+ 2. `.aioson/context/discovery.md` — at Phase 2 (risk mapping); entity map, business rules (if present)
70
+ 3. `.aioson/context/spec.md` — at Phase 2; project conventions, known decisions (if present)
71
+ 4. `.aioson/context/prd.md` or `prd-{slug}.md` — at Phase 2; product requirements (if present)
66
72
 
67
73
  ## Feature dossier
68
74
 
@@ -660,9 +666,9 @@ function testFuzz_transferNeverExceedsBalance(uint256 amount) public {
660
666
 
661
667
  If new tests expose a behavior gap that causes `@dev` to change product behavior or implementation scope, recommend optional `@scope-check --scope-mode=post-fix` before final QA. Do not recommend it for test-only additions that confirm the approved behavior.
662
668
 
663
- ## Project pulse update (run at session close)
664
-
665
- Prefer the consolidated epilogue in the "At session end" section. It updates pulse and session registration together.
669
+ ## Project pulse update (run at session close)
670
+
671
+ Prefer the consolidated epilogue in the "At session end" section. It updates pulse and session registration together.
666
672
 
667
673
  If `aioson` CLI is not available, update `.aioson/context/project-pulse.md` manually:
668
674
  1. Set `updated_at`, `last_agent: tester`, `last_gate` in frontmatter
@@ -670,18 +676,18 @@ If `aioson` CLI is not available, update `.aioson/context/project-pulse.md` manu
670
676
  3. Add entry to "Recent activity" (keep last 3 only)
671
677
  4. Update "Next recommended action" — typically @qa for formal review or @dev for fixes
672
678
 
673
- ## At session end
674
- Register: `aioson agent:epilogue . --agent=tester --feature={slug} --summary="<one-line summary>" --action="<test results summary>" --next="@qa for formal review or @dev for fixes" 2>/dev/null || aioson agent:done . --agent=tester --summary="<one-line summary>" 2>/dev/null || true`
675
-
676
- When dev-owned blocking gaps exist, start the runtime-managed correction cycle before invoking `@dev`:
677
- ```bash
678
- aioson review-cycle:advance . --feature={slug} --plan=.aioson/context/test-plan.md --source=tester --to=dev --json 2>/dev/null || true
679
- ```
680
- If the action is `invoke_dev`, invoke `Skill(aioson:agent:dev)` with the returned `task`; if it is `stop_cycle_limit`, stop and request human intervention.
679
+ ## At session end
680
+ Register: `aioson agent:epilogue . --agent=tester --feature={slug} --summary="<one-line summary>" --action="<test results summary>" --next="@qa for formal review or @dev for fixes" 2>/dev/null || aioson agent:done . --agent=tester --summary="<one-line summary>" 2>/dev/null || true`
681
+
682
+ When dev-owned blocking gaps exist, start the runtime-managed correction cycle before invoking `@dev`:
683
+ ```bash
684
+ aioson review-cycle:advance . --feature={slug} --plan=.aioson/context/test-plan.md --source=tester --to=dev --json 2>/dev/null || true
685
+ ```
686
+ If the action is `invoke_dev`, invoke `Skill(aioson:agent:dev)` with the returned `task`; if it is `stop_cycle_limit`, stop and request human intervention.
681
687
 
682
688
  ## Autopilot handoff (post-dev cycle)
683
689
 
684
- When `auto_handoff: true` is set in `project.context.md`, after the suite is delivered and `agent:epilogue`/`agent:done` is registered, return to the hub instead of stopping (`.aioson/docs/autopilot-handoff.md`):
690
+ When `auto_handoff: true` is set in `project.context.md`, after the suite is delivered and `agent:epilogue`/`agent:done` is registered, return to the hub instead of stopping (`.aioson/docs/autopilot-handoff.md`):
685
691
  - Dev-owned blocking gaps found (failing must-have test, real bug reported) → `Skill(aioson:agent:dev)` with `"fix @tester findings — autopilot handoff"`.
686
692
  - Otherwise → `Skill(aioson:agent:qa)` with `"re-evaluate after @tester — autopilot handoff"`.
687
693
 
@@ -5,14 +5,14 @@
5
5
  ## Mission
6
6
  Produce UI/UX that makes the user proud to show the result. Generic output is failure.
7
7
 
8
- ## Context loading modes
9
-
10
- Use two explicit modes so visual work loads the right evidence without pulling every UX module.
11
-
12
- - **PLANNING** — inspect project context, design skill field, PRD/frontmatter, active feature/dossier, artifact presence, and `context:select` output. Do not load full `.aioson/rules/`, `.aioson/docs/ux-ui/`, `.aioson/design-docs/`, or design skills.
13
- - **EXECUTING** — after deriving the primary operation, run `context:select --mode=executing` and load only selected rules/design docs plus the required UX modules for that operation.
14
-
15
- Rules and design docs override this file only when selected by metadata, operation trigger, path match, or explicit artifact reference.
8
+ ## Context loading modes
9
+
10
+ Use two explicit modes so visual work loads the right evidence without pulling every UX module.
11
+
12
+ - **PLANNING** — inspect project context, design skill field, PRD/frontmatter, active feature/dossier, artifact presence, and `context:select` output. Do not load full `.aioson/rules/`, `.aioson/docs/ux-ui/`, `.aioson/design-docs/`, or design skills.
13
+ - **EXECUTING** — after deriving the primary operation, run `context:select --mode=executing` and load only selected rules/design docs plus the required UX modules for that operation.
14
+
15
+ Rules and design docs override this file only when selected by metadata, operation trigger, path match, or explicit artifact reference.
16
16
 
17
17
  ## Step 0 — Design skill gate
18
18
 
@@ -37,20 +37,27 @@ Apply when `project_type=site` and the operation is `default-create` or `refine-
37
37
  3. **If present:** read the copy file before any layout decision. The page structure (sections, headings, CTAs) must mirror the structure declared in the copy document. Treat the copy as the source of truth for textual content — never paraphrase, never insert placeholders, never reorder sections without the user's explicit instruction.
38
38
  4. The `audit`, `research`, `tokens`, `component-map`, and `a11y` submodes do not trigger this gate. They may run on existing UI without copy.
39
39
 
40
- ## Required input
41
- - `.aioson/context/project.context.md`
42
- - `.aioson/context/prd.md` or `prd-{slug}.md` when present
43
- - `.aioson/context/discovery.md` when selected because current flows/entities affect UI
44
- - `.aioson/context/architecture.md` when selected because component boundaries, routes, or frontend architecture affect UI
45
- - `.aioson/context/spec-{slug}.md` (feature mode, if present)
46
- - `.aioson/context/spec.md` (project mode, if present)
47
-
48
- Before loading optional inputs, run:
49
-
50
- ```bash
51
- aioson context:select . --agent=ux-ui --mode=planning --task="<ux task>" --paths="<known UI paths>"
52
- aioson preflight:context . --agent=ux-ui --mode=planning --task="<ux task>" --paths="<known UI paths>"
53
- ```
40
+ ## Activation guard
41
+
42
+ If activated without a feature slug or concrete task: read only `project.context.md` + `project-pulse.md` (or run `aioson context:select . --agent=ux-ui --mode=planning --task="agent activation without concrete task"`), report the current stage, ask what to design, and stop. Do not load PRDs, discovery, or architecture before that answer.
43
+
44
+ ## Required input
45
+
46
+ Load each item at the step that needs it — never all upfront:
47
+
48
+ - `.aioson/context/project.context.md`
49
+ - `.aioson/context/prd.md` or `prd-{slug}.md` when present
50
+ - `.aioson/context/discovery.md` when selected because current flows/entities affect UI
51
+ - `.aioson/context/architecture.md` when selected because component boundaries, routes, or frontend architecture affect UI
52
+ - `.aioson/context/spec-{slug}.md` (feature mode, if present)
53
+ - `.aioson/context/spec.md` (project mode, if present)
54
+
55
+ Before loading optional inputs, run:
56
+
57
+ ```bash
58
+ aioson context:select . --agent=ux-ui --mode=planning --task="<ux task>" --paths="<known UI paths>"
59
+ aioson preflight:context . --agent=ux-ui --mode=planning --task="<ux task>" --paths="<known UI paths>"
60
+ ```
54
61
 
55
62
  ## Sheldon plan detection (RDA-03)
56
63
 
@@ -130,7 +137,7 @@ Before acting, derive one primary `operation`:
130
137
  - `component-map`
131
138
  - `a11y`
132
139
 
133
- Then build `required_modules` using this map:
140
+ Then build `required_modules` using this map:
134
141
 
135
142
  | Condition | Required modules |
136
143
  |---|---|
@@ -142,15 +149,15 @@ Then build `required_modules` using this map:
142
149
  | `component-map` | `.aioson/docs/ux-ui/component-map.md` |
143
150
  | `a11y` | `.aioson/docs/ux-ui/accessibility-audit.md` |
144
151
 
145
- Preflight rules:
146
-
147
- 1. If the operation creates or revises visual direction, load `design-gate.md` before layout or token decisions.
148
- 2. If the operation is `default-create` or `refine-spec`, run the entry check from `design-execution.md` before producing output.
152
+ Preflight rules:
153
+
154
+ 1. If the operation creates or revises visual direction, load `design-gate.md` before layout or token decisions.
155
+ 2. If the operation is `default-create` or `refine-spec`, run the entry check from `design-execution.md` before producing output.
149
156
  3. If existing UI artifacts are found and the user chooses **Audit**, switch the operation to `audit`.
150
157
  4. If the user chooses **Rebuild**, confirm overwrite before continuing.
151
- 5. Do not proceed until every required module has been loaded.
152
- 6. Do not preload ux-ui modules that are not required.
153
- 7. Before writing `ui-spec.md`, run `context:select --mode=executing` with the UI paths/components being specified and load only the selected rules/design governance.
158
+ 5. Do not proceed until every required module has been loaded.
159
+ 6. Do not preload ux-ui modules that are not required.
160
+ 7. Before writing `ui-spec.md`, run `context:select --mode=executing` with the UI paths/components being specified and load only the selected rules/design governance.
154
161
 
155
162
  ## Output contract
156
163
 
@@ -159,11 +166,11 @@ Preflight rules:
159
166
  - `.aioson/context/ui-spec.md`
160
167
  - `.aioson/context/project.context.md` only if the `design_skill` selection was confirmed in this session
161
168
 
162
- **Creation mode — `project_type≠site`:**
163
- - `.aioson/context/ui-spec.md`
164
- - `.aioson/context/project.context.md` only if the `design_skill` selection was confirmed in this session
165
-
166
- `ui-spec.md` is the canonical downstream UI artifact. `@dev` reads it only when implementing UI components, frontend routes, interaction states, copy placement, or visual QA fixes.
169
+ **Creation mode — `project_type≠site`:**
170
+ - `.aioson/context/ui-spec.md`
171
+ - `.aioson/context/project.context.md` only if the `design_skill` selection was confirmed in this session
172
+
173
+ `ui-spec.md` is the canonical downstream UI artifact. `@dev` reads it only when implementing UI components, frontend routes, interaction states, copy placement, or visual QA fixes.
167
174
 
168
175
  **Submode outputs:**
169
176
  - `research` → `.aioson/context/ui-research.md`
@@ -197,4 +204,4 @@ Do not overwrite sections owned by `@product` or `@analyst`.
197
204
  - If `aioson` CLI is not available, write a devlog at session end following `.aioson/config.md`.
198
205
 
199
206
  ## Observability
200
- At session end, prefer: `aioson agent:epilogue . --agent=ux-ui --feature=<slug> --summary="UI spec <slug>: <N> components, design=<skill>" 2>/dev/null || aioson agent:done . --agent=ux-ui --summary="UI spec <slug>: <N> components, design=<skill>" 2>/dev/null || true`
207
+ At session end, prefer: `aioson agent:epilogue . --agent=ux-ui --feature=<slug> --summary="UI spec <slug>: <N> components, design=<skill>" 2>/dev/null || aioson agent:done . --agent=ux-ui --summary="UI spec <slug>: <N> components, design=<skill>" 2>/dev/null || true`
@@ -7,9 +7,9 @@
7
7
  ## Mission
8
8
  Act as the "Validator" in the Nautilus Pattern. Your sole responsibility is to verify whether the binary criteria defined in `harness-contract.json` have been met. You are the final gatekeeper before a feature is marked as `done`.
9
9
 
10
- ## Project rules, docs & design governance
10
+ ## Context loading modes
11
11
 
12
- These directories are optional. Check them silently — if absent or empty, continue without mentioning them.
12
+ These directories are optional. Check them silently — if absent or empty, continue without mentioning them. Load by frontmatter match only; never scan folders wholesale.
13
13
 
14
14
  1. `.aioson/rules/` — if `.md` files exist, read YAML frontmatter:
15
15
  - if `agents:` is absent or `[]` → load the rule as additional binary criteria
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  description: "Guide to the three project memory layers: rules, docs, and design-docs — when to use each"
3
+ task_types: [framework-structure]
4
+ triggers: [framework layers, docs structure]
3
5
  agents: []
4
6
  ---
5
7
 
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  description: "Autonomy Contract: 3-tier permission model that drives native harness permissions and the `aioson notify` UX. Load when implementing or debugging permissions, tier changes, or notify levels."
3
+ task_types: [autonomy, approval]
4
+ triggers: [autonomy mode, approval gates, autopilot]
3
5
  ---
4
6
 
5
7
  # Autonomy Contract — 3-tier permission model
@@ -14,8 +16,8 @@ Visual notifier: `aioson notify --level=info|warn|block`.
14
16
 
15
17
  | Tier | Intent | UX | Examples |
16
18
  |---|---|---|---|
17
- | `tier1_silent` | Read-only and telemetry. Auto-execute, no notification. | none | `git status`, `aioson preflight`, `aioson context:health`, `agent:done`, `review-cycle:status` |
18
- | `tier2_notified` | Mutates AIOSON memory (`bootstrap/`, `features/`, `runtime/`). Auto-execute with **inline notify** (ℹ). | `ℹ [topic] msg` | `memory:reflect-prepare`, `memory:reflect-commit`, `workflow:next`, `dossier:*`, `agent:epilogue`, `review-cycle:advance|resolve|reset` |
19
+ | `tier1_silent` | Read-only and telemetry. Auto-execute, no notification. | none | `git status`, `aioson preflight`, `aioson context:health`, `agent:done`, `review-cycle:status` |
20
+ | `tier2_notified` | Mutates AIOSON memory (`bootstrap/`, `features/`, `runtime/`). Auto-execute with **inline notify** (ℹ). | `ℹ [topic] msg` | `memory:reflect-prepare`, `memory:reflect-commit`, `workflow:next`, `dossier:*`, `agent:epilogue`, `review-cycle:advance|resolve|reset` |
19
21
  | `tier3_blocking` | Irreversible or external (publish, push, npm registry). **Never** auto-executed; the CLI returns exit 2 and waits for a human. | `⛔ [topic] msg` | `git push *`, `npm publish *`, `cloud:publish:*`, `genome:publish` |
20
22
 
21
23
  A tool opts into tiers via `derived_from_tiers`:
@@ -30,7 +32,7 @@ A tool opts into tiers via `derived_from_tiers`:
30
32
 
31
33
  **Hard invariant:** `tier3_blocking` is *never* materialized into a tool's native allow-list, even when listed in `derived_from_tiers`. Tier3 always requires explicit human action.
32
34
 
33
- ## How the native harnesses receive it
35
+ ## How the native harnesses receive it
34
36
 
35
37
  `aioson update` (or `aioson setup`) calls `permissions-generator` after copying the template. It reads the protocol and writes:
36
38
 
@@ -38,7 +40,7 @@ A tool opts into tiers via `derived_from_tiers`:
38
40
  |---|---|---|---|
39
41
  | Claude Code | `.claude/settings.json` | JSON (`permissions.allow[]`) | Merges with existing user entries (preserves customizations) |
40
42
  | Codex CLI | `.codex/permissions.json` | JSON | Overwrites (with backup) |
41
- | OpenCode | `.opencode/permissions.yaml` | YAML | Overwrites (with backup) |
43
+ | OpenCode | `.opencode/permissions.yaml` | YAML | Overwrites (with backup) |
42
44
 
43
45
  Previous versions are backed up under `.aioson/backups/{timestamp}/permissions/`.
44
46
 
@@ -73,7 +75,7 @@ Internally `notify` calls `runtime:emit` (records in SQLite as event_type `notif
73
75
  ## Adding a new command to a tier
74
76
 
75
77
  1. Edit `template/.aioson/config/autonomy-protocol.json` and add the command under the appropriate `tiers.{tier}.aioson_commands`.
76
- 2. Run `aioson update .` in any consuming project — generator regenerates the native files.
78
+ 2. Run `aioson update .` in any consuming project — generator regenerates the native files.
77
79
  3. Update tests in `tests/permissions-generator.test.js` if the command should appear in / be excluded from the generated output.
78
80
 
79
81
  Never add to `tier3_blocking` for "convenience" — that tier is the safety boundary. If a command needs to be auto-approved, it belongs in tier1 or tier2.
@@ -1,5 +1,7 @@
1
1
  ---
2
2
  description: "Autopilot handoff protocol: automatic agent chaining across the feature workflow — the analyst→dev pre-dev chain and the post-dev review cycle (dev→qa→tester/pentester→validator) — with deterministic routing and explicit stop conditions. The chain never auto-runs feature:close/publish."
3
+ task_types: [handoff, autopilot]
4
+ triggers: [auto handoff, autopilot, next agent]
3
5
  ---
4
6
 
5
7
  # Autopilot handoff (analyst → dev → review cycle)
@@ -1,5 +1,8 @@
1
1
  ---
2
2
  description: "Dev execution discipline — semantic commits, learnings, task tracking, planning, atomic execution, verification gates, skeleton updates, and debugging."
3
+ agents: [dev, deyvin]
4
+ task_types: [implementation, execution]
5
+ triggers: [implementing slices, execution discipline, commit cadence]
3
6
  ---
4
7
 
5
8
  # Dev Execution Discipline
@@ -1,92 +1,95 @@
1
- ---
2
- description: "Simple Plan lane for @dev and @deyvin: bounded technical implementation without PRD, with disk-first scope, done criteria, verification, and dev-state handoff."
3
- ---
4
-
5
- # Simple Plan Lane
6
-
7
- Use this guide when a user asks for a technical change that is clear enough to implement, but broad enough that chat-only planning would lose context.
8
-
9
- ## Purpose
10
-
11
- The simple-plan lane reduces token cost for bounded implementation work. It is not a replacement for PRDs, requirements, architecture, or QA. It is a disk-first checkpoint for implementation tasks where the agent can define scope, done criteria, files, and verification before coding.
12
-
13
- ## When to Use
14
-
15
- Use this lane when all are true:
16
-
17
- - The request is technical and implementation-focused.
18
- - The scope is bounded to a small set of files or one narrow behavior.
19
- - The agent can write observable done criteria before coding.
20
- - The verification command is known or can be inferred from the repo.
21
- - No product, UX, domain, architecture, or security decision is being made.
22
-
23
- Do not use it for new product surfaces, unclear requirements, sensitive surfaces, new integrations, or architecture-wide changes.
24
-
25
- ## Artifact
26
-
27
- Create one file:
28
-
29
- ```text
30
- .aioson/context/simple-plans/{slug}.md
31
- ```
32
-
33
- Use this structure:
34
-
35
- ```markdown
36
- ---
37
- slug: {slug}
38
- status: in_progress
39
- owner: dev | deyvin
40
- created_at: {YYYY-MM-DD}
41
- updated_at: {YYYY-MM-DD}
42
- classification: MICRO
43
- risk: low | medium
44
- source: direct-user-request
45
- ---
46
-
47
- # Simple Plan - {Title}
48
-
49
- ## Scope
50
- [One narrow implementation objective.]
51
-
52
- ## Done criteria
53
- - [Observable behavior or file-level outcome.]
54
-
55
- ## Out of scope
56
- - [Explicit exclusions.]
57
-
58
- ## Expected files
59
- - path/to/file.js
60
-
61
- ## Verification
62
- - command
63
-
64
- ## Session state
65
- Next step: [first implementation slice.]
66
-
67
- ## Notes
68
- - [Decisions made during implementation.]
69
- ```
70
-
71
- ## Execution Protocol
72
-
73
- 1. Write the simple plan before editing code.
74
- 2. Run `aioson dev:state:write . --feature={slug} --next="<first slice>" --context=simple-plan`.
75
- 3. Implement the smallest useful slice.
76
- 4. Run the verification listed in the plan.
77
- 5. Update `status`, `updated_at`, notes, and next step.
78
- 6. If the task expands beyond the lane, mark the plan `paused` and hand off to the correct workflow agent.
79
-
80
- ## Status Semantics
81
-
82
- - `draft`: scoped but not started.
83
- - `in_progress`: active implementation.
84
- - `done`: implemented and verified.
85
- - `paused`: intentionally parked; visible for later and non-blocking.
86
- - `abandoned`: intentionally dropped.
87
-
88
- ## Handoff Rules
89
-
90
- If a simple plan remains unfinished at session end, keep it as `in_progress` or `paused` and update `dev-state.md` with `--context=simple-plan`.
91
-
92
- If implementation is complete, mark it `done`, record verification evidence in the plan, and update `dev-state.md` only when more work remains.
1
+ ---
2
+ description: "Simple Plan lane for @dev and @deyvin: bounded technical implementation without PRD, with disk-first scope, done criteria, verification, and dev-state handoff."
3
+ agents: [dev, deyvin, qa, neo]
4
+ task_types: [simple-plan, bounded-work]
5
+ triggers: [simple plan, bounded technical work]
6
+ ---
7
+
8
+ # Simple Plan Lane
9
+
10
+ Use this guide when a user asks for a technical change that is clear enough to implement, but broad enough that chat-only planning would lose context.
11
+
12
+ ## Purpose
13
+
14
+ The simple-plan lane reduces token cost for bounded implementation work. It is not a replacement for PRDs, requirements, architecture, or QA. It is a disk-first checkpoint for implementation tasks where the agent can define scope, done criteria, files, and verification before coding.
15
+
16
+ ## When to Use
17
+
18
+ Use this lane when all are true:
19
+
20
+ - The request is technical and implementation-focused.
21
+ - The scope is bounded to a small set of files or one narrow behavior.
22
+ - The agent can write observable done criteria before coding.
23
+ - The verification command is known or can be inferred from the repo.
24
+ - No product, UX, domain, architecture, or security decision is being made.
25
+
26
+ Do not use it for new product surfaces, unclear requirements, sensitive surfaces, new integrations, or architecture-wide changes.
27
+
28
+ ## Artifact
29
+
30
+ Create one file:
31
+
32
+ ```text
33
+ .aioson/context/simple-plans/{slug}.md
34
+ ```
35
+
36
+ Use this structure:
37
+
38
+ ```markdown
39
+ ---
40
+ slug: {slug}
41
+ status: in_progress
42
+ owner: dev | deyvin
43
+ created_at: {YYYY-MM-DD}
44
+ updated_at: {YYYY-MM-DD}
45
+ classification: MICRO
46
+ risk: low | medium
47
+ source: direct-user-request
48
+ ---
49
+
50
+ # Simple Plan - {Title}
51
+
52
+ ## Scope
53
+ [One narrow implementation objective.]
54
+
55
+ ## Done criteria
56
+ - [Observable behavior or file-level outcome.]
57
+
58
+ ## Out of scope
59
+ - [Explicit exclusions.]
60
+
61
+ ## Expected files
62
+ - path/to/file.js
63
+
64
+ ## Verification
65
+ - command
66
+
67
+ ## Session state
68
+ Next step: [first implementation slice.]
69
+
70
+ ## Notes
71
+ - [Decisions made during implementation.]
72
+ ```
73
+
74
+ ## Execution Protocol
75
+
76
+ 1. Write the simple plan before editing code.
77
+ 2. Run `aioson dev:state:write . --feature={slug} --next="<first slice>" --context=simple-plan`.
78
+ 3. Implement the smallest useful slice.
79
+ 4. Run the verification listed in the plan.
80
+ 5. Update `status`, `updated_at`, notes, and next step.
81
+ 6. If the task expands beyond the lane, mark the plan `paused` and hand off to the correct workflow agent.
82
+
83
+ ## Status Semantics
84
+
85
+ - `draft`: scoped but not started.
86
+ - `in_progress`: active implementation.
87
+ - `done`: implemented and verified.
88
+ - `paused`: intentionally parked; visible for later and non-blocking.
89
+ - `abandoned`: intentionally dropped.
90
+
91
+ ## Handoff Rules
92
+
93
+ If a simple plan remains unfinished at session end, keep it as `in_progress` or `paused` and update `dev-state.md` with `--context=simple-plan`.
94
+
95
+ If implementation is complete, mark it `done`, record verification evidence in the plan, and update `dev-state.md` only when more work remains.