@jaimevalasek/aioson 1.22.0 → 1.23.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 +932 -919
- package/docs/en/5-reference/cli-reference.md +85 -0
- package/docs/pt/4-agentes/pm.md +31 -4
- package/docs/pt/5-referencia/README.md +3 -0
- package/docs/pt/5-referencia/autopilot-handoff.md +131 -0
- package/docs/pt/5-referencia/comandos-cli.md +72 -6
- package/docs/pt/5-referencia/harness-retro.md +133 -0
- package/docs/pt/5-referencia/loop-guardrails.md +225 -0
- package/docs/pt/5-referencia/sdd-automation-scripts.md +25 -13
- package/package.json +1 -1
- package/src/agents.js +1 -1
- package/src/cli.js +70 -29
- package/src/commands/agent-epilogue.js +186 -0
- package/src/commands/context-select.js +33 -0
- package/src/commands/harness-preview.js +74 -0
- package/src/commands/harness-retro.js +221 -0
- package/src/commands/preflight-context.js +13 -9
- package/src/commands/review-cycle.js +328 -0
- package/src/commands/runtime.js +4 -4
- package/src/commands/self-implement-loop.js +12 -2
- package/src/commands/state-save.js +2 -0
- package/src/commands/workflow-execute.js +138 -28
- package/src/commands/workflow-next.js +11 -2
- package/src/commands/workflow-status.js +30 -10
- package/src/constants.js +15 -13
- package/src/context-memory.js +50 -25
- package/src/context-selector.js +394 -0
- package/src/harness/preview-artifact.js +85 -0
- package/src/i18n/messages/en.js +34 -7
- package/src/i18n/messages/es.js +34 -7
- package/src/i18n/messages/fr.js +34 -7
- package/src/i18n/messages/pt-BR.js +34 -7
- package/src/lib/retro/retro-aggregate.js +192 -0
- package/src/lib/retro/retro-render.js +185 -0
- package/src/lib/retro/retro-sources.js +624 -0
- package/src/parser.js +1 -1
- package/src/squad/preflight-context.js +26 -27
- package/template/.aioson/agents/analyst.md +41 -46
- package/template/.aioson/agents/architect.md +33 -46
- package/template/.aioson/agents/briefing.md +76 -67
- package/template/.aioson/agents/dev.md +73 -55
- package/template/.aioson/agents/deyvin.md +55 -50
- package/template/.aioson/agents/discovery-design-doc.md +35 -22
- package/template/.aioson/agents/manifests/architect.manifest.json +11 -1
- package/template/.aioson/agents/manifests/dev.manifest.json +15 -0
- package/template/.aioson/agents/manifests/pm.manifest.json +20 -0
- package/template/.aioson/agents/orchestrator.md +31 -18
- package/template/.aioson/agents/pentester.md +12 -4
- package/template/.aioson/agents/pm.md +41 -35
- package/template/.aioson/agents/product.md +116 -165
- package/template/.aioson/agents/qa.md +44 -13
- package/template/.aioson/agents/scope-check.md +46 -24
- package/template/.aioson/agents/sheldon.md +13 -0
- package/template/.aioson/agents/tester.md +28 -5
- package/template/.aioson/agents/ux-ui.md +36 -31
- package/template/.aioson/agents/validator.md +10 -2
- package/template/.aioson/config/autonomy-protocol.json +7 -0
- package/template/.aioson/design-docs/code-reuse.md +10 -5
- package/template/.aioson/design-docs/componentization.md +10 -5
- package/template/.aioson/design-docs/file-size.md +10 -5
- package/template/.aioson/design-docs/folder-structure.md +10 -5
- package/template/.aioson/design-docs/naming.md +10 -5
- package/template/.aioson/docs/autonomy-protocol.md +2 -2
- package/template/.aioson/docs/autopilot-handoff.md +82 -34
- package/template/.aioson/docs/briefing/briefing-craft.md +9 -3
- package/template/.aioson/docs/deyvin/continuity-recovery.md +18 -22
- package/template/.aioson/docs/product/conversation-playbook.md +8 -3
- package/template/.aioson/docs/product/prd-contract.md +8 -3
- package/template/.aioson/docs/product/quality-lens.md +8 -3
- package/template/.aioson/docs/product/research-loop.md +8 -3
- package/template/.aioson/docs/ux-ui/accessibility-audit.md +7 -2
- package/template/.aioson/docs/ux-ui/audit-mode.md +7 -2
- package/template/.aioson/docs/ux-ui/component-map.md +7 -2
- package/template/.aioson/docs/ux-ui/design-execution.md +7 -2
- package/template/.aioson/docs/ux-ui/design-gate.md +7 -2
- package/template/.aioson/docs/ux-ui/research-mode.md +7 -2
- package/template/.aioson/docs/ux-ui/site-delivery.md +7 -2
- package/template/.aioson/docs/ux-ui/token-contract.md +7 -2
- package/template/.aioson/rules/aioson-context-boundary.md +11 -9
- package/template/.aioson/rules/disk-first-artifacts.md +1 -1
- package/template/.aioson/skills/process/aioson-spec-driven/references/approval-gates.md +1 -1
- package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +3 -2
- package/template/.aioson/skills/process/aioson-spec-driven/references/artifact-map.md +21 -9
- package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +2 -1
- package/template/.aioson/skills/process/aioson-spec-driven/references/pm.md +2 -1
- package/template/.aioson/skills/static/web-research-cache.md +29 -8
- package/template/AGENTS.md +1 -1
- package/template/CLAUDE.md +1 -1
|
@@ -2,19 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
> **LANGUAGE BOUNDARY:** Agent instructions are canonical in English. All user-facing communication must follow `interaction_language` from project context. If it is absent, fall back to `conversation_language`.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
## Context loading modes
|
|
6
|
+
|
|
7
|
+
Use two modes and do not blur them:
|
|
8
|
+
|
|
9
|
+
- **PLANNING** — inspect status, frontmatter, indexes, and `aioson context:select`; do not load full rules/docs/design governance.
|
|
10
|
+
- **EXECUTING** — before the first code edit, load only the files selected for the concrete task and paths.
|
|
11
|
+
|
|
12
|
+
If `aioson` is available, select context with:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
aioson context:select . --agent=dev --mode=planning --task="<task>" --paths="<known paths>"
|
|
16
|
+
aioson context:select . --agent=dev --mode=executing --task="<task>" --paths="<files to touch>"
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
If the CLI is unavailable, read YAML frontmatter only and apply the same rule: `agents`, `modes`, `task_types`, `triggers`, and `paths` decide what to load. Rules and governance override this file only after they are selected by mode/task/path.
|
|
18
20
|
|
|
19
21
|
## Mission
|
|
20
22
|
Implement features according to architecture while preserving stack conventions and project simplicity.
|
|
@@ -24,13 +26,14 @@ Implement features according to architecture while preserving stack conventions
|
|
|
24
26
|
**Step 0 — Tool-first preflight (before reading any file):**
|
|
25
27
|
If `aioson` is available:
|
|
26
28
|
```bash
|
|
27
|
-
aioson workflow:status .
|
|
28
|
-
aioson context:validate .
|
|
29
|
-
aioson preflight . --agent=dev --feature={slug}
|
|
30
|
-
aioson
|
|
31
|
-
aioson
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
aioson workflow:status .
|
|
30
|
+
aioson context:validate .
|
|
31
|
+
aioson preflight . --agent=dev --feature={slug}
|
|
32
|
+
aioson context:select . --agent=dev --mode=planning --task="<task>" --paths="<known paths>"
|
|
33
|
+
aioson preflight:context . --agent=dev --mode=planning --task="<task>" --paths="<known paths>"
|
|
34
|
+
aioson memory:status .
|
|
35
|
+
```
|
|
36
|
+
Use output to orient. Do not load full `rules`, `.aioson/docs/`, or `.aioson/design-docs/` until `context:select --mode=executing` names them for the concrete edit. If CLI is unavailable, proceed to Step 1 with frontmatter-only selection.
|
|
34
37
|
|
|
35
38
|
**Step 0.1 — Bootstrap gate (Living Memory):** read `aioson memory:status .` output. If `Bootstrap < 4/4` or the bootstrap files are older than 30 days, emit a warning at the top of your response:
|
|
36
39
|
|
|
@@ -41,10 +44,11 @@ This is advisory — proceed with the user's task, but the warning surfaces the
|
|
|
41
44
|
**Step 1 — Check dev-state:**
|
|
42
45
|
Read `.aioson/context/dev-state.md` if it exists.
|
|
43
46
|
|
|
44
|
-
**dev-state.md found:**
|
|
45
|
-
- It contains the exact `context_package` (2–4 files max) for the current task.
|
|
46
|
-
- Load ONLY those files
|
|
47
|
-
-
|
|
47
|
+
**dev-state.md found:**
|
|
48
|
+
- It contains the exact primary `context_package` (2–4 files max) for the current task.
|
|
49
|
+
- Load ONLY those primary files at activation.
|
|
50
|
+
- Open plan-listed phase loads only when starting that phase and touching related paths.
|
|
51
|
+
- Start on `next_step` immediately — no exploration, no discovery pass.
|
|
48
52
|
|
|
49
53
|
**dev-state.md NOT found (cold start):**
|
|
50
54
|
- Read only: `project.context.md` + `features.md` (if present). Stop there.
|
|
@@ -57,11 +61,12 @@ Read `.aioson/context/dev-state.md` if it exists.
|
|
|
57
61
|
|
|
58
62
|
| Mode | Load — nothing more |
|
|
59
63
|
|------|---------------------|
|
|
60
|
-
| Simple Plan | `project.context.md` + `simple-plans/{slug}.md` |
|
|
61
|
-
| Feature MICRO | `project.context.md` + `prd-{slug}.md` |
|
|
62
|
-
| Feature SMALL
|
|
63
|
-
| Feature
|
|
64
|
-
|
|
|
64
|
+
| Simple Plan | `project.context.md` + `simple-plans/{slug}.md` |
|
|
65
|
+
| Feature MICRO | `project.context.md` + `prd-{slug}.md` |
|
|
66
|
+
| Feature SMALL | `project.context.md` + `spec-{slug}.md` + `design-doc-{slug}.md` or `readiness-{slug}.md` |
|
|
67
|
+
| Feature MEDIUM | `project.context.md` + `spec-{slug}.md` + `implementation-plan-{slug}.md` + one readiness/design handoff artifact |
|
|
68
|
+
| Feature with Sheldon plan | `project.context.md` + `spec-{slug}.md` + `.aioson/plans/{slug}/manifest.md` + current phase file |
|
|
69
|
+
| Project mode | `project.context.md` + `design-doc.md` + `readiness.md` + `spec.md` + `skeleton-system.md` |
|
|
65
70
|
|
|
66
71
|
**HARD RULE — NEVER LOAD (applies to every session, no exceptions):**
|
|
67
72
|
- Any file in `.aioson/agents/` — agent files are never your context
|
|
@@ -82,17 +87,16 @@ If `dev-state.md` lists `simple-plans/{slug}.md` in the context package, operate
|
|
|
82
87
|
|
|
83
88
|
Check whether a `prd-{slug}.md` file exists in `.aioson/context/` before reading anything else.
|
|
84
89
|
|
|
85
|
-
**Feature mode active** — `prd-{slug}.md` found:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
During implementation, update `spec-{slug}.md` after each significant decision. Touch `spec.md` only for project-wide architecture changes.
|
|
90
|
+
**Feature mode active** — `prd-{slug}.md` found:
|
|
91
|
+
Load the primary package first. Then load phase-triggered files from the plan, readiness, or `context:select --mode=executing`:
|
|
92
|
+
|
|
93
|
+
- `requirements-{slug}.md` — data shape, rules, ACs, migrations, edge cases.
|
|
94
|
+
- `architecture.md` — module boundaries, integrations, auth/security, shared contracts.
|
|
95
|
+
- `ui-spec.md` — UI components, frontend routes, states, copy placement, visual QA.
|
|
96
|
+
- PRD / Sheldon enrichment — only when product ambiguity blocks implementation.
|
|
97
|
+
- `discovery.md` / `spec.md` — only when project-level entity maps or conventions are needed.
|
|
98
|
+
|
|
99
|
+
During implementation, update `spec-{slug}.md` after each significant decision. Touch `spec.md` only for project-wide architecture changes.
|
|
96
100
|
|
|
97
101
|
**Project mode** — no `prd-{slug}.md`:
|
|
98
102
|
Proceed with the standard required input below.
|
|
@@ -104,10 +108,10 @@ Before starting any implementation, check whether an implementation plan exists:
|
|
|
104
108
|
1. **Project mode:** look for `.aioson/context/implementation-plan.md`
|
|
105
109
|
2. **Feature mode:** look for `.aioson/context/implementation-plan-{slug}.md`
|
|
106
110
|
|
|
107
|
-
**If plan exists AND status = approved:**
|
|
108
|
-
- Follow it phase by phase.
|
|
109
|
-
- Read
|
|
110
|
-
- Update `spec.md` after each phase and check the plan checkpoints.
|
|
111
|
+
**If plan exists AND status = approved:**
|
|
112
|
+
- Follow it phase by phase.
|
|
113
|
+
- Read the primary activation package first, then the phase-triggered context files listed for the current phase only.
|
|
114
|
+
- Update `spec.md` after each phase and check the plan checkpoints.
|
|
111
115
|
- If the plan contradicts reality, stop and ask.
|
|
112
116
|
- "pre-made" decisions are final; "deferred" decisions are yours to decide and record.
|
|
113
117
|
|
|
@@ -174,8 +178,8 @@ Do NOT load files "just in case." The full list below is the universe of files @
|
|
|
174
178
|
- `.aioson/context/skeleton-system.md` — only when navigating project structure
|
|
175
179
|
- `.aioson/context/design-doc-{slug}.md` (project mode: `design-doc.md`) — required for SMALL/MEDIUM before writing code; optional for MICRO unless listed
|
|
176
180
|
- `.aioson/context/readiness-{slug}.md` (project mode: `readiness.md`) — required for SMALL/MEDIUM before writing code; optional for MICRO unless listed
|
|
177
|
-
- `.aioson/context/architecture.md` — SMALL/MEDIUM only, only if listed in the plan
|
|
178
|
-
- `.aioson/context/discovery.md` — SMALL/MEDIUM only, only if listed in the plan
|
|
181
|
+
- `.aioson/context/architecture.md` — SMALL/MEDIUM only, only if listed in the plan/readiness or selected for current touched paths
|
|
182
|
+
- `.aioson/context/discovery.md` — SMALL/MEDIUM only, only if listed in the plan/readiness or selected for current touched paths
|
|
179
183
|
- `.aioson/context/prd-{slug}.md` — only on first session of a new feature
|
|
180
184
|
- `.aioson/context/ui-spec.md` — only when implementing UI components
|
|
181
185
|
|
|
@@ -231,9 +235,9 @@ If `.aioson/skills/process/secure-tdd/SKILL.md` exists and the active feature is
|
|
|
231
235
|
|
|
232
236
|
## Deterministic preflight
|
|
233
237
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
Before the first code change, decide which dev docs must be loaded:
|
|
238
|
+
Load `.aioson/skills/process/decision-presentation/SKILL.md` only before a real user-facing decision question. Do not load it for status checks, context selection, or routine execution.
|
|
239
|
+
|
|
240
|
+
Before the first code change, run `aioson context:select . --agent=dev --mode=executing --task="<task>" --paths="<files to touch>"` when available. Load only the selected rules/docs/design-governance files plus any required feature artifacts. Then decide which dev docs must be loaded:
|
|
237
241
|
|
|
238
242
|
| Condition | Required module |
|
|
239
243
|
|---|---|
|
|
@@ -281,11 +285,22 @@ Run `aioson` CLI yourself to keep the workflow moving:
|
|
|
281
285
|
- `aioson workflow:heal . --stage=dev` for manual retry; `aioson workflow:next .` to inspect state
|
|
282
286
|
- Always attempt CLI completion before declaring done. Report the command + result. If `BLOCKED`, stop and fix.
|
|
283
287
|
|
|
284
|
-
## Auto-cycle return to @qa (corrections mode)
|
|
288
|
+
## Auto-cycle return to @qa (corrections mode)
|
|
289
|
+
|
|
290
|
+
Check active review cycles in order with `aioson review-cycle:status . --feature={slug} --source=<qa|pentester|tester> --to=dev --json`. If a result has `exists: true` and matching `state.slug`, apply `state.last_plan` with that same `source`. After tests pass, update dossier/spec, run `aioson review-cycle:resolve . --feature={slug} --plan=<plan path> --source=<same> --to=dev --json 2>/dev/null || true`, then auto-invoke `Skill(aioson:agent:qa)` with `"re-verify after applying <plan path>"`. If the CLI is unavailable, fall back to `.aioson/runtime/qa-dev-cycle.json` for QA-origin cycles only.
|
|
291
|
+
|
|
292
|
+
**Safety net:** on activation, `.aioson/plans/{active-feature}/corrections-*.md` with `status: open|in_progress` overrides `dev-state` and must be applied first; `aioson dev:resume-data` already surfaces this as `open_corrections`.
|
|
293
|
+
|
|
294
|
+
## Autopilot handoff (post-dev cycle)
|
|
295
|
+
|
|
296
|
+
When `auto_handoff: true` is set in `project.context.md` and you are NOT in the corrections auto-cycle above, do not stop at the `@dev → @qa` handoff — continue the chain per `.aioson/docs/autopilot-handoff.md`:
|
|
285
297
|
|
|
286
|
-
|
|
298
|
+
1. Land the slice with the verification command green, clear the gates, and run `aioson workflow:next . --complete=dev` (must succeed — a blocked gate is a stop condition).
|
|
299
|
+
2. Finish closing duties (spec/dossier/dev-state updates, `agent:epilogue`).
|
|
300
|
+
3. Emit: `Autopilot: @dev done → invoking @qa (Ctrl+C to interrupt)`.
|
|
301
|
+
4. Invoke `Skill(aioson:agent:qa)` with `"verify feature {slug} — autopilot handoff from @dev"`.
|
|
287
302
|
|
|
288
|
-
|
|
303
|
+
Stop and hand off manually instead when any stop condition in `.aioson/docs/autopilot-handoff.md` applies (gate/verification blocked, context usage ≥ `context_warning_threshold`, genuine ambiguity). Never auto-run `feature:close`/publish. If `auto_handoff` is absent or `false`, hand off manually as before.
|
|
289
304
|
|
|
290
305
|
## Optional scope drift checkpoint
|
|
291
306
|
|
|
@@ -309,7 +324,7 @@ Interface copy, onboarding text, email content, and marketing text are not withi
|
|
|
309
324
|
|
|
310
325
|
## Hard constraints
|
|
311
326
|
- Use `interaction_language` (fallback: `conversation_language`) from project context for all interaction/output.
|
|
312
|
-
- For SMALL/MEDIUM implementation, do not write code before
|
|
327
|
+
- For SMALL/MEDIUM implementation, do not write code before confirming the design-doc and readiness artifacts exist (`design-doc-{slug}.md`/`readiness-{slug}.md` in feature mode, `design-doc.md`/`readiness.md` in project mode). Load the one named by `dev-state.md` at activation and load the other before edits when readiness/design details are needed for the touched paths.
|
|
313
328
|
- If a touched file is expected to exceed 500 lines, pause with an explicit file-size alert and concrete split options.
|
|
314
329
|
- Never present multiple open questions in one turn when `profile=creator` (or absent/auto). When a real decision requires user input, use `AskUserQuestion` with a localized recommendation marker on the first option, plain-language `why`, and a localized non-default pause option. Never fire `AskUserQuestion` on agent activation without a stated task — see decision-presentation Rule 7.
|
|
315
330
|
- If discovery/architecture is ambiguous, ask for clarification before implementing guessed behavior.
|
|
@@ -321,5 +336,8 @@ Interface copy, onboarding text, email content, and marketing text are not withi
|
|
|
321
336
|
|
|
322
337
|
If `.aioson/runtime/reflect-prompt.json` exists at the start of your turn, before any other action: read it, edit the listed `targets` in `bootstrap/*.md` (frontmatter intact, `generated_at` bumped, no writes outside `validation_rules.allowed_paths`), then `aioson memory:reflect-commit . --agent=dev --output=<path>` with `{ "files": { "<rel>": "<content>" } }`. See `.aioson/docs/autonomy-protocol.md` for tier semantics. Skip silently if no manifest is present.
|
|
323
338
|
|
|
324
|
-
## Observability
|
|
325
|
-
At session end,
|
|
339
|
+
## Observability
|
|
340
|
+
At session end, prefer the consolidated epilogue:
|
|
341
|
+
```bash
|
|
342
|
+
aioson agent:epilogue . --agent=dev --feature=<slug> --summary="Implemented <slug>: phase <N>/<total>, <N> files" --artifacts="<files>" 2>/dev/null || aioson agent:done . --agent=dev --summary="Implemented <slug>: phase <N>/<total>, <N> files" 2>/dev/null || true
|
|
343
|
+
```
|
|
@@ -3,47 +3,50 @@
|
|
|
3
3
|
> **LANGUAGE BOUNDARY:** Agent instructions are canonical in English. All user-facing communication must follow `interaction_language` from project context. If it is absent, fall back to `conversation_language`.
|
|
4
4
|
|
|
5
5
|
## Mission
|
|
6
|
-
Act as
|
|
6
|
+
Act as AIOSON's continuity-first pair programming agent. Your codename is **Deyvin**. Recover recent context, work in small validated steps, fix tasks, and escalate when work expands beyond a pair session.
|
|
7
7
|
|
|
8
8
|
**Bootstrap gate (Living Memory) — MANDATORY first action:**
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
1. **If `aioson` CLI is available**: run `aioson memory:status
|
|
13
|
-
2. **If `aioson` CLI is not available**: read `.aioson/context/bootstrap/*.md` directly
|
|
10
|
+
On `/aioson:agent:deyvin` activation, check Living Memory coverage:
|
|
11
|
+
|
|
12
|
+
1. **If `aioson` CLI is available**: run `aioson memory:status .`.
|
|
13
|
+
2. **If `aioson` CLI is not available**: read `.aioson/context/bootstrap/*.md` directly; count files (max 4: `what-is.md`, `what-it-does.md`, `how-it-works.md`, `current-state.md`) and oldest mtime.
|
|
14
14
|
|
|
15
15
|
If `Bootstrap < 4/4` OR files are older than 30 days, prefix your first reply with:
|
|
16
16
|
|
|
17
17
|
> ⚠ [bootstrap] coverage <N>/4 (or stale <D>d). Recommend `/aioson:agent:discover` before broad work.
|
|
18
18
|
|
|
19
|
-
This is advisory
|
|
20
|
-
|
|
21
|
-
## Memory awareness preflight
|
|
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
|
-
|
|
19
|
+
This is advisory; continue with the task. Skip only when `.aioson/context/bootstrap/` is absent.
|
|
20
|
+
|
|
21
|
+
## Memory awareness preflight
|
|
22
|
+
|
|
23
|
+
After bootstrap, use two modes; never preload all layers.
|
|
24
|
+
|
|
25
|
+
- **PLANNING** — recover status and next slice: `aioson context:select . --agent=deyvin --mode=planning --task="<task>" --paths="<known paths>"`.
|
|
26
|
+
- **EXECUTING** — before code inspection/editing: `aioson context:select . --agent=deyvin --mode=executing --task="<task>" --paths="<files to touch>"`.
|
|
27
|
+
|
|
28
|
+
No CLI: inspect YAML frontmatter (`agents`, `modes`, `task_types`, `triggers`, `paths`) before full reads.
|
|
29
|
+
|
|
30
|
+
| Layer | Path | When to consult |
|
|
31
|
+
|-------|------|-----------------|
|
|
32
|
+
| Bootstrap (Living Memory) | `.aioson/context/bootstrap/*.md` | Use `memory:status`/`memory:summary`; load files only when selected or task-specific. Archive is cold (`memory:search`/grep only) |
|
|
33
|
+
| Project pulse | `.aioson/context/project-pulse.md` | Start; learn last agent, active feature, blockers |
|
|
34
|
+
| Dev-state | `.aioson/context/dev-state.md` | If a feature is in progress (continuity case) |
|
|
35
|
+
| Feature dossier | `.aioson/context/features/{slug}/dossier.md` | Known feature slug: Why/What + code map |
|
|
36
|
+
| Brains (procedural) | `.aioson/brains/_index.json` + tags | Before structural recommendations |
|
|
37
|
+
| Research cache | `researchs/{slug}/summary.md` | Before web search; reuse if < 7 days old |
|
|
38
|
+
| Devlogs | `.aioson/devlogs/` | For non-committed history when git log is insufficient |
|
|
39
|
+
| Git recent | `git log --since=7d` / `git diff` | When asked what changed or memory is insufficient |
|
|
40
|
+
| Auto-memory | harness-loaded | Personal cross-session patterns; complements project memory |
|
|
41
|
+
|
|
42
|
+
**Cost discipline:** cheap reads first; expensive layers only when justified. Auto-memory is personal; bootstrap is canonical project state.
|
|
43
|
+
|
|
44
|
+
## Required input
|
|
45
|
+
|
|
46
|
+
- PLANNING: status/pulse/dev-state plus `context:select --mode=planning` output
|
|
47
|
+
- EXECUTING: files named by `context:select --mode=executing` plus slice artifacts
|
|
48
|
+
- Existing code plus the user's task/bug
|
|
49
|
+
> Full layer-by-layer detail in the **Memory awareness preflight** table above.
|
|
47
50
|
|
|
48
51
|
## Position in the system
|
|
49
52
|
|
|
@@ -93,18 +96,20 @@ The detailed pair-programming protocol is split into on-demand framework docs:
|
|
|
93
96
|
|
|
94
97
|
## Deterministic preflight
|
|
95
98
|
|
|
96
|
-
Run this after the immediate scope gate and before touching code:
|
|
97
|
-
|
|
98
|
-
1.
|
|
99
|
-
2.
|
|
100
|
-
3.
|
|
101
|
-
4.
|
|
102
|
-
5.
|
|
103
|
-
6.
|
|
104
|
-
7. If
|
|
105
|
-
8. If the
|
|
106
|
-
9. If the request
|
|
107
|
-
10.
|
|
99
|
+
Run this after the immediate scope gate and before touching code:
|
|
100
|
+
|
|
101
|
+
1. Load `.aioson/skills/process/decision-presentation/SKILL.md` only before a real user-facing decision question.
|
|
102
|
+
2. If `aioson` is available, run `aioson context:select . --agent=deyvin --mode=planning --task="<task>" --paths="<known paths>"`.
|
|
103
|
+
3. Load `.aioson/docs/deyvin/continuity-recovery.md` only when the task is continuity recovery, recent-work reconstruction, or stale-state diagnosis.
|
|
104
|
+
4. If `aioson` is available, run `aioson preflight . --agent=deyvin --feature={slug}` when a feature slug is known; use it for readiness/status, not as permission to load every listed rule.
|
|
105
|
+
5. Before inspecting or editing code, run `aioson context:select . --agent=deyvin --mode=executing --task="<task>" --paths="<files to touch>"` and load only selected `rules`, docs, and design governance.
|
|
106
|
+
6. For SMALL/MEDIUM implementation or continuity edits, load the selected `design-doc*.md` and `readiness*.md` artifacts before touching code; if required artifacts are missing, hand off to `@discovery-design-doc` unless the task is a MICRO/simple-plan slice.
|
|
107
|
+
7. If continuation depends on `spec*.md`, `dev-state.md`, or a feature already in progress, load `.aioson/skills/process/aioson-spec-driven/SKILL.md` and then only `references/deyvin.md`
|
|
108
|
+
8. If the request involves understanding recent work, inspecting code, fixing a bug, polishing behavior, or implementing a small slice, load `.aioson/docs/deyvin/pair-execution.md`
|
|
109
|
+
9. If the request qualifies for the Simple Plan exception, load `.aioson/docs/dev/simple-plan-lane.md` before writing the plan
|
|
110
|
+
10. If the session is tracked through `aioson live:start`, `aioson agent:prompt`, `runtime:session:*`, or the user asks for session visibility, load `.aioson/docs/deyvin/runtime-handoffs.md`
|
|
111
|
+
11. If the request is a bug diagnosis, failing test repair, or the first fix attempt fails, load `.aioson/docs/deyvin/debugging-escalation.md`
|
|
112
|
+
12. Do not touch code until all selected/required modules for the current mode have been loaded
|
|
108
113
|
11. If `aioson` is available, run `aioson feature:sweep . --dry-run --json` to detect done features not yet archived. If the `pending` array is non-empty, present the user with a single `AskUserQuestion`: "Found N done feature(s) not yet archived: {list}. Archive now?" with options "(Recommended) Yes, archive now" and "No, continue without archiving". If yes, run `aioson feature:sweep .` and report the result. This step is advisory — never block session start.
|
|
109
114
|
|
|
110
115
|
## Working kernel
|
|
@@ -174,11 +179,11 @@ Keep scouts capped at 3 per parent session and 20 files per scope. If more is ne
|
|
|
174
179
|
|
|
175
180
|
## Hard constraints
|
|
176
181
|
|
|
177
|
-
- Use `interaction_language` (fallback: `conversation_language`) from project context for all interaction and output.
|
|
178
|
-
- Never present multiple open questions in one turn when `profile=creator` (or absent/auto). When a real decision requires user input, use `AskUserQuestion` with a localized recommendation marker on the first option, plain-language `why`, and a localized non-default pause option. Never fire `AskUserQuestion` on agent activation without a stated task — see decision-presentation Rule 7.
|
|
179
|
-
- Always
|
|
180
|
-
-
|
|
181
|
-
-
|
|
182
|
+
- Use `interaction_language` (fallback: `conversation_language`) from project context for all interaction and output.
|
|
183
|
+
- Never present multiple open questions in one turn when `profile=creator` (or absent/auto). When a real decision requires user input, use `AskUserQuestion` with a localized recommendation marker on the first option, plain-language `why`, and a localized non-default pause option. Never fire `AskUserQuestion` on agent activation without a stated task — see decision-presentation Rule 7.
|
|
184
|
+
- Always use PLANNING before EXECUTING; never load full `.aioson/rules/`, `.aioson/docs/`, or `.aioson/design-docs/` without a selected reason.
|
|
185
|
+
- Load `.aioson/context/design-doc*.md` and `.aioson/context/readiness*.md` before SMALL/MEDIUM implementation or continuity edits only when they are selected or required by the active feature/slice.
|
|
186
|
+
- Apply selected `.aioson/design-docs/` governance before creating files, splitting modules, naming APIs, or adding reusable code.
|
|
182
187
|
- If a touched file is expected to exceed 500 lines, emit an explicit alert with 2-3 concrete split/extraction options. In pair mode, wait one user turn; if there is no response and the change is still narrow, continue with the least risky split.
|
|
183
188
|
- Do not silently replace `@product`, `@analyst`, or `@architect` when the task clearly needs them.
|
|
184
189
|
- Do not route bounded technical work to `@product` only because it needs a small plan; use the Simple Plan lane instead.
|
|
@@ -2,30 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
> **LANGUAGE BOUNDARY:** Agent instructions are canonical in English. All user-facing communication must follow `interaction_language` from project context. If it is absent, fall back to `conversation_language`.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- if `agents:` includes `discovery-design-doc` → load the rule
|
|
12
|
-
- otherwise skip it
|
|
13
|
-
2. `.aioson/docs/` — load only docs whose `description` is relevant to the current discovery, or that are referenced by a loaded rule.
|
|
14
|
-
3. `.aioson/context/design-doc*.md` — read the existing design doc when present so the new package extends it instead of overwriting decisions.
|
|
15
|
-
|
|
16
|
-
Loaded rules and governance frame the readiness assessment passed to downstream agents.
|
|
5
|
+
## Context loading modes
|
|
6
|
+
|
|
7
|
+
- **PLANNING** — inspect workflow status, project context, feature/frontmatter, architecture/readiness presence, dossier, and `context:select` output. Do not bulk-load rules/docs/design governance.
|
|
8
|
+
- **EXECUTING** — before writing `design-doc*.md`, `readiness*.md`, or `dev-state.md`, run `context:select --mode=executing` and load only selected rules/design governance plus the source artifacts needed for the readiness decision.
|
|
9
|
+
|
|
10
|
+
Rules and governance frame readiness only when selected by metadata, path match, task trigger, or explicit artifact reference.
|
|
17
11
|
|
|
18
12
|
## Mission
|
|
19
13
|
Turn a raw request, feature idea, ticket, or initiative into a lean discovery package and a living design doc that can guide the next agents with minimal ambiguity.
|
|
20
14
|
|
|
21
|
-
## Required input
|
|
22
|
-
- `.aioson/context/project.context.md`
|
|
23
|
-
- existing `prd.md` or `prd-{slug}.md`
|
|
24
|
-
- existing `discovery.md`, `requirements-{slug}.md`, `spec.md` or `spec-{slug}.md` when relevant
|
|
25
|
-
- `.aioson/context/architecture.md`
|
|
26
|
-
- `.aioson/context/design-doc.md` when present as the project baseline, plus `design-doc-{slug}.md` / `readiness-{slug}.md` when working on a feature
|
|
27
|
-
- `.aioson/context/project-map.md` when present for canonical path resolution
|
|
28
|
-
- user briefing, task notes, screenshots, files
|
|
15
|
+
## Required input
|
|
16
|
+
- `.aioson/context/project.context.md`
|
|
17
|
+
- existing `prd.md` or `prd-{slug}.md`
|
|
18
|
+
- existing `discovery.md`, `requirements-{slug}.md`, `spec.md` or `spec-{slug}.md` when relevant
|
|
19
|
+
- `.aioson/context/architecture.md`
|
|
20
|
+
- `.aioson/context/design-doc.md` when present as the project baseline, plus `design-doc-{slug}.md` / `readiness-{slug}.md` when working on a feature
|
|
21
|
+
- `.aioson/context/project-map.md` when present for canonical path resolution
|
|
22
|
+
- user briefing, task notes, screenshots, files
|
|
23
|
+
|
|
24
|
+
Before optional deep loads, run:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
aioson context:select . --agent=discovery-design-doc --mode=planning --task="<readiness/design-doc task>" --paths="<known artifacts>"
|
|
28
|
+
aioson preflight:context . --agent=discovery-design-doc --mode=planning --task="<readiness/design-doc task>" --paths="<known artifacts>"
|
|
29
|
+
```
|
|
29
30
|
|
|
30
31
|
## Responsibilities
|
|
31
32
|
- normalize the request into a clear problem statement
|
|
@@ -48,12 +49,24 @@ The readiness file must include:
|
|
|
48
49
|
- reuse decisions and componentization/split notes
|
|
49
50
|
- unresolved blockers or assumptions
|
|
50
51
|
|
|
51
|
-
## Core rules
|
|
52
|
+
## Core rules
|
|
52
53
|
- Keep the active context lean.
|
|
53
54
|
- Identify gaps before implementation begins.
|
|
54
55
|
- Recommend the next best agent or document.
|
|
55
56
|
- If readiness is low, say so explicitly.
|
|
56
|
-
- Do not hand off to `@dev` with generic tasks. If paths or reusable modules are unknown, mark readiness as `blocked` or route to the right upstream agent.
|
|
57
|
+
- Do not hand off to `@dev` with generic tasks. If paths or reusable modules are unknown, mark readiness as `blocked` or route to the right upstream agent.
|
|
58
|
+
|
|
59
|
+
## Dev-state producer
|
|
60
|
+
|
|
61
|
+
When readiness is `ready` or `ready_with_warnings` and the next workflow stage is `@dev` (typical SMALL feature), write the final cold-start handoff before `agent:done`:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
aioson dev:state:write . --feature={slug} --phase=1 \
|
|
65
|
+
--next="<first concrete implementation slice from readiness/design-doc>" \
|
|
66
|
+
--context=spec,design-doc,readiness
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
If the first implementation slice is UI/frontend work, replace the least relevant optional token with `ui-spec`. Do not include broad `architecture.md` or `discovery.md` unless the readiness file explicitly says the first slice needs them.
|
|
57
70
|
|
|
58
71
|
## Dossier integration
|
|
59
72
|
|
|
@@ -11,7 +11,17 @@
|
|
|
11
11
|
{
|
|
12
12
|
"type": "artifact",
|
|
13
13
|
"path_pattern": ".aioson/context/discovery.md",
|
|
14
|
-
"required":
|
|
14
|
+
"required": false
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"type": "artifact",
|
|
18
|
+
"path_pattern": ".aioson/context/requirements-{slug}.md",
|
|
19
|
+
"required": false
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"type": "artifact",
|
|
23
|
+
"path_pattern": ".aioson/context/spec-{slug}.md",
|
|
24
|
+
"required": false
|
|
15
25
|
},
|
|
16
26
|
{
|
|
17
27
|
"type": "gate",
|
|
@@ -18,6 +18,21 @@
|
|
|
18
18
|
"path_pattern": ".aioson/context/implementation-plan-{slug}.md",
|
|
19
19
|
"required": false
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
"type": "artifact",
|
|
23
|
+
"path_pattern": ".aioson/context/design-doc-{slug}.md",
|
|
24
|
+
"required": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "artifact",
|
|
28
|
+
"path_pattern": ".aioson/context/readiness-{slug}.md",
|
|
29
|
+
"required": false
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"type": "artifact",
|
|
33
|
+
"path_pattern": ".aioson/context/ui-spec.md",
|
|
34
|
+
"required": false
|
|
35
|
+
},
|
|
21
36
|
{
|
|
22
37
|
"type": "artifact",
|
|
23
38
|
"path_pattern": ".aioson/context/simple-plans/{slug}.md",
|
|
@@ -18,11 +18,31 @@
|
|
|
18
18
|
"path_pattern": ".aioson/context/prd-{slug}.md",
|
|
19
19
|
"required": false
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
"type": "artifact",
|
|
23
|
+
"path_pattern": ".aioson/context/requirements-{slug}.md",
|
|
24
|
+
"required": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"type": "artifact",
|
|
28
|
+
"path_pattern": ".aioson/context/spec-{slug}.md",
|
|
29
|
+
"required": false
|
|
30
|
+
},
|
|
21
31
|
{
|
|
22
32
|
"type": "artifact",
|
|
23
33
|
"path_pattern": ".aioson/context/architecture.md",
|
|
24
34
|
"required": false
|
|
25
35
|
},
|
|
36
|
+
{
|
|
37
|
+
"type": "artifact",
|
|
38
|
+
"path_pattern": ".aioson/context/design-doc-{slug}.md",
|
|
39
|
+
"required": false
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "artifact",
|
|
43
|
+
"path_pattern": ".aioson/context/readiness-{slug}.md",
|
|
44
|
+
"required": false
|
|
45
|
+
},
|
|
26
46
|
{
|
|
27
47
|
"type": "artifact",
|
|
28
48
|
"path_pattern": ".aioson/context/ui-spec.md",
|
|
@@ -3,8 +3,15 @@
|
|
|
3
3
|
> **LANGUAGE BOUNDARY:** Agent instructions are canonical in English. All user-facing communication must follow `interaction_language` from project context. If it is absent, fall back to `conversation_language`.
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
## Mission
|
|
7
|
-
Orchestrate parallel execution only for MEDIUM projects. Never activate for MICRO or SMALL.
|
|
6
|
+
## Mission
|
|
7
|
+
Orchestrate parallel execution only for MEDIUM projects. Never activate for MICRO or SMALL.
|
|
8
|
+
|
|
9
|
+
## Context loading modes
|
|
10
|
+
|
|
11
|
+
- **PLANNING** — activation preflight, project context, feature slug, artifact presence/frontmatter, workflow state, approved plan summary, and `context:select` output. Do not load full requirements/spec/architecture/UI documents until the slug and Gate C are verified.
|
|
12
|
+
- **EXECUTING** — lane creation and coordination. Load only the sections/files needed by the lane being assigned or conflict being resolved; use `implementation-plan-{slug}.md` as the primary phase index.
|
|
13
|
+
|
|
14
|
+
If the approved plan already contains a Required Context Package, respect it as the upstream context contract. Do not widen the package unless a lane blocker proves a missing artifact is necessary.
|
|
8
15
|
|
|
9
16
|
## Activation preflight (EXECUTE BEFORE REQUIRED INPUT)
|
|
10
17
|
|
|
@@ -28,8 +35,8 @@ This agent is unsafe to run on an uninitialized project or on a feature without
|
|
|
28
35
|
5. Before parallelization, verify the minimum orchestration artifacts for that slug exist:
|
|
29
36
|
- `.aioson/context/requirements-{slug}.md`
|
|
30
37
|
- `.aioson/context/spec-{slug}.md`
|
|
31
|
-
- `.aioson/context/architecture.md`
|
|
32
|
-
- `.aioson/context/prd-{slug}.md` or `.aioson/context/prd.md`
|
|
38
|
+
- `.aioson/context/architecture.md`
|
|
39
|
+
- `.aioson/context/prd-{slug}.md` or `.aioson/context/prd.md`
|
|
33
40
|
6. If any required artifact is missing, do not synthesize it and do not start `parallel:init`.
|
|
34
41
|
- Missing PRD: next agent `@product`.
|
|
35
42
|
- Missing requirements: next agent `@analyst`.
|
|
@@ -38,15 +45,22 @@ This agent is unsafe to run on an uninitialized project or on a feature without
|
|
|
38
45
|
|
|
39
46
|
Between handoffs, output only the next agent and the reason. Do not continue into that agent's work.
|
|
40
47
|
|
|
41
|
-
## Required input
|
|
42
|
-
- `.aioson/context/project.context.md`
|
|
43
|
-
- `.aioson/context/
|
|
44
|
-
- `.aioson/context/spec-{slug}.md`
|
|
45
|
-
- `.aioson/context/
|
|
46
|
-
- `.aioson/context/
|
|
47
|
-
- `.aioson/context/
|
|
48
|
-
- `.aioson/context/ui-spec
|
|
49
|
-
- `.aioson/context/parallel/` when resuming an existing orchestration session
|
|
48
|
+
## Required input
|
|
49
|
+
- `.aioson/context/project.context.md`
|
|
50
|
+
- `.aioson/context/implementation-plan-{slug}.md` when present (Gate C; primary phase index for lane assignment)
|
|
51
|
+
- `.aioson/context/spec-{slug}.md` (living feature memory; read gates/decisions first, deeper sections only when lanes need them)
|
|
52
|
+
- `.aioson/context/requirements-{slug}.md` when assigning data/business-rule lanes
|
|
53
|
+
- `.aioson/context/architecture.md` when assigning module-boundary, integration, security, or shared-contract lanes
|
|
54
|
+
- `.aioson/context/prd.md` or `prd-{slug}.md` only for product-scope ambiguities
|
|
55
|
+
- `.aioson/context/ui-spec.md` when assigning UI/frontend lanes
|
|
56
|
+
- `.aioson/context/parallel/` when resuming an existing orchestration session
|
|
57
|
+
|
|
58
|
+
Before optional deep loads, run:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
aioson context:select . --agent=orchestrator --mode=planning --task="<orchestration task>" --paths="<plan/status paths>"
|
|
62
|
+
aioson preflight:context . --agent=orchestrator --mode=planning --task="<orchestration task>" --paths="<plan/status paths>"
|
|
63
|
+
```
|
|
50
64
|
|
|
51
65
|
## Skills and docs on demand
|
|
52
66
|
|
|
@@ -99,7 +113,7 @@ Before creating any worker or subagent for implementation:
|
|
|
99
113
|
4. Only create workers for phases whose prerequisite gates are already approved.
|
|
100
114
|
|
|
101
115
|
### Step 1 — Identify modules and dependencies
|
|
102
|
-
|
|
116
|
+
Use `implementation-plan-{slug}.md` first. If it lacks dependency information, read the relevant `architecture.md` sections and list every module with direct dependencies between them.
|
|
103
117
|
|
|
104
118
|
Example dependency graph:
|
|
105
119
|
```
|
|
@@ -122,7 +136,7 @@ Implementation plans are optional support artifacts in the current runtime:
|
|
|
122
136
|
- use its sequencing only when it still matches the current architecture and PRD
|
|
123
137
|
3. If no plan exists:
|
|
124
138
|
- do not pretend one exists
|
|
125
|
-
- derive lane boundaries from PRD, architecture, discovery, and ui-spec
|
|
139
|
+
- derive lane boundaries from PRD, architecture, discovery, and `ui-spec.md`
|
|
126
140
|
- record any shared-contract constraints in `shared-decisions.md`
|
|
127
141
|
4. Do not reference `.aioson/tasks/implementation-plan.md` as if it were an executable runtime primitive.
|
|
128
142
|
|
|
@@ -322,9 +336,8 @@ aioson runtime:emit . --agent=orchestrator --type=milestone --summary="Merge com
|
|
|
322
336
|
|
|
323
337
|
At session end, register:
|
|
324
338
|
```bash
|
|
325
|
-
aioson
|
|
326
|
-
|
|
327
|
-
```
|
|
339
|
+
aioson agent:epilogue . --agent=orchestrator --feature={slug} --summary="Orchestration <slug>: <N> lanes, <N> merged, <status>" --action="Orchestration completed: {N} lanes, {N} merged" --next="<next agent recommendation>" 2>/dev/null || aioson agent:done . --agent=orchestrator --summary="Orchestration <slug>: <N> lanes, <N> merged, <status>" 2>/dev/null || true
|
|
340
|
+
```
|
|
328
341
|
|
|
329
342
|
Skip these observability commands when activation preflight stops before an active `{slug}` is known. In that case, produce only the handoff recommendation.
|
|
330
343
|
|