@jaimevalasek/aioson 1.28.1 → 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.
- package/CHANGELOG.md +23 -0
- package/docs/pt/4-agentes/briefing.md +2 -0
- package/docs/pt/4-agentes/copywriter.md +2 -0
- package/docs/pt/4-agentes/genome.md +1 -0
- package/docs/pt/4-agentes/profiler-enricher.md +2 -0
- package/docs/pt/4-agentes/profiler-forge.md +2 -0
- package/docs/pt/4-agentes/sheldon.md +2 -0
- package/docs/pt/4-agentes/squad.md +12 -10
- package/docs/pt/5-referencia/comandos-cli.md +2 -0
- package/docs/pt/5-referencia/memoria-e-contexto.md +60 -0
- package/package.json +1 -1
- package/src/cli.js +5 -0
- package/src/commands/rules-lint.js +116 -0
- package/src/context-selector.js +29 -5
- package/template/.aioson/agents/analyst.md +57 -41
- package/template/.aioson/agents/architect.md +40 -33
- package/template/.aioson/agents/briefing.md +96 -81
- package/template/.aioson/agents/copywriter.md +34 -2
- package/template/.aioson/agents/discover.md +5 -8
- package/template/.aioson/agents/discovery-design-doc.md +42 -35
- package/template/.aioson/agents/genome.md +3 -1
- package/template/.aioson/agents/orache.md +6 -15
- package/template/.aioson/agents/orchestrator.md +38 -31
- package/template/.aioson/agents/pm.md +7 -0
- package/template/.aioson/agents/product.md +146 -174
- package/template/.aioson/agents/profiler-enricher.md +19 -0
- package/template/.aioson/agents/profiler-forge.md +6 -0
- package/template/.aioson/agents/qa.md +18 -10
- package/template/.aioson/agents/scope-check.md +6 -0
- package/template/.aioson/agents/sheldon.md +30 -14
- package/template/.aioson/agents/site-forge.md +2 -6
- package/template/.aioson/agents/squad.md +5 -12
- package/template/.aioson/agents/tester.md +29 -23
- package/template/.aioson/agents/ux-ui.md +43 -36
- package/template/.aioson/agents/validator.md +2 -2
- package/template/.aioson/docs/LAYERS.md +2 -0
- package/template/.aioson/docs/autonomy-protocol.md +7 -5
- package/template/.aioson/docs/autopilot-handoff.md +2 -0
- package/template/.aioson/docs/dev/execution-discipline.md +3 -0
- package/template/.aioson/docs/dev/simple-plan-lane.md +95 -92
- package/template/.aioson/docs/dev/stack-conventions.md +3 -0
- package/template/.aioson/docs/deyvin/continuity-recovery.md +21 -18
- package/template/.aioson/docs/deyvin/debugging-escalation.md +3 -0
- package/template/.aioson/docs/deyvin/pair-execution.md +3 -0
- package/template/.aioson/docs/deyvin/runtime-handoffs.md +3 -0
- package/template/.aioson/docs/dossier/agent-templates.md +3 -0
- package/template/.aioson/docs/dossier/schema.md +3 -0
- package/template/.aioson/docs/example-external-api-context.md +2 -0
- package/template/.aioson/docs/handoff-persistence.md +96 -94
- package/template/.aioson/docs/pentester/app-playbooks.md +3 -0
- package/template/.aioson/docs/pentester/browser-dast-playbook.md +401 -398
- package/template/.aioson/docs/pentester/llm-supplychain.md +3 -0
- package/template/.aioson/docs/quality/code-health-analysis.md +2 -0
- package/template/.aioson/docs/sheldon/enrichment-paths.md +3 -0
- package/template/.aioson/docs/sheldon/harness-contract.md +3 -0
- package/template/.aioson/docs/sheldon/quality-lens.md +3 -0
- package/template/.aioson/docs/sheldon/research-loop.md +3 -0
- package/template/.aioson/docs/sheldon/web-intelligence.md +3 -0
- package/template/.aioson/docs/site-forge-build.md +4 -2
- package/template/.aioson/docs/site-forge-extraction.md +2 -0
- package/template/.aioson/docs/site-forge-qa.md +2 -0
- package/template/.aioson/docs/site-forge-recon.md +7 -5
- package/template/.aioson/docs/site-forge-transform.md +2 -0
- package/template/.aioson/docs/squad/content-output.md +3 -0
- package/template/.aioson/docs/squad/creation-flow.md +22 -1
- package/template/.aioson/docs/squad/domain-breadth.md +3 -0
- package/template/.aioson/docs/squad/domain-classification.md +3 -0
- package/template/.aioson/docs/squad/eval-gate.md +3 -0
- package/template/.aioson/docs/squad/genome-bindings.md +14 -0
- package/template/.aioson/docs/squad/package-contract.md +5 -0
- package/template/.aioson/docs/squad/persona-grounding.md +65 -62
- package/template/.aioson/docs/squad/quality-lens.md +3 -0
- package/template/.aioson/docs/squad/research-loop.md +3 -0
- package/template/.aioson/docs/squad/session-operations.md +3 -0
- package/template/.aioson/docs/squad/workflow-quality.md +3 -0
- package/template/.aioson/docs/tester/coverage-quality.md +3 -0
- package/template/.aioson/rules/README.md +28 -0
- package/template/.aioson/rules/agent-language-policy.md +26 -21
- package/template/.aioson/rules/agent-structural-contract.md +5 -0
- package/template/.aioson/rules/aioson-context-boundary.md +6 -1
- package/template/.aioson/rules/canonical-path-contract.md +15 -10
- package/template/.aioson/rules/data-format-convention.md +16 -11
- package/template/.aioson/rules/disk-first-artifacts.md +10 -6
- package/template/.aioson/rules/example-monetary-values.md +4 -0
- package/template/.aioson/rules/output-brevity.md +2 -0
- package/template/.aioson/rules/prd-section-ownership.md +17 -12
- package/template/.aioson/rules/security-baseline.md +4 -0
- package/template/.aioson/rules/simple-plan-lane.md +5 -0
- package/template/.aioson/rules/spec-level-ownership.md +10 -5
- package/template/.aioson/rules/squad-driver-pattern.md +5 -0
- package/template/.aioson/tasks/squad-create.md +11 -0
- package/template/.aioson/tasks/squad-design.md +3 -3
- package/template/AGENTS.md +1 -1
- 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
|
-
##
|
|
20
|
+
## Activation-only fast path
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
Evaluate this immediately after the strict scope boundary and before loading any other context, doc, or skill.
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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,
|
|
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
|
-
##
|
|
52
|
+
## Context loading modes
|
|
53
53
|
|
|
54
|
-
|
|
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
|
-
##
|
|
28
|
-
|
|
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`,
|
|
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`
|
|
145
|
-
- Use `@orache`
|
|
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
|
-
##
|
|
21
|
+
## Context loading modes
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
Use explicit modes instead of eager-loading rules and docs.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
aioson
|
|
52
|
-
aioson
|
|
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
|
-
##
|
|
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: "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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- The
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
##
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
##
|
|
56
|
-
- [
|
|
57
|
-
|
|
58
|
-
##
|
|
59
|
-
-
|
|
60
|
-
|
|
61
|
-
##
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
##
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
##
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
- `
|
|
86
|
-
- `
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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.
|