@event4u/agent-config 1.21.0 → 1.22.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 (53) hide show
  1. package/.agent-src/commands/bug-fix.md +1 -0
  2. package/.agent-src/commands/bug-investigate.md +1 -0
  3. package/.agent-src/commands/challenge-me/vision.md +348 -0
  4. package/.agent-src/commands/challenge-me/with-docs.md +333 -0
  5. package/.agent-src/commands/challenge-me.md +61 -0
  6. package/.agent-src/commands/council/default.md +64 -17
  7. package/.agent-src/commands/create-pr.md +7 -3
  8. package/.agent-src/commands/grill-me.md +38 -0
  9. package/.agent-src/commands/judge/steps.md +1 -1
  10. package/.agent-src/commands/roadmap/ai-council.md +183 -0
  11. package/.agent-src/commands/roadmap/create.md +6 -1
  12. package/.agent-src/commands/roadmap/process-full.md +58 -0
  13. package/.agent-src/commands/roadmap/process-phase.md +69 -0
  14. package/.agent-src/commands/roadmap/process-step.md +57 -0
  15. package/.agent-src/commands/roadmap.md +44 -16
  16. package/.agent-src/commands/threat-model.md +1 -0
  17. package/.agent-src/contexts/augment-infrastructure.md +1 -1
  18. package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +53 -18
  19. package/.agent-src/contexts/execution/roadmap-process-loop.md +125 -0
  20. package/.agent-src/contexts/skills-and-commands.md +1 -1
  21. package/.agent-src/rules/improve-before-implement.md +1 -0
  22. package/.agent-src/rules/invite-challenge.md +71 -0
  23. package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
  24. package/.agent-src/skills/ai-council/SKILL.md +132 -8
  25. package/.agent-src/skills/bug-analyzer/SKILL.md +1 -0
  26. package/.agent-src/skills/roadmap-management/SKILL.md +7 -7
  27. package/.agent-src/skills/systematic-debugging/SKILL.md +22 -2
  28. package/.agent-src/skills/technical-specification/SKILL.md +58 -1
  29. package/.agent-src/skills/threat-modeling/SKILL.md +1 -0
  30. package/.agent-src/templates/agent-settings.md +14 -3
  31. package/.agent-src/templates/command.md +17 -1
  32. package/.agent-src/templates/roadmaps.md +10 -2
  33. package/.agent-src/templates/rule.md +2 -0
  34. package/.agent-src/templates/skill.md +17 -0
  35. package/.claude-plugin/marketplace.json +9 -2
  36. package/AGENTS.md +2 -2
  37. package/CHANGELOG.md +38 -0
  38. package/README.md +1 -1
  39. package/config/agent-settings.template.yml +22 -0
  40. package/docs/architecture.md +2 -2
  41. package/docs/contracts/command-clusters.md +45 -1
  42. package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +126 -0
  43. package/docs/getting-started.md +1 -1
  44. package/docs/guidelines/agent-infra/naming.md +1 -1
  45. package/package.json +1 -1
  46. package/scripts/_phase2_shim_helper.py +1 -1
  47. package/scripts/council_cli.py +127 -10
  48. package/scripts/migrate_command_suggestions.py +2 -2
  49. package/scripts/schemas/command.schema.json +5 -0
  50. package/scripts/schemas/rule.schema.json +5 -0
  51. package/scripts/schemas/skill.schema.json +5 -0
  52. package/scripts/skill_linter.py +1 -1
  53. package/.agent-src/commands/roadmap/execute.md +0 -109
@@ -204,12 +204,12 @@ pipelines:
204
204
 
205
205
  # --- Roadmap execution ---
206
206
  #
207
- # Controls when /roadmap execute runs the project's quality pipeline.
207
+ # Controls when /roadmap:process-* runs the project's quality pipeline.
208
208
  # Step checkboxes and the dashboard are ALWAYS updated in the same
209
209
  # response — that cadence is governed by `roadmap-progress-sync` and
210
210
  # is non-negotiable. This setting only governs *quality tool runs*.
211
211
  roadmap:
212
- # When to run quality tools during /roadmap execute.
212
+ # When to run quality tools during /roadmap:process-step|phase|full.
213
213
  # end_of_roadmap = once, before archiving (default — fastest, fewest tokens)
214
214
  # per_phase = once after every completed phase
215
215
  # per_step = after every completed step (legacy; highest token cost)
@@ -293,6 +293,16 @@ commands:
293
293
  # Commands to never suggest. Still work when typed explicitly.
294
294
  blocklist: []
295
295
 
296
+ # Pre-creation preview of the generated PR description in `/create-pr`.
297
+ # When `false` (default): skip the title/body preview + adjust loop;
298
+ # use the generated content directly to create the PR. Saves agent
299
+ # tokens by avoiding a re-render of the full description in chat.
300
+ # When `true`: show title and body in copyable code blocks and ask
301
+ # for adjustments before creating the PR.
302
+ # `/create-pr:description-only` always previews — that is its sole purpose.
303
+ create_pr:
304
+ preview_description: false
305
+
296
306
  # --- Telemetry (artefact engagement, default-off) ---
297
307
  #
298
308
  # Records — at task / phase-step boundaries — which artefacts (skills,
@@ -361,7 +371,7 @@ lives under `personal:` in YAML.
361
371
  | `hooks.chat_history.enabled` | `true`, `false` | `true` | Register the chat-history hooks (`append` on `after_step`, `halt_append` on `on_halt`). Gated by **both** this flag AND `chat_history.enabled`; either off → no chat-history hook registers. Schema v4: every entry self-identifies via a 16-char session fingerprint, no ownership/sidecar layer. |
362
372
  | `hooks.chat_history.script` | path | `scripts/chat_history.py` | Override path to the chat-history CLI. Set only when the script lives outside the standard location. |
363
373
  | `pipelines.skill_improvement` | `true`, `false` | `true` | When `true`: propose learning capture after meaningful tasks. When `false`: silent. Included in every profile except `custom`. |
364
- | `roadmap.quality_cadence` | `end_of_roadmap`, `per_phase`, `per_step` | `end_of_roadmap` | When `/roadmap execute` runs the project's quality pipeline. Default skips per-step / per-phase runs and gates only the final archival. `per_phase` runs once after every phase; `per_step` is the legacy verbose mode. Step checkboxes and the dashboard are always updated regardless. `verify-before-complete` still requires fresh output before any "roadmap complete" claim. |
374
+ | `roadmap.quality_cadence` | `end_of_roadmap`, `per_phase`, `per_step` | `end_of_roadmap` | When `/roadmap:process-step|phase|full` runs the project's quality pipeline. Default skips per-step / per-phase runs and gates only the final archival. `per_phase` runs once after every phase; `per_step` is the legacy verbose mode. Step checkboxes and the dashboard are always updated regardless. `verify-before-complete` still requires fresh output before any "roadmap complete" claim. |
365
375
  | `subagents.implementer_model` | model alias or empty | _(empty)_ | Model for implementer subagents. Empty = same tier as session model. See [subagent-configuration](../contexts/subagent-configuration.md). |
366
376
  | `subagents.judge_model` | model alias or empty | _(empty)_ | Model for judge subagents. Empty = one tier above implementer (opus if sonnet, sonnet if haiku). |
367
377
  | `subagents.max_parallel` | integer | `3` | Maximum parallel subagent invocations. `1` serializes. |
@@ -375,6 +385,7 @@ lives under `personal:` in YAML.
375
385
  | `commands.suggestion.cooldown_seconds` | integer | `600` | Cooldown between re-suggestions of the same `(command, evidence)` pair. `600` = 10m. |
376
386
  | `commands.suggestion.max_options` | integer | `4` | Max number of command suggestions before the always-present "run as-is" option (total rendered = `max_options + 1`). |
377
387
  | `commands.suggestion.blocklist` | list of command names | `[]` | Commands that never appear as a suggestion. They still work when typed explicitly. |
388
+ | `commands.create_pr.preview_description` | `true`, `false` | `false` | When `false`: `/create-pr` skips the title/body preview + adjust loop and uses the generated content directly. Saves agent tokens. When `true`: show title and body before creating and ask for adjustments. `/create-pr:description-only` always previews regardless of this setting. |
378
389
  | `telemetry.artifact_engagement.enabled` | `true`, `false` | `false` | Master switch for the artefact engagement log. Default-off; zero file IO and zero token cost when `false`. Maintainer-targeted; consumers leave it off. |
379
390
  | `telemetry.artifact_engagement.granularity` | `task`, `phase-step`, `tool-call` | `task` | Boundary at which events are recorded. `tool-call` is expensive — opt-in only. |
380
391
  | `telemetry.artifact_engagement.record.consulted` | `true`, `false` | `true` | When `true`: record artefacts loaded into context. |
@@ -20,6 +20,11 @@ name: {command-name}
20
20
  description: {Short description of what the command does}
21
21
  disable-model-invocation: true
22
22
  skills: [{optional-skill-1}, {optional-skill-2}]
23
+ suggestion:
24
+ eligible: true
25
+ trigger_description: "natural-language pattern, comma-separated examples"
26
+ trigger_context: "concrete signal — branch name, file pattern, recent tool output"
27
+ # council_depth: deep # uncomment for architecture/refactor/bug-diagnose commands
23
28
  ---
24
29
 
25
30
  <!-- FRONTMATTER RULES (delete this comment when done):
@@ -27,6 +32,17 @@ skills: [{optional-skill-1}, {optional-skill-2}]
27
32
  - description: short, human-readable — what the command does
28
33
  - disable-model-invocation: ALWAYS true for commands (prevents Claude from auto-invoking)
29
34
  - skills: optional — list skills this command references or delegates to
35
+ - suggestion: REQUIRED — drives the in-host command suggester
36
+ - eligible: true → set trigger_description + trigger_context
37
+ - eligible: false → set rationale (why never auto-suggested)
38
+ See agents/contexts/command-suggestion-eligibility.md for guidance.
39
+ - council_depth: optional — only `deep` is accepted. **Omit the key
40
+ for default depth** (`standard` is the implicit default and is
41
+ rejected by the schema — every frontmatter byte counts). Set `deep`
42
+ when this command triggers AI Council on architecture, refactoring,
43
+ or bug-diagnosis artefacts. The host translates `deep` into
44
+ `--depth deep` on the council CLI, raising the round floor to
45
+ `ai_council.deep_min_rounds`. See .augment/skills/ai-council/SKILL.md.
30
46
  -->
31
47
 
32
48
  # /{command-name}
@@ -74,7 +90,7 @@ Ask the user:
74
90
 
75
91
  Before considering a command complete:
76
92
 
77
- - [ ] **Frontmatter**: has `name`, `description`, `disable-model-invocation: true`
93
+ - [ ] **Frontmatter**: has `name`, `description`, `disable-model-invocation: true`, `suggestion` block
78
94
  - [ ] **Steps**: numbered sub-headings (`### 1.`, `### 2.`, ...)
79
95
  - [ ] **Source of truth**: works on `.agent-src.uncompressed/`, not `.agent-src/` or `.augment/`
80
96
  - [ ] **No auto-apply**: presents findings, asks before destructive changes
@@ -36,14 +36,22 @@ Templates for roadmap files stored in `agents/roadmaps/` or `app/Modules/{Module
36
36
  creating the roadmap — not during execution. Default: stay on the
37
37
  current branch. If the user declines, the topic is closed for this
38
38
  roadmap. See [`scope-control`](../rules/scope-control.md#decline--silence--no-re-asking-on-the-same-task).
39
+ 15. **Declare complexity tier.** Every roadmap declares
40
+ `complexity: lightweight` or `complexity: structural` in frontmatter.
41
+ Lightweight (default): ≤ 6 phases, ≤ 600 lines, no nested council
42
+ debates inside the roadmap. Structural (rare, opt-in): contract-layer
43
+ or budget-invariant changes; multi-round council, file-ownership
44
+ matrices, > 600 lines. Enforced by `task lint-roadmap-complexity`.
45
+ Standard: [`docs/contracts/roadmap-complexity-standard.md`](../docs/contracts/roadmap-complexity-standard.md).
39
46
 
40
47
  ---
41
48
 
42
49
  ## Quality Gates (always apply at completion)
43
50
 
44
51
  Every roadmap must pass the project's quality pipeline before it is
45
- considered done. **When** the pipeline runs during `/roadmap execute` is
46
- governed by `roadmap.quality_cadence` in `.agent-settings.yml`
52
+ considered done. **When** the pipeline runs during
53
+ `/roadmap:process-step|phase|full` is governed by
54
+ `roadmap.quality_cadence` in `.agent-settings.yml`
47
55
  (`end_of_roadmap` default → once before archival; `per_phase` → after
48
56
  every phase; `per_step` → after every step). Either way, a final fresh
49
57
  run is mandatory before "complete" per `verify-before-complete`.
@@ -73,6 +73,7 @@ type: "always"
73
73
  tier: "kernel"
74
74
  description: "{One-line trigger sentence — what fires this rule}"
75
75
  source: package
76
+ # council_depth: deep # uncomment for rules that gate architecture/refactor/bug-diagnose flows
76
77
  load_context:
77
78
  - contexts/{area}/{file}.md
78
79
  triggers:
@@ -119,6 +120,7 @@ for full detail; rules are pointers, not playbooks.}
119
120
  | `triggers` | no | Required on non-kernel rules per `rule-router.md`. |
120
121
  | `routes_to` | no | `skill:`, `guideline:`, `command:`, `contract:` targets. Forbidden on kernel rules. |
121
122
  | `alwaysApply` | no | Cursor/Cline sidecar — by convention `true` for `type: always`. |
123
+ | `council_depth` | no | Only `deep` is accepted; **omit the key for default depth** (`standard` is the implicit default and is rejected by the schema — every frontmatter byte counts). Set `deep` when this rule gates AI Council on architecture, refactoring, or bug-diagnosis flows. Host translates to `--depth deep` on the council CLI. See `.augment/skills/ai-council/SKILL.md`. |
122
124
 
123
125
  ## Size budget
124
126
 
@@ -41,6 +41,23 @@ status: active
41
41
  See guidelines/agent-infra/runtime-layer.md for details.
42
42
  -->
43
43
 
44
+ <!-- COUNCIL DEPTH (optional — delete this comment when done):
45
+ Add `council_depth: deep` to the frontmatter when this skill triggers
46
+ AI Council on architecture, refactoring, or bug-diagnosis artefacts.
47
+ The host translates `deep` into `--depth deep` on the council CLI,
48
+ raising the round floor to `max(ai_council.deep_min_rounds,
49
+ ai_council.min_rounds)`.
50
+
51
+ Only `deep` is accepted. **Omit the key for default depth** —
52
+ `standard` is the implicit default and is rejected by the schema
53
+ (every frontmatter byte counts against the context window).
54
+
55
+ Example:
56
+ council_depth: deep
57
+
58
+ See .augment/skills/ai-council/SKILL.md.
59
+ -->
60
+
44
61
  <!-- DESCRIPTION RULES (delete this comment when done):
45
62
  - Start with "Use when..." — this is a TRIGGER, not a summary
46
63
  - Include 2-3 phrases users actually say: "create a DTO", "add column", "fix tests"
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Shared agent configuration \u2014 skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
9
- "version": "1.21.0"
9
+ "version": "1.22.0"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -42,6 +42,9 @@
42
42
  "./.claude/skills/chat-history-import",
43
43
  "./.claude/skills/chat-history-learn",
44
44
  "./.claude/skills/chat-history-show",
45
+ "./.claude/skills/challenge-me",
46
+ "./.claude/skills/challenge-me-vision",
47
+ "./.claude/skills/challenge-me-with-docs",
45
48
  "./.claude/skills/check-current-md",
46
49
  "./.claude/skills/check-refs",
47
50
  "./.claude/skills/code-refactoring",
@@ -109,6 +112,7 @@
109
112
  "./.claude/skills/git-workflow",
110
113
  "./.claude/skills/github-ci",
111
114
  "./.claude/skills/grafana",
115
+ "./.claude/skills/grill-me",
112
116
  "./.claude/skills/guideline-writing",
113
117
  "./.claude/skills/implement-ticket",
114
118
  "./.claude/skills/jira-integration",
@@ -201,9 +205,12 @@
201
205
  "./.claude/skills/review-routing",
202
206
  "./.claude/skills/rice-prioritization",
203
207
  "./.claude/skills/roadmap",
208
+ "./.claude/skills/roadmap-ai-council",
204
209
  "./.claude/skills/roadmap-create",
205
- "./.claude/skills/roadmap-execute",
206
210
  "./.claude/skills/roadmap-management",
211
+ "./.claude/skills/roadmap-process-full",
212
+ "./.claude/skills/roadmap-process-phase",
213
+ "./.claude/skills/roadmap-process-step",
207
214
  "./.claude/skills/rtk-output-filtering",
208
215
  "./.claude/skills/rule-compliance-audit",
209
216
  "./.claude/skills/rule-writing",
package/AGENTS.md CHANGED
@@ -168,8 +168,8 @@ appends to `agents/.rule-budget-history.jsonl`.
168
168
  ```
169
169
  .agent-src.uncompressed/ ← edit here
170
170
  skills/ (136 skills)
171
- rules/ (58 rules)
172
- commands/ (95 commands)
171
+ rules/ (59 rules)
172
+ commands/ (102 commands)
173
173
  personas/ (7 personas)
174
174
  templates/ (AGENTS.md, copilot-instructions.md, skill.md, …)
175
175
  contexts/
package/CHANGELOG.md CHANGED
@@ -318,6 +318,44 @@ our recommendation order, not its support status.
318
318
  users" tension without removing any path that an existing user
319
319
  might rely on.
320
320
 
321
+ ## [1.22.0](https://github.com/event4u-app/agent-config/compare/1.21.0...1.22.0) (2026-05-07)
322
+
323
+ ### Features
324
+
325
+ * **commands:** add /grill-me alias for /challenge-me + expand triggers ([d2be4ee](https://github.com/event4u-app/agent-config/commit/d2be4ee1a97d2ca2374c6543e0fd908eca0a0f1a))
326
+ * **challenge-me:** add !roadmap and !ai triggers ([7bfbd69](https://github.com/event4u-app/agent-config/commit/7bfbd6943852d781ca7ad29e51750de24d3ef413))
327
+ * **create-pr:** default to skipping description preview to save tokens ([80e77ae](https://github.com/event4u-app/agent-config/commit/80e77aed76a13c26fac8316bc5d58a3533dbbe44))
328
+ * **council:** add critical-evaluation stance for council findings ([7e2524b](https://github.com/event4u-app/agent-config/commit/7e2524b75fd84ca4b6afb6deae0b8777e8b81ac7))
329
+ * **council:** add /roadmap:ai-council deep-tier sub-command ([c5933e4](https://github.com/event4u-app/agent-config/commit/c5933e4b2301a0f9d1c116d2843ed4953bd92163))
330
+ * replace /roadmap-execute with autonomous /roadmap:process-* cluster ([9d4ffd0](https://github.com/event4u-app/agent-config/commit/9d4ffd0815fb7923b337bfd0b3847d9bc5a01e54))
331
+ * **council:** mark architecture/refactor/bug-diagnose artefacts as deep ([6f903c1](https://github.com/event4u-app/agent-config/commit/6f903c194e4bc54512e93a32e1876e84d0292401))
332
+ * **council:** add deep reasoning depth tier with schema enforcement ([f4efd7a](https://github.com/event4u-app/agent-config/commit/f4efd7a11b9d57e93153e6e4605c968565c8924d))
333
+ * **linter:** require suggestion block on commands ([231df91](https://github.com/event4u-app/agent-config/commit/231df918b2d15ea9cc2fa8fe12bae4c2482990df))
334
+ * add --siblings council mode and refine convener wording ([9075647](https://github.com/event4u-app/agent-config/commit/9075647ba520efb5f10ab7612970111e9f9d16e9))
335
+ * add PRD template to technical-specification ([f9ee749](https://github.com/event4u-app/agent-config/commit/f9ee7496434f9342d6b46b95dce14c4703d07d96))
336
+ * add 6-phase loop checklist to systematic-debugging ([29c9e94](https://github.com/event4u-app/agent-config/commit/29c9e9419c9d08dd93c4fc7364e51b93bc771131))
337
+ * add invite-challenge rule for pre-execution goal restatement ([e96da5f](https://github.com/event4u-app/agent-config/commit/e96da5fdf124da3582e454fc625fe32a27ada634))
338
+ * add /challenge-me cluster with vision and with-docs sub-commands ([74481ef](https://github.com/event4u-app/agent-config/commit/74481ef7e7850d3e015ff0f9853be6ea618ac1d9))
339
+
340
+ ### Documentation
341
+
342
+ * **roadmap:** drop council-response file links per no-council-references ([d792100](https://github.com/event4u-app/agent-config/commit/d792100ef6b2727cca1338c89fefc4c591513265))
343
+ * **readme:** bump hero command count from 100 to 102 ([3212db4](https://github.com/event4u-app/agent-config/commit/3212db48fb1d62a70f9e87cf9307ee73059b7e4e))
344
+ * **roadmap:** integrate R5 council verdict for caveman-insurance ([38b26e2](https://github.com/event4u-app/agent-config/commit/38b26e2f00504a7c6c821c356964cb0cabefd905))
345
+ * **roadmap:** incorporate R4 verdict + structural findings into caveman integration ([c50f39b](https://github.com/event4u-app/agent-config/commit/c50f39bc9b08c8d59c4cf547aeec7fffbff38bc0))
346
+ * **roadmap:** convert caveman integration Phase 2 to hard cutover ([fb459be](https://github.com/event4u-app/agent-config/commit/fb459be70a093eea1814a38a3b1fec9cf9261363))
347
+ * **harvest:** add Superpowers harvest roadmap, hardened by council R2 ([e559259](https://github.com/event4u-app/agent-config/commit/e559259f789014603067e87141d9feb815b480ab))
348
+ * **harvest:** analyze obra/superpowers v5.1.0 for adoption candidates ([e89e0ee](https://github.com/event4u-app/agent-config/commit/e89e0eeadc4b76517b181c559422e88df5c8122a))
349
+ * **council:** document council_depth frontmatter convention in templates ([ba56412](https://github.com/event4u-app/agent-config/commit/ba56412c76204bbe49366bbceb62e4d31c994fc2))
350
+
351
+ ### Chores
352
+
353
+ * **sync:** re-sync compressed mirror with create-pr preview-gate + agent-settings preview_description ([ceab79e](https://github.com/event4u-app/agent-config/commit/ceab79e23be2c1d4ba504b80426d1b91ffdaadd1))
354
+ * bump artefact counts and refresh compression hashes ([2801342](https://github.com/event4u-app/agent-config/commit/28013424668177fc23df45cc56390faba6fd010e))
355
+ * regenerate tool-dir symlinks for challenge-me and invite-challenge ([b3b0ada](https://github.com/event4u-app/agent-config/commit/b3b0ada9ce108b220289c9f044b3f3d0209f0a12))
356
+ * bump artefact counts and refresh compression hashes ([4147de3](https://github.com/event4u-app/agent-config/commit/4147de3b4da24494128a847be194ac901e506df9))
357
+ * sync compressed projection for challenge-me cluster ([9165762](https://github.com/event4u-app/agent-config/commit/91657620e6d822fbe28923e3b008e218f13e5cea))
358
+
321
359
  ## [1.21.0](https://github.com/event4u-app/agent-config/compare/1.20.0...1.21.0) (2026-05-06)
322
360
 
323
361
  ### Features
package/README.md CHANGED
@@ -7,7 +7,7 @@ Give your AI agents an audit-disciplined orchestration contract — testing, Git
7
7
  > Your agent picks up the project's stack, runs tests, prepares PRs, fixes CI — and follows your team's coding standards while doing it. Stack-aware skill sets ship for PHP (Laravel · Symfony · Zend/Laminas), JavaScript (Next.js · React · Node), and cross-stack concerns (API · testing · security · observability).
8
8
 
9
9
  <p align="center">
10
- <strong>136 Skills</strong> · <strong>58 Rules</strong> · <strong>95 Commands</strong> · <strong>56 Guidelines</strong> · <strong>8 AI Tools</strong>
10
+ <strong>136 Skills</strong> · <strong>59 Rules</strong> · <strong>102 Commands</strong> · <strong>56 Guidelines</strong> · <strong>8 AI Tools</strong>
11
11
  </p>
12
12
 
13
13
  ---
@@ -238,6 +238,16 @@ ai_council:
238
238
  # invocation (or `--rounds N` to the CLI) to override.
239
239
  min_rounds: 2
240
240
 
241
+ # Higher floor for deep-reasoning artefacts (architecture review,
242
+ # refactoring proposals, bug-diagnosis runs). Activated when the
243
+ # consuming rule, skill, or command declares `council_depth: deep`
244
+ # in its frontmatter, or the user passes `--depth deep` to the CLI.
245
+ # Effective rounds = max(deep_min_rounds, min_rounds), so this floor
246
+ # is monotonic — lowering it below `min_rounds` has no effect.
247
+ # Standard tasks keep `min_rounds`; cost rises only when an artefact
248
+ # opts in. Set to `min_rounds` to disable the deep tier.
249
+ deep_min_rounds: 3
250
+
241
251
  # Hard cost ceiling per /council invocation. The orchestrator pauses
242
252
  # before any member whose projected spend would breach a cap and asks
243
253
  # the user to continue. `max_total_usd: 0` disables the USD ceiling
@@ -298,3 +308,15 @@ commands:
298
308
  # Commands to never suggest. Still work when typed explicitly.
299
309
  # Example: ["/refine-ticket", "/work"]
300
310
  blocklist: []
311
+
312
+ # --- /create-pr behavior ---
313
+ #
314
+ # Pre-creation preview of the generated PR description.
315
+ # false (default): skip the title/body preview + adjust loop in
316
+ # /create-pr; use the generated content directly. Saves agent tokens
317
+ # by avoiding a re-render of the full description in chat.
318
+ # true: show title and body in copyable code blocks and ask for
319
+ # adjustments before creating the PR.
320
+ # /create-pr:description-only always previews — that is its sole purpose.
321
+ create_pr:
322
+ preview_description: false
@@ -97,8 +97,8 @@ fails on any source-side violation, without producing artifacts.
97
97
  | Layer | Count | Purpose |
98
98
  |---|---|---|
99
99
  | **Skills** | 136 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
100
- | **Rules** | 58 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
101
- | **Commands** | 95 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
100
+ | **Rules** | 59 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
101
+ | **Commands** | 102 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
102
102
  | **Guidelines** | 56 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
103
103
  | **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
104
104
  | **Contexts** | 5 | Shared knowledge about the system itself |
@@ -33,7 +33,7 @@ column 1 of this table.
33
33
  | `chat-history` | 2 | `show` · `import` · `learn` | `chat-history` (legacy status) — `resume` / `clear` / `checkpoint` removed in `road-to-chat-history-hook-only` (auto-adopt + structural hooks); `import` (verbatim cross-session render) and `learn` (project-improving learning extraction) added in the v4 stateless schema |
34
34
  | `agents` | 2 | `audit` · `cleanup` · `prepare` | `agents-audit` · `agents-cleanup` · `agents-prepare` |
35
35
  | `memory` | 2 | `add` · `load` · `promote` · `propose` | `memory-add` · `memory-full` · `memory-promote` · `propose-memory` |
36
- | `roadmap` | 2 | `create` · `execute` | `roadmap-create` · `roadmap-execute` |
36
+ | `roadmap` | 2 | `create` · `ai-council` · `process-step` · `process-phase` · `process-full` | `roadmap-create` · `roadmap-execute` (replaced — autonomous, no per-step gate; `process-phase` is the default execution scope); `ai-council` added 2026-05-07 — wraps `/council default` with `--input-mode roadmap --depth deep` |
37
37
  | `module` | 2 | `create` · `explore` | `module-create` · `module-explore` |
38
38
  | `tests` | 2 | `create` · `execute` | `tests-create` · `tests-execute` |
39
39
  | `context` | 2 | `create` · `refactor` | `context-create` · `context-refactor` |
@@ -43,6 +43,7 @@ column 1 of this table.
43
43
  | `commit` | 2 | `in-chunks` | `commit-in-chunks` |
44
44
  | `create-pr` | 2 | `description-only` | `create-pr-description` |
45
45
  | `council` | 3 | `default` · `pr` · `design` · `optimize` | `council` (legacy default lens) · `council-pr` · `council-design` · `council-optimize` |
46
+ | `challenge-me` | — | `vision` · `with-docs` | new — Pocock-inspired one-question-at-a-time interview; `vision` is the standard 95%-confidence variant, `with-docs` adds doc/glossary awareness with a session-scoped glossary and load-bearing claim-vs-code verification |
46
47
 
47
48
  **Net change:** Phase 1 collapsed 15 atomics → 3 clusters; Phase 2
48
49
  collapses 26 atomics → 11 sub-command clusters. Sub-commands use
@@ -51,6 +52,49 @@ autocomplete them. The standalone `/review` surface that mirrors
51
52
  `judge solo` lives at
52
53
  [`commands/review-changes.md`](../../.agent-src.uncompressed/commands/review-changes.md).
53
54
 
55
+ ## Cluster depth and sub-command naming
56
+
57
+ Locked by [ADR-003](../decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md)
58
+ (2026-05-07). The shape is the default for **every** new cluster and
59
+ every new sub-command added to an existing cluster.
60
+
61
+ 1. **Flat only.** A cluster has exactly one level of sub-commands.
62
+ No sub-sub-commands. A dispatcher routes `/cluster <sub>` to a
63
+ single sub-file; sub-files do not dispatch further. Two-level
64
+ dispatch is a deliberate contract change requiring a new ADR
65
+ superseding ADR-003.
66
+
67
+ 2. **Composite sub-names for verb+scope.** When a cluster carries
68
+ multiple verbs (e.g. authoring + execution), encode the verb in
69
+ the sub-name, joined with `-`:
70
+
71
+ - ✅ `/roadmap:create` · `/roadmap:process-step` ·
72
+ `/roadmap:process-phase` · `/roadmap:process-full`
73
+ - ❌ `/roadmap:process:phase` (sub-sub — forbidden)
74
+ - ❌ `/roadmap:step` · `/roadmap:phase` · `/roadmap:full`
75
+ (verb hidden — breaks symmetry with `create`)
76
+ - ❌ separate `/roadmap-process` cluster (domain split — forbidden
77
+ when one cluster can carry both verbs flat)
78
+
79
+ Sibling sub-names stay in the same shape: either all bare verbs,
80
+ all bare nouns/scopes, or all composite. Mixing bare and composite
81
+ in the same cluster is allowed only when the bare sibling is the
82
+ cluster's primary verb (e.g. `/roadmap:create` + `process-*`
83
+ composites).
84
+
85
+ 3. **Sub-name format.** kebab-case (`pr-bots`, `process-phase`),
86
+ ≤ 24 chars, no leading verb that duplicates the cluster name
87
+ (use `/fix:ci`, not `/fix:fix-ci`).
88
+
89
+ 4. **Colon-canonical invocation.**
90
+ `/<cluster>:<sub>` is the canonical form everywhere — catalog,
91
+ docs, examples, deprecation warnings. The space-separated form
92
+ `/<cluster> <sub>` is a first-class equivalent and routes to the
93
+ same dispatcher; it must keep working. Autocompletion-aware UIs
94
+ surface the colon form because it stays a single token. Full
95
+ semantics: [`slash-command-routing-policy-mechanics.md`](../../.agent-src.uncompressed/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md)
96
+ § Routing semantics.
97
+
54
98
  ## Frontmatter contract
55
99
 
56
100
  A new command file under `.agent-src.uncompressed/commands/` MUST
@@ -0,0 +1,126 @@
1
+ # ADR-003 — Flat Cluster Sub-Commands and Colon-Canonical Invocation
2
+
3
+ - **Status:** Accepted (2026-05-07)
4
+ - **Phase:** Command-cluster contract (Phase 2 follow-up)
5
+ - **Supersedes:** none — extends the locked cluster set in
6
+ `docs/contracts/command-clusters.md`.
7
+ - **Related:** `roadmap-process` migration (2026-05-07) — the trigger
8
+ that forced the decision; `contexts/execution/roadmap-process-loop.md`
9
+ (the shared mechanics extracted alongside).
10
+
11
+ ## Context
12
+
13
+ `roadmap-execute` was being replaced by an autonomous-execution surface
14
+ with three scopes: single step, single phase, full roadmap. The
15
+ question was where those three commands live in the cluster catalog.
16
+ Four shapes were on the table:
17
+
18
+ - **A — separate `/roadmap-process` cluster.** Two top-level clusters
19
+ (`/roadmap` for authoring, `/roadmap-process` for execution).
20
+ - **B — sub-sub-commands** (`/roadmap:process:phase`). One cluster,
21
+ two-level dispatch.
22
+ - **C — flat under `/roadmap`, no verb** (`/roadmap:step` ·
23
+ `/roadmap:phase` · `/roadmap:full`). Verb hidden in cluster
24
+ description.
25
+ - **D — flat under `/roadmap`, verb fused with scope**
26
+ (`/roadmap:process-step` · `/roadmap:process-phase` ·
27
+ `/roadmap:process-full`). One cluster, one dispatch level, composite
28
+ sub-name carries the verb.
29
+
30
+ Existing infrastructure assumed a single dispatch level: the contract
31
+ table at `docs/contracts/command-clusters.md`, the linter
32
+ `scripts/lint_no_new_atomic_commands.py`, and the dispatcher-shape
33
+ checker `scripts/check_cluster_patterns.py` all parse one column of
34
+ sub-names per cluster.
35
+
36
+ ## Decision
37
+
38
+ 1. **Cluster depth stays flat.** A cluster has exactly one level of
39
+ sub-commands. No sub-sub-commands. Option B is rejected.
40
+
41
+ 2. **Verb-and-scope sub-commands use a composite name** joined by `-`
42
+ (`process-step`, `process-phase`, `process-full`). The verb stays
43
+ visible in the autocomplete list; symmetry with sibling
44
+ sub-commands (`/roadmap:create`) is preserved as
45
+ verb-or-noun-per-sub. Option D wins over C.
46
+
47
+ 3. **Colon is the canonical invocation form** (`/<cluster>:<sub>`).
48
+ The space-separated form (`/<cluster> <sub>`) remains a
49
+ first-class equivalent — both forms route to the same dispatcher.
50
+ Autocompletion-aware UIs (Claude Code picker, IDE slash-menus,
51
+ shell completers) MUST surface the colon form because it stays a
52
+ single token.
53
+
54
+ 4. **Future verb+scope clusters follow the same shape.** Any future
55
+ cluster with multiple verbs (e.g. an authoring verb and an
56
+ execution verb) uses composite sub-names rather than introducing a
57
+ second cluster or a second dispatch level.
58
+
59
+ ## Rationale
60
+
61
+ - **Option A (separate cluster)** scatters one domain across two
62
+ top-level surfaces. Users have to remember which cluster owns
63
+ which verb; the catalog grows without adding capability.
64
+ - **Option B (sub-sub)** would be the first two-level dispatcher in
65
+ the repo. Cost: contract change in `command-clusters.md`,
66
+ linter change in `lint_no_new_atomic_commands.py` (parse a second
67
+ column), pattern-checker change in `check_cluster_patterns.py`
68
+ (allow nested dispatch sections), plus an ADR to set the precedent
69
+ — for a cohesion benefit that Option D delivers at zero
70
+ architectural cost.
71
+ - **Option C (no verb)** breaks symmetry: `/roadmap:create` is a
72
+ verb, `/roadmap:phase` is a scope. The mental model becomes
73
+ inconsistent in the same cluster.
74
+ - **Option D (composite verb-scope)** keeps the cluster flat, keeps
75
+ the verb visible, costs nothing in the linter or contract
76
+ parser (one row, four sub-names, kebab-case as before), and
77
+ scales to any future verb+scope cluster.
78
+
79
+ The colon form was already canonical for flag-clusters
80
+ (`/commit:in-chunks`, `/create-pr:description-only`). Promoting it
81
+ to the canonical form for dispatcher-clusters too unifies the
82
+ catalog: every sub-command is a single token.
83
+
84
+ ## Consequences
85
+
86
+ - **Pro:** Zero architectural cost. The locked contract, both
87
+ linters, the dispatcher pattern checker, and the routing rule all
88
+ keep working unchanged. The cluster row in
89
+ `docs/contracts/command-clusters.md` extends with three new
90
+ sub-names.
91
+ - **Pro:** Single-token autocompletion across the entire command
92
+ surface. Greppable in chat history and logs.
93
+ - **Pro:** Domain cohesion — `/roadmap:*` covers the full
94
+ authoring + execution lifecycle.
95
+ - **Con:** Sub-names get longer when the verb is non-obvious from the
96
+ cluster. `/roadmap:process-phase` is 24 chars vs.
97
+ `/roadmap-process:phase` (Option A, 23 chars) or
98
+ `/roadmap:phase` (Option C, 16 chars). Acceptable trade for
99
+ symmetry and zero contract churn.
100
+ - **Con:** A cluster cannot grow into a true two-level surface
101
+ without revisiting this ADR. Rolling back to Option B is the
102
+ escape hatch if a future cluster genuinely needs nested verbs.
103
+
104
+ ## Rollback
105
+
106
+ If a future cluster grows past ~8 sibling sub-commands and the
107
+ composite-name pattern produces ambiguous or unreadable
108
+ sub-commands, revisit by:
109
+
110
+ 1. Splitting the cluster into two flat clusters (Option A on a
111
+ case-by-case basis), or
112
+ 2. Introducing sub-sub-commands as a deliberate contract change —
113
+ updating `command-clusters.md`, `lint_no_new_atomic_commands.py`,
114
+ `check_cluster_patterns.py`, and superseding this ADR.
115
+
116
+ Both moves are reversible. This ADR locks the default, not the
117
+ ceiling.
118
+
119
+ ## See also
120
+
121
+ - [`docs/contracts/command-clusters.md`](../contracts/command-clusters.md)
122
+ — locked cluster set + sub-command naming contract.
123
+ - [`.agent-src.uncompressed/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md`](../../.agent-src.uncompressed/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md)
124
+ — runtime routing semantics and the colon-canonical rule.
125
+ - [`.agent-src.uncompressed/contexts/execution/roadmap-process-loop.md`](../../.agent-src.uncompressed/contexts/execution/roadmap-process-loop.md)
126
+ — the shared mechanics that motivated the cluster shape.
@@ -115,7 +115,7 @@ Your agent is now:
115
115
  - **Respecting your codebase** — no conflicting patterns
116
116
  - **Following standards** — consistent code quality
117
117
 
118
- This is enforced automatically by 58 rules. No configuration needed.
118
+ This is enforced automatically by 59 rules. No configuration needed.
119
119
 
120
120
  ---
121
121
 
@@ -41,7 +41,7 @@ source: package
41
41
  | Pattern | When | Examples |
42
42
  |---|---|---|
43
43
  | `{verb}-{target}` | Action commands | `create-pr`, `fix-ci`, `commit` |
44
- | `{target}-{verb}` | Target-first grouping | `roadmap-create`, `roadmap-execute` |
44
+ | `{target}-{verb}` | Target-first grouping | `roadmap-create` (legacy atomic; current cluster form is `/roadmap:create` and `/roadmap:process-step|phase|full`) |
45
45
  | `{scope}-{action}` | Scoped actions | `optimize-agents`, `review-changes` |
46
46
 
47
47
  ### Guidelines
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@event4u/agent-config",
3
- "version": "1.21.0",
3
+ "version": "1.22.0",
4
4
  "description": "Shared agent configuration \u2014 skills, rules, commands, guidelines, and templates for AI coding tools",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -25,7 +25,7 @@ PHASE2_SHIMS: list[tuple[str, str]] = [
25
25
  ("propose-memory", "memory propose"),
26
26
  # roadmap cluster
27
27
  ("roadmap-create", "roadmap create"),
28
- ("roadmap-execute", "roadmap execute"),
28
+ ("roadmap-execute", "roadmap process-phase"),
29
29
  # module cluster
30
30
  ("module-create", "module create"),
31
31
  ("module-explore", "module explore"),