@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.
Files changed (130) hide show
  1. package/.agent-src/commands/agents/cleanup.md +31 -17
  2. package/.agent-src/commands/bug-fix.md +1 -0
  3. package/.agent-src/commands/bug-investigate.md +1 -0
  4. package/.agent-src/commands/challenge-me/vision.md +348 -0
  5. package/.agent-src/commands/challenge-me/with-docs.md +333 -0
  6. package/.agent-src/commands/challenge-me.md +61 -0
  7. package/.agent-src/commands/commit/in-chunks.md +30 -10
  8. package/.agent-src/commands/commit.md +46 -6
  9. package/.agent-src/commands/compress.md +19 -13
  10. package/.agent-src/commands/cost-report.md +120 -0
  11. package/.agent-src/commands/council/default.md +64 -17
  12. package/.agent-src/commands/create-pr/description-only.md +8 -0
  13. package/.agent-src/commands/create-pr.md +99 -80
  14. package/.agent-src/commands/feature/plan.md +13 -7
  15. package/.agent-src/commands/grill-me.md +38 -0
  16. package/.agent-src/commands/judge/steps.md +1 -1
  17. package/.agent-src/commands/memory/add.md +16 -8
  18. package/.agent-src/commands/memory/promote.md +17 -9
  19. package/.agent-src/commands/optimize/rtk.md +16 -11
  20. package/.agent-src/commands/prepare-for-review.md +12 -6
  21. package/.agent-src/commands/project-analyze.md +31 -20
  22. package/.agent-src/commands/review-changes.md +24 -15
  23. package/.agent-src/commands/roadmap/ai-council.md +183 -0
  24. package/.agent-src/commands/roadmap/create.md +20 -10
  25. package/.agent-src/commands/roadmap/process-full.md +58 -0
  26. package/.agent-src/commands/roadmap/process-phase.md +69 -0
  27. package/.agent-src/commands/roadmap/process-step.md +57 -0
  28. package/.agent-src/commands/roadmap.md +44 -16
  29. package/.agent-src/commands/threat-model.md +1 -0
  30. package/.agent-src/contexts/augment-infrastructure.md +1 -1
  31. package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +53 -18
  32. package/.agent-src/contexts/contracts/frugality-charter.md +57 -0
  33. package/.agent-src/contexts/execution/roadmap-process-loop.md +125 -0
  34. package/.agent-src/contexts/skills-and-commands.md +1 -1
  35. package/.agent-src/rules/architecture.md +9 -0
  36. package/.agent-src/rules/ask-when-uncertain.md +3 -13
  37. package/.agent-src/rules/caveman-speak.md +78 -0
  38. package/.agent-src/rules/direct-answers.md +5 -14
  39. package/.agent-src/rules/improve-before-implement.md +1 -0
  40. package/.agent-src/rules/invite-challenge.md +71 -0
  41. package/.agent-src/rules/markdown-safe-codeblocks.md +6 -7
  42. package/.agent-src/rules/no-cheap-questions.md +4 -14
  43. package/.agent-src/rules/token-efficiency.md +5 -7
  44. package/.agent-src/skills/adr-create/SKILL.md +197 -0
  45. package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
  46. package/.agent-src/skills/agent-docs-writing/SKILL.md +23 -1
  47. package/.agent-src/skills/ai-council/SKILL.md +132 -8
  48. package/.agent-src/skills/bug-analyzer/SKILL.md +1 -0
  49. package/.agent-src/skills/command-writing/SKILL.md +23 -0
  50. package/.agent-src/skills/context-authoring/SKILL.md +23 -0
  51. package/.agent-src/skills/conventional-commits-writing/SKILL.md +23 -0
  52. package/.agent-src/skills/guideline-writing/SKILL.md +22 -0
  53. package/.agent-src/skills/persona-writing/SKILL.md +153 -0
  54. package/.agent-src/skills/readme-writing/SKILL.md +20 -0
  55. package/.agent-src/skills/readme-writing-package/SKILL.md +19 -0
  56. package/.agent-src/skills/roadmap-management/SKILL.md +7 -7
  57. package/.agent-src/skills/roadmap-writing/SKILL.md +157 -0
  58. package/.agent-src/skills/rule-writing/SKILL.md +22 -0
  59. package/.agent-src/skills/script-writing/SKILL.md +226 -0
  60. package/.agent-src/skills/skill-writing/SKILL.md +23 -0
  61. package/.agent-src/skills/systematic-debugging/SKILL.md +22 -2
  62. package/.agent-src/skills/technical-specification/SKILL.md +58 -1
  63. package/.agent-src/skills/test-driven-development/SKILL.md +24 -0
  64. package/.agent-src/skills/threat-modeling/SKILL.md +1 -0
  65. package/.agent-src/templates/agent-settings.md +87 -3
  66. package/.agent-src/templates/command.md +30 -9
  67. package/.agent-src/templates/roadmaps.md +10 -2
  68. package/.agent-src/templates/rule.md +8 -0
  69. package/.agent-src/templates/skill.md +49 -0
  70. package/.claude-plugin/marketplace.json +14 -2
  71. package/AGENTS.md +3 -3
  72. package/CHANGELOG.md +73 -0
  73. package/README.md +5 -5
  74. package/config/agent-settings.template.yml +22 -0
  75. package/docs/architecture.md +4 -4
  76. package/docs/contracts/command-clusters.md +45 -1
  77. package/docs/customization.md +72 -0
  78. package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +126 -0
  79. package/docs/decisions/INDEX.md +15 -0
  80. package/docs/getting-started.md +2 -2
  81. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +27 -19
  82. package/docs/guidelines/agent-infra/carve-out-predicates.md +17 -0
  83. package/docs/guidelines/agent-infra/mcp-request-signing.md +199 -0
  84. package/docs/guidelines/agent-infra/naming.md +1 -1
  85. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +11 -4
  86. package/package.json +1 -1
  87. package/scripts/_lib/__init__.py +5 -0
  88. package/scripts/_lib/script_output.py +140 -0
  89. package/scripts/_phase2_shim_helper.py +1 -1
  90. package/scripts/adr/regenerate_index.py +79 -0
  91. package/scripts/ai_council/one_off_archive/2026-05/_one_off_add_quiet.py +149 -0
  92. package/scripts/ai_council/one_off_archive/2026-05/_one_off_inject_quiet_flag.py +33 -0
  93. package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_v2.sh +36 -0
  94. package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_verbosity.sh +26 -0
  95. package/scripts/ai_council/one_off_archive/2026-05/_one_off_per_task.sh +41 -0
  96. package/scripts/ai_council/one_off_archive/2026-05/_one_off_silent_taskfiles.py +98 -0
  97. package/scripts/check_augmentignore.py +4 -1
  98. package/scripts/check_command_count_messaging.py +4 -1
  99. package/scripts/check_compressed_paths.py +4 -1
  100. package/scripts/check_council_layout.py +4 -1
  101. package/scripts/check_council_references.py +4 -1
  102. package/scripts/check_iron_law_prominence.py +3 -1
  103. package/scripts/check_md_language.py +3 -1
  104. package/scripts/check_memory_proposal.py +3 -1
  105. package/scripts/check_public_catalog_links.py +4 -1
  106. package/scripts/check_reply_consistency.py +8 -2
  107. package/scripts/check_roadmap_trackable.py +4 -1
  108. package/scripts/compile_router.py +27 -0
  109. package/scripts/compress.py +33 -19
  110. package/scripts/cost/budget.mjs +152 -0
  111. package/scripts/cost/track.mjs +144 -0
  112. package/scripts/council_cli.py +127 -10
  113. package/scripts/first-run.sh +3 -9
  114. package/scripts/install-hooks.sh +19 -1
  115. package/scripts/install.py +17 -12
  116. package/scripts/install.sh +19 -8
  117. package/scripts/lint_examples.py +6 -2
  118. package/scripts/lint_handoffs.py +4 -1
  119. package/scripts/lint_load_context.py +4 -1
  120. package/scripts/lint_roadmap_complexity.py +6 -2
  121. package/scripts/lint_rule_interactions.py +4 -1
  122. package/scripts/lint_rule_tiers.py +4 -1
  123. package/scripts/measure_frugality_savings.py +164 -0
  124. package/scripts/migrate_command_suggestions.py +2 -2
  125. package/scripts/runtime_dispatcher.py +11 -0
  126. package/scripts/schemas/command.schema.json +5 -0
  127. package/scripts/schemas/rule.schema.json +5 -0
  128. package/scripts/schemas/skill.schema.json +5 -0
  129. package/scripts/skill_linter.py +208 -3
  130. package/.agent-src/commands/roadmap/execute.md +0 -109
@@ -295,6 +295,29 @@ utility libs, or simple state managers.
295
295
  * Renaming a heading to "Procedure:" without numbered steps or `###` sub-headings
296
296
  * **Always run `python3 scripts/skill_linter.py` before saving — 0 FAIL required**
297
297
 
298
+ ## Frugality Standards
299
+
300
+ Apply the [Frugality Charter](../../contexts/contracts/frugality-charter.md)
301
+ to every skill you author.
302
+
303
+ **Examples in this artifact:**
304
+ - Per the charter's default-terse rule, the SKILL.md `## Procedure`
305
+ opens with the action ("Run the linter"), not "Let me walk you
306
+ through…".
307
+ - Per the cheap-question check, only emit numbered-options output
308
+ when consequences differ — never as a stylistic choice.
309
+ - Per the post-action summary suppression, the example output ships
310
+ the artifact, not a wrapping `## Status` / `## Summary` block.
311
+
312
+ **Pre-save self-check:**
313
+ 1. Does any procedure step open with "Let me", "Now I will", "Found
314
+ it", "OK", or "Alright"?
315
+ 2. Does the skill prescribe numbered-options output without a real
316
+ consequence trade-off?
317
+ 3. Does the example output include a post-action summary block?
318
+ 4. Does the description carry filler ("comprehensive", "advanced",
319
+ "powerful")?
320
+
298
321
  ## Do NOT
299
322
 
300
323
  * Write documentation-style, pointer-only, or too-broad skills ("Laravel skill")
@@ -2,6 +2,7 @@
2
2
  name: systematic-debugging
3
3
  description: "Use when hitting a bug, test failure, crash, or unexpected behavior — enforces reproduce → isolate → hypothesize → verify before any fix — even when the user just says 'this is broken' or 'quick fix'."
4
4
  source: package
5
+ council_depth: deep
5
6
  ---
6
7
 
7
8
  # systematic-debugging
@@ -35,10 +36,28 @@ papers over an unknown cause is a regression waiting to happen.
35
36
 
36
37
  ```
37
38
  NO FIX WITHOUT ROOT CAUSE. NO ROOT CAUSE WITHOUT EVIDENCE.
39
+ NO BUG MARKED FIXED WITHOUT A REGRESSION TEST.
38
40
  ```
39
41
 
40
42
  "I think it's probably X" is not evidence. A log line, a stack trace, a
41
- diff, a reproduced failure — those are evidence.
43
+ diff, a reproduced failure — those are evidence. A green run after a
44
+ manual edit is not a regression test — a test that fails without the fix
45
+ and passes with it, is.
46
+
47
+ ## The 6-phase loop (the spine)
48
+
49
+ Every debug session walks these six phases in order. Treat them as a
50
+ checklist — tick each box before claiming the bug fixed:
51
+
52
+ - [ ] **1. Reproduce** — bug triggers on demand, smallest possible setup _(Phase 1)_
53
+ - [ ] **2. Minimize** — smallest failing case isolated, irrelevant context stripped _(Phase 1, step 2)_
54
+ - [ ] **3. Hypothesize** — one testable theory stated in one sentence _(Phase 3)_
55
+ - [ ] **4. Instrument** — log / breakpoint / trace at the boundary where expected ≠ actual _(Phase 2)_
56
+ - [ ] **5. Fix** — single, minimal change targeting the root cause _(Phase 4, step 2)_
57
+ - [ ] **6. Regression-test** — failing test added that catches the bug returning **(MANDATORY — no exception)** _(Phase 4, step 1 + Validation checklist)_
58
+
59
+ Skipping a box (especially #2 or #6) is the single biggest cause of
60
+ wasted debug time and re-opened bugs.
42
61
 
43
62
  ## Procedure
44
63
 
@@ -242,10 +261,11 @@ When reporting debug findings to the user:
242
261
 
243
262
  Before declaring a bug fixed:
244
263
 
264
+ * [ ] **6-phase loop** — all six boxes (Reproduce → Minimize → Hypothesize → Instrument → Fix → Regression-test) ticked
245
265
  * [ ] The failure was reproduced before any code changed
246
266
  * [ ] The root cause is named explicitly, not "probably"
247
267
  * [ ] Evidence (log, trace, diff) supports the named root cause
248
- * [ ] A failing test reproducing the bug was added or updated
268
+ * [ ] **Regression test added — MANDATORY**: a test that fails without the fix and passes with it. No exception. "Manual reproduction confirmed gone" is not a regression test
249
269
  * [ ] The fix is minimal and targets the root cause, not the symptom
250
270
  * [ ] The regression test now passes
251
271
  * [ ] Adjacent tests still pass
@@ -1,7 +1,8 @@
1
1
  ---
2
2
  name: technical-specification
3
- description: "Use when the user says "write a spec", "create RFC", or "document this decision". Writes technical specifications, RFCs, and ADRs with clear structure."
3
+ description: "Use when the user says "write a spec", "create RFC", "write a PRD", or "document this decision". Writes technical specifications, PRDs, RFCs, and ADRs with clear structure."
4
4
  source: package
5
+ council_depth: deep
5
6
  ---
6
7
 
7
8
  # technical-specification
@@ -10,6 +11,7 @@ source: package
10
11
 
11
12
  Use this skill when:
12
13
  - Writing a technical specification for a new feature or system
14
+ - Writing a Product Requirements Document (PRD) when user pain leads and solution shape follows
13
15
  - Creating an architecture decision record (ADR)
14
16
  - Documenting a technical RFC (Request for Comments)
15
17
  - Planning a significant technical change that needs team review
@@ -69,6 +71,59 @@ For complex features or systems. Stored in `agents/features/` or module `agents/
69
71
  - {Links to related docs, tickets, or external resources}
70
72
  ```
71
73
 
74
+ ### Product Requirements Document (PRD)
75
+
76
+ For features whose **shape is product-driven** rather than implementation-driven —
77
+ when "what users get" matters more than "how the code is wired". Use a PRD
78
+ when a Technical Specification would over-index on internals and under-index
79
+ on user value. Stored in `agents/features/` next to the technical spec when
80
+ both exist.
81
+
82
+ ```markdown
83
+ # PRD: {Title}
84
+
85
+ ## Status
86
+ { Draft | In Review | Approved | Shipped | Parked }
87
+
88
+ ## Problem
89
+ {The user-visible pain. One paragraph. Cite evidence — support tickets,
90
+ analytics, user quotes — not assumptions.}
91
+
92
+ ## Success Criteria
93
+ - {Measurable outcome with a number and a timeframe}
94
+ - {Another measurable outcome}
95
+
96
+ ## Non-Goals
97
+ - {What this PRD explicitly does NOT cover — protect scope}
98
+
99
+ ## User Stories
100
+ - As a {role}, I want to {action}, so that {outcome}.
101
+ - As a {role}, I want to {action}, so that {outcome}.
102
+
103
+ ## Major Modules
104
+ {The 3-7 functional building blocks the feature decomposes into. One
105
+ sentence each — what it does, not how. Implementation lives in the
106
+ technical spec, not here.}
107
+
108
+ - **{Module name}** — {one-sentence responsibility}
109
+ - **{Module name}** — {one-sentence responsibility}
110
+
111
+ ## Open Questions
112
+ - [ ] {Unresolved product question — pricing, permission, copy, edge case}
113
+
114
+ ## References
115
+ - {Links to research, related PRDs, technical spec when it exists}
116
+ ```
117
+
118
+ **PRD vs Technical Specification — when to pick which:**
119
+
120
+ - **PRD first** when the user pain is clear but the solution shape is not
121
+ ("users can't share dashboards" → PRD scopes the problem; spec follows).
122
+ - **Spec first** when the solution shape is clear but the implementation
123
+ is non-trivial ("rebuild auth on OAuth2" → spec leads; PRD often skipped).
124
+ - **Both** when the feature is large enough that product and engineering
125
+ decisions belong in different artifacts.
126
+
72
127
  ### Architecture Decision Record (ADR)
73
128
 
74
129
  For significant technical decisions. Stored in `agents/decisions/`.
@@ -161,6 +216,8 @@ If a developer reads only this document, they should be able to build it.
161
216
  ## Auto-trigger keywords
162
217
 
163
218
  - technical spec
219
+ - PRD
220
+ - product requirements
164
221
  - RFC
165
222
  - ADR
166
223
  - architecture decision
@@ -27,6 +27,30 @@ Do NOT use when:
27
27
  * Catch edge cases **before** they become production bugs.
28
28
  * Leave every change with a regression test that runs in CI.
29
29
 
30
+ ## Escalate to a SPARC-style 5-phase workflow when
31
+
32
+ Plain TDD (red → green → refactor) is the right size for **most** work.
33
+ A small subset benefits from a gated 5-phase wrapper —
34
+ **S**pec → **P**seudocode → **A**rchitecture → **R**efine → **C**omplete —
35
+ where each gate produces a written artifact before the next phase runs.
36
+
37
+ Decision tree — escalate if **any** branch is true:
38
+
39
+ * The ticket has **AC count > 5** (the spec itself is non-trivial — write
40
+ it down before testing it).
41
+ * The change **modifies a contract** consumed by ≥1 other module
42
+ (public API signature, persisted schema, event payload, queue message).
43
+ * The change cuts across **≥3 modules / bounded contexts** at once.
44
+
45
+ When escalating: drop the `Spec` artifact in `agents/roadmaps/` (or the
46
+ project's planning location), capture it as an ADR via [`adr-create`](../adr-create/SKILL.md)
47
+ when the decision is load-bearing, then run plain TDD inside each
48
+ `Refine` cycle. Do **not** skip RED→GREEN inside a SPARC phase — the
49
+ wrapper adds gates, not exemptions.
50
+
51
+ For everything else (single-AC ticket, leaf-module change, bug fix),
52
+ stay on plain TDD — the section above.
53
+
30
54
  ## The core discipline
31
55
 
32
56
  ```
@@ -2,6 +2,7 @@
2
2
  name: threat-modeling
3
3
  description: "Use when adding auth, webhooks, uploads, queues, secrets, tenant boundaries, or public endpoints — produces trust boundaries + abuse cases mapped to files, BEFORE implementation."
4
4
  source: package
5
+ council_depth: deep
5
6
  ---
6
7
 
7
8
  # threat-modeling
@@ -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,
@@ -301,6 +311,69 @@ commands:
301
311
  # repo (gitignored). Maintainer-targeted feature; consumers leave it
302
312
  # off. See `.augment/contexts/contracts/artifact-engagement-flow.md`
303
313
  # (once Phase 3 of road-to-artifact-engagement-telemetry lands).
314
+ # --- Verbosity (token frugality) ---
315
+ #
316
+ # Five toggles controlling what the agent shows after acting.
317
+ # Default = terse. Flip to true to restore legacy verbose output.
318
+ # See agents/roadmaps/road-to-token-frugality.md for the full rationale
319
+ # and the contexts/contracts/frugality-charter.md for the writer-side
320
+ # standard.
321
+ verbosity:
322
+ # Show generated commit messages, PR titles/bodies, branch names
323
+ # before acting. false = use generated content directly.
324
+ preview_artifacts: false
325
+
326
+ # Confirmation prompts for routine workflow steps when there is
327
+ # one obvious answer ("looks good — commit?"). Iron-Law gates
328
+ # (commit-policy, scope-control git-ops, non-destructive) ALWAYS
329
+ # ask regardless of this flag.
330
+ routine_confirmations: false
331
+
332
+ # Offer "run AI Council on this?" inside delivery commands
333
+ # (/feature-plan, /review-changes, /roadmap-create). Council
334
+ # commands themselves (/council, /create-pr → already excluded)
335
+ # are unaffected.
336
+ offer_council_in_delivery: false
337
+
338
+ # Multi-line status / summary blocks after a successful action.
339
+ # off | minimal | full — default minimal (one-line confirmation).
340
+ post_action_reports: minimal
341
+
342
+ # Intent announcements ("Let me check…", "Now I will…", "Found
343
+ # it") in skill bodies. false = act and emit the result.
344
+ intent_announcements: false
345
+
346
+ # Script stdout chatter from `scripts/*.py`, `scripts/*.sh`, and
347
+ # `.augment/scripts/`. Read by the helper module
348
+ # `scripts/_lib/script_output.py`.
349
+ # silent = stderr only; success = no output
350
+ # minimal = one summary line per script (default)
351
+ # verbose = pre-Phase-10 behaviour (per-step prints)
352
+ # Override per-process: AGENT_SCRIPT_VERBOSITY={silent,minimal,verbose}
353
+ # Iron-Law surfaces (release confirms, install secrets prompts,
354
+ # error markers) ignore this key and stay loud.
355
+ script_output: minimal
356
+
357
+ # Suppress the `task: [name] cmd...` echo line that Taskfile prints
358
+ # before each task body. false = keep echoes (default Taskfile
359
+ # behaviour). true = the Taskfile sets `silent: true` on every
360
+ # safe task per Phase 10.3.
361
+ taskfile_command_echo: false
362
+
363
+ # --- Caveman speak (authoring-only) ---
364
+ #
365
+ # Caveman-style compression scope for newly authored prose. The
366
+ # compile-time toggle (`caveman.speak`) is added in Phase 8.
367
+ # `speak_scope` lands now so the charter and consumers can pin it.
368
+ caveman:
369
+ # speak_scope = how widely caveman-speak grammar applies in chat
370
+ # off = no caveman grammar in output (compile-time still
371
+ # governed by caveman.speak)
372
+ # prose_only = caveman in body prose; numbered options +
373
+ # Iron-Law-literal blocks stay full prose
374
+ # aggressive = caveman everywhere except Iron-Law literals
375
+ speak_scope: prose_only
376
+
304
377
  telemetry:
305
378
  artifact_engagement:
306
379
  # Master switch. `false` (default) produces zero file IO and zero
@@ -332,6 +405,10 @@ Personal and project-level settings (initial file written by
332
405
  **Key paths use dot-notation** to denote nesting: `personal.user_name`
333
406
  lives under `personal:` in YAML.
334
407
 
408
+ The `verbosity.*` and `caveman.speak_scope` rows are summarized below;
409
+ the canonical narrative lives in
410
+ [`docs/customization.md` § Verbosity](../../docs/customization.md#verbosity).
411
+
335
412
  | Key path | Values | Default | Description |
336
413
  |---|---|---|---|
337
414
  | `cost_profile` | `minimal`, `balanced`, `full`, `custom` | `minimal` | Selects which agent surfaces are active. See [Cost profiles](#cost-profiles). |
@@ -361,7 +438,7 @@ lives under `personal:` in YAML.
361
438
  | `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
439
  | `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
440
  | `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. |
441
+ | `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
442
  | `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
443
  | `subagents.judge_model` | model alias or empty | _(empty)_ | Model for judge subagents. Empty = one tier above implementer (opus if sonnet, sonnet if haiku). |
367
444
  | `subagents.max_parallel` | integer | `3` | Maximum parallel subagent invocations. `1` serializes. |
@@ -375,6 +452,13 @@ lives under `personal:` in YAML.
375
452
  | `commands.suggestion.cooldown_seconds` | integer | `600` | Cooldown between re-suggestions of the same `(command, evidence)` pair. `600` = 10m. |
376
453
  | `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
454
  | `commands.suggestion.blocklist` | list of command names | `[]` | Commands that never appear as a suggestion. They still work when typed explicitly. |
455
+ | `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. |
456
+ | `verbosity.preview_artifacts` | `true`, `false` | `false` | Show generated commit messages, PR titles/bodies, branch names before acting. `false` = use generated content directly. See [`road-to-token-frugality`](../../../agents/roadmaps/road-to-token-frugality.md) Phase 2/3. |
457
+ | `verbosity.routine_confirmations` | `true`, `false` | `false` | Confirmation prompts for routine workflow steps when there is one obvious answer ("looks good — commit?"). Iron-Law gates (`commit-policy`, `scope-control` git-ops, `non-destructive-by-default`) ALWAYS ask regardless. |
458
+ | `verbosity.offer_council_in_delivery` | `true`, `false` | `false` | Offer "run AI Council on this?" inside delivery commands (`/feature-plan`, `/review-changes`, `/roadmap-create`). Council commands themselves are unaffected. |
459
+ | `verbosity.post_action_reports` | `off`, `minimal`, `full` | `minimal` | Multi-line status / summary blocks after a successful action. `off` = no report; `minimal` = one-line confirmation; `full` = bullet list. |
460
+ | `verbosity.intent_announcements` | `true`, `false` | `false` | Intent announcements ("Let me check…", "Now I will…", "Found it") in skill bodies. `false` = act and emit the result. |
461
+ | `caveman.speak_scope` | `off`, `prose_only`, `aggressive` | `prose_only` | How widely caveman-speak grammar applies in chat. `off` = no caveman grammar; `prose_only` = caveman in body prose, numbered options + Iron-Law-literal blocks stay full prose; `aggressive` = caveman everywhere except Iron-Law literals. Compile-time toggle (`caveman.speak`) lands in Phase 8. |
378
462
  | `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
463
  | `telemetry.artifact_engagement.granularity` | `task`, `phase-step`, `tool-call` | `task` | Boundary at which events are recorded. `tool-call` is expensive — opt-in only. |
380
464
  | `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}
@@ -51,16 +67,21 @@ skills: [{optional-skill-1}, {optional-skill-2}]
51
67
 
52
68
  ### N. Present findings
53
69
 
54
- <!-- For audit/analysis commands: always present findings before applying changes.
55
- For action commands: show summary of what was done. -->
70
+ <!-- For audit/analysis commands: state findings, then act or hand back.
71
+ For action commands: state what was done.
56
72
 
57
- Ask the user:
73
+ Default-terse per the
74
+ [Frugality Charter](../contexts/contracts/frugality-charter.md):
75
+ no preview-then-confirm pair, no "Ready to proceed?" gate, no
76
+ numbered options unless options differ in *consequence* (per
77
+ `no-cheap-questions § Pre-Send Self-Check`). Routine confirmations
78
+ are governed by `verbosity.routine_confirmations: false` (default).
58
79
 
59
- ```
60
- > 1. {Option 1}
61
- > 2. {Option 2}
62
- > 3. Skip report only
63
- ```
80
+ Only emit a numbered-options block when ALL of:
81
+ 1. Two or more options carry distinct consequences (not sequencing/format),
82
+ 2. The user has not fenced the next step (per `scope-control § fenced step`),
83
+ 3. No option violates `commit-policy`, `scope-control § git-ops`,
84
+ or `non-destructive-by-default`. -->
64
85
 
65
86
  ## Rules
66
87
 
@@ -74,7 +95,7 @@ Ask the user:
74
95
 
75
96
  Before considering a command complete:
76
97
 
77
- - [ ] **Frontmatter**: has `name`, `description`, `disable-model-invocation: true`
98
+ - [ ] **Frontmatter**: has `name`, `description`, `disable-model-invocation: true`, `suggestion` block
78
99
  - [ ] **Steps**: numbered sub-headings (`### 1.`, `### 2.`, ...)
79
100
  - [ ] **Source of truth**: works on `.agent-src.uncompressed/`, not `.agent-src/` or `.augment/`
80
101
  - [ ] **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:
@@ -84,6 +85,12 @@ routes_to:
84
85
 
85
86
  # {Rule Title}
86
87
 
88
+ <!-- Default-terse per the
89
+ [Frugality Charter](../contexts/contracts/frugality-charter.md):
90
+ start with the obligation. No "This rule explains…" / "The purpose of
91
+ this rule is…" / narrative intro before the Iron Law. Body sections
92
+ are pointers, not playbooks — defer detail to skills/guidelines. -->
93
+
87
94
  **Iron Law.** {The single non-negotiable behavior the rule enforces.}
88
95
 
89
96
  ## When this fires
@@ -119,6 +126,7 @@ for full detail; rules are pointers, not playbooks.}
119
126
  | `triggers` | no | Required on non-kernel rules per `rule-router.md`. |
120
127
  | `routes_to` | no | `skill:`, `guideline:`, `command:`, `contract:` targets. Forbidden on kernel rules. |
121
128
  | `alwaysApply` | no | Cursor/Cline sidecar — by convention `true` for `type: always`. |
129
+ | `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
130
 
123
131
  ## Size budget
124
132
 
@@ -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"
@@ -119,6 +136,38 @@ Do NOT use when:
119
136
  - Do NOT {anti-pattern 2}.
120
137
  - Do NOT {anti-pattern 3}.
121
138
 
139
+ <!-- FRUGALITY STANDARDS (writer skills only — REQUIRED for skills whose
140
+ name ends in `-writing`, `-authoring`, or `-create`, AND for any
141
+ skill on the `FRUGALITY_WRITER_SKILLS` allowlist in
142
+ `scripts/skill_linter.py`. Mid-/untiered non-writer skills MUST
143
+ remove this section entirely.
144
+
145
+ Layer-1 of the linter checks for:
146
+ 1. The literal H2 `## Frugality Standards`,
147
+ 2. A markdown link matching the regex
148
+ `\[[^\]]+\]\([^)]*frugality-charter\.md[^)]*\)`.
149
+
150
+ Body shape — single charter cite, then 3–5 decidable pre-save
151
+ questions framed as *applying the charter*, not parallel rules
152
+ (council Pass #4 finding 0.B):
153
+
154
+ ## Frugality Standards
155
+
156
+ Per the [Frugality Charter](../../contexts/contracts/frugality-charter.md),
157
+ this writer applies the default-terse standard: no narrative intros,
158
+ no preview-then-confirm gates, no numbered options without a real
159
+ trade-off.
160
+
161
+ Pre-save self-check:
162
+ 1. Does every body section start with the obligation, not an intro?
163
+ 2. Are numbered options absent unless options differ in *consequence*?
164
+ 3. Is every cited rule linked, not restated?
165
+ 4. {artifact-specific question — e.g., for `command-writing`:
166
+ "Does the command honor `verbosity.routine_confirmations: false`?"}
167
+ 5. {artifact-specific question — e.g., for `rule-writing`:
168
+ "Does the rule body open with the Iron Law, no preamble?"}
169
+ -->
170
+
122
171
  <!-- SENIOR-TIER STUB BLOCKS (delete entire section if not `tier: senior`):
123
172
  Senior-tier skills (frontmatter `tier: senior`) require four extra
124
173
  blocks per `.agent-src.uncompressed/rules/skill-quality.md` §
@@ -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.23.0"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -15,6 +15,7 @@
15
15
  "source": "./",
16
16
  "strict": false,
17
17
  "skills": [
18
+ "./.claude/skills/adr-create",
18
19
  "./.claude/skills/adversarial-review",
19
20
  "./.claude/skills/agent-docs-writing",
20
21
  "./.claude/skills/agent-handoff",
@@ -42,6 +43,9 @@
42
43
  "./.claude/skills/chat-history-import",
43
44
  "./.claude/skills/chat-history-learn",
44
45
  "./.claude/skills/chat-history-show",
46
+ "./.claude/skills/challenge-me",
47
+ "./.claude/skills/challenge-me-vision",
48
+ "./.claude/skills/challenge-me-with-docs",
45
49
  "./.claude/skills/check-current-md",
46
50
  "./.claude/skills/check-refs",
47
51
  "./.claude/skills/code-refactoring",
@@ -58,6 +62,7 @@
58
62
  "./.claude/skills/context-document",
59
63
  "./.claude/skills/context-refactor",
60
64
  "./.claude/skills/conventional-commits-writing",
65
+ "./.claude/skills/cost-report",
61
66
  "./.claude/skills/copilot-agents",
62
67
  "./.claude/skills/copilot-agents-init",
63
68
  "./.claude/skills/copilot-agents-optimization",
@@ -109,6 +114,7 @@
109
114
  "./.claude/skills/git-workflow",
110
115
  "./.claude/skills/github-ci",
111
116
  "./.claude/skills/grafana",
117
+ "./.claude/skills/grill-me",
112
118
  "./.claude/skills/guideline-writing",
113
119
  "./.claude/skills/implement-ticket",
114
120
  "./.claude/skills/jira-integration",
@@ -168,6 +174,7 @@
168
174
  "./.claude/skills/package-test",
169
175
  "./.claude/skills/performance",
170
176
  "./.claude/skills/performance-analysis",
177
+ "./.claude/skills/persona-writing",
171
178
  "./.claude/skills/pest-testing",
172
179
  "./.claude/skills/php-coder",
173
180
  "./.claude/skills/php-debugging",
@@ -201,12 +208,17 @@
201
208
  "./.claude/skills/review-routing",
202
209
  "./.claude/skills/rice-prioritization",
203
210
  "./.claude/skills/roadmap",
211
+ "./.claude/skills/roadmap-ai-council",
204
212
  "./.claude/skills/roadmap-create",
205
- "./.claude/skills/roadmap-execute",
206
213
  "./.claude/skills/roadmap-management",
214
+ "./.claude/skills/roadmap-process-full",
215
+ "./.claude/skills/roadmap-process-phase",
216
+ "./.claude/skills/roadmap-process-step",
217
+ "./.claude/skills/roadmap-writing",
207
218
  "./.claude/skills/rtk-output-filtering",
208
219
  "./.claude/skills/rule-compliance-audit",
209
220
  "./.claude/skills/rule-writing",
221
+ "./.claude/skills/script-writing",
210
222
  "./.claude/skills/security",
211
223
  "./.claude/skills/security-audit",
212
224
  "./.claude/skills/sentry-integration",
package/AGENTS.md CHANGED
@@ -167,9 +167,9 @@ appends to `agents/.rule-budget-history.jsonl`.
167
167
 
168
168
  ```
169
169
  .agent-src.uncompressed/ ← edit here
170
- skills/ (136 skills)
171
- rules/ (58 rules)
172
- commands/ (95 commands)
170
+ skills/ (140 skills)
171
+ rules/ (60 rules)
172
+ commands/ (103 commands)
173
173
  personas/ (7 personas)
174
174
  templates/ (AGENTS.md, copilot-instructions.md, skill.md, …)
175
175
  contexts/