@event4u/agent-config 1.15.0 → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent-src/commands/bug-fix.md +1 -1
- package/.agent-src/commands/bug-investigate.md +2 -2
- package/.agent-src/commands/chat-history-checkpoint.md +1 -1
- package/.agent-src/commands/chat-history-clear.md +1 -1
- package/.agent-src/commands/chat-history.md +1 -1
- package/.agent-src/commands/check-current-md.md +1 -1
- package/.agent-src/commands/council-design.md +96 -0
- package/.agent-src/commands/council-optimize.md +115 -0
- package/.agent-src/commands/council-pr.md +123 -0
- package/.agent-src/commands/council.md +219 -0
- package/.agent-src/commands/create-pr.md +23 -0
- package/.agent-src/commands/do-and-judge.md +3 -3
- package/.agent-src/commands/do-in-steps.md +4 -4
- package/.agent-src/commands/e2e-heal.md +1 -1
- package/.agent-src/commands/e2e-plan.md +1 -1
- package/.agent-src/commands/feature-dev.md +8 -0
- package/.agent-src/commands/feature-explore.md +6 -1
- package/.agent-src/commands/feature-plan.md +33 -2
- package/.agent-src/commands/feature-refactor.md +5 -0
- package/.agent-src/commands/feature-roadmap.md +6 -1
- package/.agent-src/commands/feature.md +58 -0
- package/.agent-src/commands/fix-ci.md +5 -0
- package/.agent-src/commands/fix-portability.md +5 -0
- package/.agent-src/commands/fix-pr-bot-comments.md +5 -0
- package/.agent-src/commands/fix-pr-comments.md +5 -0
- package/.agent-src/commands/fix-pr-developer-comments.md +5 -0
- package/.agent-src/commands/fix-references.md +5 -0
- package/.agent-src/commands/fix-seeder.md +5 -0
- package/.agent-src/commands/fix.md +60 -0
- package/.agent-src/commands/jira-ticket.md +1 -1
- package/.agent-src/commands/judge.md +1 -1
- package/.agent-src/commands/memory-add.md +3 -3
- package/.agent-src/commands/memory-full.md +2 -2
- package/.agent-src/commands/memory-promote.md +2 -2
- package/.agent-src/commands/mode.md +5 -5
- package/.agent-src/commands/onboard.md +3 -3
- package/.agent-src/commands/optimize-agents.md +6 -1
- package/.agent-src/commands/optimize-augmentignore.md +5 -0
- package/.agent-src/commands/optimize-rtk-filters.md +5 -0
- package/.agent-src/commands/optimize-skills.md +6 -1
- package/.agent-src/commands/optimize.md +54 -0
- package/.agent-src/commands/propose-memory.md +2 -2
- package/.agent-src/commands/review-changes.md +26 -1
- package/.agent-src/commands/review-routing.md +1 -1
- package/.agent-src/commands/roadmap-create.md +29 -2
- package/.agent-src/commands/set-cost-profile.md +3 -3
- package/.agent-src/commands/sync-agent-settings.md +2 -2
- package/.agent-src/commands/tests-create.md +1 -1
- package/.agent-src/commands/upstream-contribute.md +1 -1
- package/.agent-src/contexts/authority/commit-mechanics.md +57 -0
- package/.agent-src/contexts/authority/destructive-mechanics.md +66 -0
- package/.agent-src/contexts/authority/scope-mechanics.md +87 -0
- package/.agent-src/contexts/execution/autonomy-detection.md +54 -0
- package/.agent-src/contexts/execution/autonomy-examples.md +90 -0
- package/.agent-src/contexts/execution/autonomy-mechanics.md +29 -0
- package/.agent-src/contexts/execution/verification-mechanics.md +80 -0
- package/.agent-src/personas/README.md +1 -1
- package/.agent-src/rules/agent-authority.md +24 -0
- package/.agent-src/rules/architecture.md +1 -1
- package/.agent-src/rules/artifact-drafting-protocol.md +1 -1
- package/.agent-src/rules/artifact-engagement-recording.md +1 -1
- package/.agent-src/rules/ask-when-uncertain.md +1 -1
- package/.agent-src/rules/autonomous-execution.md +78 -114
- package/.agent-src/rules/capture-learnings.md +1 -1
- package/.agent-src/rules/chat-history-cadence.md +3 -3
- package/.agent-src/rules/chat-history-ownership.md +3 -3
- package/.agent-src/rules/chat-history-visibility.md +3 -3
- package/.agent-src/rules/{command-suggestion.md → command-suggestion-policy.md} +7 -7
- package/.agent-src/rules/commit-conventions.md +1 -1
- package/.agent-src/rules/commit-policy.md +14 -42
- package/.agent-src/rules/context-hygiene.md +3 -3
- package/.agent-src/rules/direct-answers.md +1 -1
- package/.agent-src/rules/docs-sync.md +1 -1
- package/.agent-src/rules/e2e-testing.md +1 -1
- package/.agent-src/rules/guidelines.md +4 -4
- package/.agent-src/rules/improve-before-implement.md +2 -2
- package/.agent-src/rules/language-and-tone.md +37 -96
- package/.agent-src/rules/minimal-safe-diff.md +3 -3
- package/.agent-src/rules/model-recommendation.md +4 -4
- package/.agent-src/rules/no-cheap-questions.md +89 -0
- package/.agent-src/rules/non-destructive-by-default.md +15 -49
- package/.agent-src/rules/onboarding-gate.md +5 -5
- package/.agent-src/rules/review-routing-awareness.md +9 -9
- package/.agent-src/rules/roadmap-progress-sync.md +26 -33
- package/.agent-src/rules/role-mode-adherence.md +2 -2
- package/.agent-src/rules/scope-control.md +65 -46
- package/.agent-src/rules/security-sensitive-stop.md +2 -2
- package/.agent-src/rules/size-enforcement.md +1 -1
- package/.agent-src/rules/think-before-action.md +5 -5
- package/.agent-src/rules/token-efficiency.md +4 -4
- package/.agent-src/rules/{ui-audit-before-build.md → ui-audit-gate.md} +3 -3
- package/.agent-src/rules/user-interaction.md +3 -3
- package/.agent-src/rules/verify-before-complete.md +12 -67
- package/.agent-src/scripts/update_roadmap_progress.py +9 -4
- package/.agent-src/skills/ai-council/SKILL.md +333 -0
- package/.agent-src/skills/api-endpoint/SKILL.md +2 -2
- package/.agent-src/skills/blade-ui/SKILL.md +1 -1
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +1 -1
- package/.agent-src/skills/bug-analyzer/SKILL.md +1 -1
- package/.agent-src/skills/command-routing/SKILL.md +1 -1
- package/.agent-src/skills/command-writing/SKILL.md +1 -1
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +1 -1
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +2 -2
- package/.agent-src/skills/developer-like-execution/SKILL.md +2 -2
- package/.agent-src/skills/flux/SKILL.md +1 -1
- package/.agent-src/skills/git-workflow/SKILL.md +1 -1
- package/.agent-src/skills/guideline-writing/SKILL.md +11 -11
- package/.agent-src/skills/learning-to-rule-or-skill/SKILL.md +4 -4
- package/.agent-src/skills/livewire/SKILL.md +1 -1
- package/.agent-src/skills/override-management/SKILL.md +2 -2
- package/.agent-src/skills/php-coder/SKILL.md +1 -1
- package/.agent-src/skills/playwright-testing/SKILL.md +2 -2
- package/.agent-src/skills/readme-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/readme-writing/SKILL.md +1 -1
- package/.agent-src/skills/readme-writing-package/SKILL.md +1 -1
- package/.agent-src/skills/receiving-code-review/SKILL.md +1 -1
- package/.agent-src/skills/review-routing/SKILL.md +2 -2
- package/.agent-src/skills/rule-writing/SKILL.md +1 -1
- package/.agent-src/skills/skill-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/skill-writing/SKILL.md +3 -3
- package/.agent-src/skills/subagent-orchestration/SKILL.md +1 -0
- package/.agent-src/skills/systematic-debugging/SKILL.md +1 -1
- package/.agent-src/skills/upstream-contribute/SKILL.md +1 -1
- package/.agent-src/skills/validate-feature-fit/SKILL.md +2 -2
- package/.agent-src/skills/{verify-before-complete → verify-completion-evidence}/SKILL.md +2 -2
- package/.agent-src/templates/agent-settings.md +8 -8
- package/.agent-src/templates/contexts/auth-model.md +1 -1
- package/.agent-src/templates/scripts/README.md +2 -2
- package/.agent-src/templates/scripts/telemetry/aggregator.py +16 -1
- package/.agent-src/templates/scripts/telemetry/engagement.py +59 -0
- package/.agent-src/templates/scripts/telemetry/report_renderer.py +28 -1
- package/.agent-src/templates/scripts/telemetry_record.py +14 -1
- package/.claude-plugin/marketplace.json +10 -2
- package/AGENTS.md +11 -9
- package/CHANGELOG.md +123 -1
- package/README.md +28 -30
- package/config/agent-settings.template.yml +58 -1
- package/config/gitignore-block.txt +3 -0
- package/docs/architecture.md +4 -4
- package/docs/catalog.md +331 -0
- package/docs/contracts/STABILITY.md +39 -0
- package/docs/contracts/adr-command-suggestion.md +3 -3
- package/docs/contracts/adr-product-ui-track.md +2 -2
- package/docs/contracts/agent-memory-contract.md +2 -2
- package/docs/contracts/artifact-engagement-flow.md +1 -1
- package/docs/contracts/command-clusters.md +2 -2
- package/docs/contracts/command-suggestion-flow.md +3 -3
- package/docs/contracts/implement-ticket-flow.md +2 -2
- package/docs/contracts/linear-ai-rules-inclusion.md +1 -1
- package/docs/contracts/load-context-schema.md +186 -0
- package/docs/contracts/rule-interactions.yml +96 -0
- package/docs/contracts/rule-priority-hierarchy.md +87 -0
- package/docs/contracts/ui-track-flow.md +1 -1
- package/docs/customization.md +14 -0
- package/docs/end-to-end-walkthroughs.md +165 -0
- package/docs/getting-started.md +26 -8
- package/docs/github-topics.md +12 -3
- package/docs/guidelines/agent-infra/language-and-tone-examples.md +79 -0
- package/{.agent-src → docs}/guidelines/docs/readme-size-and-splitting.md +26 -25
- package/docs/guidelines/php/git.md +164 -0
- package/docs/migrations/commands-1.15.0.md +1 -1
- package/docs/showcase.md +9 -4
- package/docs/skills-catalog.md +14 -8
- package/docs/ui-track-mental-model.md +2 -2
- package/llms.txt +13 -7
- package/package.json +1 -1
- package/scripts/agent-config +23 -0
- package/scripts/ai_council/__init__.py +39 -0
- package/scripts/ai_council/_default_prices.py +41 -0
- package/scripts/ai_council/_one_off_rebalancing_audit.py +149 -0
- package/scripts/ai_council/_one_off_roundtrip.py +106 -0
- package/scripts/ai_council/budget_guard.py +172 -0
- package/scripts/ai_council/bundler.py +261 -0
- package/scripts/ai_council/clients.py +381 -0
- package/scripts/ai_council/modes.py +127 -0
- package/scripts/ai_council/orchestrator.py +350 -0
- package/scripts/ai_council/pricing.py +213 -0
- package/scripts/ai_council/project_context.py +159 -0
- package/scripts/ai_council/prompts.py +232 -0
- package/scripts/ai_council/session.py +144 -0
- package/scripts/check_always_budget.py +126 -0
- package/scripts/check_augmentignore.py +69 -0
- package/scripts/check_command_count_messaging.py +120 -0
- package/scripts/check_portability.py +55 -0
- package/scripts/check_public_catalog_links.py +122 -0
- package/scripts/check_references.py +4 -1
- package/scripts/check_roadmap_trackable.py +111 -0
- package/scripts/command_suggester/cooldown.py +1 -1
- package/scripts/generate_index.py +266 -0
- package/scripts/install_anthropic_key.sh +5 -0
- package/scripts/install_openai_key.sh +106 -0
- package/scripts/lint_load_context.py +163 -0
- package/scripts/schemas/command.schema.json +20 -0
- package/scripts/schemas/rule.schema.json +10 -0
- package/scripts/skill_linter.py +12 -4
- package/scripts/sync_agent_settings.py +1 -1
- package/scripts/update_counts.py +9 -4
- package/scripts/update_prices.py +124 -0
- package/.agent-src/guidelines/php/git.md +0 -96
- /package/.agent-src/rules/{slash-commands.md → slash-command-routing-policy.md} +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/agent-interaction-and-decision-quality.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/break-glass-usage.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/developer-judgment.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/engineering-memory-data-format.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/layered-settings.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/memory-access.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/naming.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/output-patterns.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/review-routing-data-format.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/role-contracts.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/role-mode-router.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/runtime-layer.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/self-improvement-pipeline.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/size-and-scope.md +0 -0
- /package/{.agent-src → docs}/guidelines/agent-infra/tool-integration.md +0 -0
- /package/{.agent-src → docs}/guidelines/e2e/playwright.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/api-design.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/artisan-commands.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/blade-ui.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/controllers.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/database.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/eloquent.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/flux.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/general.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/jobs.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/livewire.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/logging.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/naming.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/dependency-injection.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/dtos.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/events.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/factory.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/pipelines.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/policies.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/repositories.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/service-layer.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns/strategy.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/patterns.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/performance.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/resources.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/security.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/sql.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/validations.md +0 -0
- /package/{.agent-src → docs}/guidelines/php/websocket.md +0 -0
|
@@ -12,7 +12,7 @@ Coding guidelines live in `.augment/guidelines/` organized by language.
|
|
|
12
12
|
|
|
13
13
|
## Available Guidelines
|
|
14
14
|
|
|
15
|
-
### PHP (
|
|
15
|
+
### PHP (`../../docs/guidelines/php/`)
|
|
16
16
|
|
|
17
17
|
| File | Topic |
|
|
18
18
|
|---|---|
|
|
@@ -37,7 +37,7 @@ Coding guidelines live in `.augment/guidelines/` organized by language.
|
|
|
37
37
|
| `websocket.md` | WebSocket conventions — Broadcasting, channel types, connection management |
|
|
38
38
|
| `patterns.md` | Design patterns index (links to `patterns/` subdirectory) |
|
|
39
39
|
|
|
40
|
-
### PHP Patterns (
|
|
40
|
+
### PHP Patterns (`../../docs/guidelines/php/patterns/`)
|
|
41
41
|
|
|
42
42
|
| File | Pattern |
|
|
43
43
|
|---|---|
|
|
@@ -51,11 +51,11 @@ Coding guidelines live in `.augment/guidelines/` organized by language.
|
|
|
51
51
|
| `pipelines.md` | Laravel Pipeline pattern |
|
|
52
52
|
| `strategy.md` | Strategy pattern implementation |
|
|
53
53
|
|
|
54
|
-
### E2E (
|
|
54
|
+
### E2E (`../../docs/guidelines/e2e/`)
|
|
55
55
|
|
|
56
56
|
Playwright best practices, Page Objects, fixtures, CI.
|
|
57
57
|
|
|
58
|
-
### Agent Infrastructure (
|
|
58
|
+
### Agent Infrastructure (`../../docs/guidelines/agent-infra/`)
|
|
59
59
|
|
|
60
60
|
| File | Topic |
|
|
61
61
|
|---|---|
|
|
@@ -41,10 +41,10 @@ Before coding, quickly verify:
|
|
|
41
41
|
- Does it follow established patterns in the codebase?
|
|
42
42
|
- Does it contradict existing conventions?
|
|
43
43
|
- Do **multiple valid patterns/frameworks** already exist (e.g. Tailwind + Flux, multiple form libraries, competing state stores)? If yes, do NOT pick one arbitrarily — ask which to use.
|
|
44
|
-
- Is the change a **second branch on the same discriminator** — second `match`/`switch` arm, second `if/elseif`, or second class hardcoded to one enum value (e.g. `Provider::FOO`, `'stripe'`)? If yes, run the Strategy sniff test before adding the branch — see [`guidelines/php/patterns/strategy.md`](
|
|
44
|
+
- Is the change a **second branch on the same discriminator** — second `match`/`switch` arm, second `if/elseif`, or second class hardcoded to one enum value (e.g. `Provider::FOO`, `'stripe'`)? If yes, run the Strategy sniff test before adding the branch — see [`docs/guidelines/php/patterns/strategy.md`](../../docs/guidelines/php/patterns/strategy.md#sniff-test--when-an-enumstring-discriminator-wants-to-become-a-strategy).
|
|
45
45
|
|
|
46
46
|
**If misfit** → show evidence (file references), propose alternative.
|
|
47
|
-
**If multiple valid options** → list them, ask which to use. See [`no blind implementation`](
|
|
47
|
+
**If multiple valid options** → list them, ask which to use. See [`no blind implementation`](../../docs/guidelines/agent-infra/agent-interaction-and-decision-quality.md#2-no-blind-implementation).
|
|
48
48
|
|
|
49
49
|
### 3. Is the approach sound?
|
|
50
50
|
|
|
@@ -22,36 +22,24 @@ language, codebase language, open-file language, files-just-edited
|
|
|
22
22
|
language, convenience. First thing to check on every reply, last thing
|
|
23
23
|
to check before sending.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
message, not the turn count.** Length irrelevant — `3` after a German
|
|
29
|
-
question still means German continues.
|
|
25
|
+
Trigger is the user's last chat message, not turn count or message
|
|
26
|
+
length — short German (`3`, `weiter`, `mach das`) after many English
|
|
27
|
+
turns still flips the reply to German.
|
|
30
28
|
|
|
31
29
|
### Source of language truth — chat messages ONLY
|
|
32
30
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
`.md` files in this repo are English by rule (see below) — that says
|
|
40
|
-
nothing about chat language. Same for: file contents read via `view` /
|
|
41
|
-
`grep`, quoted commits / tickets / PRs / branches, code identifiers,
|
|
42
|
-
the agent's own previous replies. Only the most recent **chat message**
|
|
43
|
-
sets the language. User opens an English roadmap and types German →
|
|
44
|
-
reply in German.
|
|
31
|
+
Only the most recent **chat message** sets the language. `.md` files,
|
|
32
|
+
file contents read via `view` / `grep`, quoted commits / tickets / PRs,
|
|
33
|
+
code identifiers, and the agent's own previous replies do **not** count.
|
|
34
|
+
User opens an English roadmap and types German → reply in German.
|
|
45
35
|
|
|
46
36
|
### Pre-send gate — MANDATORY before every reply
|
|
47
37
|
|
|
48
38
|
Run silently **before** emitting any tokens:
|
|
49
39
|
|
|
50
40
|
1. **Detect** — language of user's last **chat message** (not the open
|
|
51
|
-
file, not the roadmap, not the prior reply).
|
|
52
|
-
|
|
53
|
-
English signals: "I", "you", "is", "the", "how".
|
|
54
|
-
Mixed → mirror the **dominant** language; tie → German wins (project default).
|
|
41
|
+
file, not the roadmap, not the prior reply). Mixed → mirror the
|
|
42
|
+
**dominant** language; tie → German wins (project default).
|
|
55
43
|
2. **Check** — is drafted prose (not code, not file contents) in that language?
|
|
56
44
|
3. **Rewrite** — if no, rewrite whole prose before sending. No exceptions, no
|
|
57
45
|
"just this sentence", no "the technical term is English anyway".
|
|
@@ -74,28 +62,15 @@ Run silently **before** emitting any tokens:
|
|
|
74
62
|
|
|
75
63
|
### When the user calls out a language slip
|
|
76
64
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
- Drafting reply in English first, then "translating the intro" → English
|
|
88
|
-
phrasing with German words. Draft in target language from the first token.
|
|
89
|
-
- Copy-pasting English option labels from `.md` sources without translating.
|
|
90
|
-
- Mixing languages inside a table or bullet list because "the technical term
|
|
91
|
-
is English" — surrounding prose must still mirror. Keep proper nouns and
|
|
92
|
-
code identifiers as-is; translate everything else.
|
|
93
|
-
- Assuming English because "the codebase is English" — codebase language ≠
|
|
94
|
-
conversation language.
|
|
95
|
-
- Mirroring the **open file** the IDE reports — open files are background
|
|
96
|
-
context, not chat messages.
|
|
97
|
-
- Mirroring the **roadmap or ticket** being executed — artefacts are English
|
|
98
|
-
by `.md` rule; chat language is whatever the user wrote.
|
|
65
|
+
Acknowledge **once**, briefly, in the correct language ("Entschuldigung" /
|
|
66
|
+
"Sorry"). Switch immediately on the same reply. Do **not** re-explain in
|
|
67
|
+
the wrong language. Do **not** promise "from now on" — just do it. If
|
|
68
|
+
user asks to harden the rule, harden it on this turn.
|
|
69
|
+
|
|
70
|
+
### Failure modes
|
|
71
|
+
|
|
72
|
+
See [`../../docs/guidelines/agent-infra/language-and-tone-examples.md`](../../docs/guidelines/agent-infra/language-and-tone-examples.md)
|
|
73
|
+
for the full failure-mode list.
|
|
99
74
|
|
|
100
75
|
## Other language rules
|
|
101
76
|
|
|
@@ -108,64 +83,30 @@ Run silently **before** emitting any tokens:
|
|
|
108
83
|
|
|
109
84
|
## `.md` files are ALWAYS English — no exceptions
|
|
110
85
|
|
|
111
|
-
**Every** piece of text inside `.md` files in `.augment/` and `agents/`
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
- **Example option labels** (e.g., `> 1. Yes — start implementing`, NOT `> 1. Ja — mit der Umsetzung starten`)
|
|
116
|
-
- **Example prompts and questions** (e.g., `"Found X unresolved comments."`, NOT `"X offene Kommentare gefunden."`)
|
|
117
|
-
- **Template placeholders and sample output** (e.g., `Progress:`, NOT `Fortschritt:`)
|
|
118
|
-
- **ASCII art labels** in formatted output blocks (e.g., `CHANGES:`, NOT `ÄNDERUNGEN:`)
|
|
119
|
-
- **Table headers and content**
|
|
120
|
-
|
|
121
|
-
The agent translates to the user's language **at runtime** when presenting options.
|
|
122
|
-
The `.md` source files are the English blueprint — they define WHAT to say, not in which language.
|
|
123
|
-
|
|
124
|
-
**Wrong** (German in `.md`):
|
|
125
|
-
```
|
|
126
|
-
> 1. Interaktiv — bei jedem Kommentar nachfragen
|
|
127
|
-
> 2. Automatisch — alle selbstständig abarbeiten
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
**Correct** (English in `.md`):
|
|
131
|
-
```
|
|
132
|
-
> 1. Interactive — ask before each comment
|
|
133
|
-
> 2. Automatic — handle all independently
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Quoted user-input examples — same rule, with one labeled exception
|
|
86
|
+
**Every** piece of text inside `.md` files in `.augment/` and `agents/`
|
|
87
|
+
must be in English: headings, paragraphs, bullets, example option labels,
|
|
88
|
+
example prompts/questions, template placeholders, ASCII-art labels in
|
|
89
|
+
formatted output blocks, table headers and content.
|
|
137
90
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
**Wrong** (DE quote embedded in EN prose):
|
|
143
|
-
|
|
144
|
-
```md
|
|
145
|
-
Single-decision delegation ("für diesen Schritt entscheide du") →
|
|
146
|
-
handle that step autonomously.
|
|
147
|
-
|
|
148
|
-
A standing "arbeite selbstständig" never lifts the floor.
|
|
149
|
-
```
|
|
91
|
+
The agent translates to the user's language **at runtime** when
|
|
92
|
+
presenting options. The `.md` source files are the English blueprint —
|
|
93
|
+
they define WHAT to say, not in which language. Concrete wrong-vs-correct
|
|
94
|
+
examples live in [`../../docs/guidelines/agent-infra/language-and-tone-examples.md`](../../docs/guidelines/agent-infra/language-and-tone-examples.md).
|
|
150
95
|
|
|
151
|
-
|
|
96
|
+
### Quoted user-input examples — labeled-anchor exception
|
|
152
97
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
`("you decide for this step")` works as well as the German.
|
|
156
|
-
2. **Use a labeled `DE: … · EN: …` anchor list** when the
|
|
157
|
-
multilingual nature of recognition is the point:
|
|
98
|
+
Drift pattern: a rule writes quoted German examples inside English prose.
|
|
99
|
+
**Not allowed**. Two correct ways:
|
|
158
100
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
101
|
+
1. **Translate to English.** Trigger recognition is semantic; the agent
|
|
102
|
+
matches intent across languages regardless of the example.
|
|
103
|
+
2. **Use a labeled `DE: … · EN: …` anchor list** when the multilingual
|
|
104
|
+
nature of recognition is the point — the **only** allowed location
|
|
105
|
+
for German prose in an English `.md`. Reference established phrases
|
|
106
|
+
abstractly later and link back to the anchor block.
|
|
163
107
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
templates, agent-rendered strings, and failure modes must be English.
|
|
167
|
-
Reference established phrases abstractly later (e.g. "a standing
|
|
168
|
-
autonomy directive") and link back to the anchor block.
|
|
108
|
+
Wrong-vs-correct snippets in
|
|
109
|
+
[`../../docs/guidelines/agent-infra/language-and-tone-examples.md`](../../docs/guidelines/agent-infra/language-and-tone-examples.md).
|
|
169
110
|
|
|
170
111
|
### Detection heuristic
|
|
171
112
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
type: "
|
|
3
|
-
alwaysApply:
|
|
4
|
-
description: "
|
|
2
|
+
type: "auto"
|
|
3
|
+
alwaysApply: false
|
|
4
|
+
description: "When writing or reviewing a diff — the smallest change that solves the stated problem; no drive-by edits, no opportunistic refactors, no reformatting of untouched code"
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
type: "
|
|
3
|
-
description: "
|
|
4
|
-
alwaysApply:
|
|
2
|
+
type: "auto"
|
|
3
|
+
description: "Starting a new task, switching task type, or invoking a command — detect task complexity and recommend the optimal model (Opus/Sonnet/GPT) before any work"
|
|
4
|
+
alwaysApply: false
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -30,7 +30,7 @@ If the detected model is `gemini`, immediately trigger the Gemini warning (see b
|
|
|
30
30
|
`/commit`, `/fix-pr-comments` are sonnet tasks — even if the previous task was opus-level.
|
|
31
31
|
This is the most commonly missed check. Do NOT skip it.
|
|
32
32
|
|
|
33
|
-
**Priority over commands rule**: This check runs BEFORE the `slash-
|
|
33
|
+
**Priority over commands rule**: This check runs BEFORE the `slash-command-routing-policy` rule. If a model switch
|
|
34
34
|
is recommended, show the suggestion first. Only after the user responds, execute the command.
|
|
35
35
|
|
|
36
36
|
**If ambiguous** (could be opus or sonnet): default to **sonnet** — cheaper, and the user can escalate.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "always"
|
|
3
|
+
description: "No cheap questions — never ask what context answers, never offer Iron-Law-violating options, never stage no-trade-off choices; mode-independent (off / auto / on)"
|
|
4
|
+
alwaysApply: true
|
|
5
|
+
source: package
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# No Cheap Questions
|
|
9
|
+
|
|
10
|
+
A question is **cheap** when the answer follows from stated context,
|
|
11
|
+
when an option would breach an Iron Law, when choices differ only in
|
|
12
|
+
sequencing or format, or when one option is obviously dominant. Cheap
|
|
13
|
+
questions are noise, regardless of `personal.autonomy`.
|
|
14
|
+
|
|
15
|
+
Mode-independent. The "trivial" failure modes in
|
|
16
|
+
[`autonomous-execution`](autonomous-execution.md) are scoped to
|
|
17
|
+
`personal.autonomy: on` (or `auto`-after-opt-in); this rule lifts the
|
|
18
|
+
**no-trade-off** subset to apply in `off` and pre-opt-in `auto` too.
|
|
19
|
+
|
|
20
|
+
## The Iron Laws
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
NEVER ASK WHAT THE STATED CONTEXT ALREADY ANSWERS.
|
|
24
|
+
NEVER PRESENT AN OPTION THAT VIOLATES AN IRON LAW.
|
|
25
|
+
NEVER OFFER NUMBERED CHOICES WITHOUT A REAL TRADE-OFF.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Hold in `off`, `auto`, and `on`. Autonomy never lifts them.
|
|
29
|
+
|
|
30
|
+
## What counts as cheap
|
|
31
|
+
|
|
32
|
+
| Class | Pattern · why cheap |
|
|
33
|
+
|---|---|
|
|
34
|
+
| **Sequencing** | "Step 2 or 3 next?" when roadmap orders them — answer is in the roadmap |
|
|
35
|
+
| **Format-only** | "Table or paragraph?" — no semantic trade-off |
|
|
36
|
+
| **Commit asks** | "Commit now?" — [`commit-policy`](commit-policy.md): never ask |
|
|
37
|
+
| **CI / test asks** | "Run tests now?" — [`verify-before-complete`](verify-before-complete.md) decides |
|
|
38
|
+
| **Fenced-step re-asks** | "Start Phase 1?" after "plan only" — [`scope-control § fenced step`](scope-control.md#fenced-step--user-set-review-gates) |
|
|
39
|
+
| **Iron-Law option** | Option breaches `commit-policy`, `scope-control § git-ops`, or `non-destructive-by-default` — does not exist |
|
|
40
|
+
| **Context-derived** | Answer follows from prior turn / standing instruction / roadmap — act, state assumption inline |
|
|
41
|
+
| **Dominant option** | One choice obviously correct; alternatives carry no upside — pick it |
|
|
42
|
+
| **Re-ask after decline** | Same path after user said no — [`scope-control § decline = silence`](scope-control.md#decline--silence--no-re-asking-on-the-same-task) |
|
|
43
|
+
|
|
44
|
+
## Pre-Send Self-Check — MANDATORY before every question
|
|
45
|
+
|
|
46
|
+
Before drafting any numbered-options block, run silently:
|
|
47
|
+
|
|
48
|
+
1. Does the answer follow from already-stated context?
|
|
49
|
+
2. Does any option violate [`commit-policy`](commit-policy.md),
|
|
50
|
+
[`scope-control § git-ops`](scope-control.md), or
|
|
51
|
+
[`non-destructive-by-default`](non-destructive-by-default.md)?
|
|
52
|
+
3. Are options pure sequencing / format with no trade-off?
|
|
53
|
+
4. Is one option obviously dominant?
|
|
54
|
+
5. Did the user fence the next step (*"plan only"*, *"review first"*)?
|
|
55
|
+
→ deliver + handback per [`scope-control § fenced step`](scope-control.md#fenced-step--user-set-review-gates).
|
|
56
|
+
6. Did the user already decline? Re-asking is forbidden per
|
|
57
|
+
[`scope-control § decline = silence`](scope-control.md#decline--silence--no-re-asking-on-the-same-task).
|
|
58
|
+
|
|
59
|
+
Any "yes" → **do not ask**. Pick the dominant path, state the
|
|
60
|
+
assumption inline (*"assuming X — adjust if wrong"*), hand back. The
|
|
61
|
+
one-question-per-turn Iron Law from
|
|
62
|
+
[`ask-when-uncertain`](ask-when-uncertain.md) still applies when the
|
|
63
|
+
question is genuine.
|
|
64
|
+
|
|
65
|
+
## When asking IS allowed
|
|
66
|
+
|
|
67
|
+
- Real architectural / scope decision with non-obvious trade-offs.
|
|
68
|
+
- Vague-request trigger per
|
|
69
|
+
[`ask-when-uncertain`](ask-when-uncertain.md#vague-request-triggers--must-ask).
|
|
70
|
+
- Security-sensitive path per
|
|
71
|
+
[`security-sensitive-stop`](security-sensitive-stop.md).
|
|
72
|
+
- Hard Floor in [`non-destructive-by-default`](non-destructive-by-default.md)
|
|
73
|
+
fires — confirmation is mandatory, never cheap.
|
|
74
|
+
- Two genuinely-equivalent paths; user preference is the tiebreaker.
|
|
75
|
+
|
|
76
|
+
In doubt → genuine. Ask. This rule narrows asking, never widens silence.
|
|
77
|
+
|
|
78
|
+
## Interactions
|
|
79
|
+
|
|
80
|
+
- [`ask-when-uncertain`](ask-when-uncertain.md) — vague triggers +
|
|
81
|
+
one-question-per-turn; this rule narrows the cheap subset.
|
|
82
|
+
- [`autonomous-execution`](autonomous-execution.md) — mode-scoped
|
|
83
|
+
triviality there; mode-independent floor here.
|
|
84
|
+
- [`commit-policy`](commit-policy.md) · [`scope-control`](scope-control.md) ·
|
|
85
|
+
[`non-destructive-by-default`](non-destructive-by-default.md) —
|
|
86
|
+
the Iron Laws this rule defends.
|
|
87
|
+
- [`user-interaction`](user-interaction.md) — numbered-options shape;
|
|
88
|
+
this rule decides whether the block is sent at all.
|
|
89
|
+
- [`direct-answers`](direct-answers.md) — brevity, no flattery.
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "always"
|
|
3
|
-
description: "Agent is never destructive
|
|
3
|
+
description: "Agent is never destructive — Hard Floor always asks for prod-trunk merges, deploys, pushes, prod data/infra, bulk deletions, and bulk-deletion/infra commits; no autonomy or roadmap bypass"
|
|
4
4
|
alwaysApply: true
|
|
5
5
|
source: package
|
|
6
|
+
load_context:
|
|
7
|
+
- .agent-src.uncompressed/contexts/authority/destructive-mechanics.md
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# Non-Destructive by Default
|
|
@@ -51,57 +53,21 @@ of truth makes it reversible. Lives in
|
|
|
51
53
|
## Bulk deletions during WIP — allowed if task-connected
|
|
52
54
|
|
|
53
55
|
Deletions inside an **active, user-stated task** are allowed in the
|
|
54
|
-
working tree, **even multiple files or multiple folders
|
|
55
|
-
moves to the **commit** (row 6 above), not the in-progress edit.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
- Refactor naturally drops deprecated code the user already agreed is dead
|
|
61
|
-
- Cleanup of generated artifacts — `node_modules/`, `dist/`, `.next/`,
|
|
62
|
-
build caches, `vendor/` reinstall — never source code
|
|
63
|
-
- Single-file edits, single-class refactors, deleting **one** file the
|
|
64
|
-
user just named
|
|
65
|
-
- Renames and moves (technically delete + add)
|
|
66
|
-
|
|
67
|
-
**Floor fires on the edit when the deletion is:**
|
|
68
|
-
|
|
69
|
-
- Whimsical — "while I was in there", drive-by cleanup not part of the task
|
|
70
|
-
- Unnamed scope — "delete all the old tests" without a list, glob
|
|
71
|
-
across unrelated files, "clean up the legacy folder" with no inventory
|
|
72
|
-
- ≥5 unrelated files in one operation, outside the current task scope
|
|
73
|
-
- Content destruction — `DROP TABLE`, `TRUNCATE`, `git reset --hard`
|
|
74
|
-
past unpushed work, database wipes (destroys *content*, not just tree)
|
|
75
|
-
|
|
76
|
-
Ambiguous → floor wins. Ask.
|
|
77
|
-
|
|
78
|
-
**The commit of task-aligned bulk deletions still needs its own ask.**
|
|
79
|
-
A roadmap or task authorizes the *edit*; only the user-this-turn
|
|
80
|
-
authorizes the *commit* (row 6). Surface the diff (paths + counts), get
|
|
81
|
-
confirmation, then commit.
|
|
56
|
+
working tree, **even multiple files or multiple folders** — the Hard
|
|
57
|
+
Floor moves to the **commit** (row 6 above), not the in-progress edit.
|
|
58
|
+
Whimsical / drive-by / unnamed-scope deletions still trip the floor on
|
|
59
|
+
the edit. Full allowed/forbidden lists in
|
|
60
|
+
[`destructive-mechanics`](../contexts/authority/destructive-mechanics.md)
|
|
61
|
+
§ Bulk deletions during WIP.
|
|
82
62
|
|
|
83
63
|
## Failure modes
|
|
84
64
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
work; only the user-this-turn can authorize the floor crossing.
|
|
92
|
-
- Refusing to delete files the user already named because "the floor
|
|
93
|
-
fires on `rm`". It does not — task-aligned WIP deletions are
|
|
94
|
-
allowed, even multi-folder. The floor fires when the deletion is
|
|
95
|
-
whimsical, unscoped, or about to be committed.
|
|
96
|
-
- Committing a diff that removes a directory, deletes ≥5 unrelated
|
|
97
|
-
files, or touches Terraform / k8s manifests / Ansible without
|
|
98
|
-
surfacing the diff first — even when [`commit-policy`](commit-policy.md)
|
|
99
|
-
otherwise authorizes commits (e.g. `/commit-in-chunks`, roadmap
|
|
100
|
-
pre-scan, an explicit "commit this now"). Bulk-deletion / infra
|
|
101
|
-
commits need their own ask, every time.
|
|
102
|
-
- Reading a roadmap step listing files to delete as authorization to
|
|
103
|
-
*commit* the deletion. The step authorizes the *edit*; the commit
|
|
104
|
-
is row 6 of the Hard Floor and needs its own confirmation.
|
|
65
|
+
The full failure-mode catalog (autonomy-as-cover, roadmap-as-authorization,
|
|
66
|
+
refusing-named-deletions, commit-without-diff-surface,
|
|
67
|
+
roadmap-step-≠-commit-authorization) lives in
|
|
68
|
+
[`destructive-mechanics`](../contexts/authority/destructive-mechanics.md)
|
|
69
|
+
§ Failure modes. Reach for it when a Hard-Floor situation feels
|
|
70
|
+
ambiguous; the rule itself stays focused on the trigger table.
|
|
105
71
|
|
|
106
72
|
## Cloud Behavior
|
|
107
73
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
type: "
|
|
3
|
-
description: "First
|
|
4
|
-
alwaysApply:
|
|
2
|
+
type: "auto"
|
|
3
|
+
description: "First turn of a conversation on a project — check onboarding.onboarded in .agent-settings.yml; when false, prompt the user to run /onboard before executing any other request"
|
|
4
|
+
alwaysApply: false
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -73,7 +73,7 @@ gate. This protects projects that were set up before this rule shipped.
|
|
|
73
73
|
conversation, max.
|
|
74
74
|
- Replace normal settings edits. Mid-life changes are ad-hoc (edit the
|
|
75
75
|
file directly or ask the agent, which follows
|
|
76
|
-
[`layered-settings`](
|
|
76
|
+
[`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md#section-aware-merge-rules));
|
|
77
77
|
this rule is a one-time gate.
|
|
78
78
|
- Run on every agent turn. First turn only.
|
|
79
79
|
|
|
@@ -89,6 +89,6 @@ gate. This protects projects that were set up before this rule shipped.
|
|
|
89
89
|
## See also
|
|
90
90
|
|
|
91
91
|
- [`/onboard`](../commands/onboard.md) — the command this gate invokes
|
|
92
|
-
- [`layered-settings`](
|
|
92
|
+
- [`layered-settings`](../../docs/guidelines/agent-infra/layered-settings.md) — merge rules for mid-life edits
|
|
93
93
|
- [`agent-settings` template](../templates/agent-settings.md) — `onboarding.onboarded` reference
|
|
94
94
|
- [`rule-type-governance`](rule-type-governance.md) — why this is `always`
|
|
@@ -37,8 +37,8 @@ Look, in order, for:
|
|
|
37
37
|
- `.github/historical-bug-patterns.yml` (or
|
|
38
38
|
`agents/historical-bug-patterns.yml`)
|
|
39
39
|
|
|
40
|
-
If neither exists, fall back to engineering-memory via
|
|
41
|
-
[`memory-access`](
|
|
40
|
+
If neither file exists, fall back to the engineering-memory layer via
|
|
41
|
+
[`memory-access`](../../docs/guidelines/agent-infra/memory-access.md):
|
|
42
42
|
|
|
43
43
|
```python
|
|
44
44
|
from scripts.memory_lookup import retrieve
|
|
@@ -50,11 +50,11 @@ extra = retrieve(
|
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
Curated memory (`agents/memory/ownership.yml`,
|
|
53
|
-
`agents/memory/historical-patterns.yml`)
|
|
54
|
-
project-local YAMLs and is merged into the routing output
|
|
55
|
-
memory and project YAMLs are absent, skip this rule and
|
|
56
|
-
[`reviewer-awareness`](reviewer-awareness.md) defaults. **Do
|
|
57
|
-
owners or patterns** from context.
|
|
53
|
+
`agents/memory/historical-patterns.yml`) carries the same schema as the
|
|
54
|
+
project-local YAMLs and is merged into the routing output alongside
|
|
55
|
+
them. If both memory and project YAMLs are absent, skip this rule and
|
|
56
|
+
rely on [`reviewer-awareness`](reviewer-awareness.md) defaults. **Do
|
|
57
|
+
not invent owners or patterns** from context.
|
|
58
58
|
|
|
59
59
|
### 2. Match the diff
|
|
60
60
|
|
|
@@ -66,7 +66,7 @@ For every changed file, collect:
|
|
|
66
66
|
mode and the minimum control or test the project expects.
|
|
67
67
|
|
|
68
68
|
Matching uses glob patterns (see
|
|
69
|
-
[`review-routing-data-format`](
|
|
69
|
+
[`review-routing-data-format`](../../docs/guidelines/agent-infra/review-routing-data-format.md)
|
|
70
70
|
for the schema).
|
|
71
71
|
|
|
72
72
|
### 3. Surface findings
|
|
@@ -117,7 +117,7 @@ When producing a review plan, include:
|
|
|
117
117
|
|
|
118
118
|
- [`reviewer-awareness`](reviewer-awareness.md) — formatting reviewer
|
|
119
119
|
suggestions.
|
|
120
|
-
- [`review-routing-data-format`](
|
|
120
|
+
- [`review-routing-data-format`](../../docs/guidelines/agent-infra/review-routing-data-format.md)
|
|
121
121
|
— YAML schemas for ownership-map and historical-bug-patterns.
|
|
122
122
|
- [`review-routing`](../skills/review-routing/SKILL.md) — the skill
|
|
123
123
|
that produces the merged routing report.
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "auto"
|
|
3
|
-
description: "Any touch to agents/roadmaps/ —
|
|
3
|
+
description: "Any touch to agents/roadmaps/ — create/rename/delete/move, edit checkboxes ([x]/[~]/[-]), add/rename/remove phases — must regenerate dashboard and archive if 0 open items, same response"
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
source: package
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
+
<!-- cloud_safe: degrade -->
|
|
9
|
+
<!-- Authoring discipline applies in cloud; local script + regen are no-ops there. -->
|
|
10
|
+
|
|
8
11
|
# Roadmap Progress Sync
|
|
9
12
|
|
|
10
13
|
## Iron Law — dashboard sync
|
|
@@ -30,6 +33,7 @@ without regenerating? The dashboard claims it does not exist. Marked
|
|
|
30
33
|
EVERY ACTIVE ROADMAP MUST CONTAIN AT LEAST ONE TRACKABLE CHECKBOX
|
|
31
34
|
(`- [ ]`) PER NON-INTRO PHASE. ROADMAPS WITHOUT EXECUTABLE STEPS
|
|
32
35
|
EITHER GET A CHECKLIST OR THE `status: draft` FLAG.
|
|
36
|
+
CI-ENFORCED: `scripts/check_roadmap_trackable.py` (CANNOT BE DEFERRED).
|
|
33
37
|
```
|
|
34
38
|
|
|
35
39
|
**Active roadmap =** any file in `agents/roadmaps/` (root, not
|
|
@@ -42,9 +46,16 @@ Tables of decisions, ICE matrices, ADR captures, and "block
|
|
|
42
46
|
sequencing" tables are valid **rationale**, but they do not satisfy
|
|
43
47
|
this rule on their own — they must be paired with at least one
|
|
44
48
|
`## Phase N` section whose checkboxes execute the decision.
|
|
45
|
-
Headings such as `## Phase steps`, `### Sequencing — Phase 1 …`,
|
|
46
|
-
`## Block A` do **not** count — only the
|
|
47
|
-
form parsed by the dashboard.
|
|
49
|
+
Headings such as `## Phase steps`, `### Sequencing — Phase 1 …`,
|
|
50
|
+
`### P0 #1 — …`, or `## Block A` do **not** count — only the
|
|
51
|
+
canonical `Phase <id>` form parsed by the dashboard.
|
|
52
|
+
|
|
53
|
+
**CI backstop.** `scripts/check_roadmap_trackable.py` (package-shipped,
|
|
54
|
+
wire into the consumer's pre-commit / pre-push / Actions gate) fails
|
|
55
|
+
when an active roadmap has zero canonical `Phase` headings or when
|
|
56
|
+
any parsed phase has zero checkboxes. Last line of defence — real-time
|
|
57
|
+
authoring still flips checkboxes and regenerates the dashboard the
|
|
58
|
+
same response.
|
|
48
59
|
|
|
49
60
|
## Status — binary `ready` (default) vs `draft`
|
|
50
61
|
|
|
@@ -69,11 +80,6 @@ in the dashboard.
|
|
|
69
80
|
executable phases. Flip to ready (or remove the field) the
|
|
70
81
|
moment the roadmap is ready to track.
|
|
71
82
|
|
|
72
|
-
A `## Decisions` or `## Block sequencing` table is **not** a roadmap
|
|
73
|
-
on its own. Either pair it with a `## Phase N: <name>` section whose
|
|
74
|
-
checkboxes execute the decision, or mark the file `status: draft`
|
|
75
|
-
until the executable phases land.
|
|
76
|
-
|
|
77
83
|
**Completion = archival, same response.** When the edit takes a
|
|
78
84
|
roadmap to `count_open == 0` (every item is `[x]`, `[~]`, or `[-]`),
|
|
79
85
|
`git mv` it into `agents/roadmaps/archive/` (or `skipped/` if no `[x]`
|
|
@@ -130,20 +136,9 @@ Step counts as completed when:
|
|
|
130
136
|
Then in the **same reply**: flip the checkbox, regenerate the
|
|
131
137
|
dashboard, commit if commit policy allows.
|
|
132
138
|
|
|
133
|
-
**Forbidden
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
> implement Step 3. Turn 4: implement Step 4. Turn 5: "all done,
|
|
137
|
-
> let me update the roadmap and commit." → the user spent four turns
|
|
138
|
-
> without dashboard movement.
|
|
139
|
-
|
|
140
|
-
**Required pattern:**
|
|
141
|
-
|
|
142
|
-
> Turn 1: implement Step 1, flip `[x]`, regen, commit.
|
|
143
|
-
> Turn 2: implement Step 2, flip `[x]`, regen, commit. …
|
|
144
|
-
|
|
145
|
-
A reply that lands a verified step without flipping its checkbox
|
|
146
|
-
is a rule violation.
|
|
139
|
+
**Forbidden:** four turns of step work, dashboard flat, single regen at the end.
|
|
140
|
+
**Required:** each turn — implement step, flip `[x]`, regen, commit (if policy allows).
|
|
141
|
+
A reply that lands a verified step without flipping its checkbox is a rule violation.
|
|
147
142
|
|
|
148
143
|
**In-progress marker:** when a step takes more than one reply,
|
|
149
144
|
mark it `[~]` the moment work starts on it and regenerate. The
|
|
@@ -180,14 +175,13 @@ Any "yes" + no regen run = rule violation. Rerun before sending.
|
|
|
180
175
|
flat the whole time, single regen at the end** — user lost
|
|
181
176
|
progress visibility for the entire run. Each completed step must
|
|
182
177
|
flip its checkbox in the reply that ships it.
|
|
183
|
-
- **Decision-only roadmap shipped without checkboxes** —
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
phases land.
|
|
178
|
+
- **Decision-only roadmap shipped without checkboxes** — file
|
|
179
|
+
contains decisions / ICE / block-sequencing but zero `- [ ]`,
|
|
180
|
+
dashboard shows `0/0` or omits it. Pair with a `## Phase N`
|
|
181
|
+
section or mark `status: draft` (CI catches this now).
|
|
182
|
+
- **Headings off-canon (`### P0 #N`, `## Block A`, `### Sequencing
|
|
183
|
+
— Phase 1`)** — `PHASE_RE` skips them, roadmap invisible to the
|
|
184
|
+
dashboard. Rename to `## Phase <id>` or mark `status: draft`.
|
|
191
185
|
|
|
192
186
|
## Do NOT
|
|
193
187
|
|
|
@@ -195,5 +189,4 @@ Any "yes" + no regen run = rule violation. Rerun before sending.
|
|
|
195
189
|
- Do NOT defer the regen to "next commit" or "before push" — same response.
|
|
196
190
|
- Do NOT rely on CI (`--check` mode) as the first line of defence — CI is last-line, not real-time.
|
|
197
191
|
- Do NOT skip the regen because "only one checkbox changed" — the dashboard aggregates counts and phase percentages that shift on single edits.
|
|
198
|
-
- Do NOT leave a 100%-complete roadmap in `agents/roadmaps/` "for review" —
|
|
199
|
-
- Do NOT regenerate the dashboard before the `git mv` when a roadmap closes — otherwise the completed roadmap reappears in "Open roadmaps".
|
|
192
|
+
- Do NOT leave a 100%-complete roadmap in `agents/roadmaps/` "for review" — `git mv` to archive **before** regenerating, otherwise it reappears in "Open roadmaps".
|
|
@@ -9,7 +9,7 @@ source: package
|
|
|
9
9
|
|
|
10
10
|
Auto-activates when `.agent-settings.yml` sets `roles.active_role` to
|
|
11
11
|
one of the six modes defined in
|
|
12
|
-
[`role-contracts`](
|
|
12
|
+
[`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md):
|
|
13
13
|
`developer`, `reviewer`, `tester`, `po`, `incident`, `planner`.
|
|
14
14
|
|
|
15
15
|
Read `roles.active_role` from `.agent-settings.yml` at session start.
|
|
@@ -47,7 +47,7 @@ Infer the mode (Phase-3 router does that). Touch `.agent-settings.yml`
|
|
|
47
47
|
|
|
48
48
|
## See also
|
|
49
49
|
|
|
50
|
-
- [`role-contracts`](
|
|
50
|
+
- [`role-contracts`](../../docs/guidelines/agent-infra/role-contracts.md)
|
|
51
51
|
- [`/mode`](../commands/mode.md)
|
|
52
52
|
- [`ask-when-uncertain`](ask-when-uncertain.md)
|
|
53
53
|
- [`scope-control`](scope-control.md)
|