@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.
- 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/council/default.md +64 -17
- package/.agent-src/commands/create-pr.md +7 -3
- package/.agent-src/commands/grill-me.md +38 -0
- package/.agent-src/commands/judge/steps.md +1 -1
- package/.agent-src/commands/roadmap/ai-council.md +183 -0
- package/.agent-src/commands/roadmap/create.md +6 -1
- 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/execution/roadmap-process-loop.md +125 -0
- package/.agent-src/contexts/skills-and-commands.md +1 -1
- package/.agent-src/rules/improve-before-implement.md +1 -0
- package/.agent-src/rules/invite-challenge.md +71 -0
- package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
- package/.agent-src/skills/ai-council/SKILL.md +132 -8
- package/.agent-src/skills/bug-analyzer/SKILL.md +1 -0
- package/.agent-src/skills/roadmap-management/SKILL.md +7 -7
- package/.agent-src/skills/systematic-debugging/SKILL.md +22 -2
- package/.agent-src/skills/technical-specification/SKILL.md +58 -1
- package/.agent-src/skills/threat-modeling/SKILL.md +1 -0
- package/.agent-src/templates/agent-settings.md +14 -3
- package/.agent-src/templates/command.md +17 -1
- package/.agent-src/templates/roadmaps.md +10 -2
- package/.agent-src/templates/rule.md +2 -0
- package/.agent-src/templates/skill.md +17 -0
- package/.claude-plugin/marketplace.json +9 -2
- package/AGENTS.md +2 -2
- package/CHANGELOG.md +38 -0
- package/README.md +1 -1
- package/config/agent-settings.template.yml +22 -0
- package/docs/architecture.md +2 -2
- package/docs/contracts/command-clusters.md +45 -1
- package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +126 -0
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/agent-infra/naming.md +1 -1
- package/package.json +1 -1
- package/scripts/_phase2_shim_helper.py +1 -1
- package/scripts/council_cli.py +127 -10
- package/scripts/migrate_command_suggestions.py +2 -2
- 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 +1 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
46
|
-
|
|
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.
|
|
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/ (
|
|
172
|
-
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>
|
|
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
|
package/docs/architecture.md
CHANGED
|
@@ -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** |
|
|
101
|
-
| **Commands** |
|
|
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` · `
|
|
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.
|
package/docs/getting-started.md
CHANGED
|
@@ -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
|
|
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
|
|
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
|
@@ -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
|
|
28
|
+
("roadmap-execute", "roadmap process-phase"),
|
|
29
29
|
# module cluster
|
|
30
30
|
("module-create", "module create"),
|
|
31
31
|
("module-explore", "module explore"),
|