@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.
- package/README.md +4 -3
- package/package.json +13 -1
- package/src/cli.mjs +39 -5
- package/src/generators/generate-commands.mjs +120 -3
- package/src/generators/generate-graph.mjs +17 -0
- package/src/lib/install.mjs +1 -0
- package/src/lib/run-engine-paths.mjs +33 -0
- package/src/run-engine/advance-phase.mjs +192 -0
- package/src/run-engine/debug-run.mjs +38 -0
- package/src/run-engine/gate-write.mjs +95 -0
- package/src/run-engine/init-run.mjs +165 -0
- package/src/run-engine/lib.mjs +136 -0
- package/src/run-engine/log-dump.mjs +76 -0
- package/src/run-engine/log-trace.mjs +18 -0
- package/src/run-engine/log.mjs +343 -0
- package/src/run-engine/record-task.mjs +56 -0
- package/src/run-engine/stop-check.mjs +55 -0
- package/templates/cursor/aaac/complexity.yaml +98 -0
- package/templates/cursor/aaac/contracts/commands/fix-bug.yaml +10 -3
- package/templates/cursor/aaac/contracts/commands/fix-module.yaml +41 -0
- package/templates/cursor/aaac/contracts/skills/investigation.yaml +22 -1
- package/templates/cursor/aaac/contracts/skills/planning.yaml +17 -0
- package/templates/cursor/aaac/contracts/skills/validation.yaml +9 -1
- package/templates/cursor/aaac/dispatch.md +30 -5
- package/templates/cursor/aaac/enforcement.json +22 -0
- package/templates/cursor/aaac/fitness-functions.yaml +8 -0
- package/templates/cursor/aaac/governance/gates.json +3 -1
- package/templates/cursor/aaac/graph.project.yaml +237 -5
- package/templates/cursor/aaac/layers.md +3 -1
- package/templates/cursor/aaac/lifecycle/lifecycle.json +41 -1
- package/templates/cursor/aaac/lifecycle/phases.json +1 -0
- package/templates/cursor/aaac/observability/telemetry.yaml +60 -0
- package/templates/cursor/aaac/observability/verb-debug.yaml +170 -0
- package/templates/cursor/aaac/ontology.json +10 -1
- package/templates/cursor/aaac/run/RUN.md +2 -0
- package/templates/cursor/aaac/run/schema.json +9 -0
- package/templates/cursor/aaac/scripts/generate-runtime-registry.mjs +115 -0
- package/templates/cursor/aaac/scripts/run-engine/advance-phase.mjs +192 -0
- package/templates/cursor/aaac/scripts/run-engine/debug-run.mjs +38 -0
- package/templates/cursor/aaac/scripts/run-engine/gate-write.mjs +95 -0
- package/templates/cursor/aaac/scripts/run-engine/init-run.mjs +165 -0
- package/templates/cursor/aaac/scripts/run-engine/lib.mjs +136 -0
- package/templates/cursor/aaac/scripts/run-engine/log-dump.mjs +76 -0
- package/templates/cursor/aaac/scripts/run-engine/log-trace.mjs +18 -0
- package/templates/cursor/aaac/scripts/run-engine/log.mjs +343 -0
- package/templates/cursor/aaac/scripts/run-engine/record-task.mjs +56 -0
- package/templates/cursor/aaac/scripts/run-engine/stop-check.mjs +55 -0
- package/templates/cursor/agents/aaac-log-debug.md +72 -0
- package/templates/cursor/agents/fix-code-path.md +27 -0
- package/templates/cursor/agents/fix-hypothesis-validate.md +26 -0
- package/templates/cursor/agents/fix-inventory-confirm.md +22 -0
- package/templates/cursor/agents/fix-recent-changes.md +22 -0
- package/templates/cursor/agents/fix-regression-scope.md +27 -0
- package/templates/cursor/agents/fix-repro-verify.md +21 -0
- package/templates/cursor/agents/fix-repro.md +29 -0
- package/templates/cursor/agents/fix-runtime-evidence.md +22 -0
- package/templates/cursor/agents/fix-test-failures.md +23 -0
- package/templates/cursor/agents/playwright-check-run.md +44 -0
- package/templates/cursor/hooks/aaac-before-submit.sh +3 -0
- package/templates/cursor/hooks/aaac-pre-tool.sh +4 -0
- package/templates/cursor/hooks/aaac-stop.sh +3 -0
- package/templates/cursor/hooks/aaac-subagent-start.sh +3 -0
- package/templates/cursor/hooks.json +30 -0
- package/templates/cursor/policies/minimal-complexity.md +101 -0
- package/templates/cursor/rules/aaac-enforcement.mdc +42 -0
- package/templates/cursor/skills/shared/execution/SKILL.md +1 -1
- package/templates/cursor/skills/shared/fitness-functions/SKILL.md +23 -7
- package/templates/cursor/skills/shared/investigation/SKILL.md +91 -18
- package/templates/cursor/skills/shared/investigation/orchestrator/SKILL.md +12 -4
- package/templates/cursor/skills/shared/planning/SKILL.md +74 -8
- package/templates/cursor/skills/shared/reporting/SKILL.md +2 -1
- package/templates/cursor/skills/shared/root-cause/SKILL.md +14 -3
- package/templates/cursor/skills/shared/testing/SKILL.md +26 -5
- package/templates/cursor/skills/shared/validation/SKILL.md +48 -13
- package/templates/cursor/skills/shared/verbs/_dispatch-utils.md +20 -1
- package/templates/cursor/skills/shared/verbs/_lifecycle.md +3 -2
- package/templates/cursor/skills/shared/verbs/check/orchestrator/SKILL.md +4 -1
- package/templates/cursor/skills/shared/verbs/create/orchestrator/SKILL.md +2 -2
- package/templates/cursor/skills/shared/verbs/fix/orchestrator/SKILL.md +21 -11
- package/templates/cursor/skills/shared/verbs/fix/orchestrator/contract.yaml +19 -4
- package/templates/cursor/skills/shared/verbs/update/orchestrator/SKILL.md +2 -2
- 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
|
|
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
|
|
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 `
|
|
13
|
+
Phase `verify` (and `test_only` orchestrators). On **fix** paths, run fix verify swarm **before** declaring tests complete.
|
|
14
14
|
|
|
15
|
-
##
|
|
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
|
|
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
|
|
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
|
|
11
|
+
**When:** After `plan`, **before** impact_analysis / execute.
|
|
12
12
|
|
|
13
|
-
|
|
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
|
|
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
|
-
|
|
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: "
|
|
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
|
|
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
|
-
|
|
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
|
|
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 →
|
|
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. [
|
|
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-*
|
|
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
|
|
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
|
-
|
|
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
|
|
19
|
-
3. **discover** — [discovery](../../discovery/SKILL.md)
|
|
20
|
-
4. **
|
|
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
|
-
-
|
|
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
|
|
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,
|
|
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)
|