@event4u/agent-config 1.22.0 → 1.24.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 (100) hide show
  1. package/.agent-src/commands/agents/cleanup.md +31 -17
  2. package/.agent-src/commands/analyze-reference-repo.md +3 -0
  3. package/.agent-src/commands/commit/in-chunks.md +30 -10
  4. package/.agent-src/commands/commit.md +46 -6
  5. package/.agent-src/commands/compress.md +19 -13
  6. package/.agent-src/commands/cost-report.md +120 -0
  7. package/.agent-src/commands/create-pr/description-only.md +8 -0
  8. package/.agent-src/commands/create-pr.md +95 -80
  9. package/.agent-src/commands/feature/plan.md +13 -7
  10. package/.agent-src/commands/memory/add.md +16 -8
  11. package/.agent-src/commands/memory/promote.md +17 -9
  12. package/.agent-src/commands/optimize/rtk.md +16 -11
  13. package/.agent-src/commands/prepare-for-review.md +12 -6
  14. package/.agent-src/commands/project-analyze.md +31 -20
  15. package/.agent-src/commands/review-changes.md +24 -15
  16. package/.agent-src/commands/roadmap/create.md +14 -9
  17. package/.agent-src/commands/roadmap/process-full.md +41 -1
  18. package/.agent-src/contexts/contracts/frugality-charter.md +57 -0
  19. package/.agent-src/contexts/execution/roadmap-process-loop.md +29 -6
  20. package/.agent-src/rules/architecture.md +9 -0
  21. package/.agent-src/rules/ask-when-uncertain.md +3 -13
  22. package/.agent-src/rules/caveman-speak.md +78 -0
  23. package/.agent-src/rules/direct-answers.md +5 -14
  24. package/.agent-src/rules/markdown-safe-codeblocks.md +6 -7
  25. package/.agent-src/rules/no-cheap-questions.md +4 -14
  26. package/.agent-src/rules/roadmap-progress-sync.md +37 -3
  27. package/.agent-src/rules/token-efficiency.md +5 -7
  28. package/.agent-src/skills/adr-create/SKILL.md +197 -0
  29. package/.agent-src/skills/agent-docs-writing/SKILL.md +23 -1
  30. package/.agent-src/skills/command-writing/SKILL.md +23 -0
  31. package/.agent-src/skills/context-authoring/SKILL.md +23 -0
  32. package/.agent-src/skills/conventional-commits-writing/SKILL.md +23 -0
  33. package/.agent-src/skills/guideline-writing/SKILL.md +22 -0
  34. package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +9 -0
  35. package/.agent-src/skills/markitdown/SKILL.md +239 -0
  36. package/.agent-src/skills/persona-writing/SKILL.md +153 -0
  37. package/.agent-src/skills/readme-writing/SKILL.md +20 -0
  38. package/.agent-src/skills/readme-writing-package/SKILL.md +19 -0
  39. package/.agent-src/skills/roadmap-writing/SKILL.md +157 -0
  40. package/.agent-src/skills/rule-writing/SKILL.md +22 -0
  41. package/.agent-src/skills/script-writing/SKILL.md +226 -0
  42. package/.agent-src/skills/skill-writing/SKILL.md +23 -0
  43. package/.agent-src/skills/test-driven-development/SKILL.md +24 -0
  44. package/.agent-src/skills/universal-project-analysis/SKILL.md +8 -0
  45. package/.agent-src/templates/agent-settings.md +73 -0
  46. package/.agent-src/templates/command.md +15 -10
  47. package/.agent-src/templates/rule.md +6 -0
  48. package/.agent-src/templates/skill.md +32 -0
  49. package/.claude-plugin/marketplace.json +10 -4
  50. package/AGENTS.md +14 -3
  51. package/CHANGELOG.md +61 -0
  52. package/README.md +5 -5
  53. package/docs/architecture.md +4 -4
  54. package/docs/catalog.md +25 -8
  55. package/docs/customization.md +72 -0
  56. package/docs/decisions/INDEX.md +15 -0
  57. package/docs/getting-started.md +2 -2
  58. package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +27 -19
  59. package/docs/guidelines/agent-infra/carve-out-predicates.md +17 -0
  60. package/docs/guidelines/agent-infra/mcp-request-signing.md +199 -0
  61. package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +11 -4
  62. package/package.json +1 -1
  63. package/scripts/_lib/__init__.py +5 -0
  64. package/scripts/_lib/script_output.py +140 -0
  65. package/scripts/adr/regenerate_index.py +79 -0
  66. package/scripts/ai_council/one_off_archive/2026-05/_one_off_add_quiet.py +149 -0
  67. package/scripts/ai_council/one_off_archive/2026-05/_one_off_inject_quiet_flag.py +33 -0
  68. package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_v2.sh +36 -0
  69. package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_verbosity.sh +26 -0
  70. package/scripts/ai_council/one_off_archive/2026-05/_one_off_per_task.sh +41 -0
  71. package/scripts/ai_council/one_off_archive/2026-05/_one_off_silent_taskfiles.py +98 -0
  72. package/scripts/check_augmentignore.py +4 -1
  73. package/scripts/check_command_count_messaging.py +4 -1
  74. package/scripts/check_compressed_paths.py +4 -1
  75. package/scripts/check_council_layout.py +4 -1
  76. package/scripts/check_council_references.py +4 -1
  77. package/scripts/check_iron_law_prominence.py +3 -1
  78. package/scripts/check_md_language.py +3 -1
  79. package/scripts/check_memory_proposal.py +3 -1
  80. package/scripts/check_public_catalog_links.py +4 -1
  81. package/scripts/check_reply_consistency.py +8 -2
  82. package/scripts/check_roadmap_trackable.py +4 -1
  83. package/scripts/compile_router.py +27 -0
  84. package/scripts/compress.py +33 -19
  85. package/scripts/cost/budget.mjs +152 -0
  86. package/scripts/cost/track.mjs +144 -0
  87. package/scripts/first-run.sh +3 -9
  88. package/scripts/install-hooks.sh +19 -1
  89. package/scripts/install.py +17 -12
  90. package/scripts/install.sh +19 -8
  91. package/scripts/lint_examples.py +6 -2
  92. package/scripts/lint_handoffs.py +4 -1
  93. package/scripts/lint_load_context.py +4 -1
  94. package/scripts/lint_roadmap_complexity.py +6 -2
  95. package/scripts/lint_rule_interactions.py +4 -1
  96. package/scripts/lint_rule_tiers.py +4 -1
  97. package/scripts/measure_frugality_savings.py +164 -0
  98. package/scripts/measure_markitdown_lift.py +127 -0
  99. package/scripts/runtime_dispatcher.py +11 -0
  100. package/scripts/skill_linter.py +207 -2
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>59 Rules</strong> · <strong>102 Commands</strong> · <strong>56 Guidelines</strong> · <strong>8 AI Tools</strong>
10
+ <strong>141 Skills</strong> · <strong>60 Rules</strong> · <strong>103 Commands</strong> · <strong>58 Guidelines</strong> · <strong>8 AI Tools</strong>
11
11
  </p>
12
12
 
13
13
  ---
@@ -343,7 +343,7 @@ kernel set: [`docs/contracts/kernel-membership.md`](docs/contracts/kernel-member
343
343
  | [`/jira-ticket`](.agent-src/commands/jira-ticket.md) | Read ticket from branch, implement feature |
344
344
  | [`/compress`](.agent-src/commands/compress.md) | Compress skills for token efficiency |
345
345
 
346
- → [Browse all 95 active commands](.agent-src/commands/)
346
+ → [Browse all 103 active commands](.agent-src/commands/)
347
347
 
348
348
  ---
349
349
 
@@ -368,7 +368,7 @@ Every developer gets the same behavior. No per-user setup needed.
368
368
  native slash-commands)
369
369
 
370
370
  > **What this means in practice:** Augment Code and Claude Code get the full
371
- > package (rules + 136 skills + 95 native commands). Cursor, Cline, Windsurf,
371
+ > package (rules + 141 skills + 103 native commands). Cursor, Cline, Windsurf,
372
372
  > Gemini CLI, and GitHub Copilot only get the **rules** natively; skills and
373
373
  > commands are available to them as documentation the agent can read, not as
374
374
  > first-class features.
@@ -413,6 +413,8 @@ for the per-rule routing.
413
413
  - **Challenge to improve** — agents are thought partners, not yes-machines
414
414
  - **Strict by design** — quality over flexibility
415
415
  - **Zero overhead by default** — nothing runs until you ask for it
416
+ - **Terse-by-default chat output** — verbosity flags off, intent narration off,
417
+ caveman-speak prose-only — flip back via [`docs/customization.md` § Verbosity](docs/customization.md#verbosity)
416
418
 
417
419
  ---
418
420
 
@@ -480,10 +482,8 @@ re-enabled or the chat ends. Full scoring contract and hardening:
480
482
  Edit in `.agent-src.uncompressed/`, compress, verify:
481
483
 
482
484
  ```bash
483
- task sync # Sync non-.md files
484
485
  task ci # Run all CI checks
485
486
  task test # Run all tests
486
- task lint-skills # Lint skills, rules, commands
487
487
  ```
488
488
 
489
489
  → Full commands and project structure: [**docs/development.md**](docs/development.md)
@@ -96,10 +96,10 @@ fails on any source-side violation, without producing artifacts.
96
96
 
97
97
  | Layer | Count | Purpose |
98
98
  |---|---|---|
99
- | **Skills** | 136 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
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
- | **Guidelines** | 56 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
99
+ | **Skills** | 141 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
100
+ | **Rules** | 60 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
101
+ | **Commands** | 103 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
102
+ | **Guidelines** | 58 | 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 |
105
105
 
package/docs/catalog.md CHANGED
@@ -1,16 +1,17 @@
1
1
  # agent-config — Public Catalog
2
2
 
3
- Consumer-facing catalog of all **342 public artefacts** shipped by
3
+ Consumer-facing catalog of all **359 public artefacts** shipped by
4
4
  this package. Internal package-maintenance rules and deprecation shims
5
5
  are excluded.
6
6
 
7
7
  > **Regenerate:** `python3 scripts/generate_index.py`
8
8
  > Auto-generated — do not edit manually.
9
9
 
10
- ## Skills (136)
10
+ ## Skills (141)
11
11
 
12
12
  | kind | name | extra | description |
13
13
  |---|---|---|---|
14
+ | skill | [`adr-create`](../.agent-src/skills/adr-create/SKILL.md) | | Use when capturing an architectural decision — naming the file, picking the next ADR number, filling Status / Context / Decision / Consequences, and regenerating the index — even without saying 'ADR'. |
14
15
  | skill | [`adversarial-review`](../.agent-src/skills/adversarial-review/SKILL.md) | | ONLY when user explicitly requests adversarial review, devil's advocate analysis, stress-testing a plan, or 'poke holes in this' — NOT for regular code review or design feedback. |
15
16
  | skill | [`agent-docs-writing`](../.agent-src/skills/agent-docs-writing/SKILL.md) | | Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure. |
16
17
  | skill | [`ai-council`](../.agent-src/skills/ai-council/SKILL.md) | | Use when polling external AIs (OpenAI, Anthropic) outside the host session for a neutral second opinion on a roadmap, diff, prompt, or file set — or 'cross-check with another model'. |
@@ -80,6 +81,7 @@ are excluded.
80
81
  | skill | [`lint-skills`](../.agent-src/skills/lint-skills/SKILL.md) | | Use when running the package's skill linter against all skills and rules to validate frontmatter, required sections, and execution metadata. |
81
82
  | skill | [`livewire`](../.agent-src/skills/livewire/SKILL.md) | | Use when the project's frontend stack is Livewire — dispatched by `directives/ui/{apply,review,polish}.py`. Covers reactive state, events, lifecycle hooks, and component/view separation. |
82
83
  | skill | [`logging-monitoring`](../.agent-src/skills/logging-monitoring/SKILL.md) | | Use when working with logging or monitoring — Sentry error tracking, Grafana/Loki log aggregation, structured logging channels, or monitoring helpers. |
84
+ | skill | [`markitdown`](../.agent-src/skills/markitdown/SKILL.md) | | Use when converting PDF, DOCX, XLSX, PPTX, EPUB, images, or audio to Markdown for LLM ingestion via the upstream markitdown-mcp server — 'extract this PDF', 'OCR this image', 'transcribe this audio'. |
83
85
  | skill | [`mcp`](../.agent-src/skills/mcp/SKILL.md) | | Use when working with MCP (Model Context Protocol) servers — their tools, capabilities, and best practices for effective agent workflows. |
84
86
  | skill | [`md-language-check`](../.agent-src/skills/md-language-check/SKILL.md) | | Use BEFORE saving any .md under .augment/, .agent-src*/, or agents/ — scans umlauts, German function words, and quoted German phrases outside DE:/EN: anchor blocks. Hard gate per language-and-tone. |
85
87
  | skill | [`merge-conflicts`](../.agent-src/skills/merge-conflicts/SKILL.md) | | Use when the user has merge conflicts or says "resolve conflicts". Understands conflict markers, resolution strategies, and verification workflow. |
@@ -91,6 +93,7 @@ are excluded.
91
93
  | skill | [`override-management`](../.agent-src/skills/override-management/SKILL.md) | | Creates and manages project-level overrides for shared skills, rules, and commands — extending or replacing originals from .augment/ with project-specific behavior in agents/overrides/. |
92
94
  | skill | [`performance`](../.agent-src/skills/performance/SKILL.md) | | Use when optimizing application performance — caching strategies, eager loading, query optimization, Redis patterns, or background job design. |
93
95
  | skill | [`performance-analysis`](../.agent-src/skills/performance-analysis/SKILL.md) | | ONLY when user explicitly requests: performance audit, bottleneck analysis, or N+1 query detection. NOT for regular feature work. |
96
+ | skill | [`persona-writing`](../.agent-src/skills/persona-writing/SKILL.md) | | Use when creating or editing a persona in .agent-src.uncompressed/personas/ — voice / focus / unique questions / output expectations — even when the user just says 'add a reviewer voice for X'. |
94
97
  | skill | [`pest-testing`](../.agent-src/skills/pest-testing/SKILL.md) | | Use when writing, generating, or improving Pest tests for Laravel — clear intent, good coverage, maintainable structure, and alignment with project testing conventions. |
95
98
  | skill | [`php-coder`](../.agent-src/skills/php-coder/SKILL.md) | | Writes or edits PHP code — controllers, classes, type hints, SOLID refactors, modern idioms — even without naming PHP. NOT for writing tests (use pest-testing) or explaining PHP concepts. |
96
99
  | skill | [`php-debugging`](../.agent-src/skills/php-debugging/SKILL.md) | | Use when debugging PHP with Xdebug — breakpoints, step-through, dual-container setup, IDE configuration, header-based routing — even when the user just says 'why does this blow up on request X'. |
@@ -119,8 +122,10 @@ are excluded.
119
122
  | skill | [`review-routing`](../.agent-src/skills/review-routing/SKILL.md) | | Use when preparing a PR description, suggesting reviewers, or flagging risk — produces owner-mapped roles plus historical bug-pattern matches from project-local YAML. |
120
123
  | skill | [`rice-prioritization`](../.agent-src/skills/rice-prioritization/SKILL.md) | | Use when ranking competing initiatives for a roadmap, breaking a tie between two features, or auditing a backlog for hidden low-value work via Reach × Impact × Confidence ÷ Effort. |
121
124
  | skill | [`roadmap-management`](../.agent-src/skills/roadmap-management/SKILL.md) | | Use when the user says "create roadmap", "show roadmap", or "execute roadmap". Creates, reads, and manages roadmap files with phase tracking. |
125
+ | skill | [`roadmap-writing`](../.agent-src/skills/roadmap-writing/SKILL.md) | | Use when authoring or rewriting a roadmap in agents/roadmaps/ — phase prose, goal sentence, acceptance criteria, council notes — even when the user just says 'write a plan for X' or 'draft a roadmap'. |
122
126
  | skill | [`rtk-output-filtering`](../.agent-src/skills/rtk-output-filtering/SKILL.md) | | Use when running verbose CLI commands — wraps them with rtk (Rust Token Killer) for 60-90% token savings. Covers installation, configuration, and usage patterns. |
123
127
  | skill | [`rule-writing`](../.agent-src/skills/rule-writing/SKILL.md) | | Use when creating or editing a rule in .agent-src.uncompressed/rules/ — trigger wording, always vs auto classification, size budget — even when the user just says 'add a rule for X'. |
128
+ | skill | [`script-writing`](../.agent-src/skills/script-writing/SKILL.md) | | Use when adding or editing any script under `scripts/` — `--quiet` flag, `_lib/script_output` helpers, silent Taskfile wiring, Iron-Law carve-outs — even when you just say 'add a check script for X'. |
124
129
  | skill | [`security`](../.agent-src/skills/security/SKILL.md) | | Use when applying security best practices — authentication, authorization via Policies, CSRF protection, input sanitization, rate limiting, or secure coding. |
125
130
  | skill | [`security-audit`](../.agent-src/skills/security-audit/SKILL.md) | | ONLY when user explicitly requests: security audit, vulnerability scan, or penetration test review. NOT for regular feature work. |
126
131
  | skill | [`sentry-integration`](../.agent-src/skills/sentry-integration/SKILL.md) | | Use when the user shares a Sentry URL, says "check Sentry", or wants to investigate production errors. Uses Sentry MCP tools for deep analysis. |
@@ -132,7 +137,7 @@ are excluded.
132
137
  | skill | [`sql-writing`](../.agent-src/skills/sql-writing/SKILL.md) | | Use when writing raw SQL — MariaDB/MySQL syntax, parameterization, raw migrations, seeders with `DB::statement` — even when the user just pastes a query and asks 'why is this slow' without naming SQL. |
133
138
  | skill | [`subagent-orchestration`](../.agent-src/skills/subagent-orchestration/SKILL.md) | | Use when orchestrating implementer/judge subagents — six modes (do-and-judge, do-in-steps, do-in-parallel, do-competitively, judge-with-debate, do-in-worktrees) — models from .agent-settings.yml. |
134
139
  | skill | [`systematic-debugging`](../.agent-src/skills/systematic-debugging/SKILL.md) | | 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'. |
135
- | skill | [`technical-specification`](../.agent-src/skills/technical-specification/SKILL.md) | | Use when the user says "write a spec", "create RFC", or "document this decision". Writes technical specifications, RFCs, and ADRs with clear structure. |
140
+ | skill | [`technical-specification`](../.agent-src/skills/technical-specification/SKILL.md) | | 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. |
136
141
  | skill | [`terraform`](../.agent-src/skills/terraform/SKILL.md) | | Use when writing Terraform — AWS modules, resources, variables, outputs, remote state — even when the user just says 'provision this infra' or 'add an S3 bucket' without naming Terraform. |
137
142
  | skill | [`terragrunt`](../.agent-src/skills/terragrunt/SKILL.md) | | Use when working with Terragrunt — DRY multi-env configs, module dependencies, remote state orchestration — even when the user just says 'deploy this to staging and prod' without naming Terragrunt. |
138
143
  | skill | [`test-driven-development`](../.agent-src/skills/test-driven-development/SKILL.md) | | Use when implementing a feature, fixing a bug, or refactoring — write a failing test first, then the code — even if the user just says 'add this function' or 'fix this bug'. |
@@ -148,7 +153,7 @@ are excluded.
148
153
  | skill | [`verify-completion-evidence`](../.agent-src/skills/verify-completion-evidence/SKILL.md) | | Use when claiming 'done', suggesting a commit, push, or PR — runs the evidence gate so completion claims come from fresh output in this message, not memory or earlier runs. |
149
154
  | skill | [`websocket`](../.agent-src/skills/websocket/SKILL.md) | | Use when building real-time features — WebSocket broadcasting, live updates, presence channels, connection state — even when the user just says 'push this to the client live'. |
150
155
 
151
- ## Rules (55)
156
+ ## Rules (57)
152
157
 
153
158
  | kind | name | type | description |
154
159
  |---|---|---|---|
@@ -161,6 +166,7 @@ are excluded.
161
166
  | rule | [`ask-when-uncertain`](../.agent-src/rules/ask-when-uncertain.md) | always | Ask when uncertain — don't guess, assume, or improvise |
162
167
  | rule | [`autonomous-execution`](../.agent-src/rules/autonomous-execution.md) | auto | Deciding whether to ask the user or just act on a workflow step — trivial-vs-blocking classification, autonomy opt-in detection, commit default; defers to non-destructive-by-default for the Hard Floor |
163
168
  | rule | [`capture-learnings`](../.agent-src/rules/capture-learnings.md) | auto | After completing a task where a repeated mistake or successful pattern appeared — capture as rule or skill |
169
+ | rule | [`caveman-speak`](../.agent-src/rules/caveman-speak.md) | auto | When caveman.speak_scope != off — compress reply prose to caveman grammar with byte-for-byte carve-outs for numbered options, Iron-Law literals, code, paths, and error markers. |
164
170
  | rule | [`cli-output-handling`](../.agent-src/rules/cli-output-handling.md) | auto | Running CLI commands that produce verbose output — git, tests, linters, docker, build tools, artisan, npm, composer. Wrap with rtk when installed; tail/grep is fallback. |
165
171
  | rule | [`command-suggestion-policy`](../.agent-src/rules/command-suggestion-policy.md) | auto | User prompt without /command but matching an eligible slash command — surface matches as numbered options with as-is escape hatch; never auto-executes, user always picks |
166
172
  | rule | [`commit-conventions`](../.agent-src/rules/commit-conventions.md) | auto | Git commit message format, branch naming, conventional commits, committing, pushing, or creating pull requests |
@@ -172,6 +178,7 @@ are excluded.
172
178
  | rule | [`e2e-testing`](../.agent-src/rules/e2e-testing.md) | auto | Playwright E2E tests — locators, assertions, Page Objects, fixtures, CI, and flaky test prevention |
173
179
  | rule | [`guidelines`](../.agent-src/rules/guidelines.md) | auto | Writing or reviewing code — check relevant guideline before writing or reviewing code |
174
180
  | rule | [`improve-before-implement`](../.agent-src/rules/improve-before-implement.md) | auto | Before implementing features or architectural changes — validate the request against existing code, challenge weak requirements, and suggest improvements |
181
+ | rule | [`invite-challenge`](../.agent-src/rules/invite-challenge.md) | auto | Before executing a complex plan or non-trivial design — proactively ask 'am I solving the right problem?' and pause for user confirmation, even when no ambiguity is detected |
175
182
  | rule | [`language-and-tone`](../.agent-src/rules/language-and-tone.md) | always | Language and tone — informal German Du, English code comments, .md files always English |
176
183
  | rule | [`laravel-translations`](../.agent-src/rules/laravel-translations.md) | auto | Laravel language files, translations, i18n, lang/de, lang/en, __() helper, localization, multilingual text |
177
184
  | rule | [`markdown-safe-codeblocks`](../.agent-src/rules/markdown-safe-codeblocks.md) | auto | Generating markdown output that contains code blocks — prevent broken nesting |
@@ -208,7 +215,7 @@ are excluded.
208
215
  | rule | [`user-interaction`](../.agent-src/rules/user-interaction.md) | auto | Asking the user a question, presenting options, or summarizing progress — numbered-options Iron Law, single-recommendation rule, progress indicators |
209
216
  | rule | [`verify-before-complete`](../.agent-src/rules/verify-before-complete.md) | always | Verify before completion — run tests and quality tools before claiming done |
210
217
 
211
- ## Commands (95)
218
+ ## Commands (103)
212
219
 
213
220
  | kind | name | cluster | description |
214
221
  |---|---|---|---|
@@ -221,6 +228,9 @@ are excluded.
221
228
  | command | [`analyze-reference-repo`](../.agent-src/commands/analyze-reference-repo.md) | | Analyze an external reference repository (competitor, inspiration, peer) and produce a structured comparison + adoption plan for this project. |
222
229
  | command | [`bug-fix`](../.agent-src/commands/bug-fix.md) | | Plan and implement a bug fix — based on investigation, with quality checks and test verification |
223
230
  | command | [`bug-investigate`](../.agent-src/commands/bug-investigate.md) | | Investigate a bug — auto-detect ticket from branch, gather Jira/Sentry/description context, trace root cause |
231
+ | command | [`challenge-me:vision`](../.agent-src/commands/challenge-me/vision.md) | cluster: challenge-me | Stress-test a plan or idea by one-question-at-a-time interview until 95% confidence — emits a copyable Markdown vision pitch for tickets, roadmaps, or fresh-chat handoff. |
232
+ | command | [`challenge-me:with-docs`](../.agent-src/commands/challenge-me/with-docs.md) | cluster: challenge-me | Doc-aware /challenge-me — 95%-confidence interview with session glossary vs CONTEXT.md, load-bearing claim-vs-code verification, optional CONTEXT.md patch + ADR candidates in the pitch. |
233
+ | command | [`challenge-me`](../.agent-src/commands/challenge-me.md) | cluster: challenge-me | Challenge-me orchestrator — routes to vision, with-docs |
224
234
  | command | [`chat-history:import`](../.agent-src/commands/chat-history/import.md) | cluster: chat-history | Surface prior chat-history sessions as a numbered table, let the user pick one, read it silently, and emit a short summary plus a resume offer — selective, user-driven cross-session import |
225
235
  | command | [`chat-history:learn`](../.agent-src/commands/chat-history/learn.md) | cluster: chat-history | Pick a prior chat-history session and mine it for project-improving learnings — runs learning-to-rule-or-skill on the picked session, drafts proposal(s) under agents/proposals/ |
226
236
  | command | [`chat-history:show`](../.agent-src/commands/chat-history/show.md) | cluster: chat-history | Show the status of the persistent chat-history log — file size, entry count, header fingerprint, age, and the last few entries |
@@ -235,6 +245,7 @@ are excluded.
235
245
  | command | [`copilot-agents:init`](../.agent-src/commands/copilot-agents/init.md) | cluster: copilot-agents | Create AGENTS.md and .github/copilot-instructions.md from scratch in the consumer project — interactive, auto-detects stack, never leaks other projects' identifiers. |
236
246
  | command | [`copilot-agents:optimize`](../.agent-src/commands/copilot-agents/optimize.md) | cluster: copilot-agents | Analyzes and refactors AGENTS.md and copilot-instructions.md — removes duplications, enforces line budgets, and ensures both files are optimized for their audience. |
237
247
  | command | [`copilot-agents`](../.agent-src/commands/copilot-agents.md) | cluster: copilot-agents | Copilot agents-doc orchestrator — routes to init, optimize |
248
+ | command | [`cost-report`](../.agent-src/commands/cost-report.md) | | Capture token cost from the active Claude Code session, append to the local sessions store, and surface the 50/75/90/100% budget alert ladder with cost-profile suggestions. |
238
249
  | command | [`council:default`](../.agent-src/commands/council/default.md) | cluster: council | Default council lens — neutral framing, redacted context, advisory output only. Run `/council default <input>` for prompt/roadmap/diff/files; the cluster shows a menu when invoked bare. |
239
250
  | command | [`council:design`](../.agent-src/commands/council/design.md) | cluster: council | Run the council on a design document, ADR, or architecture proposal — surfaces hidden coupling, missing rollback, and sequencing risk before commitment. |
240
251
  | command | [`council:optimize`](../.agent-src/commands/council/optimize.md) | cluster: council | Run the council on an optimization target — perf hot path, memory pattern, query, or an /optimize-* output — for ranked, evidence-based suggestions instead of generic advice. |
@@ -259,6 +270,7 @@ are excluded.
259
270
  | command | [`fix:refs`](../.agent-src/commands/fix/refs.md) | cluster: fix | Find and fix broken cross-references in .augment/ and agents/ files |
260
271
  | command | [`fix:seeder`](../.agent-src/commands/fix/seeder.md) | cluster: fix | Scan seeder data files for broken foreign key references — find constants used without getReference() and fix them |
261
272
  | command | [`fix`](../.agent-src/commands/fix.md) | cluster: fix | Fix orchestrator — routes to ci, references, portability, seeder, pr-comments, pr-bot-comments, pr-developer-comments |
273
+ | command | [`grill-me`](../.agent-src/commands/grill-me.md) | cluster: challenge-me | Alias for /challenge-me — interactive grill-style interview that sharpens a fuzzy plan/idea into a copyable Markdown pitch |
262
274
  | command | [`implement-ticket`](../.agent-src/commands/implement-ticket.md) | | Drive a ticket end-to-end through refine → memory → analyze → plan → implement → test → verify → report — Option-A loop over the `work_engine` Python engine, block-on-ambiguity, no auto-git. |
263
275
  | command | [`jira-ticket`](../.agent-src/commands/jira-ticket.md) | | Read Jira ticket from branch name, analyze linked Sentry issues, implement feature or fix bug |
264
276
  | command | [`judge:on-diff`](../.agent-src/commands/judge/on-diff.md) | cluster: judge | Run a single change through an implementer→judge loop with a two-revision ceiling, then hand back to the user |
@@ -293,9 +305,12 @@ are excluded.
293
305
  | command | [`refine-ticket`](../.agent-src/commands/refine-ticket.md) | | Refine a Jira/Linear ticket before planning — rewritten ticket + Top-5 risks + persona voices, orchestrates validate-feature-fit and threat-modeling, ends with a close-prompt |
294
306
  | command | [`review-changes`](../.agent-src/commands/review-changes.md) | | Self-review local changes before creating a PR — dispatches to four specialized judges (bug, security, tests, quality) and consolidates verdicts |
295
307
  | command | [`review-routing`](../.agent-src/commands/review-routing.md) | | Compute reviewer roles and matched historical bug patterns for the current diff, using project-local ownership-map.yml and historical-bug-patterns.yml |
308
+ | command | [`roadmap:ai-council`](../.agent-src/commands/roadmap/ai-council.md) | cluster: roadmap | Challenge a roadmap with the AI council (deep tier) and refactor from convergence findings. Wraps `/council default` pinned to `--input-mode roadmap --depth deep`; patches surface as numbered options. |
296
309
  | command | [`roadmap:create`](../.agent-src/commands/roadmap/create.md) | cluster: roadmap | Interactively create a new roadmap file in agents/roadmaps/ |
297
- | command | [`roadmap:execute`](../.agent-src/commands/roadmap/execute.md) | cluster: roadmap | Read and interactively execute a roadmap from agents/roadmaps/ |
298
- | command | [`roadmap`](../.agent-src/commands/roadmap.md) | cluster: roadmap | Roadmap orchestrator routes to create, execute |
310
+ | command | [`roadmap:process-full`](../.agent-src/commands/roadmap/process-full.md) | cluster: roadmap | Autonomously process every open step across every phase of a roadmap until the file is fully closed. Largest execution scope of the /roadmap cluster — runs continuously across phase boundaries. |
311
+ | command | [`roadmap:process-phase`](../.agent-src/commands/roadmap/process-phase.md) | cluster: roadmap | Autonomously process every open step in the next or current phase of a roadmap, then stop. Default execution scope of the /roadmap cluster. |
312
+ | command | [`roadmap:process-step`](../.agent-src/commands/roadmap/process-step.md) | cluster: roadmap | Autonomously process the single next open step of a roadmap and stop. Smallest execution scope of the /roadmap cluster — one step in, one step out. |
313
+ | command | [`roadmap`](../.agent-src/commands/roadmap.md) | cluster: roadmap | Roadmap orchestrator — routes to create (authoring) and process-step / process-phase / process-full (autonomous execution). |
299
314
  | command | [`rule-compliance-audit`](../.agent-src/commands/rule-compliance-audit.md) | | Audit rule trigger quality, simulate activation, detect overlaps, and find never-activating rules |
300
315
  | command | [`set-cost-profile`](../.agent-src/commands/set-cost-profile.md) | | Change the cost_profile in .agent-settings.yml — shows each profile's meaning and applies the selection |
301
316
  | command | [`sync-agent-settings`](../.agent-src/commands/sync-agent-settings.md) | | Sync `.agent-settings.yml` against the current template + profile — adds new sections/keys, preserves user values, shows a diff before writing |
@@ -308,7 +323,7 @@ are excluded.
308
323
  | command | [`upstream-contribute`](../.agent-src/commands/upstream-contribute.md) | | Contribute a learning, skill, rule, or fix from a consumer project back to the shared agent-config package |
309
324
  | command | [`work`](../.agent-src/commands/work.md) | | Drive a free-form prompt end-to-end through refine → score → plan → implement → test → verify → report — Option-A loop over the `work_engine` Python engine, confidence-band gated, no auto-git. |
310
325
 
311
- ## Guidelines (56)
326
+ ## Guidelines (58)
312
327
 
313
328
  | kind | name | category | description |
314
329
  |---|---|---|---|
@@ -316,11 +331,13 @@ are excluded.
316
331
  | guideline | [`ask-when-uncertain-demos`](../docs/guidelines/agent-infra/ask-when-uncertain-demos.md) | agent-infra | |
317
332
  | guideline | [`asking-and-brevity-examples`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md) | agent-infra | |
318
333
  | guideline | [`break-glass-usage`](../docs/guidelines/agent-infra/break-glass-usage.md) | agent-infra | |
334
+ | guideline | [`carve-out-predicates`](../docs/guidelines/agent-infra/carve-out-predicates.md) | agent-infra | |
319
335
  | guideline | [`developer-judgment`](../docs/guidelines/agent-infra/developer-judgment.md) | agent-infra | |
320
336
  | guideline | [`direct-answers-demos`](../docs/guidelines/agent-infra/direct-answers-demos.md) | agent-infra | |
321
337
  | guideline | [`engineering-memory-data-format`](../docs/guidelines/agent-infra/engineering-memory-data-format.md) | agent-infra | |
322
338
  | guideline | [`language-and-tone-examples`](../docs/guidelines/agent-infra/language-and-tone-examples.md) | agent-infra | |
323
339
  | guideline | [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md) | agent-infra | |
340
+ | guideline | [`mcp-request-signing`](../docs/guidelines/agent-infra/mcp-request-signing.md) | agent-infra | |
324
341
  | guideline | [`memory-access`](../docs/guidelines/agent-infra/memory-access.md) | agent-infra | |
325
342
  | guideline | [`naming`](../docs/guidelines/agent-infra/naming.md) | agent-infra | |
326
343
  | guideline | [`output-patterns`](../docs/guidelines/agent-infra/output-patterns.md) | agent-infra | |
@@ -120,6 +120,78 @@ behavior — the per-profile table is just the initial default.
120
120
 
121
121
  `custom` ignores these defaults — set every value explicitly.
122
122
 
123
+ ### Verbosity
124
+
125
+ The `verbosity:` block and `caveman.speak_scope` control how much narration
126
+ the agent emits around routine actions. Defaults are tuned for token
127
+ frugality — flip values to `true` (or higher tier) to restore legacy verbose
128
+ output. Iron-Law gates (`commit-policy`, `scope-control` git-ops,
129
+ `non-destructive-by-default`) ALWAYS confirm regardless of these flags.
130
+
131
+ | Setting | Values | Default | Description |
132
+ |---|---|---|---|
133
+ | `verbosity.preview_artifacts` | `true`, `false` | `false` | Show generated commit messages, PR titles/bodies, and branch names before acting. `false` = use the generated content directly. |
134
+ | `verbosity.routine_confirmations` | `true`, `false` | `false` | Confirmation prompts for routine workflow steps when there is one obvious answer ("looks good — commit?"). Iron-Law gates always ask regardless. |
135
+ | `verbosity.offer_council_in_delivery` | `true`, `false` | `false` | Offer "run AI Council on this?" inside delivery commands (`/feature-plan`, `/review-changes`, `/roadmap-create`). The `/council` command itself is unaffected. |
136
+ | `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. |
137
+ | `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. |
138
+ | `verbosity.script_output` | `silent`, `minimal`, `verbose` | `minimal` | Stdout chatter from `scripts/*.py`, `scripts/*.sh`, and `.augment/scripts/`. `silent` = stderr only; `minimal` = one summary line per script; `verbose` = pre-Phase-10 per-step prints. Iron-Law surfaces (release confirms, install secrets prompts, error markers) ignore this key. |
139
+ | `verbosity.taskfile_command_echo` | `true`, `false` | `false` | Suppress the `task: [name] cmd...` echo Taskfile prints before each task body. `true` = echoes preserved (legacy behaviour); `false` = `silent: true` is set on every Phase-10 safe task. |
140
+ | `caveman.speak_scope` | `off`, `prose_only`, `aggressive` | `prose_only` | How widely caveman-speak grammar applies in chat. `off` = no caveman; `prose_only` = caveman in body prose, numbered options + Iron-Law-literal blocks stay full prose; `aggressive` = caveman everywhere except Iron-Law literals. |
141
+
142
+ The cross-rule index for these defaults lives in
143
+ [`.agent-src.uncompressed/contexts/contracts/frugality-charter.md`](../.agent-src.uncompressed/contexts/contracts/frugality-charter.md).
144
+ Writer skills (`skill-writing`, `rule-writing`, `command-writing`,
145
+ `guideline-writing`, `roadmap-writing`, `persona-writing`,
146
+ `agent-docs-writing`, `context-authoring`, `conventional-commits-writing`,
147
+ `readme-writing`, `readme-writing-package`, `adr-create`) cite the charter
148
+ under their `## Frugality Standards` section.
149
+
150
+ #### Behavior change vs. legacy — `/create-pr` silent draft default
151
+
152
+ When `verbosity.routine_confirmations: false` (the new default),
153
+ `/create-pr` creates the PR as a **draft silently** instead of asking
154
+ "draft or ready?". A one-line postscript surfaces the override:
155
+
156
+ ```
157
+ → #42 opened: https://github.com/org/repo/pull/42
158
+ → created as draft — run `gh pr ready 42` to flip
159
+ ```
160
+
161
+ Per-invocation overrides (no settings change required):
162
+
163
+ | You want | Argument |
164
+ |---|---|
165
+ | Ready-for-review immediately | `/create-pr:ready` or `/create-pr:final` |
166
+ | Explicit draft (no postscript change) | `/create-pr:draft` |
167
+ | Numbered prompt restored | set `verbosity.routine_confirmations: true` |
168
+
169
+ `/create-pr` still skips the AI council prompt unconditionally per the
170
+ existing carve-out — `verbosity.offer_council_in_delivery` does not
171
+ re-enable it. Use `/council diff:<base>..<head>` separately.
172
+
173
+ #### Script-output level — env-var overrides
174
+
175
+ `verbosity.script_output` is read by `scripts/_lib/script_output.py`.
176
+ For incident debugging when editing `.agent-settings.yml` is awkward,
177
+ two env vars override the file for the current process tree:
178
+
179
+ | Env var | Value | Effect |
180
+ |---|---|---|
181
+ | `AGENT_SCRIPT_VERBOSITY` | `silent`, `minimal`, `verbose` | Authoritative — wins over the settings file |
182
+ | `SCRIPT_OUTPUT_VERBOSE` | `1` | Alias — equivalent to `AGENT_SCRIPT_VERBOSITY=verbose` |
183
+
184
+ Once the helper resolves the level, it exports the resolved value back
185
+ into `AGENT_SCRIPT_VERBOSITY` so child processes inherit the same level
186
+ without re-reading the settings file. Per-call `--quiet` flags on a
187
+ child script still win at the call site (per-call override > inherited
188
+ level).
189
+
190
+ Iron-Law surfaces — production-deploy confirmation prompts in
191
+ `scripts/release.py`, secret-installer prompts in `install_*_key.sh`,
192
+ and any output via `error()` — bypass the helper and stay loud at every
193
+ level.
194
+
123
195
  ---
124
196
 
125
197
  ## Project documentation
@@ -0,0 +1,15 @@
1
+ # ADR Index
2
+
3
+ _Auto-generated by `scripts/adr/regenerate_index.py`. Do not edit._
4
+
5
+ | # | Title | Status | Date | Supersedes |
6
+ |---|---|---|---|---|
7
+ | [ADR-001](ADR-001-kernel-swap-deferred.md) | Kernel Swap Deferred | accepted | 2026-05-06 | — |
8
+ | [ADR-002](ADR-002-kernel-bucket-overrides.md) | Kernel Bucket Overrides | — | — | — |
9
+ | [ADR-003](ADR-003-flat-cluster-subs-and-colon-syntax.md) | Flat Cluster Subs And Colon Syntax | — | — | — |
10
+
11
+ ## Unnumbered (legacy)
12
+
13
+ | # | Title | Status | Date | Supersedes |
14
+ |---|---|---|---|---|
15
+ | [ADR-rule-kernel-and-router](ADR-rule-kernel-and-router.md) | — | — | — | — |
@@ -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 59 rules. No configuration needed.
118
+ This is enforced automatically by 60 rules. No configuration needed.
119
119
 
120
120
  ---
121
121
 
@@ -153,7 +153,7 @@ Your agent now understands slash commands:
153
153
  | `/quality-fix` | Run and fix all quality checks |
154
154
  | `/chat-history` | Inspect the persistent chat-history log (read-only `show`) |
155
155
 
156
- → [Browse all 95 active commands](../.agent-src/commands/)
156
+ → [Browse all 103 active commands](../.agent-src/commands/)
157
157
 
158
158
  ---
159
159
 
@@ -12,21 +12,22 @@ always-loaded rule body — extracted to fit the always-rule budget.
12
12
 
13
13
  ## Vague-request triggers — example questions
14
14
 
15
- Companion to `ask-when-uncertain` § Vague-request triggers. The rule
16
- lists the trigger patterns and the "missing info" columns; this file
17
- adds the example question to ask back at the user.
15
+ Companion to `ask-when-uncertain` § Vague-request triggers. This
16
+ section is the canonical home for the nine trigger patterns, the
17
+ missing-info each one hides, and the example clarifying question
18
+ the rule cites it instead of restating the catalog.
18
19
 
19
- | Pattern | Example clarifying question |
20
- |---|---|
21
- | "improve / optimize this" | "Optimize for what — execution speed or readability?" |
22
- | "add caching" | "Which cache driver, and what invalidates it?" |
23
- | "make it better / cleaner" | "What specifically feels wrong in the current code?" |
24
- | "clean up this file" | "Remove unused code, reformat, or restructure?" |
25
- | "fix this" (without specifying) | "What output/behavior is wrong right now?" |
26
- | "refactor X" | "Refactor toward what — smaller methods, extract class, or something else?" |
27
- | "use best practices" | "Best practices for what specifically — testing, naming, structure?" |
28
- | "handle errors properly" | "For which failure modes, and what should happen on error?" |
29
- | "add a UI / component / tile / page" when the repo mixes frameworks | "This repo uses {A} and {B} for UI — which one for this?" |
20
+ | Pattern | Missing info | Example clarifying question |
21
+ |---|---|---|
22
+ | "improve / optimize this" | metric — speed, readability, memory? | "Optimize for what — execution speed or readability?" |
23
+ | "add caching" | store, scope, invalidation | "Which cache driver, and what invalidates it?" |
24
+ | "make it better / cleaner" | by what standard? | "What specifically feels wrong in the current code?" |
25
+ | "clean up this file" | dead code, format, refactor? | "Remove unused code, reformat, or restructure?" |
26
+ | "fix this" (no symptom) | what output is wrong? | "What output/behavior is wrong right now?" |
27
+ | "refactor X" | target pattern, boundaries | "Refactor toward what — smaller methods, extract class, or something else?" |
28
+ | "use best practices" | whose, for what? | "Best practices for what specifically — testing, naming, structure?" |
29
+ | "handle errors properly" | which errors — log/retry/propagate? | "For which failure modes, and what should happen on error?" |
30
+ | "add a UI / component / tile / page" in mixed-framework repo | which stack? | "This repo uses {A} and {B} for UI — which one for this?" |
30
31
 
31
32
  ## One-question-per-turn — why serial always wins
32
33
 
@@ -49,8 +50,10 @@ next. Serial preserves the framing; parallel destroys it.
49
50
 
50
51
  ## Cheap-question class catalog — extended examples
51
52
 
52
- Companion to `no-cheap-questions` § What counts as cheap. The rule
53
- lists the classes; this file adds longer-form examples per class.
53
+ Companion to `no-cheap-questions` § What counts as cheap. This
54
+ section is the canonical home for the nine cheap-question classes
55
+ and their per-class patterns — the rule cites it instead of
56
+ restating the catalog.
54
57
 
55
58
  | Class | Pattern · why cheap | Concrete example |
56
59
  |---|---|---|
@@ -66,9 +69,10 @@ lists the classes; this file adds longer-form examples per class.
66
69
 
67
70
  ## Direct-answers — severity-tiered claim examples
68
71
 
69
- Companion to `direct-answers` § Iron Law 2 (no invented facts). The
70
- rule lists the severity table; this file adds concrete examples and
71
- hedge-language patterns.
72
+ Companion to `direct-answers` § Iron Law 2 (no invented facts). This
73
+ section is the canonical home for the severity tiers, per-tier
74
+ verification actions, and the override carve-out — the rule cites it
75
+ instead of restating the table.
72
76
 
73
77
  | Severity | Examples | Verification action |
74
78
  |---|---|---|
@@ -76,6 +80,10 @@ hedge-language patterns.
76
80
  | **Medium — project-shape** | "This project uses Pest for testing", "controllers live under `app/Http/Controllers`" | Verify if one tool call reaches it; otherwise hedge: *"I'd guess X — not checked"*. |
77
81
  | **Low — well-known idioms** | "PHP `array_map` returns a new array", "git tags are immutable", "JS arrays are zero-indexed" | Inference acceptable. Mark as inference if not 100% sure. |
78
82
 
83
+ **Override:** "just guess" / "rough estimate" / "skip verify" in the
84
+ user's turn drops every claim to **Low** for that turn only. Reverts
85
+ on the next turn unless the user repeats the override.
86
+
79
87
  Hedge-language patterns:
80
88
 
81
89
  - ✅ "haven't verified X — likely from {known-similar-codebase}"
@@ -0,0 +1,17 @@
1
+ # Decidable Carve-Out Predicates
2
+
3
+ Companion to [`frugality-charter`](../../../.agent-src.uncompressed/contexts/contracts/frugality-charter.md). Each carve-out below carries a one-sentence test. If the test cannot be answered yes/no from the artifact alone, the carve-out does not fire and default-terse rules apply.
4
+
5
+ ## Predicates
6
+
7
+ - **Iron-Law literal** — the prose is an ALL-CAPS fenced block inside a rule whose title appears in [`docs/contracts/kernel-membership.md`](../../contracts/kernel-membership.md).
8
+
9
+ - **Numbered-options with genuine trade-off** — the options differ in consequence (a chosen path produces a measurably different artifact or state), not in sequencing or output format. Per [`no-cheap-questions § What counts as cheap`](../../../.agent-src.uncompressed/rules/no-cheap-questions.md#what-counts-as-cheap).
10
+
11
+ - **Security-sensitive prompt** — the prompt requires credential input OR modifies auth / tenant / secret state, matching a trigger in [`security-sensitive-stop`](../../../.agent-src.uncompressed/rules/security-sensitive-stop.md).
12
+
13
+ - **Structured CLI contract** — the script's stdout is consumed by another script (a downstream parser exists under `scripts/` or `.augment/scripts/`), so the format is part of an interface contract, not narration.
14
+
15
+ ## How to use
16
+
17
+ Writer skills (`skill-writing`, `rule-writing`, `command-writing`, `guideline-writing`, `context-authoring`, `agent-docs-writing`, `conventional-commits-writing`, `readme-writing`, `readme-writing-package`, `adr-create`, `persona-writing`, `roadmap-writing`) cite this file when an artifact's pre-save check needs a decidable test for a carve-out exception. The default is **terse** — predicates here only fire when the artifact provides the yes/no evidence.