@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.
- package/.agent-src/commands/agents/cleanup.md +31 -17
- package/.agent-src/commands/bug-fix.md +1 -0
- package/.agent-src/commands/bug-investigate.md +1 -0
- package/.agent-src/commands/challenge-me/vision.md +348 -0
- package/.agent-src/commands/challenge-me/with-docs.md +333 -0
- package/.agent-src/commands/challenge-me.md +61 -0
- package/.agent-src/commands/commit/in-chunks.md +30 -10
- package/.agent-src/commands/commit.md +46 -6
- package/.agent-src/commands/compress.md +19 -13
- package/.agent-src/commands/cost-report.md +120 -0
- package/.agent-src/commands/council/default.md +64 -17
- package/.agent-src/commands/create-pr/description-only.md +8 -0
- package/.agent-src/commands/create-pr.md +99 -80
- package/.agent-src/commands/feature/plan.md +13 -7
- package/.agent-src/commands/grill-me.md +38 -0
- package/.agent-src/commands/judge/steps.md +1 -1
- package/.agent-src/commands/memory/add.md +16 -8
- package/.agent-src/commands/memory/promote.md +17 -9
- package/.agent-src/commands/optimize/rtk.md +16 -11
- package/.agent-src/commands/prepare-for-review.md +12 -6
- package/.agent-src/commands/project-analyze.md +31 -20
- package/.agent-src/commands/review-changes.md +24 -15
- package/.agent-src/commands/roadmap/ai-council.md +183 -0
- package/.agent-src/commands/roadmap/create.md +20 -10
- package/.agent-src/commands/roadmap/process-full.md +58 -0
- package/.agent-src/commands/roadmap/process-phase.md +69 -0
- package/.agent-src/commands/roadmap/process-step.md +57 -0
- package/.agent-src/commands/roadmap.md +44 -16
- package/.agent-src/commands/threat-model.md +1 -0
- package/.agent-src/contexts/augment-infrastructure.md +1 -1
- package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +53 -18
- package/.agent-src/contexts/contracts/frugality-charter.md +57 -0
- package/.agent-src/contexts/execution/roadmap-process-loop.md +125 -0
- package/.agent-src/contexts/skills-and-commands.md +1 -1
- package/.agent-src/rules/architecture.md +9 -0
- package/.agent-src/rules/ask-when-uncertain.md +3 -13
- package/.agent-src/rules/caveman-speak.md +78 -0
- package/.agent-src/rules/direct-answers.md +5 -14
- package/.agent-src/rules/improve-before-implement.md +1 -0
- package/.agent-src/rules/invite-challenge.md +71 -0
- package/.agent-src/rules/markdown-safe-codeblocks.md +6 -7
- package/.agent-src/rules/no-cheap-questions.md +4 -14
- package/.agent-src/rules/token-efficiency.md +5 -7
- package/.agent-src/skills/adr-create/SKILL.md +197 -0
- package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
- package/.agent-src/skills/agent-docs-writing/SKILL.md +23 -1
- package/.agent-src/skills/ai-council/SKILL.md +132 -8
- package/.agent-src/skills/bug-analyzer/SKILL.md +1 -0
- package/.agent-src/skills/command-writing/SKILL.md +23 -0
- package/.agent-src/skills/context-authoring/SKILL.md +23 -0
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +23 -0
- package/.agent-src/skills/guideline-writing/SKILL.md +22 -0
- package/.agent-src/skills/persona-writing/SKILL.md +153 -0
- package/.agent-src/skills/readme-writing/SKILL.md +20 -0
- package/.agent-src/skills/readme-writing-package/SKILL.md +19 -0
- package/.agent-src/skills/roadmap-management/SKILL.md +7 -7
- package/.agent-src/skills/roadmap-writing/SKILL.md +157 -0
- package/.agent-src/skills/rule-writing/SKILL.md +22 -0
- package/.agent-src/skills/script-writing/SKILL.md +226 -0
- package/.agent-src/skills/skill-writing/SKILL.md +23 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +22 -2
- package/.agent-src/skills/technical-specification/SKILL.md +58 -1
- package/.agent-src/skills/test-driven-development/SKILL.md +24 -0
- package/.agent-src/skills/threat-modeling/SKILL.md +1 -0
- package/.agent-src/templates/agent-settings.md +87 -3
- package/.agent-src/templates/command.md +30 -9
- package/.agent-src/templates/roadmaps.md +10 -2
- package/.agent-src/templates/rule.md +8 -0
- package/.agent-src/templates/skill.md +49 -0
- package/.claude-plugin/marketplace.json +14 -2
- package/AGENTS.md +3 -3
- package/CHANGELOG.md +73 -0
- package/README.md +5 -5
- package/config/agent-settings.template.yml +22 -0
- package/docs/architecture.md +4 -4
- package/docs/contracts/command-clusters.md +45 -1
- package/docs/customization.md +72 -0
- package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +126 -0
- package/docs/decisions/INDEX.md +15 -0
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +27 -19
- package/docs/guidelines/agent-infra/carve-out-predicates.md +17 -0
- package/docs/guidelines/agent-infra/mcp-request-signing.md +199 -0
- package/docs/guidelines/agent-infra/naming.md +1 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +11 -4
- package/package.json +1 -1
- package/scripts/_lib/__init__.py +5 -0
- package/scripts/_lib/script_output.py +140 -0
- package/scripts/_phase2_shim_helper.py +1 -1
- package/scripts/adr/regenerate_index.py +79 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_add_quiet.py +149 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_inject_quiet_flag.py +33 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_v2.sh +36 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_measure_verbosity.sh +26 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_per_task.sh +41 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_silent_taskfiles.py +98 -0
- package/scripts/check_augmentignore.py +4 -1
- package/scripts/check_command_count_messaging.py +4 -1
- package/scripts/check_compressed_paths.py +4 -1
- package/scripts/check_council_layout.py +4 -1
- package/scripts/check_council_references.py +4 -1
- package/scripts/check_iron_law_prominence.py +3 -1
- package/scripts/check_md_language.py +3 -1
- package/scripts/check_memory_proposal.py +3 -1
- package/scripts/check_public_catalog_links.py +4 -1
- package/scripts/check_reply_consistency.py +8 -2
- package/scripts/check_roadmap_trackable.py +4 -1
- package/scripts/compile_router.py +27 -0
- package/scripts/compress.py +33 -19
- package/scripts/cost/budget.mjs +152 -0
- package/scripts/cost/track.mjs +144 -0
- package/scripts/council_cli.py +127 -10
- package/scripts/first-run.sh +3 -9
- package/scripts/install-hooks.sh +19 -1
- package/scripts/install.py +17 -12
- package/scripts/install.sh +19 -8
- package/scripts/lint_examples.py +6 -2
- package/scripts/lint_handoffs.py +4 -1
- package/scripts/lint_load_context.py +4 -1
- package/scripts/lint_roadmap_complexity.py +6 -2
- package/scripts/lint_rule_interactions.py +4 -1
- package/scripts/lint_rule_tiers.py +4 -1
- package/scripts/measure_frugality_savings.py +164 -0
- package/scripts/migrate_command_suggestions.py +2 -2
- package/scripts/runtime_dispatcher.py +11 -0
- package/scripts/schemas/command.schema.json +5 -0
- package/scripts/schemas/rule.schema.json +5 -0
- package/scripts/schemas/skill.schema.json +5 -0
- package/scripts/skill_linter.py +208 -3
- 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
|
|
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` |
|
package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md
CHANGED
|
@@ -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` · `
|
|
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
|
|
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-
|
|
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
|
-
|
|
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
|
-
-
|
|
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",
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
15
|
+
When generating markdown that contains code blocks:
|
|
16
16
|
|
|
17
|
-
- **NEVER** nest triple backticks inside triple backticks —
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
-
|
|
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 classes — sequencing · 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
|
-
|
|
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
|
|
25
|
-
|
|
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
|
|
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
|
|
32
|
+
## Mechanics
|
|
33
33
|
|
|
34
|
-
|
|
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.
|