@ludecker/aaac 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +4 -3
  2. package/package.json +13 -1
  3. package/src/cli.mjs +39 -5
  4. package/src/generators/generate-commands.mjs +120 -3
  5. package/src/generators/generate-graph.mjs +17 -0
  6. package/src/lib/install.mjs +1 -0
  7. package/src/lib/run-engine-paths.mjs +33 -0
  8. package/src/run-engine/advance-phase.mjs +192 -0
  9. package/src/run-engine/debug-run.mjs +38 -0
  10. package/src/run-engine/gate-write.mjs +95 -0
  11. package/src/run-engine/init-run.mjs +165 -0
  12. package/src/run-engine/lib.mjs +136 -0
  13. package/src/run-engine/log-dump.mjs +76 -0
  14. package/src/run-engine/log-trace.mjs +18 -0
  15. package/src/run-engine/log.mjs +343 -0
  16. package/src/run-engine/record-task.mjs +56 -0
  17. package/src/run-engine/stop-check.mjs +55 -0
  18. package/templates/cursor/aaac/complexity.yaml +98 -0
  19. package/templates/cursor/aaac/contracts/commands/fix-bug.yaml +10 -3
  20. package/templates/cursor/aaac/contracts/commands/fix-module.yaml +41 -0
  21. package/templates/cursor/aaac/contracts/skills/investigation.yaml +22 -1
  22. package/templates/cursor/aaac/contracts/skills/planning.yaml +17 -0
  23. package/templates/cursor/aaac/contracts/skills/validation.yaml +9 -1
  24. package/templates/cursor/aaac/dispatch.md +30 -5
  25. package/templates/cursor/aaac/enforcement.json +22 -0
  26. package/templates/cursor/aaac/fitness-functions.yaml +8 -0
  27. package/templates/cursor/aaac/governance/gates.json +3 -1
  28. package/templates/cursor/aaac/graph.project.yaml +237 -5
  29. package/templates/cursor/aaac/layers.md +3 -1
  30. package/templates/cursor/aaac/lifecycle/lifecycle.json +41 -1
  31. package/templates/cursor/aaac/lifecycle/phases.json +1 -0
  32. package/templates/cursor/aaac/observability/telemetry.yaml +60 -0
  33. package/templates/cursor/aaac/observability/verb-debug.yaml +170 -0
  34. package/templates/cursor/aaac/ontology.json +10 -1
  35. package/templates/cursor/aaac/run/RUN.md +2 -0
  36. package/templates/cursor/aaac/run/schema.json +9 -0
  37. package/templates/cursor/aaac/scripts/generate-runtime-registry.mjs +115 -0
  38. package/templates/cursor/aaac/scripts/run-engine/advance-phase.mjs +192 -0
  39. package/templates/cursor/aaac/scripts/run-engine/debug-run.mjs +38 -0
  40. package/templates/cursor/aaac/scripts/run-engine/gate-write.mjs +95 -0
  41. package/templates/cursor/aaac/scripts/run-engine/init-run.mjs +165 -0
  42. package/templates/cursor/aaac/scripts/run-engine/lib.mjs +136 -0
  43. package/templates/cursor/aaac/scripts/run-engine/log-dump.mjs +76 -0
  44. package/templates/cursor/aaac/scripts/run-engine/log-trace.mjs +18 -0
  45. package/templates/cursor/aaac/scripts/run-engine/log.mjs +343 -0
  46. package/templates/cursor/aaac/scripts/run-engine/record-task.mjs +56 -0
  47. package/templates/cursor/aaac/scripts/run-engine/stop-check.mjs +55 -0
  48. package/templates/cursor/agents/aaac-log-debug.md +72 -0
  49. package/templates/cursor/agents/fix-code-path.md +27 -0
  50. package/templates/cursor/agents/fix-hypothesis-validate.md +26 -0
  51. package/templates/cursor/agents/fix-inventory-confirm.md +22 -0
  52. package/templates/cursor/agents/fix-recent-changes.md +22 -0
  53. package/templates/cursor/agents/fix-regression-scope.md +27 -0
  54. package/templates/cursor/agents/fix-repro-verify.md +21 -0
  55. package/templates/cursor/agents/fix-repro.md +29 -0
  56. package/templates/cursor/agents/fix-runtime-evidence.md +22 -0
  57. package/templates/cursor/agents/fix-test-failures.md +23 -0
  58. package/templates/cursor/agents/playwright-check-run.md +44 -0
  59. package/templates/cursor/hooks/aaac-before-submit.sh +3 -0
  60. package/templates/cursor/hooks/aaac-pre-tool.sh +4 -0
  61. package/templates/cursor/hooks/aaac-stop.sh +3 -0
  62. package/templates/cursor/hooks/aaac-subagent-start.sh +3 -0
  63. package/templates/cursor/hooks.json +30 -0
  64. package/templates/cursor/policies/minimal-complexity.md +101 -0
  65. package/templates/cursor/rules/aaac-enforcement.mdc +42 -0
  66. package/templates/cursor/skills/shared/execution/SKILL.md +1 -1
  67. package/templates/cursor/skills/shared/fitness-functions/SKILL.md +23 -7
  68. package/templates/cursor/skills/shared/investigation/SKILL.md +91 -18
  69. package/templates/cursor/skills/shared/investigation/orchestrator/SKILL.md +12 -4
  70. package/templates/cursor/skills/shared/planning/SKILL.md +74 -8
  71. package/templates/cursor/skills/shared/reporting/SKILL.md +2 -1
  72. package/templates/cursor/skills/shared/root-cause/SKILL.md +14 -3
  73. package/templates/cursor/skills/shared/testing/SKILL.md +26 -5
  74. package/templates/cursor/skills/shared/validation/SKILL.md +48 -13
  75. package/templates/cursor/skills/shared/verbs/_dispatch-utils.md +20 -1
  76. package/templates/cursor/skills/shared/verbs/_lifecycle.md +3 -2
  77. package/templates/cursor/skills/shared/verbs/check/orchestrator/SKILL.md +4 -1
  78. package/templates/cursor/skills/shared/verbs/create/orchestrator/SKILL.md +2 -2
  79. package/templates/cursor/skills/shared/verbs/fix/orchestrator/SKILL.md +21 -11
  80. package/templates/cursor/skills/shared/verbs/fix/orchestrator/contract.yaml +19 -4
  81. package/templates/cursor/skills/shared/verbs/update/orchestrator/SKILL.md +2 -2
  82. package/templates/cursor/skills/shared/verification/SKILL.md +2 -0
@@ -1,13 +1,22 @@
1
1
  ---
2
2
  name: shared-root-cause
3
3
  description: >-
4
- Deep root-cause framing after investigation on fix paths. Not user-facing.
4
+ Deep root-cause framing after investigation swarm on fix paths. Not user-facing.
5
5
  disable-model-invocation: true
6
6
  ---
7
7
 
8
8
  # Root cause (fix only)
9
9
 
10
- **When:** fix verb lifecycle — after [investigation](../investigation/SKILL.md), before planning.
10
+ **When:** fix verb lifecycle — after [investigation](../investigation/SKILL.md) Mode A merge, before planning.
11
+
12
+ **Input:** Run artifact `artifacts/investigation.md` (required).
13
+
14
+ ## Procedure
15
+
16
+ 1. Synthesize swarm outputs into one hypothesis — cite `path:line` evidence
17
+ 2. If any investigation agent had `confidence: low` **or** merged architecture confidence < 0.85 → launch **1 parallel** [fix-hypothesis-validate.md](../../../agents/fix-hypothesis-validate.md) (`explore`, readonly)
18
+ 3. If validator returns `investigate_more` → **STOP, REQUEST CLARIFICATION** or run second investigation wave (max 2 agents)
19
+ 4. Write Run artifact `artifacts/root_cause.yaml`
11
20
 
12
21
  ## Output (mandatory)
13
22
 
@@ -17,8 +26,10 @@ root_cause: hypothesis with evidence (path:line)
17
26
  contributing_factors: [optional bullets]
18
27
  fix_strategy: minimal correct change (not symptom patch)
19
28
  regression_risk: low | medium | high
29
+ root_cause_confidence: 0.0–1.0
30
+ validator_action: proceed | investigate_more | skipped
20
31
  ```
21
32
 
22
- If root cause confidence < 0.7 → **STOP, REQUEST CLARIFICATION** — do not plan or execute.
33
+ If `root_cause_confidence` < **0.7** → **STOP, REQUEST CLARIFICATION** — do not plan or execute.
23
34
 
24
35
  Feed `fix_strategy` and `regression_risk` into [impact-analysis](../impact-analysis/SKILL.md) and [rollback](../rollback/SKILL.md).
@@ -1,8 +1,8 @@
1
1
  ---
2
2
  name: shared-testing
3
3
  description: >-
4
- Runs vitest and Fallow check_changed for AAAC workflows. Software pass/fail —
5
- not goal verification. Not user-facing.
4
+ Runs vitest, Fallow check_changed, and fix repro verification swarm.
5
+ Software pass/fail — not goal verification. Not user-facing.
6
6
  disable-model-invocation: true
7
7
  ---
8
8
 
@@ -10,15 +10,36 @@ disable-model-invocation: true
10
10
 
11
11
  ## When
12
12
 
13
- Phase `test` (and `test_only` orchestrators).
13
+ Phase `verify` (and `test_only` orchestrators). On **fix** paths, run fix verify swarm **before** declaring tests complete.
14
14
 
15
- ## Steps
15
+ ## Standard steps
16
16
 
17
17
  1. Run tests from domain inventory relevant to change
18
18
  2. Invoke [unit-test-run.md](../../../agents/unit-test-run.md) pattern for targeted vitest
19
19
  3. Fallow MCP → `check_changed` on touched files when configured
20
20
  4. `ReadLints` on edited paths
21
21
 
22
+ ## Fix verify swarm (mandatory on fix verb / fix_mode)
23
+
24
+ After unit tests, launch **3 parallel** `Task` subagents in **one message**:
25
+
26
+ | # | Agent spec | `subagent_type` | Role |
27
+ |---|------------|-----------------|------|
28
+ | 1 | [fix-repro-verify.md](../../../agents/fix-repro-verify.md) | `shell` | Re-run repro steps from investigation artifact |
29
+ | 2 | [unit-test-run.md](../../../agents/unit-test-run.md) | `shell` | Targeted vitest for suspect area |
30
+ | 3 | [fallow-check-changed.md](../../../agents/fallow-check-changed.md) | `generalPurpose` | Static health on touched files |
31
+
32
+ Parent merges into Run `artifacts.testing`:
33
+
34
+ ```yaml
35
+ repro_status: fixed | partial | not_fixed
36
+ tests: { pass, fail, names: [] }
37
+ fallow: pass | warn | fail
38
+ lints: clean | issues
39
+ ```
40
+
41
+ If `repro_status: not_fixed` → verification must **fail** even when unit tests pass.
42
+
22
43
  ## Output
23
44
 
24
- Pass/fail summary with test names and Fallow verdict for `verification` skill.
45
+ Pass/fail summary with test names, repro_status, and Fallow verdict for [verification](../verification/SKILL.md).
@@ -1,16 +1,18 @@
1
1
  ---
2
2
  name: shared-validation
3
3
  description: >-
4
- Confidence gates before execute. STOP and request clarification when thresholds
5
- not met. Not user-facing.
4
+ Confidence and complexity gates before execute on create/update/fix.
5
+ STOP and request clarification when thresholds not met. Not user-facing.
6
6
  disable-model-invocation: true
7
7
  ---
8
8
 
9
- # Validation (confidence gates)
9
+ # Validation (confidence + complexity gates)
10
10
 
11
- **When:** After plan, **before** impact_analysis / execute.
11
+ **When:** After `plan`, **before** impact_analysis / execute.
12
12
 
13
- ## Thresholds (SSOT)
13
+ **Applies to:** `create`, `update`, `fix` (see [complexity.yaml](../../../aaac/complexity.yaml) `mutating_verbs`).
14
+
15
+ ## Thresholds — confidence (SSOT)
14
16
 
15
17
  From [ontology.json](../../../aaac/ontology.json) `confidence`:
16
18
 
@@ -20,22 +22,47 @@ From [ontology.json](../../../aaac/ontology.json) `confidence`:
20
22
  | requirements | 0.8 |
21
23
  | scope | 0.8 |
22
24
 
25
+ ## Thresholds — complexity (SSOT)
26
+
27
+ From [complexity.yaml](../../../aaac/complexity.yaml):
28
+
29
+ | Verb | Max `complexity_score` |
30
+ |------|------------------------|
31
+ | fix | 5 |
32
+ | update | 8 |
33
+ | create | 12 |
34
+
23
35
  ## Inputs
24
36
 
25
- - Plan from [planning](../planning/SKILL.md)
26
- - Confidence scores from [investigation-lite](../investigation-lite/SKILL.md) or [investigation](../investigation/SKILL.md) + [root-cause](../root-cause/SKILL.md)
37
+ - Plan from [planning](../planning/SKILL.md) → Run `artifacts.plan`
38
+ - Confidence scores from investigation path
27
39
  - Domain inventory constraints
40
+ - [minimal-complexity.md](../../../policies/minimal-complexity.md)
28
41
 
29
42
  ## Procedure
30
43
 
44
+ ### 1. Confidence
45
+
31
46
  1. Score each dimension 0.0–1.0 with one-line evidence
32
47
  2. Compare to thresholds
33
- 3. If **any** below threshold:
48
+
49
+ ### 2. Plan / complexity (mutating verbs only)
50
+
51
+ 1. Verify Run `artifacts.plan` has: `requirement_map`, `complexity_score`, `reuse`, `modify`, `create`, `rejected_alternatives`
52
+ 2. Every `create[]` entry must have `requirement_ref` and `why_not_reuse`
53
+ 3. Each requirement in user intent must appear in `requirement_map`
54
+ 4. Compare `complexity_score` to verb threshold
55
+ 5. Scan plan for YAGNI phrases ([complexity.yaml](../../../aaac/complexity.yaml) `yagni.reject_without_user_evidence`) — fail unless user intent cites the same need
56
+ 6. **fix:** plan must prioritize `modify` over `create`; score > 5 → fail
57
+
58
+ ### 3. Fail → block Run
59
+
60
+ If confidence below threshold **or** complexity checks fail:
34
61
 
35
62
  ```yaml
36
63
  status: blocked
37
64
  awaiting_approval: true
38
- blocked_reason: "confidence.{dimension} {score} below {threshold}"
65
+ blocked_reason: "<specific reason>"
39
66
  ```
40
67
 
41
68
  ```text
@@ -44,13 +71,21 @@ Reason: {blocked_reason}
44
71
  Run: {run_id}
45
72
  ```
46
73
 
47
- List specific questions for the user. **Do not proceed to execute** until user approves in chat.
74
+ List specific questions. **Do not proceed to execute** until user approves or plan is revised.
75
+
76
+ ### 4. Pass
77
+
78
+ Record on Run:
79
+
80
+ - `confidence` scores
81
+ - `gates.results.validate`
82
+ - `artifacts.plan` complexity fields
48
83
 
49
- 4. Record scores on Run `confidence` and gate result in `gates.results.validate`
50
- 5. If at threshold: emit gate pass, continue gate stack
84
+ Continue gate stack.
51
85
 
52
86
  ## Plan sanity checks
53
87
 
54
88
  - Plan respects inventory out-of-scope
55
89
  - Plan names files to touch (no vague "update CMS")
56
- - Protected/critical objects include rollback mention in plan or next rollback phase
90
+ - Protected/critical objects include rollback mention
91
+ - No new service/table/queue/state machine without matching `requirement_map` entry
@@ -18,6 +18,25 @@ Read before any phase:
18
18
  1. [.cursor/policies/master-rules.md](../../../policies/master-rules.md)
19
19
  2. [.cursor/policies/implementation.md](../../../policies/implementation.md)
20
20
  3. [.cursor/policies/mcp-and-deploy.md](../../../policies/mcp-and-deploy.md)
21
+ 4. [.cursor/policies/minimal-complexity.md](../../../policies/minimal-complexity.md) — **required for create / update / fix**
22
+
23
+ ## Minimal complexity (create / update / fix)
24
+
25
+ SSOT: [complexity.yaml](../../../aaac/complexity.yaml), [minimal-complexity.md](../../../policies/minimal-complexity.md)
26
+
27
+ | Phase | Responsibility |
28
+ |-------|----------------|
29
+ | **plan** | `requirement_map`, `complexity_score`, reuse/modify/create, rejected alternatives → Run `artifacts.plan` |
30
+ | **validate** | Confidence + plan fields + score ≤ threshold + YAGNI |
31
+ | **fitness_functions** | `minimal_complexity` pass (blocking) |
32
+
33
+ Optimization: **capability / complexity**, not capability alone. Default to reuse → extend → modify → create.
34
+
35
+ | Verb | Max complexity score |
36
+ |------|----------------------|
37
+ | fix | 5 |
38
+ | update | 8 |
39
+ | create | 12 |
21
40
 
22
41
  ## Confidence gates
23
42
 
@@ -49,7 +68,7 @@ When `$DOMAIN` slug maps to `domains/<slug>/update/inventory/SKILL.md`:
49
68
  1. Read inventory **first** (constraints, out-of-scope, file map)
50
69
  2. Pass inventory constraints into discovery, investigation-lite/investigation, planning, validation, execution, verification
51
70
 
52
- If inventory missing and command is `fix-bug` / `create-feature` / `update-module`:
71
+ If inventory missing and command is `fix-bug` / `fix-module` / `create-feature` / `update-module`:
53
72
 
54
73
  - Run [module-authoring](../../module-authoring/SKILL.md) discovery to bootstrap domain, **or**
55
74
  - Tell user to use generic verb command with intent
@@ -30,7 +30,8 @@ Everything executes within a Run. Observability (`decisions`, `log`, `checkpoint
30
30
  |-------|------|-------|
31
31
  | `discover` | work | discovery |
32
32
  | `investigate_lite` | work | investigation-lite |
33
- | `investigate` | work | investigation |
33
+ | `investigate` | work | investigation (legacy id; use investigate_swarm) |
34
+ | `investigate_swarm` | work | investigation Mode A |
34
35
  | `root_cause` | work | root-cause |
35
36
  | `plan` | work | planning |
36
37
  | `validate` | gate | validation |
@@ -48,7 +49,7 @@ Everything executes within a Run. Observability (`decisions`, `log`, `checkpoint
48
49
  |------|------|------------|
49
50
  | create | discover → investigate_lite → plan → execute → verify → report | pre_execute |
50
51
  | update | same | pre_execute |
51
- | fix | discover → investigate → root_cause → plan → execute → verify → report | pre_execute |
52
+ | fix | discover → investigate_swarm → root_cause → plan → execute → verify → report | pre_execute |
52
53
  | review | discover → plan → report | none |
53
54
  | check | discover → report | pre_execute_minimal |
54
55
  | test | discover → plan → verify → report | none |
@@ -17,6 +17,9 @@ Read [_dispatch-utils.md](../_dispatch-utils.md) first.
17
17
  3. **load_inventory** — when domain slug maps to inventory
18
18
  4. **object_skills** — from graph `object_skills.<object>`
19
19
  5. [check](../../check/SKILL.md) — swarm per check skill
20
- 6. [reporting](../../reporting/SKILL.md) **Answer** (yes/no/partial) then **How**
20
+ 6. **contract_checks** — `pnpm --filter @ludecker/aaac test` and `pnpm --filter @ludecker/aaac test:e2e` (includes `check-verb.check.spec.ts`); launch [playwright-check-run](../../../agents/playwright-check-run.md) at report phase
21
+ 7. [reporting](../../reporting/SKILL.md) — **Answer** (yes/no/partial) then **How**
21
22
 
22
23
  No code changes. For test runs use `test-*`; for fixes use `fix-*`.
24
+
25
+ Debug blocked runs: [aaac-log-debug](../../../agents/aaac-log-debug.md) — `debug-run`, `log-dump`, `log-trace`.
@@ -23,8 +23,8 @@ Lifecycle: graph `verb_runtime.create` (work + gates on Run)
23
23
  2. **load_inventory** — when `domains/<slug>/update/inventory/SKILL.md` exists
24
24
  3. **discover** — [discovery](../../discovery/SKILL.md) readonly
25
25
  4. **investigate_lite** — [investigation-lite](../../investigation-lite/SKILL.md)
26
- 5. **plan** — [planning](../../planning/SKILL.md)
27
- 6. **validate** — [validation](../../validation/SKILL.md) — confidence gates
26
+ 5. **plan** — [planning](../../planning/SKILL.md) — **requirement_map + complexity_score** on Run
27
+ 6. **validate** — [validation](../../validation/SKILL.md) — confidence + complexity gates
28
28
  7. **impact_analysis** — [impact-analysis](../../impact-analysis/SKILL.md)
29
29
  8. **dependency_graph** — [dependency-graph](../../dependency-graph/SKILL.md)
30
30
  9. **fitness_functions** — [fitness-functions](../../fitness-functions/SKILL.md)
@@ -1,33 +1,43 @@
1
1
  ---
2
2
  name: verb-fix-orchestrator
3
- description: Orchestrates fix-* except fix-bug resolver paths. Internal only.
3
+ description: Orchestrates fix-* resolver fallbacks and generic fix-{object} commands. Internal only.
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
7
  # fix-* orchestrator
8
8
 
9
- **Object** from graph. `fix-bug` uses domain resolver (see [dispatch.md](../../../aaac/dispatch.md) for fallback).
9
+ **Object** from graph or resolver `default_object`. Domain resolver paths (`fix-module`, `fix-bug`, …) prefer `*-fix-bug` orchestrators see [dispatch.md](../../../aaac/dispatch.md).
10
10
 
11
11
  Read [_dispatch-utils.md](../_dispatch-utils.md) and [_lifecycle.md](../_lifecycle.md) first.
12
12
 
13
- Lifecycle: graph `verb_runtime.fix` (work + gates on Run)
13
+ Contract: [contract.yaml](./contract.yaml)
14
+ Command contracts: [fix-module.yaml](../../../aaac/contracts/commands/fix-module.yaml), [fix-bug.yaml](../../../aaac/contracts/commands/fix-bug.yaml)
15
+
16
+ Lifecycle: graph `verb_runtime.fix` or `command_workflows.fix-module` on Run
14
17
 
15
18
  ## Phases (deterministic — do not skip)
16
19
 
17
- 1. **policies**
18
- 2. **load_inventory** — when domain inventory exists
19
- 3. **discover** — [discovery](../../discovery/SKILL.md) readonly
20
- 4. **investigate** — [investigation](../../investigation/SKILL.md) deep
21
- 5. **root_cause** — [root-cause](../../root-cause/SKILL.md)
22
- 6. **plan** — [planning](../../planning/SKILL.md)
20
+ 1. **policies** — all four including [minimal-complexity.md](../../../policies/minimal-complexity.md)
21
+ 2. **load_inventory** — when `domains/<slug>/update/inventory/SKILL.md` exists
22
+ 3. **discover** — [discovery](../../discovery/SKILL.md) — **4–6 parallel** agents, one message
23
+ 4. **investigate_swarm** — [investigation](../../investigation/SKILL.md) Mode A — **7 parallel** agents, one message
24
+ 5. **root_cause** — [root-cause](../../root-cause/SKILL.md) — optional [fix-hypothesis-validate](../../../agents/fix-hypothesis-validate.md)
25
+ 6. **plan** — [planning](../../planning/SKILL.md) — minimal diff; `complexity_score` max **5**
23
26
  7. **validate** — [validation](../../validation/SKILL.md)
24
27
  8. **impact_analysis** — [impact-analysis](../../impact-analysis/SKILL.md)
25
28
  9. **dependency_graph** — [dependency-graph](../../dependency-graph/SKILL.md)
26
29
  10. **fitness_functions** — [fitness-functions](../../fitness-functions/SKILL.md)
27
30
  11. **rollback** — [rollback](../../rollback/SKILL.md) when maturity protected/critical or blast_radius ≥ medium
28
31
  12. **execute** — [execution](../../execution/SKILL.md)
29
- 13. **verify** — [testing](../../testing/SKILL.md) + [verification](../../verification/SKILL.md)
30
- 14. **sync_inventory**
32
+ 13. **verify** — [testing](../../testing/SKILL.md) fix verify swarm + [verification](../../verification/SKILL.md)
33
+ 14. **sync_inventory** — when domain inventory exists
31
34
  15. **report** — [reporting](../../reporting/SKILL.md)
32
35
 
36
+ ## Swarm anti-patterns (hard fail)
37
+
38
+ - Skipping discovery or investigate_swarm because the issue "looks simple"
39
+ - Sequential Task launches when parallel is required
40
+ - Execute before `root_cause_confidence` ≥ 0.7
41
+ - Claim success when `repro_status: not_fixed`
42
+
33
43
  Gate failure → **STOP, REQUEST CLARIFICATION**
@@ -6,28 +6,42 @@ inputs:
6
6
  intent:
7
7
  required: true
8
8
  outputs:
9
+ investigation:
10
+ type: markdown
11
+ required: true
12
+ root_cause:
13
+ type: markdown
14
+ required: true
9
15
  code_changes:
10
16
  type: boolean
11
17
  inventory_synced:
12
18
  type: boolean
19
+ repro_status:
20
+ type: string
21
+ required: true
22
+ enum: [fixed, partial, not_fixed]
13
23
  report:
14
24
  type: markdown
15
25
  success_criteria:
16
26
  - All policies loaded before execute
17
- - investigation completed before planning
27
+ - discovery swarm completed (4-6 parallel agents)
28
+ - investigate_swarm completed (7 parallel fix agents)
29
+ - root_cause_confidence at least 0.7 before plan
18
30
  - domain inventory loaded when domains/<slug>/update/inventory exists
19
31
  - object skills from graph object_skills / object_skill_verbs loaded
20
32
  - governance/implementation followed for all edits
33
+ - repro_status fixed or partial with documented follow-up
21
34
  - fallow check_changed clean on touched files
22
35
  - user intent satisfied per verification
23
36
  failure_conditions:
24
37
  - execute without approved plan
25
- - skip investigation phase
38
+ - skip discover or investigate_swarm phase
26
39
  - skip governance/implementation on code changes
27
40
  - skip domain inventory when slug resolves to inventory file
41
+ - repro_status not_fixed while claiming success
28
42
  dependencies:
29
- skills: [investigation, discovery, planning, execution, testing, verification, reporting]
30
- policies: [master-rules, implementation, mcp-and-deploy]
43
+ skills: [discovery, investigation, root-cause, planning, execution, testing, verification, reporting]
44
+ policies: [master-rules, implementation, mcp-and-deploy, minimal-complexity]
31
45
  docs:
32
46
  - docs/master_rules.md
33
47
  - docs/architecture.md
@@ -35,4 +49,5 @@ dependencies:
35
49
  verification:
36
50
  - sync_inventory
37
51
  - run_tests
52
+ - fix_repro_verify_swarm
38
53
  - fallow_check_changed
@@ -18,8 +18,8 @@ Lifecycle: graph `verb_runtime.update` (work + gates on Run)
18
18
  2. **load_inventory** — when domain inventory exists
19
19
  3. **discover** — [discovery](../../discovery/SKILL.md)
20
20
  4. **investigate_lite** — [investigation-lite](../../investigation-lite/SKILL.md) — **mandatory** (what exists, depends on, constraints)
21
- 5. **plan** — [planning](../../planning/SKILL.md)
22
- 6. **validate** — [validation](../../validation/SKILL.md)
21
+ 5. **plan** — [planning](../../planning/SKILL.md) — **requirement_map + complexity_score** (max 8)
22
+ 6. **validate** — [validation](../../validation/SKILL.md) — confidence + complexity gates
23
23
  7. **impact_analysis** — [impact-analysis](../../impact-analysis/SKILL.md)
24
24
  8. **dependency_graph** — [dependency-graph](../../dependency-graph/SKILL.md)
25
25
  9. **fitness_functions** — [fitness-functions](../../fitness-functions/SKILL.md)
@@ -14,6 +14,8 @@ After `testing`. Before `report`.
14
14
 
15
15
  ## Checks
16
16
 
17
+ - **Playwright verb checks** (create / update / fix): launch [playwright-check-run](../../../agents/playwright-check-run.md) — `pnpm --filter @ludecker/aaac test:e2e` must pass; set `PLAYWRIGHT_BASE_URL` for public-route smoke
18
+ - Run artifact `artifacts.testing.repro_status` is **fixed** or **partial** with documented follow-up (fix paths)
17
19
  - Orchestrator `contract.yaml` `success_criteria`
18
20
  - Graph `object_skills` / `object_skill_verbs` skills were loaded for command object + verb
19
21
  - User instruction satisfied (spot-check 2–3 behaviors in code or tests)