@event4u/agent-config 1.21.0 → 1.23.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/.agent-src/commands/agents/cleanup.md +31 -17
- package/.agent-src/commands/bug-fix.md +1 -0
- package/.agent-src/commands/bug-investigate.md +1 -0
- package/.agent-src/commands/challenge-me/vision.md +348 -0
- package/.agent-src/commands/challenge-me/with-docs.md +333 -0
- package/.agent-src/commands/challenge-me.md +61 -0
- package/.agent-src/commands/commit/in-chunks.md +30 -10
- package/.agent-src/commands/commit.md +46 -6
- package/.agent-src/commands/compress.md +19 -13
- package/.agent-src/commands/cost-report.md +120 -0
- package/.agent-src/commands/council/default.md +64 -17
- package/.agent-src/commands/create-pr/description-only.md +8 -0
- package/.agent-src/commands/create-pr.md +99 -80
- package/.agent-src/commands/feature/plan.md +13 -7
- package/.agent-src/commands/grill-me.md +38 -0
- package/.agent-src/commands/judge/steps.md +1 -1
- package/.agent-src/commands/memory/add.md +16 -8
- package/.agent-src/commands/memory/promote.md +17 -9
- package/.agent-src/commands/optimize/rtk.md +16 -11
- package/.agent-src/commands/prepare-for-review.md +12 -6
- package/.agent-src/commands/project-analyze.md +31 -20
- package/.agent-src/commands/review-changes.md +24 -15
- package/.agent-src/commands/roadmap/ai-council.md +183 -0
- package/.agent-src/commands/roadmap/create.md +20 -10
- package/.agent-src/commands/roadmap/process-full.md +58 -0
- package/.agent-src/commands/roadmap/process-phase.md +69 -0
- package/.agent-src/commands/roadmap/process-step.md +57 -0
- package/.agent-src/commands/roadmap.md +44 -16
- package/.agent-src/commands/threat-model.md +1 -0
- package/.agent-src/contexts/augment-infrastructure.md +1 -1
- package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +53 -18
- package/.agent-src/contexts/contracts/frugality-charter.md +57 -0
- package/.agent-src/contexts/execution/roadmap-process-loop.md +125 -0
- package/.agent-src/contexts/skills-and-commands.md +1 -1
- package/.agent-src/rules/architecture.md +9 -0
- package/.agent-src/rules/ask-when-uncertain.md +3 -13
- package/.agent-src/rules/caveman-speak.md +78 -0
- package/.agent-src/rules/direct-answers.md +5 -14
- package/.agent-src/rules/improve-before-implement.md +1 -0
- package/.agent-src/rules/invite-challenge.md +71 -0
- package/.agent-src/rules/markdown-safe-codeblocks.md +6 -7
- package/.agent-src/rules/no-cheap-questions.md +4 -14
- package/.agent-src/rules/token-efficiency.md +5 -7
- package/.agent-src/skills/adr-create/SKILL.md +197 -0
- package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
- package/.agent-src/skills/agent-docs-writing/SKILL.md +23 -1
- package/.agent-src/skills/ai-council/SKILL.md +132 -8
- package/.agent-src/skills/bug-analyzer/SKILL.md +1 -0
- package/.agent-src/skills/command-writing/SKILL.md +23 -0
- package/.agent-src/skills/context-authoring/SKILL.md +23 -0
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +23 -0
- package/.agent-src/skills/guideline-writing/SKILL.md +22 -0
- package/.agent-src/skills/persona-writing/SKILL.md +153 -0
- package/.agent-src/skills/readme-writing/SKILL.md +20 -0
- package/.agent-src/skills/readme-writing-package/SKILL.md +19 -0
- package/.agent-src/skills/roadmap-management/SKILL.md +7 -7
- package/.agent-src/skills/roadmap-writing/SKILL.md +157 -0
- package/.agent-src/skills/rule-writing/SKILL.md +22 -0
- package/.agent-src/skills/script-writing/SKILL.md +226 -0
- package/.agent-src/skills/skill-writing/SKILL.md +23 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +22 -2
- package/.agent-src/skills/technical-specification/SKILL.md +58 -1
- package/.agent-src/skills/test-driven-development/SKILL.md +24 -0
- package/.agent-src/skills/threat-modeling/SKILL.md +1 -0
- package/.agent-src/templates/agent-settings.md +87 -3
- package/.agent-src/templates/command.md +30 -9
- package/.agent-src/templates/roadmaps.md +10 -2
- package/.agent-src/templates/rule.md +8 -0
- package/.agent-src/templates/skill.md +49 -0
- package/.claude-plugin/marketplace.json +14 -2
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +73 -0
- package/README.md +5 -5
- package/config/agent-settings.template.yml +22 -0
- package/docs/architecture.md +4 -4
- package/docs/contracts/command-clusters.md +45 -1
- package/docs/customization.md +72 -0
- package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +126 -0
- package/docs/decisions/INDEX.md +15 -0
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +27 -19
- package/docs/guidelines/agent-infra/carve-out-predicates.md +17 -0
- package/docs/guidelines/agent-infra/mcp-request-signing.md +199 -0
- package/docs/guidelines/agent-infra/naming.md +1 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +11 -4
- package/package.json +1 -1
- package/scripts/_lib/__init__.py +5 -0
- package/scripts/_lib/script_output.py +140 -0
- package/scripts/_phase2_shim_helper.py +1 -1
- package/scripts/adr/regenerate_index.py +79 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_add_quiet.py +149 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_inject_quiet_flag.py +33 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_v2.sh +36 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_verbosity.sh +26 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_per_task.sh +41 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_silent_taskfiles.py +98 -0
- package/scripts/check_augmentignore.py +4 -1
- package/scripts/check_command_count_messaging.py +4 -1
- package/scripts/check_compressed_paths.py +4 -1
- package/scripts/check_council_layout.py +4 -1
- package/scripts/check_council_references.py +4 -1
- package/scripts/check_iron_law_prominence.py +3 -1
- package/scripts/check_md_language.py +3 -1
- package/scripts/check_memory_proposal.py +3 -1
- package/scripts/check_public_catalog_links.py +4 -1
- package/scripts/check_reply_consistency.py +8 -2
- package/scripts/check_roadmap_trackable.py +4 -1
- package/scripts/compile_router.py +27 -0
- package/scripts/compress.py +33 -19
- package/scripts/cost/budget.mjs +152 -0
- package/scripts/cost/track.mjs +144 -0
- package/scripts/council_cli.py +127 -10
- package/scripts/first-run.sh +3 -9
- package/scripts/install-hooks.sh +19 -1
- package/scripts/install.py +17 -12
- package/scripts/install.sh +19 -8
- package/scripts/lint_examples.py +6 -2
- package/scripts/lint_handoffs.py +4 -1
- package/scripts/lint_load_context.py +4 -1
- package/scripts/lint_roadmap_complexity.py +6 -2
- package/scripts/lint_rule_interactions.py +4 -1
- package/scripts/lint_rule_tiers.py +4 -1
- package/scripts/measure_frugality_savings.py +164 -0
- package/scripts/migrate_command_suggestions.py +2 -2
- package/scripts/runtime_dispatcher.py +11 -0
- package/scripts/schemas/command.schema.json +5 -0
- package/scripts/schemas/rule.schema.json +5 -0
- package/scripts/schemas/skill.schema.json +5 -0
- package/scripts/skill_linter.py +208 -3
- package/.agent-src/commands/roadmap/execute.md +0 -109
|
@@ -75,12 +75,15 @@ LEGACY CHECK (indicators):
|
|
|
75
75
|
═══════════════════════════════════════════════
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
Per `verbosity.routine_confirmations` (default `false`):
|
|
79
79
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
```
|
|
80
|
+
- `false` → continue to Phase 2 silently (user invoked `/project-analyze`
|
|
81
|
+
for the full pass; "continue" is dominant).
|
|
82
|
+
- `true` → ask:
|
|
83
|
+
```
|
|
84
|
+
> 1. Continue with Phase 2 — architecture analysis
|
|
85
|
+
> 2. Stop here — keep the overview only
|
|
86
|
+
```
|
|
84
87
|
|
|
85
88
|
### Phase 2: Architecture mapping
|
|
86
89
|
|
|
@@ -192,12 +195,15 @@ BUSINESS DOMAINS:
|
|
|
192
195
|
═══════════════════════════════════════════════
|
|
193
196
|
```
|
|
194
197
|
|
|
195
|
-
|
|
198
|
+
Per `verbosity.routine_confirmations` (default `false`):
|
|
196
199
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
```
|
|
200
|
+
- `false` → create domain analysis files silently (user invoked
|
|
201
|
+
`/project-analyze`; "yes, create" is dominant).
|
|
202
|
+
- `true` → ask:
|
|
203
|
+
```
|
|
204
|
+
> 1. Yes — create domain analysis files
|
|
205
|
+
> 2. Skip — continue with next phase
|
|
206
|
+
```
|
|
201
207
|
|
|
202
208
|
For each confirmed domain, create `agents/analysis/domains/{domain}.md` using the template
|
|
203
209
|
from the `project-analyzer` skill.
|
|
@@ -226,12 +232,14 @@ SERVICE MAP:
|
|
|
226
232
|
═══════════════════════════════════════════════
|
|
227
233
|
```
|
|
228
234
|
|
|
229
|
-
|
|
235
|
+
Per `verbosity.routine_confirmations` (default `false`):
|
|
230
236
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
237
|
+
- `false` → create API + service analysis files silently.
|
|
238
|
+
- `true` → ask:
|
|
239
|
+
```
|
|
240
|
+
> 1. Yes — create API and service analysis files
|
|
241
|
+
> 2. Skip — continue with next phase
|
|
242
|
+
```
|
|
235
243
|
|
|
236
244
|
Create:
|
|
237
245
|
- `agents/analysis/api/endpoints-v1.md`
|
|
@@ -253,12 +261,15 @@ Write all remaining analysis files that haven't been created yet:
|
|
|
253
261
|
- `agents/analysis/modules/{module}.md` — one per module
|
|
254
262
|
- `agents/analysis/testing/test-map.md` — test suites, coverage, strategy
|
|
255
263
|
|
|
256
|
-
|
|
264
|
+
Per `verbosity.routine_confirmations` (default `false`):
|
|
257
265
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
```
|
|
266
|
+
- `false` → create all listed files silently (per-file picker is pure
|
|
267
|
+
noise once the user invoked `/project-analyze`).
|
|
268
|
+
- `true` → for each file, ask:
|
|
269
|
+
```
|
|
270
|
+
> 1. Create — {filename}
|
|
271
|
+
> 2. Skip
|
|
272
|
+
```
|
|
262
273
|
|
|
263
274
|
### Phase 8: Gap analysis & action plan
|
|
264
275
|
|
|
@@ -81,15 +81,22 @@ Pick dispatch mode based on diff size and environment:
|
|
|
81
81
|
Each judge returns its own `Judge / Model / Target / Verdict /
|
|
82
82
|
Issues` block in the format defined by that skill.
|
|
83
83
|
|
|
84
|
-
### 4b. Optional external council (B3 hook)
|
|
84
|
+
### 4b. Optional external council (B3 hook, verbosity-gated)
|
|
85
85
|
|
|
86
|
-
|
|
87
|
-
|
|
86
|
+
Read `verbosity.offer_council_in_delivery` from `.agent-settings.yml`
|
|
87
|
+
(default `false`):
|
|
88
88
|
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
- `false` (default): skip the prompt silently. When `ai_council.enabled:
|
|
90
|
+
true` AND at least one member enabled, emit one line: `→ council
|
|
91
|
+
skipped (set verbosity.offer_council_in_delivery: true to enable, or
|
|
92
|
+
run /council diff:<base>..<head> directly)`. Otherwise emit nothing.
|
|
93
|
+
- `true`: when `ai_council.enabled: true` **and** at least one member
|
|
94
|
+
enabled, ask (in the user's language):
|
|
91
95
|
|
|
92
|
-
|
|
96
|
+
> 1. Add an external council review alongside the four internal judges? (billable)
|
|
97
|
+
> 2. Skip — internal judges only
|
|
98
|
+
|
|
99
|
+
Also suppress when `personal.autonomy: on` (council is billable).
|
|
93
100
|
|
|
94
101
|
If picked **1**:
|
|
95
102
|
|
|
@@ -124,17 +131,19 @@ Produce one combined report:
|
|
|
124
131
|
ask before fixing 🟡 findings, report 🟢 as suggestions
|
|
125
132
|
- If all four returned `apply` → the diff is ready; report and stop
|
|
126
133
|
|
|
127
|
-
### 7. Quality tools (
|
|
128
|
-
|
|
129
|
-
After the consolidated report, ask:
|
|
134
|
+
### 7. Quality tools (verbosity-gated)
|
|
130
135
|
|
|
131
|
-
|
|
132
|
-
> 1. Yes — run quality tools (formatter, static analyzer, linters)
|
|
133
|
-
> 2. No — review done
|
|
134
|
-
```
|
|
136
|
+
Per `verbosity.routine_confirmations` (default `false`):
|
|
135
137
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
+
- `false` (default) → emit `→ run /quality-fix to format + lint` as a
|
|
139
|
+
single follow-up line; do not auto-invoke. User runs explicitly.
|
|
140
|
+
- `true` → ask:
|
|
141
|
+
```
|
|
142
|
+
> 1. Yes — run quality tools (formatter, static analyzer, linters)
|
|
143
|
+
> 2. No — review done
|
|
144
|
+
```
|
|
145
|
+
If yes, hand off to the project's quality workflow (e.g.
|
|
146
|
+
`/quality-fix` or the equivalent configured command).
|
|
138
147
|
|
|
139
148
|
## Backward compatibility
|
|
140
149
|
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: roadmap:ai-council
|
|
3
|
+
cluster: roadmap
|
|
4
|
+
sub: ai-council
|
|
5
|
+
skills: [ai-council, agent-docs-writing, roadmap-management]
|
|
6
|
+
description: Challenge a roadmap with the AI council (deep tier) and refactor from convergence findings. Wraps `/council default` pinned to `--input-mode roadmap --depth deep`; patches surface as numbered options.
|
|
7
|
+
disable-model-invocation: true
|
|
8
|
+
council_depth: deep
|
|
9
|
+
suggestion:
|
|
10
|
+
eligible: true
|
|
11
|
+
trigger_description: "council on roadmap, challenge this roadmap, stress-test the plan, refactor roadmap from council findings"
|
|
12
|
+
trigger_context: "existing agents/roadmaps/*.md the user wants reviewed before execution"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# /roadmap:ai-council
|
|
16
|
+
|
|
17
|
+
Council-driven challenge + refactor scope of the
|
|
18
|
+
[`/roadmap`](../roadmap.md) cluster. Pins the input mode to
|
|
19
|
+
`roadmap` and the depth tier to `deep` (architecture / refactor
|
|
20
|
+
artefact), then drives the user through applying convergence
|
|
21
|
+
findings as numbered patches against the roadmap file.
|
|
22
|
+
|
|
23
|
+
**Source of truth:** `.agent-src.uncompressed/` — never read or edit
|
|
24
|
+
`.agent-src/` or `.augment/` directly.
|
|
25
|
+
|
|
26
|
+
## Instructions
|
|
27
|
+
|
|
28
|
+
### 1. Resolve the target roadmap
|
|
29
|
+
|
|
30
|
+
Parse the argument as a roadmap path or filename:
|
|
31
|
+
|
|
32
|
+
- `/roadmap:ai-council agents/roadmaps/<name>.md` — explicit path.
|
|
33
|
+
- `/roadmap:ai-council <name>` — fuzzy match against
|
|
34
|
+
`agents/roadmaps/*.md`; if multiple match, list and ask
|
|
35
|
+
(one question per turn per `ask-when-uncertain`).
|
|
36
|
+
- No argument → list `agents/roadmaps/*.md` and ask.
|
|
37
|
+
|
|
38
|
+
Capture the **original ask** verbatim — the user's framing sentence
|
|
39
|
+
that triggered this council run (e.g. *"review this roadmap before
|
|
40
|
+
I execute it"*). This flows into `--original-ask`.
|
|
41
|
+
|
|
42
|
+
### 2. Run the `/council default` flow with these pinned flags
|
|
43
|
+
|
|
44
|
+
Follow [`/council default`](../council/default.md) Steps 2–4
|
|
45
|
+
**verbatim**, with these arguments fixed:
|
|
46
|
+
|
|
47
|
+
- `--input-mode roadmap`
|
|
48
|
+
- `--depth deep` (this command declares `council_depth: deep` in
|
|
49
|
+
frontmatter; the host translates it into `--depth deep`)
|
|
50
|
+
- `--output agents/council-responses/<roadmap-stem>-roadmap.json`
|
|
51
|
+
(overwrite if it exists; the previous run is the predecessor for
|
|
52
|
+
this iteration)
|
|
53
|
+
- `--original-ask "<captured-ask>"`
|
|
54
|
+
|
|
55
|
+
`--depth deep` floors rounds at
|
|
56
|
+
`max(ai_council.deep_min_rounds, ai_council.min_rounds)` (default
|
|
57
|
+
`3`). Do **not** pass `--rounds` unless the user explicitly asked
|
|
58
|
+
for a different count.
|
|
59
|
+
|
|
60
|
+
The cost gate from `/council default` Step 3 still applies — billable
|
|
61
|
+
members require user confirmation **even under `personal.autonomy: on`**
|
|
62
|
+
(per the deep tier surcharge — typical cost ~$0.05–0.13 vs. ~$0.02
|
|
63
|
+
for the standard tier).
|
|
64
|
+
|
|
65
|
+
### 3. Render the report
|
|
66
|
+
|
|
67
|
+
Run `./agent-config council:render <output.json>` and write the
|
|
68
|
+
**Convergence / Divergence** section per
|
|
69
|
+
[`/council default § Render`](../council/default.md). Do **not** end
|
|
70
|
+
with `/council default`'s generic numbered-options block — the
|
|
71
|
+
refactor flow in Step 4 replaces it.
|
|
72
|
+
|
|
73
|
+
### 4. Append a Council review block to the roadmap
|
|
74
|
+
|
|
75
|
+
Open the roadmap file and append (do **not** overwrite existing
|
|
76
|
+
content):
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
|
|
80
|
+
## Council review (<UTC date>)
|
|
81
|
+
|
|
82
|
+
<Convergence section verbatim>
|
|
83
|
+
|
|
84
|
+
### Convergence findings
|
|
85
|
+
|
|
86
|
+
1. **<Finding 1 title>** — <one-line summary> · trace: §<member-section>
|
|
87
|
+
2. **<Finding 2 title>** — <one-line summary> · trace: §<member-section>
|
|
88
|
+
…
|
|
89
|
+
|
|
90
|
+
### Divergences (no consensus)
|
|
91
|
+
|
|
92
|
+
- **<Topic>** — <Member A says X, Member B says Y; user decides>
|
|
93
|
+
|
|
94
|
+
### Predecessor council trace
|
|
95
|
+
|
|
96
|
+
`agents/council-responses/<roadmap-stem>-roadmap.json` (this run).
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Run `./agent-config roadmap:progress` after the append. The block
|
|
100
|
+
adds no `[ ]` checkboxes, so the dashboard counts stay flat.
|
|
101
|
+
|
|
102
|
+
### 5. Apply the critical-evaluation lens, then surface verdicted patches
|
|
103
|
+
|
|
104
|
+
Before drafting any patch, run every finding from Step 4 through the
|
|
105
|
+
*Critical evaluation* checklist from the
|
|
106
|
+
[`ai-council` skill](../../skills/ai-council/SKILL.md#critical-evaluation--convener-skeptic-stance):
|
|
107
|
+
|
|
108
|
+
- **Codebase fit** — does the finding match the actual roadmap content, file paths, scripts, contracts cited in the roadmap? (`view` / `codebase-retrieval`)
|
|
109
|
+
- **Locked-decision conflict** — does it contradict an ADR (`docs/decisions/`), a contract (`docs/contracts/`), a kernel rule, or an earlier locked decision in **this** roadmap?
|
|
110
|
+
- **Already addressed** — is the finding already covered by an existing step, AC, or phase in the roadmap?
|
|
111
|
+
- **Cost / benefit** — does the patch's scope vs. roadmap value clear the bar?
|
|
112
|
+
- **Hallucination** — does the finding cite a file, function, phase, or step that does not exist?
|
|
113
|
+
|
|
114
|
+
For every finding, attach a verdict — **`accept`**, **`accept-with-modification`**, **`reject`**, or **`needs-input`** — with a one-line reason citing host evidence (file:line, ADR, contract, roadmap step).
|
|
115
|
+
|
|
116
|
+
Append a **Host verdict** sub-block under the Council review block in the roadmap:
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
### Host verdict
|
|
120
|
+
|
|
121
|
+
| # | Finding | Verdict | Reason |
|
|
122
|
+
|---|---|---|---|
|
|
123
|
+
| 1 | <one-line> | `accept` | matches `agents/roadmaps/<this>.md` Phase X step Y |
|
|
124
|
+
| 2 | <one-line> | `accept-with-modification` | narrow scope to phase Z — global change contradicts AC §N |
|
|
125
|
+
| 3 | <one-line> | `reject` | contradicts ADR `docs/decisions/<adr>.md` |
|
|
126
|
+
| 4 | <one-line> | `needs-input` | open question — user picks below |
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Then surface a single numbered-options block per [`user-interaction`](../../rules/user-interaction.md), carrying the verdict per option:
|
|
130
|
+
|
|
131
|
+
> 1. `[accept]` Apply finding 1 — <one-line patch summary>
|
|
132
|
+
> 2. `[accept-with-modification]` Apply finding 2 (modified) — <one-line patch summary + adjustment>
|
|
133
|
+
> 3. `[reject]` Skip finding 3 — <one-line reason> (override available below)
|
|
134
|
+
> 4. `[needs-input]` <open question for finding 4>
|
|
135
|
+
> …
|
|
136
|
+
> N. Apply all `accept` findings (recommended only if non-conflicting)
|
|
137
|
+
> N+1. Override host verdict — apply a finding the host rejected (specify number)
|
|
138
|
+
> N+2. Skip — leave Council review block + Host verdict as advisory only
|
|
139
|
+
|
|
140
|
+
The user picks one or more numbers (`1,3,5` is allowed). Apply each selected patch via `str-replace-editor` against the roadmap, then re-run `./agent-config roadmap:progress` once at the end so the dashboard reflects the new step / AC count.
|
|
141
|
+
|
|
142
|
+
**Verdict ≠ filter.** Every finding stays visible in the Host verdict block with its verdict and reason — the user can override at any time. The host filters its **own** recommendation; it does not hide council output.
|
|
143
|
+
|
|
144
|
+
### 6. Hard floor — text + roadmap edits only
|
|
145
|
+
|
|
146
|
+
`/roadmap:ai-council` may:
|
|
147
|
+
|
|
148
|
+
- write `agents/council-responses/<…>.json`
|
|
149
|
+
- append the Council review block to the named roadmap
|
|
150
|
+
- apply user-picked patches to the same roadmap
|
|
151
|
+
- regenerate `agents/roadmaps-progress.md`
|
|
152
|
+
|
|
153
|
+
It does **NOT**:
|
|
154
|
+
|
|
155
|
+
- edit any other roadmap, command, rule, or skill file
|
|
156
|
+
- commit, push, or open a PR
|
|
157
|
+
- run `git` beyond `git diff` (read-only)
|
|
158
|
+
|
|
159
|
+
## Rules
|
|
160
|
+
|
|
161
|
+
- **One roadmap per invocation.** Re-run for the next file.
|
|
162
|
+
- **Critical evaluation is mandatory** — every council finding gets
|
|
163
|
+
a host verdict (`accept` / `accept-with-modification` / `reject` /
|
|
164
|
+
`needs-input`) with one-line evidence before any patch is drafted.
|
|
165
|
+
Convergence ≠ correctness; the council never saw the codebase. See
|
|
166
|
+
[`ai-council § Critical evaluation`](../../skills/ai-council/SKILL.md#critical-evaluation--convener-skeptic-stance).
|
|
167
|
+
- **Decline = silence** ([`scope-control`](../../rules/scope-control.md)) —
|
|
168
|
+
if the user picks "Skip — advisory only", the Council review block
|
|
169
|
+
+ Host verdict stay in the roadmap, but no patches are applied. Do
|
|
170
|
+
not re-ask the question on the same task.
|
|
171
|
+
- **Cost gate is non-negotiable** — the deep tier costs more than
|
|
172
|
+
standard; confirm before every billable run, even with
|
|
173
|
+
`personal.autonomy: on`.
|
|
174
|
+
- **No commit.** Patches land in the working tree only; commit
|
|
175
|
+
decisions stay with the user per
|
|
176
|
+
[`commit-policy`](../../rules/commit-policy.md).
|
|
177
|
+
|
|
178
|
+
## See also
|
|
179
|
+
|
|
180
|
+
- [`/roadmap`](../roadmap.md) — cluster orchestrator
|
|
181
|
+
- [`/council default`](../council/default.md) — base flow this command wraps
|
|
182
|
+
- [`ai-council`](../../skills/ai-council/SKILL.md) — neutrality, redaction, deep tier
|
|
183
|
+
- [`scripts/council_cli.py`](../../../scripts/council_cli.py) — CLI entry point
|
|
@@ -137,18 +137,23 @@ Regenerate `agents/roadmaps-progress.md` so the new roadmap shows up:
|
|
|
137
137
|
|
|
138
138
|
Mention the new overall count to the user.
|
|
139
139
|
|
|
140
|
-
### 8. Offer council review (B1 hook)
|
|
140
|
+
### 8. Offer council review (B1 hook, verbosity-gated)
|
|
141
141
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
language):
|
|
142
|
+
Read `verbosity.offer_council_in_delivery` from `.agent-settings.yml`
|
|
143
|
+
(default `false`):
|
|
145
144
|
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
- `false` (default): skip the prompt silently. When `ai_council.enabled:
|
|
146
|
+
true` AND at least one member enabled, emit one line: `→ council
|
|
147
|
+
skipped (set verbosity.offer_council_in_delivery: true to enable, or
|
|
148
|
+
run /council roadmap:<path> directly)`. Otherwise emit nothing.
|
|
149
|
+
- `true`: when `ai_council.enabled: true` **and** at least one member
|
|
150
|
+
enabled (`anthropic` or `openai`), ask (in the user's language):
|
|
148
151
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
+
> 1. Run the council on this roadmap before execution? (billable)
|
|
153
|
+
> 2. Skip council review
|
|
154
|
+
|
|
155
|
+
Also suppress when `personal.autonomy: on` (council is billable; see
|
|
156
|
+
`road-to-ai-council.md` Decision 3 / Q47).
|
|
152
157
|
|
|
153
158
|
If the user picks **1**:
|
|
154
159
|
|
|
@@ -168,7 +173,12 @@ If the user picks **2** → continue.
|
|
|
168
173
|
|
|
169
174
|
After saving (and any council review), ask the user (in their language) whether to start executing the roadmap immediately.
|
|
170
175
|
|
|
171
|
-
If yes → switch to
|
|
176
|
+
If yes → switch to [`/roadmap:process-phase`](process-phase.md) with
|
|
177
|
+
the newly created file (the default execution scope of the `/roadmap`
|
|
178
|
+
cluster). Offer [`process-step`](process-step.md) and
|
|
179
|
+
[`process-full`](process-full.md) as alternatives. The legacy
|
|
180
|
+
`/roadmap execute` command was removed — autonomous execution is the
|
|
181
|
+
only path now.
|
|
172
182
|
|
|
173
183
|
### Rules
|
|
174
184
|
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: roadmap:process-full
|
|
3
|
+
cluster: roadmap
|
|
4
|
+
sub: process-full
|
|
5
|
+
skills: [agent-docs-writing, ai-council, roadmap-management]
|
|
6
|
+
description: Autonomously process every open step across every phase of a roadmap until the file is fully closed. Largest execution scope of the /roadmap cluster — runs continuously across phase boundaries.
|
|
7
|
+
disable-model-invocation: true
|
|
8
|
+
suggestion:
|
|
9
|
+
eligible: true
|
|
10
|
+
trigger_description: "process the whole roadmap, finish the roadmap, komplette roadmap abarbeiten"
|
|
11
|
+
trigger_context: "existing agents/roadmaps/*.md and user wants the entire file done end-to-end"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# /roadmap:process-full
|
|
15
|
+
|
|
16
|
+
Whole-roadmap execution scope of the [`/roadmap`](../roadmap.md)
|
|
17
|
+
cluster. Same canonical loop as
|
|
18
|
+
[`/roadmap:process-phase`](process-phase.md), but does **not** stop at
|
|
19
|
+
phase boundaries — continues until every step is closed (or a halt
|
|
20
|
+
condition fires).
|
|
21
|
+
|
|
22
|
+
## Instructions
|
|
23
|
+
|
|
24
|
+
Run the canonical loop in
|
|
25
|
+
[`contexts/execution/roadmap-process-loop`](../../contexts/execution/roadmap-process-loop.md)
|
|
26
|
+
with the **scope delta below**.
|
|
27
|
+
|
|
28
|
+
## Scope delta
|
|
29
|
+
|
|
30
|
+
- **Working set:** every open step across every phase, in document
|
|
31
|
+
order.
|
|
32
|
+
- **Stop after:** the entire roadmap reaches `count_open == 0`, or a
|
|
33
|
+
halt condition fires (Hard-Floor, council-off + ambiguity,
|
|
34
|
+
security-sensitive, scope-out-of-roadmap, test/quality red).
|
|
35
|
+
- **Phase boundary handling:** at every phase boundary, run the
|
|
36
|
+
per-phase quality pipeline when `quality_cadence: per_phase` (or
|
|
37
|
+
`per_step`). On red → stop, surface, do **not** silently roll into
|
|
38
|
+
the next phase.
|
|
39
|
+
- **Final archival:** when the roadmap is fully closed, run the
|
|
40
|
+
archival check from
|
|
41
|
+
[`roadmap-process-loop § 6`](../../contexts/execution/roadmap-process-loop.md#6-final-report-and-archival).
|
|
42
|
+
|
|
43
|
+
## Rules
|
|
44
|
+
|
|
45
|
+
- **No silent acceleration past a halt.** Every halt condition stops
|
|
46
|
+
the run; the user resumes on the next turn.
|
|
47
|
+
- **Phase quality pipeline runs at every phase boundary** when cadence
|
|
48
|
+
is `per_phase` or `per_step`. `end_of_roadmap` skips per-phase and
|
|
49
|
+
runs only at the final archival check.
|
|
50
|
+
- All other rules from
|
|
51
|
+
[`process-phase § Rules`](process-phase.md#rules) apply unchanged.
|
|
52
|
+
|
|
53
|
+
## See also
|
|
54
|
+
|
|
55
|
+
- [`/roadmap`](../roadmap.md) — cluster orchestrator
|
|
56
|
+
- [`/roadmap:process-step`](process-step.md) — single-step variant
|
|
57
|
+
- [`/roadmap:process-phase`](process-phase.md) — default scope, single phase
|
|
58
|
+
- [`roadmap-process-loop`](../../contexts/execution/roadmap-process-loop.md) — canonical mechanics
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: roadmap:process-phase
|
|
3
|
+
cluster: roadmap
|
|
4
|
+
sub: process-phase
|
|
5
|
+
skills: [agent-docs-writing, ai-council, roadmap-management]
|
|
6
|
+
description: Autonomously process every open step in the next or current phase of a roadmap, then stop. Default execution scope of the /roadmap cluster.
|
|
7
|
+
disable-model-invocation: true
|
|
8
|
+
suggestion:
|
|
9
|
+
eligible: true
|
|
10
|
+
trigger_description: "process the next phase, finish this phase autonomously, eine phase abarbeiten"
|
|
11
|
+
trigger_context: "existing agents/roadmaps/*.md and user wants the next phase done end-to-end"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# /roadmap:process-phase
|
|
15
|
+
|
|
16
|
+
Default execution scope of the [`/roadmap`](../roadmap.md) cluster.
|
|
17
|
+
Sibling of [`/roadmap:process-step`](process-step.md) and
|
|
18
|
+
[`/roadmap:process-full`](process-full.md). Replaces the legacy
|
|
19
|
+
`/roadmap execute` (which paused for confirmation before every step).
|
|
20
|
+
|
|
21
|
+
## Instructions
|
|
22
|
+
|
|
23
|
+
Run the canonical loop in
|
|
24
|
+
[`contexts/execution/roadmap-process-loop`](../../contexts/execution/roadmap-process-loop.md)
|
|
25
|
+
with the **scope delta below**. The loop file owns roadmap discovery,
|
|
26
|
+
pre-run summary, cadence resolution, commit-step pre-scan, the step
|
|
27
|
+
loop with AI-council branching, halt conditions, and the archival
|
|
28
|
+
check.
|
|
29
|
+
|
|
30
|
+
## Scope delta
|
|
31
|
+
|
|
32
|
+
- **Working set:** all open steps in the **first phase with
|
|
33
|
+
`count_open > 0`**. If every phase is closed → report "Roadmap
|
|
34
|
+
already complete." and run the archival check from
|
|
35
|
+
[`roadmap-process-loop § 6`](../../contexts/execution/roadmap-process-loop.md#6-final-report-and-archival).
|
|
36
|
+
- **Stop after:** the phase boundary. Do **not** advance into the next
|
|
37
|
+
phase. Use [`/roadmap:process-full`](process-full.md) for continuous
|
|
38
|
+
execution across phases.
|
|
39
|
+
- **Quality cadence at the boundary:** run the per-phase pipeline when
|
|
40
|
+
`quality_cadence: per_phase` (or `per_step`). Skip when
|
|
41
|
+
`end_of_roadmap`.
|
|
42
|
+
|
|
43
|
+
## Rules
|
|
44
|
+
|
|
45
|
+
- **Autonomous within the phase, never beyond.** The user picks
|
|
46
|
+
`process-step` for one step or `process-full` for the whole roadmap.
|
|
47
|
+
- **No commit, push, branch, PR, tag, or bulk-destructive op** without
|
|
48
|
+
explicit permission this turn — see
|
|
49
|
+
[`commit-policy`](../../rules/commit-policy.md) and
|
|
50
|
+
[`scope-control § git-ops`](../../rules/scope-control.md#git-operations--permission-gated).
|
|
51
|
+
Roadmap-listed commit steps follow the single-upfront-ask flow in
|
|
52
|
+
[`roadmap-process-loop § 3`](../../contexts/execution/roadmap-process-loop.md#3-commit-step-pre-scan--one-upfront-ask).
|
|
53
|
+
- **Every checkbox edit syncs the dashboard in the same response** per
|
|
54
|
+
[`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md).
|
|
55
|
+
- **AI-council consultations run silently when council is on.** No
|
|
56
|
+
per-call confirmation. The opt-in covers the whole run.
|
|
57
|
+
- **Decline = silence.** Once the user said "skip council", do not
|
|
58
|
+
re-offer for the rest of this run.
|
|
59
|
+
- **Halt cleanly on Hard-Floor or true ambiguity.** Surface state,
|
|
60
|
+
wait. Resume on the user's next turn from the same checkbox.
|
|
61
|
+
|
|
62
|
+
## See also
|
|
63
|
+
|
|
64
|
+
- [`/roadmap`](../roadmap.md) — cluster orchestrator
|
|
65
|
+
- [`/roadmap:process-step`](process-step.md) — single-step variant
|
|
66
|
+
- [`/roadmap:process-full`](process-full.md) — across-phases variant
|
|
67
|
+
- [`/roadmap:create`](create.md) — sibling, scaffolds roadmaps
|
|
68
|
+
- [`roadmap-process-loop`](../../contexts/execution/roadmap-process-loop.md) — canonical mechanics
|
|
69
|
+
- [`roadmap-management`](../../skills/roadmap-management/SKILL.md) — checkbox + archival mechanics
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: roadmap:process-step
|
|
3
|
+
cluster: roadmap
|
|
4
|
+
sub: process-step
|
|
5
|
+
skills: [agent-docs-writing, ai-council, roadmap-management]
|
|
6
|
+
description: Autonomously process the single next open step of a roadmap and stop. Smallest execution scope of the /roadmap cluster — one step in, one step out.
|
|
7
|
+
disable-model-invocation: true
|
|
8
|
+
suggestion:
|
|
9
|
+
eligible: true
|
|
10
|
+
trigger_description: "process the next step, do the next roadmap step, einen schritt abarbeiten"
|
|
11
|
+
trigger_context: "existing agents/roadmaps/*.md and user wants exactly one step done autonomously"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# /roadmap:process-step
|
|
15
|
+
|
|
16
|
+
One-step execution scope of the [`/roadmap`](../roadmap.md) cluster.
|
|
17
|
+
Same canonical loop as [`/roadmap:process-phase`](process-phase.md),
|
|
18
|
+
bounded to a single iteration.
|
|
19
|
+
|
|
20
|
+
## Instructions
|
|
21
|
+
|
|
22
|
+
Run the canonical loop in
|
|
23
|
+
[`contexts/execution/roadmap-process-loop`](../../contexts/execution/roadmap-process-loop.md)
|
|
24
|
+
with the **scope delta below**.
|
|
25
|
+
|
|
26
|
+
## Scope delta
|
|
27
|
+
|
|
28
|
+
- **Working set:** the **first checkbox `[ ]` in document order**
|
|
29
|
+
inside the first phase with `count_open > 0`. If every step is
|
|
30
|
+
closed → report "Roadmap already complete." and run the archival
|
|
31
|
+
check from
|
|
32
|
+
[`roadmap-process-loop § 6`](../../contexts/execution/roadmap-process-loop.md#6-final-report-and-archival).
|
|
33
|
+
- **Stop after:** one full iteration of
|
|
34
|
+
[`roadmap-process-loop § 5`](../../contexts/execution/roadmap-process-loop.md#5-step-loop)
|
|
35
|
+
(sub-steps 1–7). After the checkbox edit + dashboard regen, **stop**.
|
|
36
|
+
- **Quality cadence:** run the per-step pipeline only when
|
|
37
|
+
`quality_cadence: per_step`. Skip otherwise.
|
|
38
|
+
- **Phase boundary:** if this single step happens to close the phase,
|
|
39
|
+
do **not** advance. Report the phase as complete and stop.
|
|
40
|
+
- **Roadmap boundary:** if this single step happens to close the
|
|
41
|
+
entire roadmap, run the archival check before reporting.
|
|
42
|
+
|
|
43
|
+
## Rules
|
|
44
|
+
|
|
45
|
+
- **Stop after one step**, even if the next step is trivial. The user
|
|
46
|
+
picks `process-phase` or `process-full` when they want more.
|
|
47
|
+
- All other rules from
|
|
48
|
+
[`process-phase § Rules`](process-phase.md#rules) apply unchanged:
|
|
49
|
+
Hard-Floor, no auto-commit, dashboard sync, AI-council silent-when-on,
|
|
50
|
+
decline = silence.
|
|
51
|
+
|
|
52
|
+
## See also
|
|
53
|
+
|
|
54
|
+
- [`/roadmap`](../roadmap.md) — cluster orchestrator
|
|
55
|
+
- [`/roadmap:process-phase`](process-phase.md) — default scope, single phase
|
|
56
|
+
- [`/roadmap:process-full`](process-full.md) — across-phases variant
|
|
57
|
+
- [`roadmap-process-loop`](../../contexts/execution/roadmap-process-loop.md) — canonical mechanics
|
|
@@ -1,44 +1,72 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: roadmap
|
|
3
|
-
description: Roadmap orchestrator — routes to create
|
|
3
|
+
description: Roadmap orchestrator — routes to create (authoring) and process-step / process-phase / process-full (autonomous execution).
|
|
4
4
|
cluster: roadmap
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
suggestion:
|
|
7
7
|
eligible: true
|
|
8
|
-
trigger_description: "create a roadmap,
|
|
9
|
-
trigger_context: "user wants to scaffold or
|
|
8
|
+
trigger_description: "create a roadmap, process a roadmap, work through a roadmap autonomously, plan or abarbeiten"
|
|
9
|
+
trigger_context: "user wants to scaffold or autonomously execute a roadmap under agents/roadmaps/"
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# /roadmap
|
|
13
13
|
|
|
14
|
-
Top-level orchestrator for the `/roadmap` family.
|
|
15
|
-
|
|
14
|
+
Top-level orchestrator for the `/roadmap` family. Carries authoring
|
|
15
|
+
(`create`) and the three autonomous-execution scopes (`process-step`,
|
|
16
|
+
`process-phase`, `process-full`). The legacy `/roadmap execute` (which
|
|
17
|
+
paused for confirmation before every step) was removed —
|
|
18
|
+
`process-phase` is the default execution scope.
|
|
16
19
|
|
|
17
20
|
## Sub-commands
|
|
18
21
|
|
|
19
22
|
| Sub-command | Routes to | Purpose |
|
|
20
23
|
|---|---|---|
|
|
21
|
-
| `/roadmap
|
|
22
|
-
| `/roadmap
|
|
24
|
+
| `/roadmap:create` | `commands/roadmap/create.md` | Interactively scaffold a new roadmap in `agents/roadmaps/` |
|
|
25
|
+
| `/roadmap:ai-council` | `commands/roadmap/ai-council.md` | Challenge an existing roadmap with the AI council (deep tier) and refactor from convergence findings |
|
|
26
|
+
| `/roadmap:process-step` | `commands/roadmap/process-step.md` | Autonomously process the next open step, then stop |
|
|
27
|
+
| `/roadmap:process-phase` (**default execution scope**) | `commands/roadmap/process-phase.md` | Autonomously process every open step in the current phase |
|
|
28
|
+
| `/roadmap:process-full` | `commands/roadmap/process-full.md` | Autonomously process every open step across every phase |
|
|
23
29
|
|
|
24
30
|
Sub-command names match the locked contract in
|
|
25
31
|
[`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md).
|
|
32
|
+
`:` and space are equivalent at the cluster boundary — see
|
|
33
|
+
[`slash-command-routing-policy-mechanics`](../contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md#routing-semantics).
|
|
34
|
+
The three `process-*` subs share the canonical loop in
|
|
35
|
+
[`contexts/execution/roadmap-process-loop`](../contexts/execution/roadmap-process-loop.md);
|
|
36
|
+
each only binds a scope delta.
|
|
26
37
|
|
|
27
38
|
## Dispatch
|
|
28
39
|
|
|
29
|
-
1. Parse the user's argument: `/roadmap
|
|
40
|
+
1. Parse the user's argument: `/roadmap[:<sub>] [args]` or
|
|
41
|
+
`/roadmap <sub> [args]`.
|
|
30
42
|
2. Look up the sub-command in the table above.
|
|
31
|
-
3. Load the body of the routed file and follow its `## Instructions`
|
|
32
|
-
verbatim with the remaining args.
|
|
33
|
-
4.
|
|
43
|
+
3. Load the body of the routed file and follow its `## Instructions`
|
|
44
|
+
section verbatim with the remaining args.
|
|
45
|
+
4. **Legacy forwarding:**
|
|
46
|
+
- `/roadmap execute` or `/roadmap-execute` → forward to
|
|
47
|
+
[`/roadmap:process-phase`](roadmap/process-phase.md) (default
|
|
48
|
+
scope) with a one-time migration notice.
|
|
49
|
+
- `/roadmap-process[:<sub>]` (legacy top-level cluster) → forward
|
|
50
|
+
to `/roadmap:process-<sub>` with a one-time migration notice.
|
|
51
|
+
5. If the sub-command is unknown or missing, print the table above
|
|
52
|
+
and ask:
|
|
34
53
|
|
|
35
54
|
> 1. create — scaffold a new roadmap interactively
|
|
36
|
-
> 2.
|
|
55
|
+
> 2. ai-council — challenge + refactor an existing roadmap (deep tier)
|
|
56
|
+
> 3. process-step — process the next open step, then stop
|
|
57
|
+
> 4. process-phase — process the current phase (default)
|
|
58
|
+
> 5. process-full — process every open step across every phase
|
|
37
59
|
|
|
38
60
|
## Rules
|
|
39
61
|
|
|
40
|
-
- **Do NOT commit, push, or open a PR** unless the sub-command
|
|
41
|
-
authorizes it.
|
|
62
|
+
- **Do NOT commit, push, or open a PR** unless the sub-command
|
|
63
|
+
explicitly authorizes it. Roadmap-listed commit steps follow the
|
|
64
|
+
single-upfront-ask flow in
|
|
65
|
+
[`roadmap-process-loop § 3`](../contexts/execution/roadmap-process-loop.md#3-commit-step-pre-scan--one-upfront-ask).
|
|
42
66
|
- **Do NOT chain sub-commands.** One `/roadmap <sub>` per turn.
|
|
43
|
-
- If the user invokes `/roadmap` with no argument, **show the menu** —
|
|
44
|
-
not guess which sub-command they meant.
|
|
67
|
+
- If the user invokes `/roadmap` with no argument, **show the menu** —
|
|
68
|
+
do not guess which sub-command they meant.
|
|
69
|
+
- Execution intents (*"work through the roadmap"*, *"abarbeiten"*,
|
|
70
|
+
*"finish this phase"*) default to
|
|
71
|
+
[`/roadmap:process-phase`](roadmap/process-phase.md) unless the user
|
|
72
|
+
named a different scope.
|
|
@@ -3,6 +3,7 @@ name: threat-model
|
|
|
3
3
|
skills: [threat-modeling, authz-review, security-sensitive-stop]
|
|
4
4
|
description: Run a pre-implementation threat model on a proposed change — enumerates abuse cases, trust boundaries, and authorization gaps before the first line of code is written
|
|
5
5
|
disable-model-invocation: true
|
|
6
|
+
council_depth: deep
|
|
6
7
|
suggestion:
|
|
7
8
|
eligible: true
|
|
8
9
|
trigger_description: "threat model this change, what could go wrong security-wise"
|