@event4u/agent-config 1.20.0 → 1.22.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.md +1 -1
- package/.agent-src/commands/bug-fix.md +2 -1
- package/.agent-src/commands/bug-investigate.md +3 -2
- 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/chat-history/import.md +60 -64
- package/.agent-src/commands/compress.md +12 -0
- package/.agent-src/commands/context/create.md +2 -2
- package/.agent-src/commands/context.md +1 -1
- package/.agent-src/commands/copilot-agents.md +1 -1
- package/.agent-src/commands/council/default.md +69 -10
- package/.agent-src/commands/council.md +1 -1
- package/.agent-src/commands/create-pr.md +7 -3
- 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 +3 -3
- package/.agent-src/commands/feature.md +1 -1
- package/.agent-src/commands/fix/seeder.md +2 -2
- package/.agent-src/commands/fix.md +1 -1
- package/.agent-src/commands/grill-me.md +38 -0
- package/.agent-src/commands/jira-ticket.md +1 -1
- package/.agent-src/commands/judge/steps.md +1 -1
- package/.agent-src/commands/judge.md +2 -2
- package/.agent-src/commands/memory.md +1 -1
- package/.agent-src/commands/mode.md +5 -5
- package/.agent-src/commands/module.md +1 -1
- package/.agent-src/commands/onboard.md +4 -4
- package/.agent-src/commands/optimize/augmentignore.md +1 -1
- package/.agent-src/commands/optimize-prompt.md +61 -0
- package/.agent-src/commands/optimize.md +1 -1
- package/.agent-src/commands/override.md +1 -1
- package/.agent-src/commands/review-changes.md +1 -1
- package/.agent-src/commands/review-routing.md +1 -1
- package/.agent-src/commands/roadmap/ai-council.md +183 -0
- package/.agent-src/commands/roadmap/create.md +6 -1
- 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 +45 -17
- 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 +2 -2
- package/.agent-src/commands/tests.md +1 -1
- package/.agent-src/commands/threat-model.md +5 -4
- package/.agent-src/contexts/augment-infrastructure.md +1 -1
- package/.agent-src/contexts/authority/commit-mechanics.md +14 -1
- package/.agent-src/contexts/authority/destructive-mechanics.md +14 -1
- package/.agent-src/contexts/authority/scope-mechanics.md +5 -0
- package/.agent-src/contexts/communication/rules-auto/guidelines-mechanics.md +76 -0
- package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +54 -19
- package/.agent-src/contexts/communication/rules-auto/think-before-action-mechanics.md +98 -0
- package/.agent-src/contexts/communication/rules-auto/token-efficiency-mechanics.md +93 -0
- package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +128 -5
- package/.agent-src/contexts/execution/autonomy-mechanics.md +44 -0
- package/.agent-src/contexts/execution/roadmap-process-loop.md +125 -0
- package/.agent-src/contexts/model-recommendations.md +2 -2
- package/.agent-src/contexts/override-system.md +1 -1
- package/.agent-src/contexts/skills-and-commands.md +1 -1
- package/.agent-src/personas/product-owner.md +2 -2
- package/.agent-src/personas/qa.md +1 -1
- package/.agent-src/rules/agent-authority.md +5 -6
- package/.agent-src/rules/agent-docs.md +11 -53
- package/.agent-src/rules/analysis-skill-routing.md +10 -40
- package/.agent-src/rules/architecture.md +6 -1
- package/.agent-src/rules/artifact-drafting-protocol.md +5 -0
- package/.agent-src/rules/artifact-engagement-recording.md +23 -59
- package/.agent-src/rules/ask-when-uncertain.md +24 -47
- package/.agent-src/rules/augment-portability.md +14 -62
- package/.agent-src/rules/augment-source-of-truth.md +10 -1
- package/.agent-src/rules/autonomous-execution.md +17 -98
- package/.agent-src/rules/capture-learnings.md +9 -80
- package/.agent-src/rules/cli-output-handling.md +12 -42
- package/.agent-src/rules/command-suggestion-policy.md +25 -73
- package/.agent-src/rules/commit-conventions.md +9 -58
- package/.agent-src/rules/commit-policy.md +16 -47
- package/.agent-src/rules/context-hygiene.md +5 -0
- package/.agent-src/rules/direct-answers.md +21 -50
- package/.agent-src/rules/docker-commands.md +11 -45
- package/.agent-src/rules/docs-sync.md +10 -56
- package/.agent-src/rules/downstream-changes.md +5 -0
- package/.agent-src/rules/e2e-testing.md +9 -44
- package/.agent-src/rules/guidelines.md +13 -75
- package/.agent-src/rules/improve-before-implement.md +11 -2
- package/.agent-src/rules/invite-challenge.md +71 -0
- package/.agent-src/rules/language-and-tone.md +41 -106
- package/.agent-src/rules/laravel-translations.md +11 -40
- package/.agent-src/rules/markdown-safe-codeblocks.md +4 -0
- package/.agent-src/rules/minimal-safe-diff.md +4 -0
- package/.agent-src/rules/missing-tool-handling.md +4 -0
- package/.agent-src/rules/model-recommendation.md +9 -61
- package/.agent-src/rules/no-attribution-footers.md +5 -0
- package/.agent-src/rules/no-cheap-questions.md +11 -27
- package/.agent-src/rules/no-council-references.md +76 -0
- package/.agent-src/rules/no-roadmap-references.md +7 -0
- package/.agent-src/rules/non-destructive-by-default.md +13 -43
- package/.agent-src/rules/onboarding-gate.md +9 -117
- package/.agent-src/rules/package-ci-checks.md +10 -37
- package/.agent-src/rules/php-coding.md +10 -55
- package/.agent-src/rules/preservation-guard.md +9 -0
- package/.agent-src/rules/review-routing-awareness.md +9 -97
- package/.agent-src/rules/reviewer-awareness.md +8 -83
- package/.agent-src/rules/roadmap-progress-sync.md +7 -170
- package/.agent-src/rules/role-mode-adherence.md +6 -2
- package/.agent-src/rules/rule-type-governance.md +8 -66
- package/.agent-src/rules/runtime-safety.md +5 -0
- package/.agent-src/rules/scope-control.md +17 -62
- package/.agent-src/rules/security-sensitive-stop.md +7 -1
- package/.agent-src/rules/size-enforcement.md +6 -1
- package/.agent-src/rules/skill-improvement-trigger.md +9 -49
- package/.agent-src/rules/skill-quality.md +7 -113
- package/.agent-src/rules/slash-command-routing-policy.md +11 -63
- package/.agent-src/rules/think-before-action.md +22 -87
- package/.agent-src/rules/token-efficiency.md +10 -74
- package/.agent-src/rules/token-optimizer-maintenance.md +68 -0
- package/.agent-src/rules/tool-safety.md +4 -0
- package/.agent-src/rules/ui-audit-gate.md +25 -61
- package/.agent-src/rules/upstream-proposal.md +9 -67
- package/.agent-src/rules/user-interaction.md +22 -108
- package/.agent-src/rules/verify-before-complete.md +1 -1
- package/.agent-src/skills/adversarial-review/SKILL.md +1 -0
- package/.agent-src/skills/agent-docs-writing/SKILL.md +1 -1
- package/.agent-src/skills/ai-council/SKILL.md +197 -8
- package/.agent-src/skills/analysis-autonomous-mode/SKILL.md +1 -1
- package/.agent-src/skills/analysis-skill-router/SKILL.md +3 -3
- package/.agent-src/skills/artisan-commands/SKILL.md +2 -2
- package/.agent-src/skills/authz-review/SKILL.md +1 -1
- package/.agent-src/skills/aws-infrastructure/SKILL.md +5 -5
- package/.agent-src/skills/blast-radius-analyzer/SKILL.md +8 -8
- package/.agent-src/skills/bug-analyzer/SKILL.md +6 -5
- package/.agent-src/skills/code-refactoring/SKILL.md +4 -4
- package/.agent-src/skills/code-review/SKILL.md +2 -2
- package/.agent-src/skills/command-writing/SKILL.md +11 -0
- package/.agent-src/skills/composer-packages/SKILL.md +2 -2
- package/.agent-src/skills/context-authoring/SKILL.md +11 -0
- package/.agent-src/skills/context-document/SKILL.md +1 -1
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +23 -0
- package/.agent-src/skills/copilot-config/SKILL.md +1 -1
- package/.agent-src/skills/dependency-upgrade/SKILL.md +2 -2
- package/.agent-src/skills/devcontainer/SKILL.md +2 -2
- package/.agent-src/skills/developer-like-execution/SKILL.md +1 -1
- package/.agent-src/skills/docker/SKILL.md +1 -1
- package/.agent-src/skills/dto-creator/SKILL.md +1 -1
- package/.agent-src/skills/estimate-ticket/SKILL.md +2 -2
- package/.agent-src/skills/fe-design/SKILL.md +4 -4
- package/.agent-src/skills/feature-planning/SKILL.md +5 -5
- package/.agent-src/skills/funnel-analysis/SKILL.md +1 -1
- package/.agent-src/skills/laravel/SKILL.md +1 -1
- package/.agent-src/skills/laravel-notifications/SKILL.md +5 -5
- package/.agent-src/skills/laravel-pennant/SKILL.md +1 -1
- package/.agent-src/skills/laravel-pulse/SKILL.md +4 -4
- package/.agent-src/skills/laravel-reverb/SKILL.md +2 -2
- package/.agent-src/skills/laravel-scheduling/SKILL.md +1 -1
- package/.agent-src/skills/migration-creator/SKILL.md +7 -7
- package/.agent-src/skills/multi-tenancy/SKILL.md +8 -8
- package/.agent-src/skills/performance-analysis/SKILL.md +3 -3
- package/.agent-src/skills/pest-testing/SKILL.md +6 -6
- package/.agent-src/skills/php-service/SKILL.md +2 -2
- package/.agent-src/skills/project-analysis-hypothesis-driven/SKILL.md +3 -3
- package/.agent-src/skills/project-analysis-react/SKILL.md +1 -1
- package/.agent-src/skills/project-analysis-symfony/SKILL.md +1 -1
- package/.agent-src/skills/project-analysis-zend-laminas/SKILL.md +2 -2
- package/.agent-src/skills/project-analyzer/SKILL.md +4 -4
- package/.agent-src/skills/prompt-optimizer/SKILL.md +108 -0
- package/.agent-src/skills/readme-reviewer/SKILL.md +1 -1
- package/.agent-src/skills/roadmap-management/SKILL.md +7 -7
- package/.agent-src/skills/rule-writing/SKILL.md +33 -0
- package/.agent-src/skills/sentry-integration/SKILL.md +1 -1
- package/.agent-src/skills/skill-writing/SKILL.md +14 -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/terraform/SKILL.md +2 -2
- package/.agent-src/skills/terragrunt/SKILL.md +8 -8
- package/.agent-src/skills/test-performance/SKILL.md +5 -5
- package/.agent-src/skills/threat-modeling/SKILL.md +3 -2
- package/.agent-src/skills/token-optimizer/SKILL.md +110 -0
- package/.agent-src/skills/universal-project-analysis/SKILL.md +1 -1
- package/.agent-src/templates/AGENTS.md +1 -1
- package/.agent-src/templates/agent-settings.md +35 -19
- package/.agent-src/templates/command.md +17 -1
- package/.agent-src/templates/contexts/tenant-boundaries.md +2 -2
- package/.agent-src/templates/contexts.md +1 -1
- package/.agent-src/templates/copilot-instructions.md +21 -0
- package/.agent-src/templates/copilot-review-instructions.md +76 -0
- package/.agent-src/templates/features.md +1 -1
- package/.agent-src/templates/roadmaps.md +10 -2
- package/.agent-src/templates/rule.md +129 -0
- package/.agent-src/templates/skill.md +17 -0
- package/.claude-plugin/marketplace.json +12 -2
- package/AGENTS.md +32 -5
- package/CHANGELOG.md +107 -3
- package/README.md +22 -21
- package/config/agent-settings.template.yml +66 -10
- package/config/gitignore-block.txt +7 -0
- package/docs/architecture.md +86 -5
- package/docs/catalog.md +16 -6
- package/docs/contracts/agent-memory-contract.md +1 -1
- package/docs/contracts/command-clusters.md +45 -1
- package/docs/contracts/context-paths.md +2 -1
- package/docs/contracts/file-ownership-matrix.json +354 -500
- package/docs/contracts/iron-law-overrides.txt +25 -0
- package/docs/contracts/kernel-membership.md +273 -0
- package/docs/contracts/load-context-schema.md +26 -11
- package/docs/contracts/pilot/agent-authority.md +24 -0
- package/docs/contracts/pilot/direct-answers.md +70 -0
- package/docs/contracts/pilot/language-and-tone.md +63 -0
- package/docs/contracts/rule-classification.md +170 -0
- package/docs/contracts/rule-router.md +153 -0
- package/docs/customization.md +17 -6
- package/docs/decisions/ADR-001-kernel-swap-deferred.md +109 -0
- package/docs/decisions/ADR-002-kernel-bucket-overrides.md +124 -0
- package/docs/decisions/ADR-003-flat-cluster-subs-and-colon-syntax.md +126 -0
- package/docs/decisions/ADR-rule-kernel-and-router.md +122 -0
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/naming.md +1 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +176 -0
- package/docs/guidelines/agent-infra/rule-type-governance.md +73 -0
- package/docs/guidelines/agent-infra/size-and-scope.md +13 -2
- package/docs/guidelines/agent-infra/skill-quality-checklist.md +119 -0
- package/docs/guidelines/augment-portability-patterns.md +68 -0
- package/docs/guidelines/php/php-coding-patterns.md +62 -0
- package/package.json +1 -1
- package/scripts/_p43_bodies.py +235 -0
- package/scripts/_p43_compress.py +118 -0
- package/scripts/_p4_migrate.py +199 -0
- package/scripts/_phase2_shim_helper.py +1 -1
- package/scripts/_pilot_council_question.py +57 -0
- package/scripts/_pilot_measure.py +53 -0
- package/scripts/ai_council/session.py +107 -5
- package/scripts/build_linear_digest.py +3 -5
- package/scripts/check_always_budget.py +39 -6
- package/scripts/check_compressed_paths.py +213 -0
- package/scripts/check_compression.py +15 -0
- package/scripts/check_context_paths.py +1 -0
- package/scripts/check_council_layout.py +105 -0
- package/scripts/check_council_references.py +145 -0
- package/scripts/check_portability.py +2 -0
- package/scripts/check_references.py +2 -0
- package/scripts/check_token_optimizer_freshness.py +131 -0
- package/scripts/compile_router.py +148 -0
- package/scripts/compress.py +219 -11
- package/scripts/council_cli.py +132 -11
- package/scripts/council_prune.py +81 -0
- package/scripts/count_token_optimizer_usage.sh +54 -0
- package/scripts/install.sh +44 -2
- package/scripts/iron_law_sha.py +98 -0
- package/scripts/lint_load_context.py +35 -5
- package/scripts/measure_rule_budget.py +314 -0
- package/scripts/migrate_command_suggestions.py +2 -2
- package/scripts/prototype_lint_contradictions.py +150 -0
- package/scripts/schemas/command.schema.json +5 -0
- package/scripts/schemas/rule.schema.json +60 -6
- package/scripts/schemas/skill.schema.json +5 -0
- package/scripts/skill_linter.py +197 -7
- package/scripts/smoke_path_resolution.py +93 -0
- package/scripts/validate_frontmatter.py +41 -1
- package/.agent-src/commands/roadmap/execute.md +0 -109
- package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +0 -72
- package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +0 -79
- package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +0 -87
- package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +0 -62
- package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +0 -78
- package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +0 -85
- package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +0 -65
- package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +0 -78
- package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +0 -53
- /package/{docs → .agent-src/contexts}/contracts/artifact-engagement-flow.md +0 -0
- /package/{docs → .agent-src/contexts}/contracts/command-suggestion-flow.md +0 -0
|
@@ -4,6 +4,10 @@ tier: "3"
|
|
|
4
4
|
description: "Language and tone — informal German Du, English code comments, .md files always English"
|
|
5
5
|
alwaysApply: true
|
|
6
6
|
source: package
|
|
7
|
+
validator_ignore:
|
|
8
|
+
- type: "substring"
|
|
9
|
+
pattern: ".agent-src.uncompressed/"
|
|
10
|
+
reason: "Rule scopes the .md-English mandate to the authoring tree."
|
|
7
11
|
---
|
|
8
12
|
|
|
9
13
|
# Language and Tone
|
|
@@ -20,113 +24,44 @@ NO "SWITCH MID-PARAGRAPH". NO "LAST 20 TURNS WERE ENGLISH".
|
|
|
20
24
|
NO "INTER-TOOL COMMENT IS JUST A NOTE" EXCEPTION.
|
|
21
25
|
```
|
|
22
26
|
|
|
23
|
-
Trigger
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
identifier names, log lines.
|
|
50
|
-
|
|
51
|
-
### Pre-send gate — MANDATORY before every reply
|
|
52
|
-
|
|
53
|
-
Run silently before any output:
|
|
54
|
-
|
|
55
|
-
1. **Detect** — language of the user's last chat message. Mixed →
|
|
56
|
-
**dominant** language; tie → German (project default).
|
|
57
|
-
2. **Scan** — every user-visible token per the catalog above. Inter-
|
|
58
|
-
tool commentary, headings, table headers, bullet text, the
|
|
59
|
-
`Recommendation:` / `Empfehlung:` label — all included.
|
|
60
|
-
3. **Rewrite** — if any token is in the wrong language, rewrite
|
|
61
|
-
the whole reply. No "just this sentence", no "technical term is
|
|
62
|
-
English anyway", no "the inter-tool note doesn't matter".
|
|
63
|
-
4. **Confirm** — first sentence in target language; recommendation
|
|
64
|
-
label matches target language; no English filler-phrase opener
|
|
65
|
-
(`Let me`, `Now`, `Found`, `Confirmed`, `OK`, `Alright`,
|
|
66
|
-
`Here's`, `So`) when target is German, no German opener
|
|
67
|
-
(`Lass mich`, `Jetzt`, `Gefunden`, `Bestätigt`) when target is
|
|
68
|
-
English.
|
|
69
|
-
|
|
70
|
-
### Spelled out
|
|
71
|
-
|
|
72
|
-
- German → respond in German, informal "Du" (never "Sie"). "Du"
|
|
73
|
-
capitalized at sentence start, lowercase otherwise.
|
|
74
|
-
- Code blocks, command output, file contents, and quoted tool output
|
|
75
|
-
stay in their native language; only the **prose around them**
|
|
76
|
-
mirrors the user.
|
|
77
|
-
- Numbered options (per `user-interaction`) — `.md` source English,
|
|
78
|
-
rendered reply translated at runtime.
|
|
79
|
-
|
|
80
|
-
### Slip handling
|
|
81
|
-
|
|
82
|
-
Acknowledge **once**, briefly, in the correct language
|
|
83
|
-
("Entschuldigung" / "Sorry"). Switch on the same reply. Do **not**
|
|
84
|
-
re-explain in the wrong language; do **not** promise "from now on" —
|
|
85
|
-
just do it.
|
|
86
|
-
|
|
87
|
-
Full failure-mode list and wrong-vs-correct examples in
|
|
88
|
-
[`../../docs/guidelines/agent-infra/language-and-tone-examples.md`](../../docs/guidelines/agent-infra/language-and-tone-examples.md).
|
|
27
|
+
Trigger = user's last **chat message**. Not turn count, open file, roadmap, ticket, codebase, tool output, prior reply, or files just edited. Short German (`3`, `weiter`, `mach das`) after many English turns flips the reply to German.
|
|
28
|
+
|
|
29
|
+
## User-visible prose — every token mirrors
|
|
30
|
+
|
|
31
|
+
Applies to opening / closing line, **inter-tool commentary** (`Found it`, `Let me check`, `OK`, `Alright`, `Here's`, `So`), section headings, table headers and cells, bullet text, blockquote text, status lines, and the `Recommendation:` / `Empfehlung:` label under numbered-options blocks (per [`user-interaction`](user-interaction.md) Iron Law 1). Wrong label = violation.
|
|
32
|
+
|
|
33
|
+
Stays in source language: code blocks, command output, file contents, quoted tool output, frontmatter keys, file paths, identifier names, log lines.
|
|
34
|
+
|
|
35
|
+
## Pre-send gate — MANDATORY
|
|
36
|
+
|
|
37
|
+
1. **Detect** — language of user's last chat message. Mixed → dominant; tie → German.
|
|
38
|
+
2. **Scan** — every user-visible token per catalog above.
|
|
39
|
+
3. **Rewrite** — wrong-language token → rewrite the whole reply.
|
|
40
|
+
4. **Confirm** — first sentence in target language; recommendation label matches; no English filler-phrase opener (`Let me`, `Now`, `Found`, `Confirmed`, `OK`, `Alright`, `Here's`, `So`) when target is German; no German opener (`Lass mich`, `Jetzt`, `Gefunden`, `Bestätigt`) when target is English.
|
|
41
|
+
|
|
42
|
+
## Spelled out
|
|
43
|
+
|
|
44
|
+
- German → informal "Du" (never "Sie"); capitalized at sentence start, lowercase otherwise.
|
|
45
|
+
- Code blocks / command output / file contents / quoted tool output stay native; only surrounding prose mirrors.
|
|
46
|
+
- Numbered options — `.md` source English; rendered reply translated at runtime.
|
|
47
|
+
|
|
48
|
+
## Slip handling
|
|
49
|
+
|
|
50
|
+
Acknowledge **once** in the correct language ("Entschuldigung" / "Sorry"). Switch on the same reply. No re-explain in wrong language; no "from now on" promise.
|
|
51
|
+
|
|
52
|
+
Examples + wrong-vs-correct: [`language-and-tone-examples`](../docs/guidelines/agent-infra/language-and-tone-examples.md).
|
|
89
53
|
|
|
90
54
|
## Other language rules
|
|
91
55
|
|
|
92
56
|
- Code comments in English.
|
|
93
|
-
- `.md`
|
|
94
|
-
|
|
95
|
-
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
English: headings, paragraphs, bullets, option labels, example
|
|
105
|
-
prompts, template placeholders, ASCII-art labels, table headers and
|
|
106
|
-
content. The agent translates to the user's language **at runtime**.
|
|
107
|
-
|
|
108
|
-
### Labeled-anchor exception
|
|
109
|
-
|
|
110
|
-
Quoting German examples inside English prose is **not allowed**.
|
|
111
|
-
Two correct ways:
|
|
112
|
-
|
|
113
|
-
1. **Translate to English** — trigger recognition is semantic.
|
|
114
|
-
2. **Use a labeled `DE: … · EN: …` anchor list** when the
|
|
115
|
-
multilingual nature of recognition is the point. This is the
|
|
116
|
-
**only** allowed location for German prose in an English `.md`;
|
|
117
|
-
reference phrases abstractly elsewhere and link to the anchor.
|
|
118
|
-
|
|
119
|
-
### Detection heuristic
|
|
120
|
-
|
|
121
|
-
Before saving an `.md` file under `.augment/`, `.agent-src/`,
|
|
122
|
-
`.agent-src.uncompressed/`, or `agents/`, scan for:
|
|
123
|
-
|
|
124
|
-
- Umlauts (`ä`, `ö`, `ü`, `Ä`, `Ö`, `Ü`, `ß`) outside fenced code,
|
|
125
|
-
file paths, and the labeled anchor block.
|
|
126
|
-
- German function words in unquoted prose: `für`, `nicht`, `dass`,
|
|
127
|
-
`wenn`, `sollte`, `werden`, `arbeite`, `selbstständig`, `jetzt`,
|
|
128
|
-
`einfach`, `weiter`, `lösche`, `frag`, `schreib`, `mach`.
|
|
129
|
-
- Non-English quoted phrases in body text (paragraphs, list items,
|
|
130
|
-
table cells) when the surrounding prose is English.
|
|
131
|
-
|
|
132
|
-
Hit → translate it or move it into a `DE: … · EN: …` block.
|
|
57
|
+
- `.md` files in English (see below). Translate existing German `.md` files when touched.
|
|
58
|
+
- Two spaces after `❌`, `✅`, `⚠️` in CLI; one space for other icons.
|
|
59
|
+
- One blank line max; no double/triple blanks. File ends with exactly one newline.
|
|
60
|
+
|
|
61
|
+
## `.md` files — ALWAYS English
|
|
62
|
+
|
|
63
|
+
Every text inside `.md` under `.augment/`, `.agent-src/`, `.agent-src.uncompressed/`, `agents/`: headings, paragraphs, bullets, option labels, prompts, placeholders, ASCII labels, table headers / content. Agent translates at runtime.
|
|
64
|
+
|
|
65
|
+
**Labeled-anchor exception** — quoting German inside English prose is forbidden. Either translate, OR use a labeled `DE: … · EN: …` anchor block (only allowed location for German prose).
|
|
66
|
+
|
|
67
|
+
**Detection heuristic** before saving: scan for umlauts (`ä`, `ö`, `ü`, `Ä`, `Ö`, `Ü`, `ß`) outside fenced code / paths / anchor blocks; German function words (`für`, `nicht`, `dass`, `wenn`, `sollte`, `werden`, `arbeite`, `selbstständig`, `jetzt`, `einfach`, `weiter`, `lösche`, `frag`, `schreib`, `mach`); non-English quoted phrases in body text. Hit → translate or move to `DE: … · EN: …` block.
|
|
@@ -1,49 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "2a"
|
|
4
|
-
alwaysApply: false
|
|
5
4
|
description: "Laravel language files, translations, i18n, lang/de, lang/en, __() helper, localization, multilingual text"
|
|
6
5
|
source: package
|
|
6
|
+
triggers:
|
|
7
|
+
- path_prefix: "lang/"
|
|
8
|
+
- keyword: "translation"
|
|
9
|
+
- keyword: "__()"
|
|
10
|
+
- keyword: "trans("
|
|
11
|
+
routes_to:
|
|
12
|
+
- "skill:laravel"
|
|
7
13
|
---
|
|
8
14
|
|
|
9
|
-
# Laravel
|
|
15
|
+
# Laravel Translations
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+
**Iron Law.** Use `__()`/`trans()` with language keys for every user-visible string; mirror keys across `lang/<locale>/` files.
|
|
12
18
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
**Correct** (`lang/en/report.php`):
|
|
16
|
-
```php
|
|
17
|
-
return [
|
|
18
|
-
'type.daily_report' => 'Daily Report',
|
|
19
|
-
'type.care_report' => 'Care Report',
|
|
20
|
-
];
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
**Wrong** — nested arrays are forbidden:
|
|
24
|
-
```php
|
|
25
|
-
return [
|
|
26
|
-
'type' => [
|
|
27
|
-
'daily_report' => 'Daily Report',
|
|
28
|
-
'care_report' => 'Care Report',
|
|
29
|
-
],
|
|
30
|
-
];
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Both languages are mandatory
|
|
34
|
-
|
|
35
|
-
Every language line **must exist in both** `lang/de/` and `lang/en/`.
|
|
36
|
-
When you add a key to one file, immediately add the translated key to the other.
|
|
37
|
-
|
|
38
|
-
Missing translations are a bug — the app ships to both German and English users.
|
|
39
|
-
|
|
40
|
-
## Referencing language lines
|
|
41
|
-
|
|
42
|
-
Use the `__()` helper with the dot-notation key:
|
|
43
|
-
|
|
44
|
-
```php
|
|
45
|
-
__('report.type.daily_report')
|
|
46
|
-
__('email.report.created.subject', ['number' => $number])
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
Never hardcode user-visible strings in PHP — always use language files.
|
|
19
|
+
Body migrated to `skill:laravel` (per P4 of `road-to-kernel-and-router.md`).
|
|
20
|
+
Trigger-set above activates this routing under the `balanced` and `full` profiles.
|
|
@@ -4,6 +4,10 @@ tier: "2b"
|
|
|
4
4
|
description: "Generating markdown output that contains code blocks — prevent broken nesting"
|
|
5
5
|
alwaysApply: false
|
|
6
6
|
source: package
|
|
7
|
+
triggers:
|
|
8
|
+
- intent: "markdown with code blocks"
|
|
9
|
+
- keyword: "triple backticks"
|
|
10
|
+
- file_pattern: "*.md"
|
|
7
11
|
---
|
|
8
12
|
|
|
9
13
|
# Markdown Safe Codeblocks
|
|
@@ -4,6 +4,10 @@ tier: "2a"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
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"
|
|
6
6
|
source: package
|
|
7
|
+
triggers:
|
|
8
|
+
- intent: "writing a diff"
|
|
9
|
+
- intent: "reviewing a diff"
|
|
10
|
+
- keyword: "drive-by"
|
|
7
11
|
---
|
|
8
12
|
|
|
9
13
|
# Minimal Safe Diff
|
|
@@ -3,6 +3,10 @@ type: auto
|
|
|
3
3
|
tier: "2a"
|
|
4
4
|
source: package
|
|
5
5
|
description: "When a CLI tool needed for the task is not installed — ask before working around it; do NOT install silently"
|
|
6
|
+
triggers:
|
|
7
|
+
- keyword: "command not found"
|
|
8
|
+
- keyword: "not installed"
|
|
9
|
+
- intent: "install tool"
|
|
6
10
|
---
|
|
7
11
|
|
|
8
12
|
# Missing Tool Handling
|
|
@@ -2,70 +2,18 @@
|
|
|
2
2
|
type: "auto"
|
|
3
3
|
tier: "2a"
|
|
4
4
|
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"
|
|
5
|
-
alwaysApply: false
|
|
6
5
|
source: package
|
|
6
|
+
triggers:
|
|
7
|
+
- phrase: "switch task"
|
|
8
|
+
- phrase: "new task"
|
|
9
|
+
- phrase: "which model"
|
|
10
|
+
routes_to:
|
|
11
|
+
- "command:set-cost-profile"
|
|
7
12
|
---
|
|
8
13
|
|
|
9
14
|
# Model Recommendation
|
|
10
15
|
|
|
11
|
-
|
|
12
|
-
"Claude Sonnet" → `sonnet`, "GPT" → `gpt`, "Gemini" → `gemini`).
|
|
16
|
+
**Iron Law.** On task / model switch, recommend the optimal model for the task complexity before any work begins.
|
|
13
17
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
## When to act
|
|
17
|
-
|
|
18
|
-
**BEFORE starting any work**, classify the task the user is asking for:
|
|
19
|
-
|
|
20
|
-
- **opus**: refactoring, architecture, complex debugging, code review, multi-file changes
|
|
21
|
-
- **sonnet**: daily coding, bug fixes, tests, simple features, quality checks, PRs, commits, config
|
|
22
|
-
- **gpt**: complex agent flows, automations, research
|
|
23
|
-
|
|
24
|
-
**This check is MANDATORY** — not optional, not "nice to have". It runs:
|
|
25
|
-
- On the **first user message** of a conversation
|
|
26
|
-
- On **every clear topic/task change** (e.g., from refactoring to "create PR")
|
|
27
|
-
- **When a command is invoked** (e.g., `/create-pr` → sonnet task)
|
|
28
|
-
|
|
29
|
-
**⚠️ COMMAND INVOCATIONS ARE TASK CHANGES.** When the user invokes a command (e.g., `/create-pr`,
|
|
30
|
-
`/commit`, `/fix-ci`), ALWAYS re-evaluate the model before executing. Commands like `/create-pr`,
|
|
31
|
-
`/commit`, `/fix-pr-comments` are sonnet tasks — even if the previous task was opus-level.
|
|
32
|
-
This is the most commonly missed check. Do NOT skip it.
|
|
33
|
-
|
|
34
|
-
**Priority over commands rule**: This check runs BEFORE the `slash-command-routing-policy` rule. If a model switch
|
|
35
|
-
is recommended, show the suggestion first. Only after the user responds, execute the command.
|
|
36
|
-
|
|
37
|
-
**If ambiguous** (could be opus or sonnet): default to **sonnet** — cheaper, and the user can escalate.
|
|
38
|
-
|
|
39
|
-
If the recommended model ≠ detected model, suggest switching **before doing any work**:
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
> 💡 This looks like {task type} — best suited for **{recommended model}**.
|
|
43
|
-
> You're currently on **{detected model}**.
|
|
44
|
-
>
|
|
45
|
-
> 1. I've switched to {recommended} — continue
|
|
46
|
-
> 2. Stay on {detected model}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
**⛔ STOP AND WAIT.** After showing this suggestion, your response ENDS.
|
|
50
|
-
Do NOT read files, create tasks, start coding, or do anything else in the same response.
|
|
51
|
-
The ONLY content after the numbered options is the end of your message.
|
|
52
|
-
Wait for the user to pick 1 or 2 before proceeding.
|
|
53
|
-
|
|
54
|
-
→ Full mapping and heuristics: `.augment/contexts/model-recommendations.md`
|
|
55
|
-
|
|
56
|
-
## Switch confirmation
|
|
57
|
-
|
|
58
|
-
- If user picks **1**: accept and continue. No follow-up question.
|
|
59
|
-
- If user picks **2**: accept. Don't ask again until the task type changes.
|
|
60
|
-
- **Never ask more than once per task** unless the task type changes significantly.
|
|
61
|
-
|
|
62
|
-
## Downgrade after Opus
|
|
63
|
-
|
|
64
|
-
After completing an opus-level phase (architecture done, root cause found, refactoring plan ready),
|
|
65
|
-
suggest switching back to sonnet for implementation. Same numbered options.
|
|
66
|
-
|
|
67
|
-
## Gemini warning
|
|
68
|
-
|
|
69
|
-
If detected model is `gemini`: warn that Gemini is **not recommended** for this project.
|
|
70
|
-
Suggest switching to the best model for the current task (opus/sonnet/gpt).
|
|
71
|
-
Show the same numbered options as above. Repeat once if dismissed — then accept.
|
|
18
|
+
Body migrated to `command:set-cost-profile` (per P4 of `road-to-kernel-and-router.md`).
|
|
19
|
+
Trigger-set above activates this routing under the `balanced` and `full` profiles.
|
|
@@ -4,6 +4,11 @@ tier: "3"
|
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
description: "Generating PR/issue/comment/commit-message bodies — forbids unsolicited 'Generated with', 'Co-authored by', or 'Pull Request opened by' attribution footers in any user-owned artifact"
|
|
6
6
|
source: package
|
|
7
|
+
triggers:
|
|
8
|
+
- intent: "PR body"
|
|
9
|
+
- intent: "commit message"
|
|
10
|
+
- intent: "Jira comment"
|
|
11
|
+
- keyword: "co-authored"
|
|
7
12
|
---
|
|
8
13
|
|
|
9
14
|
# No Attribution Footers
|
|
@@ -8,12 +8,7 @@ source: package
|
|
|
8
8
|
|
|
9
9
|
# No Cheap Questions
|
|
10
10
|
|
|
11
|
-
A question is **cheap** when
|
|
12
|
-
an option breaches an Iron Law, choices differ only in sequencing /
|
|
13
|
-
format, or one option is obviously dominant. Mode-independent — holds
|
|
14
|
-
in `off`, `auto`, and `on`; autonomy never lifts the no-trade-off
|
|
15
|
-
floor (cf. [`autonomous-execution`](autonomous-execution.md), whose
|
|
16
|
-
"trivial" failure modes only scope to `on` / opted-in `auto`).
|
|
11
|
+
A question is **cheap** when context already answers, an option breaches an Iron Law, choices differ only in sequencing / format, or one option is dominant. Mode-independent — `off`, `auto`, `on`. Autonomy never lifts the floor.
|
|
17
12
|
|
|
18
13
|
## The Iron Laws
|
|
19
14
|
|
|
@@ -23,54 +18,43 @@ NEVER PRESENT AN OPTION THAT VIOLATES AN IRON LAW.
|
|
|
23
18
|
NEVER OFFER NUMBERED CHOICES WITHOUT A REAL TRADE-OFF.
|
|
24
19
|
```
|
|
25
20
|
|
|
26
|
-
Hold in `off`, `auto`, and `on`. Autonomy never lifts them.
|
|
27
|
-
|
|
28
21
|
## What counts as cheap
|
|
29
22
|
|
|
30
23
|
- **Sequencing** — "Step 2 or 3 next?" when the roadmap orders them.
|
|
31
24
|
- **Format-only** — "Table or paragraph?"; no semantic trade-off.
|
|
32
25
|
- **Commit asks** — forbidden by [`commit-policy`](commit-policy.md).
|
|
33
26
|
- **CI / test asks** — [`verify-before-complete`](verify-before-complete.md) decides, not the user.
|
|
34
|
-
- **Fenced-step re-asks** — "Start Phase 1?" after *"plan only"*; see
|
|
35
|
-
|
|
36
|
-
- **Iron-Law option** — breaches `commit-policy`, `scope-control` § git-ops, or `non-destructive-by-default`.
|
|
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`.
|
|
37
29
|
- **Context-derived** — answer follows from prior turn / standing instruction / roadmap; act, state the assumption inline.
|
|
38
30
|
- **Dominant option** — one choice obviously correct; alternatives carry no upside.
|
|
39
31
|
- **Re-ask after decline** — forbidden per [`scope-control § decline = silence`](scope-control.md#decline--silence--no-re-asking-on-the-same-task).
|
|
40
32
|
|
|
41
|
-
Examples per class:
|
|
42
|
-
[`asking-and-brevity-examples`](../../docs/guidelines/agent-infra/asking-and-brevity-examples.md#cheap-question-class-catalog--extended-examples).
|
|
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).
|
|
43
34
|
|
|
44
35
|
## Pre-Send Self-Check — MANDATORY before every question
|
|
45
36
|
|
|
46
37
|
Run silently before any numbered-options block:
|
|
47
38
|
|
|
48
39
|
1. Answer already in stated context?
|
|
49
|
-
2. Any option violates `commit-policy`, `scope-control
|
|
40
|
+
2. Any option violates `commit-policy`, `scope-control § git-ops`, or `non-destructive-by-default`?
|
|
50
41
|
3. Options pure sequencing / format, no trade-off?
|
|
51
42
|
4. One option obviously dominant?
|
|
52
|
-
5. User fenced next step (*"plan only"*, *"review first"*) → deliver + handback per `scope-control
|
|
53
|
-
6. User already declined? Re-ask forbidden per `scope-control
|
|
43
|
+
5. User fenced next step (*"plan only"*, *"review first"*) → deliver + handback per `scope-control § fenced step`.
|
|
44
|
+
6. User already declined? Re-ask forbidden per `scope-control § decline = silence`.
|
|
54
45
|
|
|
55
|
-
Any "yes" → **do not ask**. Pick the dominant path, state assumption
|
|
56
|
-
inline (*"assuming X — adjust if wrong"*), hand back. One-question-per-turn
|
|
57
|
-
from [`ask-when-uncertain`](ask-when-uncertain.md) still applies when
|
|
58
|
-
the question is genuine.
|
|
46
|
+
Any "yes" → **do not ask**. Pick the dominant path, state assumption inline (*"assuming X — adjust if wrong"*), hand back. One-question-per-turn from [`ask-when-uncertain`](ask-when-uncertain.md) still applies when the question is genuine.
|
|
59
47
|
|
|
60
48
|
## When asking IS allowed
|
|
61
49
|
|
|
62
50
|
- Real architectural / scope decision with non-obvious trade-offs.
|
|
63
|
-
- Vague-request trigger per [`ask-when-uncertain`](ask-when-uncertain.md#vague-request-triggers--must-ask).
|
|
51
|
+
- Vague-request trigger per [`ask-when-uncertain § vague-triggers`](ask-when-uncertain.md#vague-request-triggers--must-ask).
|
|
64
52
|
- Security-sensitive path per [`security-sensitive-stop`](security-sensitive-stop.md).
|
|
65
|
-
- Hard Floor per `non-destructive-by-default` — confirmation mandatory.
|
|
53
|
+
- Hard Floor per [`non-destructive-by-default`](non-destructive-by-default.md) — confirmation mandatory.
|
|
66
54
|
- Two genuinely-equivalent paths; user preference is the tiebreaker.
|
|
67
55
|
|
|
68
56
|
In doubt → ask. This rule narrows asking, never widens silence.
|
|
69
57
|
|
|
70
58
|
## Interactions
|
|
71
59
|
|
|
72
|
-
|
|
73
|
-
- [`autonomous-execution`](autonomous-execution.md) — mode-scoped triviality there; mode-independent floor here.
|
|
74
|
-
- [`commit-policy`](commit-policy.md) · [`scope-control`](scope-control.md) · [`non-destructive-by-default`](non-destructive-by-default.md) — Iron Laws this rule defends.
|
|
75
|
-
- [`user-interaction`](user-interaction.md) — numbered-options shape; this rule decides whether to send.
|
|
76
|
-
- [`direct-answers`](direct-answers.md) — brevity, no flattery.
|
|
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).
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "auto"
|
|
3
|
+
tier: "mechanical-already"
|
|
4
|
+
description: "Linking a specific file in agents/council-{questions,responses,sessions}/ from any artifact — council files are gitignored, local-only, auto-pruned; inline the convergence instead"
|
|
5
|
+
alwaysApply: false
|
|
6
|
+
source: package
|
|
7
|
+
triggers:
|
|
8
|
+
- path_prefix: "agents/council-questions/"
|
|
9
|
+
- path_prefix: "agents/council-responses/"
|
|
10
|
+
- path_prefix: "agents/council-sessions/"
|
|
11
|
+
- intent: "link to council artefact"
|
|
12
|
+
routes_to:
|
|
13
|
+
- "skill:ai-council"
|
|
14
|
+
validator_ignore:
|
|
15
|
+
- type: "substring"
|
|
16
|
+
pattern: ".agent-src.uncompressed/"
|
|
17
|
+
reason: "Rule references the authoring tree when contrasting transient council files."
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# No Council References from Any Artifact
|
|
21
|
+
|
|
22
|
+
Council artefacts under `agents/council-{questions,responses,sessions}/`
|
|
23
|
+
are **gitignored, local-only, and auto-pruned** after
|
|
24
|
+
`ai_council.session_retention_days` (default 7). They are
|
|
25
|
+
disposable scratch — never part of the repo, never visible to a
|
|
26
|
+
reviewer who clones, never durable across the retention window.
|
|
27
|
+
|
|
28
|
+
A link to a specific council file rots three ways: gitignored
|
|
29
|
+
(not in cloned repo), pruned after retention window (gone even
|
|
30
|
+
locally), and the installed `.augment/` projection cannot follow a
|
|
31
|
+
path that does not exist in the consumer.
|
|
32
|
+
|
|
33
|
+
## The Iron Law
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
NEVER LINK TO A SPECIFIC FILE INSIDE
|
|
37
|
+
agents/council-{questions,responses,sessions}/
|
|
38
|
+
FROM ANY ARTIFACT — ROADMAPS INCLUDED.
|
|
39
|
+
INLINE THE CONVERGENCE WITH DATE + MEMBERS, NEVER THE PATH.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Applies to **every** artifact. Council artefacts are more transient
|
|
43
|
+
than roadmaps — the local copy disappears too.
|
|
44
|
+
|
|
45
|
+
## Forbidden vs allowed
|
|
46
|
+
|
|
47
|
+
**Forbidden** in any `*.md` / `*.yml` / `*.json` / `*.py`:
|
|
48
|
+
`agents/council-questions/<file>.md`,
|
|
49
|
+
`agents/council-responses/<file>.json`,
|
|
50
|
+
`agents/council-sessions/<file>.json` or `<timestamp>/...`.
|
|
51
|
+
|
|
52
|
+
**Allowed**: directory mentions (talking about the output convention,
|
|
53
|
+
not a specific file); the `ai-council` skill and `/council:*` commands
|
|
54
|
+
documenting the output path schema; inline convergence summary —
|
|
55
|
+
e.g. *"Council (claude-sonnet-4-5 + gpt-4o, 2026-05-06) converged
|
|
56
|
+
on …"* with date + members, no filepath.
|
|
57
|
+
|
|
58
|
+
## What to do instead
|
|
59
|
+
|
|
60
|
+
Identify the durable conclusion (decision, contract, lesson),
|
|
61
|
+
inline a convergence-summary block (members, date, cost if relevant
|
|
62
|
+
— see `ai-council` § Output format), and optionally promote the
|
|
63
|
+
lesson to `agents/contexts/`. The context is durable; the council
|
|
64
|
+
file was the catalyst.
|
|
65
|
+
|
|
66
|
+
Failure mode: *"I'll just link to the session JSON, it's evidence."*
|
|
67
|
+
The session is gone in 7 days. **Inline first, link never.**
|
|
68
|
+
|
|
69
|
+
## See also
|
|
70
|
+
|
|
71
|
+
- [`no-roadmap-references`](no-roadmap-references.md) — sibling rule
|
|
72
|
+
for the roadmap layer
|
|
73
|
+
- [`augment-source-of-truth`](augment-source-of-truth.md) — edit
|
|
74
|
+
`.agent-src.uncompressed/`
|
|
75
|
+
- [`ai-council`](../skills/ai-council/SKILL.md) — output path
|
|
76
|
+
convention and convergence-summary format
|
|
@@ -4,6 +4,13 @@ tier: "mechanical-already"
|
|
|
4
4
|
description: "Adding a link to a specific file in agents/roadmaps/ from any stable artifact (rule, skill, command, context, guideline) — roadmaps are transient; promote durable findings to agents/contexts/ instead"
|
|
5
5
|
alwaysApply: false
|
|
6
6
|
source: package
|
|
7
|
+
triggers:
|
|
8
|
+
- path_prefix: "agents/roadmaps/"
|
|
9
|
+
- intent: "link from stable artifact"
|
|
10
|
+
validator_ignore:
|
|
11
|
+
- type: "substring"
|
|
12
|
+
pattern: ".agent-src.uncompressed/"
|
|
13
|
+
reason: "Rule contrasts the authoring tree with transient roadmap files."
|
|
7
14
|
---
|
|
8
15
|
|
|
9
16
|
# No Roadmap References from Stable Artifacts
|
|
@@ -5,16 +5,12 @@ description: "Agent is never destructive — Hard Floor always asks for prod-tru
|
|
|
5
5
|
alwaysApply: true
|
|
6
6
|
source: package
|
|
7
7
|
load_context:
|
|
8
|
-
-
|
|
8
|
+
- ../contexts/authority/destructive-mechanics.md
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Non-Destructive by Default
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
or production systems. This is the universal safety floor — it applies
|
|
15
|
-
in every mode, every conversation, every turn. Autonomy settings, "just
|
|
16
|
-
keep going" directives, roadmap authorizations, and standing
|
|
17
|
-
permissions narrow other rules; **none of them lift this one**.
|
|
13
|
+
Universal safety floor. Applies in every mode, every conversation, every turn. Autonomy, "just keep going", roadmap authorizations, and standing permissions narrow other rules — **none lift this one**.
|
|
18
14
|
|
|
19
15
|
## The Iron Law
|
|
20
16
|
|
|
@@ -24,61 +20,35 @@ NO AUTONOMY SETTING, NO ROADMAP STEP, NO STANDING INSTRUCTION,
|
|
|
24
20
|
NO "JUST KEEP GOING" CAN BYPASS IT.
|
|
25
21
|
```
|
|
26
22
|
|
|
27
|
-
Triggers below require explicit user confirmation **on this turn** —
|
|
28
|
-
not from a previous turn, not from a roadmap, not from a standing
|
|
29
|
-
autonomy directive (see [`autonomous-execution`](autonomous-execution.md#opt-in-detection--match-by-intent-not-exact-string)
|
|
30
|
-
for the anchor list of recognized phrases):
|
|
23
|
+
Triggers below require explicit user confirmation **on this turn** — not from a previous turn, not from a roadmap, not from a standing autonomy directive (anchor list: [`autonomous-execution § opt-in detection`](autonomous-execution.md#opt-in-detection--match-by-intent-not-exact-string)):
|
|
31
24
|
|
|
32
25
|
| Trigger | Examples |
|
|
33
26
|
|---|---|
|
|
34
|
-
| **Production-branch merge** |
|
|
27
|
+
| **Production-branch merge** | `main`, `master`, `prod`, `production`, `release/*`, or any branch the project marks as deployment trunk |
|
|
35
28
|
| **Deploy / release** | `terraform apply` on prod, `kubectl apply` on prod, deploy scripts, release commands, tag pushes that trigger CI deployment |
|
|
36
29
|
| **Push to remote** | any `git push` (also covered by [`scope-control`](scope-control.md), restated so the floor never weakens) |
|
|
37
|
-
| **Production data / infra** | prod DB writes
|
|
38
|
-
| **Whimsical
|
|
39
|
-
| **Commit containing bulk deletions or infra changes** |
|
|
30
|
+
| **Production data / infra** | prod DB writes / migrations, prod config, secrets rotation, IAM / role / policy, DNS, anything in a `prod`-scoped path or pipeline |
|
|
31
|
+
| **Whimsical / unscoped bulk deletion** | `rm -rf <dir>`, `git rm -r`, glob deletions, `DROP TABLE`, `TRUNCATE`, `git reset --hard` past unpushed work — when **not required** by the current task. Task-aligned WIP deletions are allowed (below) |
|
|
32
|
+
| **Commit containing bulk deletions or infra changes** | commit whose diff removes a directory, deletes ≥5 unrelated files, or touches Terraform / Pulumi / k8s manifests / Ansible / cloud-config — surface diff and confirm even when [`commit-policy`](commit-policy.md) otherwise authorizes |
|
|
40
33
|
|
|
41
|
-
Standing "just keep going" + next step crosses the floor → STOP,
|
|
42
|
-
surface what's about to happen (one numbered-options block per
|
|
43
|
-
[`user-interaction`](user-interaction.md)), wait. Other rules still
|
|
44
|
-
apply to every other step.
|
|
34
|
+
Standing "just keep going" + next step crosses the floor → STOP, surface what's about to happen (one numbered-options block per [`user-interaction`](user-interaction.md)), wait. Other rules still apply to every other step.
|
|
45
35
|
|
|
46
36
|
## Not in scope — deterministic regeneration
|
|
47
37
|
|
|
48
|
-
Output regenerated from a tracked source (compression, code-gen,
|
|
49
|
-
formatter passes, lock-file rebuilds) is not destructive — the source
|
|
50
|
-
of truth makes it reversible. Lives in
|
|
51
|
-
[`autonomous-execution`](autonomous-execution.md#trivial--just-act-do-not-ask)
|
|
52
|
-
§ Trivial, not here. Per-file diff approval is theater.
|
|
38
|
+
Output regenerated from a tracked source (compression, code-gen, formatter passes, lock-file rebuilds) is reversible from source — **not destructive**. Lives in [`autonomous-execution § Trivial`](autonomous-execution.md#trivial--just-act-do-not-ask). Per-file diff approval is theater.
|
|
53
39
|
|
|
54
40
|
## Bulk deletions during WIP — allowed if task-connected
|
|
55
41
|
|
|
56
|
-
Deletions inside an **active, user-stated task** are allowed in the
|
|
57
|
-
working tree, **even multiple files or multiple folders** — the Hard
|
|
58
|
-
Floor moves to the **commit** (row 6 above), not the in-progress edit.
|
|
59
|
-
Whimsical / drive-by / unnamed-scope deletions still trip the floor on
|
|
60
|
-
the edit. Full allowed/forbidden lists in
|
|
61
|
-
[`destructive-mechanics`](../contexts/authority/destructive-mechanics.md)
|
|
62
|
-
§ Bulk deletions during WIP.
|
|
42
|
+
Deletions inside an **active, user-stated task** are allowed in the working tree, even multiple files / folders — the Hard Floor moves to the **commit** (row 6), not the in-progress edit. Whimsical / drive-by / unnamed-scope deletions still trip the floor on the edit. Allowed / forbidden lists: [`destructive-mechanics § Bulk deletions during WIP`](../contexts/authority/destructive-mechanics.md).
|
|
63
43
|
|
|
64
44
|
## Failure modes
|
|
65
45
|
|
|
66
|
-
|
|
67
|
-
refusing-named-deletions, commit-without-diff-surface,
|
|
68
|
-
roadmap-step-≠-commit-authorization) lives in
|
|
69
|
-
[`destructive-mechanics`](../contexts/authority/destructive-mechanics.md)
|
|
70
|
-
§ Failure modes. Reach for it when a Hard-Floor situation feels
|
|
71
|
-
ambiguous; the rule itself stays focused on the trigger table.
|
|
46
|
+
Full catalog (autonomy-as-cover, roadmap-as-authorization, refusing-named-deletions, commit-without-diff-surface, roadmap-step ≠ commit-authorization): [`destructive-mechanics § Failure modes`](../contexts/authority/destructive-mechanics.md).
|
|
72
47
|
|
|
73
48
|
## Cloud Behavior
|
|
74
49
|
|
|
75
|
-
|
|
76
|
-
Skills API, and any cloud agent. There is no "cloud override" — the
|
|
77
|
-
floor predates and outranks any platform-specific autonomy default.
|
|
50
|
+
Floor applies on every surface — Claude.ai Web, Skills API, any cloud agent. No "cloud override".
|
|
78
51
|
|
|
79
52
|
## See also
|
|
80
53
|
|
|
81
|
-
|
|
82
|
-
- [`commit-policy`](commit-policy.md) — four commit-exception paths; row 6 of the floor still applies on top of all four
|
|
83
|
-
- [`scope-control`](scope-control.md) — git-ops permission gate; the floor is the never-overridable subset
|
|
84
|
-
- [`user-interaction`](user-interaction.md) — numbered-options Iron Law for the confirmation prompt
|
|
54
|
+
[`autonomous-execution`](autonomous-execution.md) · [`commit-policy`](commit-policy.md) · [`scope-control`](scope-control.md) · [`user-interaction`](user-interaction.md).
|