@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
@@ -106,7 +106,7 @@ Commands organized by workflow:
106
106
  | **Bugs** | `bug-investigate`, `bug-fix` |
107
107
  | **Contexts** | `context-create`, `context-refactor` |
108
108
  | **Modules** | `module-create`, `module-explore` |
109
- | **Roadmaps** | `roadmap-create`, `roadmap-execute` |
109
+ | **Roadmaps** | `roadmap:create`, `roadmap:process-step`, `roadmap:process-phase`, `roadmap:process-full` |
110
110
  | **Quality** | `quality-fix`, `review-changes`, `prepare-for-review`, `update-form-request-messages`, `fix-seeder` |
111
111
  | **CI/PR** | `fix-ci`, `create-pr`, `create-pr-description`, `fix-pr-comments`, `fix-pr-bot-comments`, `fix-pr-developer-comments` |
112
112
  | **Testing** | `tests-create`, `tests-execute` |
@@ -10,40 +10,75 @@ this file mirrors that contract for runtime lookup. Linter:
10
10
 
11
11
  ## Locked clusters and sub-commands
12
12
 
13
- | Cluster | Phase | Sub-commands | Replaces |
14
- |---|:-:|---|---|
13
+ | Cluster | Phase | Sub-commands | Replaces |
14
+ |---|:-:|---|-------------------------------------------------------------------------------------------------------------------------------------------------|
15
15
  | `/fix` | 1 | `ci` · `pr` · `pr-bots` · `pr-developers` · `portability` · `refs` · `seeder` | `/fix-ci` · `/fix-pr-comments` · `/fix-pr-bot-comments` · `/fix-pr-developer-comments` · `/fix-portability` · `/fix-references` · `/fix-seeder` |
16
- | `/optimize` | 1 | `agents` · `augmentignore` · `rtk` · `skills` | `/optimize-agents` · `/optimize-augmentignore` · `/optimize-rtk-filters` · `/optimize-skills` |
17
- | `/feature` | 1 | `explore` · `plan` · `refactor` · `roadmap` | `/feature-explore` · `/feature-plan` · `/feature-refactor` · `/feature-roadmap` |
18
- | `/chat-history` | 2 | `show` | `/chat-history` (legacy status) — `resume` / `clear` / `checkpoint` removed in `road-to-chat-history-hook-only` |
19
- | `/agents` | 2 | `audit` · `cleanup` · `prepare` | `/agents-audit` · `/agents-cleanup` · `/agents-prepare` |
20
- | `/memory` | 2 | `add` · `load` · `promote` · `propose` | `/memory-add` · `/memory-full` · `/memory-promote` · `/propose-memory` |
21
- | `/roadmap` | 2 | `create` · `execute` | `/roadmap-create` · `/roadmap-execute` |
22
- | `/module` | 2 | `create` · `explore` | `/module-create` · `/module-explore` |
23
- | `/tests` | 2 | `create` · `execute` | `/tests-create` · `/tests-execute` |
24
- | `/context` | 2 | `create` · `refactor` | `/context-create` · `/context-refactor` |
25
- | `/override` | 2 | `create` · `manage` | `/override-create` · `/override-manage` |
26
- | `/copilot-agents` | 2 | `init` · `optimize` | `/copilot-agents-init` · `/copilot-agents-optimize` |
27
- | `/judge` | 2 | `solo` · `on-diff` · `steps` | `/judge` (legacy standalone) · `/do-and-judge` · `/do-in-steps` |
28
- | `/commit` | 2 | flag: `--in-chunks` | `/commit:in-chunks` |
29
- | `/create-pr` | 2 | flag: `--description-only` | `/create-pr:description-only` |
16
+ | `/optimize` | 1 | `agents` · `augmentignore` · `rtk` · `skills` | `/optimize-agents` · `/optimize-augmentignore` · `/optimize-rtk-filters` · `/optimize-skills` |
17
+ | `/feature` | 1 | `explore` · `plan` · `refactor` · `roadmap` | `/feature-explore` · `/feature-plan` · `/feature-refactor` · `/feature-roadmap` |
18
+ | `/chat-history` | 2 | `show` | `/chat-history` (legacy status) — `resume` / `clear` / `checkpoint` removed in `road-to-chat-history-hook-only` |
19
+ | `/agents` | 2 | `audit` · `cleanup` · `prepare` | `/agents-audit` · `/agents-cleanup` · `/agents-prepare` |
20
+ | `/memory` | 2 | `add` · `load` · `promote` · `propose` | `/memory-add` · `/memory-full` · `/memory-promote` · `/propose-memory` |
21
+ | `/roadmap` | 2 | `create` · `process-step` · `process-phase` · `process-full` | `/roadmap-create` · `/roadmap-process` (replaced — autonomous, no per-step gate; `process-phase` is the default execution scope) |
22
+ | `/module` | 2 | `create` · `explore` | `/module-create` · `/module-explore` |
23
+ | `/tests` | 2 | `create` · `execute` | `/tests-create` · `/tests-execute` |
24
+ | `/context` | 2 | `create` · `refactor` | `/context-create` · `/context-refactor` |
25
+ | `/override` | 2 | `create` · `manage` | `/override-create` · `/override-manage` |
26
+ | `/copilot-agents` | 2 | `init` · `optimize` | `/copilot-agents-init` · `/copilot-agents-optimize` |
27
+ | `/judge` | 2 | `solo` · `on-diff` · `steps` | `/judge` (legacy standalone) · `/do-and-judge` · `/do-in-steps` |
28
+ | `/commit` | 2 | flag: `--in-chunks` | `/commit:in-chunks` |
29
+ | `/create-pr` | 2 | flag: `--description-only` | `/create-pr:description-only` |
30
30
 
31
31
  ## Routing semantics
32
32
 
33
- 1. The user types `/<cluster> [<sub>] [args]`.
33
+ 1. The user invokes a cluster sub-command in **one of two equivalent
34
+ forms**:
35
+ - `/<cluster>:<sub> [args]` — **canonical**. Single token, plays
36
+ well with shell autocompletion and the slash-command picker.
37
+ - `/<cluster> <sub> [args]` — **space-separated equivalent**.
38
+ Identical semantics. Accept everywhere.
39
+
40
+ Both forms route to the **same file** and the **same dispatcher**.
41
+ Implementations MUST treat `:` and `<space>` as interchangeable
42
+ delimiters at the cluster boundary. Autocompletion-aware UIs
43
+ (Claude.ai picker, IDE slash-menus, shell completers) should
44
+ surface the `:` form because it stays a single token.
45
+
34
46
  2. Match the cluster against the table above. If the leading token is
35
47
  a dispatcher cluster, route to the dispatcher's `commands/<cluster>.md`
36
48
  and let the dispatcher's "Dispatch" section pick the sub-command.
49
+
37
50
  3. If the leading token is a flag-cluster (`/commit`, `/create-pr`),
38
51
  the cluster file is the entry point itself; flags absorb the
39
52
  former helper command.
53
+
40
54
  4. **Legacy atomic shims** (`/fix-ci`, `/agents-audit`, …) keep working
41
55
  for one release cycle. They emit a deprecation warning and forward
42
56
  to the cluster invocation. New invocations should always use the
43
- cluster form.
57
+ cluster form. **`/roadmap-execute` is removed** — invocations route
58
+ to `/roadmap:process-phase` (default execution scope) with a
59
+ one-time migration notice. Legacy `/roadmap-process[:<sub>]`
60
+ invocations (the short-lived top-level cluster) likewise forward
61
+ to `/roadmap:process-<sub>`.
62
+
44
63
  5. If a sub-command is unknown, the dispatcher prints the menu — never
45
64
  guess.
46
65
 
66
+ ## Why colon is canonical
67
+
68
+ Locked by [ADR-003](../../../../docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md)
69
+ (2026-05-07) alongside the flat-cluster + composite-sub-name shape.
70
+
71
+ - **Single token in autocompleters.** `roadmap:process-phase` completes
72
+ as one piece; `roadmap process-phase` requires the picker to
73
+ re-prompt after the space.
74
+ - **Stable in chat history and logs.** Greppable as one string.
75
+ - **Unambiguous against free-text args.** `/roadmap:process-phase
76
+ road-to-X.md` parses cleanly; the picker never confuses the sub
77
+ with the first argument.
78
+ - **Symmetric across the catalog.** `/commit:in-chunks` and
79
+ `/create-pr:description-only` already use this form; cluster
80
+ dispatchers gain it without regressing the space form.
81
+
47
82
  ## Removal cycle
48
83
 
49
84
  | Cycle | Active form | Shim form |
@@ -0,0 +1,57 @@
1
+ # Frugality Charter
2
+
3
+ Cross-rule index for **writer skills** (skill-writing, rule-writing,
4
+ command-writing, guideline-writing, context-authoring,
5
+ agent-docs-writing, conventional-commits-writing, readme-writing,
6
+ readme-writing-package, adr-create, persona-writing, roadmap-writing,
7
+ script-writing).
8
+ The canon is held by the named rules below; this file is index-only,
9
+ plus the settings-hooks section that has no other canonical home.
10
+
11
+ ## Frugality canon — links into authoritative rules
12
+
13
+ Cite the source rule in writer artifacts; do **not** restate it here.
14
+
15
+ | Concern | Authoritative source |
16
+ |---|---|
17
+ | Default-terse output, skip intent prose, skip post-action summaries | [`direct-answers § Iron Law 3 — Brevity by Default`](../../rules/direct-answers.md#iron-law-3--brevity-by-default) |
18
+ | Numbered-options trade-off rule (real consequence, not sequencing) | [`user-interaction § Iron Law 1 — Single-Source Recommendation`](../../rules/user-interaction.md#iron-law-1--single-source-recommendation) |
19
+ | Cheap-question pre-send check (skip the ask if context already answers) | [`no-cheap-questions § Pre-Send Self-Check`](../../rules/no-cheap-questions.md#pre-send-self-check--mandatory-before-every-question) |
20
+ | Tool-call discipline, act-skip-narration, fresh output over memory | [`token-efficiency § The Iron Laws`](../../rules/token-efficiency.md#the-iron-laws) and its mechanics file |
21
+
22
+ ## Confirmation taxonomy
23
+
24
+ Iron-Law / Routine / Contextual classification with carve-outs
25
+ lives in the roadmap [`§ Confirmation taxonomy`](../../../agents/roadmaps/road-to-token-frugality.md#confirmation-taxonomy).
26
+ Charter does not duplicate the table.
27
+
28
+ ## Settings hooks
29
+
30
+ Live Phase 1 schema (see [`templates/agent-settings.md`](../../templates/agent-settings.md#settings-reference)).
31
+
32
+ | Key | One-line semantics |
33
+ |---|---|
34
+ | `verbosity.preview_artifacts` | When `false`, skip generated commit messages / PR titles / branch names preview before acting. |
35
+ | `verbosity.routine_confirmations` | When `false`, skip "looks good?" gates on routine workflow steps. Iron-Law gates always ask. |
36
+ | `verbosity.offer_council_in_delivery` | When `false`, delivery commands skip the optional "run Council on this?" offer. |
37
+ | `verbosity.post_action_reports` | `off` / `minimal` / `full` — multi-line status blocks after a successful action. |
38
+ | `verbosity.intent_announcements` | When `false`, writers must not generate "Let me…", "Now I will…", "Found it" openers. |
39
+ | `caveman.speak_scope` | `off` / `prose_only` / `aggressive` — caveman-speak grammar scope. Iron-Law fenced blocks never touched. |
40
+
41
+ Phase 10 adds `verbosity.script_output` (`silent` / `minimal` / `verbose`) and `verbosity.taskfile_command_echo` (`true` / `false`); writer artifacts cite this row when those land.
42
+
43
+ ## Cross-references — frugality canon rules
44
+
45
+ Consolidated index. Source rules used to carry trailing
46
+ `Interactions` / `See also` blocks; those are stripped to reclaim
47
+ kernel chars. The pointers below replace them.
48
+
49
+ | Rule | Interacts with |
50
+ |---|---|
51
+ | `direct-answers` | `language-and-tone` · `ask-when-uncertain` · `think-before-action` · `verify-before-complete` · `token-efficiency` · `user-interaction` (overrides brevity) · `caveman-speak` |
52
+ | `no-cheap-questions` | `ask-when-uncertain` · `autonomous-execution` · `commit-policy` · `scope-control` · `non-destructive-by-default` · `user-interaction` · `direct-answers` |
53
+ | `caveman-speak` | `language-and-tone` (mirror user language **before** caveman) · `direct-answers` Iron Law 3 (caveman is one brevity tactic, not a replacement) · `user-interaction` (numbered-options carve-out) · `commit-policy`, `non-destructive-by-default`, `scope-control` (Iron-Law literal fence carve-outs) |
54
+
55
+ ## Decidable carve-out predicates
56
+
57
+ Predicates with one-sentence tests live in [`docs/guidelines/agent-infra/carve-out-predicates.md`](../../../docs/guidelines/agent-infra/carve-out-predicates.md). Default-terse applies unless a predicate's test is yes/no decidable from the artifact alone.
@@ -0,0 +1,125 @@
1
+ # Roadmap-Process Loop
2
+
3
+ Loaded by [`/roadmap:process-step`](../../commands/roadmap/process-step.md),
4
+ [`/roadmap:process-phase`](../../commands/roadmap/process-phase.md), and
5
+ [`/roadmap:process-full`](../../commands/roadmap/process-full.md). Holds
6
+ the canonical autonomous-execution loop, roadmap discovery, cadence
7
+ resolution, commit-step pre-scan, halt conditions, and archival check.
8
+ The three command files are thin wrappers that bind only the **scope
9
+ delta**.
10
+
11
+ **Size budget:** ≤ 4,000 chars.
12
+
13
+ ## 1. Resolve roadmap
14
+
15
+ Search both locations:
16
+
17
+ - `agents/roadmaps/*.md` (project root)
18
+ - `app/Modules/*/agents/roadmaps/*.md` (module-scoped)
19
+
20
+ **Exclude** `template.md`, `archive/`, and `skipped/`.
21
+
22
+ - User named one (path, partial name, title) → use it.
23
+ - None named, single active roadmap (`count_open > 0`) → use it.
24
+ - None named, multiple active → default = **most recently modified**;
25
+ surface alternatives in the pre-run summary.
26
+ - None active → tell the user; suggest [`/roadmap:create`](../../commands/roadmap/create.md).
27
+
28
+ ## 2. Pre-run summary — single confirmation gate
29
+
30
+ Before the loop runs, show the resolved config in the user's language:
31
+
32
+ > Roadmap: `<resolved-path>`
33
+ > Phase 1: `<name>` — 3/5 done
34
+ > Phase 2: `<name>` — 0/4
35
+ > Next open step: `<description>`
36
+ > Scope: **step | phase | full**
37
+ > AI council: **on | off** (`<member list or "no members configured">`)
38
+ > Quality cadence: **end_of_roadmap | per_phase | per_step**
39
+ > Commit steps in roadmap: **N** (see § 3)
40
+ >
41
+ > 1. Go — start processing autonomously
42
+ > 2. Different roadmap · 3. Different scope · 4. Toggle council · 5. Abort
43
+
44
+ Skip the gate when scope, roadmap, and council are all unambiguous in
45
+ the invocation (e.g. `/roadmap:process-phase road-to-X.md with council`).
46
+
47
+ ## 3. Commit-step pre-scan — one upfront ask
48
+
49
+ Before step 4, scan the roadmap for explicit commit steps (lines
50
+ matching `commit:` / `git commit` / `Commit phase` patterns).
51
+
52
+ - **No commit steps** → nothing to ask. Never commit, never re-ask
53
+ per [`commit-policy`](../../rules/commit-policy.md).
54
+ - **Commit steps present, autonomous mode** (`personal.autonomy: on`,
55
+ or `auto` after opt-in) → ask **once** upfront:
56
+ > "Roadmap contains N commit steps. Authorize all of them for this
57
+ > run? (yes / no / list them)"
58
+ Cache the answer for the whole run; do **not** re-ask per step.
59
+ Hard-Floor diffs (bulk deletions, infra) still trigger the
60
+ per-commit gate from [`commit-mechanics`](../authority/commit-mechanics.md).
61
+ - **Commit steps present, non-autonomous** → ask before each commit
62
+ step inside the loop.
63
+
64
+ ## 4. Resolve quality cadence
65
+
66
+ Read `roadmap.quality_cadence` from `.agent-settings.yml` once:
67
+
68
+ | Value | Pipeline runs |
69
+ |---|---|
70
+ | `end_of_roadmap` (default) | Once, before archival (§ 6) |
71
+ | `per_phase` | At every phase boundary + § 6 |
72
+ | `per_step` | After every step + § 6 |
73
+
74
+ Missing / unreadable / unknown → fall back to `end_of_roadmap`.
75
+ The Iron Law [`verify-before-complete`](../../rules/verify-before-complete.md)
76
+ still mandates fresh quality output before any "complete" claim.
77
+
78
+ ## 5. Step loop
79
+
80
+ For each open step in the working set (scope-bound — see wrapper):
81
+
82
+ 1. Read the step description and inline notes.
83
+ 2. Analyze the codebase for what the step requires.
84
+ 3. Decide and act — implement. **No "should I implement this?" prompt.**
85
+ 4. **Open question handling:**
86
+ - **Council on** → invoke per [`ai-council`](../../skills/ai-council/SKILL.md),
87
+ integrate convergence, proceed. Token spend was opted in.
88
+ - **Council off** → halt, surface once, wait. Resume on next turn.
89
+ 5. Mark the checkbox: `[x]` done · `[~]` partial · `[-]` skipped.
90
+ 6. Regenerate the dashboard — `./agent-config roadmap:progress` — in
91
+ the **same response** per [`roadmap-progress-sync`](../../rules/roadmap-progress-sync.md).
92
+ 7. Run quality pipeline if cadence is `per_step`.
93
+
94
+ ### Halt conditions
95
+
96
+ - Hard-Floor trigger ([`non-destructive-by-default`](../../rules/non-destructive-by-default.md))
97
+ - Security-sensitive path ([`security-sensitive-stop`](../../rules/security-sensitive-stop.md))
98
+ - Step reveals work outside the roadmap's scope
99
+ - Test failure or quality red on `per_step`
100
+ - Council off + true ambiguity
101
+
102
+ On halt: stop, surface state, do **not** auto-fix outside the failing step.
103
+
104
+ ## 6. Final report and archival
105
+
106
+ - Summary: scope-bound (steps/phases done in this run), council
107
+ consultations count (if on), steps remaining, halts.
108
+ - Final dashboard regen.
109
+ - **If the entire roadmap reached `count_open == 0`** → run the full
110
+ project quality pipeline. On green → archival via the
111
+ [`roadmap-management`](../../skills/roadmap-management/SKILL.md) skill
112
+ (`git mv` to `agents/roadmaps/archive/`, regenerate dashboard). On
113
+ red → stop, surface failures, do **not** archive.
114
+
115
+ ## Scope deltas — what each wrapper binds
116
+
117
+ | Wrapper | Working set | Stop after |
118
+ |---|---|---|
119
+ | `process-step` | Single first open step | One iteration of § 5 |
120
+ | `process-phase` | All open steps in first phase with `count_open > 0` | Phase boundary; per-phase quality if cadence ≠ `end_of_roadmap` |
121
+ | `process-full` | Every open step across every phase, in order | Roadmap fully closed (or halt) |
122
+
123
+ `process-full` runs the per-phase quality pipeline at every phase
124
+ boundary when cadence is `per_phase` or `per_step`; on red it halts
125
+ before the next phase.
@@ -30,7 +30,7 @@ Commands often chain together. Here are the main workflows:
30
30
  ### Feature Development
31
31
 
32
32
  ```
33
- /feature-explore → /feature-plan → /feature-roadmap → /roadmap-execute
33
+ /feature-explore → /feature-plan → /feature-roadmap → /roadmap:process-phase
34
34
  ↓ ↓ ↓ ↓
35
35
  Brainstorm Structure Phases/Steps Implement
36
36
  ```
@@ -40,6 +40,15 @@ Each project documents its own architecture in `./agents/` and/or `AGENTS.md`.
40
40
  **Always read those files** before making structural decisions. Do not rely on this rule file
41
41
  for project-specific directory layouts, database conventions, or module systems.
42
42
 
43
+ ## Architectural Decision Records (ADRs)
44
+
45
+ When a structural decision is non-trivial (kernel membership, contract change, library swap,
46
+ deprecation, scope re-cut), record it as an ADR. Use the [`adr-create`](../skills/adr-create/SKILL.md)
47
+ skill — it numbers the file (`ADR-NNN-<slug>.md`), writes the standard template
48
+ (Status / Context / Decision / Consequences / Alternatives / References), and regenerates the
49
+ index via `scripts/adr/regenerate_index.py`. ADRs land in `docs/adr/` by default; legacy
50
+ projects use `docs/decisions/`. Reversible refactors and minor cleanups do **not** need ADRs.
51
+
43
52
  ## Module-Level Documentation
44
53
 
45
54
  Some projects use a module system (e.g. `app/Modules/` in Laravel projects).
@@ -17,7 +17,7 @@ ONE QUESTION PER TURN. NO EXCEPTIONS.
17
17
  ASK. WAIT FOR THE ANSWER. THEN ASK THE NEXT.
18
18
  ```
19
19
 
20
- Absolute. Every turn with a question has **exactly one** — even if trivial, independent, or batchable.
20
+ Even if trivial, independent, or batchable — exactly one.
21
21
 
22
22
  ## When to ask
23
23
 
@@ -29,19 +29,9 @@ Absolute. Every turn with a question has **exactly one** — even if trivial, in
29
29
 
30
30
  ## Vague-request triggers — MUST ask
31
31
 
32
- Match without further context → ask **before** touching code:
32
+ Nine patterns — "improve / optimize" · "add caching" · "make it better / cleaner" · "clean up this file" · "fix this" (no symptom) · "refactor X" · "use best practices" · "handle errors properly" · "add a UI / component / tile / page" in a mixed-framework repo. Match without further context → ask **before** touching code.
33
33
 
34
- - "improve / optimize this" metric? speed, readability, memory?
35
- - "add caching" — store? scope? invalidation?
36
- - "make it better / cleaner" — by what standard?
37
- - "clean up this file" — dead code? format? refactor?
38
- - "fix this" (no symptom) — what output is wrong?
39
- - "refactor X" — target pattern? boundaries?
40
- - "use best practices" — whose? for what?
41
- - "handle errors properly" — which errors? log/retry/propagate?
42
- - "add a UI/component/tile/page" in mixed-framework repo — which stack?
43
-
44
- Examples: [`asking-and-brevity-examples § vague-triggers`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md#vague-request-triggers--example-questions).
34
+ Per-pattern missing-info and clarifying questions: [`asking-and-brevity-examples § vague-triggers`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md#vague-request-triggers--example-questions).
45
35
 
46
36
  **Escape hatch:** unambiguous from ticket / open file / prior turn → proceed, state the assumption.
47
37
 
@@ -0,0 +1,78 @@
1
+ ---
2
+ type: "auto"
3
+ tier: "1"
4
+ description: "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."
5
+ source: package
6
+ triggers:
7
+ - intent: "any reply"
8
+ ---
9
+
10
+ # Caveman Speak
11
+
12
+ Compress reply prose to caveman grammar per `caveman.speak_scope`. Body
13
+ prose only — carve-outs preserved byte-for-byte.
14
+
15
+ ## Scope
16
+
17
+ Read `caveman.speak_scope` from `.agent-settings.yml`:
18
+
19
+ - `off` — rule inactive.
20
+ - `prose_only` (default) — caveman in body prose; carve-outs preserved.
21
+ - `aggressive` — caveman everywhere except Iron-Law literals.
22
+
23
+ Compile-time toggle `caveman.speak`: `false` → rule omitted from
24
+ `router.json` (zero runtime cost). `caveman.enabled: false` forces all
25
+ sub-switches off regardless.
26
+
27
+ ## Carve-outs — byte-for-byte preserved
28
+
29
+ Mangling these breaks Iron Laws. Apply regardless of `speak_scope`:
30
+
31
+ 1. **Triple-backtick ALL-CAPS blocks** — Iron-Law literal fences in
32
+ `commit-policy`, `non-destructive-by-default`, `direct-answers`, etc.
33
+ 2. **Numbered-options blocks** — lines matching `^>?\s*\d+\.\s` plus
34
+ the `**Recommendation:**` / `**Empfehlung:**` label
35
+ (`user-interaction` Iron Law 1).
36
+ 3. **Code blocks** — any triple-backtick fence, any language.
37
+ 4. **Backtick spans** — file paths, command names, identifiers
38
+ (`direct-answers` Iron Law 2 — no invented facts).
39
+ 5. **Status / error markers** — lines prefixed `❌`, `⚠️`, `✅`.
40
+ 6. **Mode markers** per `role-mode-adherence`.
41
+ 7. **Deliverables** — PR titles / bodies, commit messages, ticket
42
+ summaries, articles, single-question prompts asked to the user.
43
+ These are written **for** the user, not chat-prose.
44
+
45
+ ## Enforcement mechanism
46
+
47
+ Post-rewrite validator runs on every reply when `speak_scope != off`:
48
+
49
+ 1. **Snapshot** — before compression, hash each line in carve-out
50
+ regions (1–7 above).
51
+ 2. **Rewrite** — compress body prose to caveman grammar.
52
+ 3. **Validate** — re-scan; for each carve-out region whose line hash
53
+ differs from the snapshot, **restore the original prose**.
54
+ 4. **Emit** — the validated reply.
55
+
56
+ The rule documents the algorithm; agents apply it inline before
57
+ sending. The mechanism is the rule, not a hidden script.
58
+
59
+ ## Caveman grammar
60
+
61
+ - Drop articles (`the`, `a`, `an`).
62
+ - Drop linking auxiliaries (`is`, `are`, `was`, `be`) where
63
+ unambiguous.
64
+ - Drop pronouns when context is clear.
65
+ - Keep nouns, verbs, key adjectives, negation, numbers.
66
+
67
+ Example: *"I will now check the file and see if it exists"* →
68
+ *"Check file. Exists?"*
69
+
70
+ ## Settings
71
+
72
+ | Key | Default | Effect |
73
+ |---|---|---|
74
+ | `caveman.enabled` | `true` | Master — `false` forces all sub-switches off. |
75
+ | `caveman.speak` | `true` | Compile-time include in `router.json`. |
76
+ | `caveman.speak_scope` | `prose_only` | Runtime scope of caveman grammar. |
77
+
78
+ Cross-rule index: [`frugality-charter § cross-references`](../contexts/contracts/frugality-charter.md#cross-references--frugality-canon-rules).
@@ -13,12 +13,10 @@ Three Iron Laws govern every reply.
13
13
  ## Iron Law 1 — No Flattery
14
14
 
15
15
  ```
16
- NEVER OPEN WITH "GREAT QUESTION", "FASCINATING", "EXCELLENT POINT".
17
- NEVER PRAISE THE USER'S IDEA TO MAKE THEM HAPPY.
16
+ NEVER OPEN WITH "GREAT QUESTION", "FASCINATING", OR PRAISE TO PLEASE THE USER.
18
17
  ANSWER THE SUBSTANCE. SHIP THE TRUTH.
19
18
  ```
20
19
 
21
- - No positive-adjective opener about user / question / idea / work.
22
20
  - No subjective judgment on user code unless evaluation was asked.
23
21
  - "Good catch" / "you're right" only when literally true.
24
22
  - Mistakes — one-sentence acknowledge, switch behavior, no apology theatre.
@@ -31,14 +29,7 @@ THE MORE LOAD-BEARING THE CLAIM, THE HARDER YOU VERIFY.
31
29
  WHEN VERIFICATION IS NOT WORTH THE COST → ASK.
32
30
  ```
33
31
 
34
- | Severity | Action |
35
- |---|---|
36
- | **High** — load-bearing (paths, signatures, versions, security, "this passes") | Verify with `view` / `grep` / `codebase-retrieval` / fresh output. Too expensive → ask. |
37
- | **Medium** — project-shape (conventions, file location) | One-tool-call verify, else hedge: *"I'd guess X — not checked"*. |
38
- | **Low** — well-known idioms | Inference OK; mark as inference if not 100% sure. |
39
-
40
- Override: "just guess" / "rough estimate" / "skip verify" → drop to Low for that turn.
41
- Examples + hedge patterns: [`asking-and-brevity-examples § severity`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md#direct-answers--severity-tiered-claim-examples).
32
+ Severity tiers (High = load-bearing · Medium = project-shape · Low = idioms), per-tier verification actions, and "just guess" override: [`asking-and-brevity-examples § severity`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md#direct-answers--severity-tiered-claim-examples).
42
33
 
43
34
  ## Iron Law 3 — Brevity by Default
44
35
 
@@ -54,6 +45,8 @@ LONG ANSWERS ARE A FAILURE MODE, NOT A SIGN OF EFFORT.
54
45
 
55
46
  Never overrides `user-interaction` (numbered options stay) or command-mandated steps.
56
47
 
48
+ **Narration carve-out:** restore narration only when both `personal.play_by_play` AND `verbosity.intent_announcements` are `true` in `.agent-settings.yml`.
49
+
57
50
  ## Emoji Scope — functional markers only
58
51
 
59
52
  **Whitelist:** mode markers (`role-mode-adherence`); CLI status `❌` / `✅` / `⚠️`; roadmap checkboxes `[x]` / `[~]` / `[-]`.
@@ -65,6 +58,4 @@ Trigger phrases + correction pattern: [`asking-and-brevity-examples § failure-m
65
58
  Pattern Memory (wrong / right / why): [`direct-answers-demos`](../docs/guidelines/agent-infra/direct-answers-demos.md).
66
59
  Outcome baseline: [`tests/golden/outcomes/direct_answers.json`](../../tests/golden/outcomes/direct_answers.json).
67
60
 
68
- ## Interactions
69
-
70
- `language-and-tone` · `ask-when-uncertain` · `think-before-action` · `verify-before-complete` · `token-efficiency` · `user-interaction` (overrides brevity).
61
+ Cross-rule index: [`frugality-charter § cross-references`](../contexts/contracts/frugality-charter.md#cross-references--frugality-canon-rules).
@@ -4,6 +4,7 @@ tier: "2b"
4
4
  description: "Before implementing features or architectural changes — validate the request against existing code, challenge weak requirements, and suggest improvements"
5
5
  alwaysApply: false
6
6
  source: package
7
+ council_depth: deep
7
8
  triggers:
8
9
  - intent: "implement feature"
9
10
  - intent: "architectural change"
@@ -0,0 +1,71 @@
1
+ ---
2
+ type: "auto"
3
+ tier: "2b"
4
+ description: "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"
5
+ alwaysApply: false
6
+ source: package
7
+ council_depth: deep
8
+ triggers:
9
+ - intent: "complex plan"
10
+ - intent: "design decision"
11
+ - intent: "architectural plan"
12
+ - intent: "multi-step implementation"
13
+ - keyword: "plan"
14
+ - keyword: "design"
15
+ - keyword: "architecture"
16
+ - keyword: "approach"
17
+ ---
18
+
19
+ # invite-challenge
20
+
21
+ ## The Iron Law
22
+
23
+ ```
24
+ BEFORE EXECUTING A COMPLEX PLAN — ASK ONCE:
25
+ "AM I SOLVING THE RIGHT PROBLEM?"
26
+ PAUSE. WAIT FOR CONFIRMATION. THEN PROCEED.
27
+ ```
28
+
29
+ Proactive confirmation checkpoint. Distinct from [`direct-answers`](direct-answers.md) (reactive — fires after misdirection is detected) and [`ask-when-uncertain`](ask-when-uncertain.md) (info-gathering — fires when context is missing). This rule fires when context is **sufficient** and direction **looks correct** but the plan is heavy enough that a silent misread would be expensive.
30
+
31
+ ## When to activate
32
+
33
+ Two or more of:
34
+
35
+ - Touches ≥ 3 files or ≥ 2 modules
36
+ - New abstraction, pattern, or library
37
+ - Security / billing / tenant / data-boundary path
38
+ - Migration, schema change, or backwards-incompatible API change
39
+ - Estimated effort > 30 min of agent work
40
+ - High-level goal ("rebuild the dashboard") rather than a bounded task ("rename this method")
41
+
42
+ **Does NOT activate for:** evidenced bug fixes · trivial edits · user-fenced tasks ("just do it") · steps inside an already-confirmed plan (ask once per plan, not per step) · cases handled by [`improve-before-implement`](improve-before-implement.md) Phase 1.
43
+
44
+ ## How to challenge
45
+
46
+ One question, one turn. Numbered options per [`user-interaction`](user-interaction.md):
47
+
48
+ ```
49
+ > Before I start, one check:
50
+ >
51
+ > Goal as I read it: {1-sentence restatement}
52
+ > Plan: {2-3 bullet shape, not full implementation}
53
+ > Risk if I misread: {what would be wasted}
54
+ >
55
+ > 1. Goal + plan match — proceed
56
+ > 2. Goal right, plan needs adjustment — say what
57
+ > 3. Goal wrong — let me restate
58
+ ```
59
+
60
+ The restatement is the load-bearing part. Pick 1 → execute. Pick 2 or 3 → fold the correction in, do not re-ask.
61
+
62
+ ## Scope limits
63
+
64
+ - **One challenge per plan**, not per step.
65
+ - **Skip when the user already restated the goal** in the same turn.
66
+ - **Skip when [`scope-control § fenced step`](scope-control.md) applies** — deliver the plan, hand back, no confirmation question appended.
67
+ - **Never argue the goal twice** — user's restatement is final for the turn.
68
+
69
+ ## Interactions
70
+
71
+ [`direct-answers`](direct-answers.md) fires after misdirection · [`ask-when-uncertain`](ask-when-uncertain.md) fires on missing context · [`improve-before-implement`](improve-before-implement.md) Phase 1 already runs a clarity check (do not double-ask) · [`scope-control § fenced step`](scope-control.md) handback wins · [`no-cheap-questions`](no-cheap-questions.md) — checkpoint must carry a real goal restatement, not a content-free "ready?".
@@ -12,12 +12,11 @@ triggers:
12
12
 
13
13
  # Markdown Safe Codeblocks
14
14
 
15
- When generating markdown with code blocks:
15
+ When generating markdown that contains code blocks:
16
16
 
17
- - **NEVER** nest triple backticks inside triple backticks — this breaks rendering and copy/paste.
18
- - If content already contains triple backticks, use one of:
19
- - Plain text blocks (indented by 4 spaces) — **preferred**
20
- - `~~~` fences instead of backtick fences
21
- - Four backticks (``````) as outer fence
17
+ - **NEVER** nest triple backticks inside triple backticks — breaks rendering and copy/paste.
18
+ - Content to be wrapped contains ``` blocks → **use `~~~` as the outer fence. This is the default.** Inner ``` renders correctly inside `~~~`.
19
+ - Four-backtick outer fences render inconsistently across clients — **do not use**.
20
+ - 4-space indented blocks: acceptable fallback only when plain text without language highlighting is enough.
22
21
  - Prefer stability over pretty formatting.
23
- - Always validate: no broken rendering, no prematurely closed blocks, entire content is selectable and copyable.
22
+ - Always validate before sending: no broken rendering, no prematurely closed blocks, entire content selectable and copyable.
@@ -20,17 +20,9 @@ NEVER OFFER NUMBERED CHOICES WITHOUT A REAL TRADE-OFF.
20
20
 
21
21
  ## What counts as cheap
22
22
 
23
- - **Sequencing**"Step 2 or 3 next?" when the roadmap orders them.
24
- - **Format-only** — "Table or paragraph?"; no semantic trade-off.
25
- - **Commit asks** forbidden by [`commit-policy`](commit-policy.md).
26
- - **CI / test asks** — [`verify-before-complete`](verify-before-complete.md) decides, not the user.
27
- - **Fenced-step re-asks** — "Start Phase 1?" after *"plan only"*; see [`scope-control § fenced step`](scope-control.md#fenced-step--user-set-review-gates).
28
- - **Iron-Law option** — breaches `commit-policy`, `scope-control § git-ops`, or `non-destructive-by-default`.
29
- - **Context-derived** — answer follows from prior turn / standing instruction / roadmap; act, state the assumption inline.
30
- - **Dominant option** — one choice obviously correct; alternatives carry no upside.
31
- - **Re-ask after decline** — forbidden per [`scope-control § decline = silence`](scope-control.md#decline--silence--no-re-asking-on-the-same-task).
32
-
33
- Examples per class: [`asking-and-brevity-examples § cheap-question-catalog`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md#cheap-question-class-catalog--extended-examples).
23
+ Nine classessequencing · format-only · commit asks (forbidden by [`commit-policy`](commit-policy.md)) · CI / test asks ([`verify-before-complete`](verify-before-complete.md) decides) · fenced-step re-asks ([`scope-control § fenced step`](scope-control.md#fenced-step--user-set-review-gates)) · Iron-Law option (breaches `commit-policy`, `scope-control § git-ops`, or `non-destructive-by-default`) · context-derived · dominant option · re-ask after decline ([`scope-control § decline = silence`](scope-control.md#decline--silence--no-re-asking-on-the-same-task)).
24
+
25
+ Per-class patterns and examples: [`asking-and-brevity-examples § cheap-question-catalog`](../docs/guidelines/agent-infra/asking-and-brevity-examples.md#cheap-question-class-catalog--extended-examples).
34
26
 
35
27
  ## Pre-Send Self-Check — MANDATORY before every question
36
28
 
@@ -55,6 +47,4 @@ Any "yes" → **do not ask**. Pick the dominant path, state assumption inline (*
55
47
 
56
48
  In doubt → ask. This rule narrows asking, never widens silence.
57
49
 
58
- ## Interactions
59
-
60
- [`ask-when-uncertain`](ask-when-uncertain.md) · [`autonomous-execution`](autonomous-execution.md) · [`commit-policy`](commit-policy.md) · [`scope-control`](scope-control.md) · [`non-destructive-by-default`](non-destructive-by-default.md) · [`user-interaction`](user-interaction.md) · [`direct-answers`](direct-answers.md).
50
+ Cross-rule index: [`frugality-charter § cross-references`](../contexts/contracts/frugality-charter.md#cross-references--frugality-canon-rules).
@@ -21,16 +21,14 @@ NEVER load full command output into context. Redirect → read summary → targe
21
21
  ```
22
22
 
23
23
  ```
24
- NEVER call the same tool more than 2 times in a row with similar parameters.
25
- If you catch yourself repeating a tool call — STOP, rethink, try a different approach, or ask the user.
24
+ NEVER CALL THE SAME TOOL >2 TIMES IN A ROW WITH SIMILAR PARAMETERS.
25
+ IF YOU CATCH YOURSELF REPEATING STOP, RETHINK, ASK.
26
26
  ```
27
27
 
28
28
  ## Fresh Output Over Memory
29
29
 
30
- When a tool or command returns a value (branch name, file path, PR number), use that EXACT value in subsequent API calls. NEVER substitute a value from earlier in the conversation. Context decay silent mismatches — fresh output is the only source of truth.
30
+ When a tool returns a value (branch name, file path, PR number), use that EXACT value in subsequent API calls. NEVER substitute a value from earlier in the conversation. Context decay causes silent mismatches — fresh output is the only source of truth.
31
31
 
32
- ## Mechanics — anti-loop patterns, conversation efficiency, exceptions
32
+ ## Mechanics
33
33
 
34
- The anti-loop patterns (extended-reasoning loops, "CRITICAL INSTRUCTION" self-prompting), the act-skip-narration / stop-early / keep-output-minimal / don't-re-read / minimize-tool-calls clauses, and the small-output / debugging / explicit-full-output exceptions all live in [`contexts/communication/rules-auto/token-efficiency-mechanics.md`](../contexts/communication/rules-auto/token-efficiency-mechanics.md). The rule above is the obligation surface; the mechanics file is the lookup material.
35
-
36
- This rule NEVER overrides `user-interaction` or command rules. Token efficiency means fewer *unnecessary* words — NOT skipping required questions, numbered options, or command steps.
34
+ Anti-loop patterns, act-skip-narration / stop-early / minimize-tool-calls clauses, and small-output / debugging exceptions: [`token-efficiency-mechanics`](../contexts/communication/rules-auto/token-efficiency-mechanics.md). Precedence: never overrides `user-interaction` or command rules.