@event4u/agent-config 1.16.0 → 1.18.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-audit.md → agents/audit.md} +4 -3
- package/.agent-src/commands/{agents-cleanup.md → agents/cleanup.md} +12 -6
- package/.agent-src/commands/{agents-prepare.md → agents/prepare.md} +4 -3
- package/.agent-src/commands/agents.md +46 -0
- package/.agent-src/commands/{chat-history-checkpoint.md → chat-history/checkpoint.md} +4 -4
- package/.agent-src/commands/{chat-history-clear.md → chat-history/clear.md} +4 -4
- package/.agent-src/commands/{chat-history-resume.md → chat-history/resume.md} +4 -4
- package/.agent-src/commands/chat-history/show.md +107 -0
- package/.agent-src/commands/chat-history.md +33 -89
- package/.agent-src/commands/{commit-in-chunks.md → commit/in-chunks.md} +15 -13
- package/.agent-src/commands/commit.md +22 -2
- package/.agent-src/commands/{context-create.md → context/create.md} +4 -3
- package/.agent-src/commands/{context-refactor.md → context/refactor.md} +4 -3
- package/.agent-src/commands/context.md +44 -0
- package/.agent-src/commands/{copilot-agents-init.md → copilot-agents/init.md} +4 -3
- package/.agent-src/commands/{copilot-agents-optimize.md → copilot-agents/optimize.md} +4 -3
- package/.agent-src/commands/copilot-agents.md +44 -0
- package/.agent-src/commands/council/default.md +221 -0
- package/.agent-src/commands/{council-design.md → council/design.md} +6 -5
- package/.agent-src/commands/{council-optimize.md → council/optimize.md} +7 -6
- package/.agent-src/commands/{council-pr.md → council/pr.md} +6 -5
- package/.agent-src/commands/council.md +47 -212
- package/.agent-src/commands/{create-pr-description.md → create-pr/description-only.md} +4 -2
- package/.agent-src/commands/create-pr.md +26 -5
- package/.agent-src/commands/{feature-dev.md → feature/dev.md} +5 -10
- package/.agent-src/commands/{feature-explore.md → feature/explore.md} +4 -8
- package/.agent-src/commands/{feature-plan.md → feature/plan.md} +4 -8
- package/.agent-src/commands/{feature-refactor.md → feature/refactor.md} +4 -8
- package/.agent-src/commands/{feature-roadmap.md → feature/roadmap.md} +6 -10
- package/.agent-src/commands/feature.md +6 -12
- package/.agent-src/commands/{fix-ci.md → fix/ci.md} +4 -8
- package/.agent-src/commands/{fix-portability.md → fix/portability.md} +4 -8
- package/.agent-src/commands/{fix-pr-bot-comments.md → fix/pr-bots.md} +4 -8
- package/.agent-src/commands/{fix-pr-developer-comments.md → fix/pr-developers.md} +4 -8
- package/.agent-src/commands/{fix-pr-comments.md → fix/pr.md} +7 -11
- package/.agent-src/commands/{fix-references.md → fix/refs.md} +4 -8
- package/.agent-src/commands/{fix-seeder.md → fix/seeder.md} +4 -8
- package/.agent-src/commands/fix.md +7 -13
- package/.agent-src/commands/{do-and-judge.md → judge/on-diff.md} +4 -3
- package/.agent-src/commands/judge/solo.md +90 -0
- package/.agent-src/commands/{do-in-steps.md → judge/steps.md} +4 -3
- package/.agent-src/commands/judge.md +35 -70
- package/.agent-src/commands/{memory-add.md → memory/add.md} +4 -3
- package/.agent-src/commands/{memory-full.md → memory/load.md} +4 -3
- package/.agent-src/commands/{memory-promote.md → memory/promote.md} +4 -3
- package/.agent-src/commands/{propose-memory.md → memory/propose.md} +4 -3
- package/.agent-src/commands/memory.md +48 -0
- package/.agent-src/commands/{module-create.md → module/create.md} +4 -3
- package/.agent-src/commands/{module-explore.md → module/explore.md} +4 -3
- package/.agent-src/commands/module.md +44 -0
- package/.agent-src/commands/{optimize-agents.md → optimize/agents.md} +4 -8
- package/.agent-src/commands/{optimize-augmentignore.md → optimize/augmentignore.md} +4 -9
- package/.agent-src/commands/{optimize-rtk-filters.md → optimize/rtk.md} +4 -8
- package/.agent-src/commands/{optimize-skills.md → optimize/skills.md} +4 -8
- package/.agent-src/commands/optimize.md +4 -10
- package/.agent-src/commands/{override-create.md → override/create.md} +4 -3
- package/.agent-src/commands/{override-manage.md → override/manage.md} +4 -3
- package/.agent-src/commands/override.md +44 -0
- package/.agent-src/commands/{roadmap-create.md → roadmap/create.md} +4 -3
- package/.agent-src/commands/{roadmap-execute.md → roadmap/execute.md} +4 -3
- package/.agent-src/commands/roadmap.md +44 -0
- package/.agent-src/commands/{tests-create.md → tests/create.md} +4 -3
- package/.agent-src/commands/{tests-execute.md → tests/execute.md} +4 -3
- package/.agent-src/commands/tests.md +44 -0
- package/.agent-src/contexts/communication/rules-auto/artifact-engagement-recording-mechanics.md +72 -0
- package/.agent-src/contexts/communication/rules-auto/augment-portability-mechanics.md +79 -0
- package/.agent-src/contexts/communication/rules-auto/augment-source-of-truth-mechanics.md +98 -0
- package/.agent-src/contexts/communication/rules-auto/cli-output-handling-mechanics.md +87 -0
- package/.agent-src/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md +62 -0
- package/.agent-src/contexts/communication/rules-auto/docs-sync-mechanics.md +78 -0
- package/.agent-src/contexts/communication/rules-auto/package-ci-checks-mechanics.md +85 -0
- package/.agent-src/contexts/communication/rules-auto/review-routing-awareness-mechanics.md +65 -0
- package/.agent-src/contexts/communication/rules-auto/roadmap-progress-sync-mechanics.md +78 -0
- package/.agent-src/contexts/communication/rules-auto/skill-quality-mechanics.md +62 -0
- package/.agent-src/contexts/communication/rules-auto/slash-command-routing-policy-mechanics.md +55 -0
- package/.agent-src/contexts/communication/rules-auto/ui-audit-gate-mechanics.md +53 -0
- package/.agent-src/contexts/communication/rules-auto/user-interaction-mechanics.md +77 -0
- package/.agent-src/contexts/judges/no-consolidate-rationale.md +102 -0
- package/.agent-src/contexts/judges/persona-voice-rubric.md +140 -0
- package/.agent-src/rules/artifact-engagement-recording.md +13 -69
- package/.agent-src/rules/ask-when-uncertain.md +27 -42
- package/.agent-src/rules/augment-portability.md +15 -61
- package/.agent-src/rules/augment-source-of-truth.md +27 -93
- package/.agent-src/rules/cli-output-handling.md +10 -76
- package/.agent-src/rules/command-suggestion-policy.md +18 -59
- package/.agent-src/rules/commit-conventions.md +17 -14
- package/.agent-src/rules/context-hygiene.md +6 -0
- package/.agent-src/rules/direct-answers.md +35 -59
- package/.agent-src/rules/docker-commands.md +5 -5
- package/.agent-src/rules/docs-sync.md +15 -69
- package/.agent-src/rules/language-and-tone.md +48 -72
- package/.agent-src/rules/missing-tool-handling.md +28 -22
- package/.agent-src/rules/no-cheap-questions.md +39 -53
- package/.agent-src/rules/no-roadmap-references.md +73 -0
- package/.agent-src/rules/onboarding-gate.md +7 -0
- package/.agent-src/rules/package-ci-checks.md +21 -61
- package/.agent-src/rules/preservation-guard.md +64 -29
- package/.agent-src/rules/review-routing-awareness.md +24 -43
- package/.agent-src/rules/roadmap-progress-sync.md +31 -65
- package/.agent-src/rules/rule-type-governance.md +28 -0
- package/.agent-src/rules/security-sensitive-stop.md +8 -8
- package/.agent-src/rules/skill-quality.md +16 -48
- package/.agent-src/rules/slash-command-routing-policy.md +7 -4
- package/.agent-src/rules/think-before-action.md +52 -42
- package/.agent-src/rules/tool-safety.md +19 -16
- package/.agent-src/rules/ui-audit-gate.md +24 -38
- package/.agent-src/rules/user-interaction.md +13 -68
- package/.agent-src/skills/ai-council/SKILL.md +2 -0
- package/.agent-src/skills/api-testing/SKILL.md +1 -1
- package/.agent-src/skills/check-refs/SKILL.md +59 -40
- package/.agent-src/skills/conventional-commits-writing/SKILL.md +86 -28
- package/.agent-src/skills/copilot-agents-optimization/SKILL.md +5 -5
- package/.agent-src/skills/developer-like-execution/SKILL.md +4 -4
- package/.agent-src/skills/finishing-a-development-branch/SKILL.md +101 -65
- package/.agent-src/skills/flux/SKILL.md +30 -10
- package/.agent-src/skills/github-ci/SKILL.md +2 -2
- package/.agent-src/skills/judge-code-quality/SKILL.md +7 -8
- package/.agent-src/skills/judge-security-auditor/SKILL.md +4 -5
- package/.agent-src/skills/judge-test-coverage/SKILL.md +3 -4
- package/.agent-src/skills/lint-skills/SKILL.md +57 -39
- package/.agent-src/skills/md-language-check/SKILL.md +61 -39
- package/.agent-src/skills/override-management/SKILL.md +5 -5
- package/.agent-src/skills/quality-tools/SKILL.md +2 -2
- package/.agent-src/skills/react-shadcn-ui/SKILL.md +116 -43
- package/.agent-src/skills/readme-reviewer/SKILL.md +30 -29
- package/.agent-src/skills/readme-writing/SKILL.md +78 -53
- package/.agent-src/skills/readme-writing-package/SKILL.md +50 -47
- package/.agent-src/skills/receiving-code-review/SKILL.md +52 -47
- package/.agent-src/skills/refine-prompt/SKILL.md +0 -1
- package/.agent-src/skills/requesting-code-review/SKILL.md +35 -30
- package/.agent-src/skills/security/SKILL.md +7 -2
- package/.agent-src/skills/security-audit/SKILL.md +7 -3
- package/.agent-src/skills/systematic-debugging/SKILL.md +68 -60
- package/.agent-src/skills/test-driven-development/SKILL.md +59 -57
- package/.agent-src/skills/test-performance/SKILL.md +0 -1
- package/.agent-src/skills/traefik/SKILL.md +4 -4
- package/.agent-src/skills/verify-completion-evidence/SKILL.md +28 -26
- package/.agent-src/templates/roadmaps.md +4 -0
- package/.claude-plugin/marketplace.json +22 -11
- package/AGENTS.md +2 -2
- package/CHANGELOG.md +125 -1
- package/README.md +18 -17
- package/docs/architecture.md +4 -6
- package/docs/catalog.md +67 -39
- package/docs/contracts/STABILITY.md +13 -7
- package/docs/contracts/adr-chat-history-split.md +1 -3
- package/docs/contracts/adr-command-suggestion.md +0 -2
- package/docs/contracts/adr-implement-ticket-runtime.md +1 -2
- package/docs/contracts/adr-product-ui-track.md +3 -6
- package/docs/contracts/adr-prompt-driven-execution.md +3 -4
- package/docs/contracts/agent-memory-contract.md +6 -11
- package/docs/contracts/artifact-engagement-flow.md +6 -9
- package/docs/contracts/command-clusters.md +56 -46
- package/docs/contracts/command-suggestion-flow.md +1 -3
- package/docs/contracts/context-paths.md +99 -0
- package/docs/contracts/file-ownership-matrix.json +6722 -0
- package/docs/contracts/file-ownership-matrix.md +134 -0
- package/docs/contracts/implement-ticket-flow.md +6 -9
- package/docs/contracts/linear-ai-rules-inclusion.md +0 -1
- package/docs/contracts/linear-ai-three-layers.md +0 -2
- package/docs/contracts/load-context-budget-model.md +258 -0
- package/docs/contracts/load-context-schema.md +21 -3
- package/docs/contracts/roadmap-complexity-standard.md +137 -0
- package/docs/contracts/rule-interactions.md +0 -1
- package/docs/contracts/rule-priority-hierarchy.md +1 -1
- package/docs/contracts/ui-track-flow.md +7 -17
- package/docs/customization.md +2 -0
- package/docs/getting-started.md +5 -4
- package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +134 -0
- package/docs/guidelines/agent-infra/asking-and-brevity-examples.md +100 -0
- package/docs/guidelines/agent-infra/direct-answers-demos.md +145 -0
- package/docs/guidelines/agent-infra/verify-before-complete-demos.md +128 -0
- package/package.json +1 -1
- package/scripts/_phase2_shim_helper.py +109 -0
- package/scripts/agent-config +30 -0
- package/scripts/ai_council/one_off_archive/2026-05/README.md +45 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_2a4_acceptance.py +208 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +206 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_context_layer_v1_estimate.py +67 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_context_layer_v1_review.py +292 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_followups_review.py +259 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_nondestructive_inline_audit.py +209 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase4_dispatch_latency.py +108 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase6_trigger_jaccard.py +92 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase_2a_budget_rebalance.py +257 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_phase_2a_post_revert.py +197 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_rule_hardening_v1.py +251 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_open_questions.py +232 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_optimization.py +144 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_v3_gaps.py +252 -0
- package/scripts/ai_council/one_off_archive/2026-05/_one_off_structural_v3_review.py +240 -0
- package/scripts/build_rule_trigger_matrix.py +360 -0
- package/scripts/check_always_budget.py +402 -45
- package/scripts/check_cluster_patterns.py +159 -0
- package/scripts/check_command_count_messaging.py +14 -7
- package/scripts/check_context_paths.py +201 -0
- package/scripts/check_no_roadmap_refs.py +155 -0
- package/scripts/check_one_off_location.py +81 -0
- package/scripts/check_phase_coupling.py +148 -0
- package/scripts/check_portability.py +2 -0
- package/scripts/check_references.py +35 -2
- package/scripts/check_safety_floor_untouched.py +125 -0
- package/scripts/command_suggester/loader.py +4 -1
- package/scripts/compress.py +64 -15
- package/scripts/context_hygiene_hook.py +173 -0
- package/scripts/generate_index.py +6 -2
- package/scripts/generate_ownership_matrix.py +323 -0
- package/scripts/hooks/augment-context-hygiene.sh +55 -0
- package/scripts/hooks/augment-onboarding-gate.sh +55 -0
- package/scripts/hooks/augment-roadmap-progress.sh +57 -0
- package/scripts/install.py +105 -45
- package/scripts/lint_examples.py +98 -0
- package/scripts/lint_no_new_atomic_commands.py +12 -11
- package/scripts/lint_roadmap_complexity.py +127 -0
- package/scripts/onboarding_gate_hook.py +137 -0
- package/scripts/requirements-evals.txt +1 -0
- package/scripts/roadmap_progress_hook.py +159 -0
- package/scripts/schemas/command.schema.json +4 -3
- package/scripts/schemas/rule.schema.json +5 -0
- package/scripts/skill_linter.py +1 -0
- package/scripts/sync_agent_settings.py +25 -2
- package/scripts/update_counts.py +7 -0
- /package/scripts/ai_council/{_one_off_rebalancing_audit.py → one_off_archive/2026-05/_one_off_rebalancing_audit.py} +0 -0
- /package/scripts/ai_council/{_one_off_roundtrip.py → one_off_archive/2026-05/_one_off_roundtrip.py} +0 -0
|
@@ -3,20 +3,26 @@ type: "auto"
|
|
|
3
3
|
description: "User prompt without /command but matching an eligible slash command — surface matches as numbered options with as-is escape hatch; never auto-executes, user always picks"
|
|
4
4
|
alwaysApply: false
|
|
5
5
|
source: package
|
|
6
|
+
load_context:
|
|
7
|
+
- .agent-src.uncompressed/contexts/communication/rules-auto/command-suggestion-policy-mechanics.md
|
|
6
8
|
---
|
|
7
9
|
|
|
8
10
|
# Command Suggestion
|
|
9
11
|
|
|
10
12
|
When the user's prompt matches an eligible slash command, surface it
|
|
11
|
-
as a **numbered option** alongside an "as-is" escape hatch
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
as a **numbered option** alongside an "as-is" escape hatch — the
|
|
14
|
+
"run prompt as-is" option is **always last** and **always present**,
|
|
15
|
+
never omitted. The user always picks. **Nothing auto-executes.** The
|
|
16
|
+
suggestion layer is a read-only shortcut *finder*, not an invocation
|
|
17
|
+
path.
|
|
14
18
|
|
|
15
19
|
The deterministic engine lives in `scripts/command_suggester/`. The
|
|
16
20
|
locked eligibility table lives in
|
|
17
21
|
[`agents/contexts/command-suggestion-eligibility.md`](../../agents/contexts/command-suggestion-eligibility.md).
|
|
18
|
-
The
|
|
19
|
-
[`
|
|
22
|
+
The scoring contract and hardening list live in
|
|
23
|
+
[`docs/contracts/adr-command-suggestion.md`](../../docs/contracts/adr-command-suggestion.md)
|
|
24
|
+
and
|
|
25
|
+
[`docs/contracts/command-suggestion-flow.md`](../../docs/contracts/command-suggestion-flow.md).
|
|
20
26
|
|
|
21
27
|
## Iron Law — never auto-execute
|
|
22
28
|
|
|
@@ -46,33 +52,6 @@ On a user turn that matches **all** of the following:
|
|
|
46
52
|
When all six hold, the suggestion block is the **first and only**
|
|
47
53
|
thing the agent emits that turn. No tools, no edits, no other prose.
|
|
48
54
|
|
|
49
|
-
## What to emit
|
|
50
|
-
|
|
51
|
-
Render exactly one numbered-options block conforming to
|
|
52
|
-
`user-interaction`:
|
|
53
|
-
|
|
54
|
-
```
|
|
55
|
-
> 💡 Your request matches a command. Pick one or run the prompt as-is:
|
|
56
|
-
>
|
|
57
|
-
> 1. /implement-ticket — drive ticket end-to-end through refine → plan → implement → test
|
|
58
|
-
> 2. /refine-ticket — tighten the AC and risks on a ticket before planning
|
|
59
|
-
> 3. Just run the prompt as-is, no command
|
|
60
|
-
|
|
61
|
-
**Recommendation: 1 — /implement-ticket** — the request matches its trigger description (`setze ticket abc-123 um`). Pick the last option to skip the command and run the prompt as written.
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Rules — non-negotiable:
|
|
65
|
-
|
|
66
|
-
- The "run as-is" option is **always present**, **always last**, never removed.
|
|
67
|
-
- At most `commands.suggestion.max_options` command suggestions
|
|
68
|
-
precede the as-is option (default 4 → 5 total).
|
|
69
|
-
- Exactly **one** `Recommendation:` line follows the block, naming
|
|
70
|
-
the highest-scoring command — or no recommendation when the top
|
|
71
|
-
two scores are within 0.05 of each other (single-source-of-truth
|
|
72
|
-
Iron Law from `user-interaction`).
|
|
73
|
-
- Free-text replies count as the as-is option unless they
|
|
74
|
-
unambiguously name one of the listed commands.
|
|
75
|
-
|
|
76
55
|
## Subordination — when to stay silent
|
|
77
56
|
|
|
78
57
|
The suggestion rule is **junior** to:
|
|
@@ -90,33 +69,6 @@ The suggestion rule is **junior** to:
|
|
|
90
69
|
On any conflict → suggestion stays silent. Zero output. The user's
|
|
91
70
|
prompt is processed as it would be without this rule.
|
|
92
71
|
|
|
93
|
-
## Anti-noise — silent when uncertain
|
|
94
|
-
|
|
95
|
-
The engine's `rank.py` already drops:
|
|
96
|
-
|
|
97
|
-
- Matches below the `confidence_floor` (default 0.6, per-command
|
|
98
|
-
override in frontmatter).
|
|
99
|
-
- Single matches scoring `< floor + 0.1` with no structural bonus
|
|
100
|
-
(high uncertainty isn't worth interrupting for).
|
|
101
|
-
- Short prompts (< 6 words) hitting > 2 commands with no structural
|
|
102
|
-
bonus (ticket key, file path) — too vague to disambiguate.
|
|
103
|
-
- Pure-continuation messages (`ok`, `weiter`, `mach weiter`, `go on`,
|
|
104
|
-
…) — no new intent signal, no structural bonus → silent.
|
|
105
|
-
- Suggestions that fired for the same `(command, evidence)` pair
|
|
106
|
-
within the cooldown window (default 10m, per-command override).
|
|
107
|
-
|
|
108
|
-
If the engine returns an empty list → emit nothing. The user's
|
|
109
|
-
prompt runs exactly as it would without this rule.
|
|
110
|
-
|
|
111
|
-
## What this rule does NOT do
|
|
112
|
-
|
|
113
|
-
- Invoke any command. Picking option N is what triggers `slash-command-routing-policy`.
|
|
114
|
-
- Stack with other questions. One numbered-options block per turn.
|
|
115
|
-
- Re-trigger on its own output. Command names emitted in the
|
|
116
|
-
suggestion block are excluded from the next-turn matcher input.
|
|
117
|
-
- Override `enabled: false`, blocklist entries, or per-conversation opt-out.
|
|
118
|
-
- Suggest commands that are not in the locked eligibility table.
|
|
119
|
-
|
|
120
72
|
## Cloud Behavior
|
|
121
73
|
|
|
122
74
|
On cloud surfaces (Claude.ai Web, Skills API) the rule is **inert**
|
|
@@ -124,6 +76,13 @@ unless the suggester package is shipped in the bundle. Treat
|
|
|
124
76
|
`commands.suggestion.enabled` as `false` when the engine is not
|
|
125
77
|
available — degrade silently, never crash the turn.
|
|
126
78
|
|
|
79
|
+
## Mechanics — output format, anti-noise, what this rule does NOT do
|
|
80
|
+
|
|
81
|
+
The exact rendered options block, the `Recommendation:` rules, the
|
|
82
|
+
`max_options` cap, the `rank.py` anti-noise filters, and the
|
|
83
|
+
"what this rule does NOT do" catalog live in
|
|
84
|
+
[`contexts/communication/rules-auto/command-suggestion-policy-mechanics.md`](../contexts/communication/rules-auto/command-suggestion-policy-mechanics.md).
|
|
85
|
+
|
|
127
86
|
## Interactions
|
|
128
87
|
|
|
129
88
|
- [`slash-command-routing-policy`](slash-command-routing-policy.md) — explicit `/command` skips suggestion entirely.
|
|
@@ -7,13 +7,15 @@ source: package
|
|
|
7
7
|
|
|
8
8
|
# Commit Conventions
|
|
9
9
|
|
|
10
|
-
All commit messages and squash/merge titles follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
|
|
10
|
+
All commit messages and squash/merge titles must follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
|
|
11
11
|
|
|
12
12
|
## Format
|
|
13
13
|
|
|
14
14
|
- With scope: `<type>(<scope>): <description>`
|
|
15
|
-
- Without scope: `<type>: <description>`
|
|
16
|
-
- Always English
|
|
15
|
+
- Without scope: `<type>: <description>` (omit parentheses when no scope)
|
|
16
|
+
- **Always English** — regardless of user's language.
|
|
17
|
+
- **Imperative mood** ("add feature", not "added feature").
|
|
18
|
+
- **First line max 72 characters.**
|
|
17
19
|
|
|
18
20
|
## Types
|
|
19
21
|
|
|
@@ -21,24 +23,24 @@ All commit messages and squash/merge titles follow [Conventional Commits](https:
|
|
|
21
23
|
|---|---|
|
|
22
24
|
| `feat` | New user-facing functionality |
|
|
23
25
|
| `fix` | Bug fix |
|
|
24
|
-
| `refactor` |
|
|
26
|
+
| `refactor` | Code/structure change, no behavior change |
|
|
25
27
|
| `docs` | Documentation only |
|
|
26
28
|
| `test` | Tests only |
|
|
27
|
-
| `chore` | Maintenance
|
|
28
|
-
| `ci` | CI/CD
|
|
29
|
-
| `style` |
|
|
29
|
+
| `chore` | Maintenance (deps, configs, tooling, cleanup) |
|
|
30
|
+
| `ci` | CI/CD and workflow changes |
|
|
31
|
+
| `style` | Code style (formatting, no logic change) |
|
|
30
32
|
| `perf` | Performance improvement |
|
|
31
|
-
| `build` | Build tooling
|
|
33
|
+
| `build` | Build tooling / packaging changes |
|
|
32
34
|
|
|
33
35
|
## Scope
|
|
34
36
|
|
|
35
|
-
- Jira ticket ID when branch
|
|
36
|
-
- Otherwise short area name
|
|
37
|
-
-
|
|
37
|
+
- Use the **Jira ticket ID** as scope when the branch contains one (e.g. `DEV-1234`).
|
|
38
|
+
- Otherwise use a short module or area name (e.g. `api`, `auth`, `skills`).
|
|
39
|
+
- Scope is optional — only add when it improves clarity.
|
|
38
40
|
|
|
39
41
|
## Breaking changes
|
|
40
42
|
|
|
41
|
-
Mark with `!` or `BREAKING CHANGE:` footer:
|
|
43
|
+
Mark explicitly with `!` after type/scope or `BREAKING CHANGE:` in footer:
|
|
42
44
|
|
|
43
45
|
```
|
|
44
46
|
feat(api)!: rename invoice status values
|
|
@@ -47,7 +49,8 @@ refactor(auth)!: remove legacy session flow
|
|
|
47
49
|
|
|
48
50
|
## Commit splitting
|
|
49
51
|
|
|
50
|
-
|
|
52
|
+
If a change mixes unrelated concerns, split into multiple commits.
|
|
53
|
+
Do NOT hide bug fixes, CI work, docs, and refactors in one commit.
|
|
51
54
|
|
|
52
55
|
## Examples
|
|
53
56
|
|
|
@@ -61,4 +64,4 @@ ci(lint): add skill-lint workflow
|
|
|
61
64
|
docs(roadmap): add phase 3 implementation plan
|
|
62
65
|
```
|
|
63
66
|
|
|
64
|
-
→
|
|
67
|
+
→ Full type selection rules and anti-patterns: see guideline `docs/guidelines/php/git.md`.
|
|
@@ -7,6 +7,12 @@ source: package
|
|
|
7
7
|
|
|
8
8
|
# Context Hygiene
|
|
9
9
|
|
|
10
|
+
> **Enforced by:** [`scripts/context_hygiene_hook.py`](../../scripts/context_hygiene_hook.py)
|
|
11
|
+
> on Augment + Claude Code (`PostToolUse`). The hook maintains
|
|
12
|
+
> `agents/state/context-hygiene.json` (turn count, loop signal,
|
|
13
|
+
> freshness milestones at 20/40/60); the prose below is the spec the
|
|
14
|
+
> hook implements and the agent-side fallback.
|
|
15
|
+
|
|
10
16
|
## Conversation Freshness
|
|
11
17
|
|
|
12
18
|
Monitor for **context decay** — long conversations degrade quality and waste tokens.
|
|
@@ -18,18 +18,11 @@ NEVER PRAISE THE USER'S IDEA TO MAKE THEM HAPPY.
|
|
|
18
18
|
ANSWER THE SUBSTANCE. SHIP THE TRUTH.
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
- No positive adjectives about
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- "Good catch" / "you're right" only when literally true and
|
|
27
|
-
load-bearing for the answer.
|
|
28
|
-
- Acknowledge mistakes without performative apologies. One sentence,
|
|
29
|
-
switch behavior.
|
|
30
|
-
|
|
31
|
-
Failure mode: praise as a hedge before delivering bad news. Drop the
|
|
32
|
-
cushion, deliver the news.
|
|
21
|
+
- No positive adjectives about user, question, idea, or work product as opener.
|
|
22
|
+
- No subjective judgments on user's code/decisions ("nice approach", "boring") unless evaluation was asked.
|
|
23
|
+
- "Good catch" / "you're right" only when literally true and load-bearing.
|
|
24
|
+
- Acknowledge mistakes without performative apologies — one sentence, switch behavior.
|
|
25
|
+
- Failure mode — praise hedging bad news; drop the cushion, deliver the news.
|
|
33
26
|
|
|
34
27
|
## Iron Law 2 — No Invented Facts (severity-tiered)
|
|
35
28
|
|
|
@@ -39,18 +32,16 @@ THE MORE LOAD-BEARING THE CLAIM, THE HARDER YOU VERIFY.
|
|
|
39
32
|
WHEN VERIFICATION IS NOT WORTH THE COST → ASK.
|
|
40
33
|
```
|
|
41
34
|
|
|
42
|
-
| Severity |
|
|
43
|
-
|
|
44
|
-
| **High — load-bearing**
|
|
45
|
-
| **Medium — project-shape**
|
|
46
|
-
| **Low — well-known idioms**
|
|
35
|
+
| Severity | Required action |
|
|
36
|
+
|---|---|
|
|
37
|
+
| **High — load-bearing** (file paths, signatures, version numbers, security claims, "this test passes") | MUST verify with `view`, `grep`, `codebase-retrieval`, or fresh command output. Too expensive → ask. |
|
|
38
|
+
| **Medium — project-shape** ("uses X for Y", conventions, file location) | Verify if one tool call reaches it; otherwise hedge: *"I'd guess X — not checked"*. |
|
|
39
|
+
| **Low — well-known idioms** (generic language/framework idioms, public APIs) | Inference acceptable. Mark as inference if not 100% sure. |
|
|
47
40
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"guess, not checked". Never bare "probably" / "vermutlich" without
|
|
53
|
-
naming what's unverified.
|
|
41
|
+
Examples + hedge-language patterns:
|
|
42
|
+
[`asking-and-brevity-examples`](../../docs/guidelines/agent-infra/asking-and-brevity-examples.md#direct-answers--severity-tiered-claim-examples).
|
|
43
|
+
Override: "just guess", "rough estimate is fine", "skip the verify"
|
|
44
|
+
→ drop to Low for that turn.
|
|
54
45
|
|
|
55
46
|
## Iron Law 3 — Brevity by Default
|
|
56
47
|
|
|
@@ -60,48 +51,33 @@ LONG ANSWERS ARE A FAILURE MODE, NOT A SIGN OF EFFORT.
|
|
|
60
51
|
```
|
|
61
52
|
|
|
62
53
|
- Skip restating the user's question.
|
|
63
|
-
- Skip announcing intent ("Let me…", "I will now…")
|
|
64
|
-
- Skip explaining
|
|
65
|
-
- Skip post-hoc summary unless
|
|
66
|
-
- Multi-step
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
`token-efficiency` covers the loop side (no repeated tool calls);
|
|
70
|
-
this rule covers the per-reply-length side. **Never overrides**
|
|
71
|
-
`user-interaction` (numbered options stay) or command-mandated
|
|
72
|
-
steps — brevity ≠ skipping required questions.
|
|
73
|
-
|
|
74
|
-
## Emoji Scope — Whitelist + Blacklist
|
|
75
|
-
|
|
76
|
-
Emojis are **functional markers**, never decoration.
|
|
77
|
-
|
|
78
|
-
**Whitelist — allowed and expected:**
|
|
79
|
-
|
|
80
|
-
- Mandated markers from rules/scripts: `📒` (chat-history heartbeat,
|
|
81
|
-
verbatim per `chat-history-visibility`), mode markers from
|
|
82
|
-
`role-mode-adherence`.
|
|
83
|
-
- CLI status icons: `❌`, `✅`, `⚠️` — two-space rule from
|
|
84
|
-
`language-and-tone` § other-language-rules still applies.
|
|
85
|
-
- Roadmap status checkboxes: `[x]`, `[~]`, `[-]`.
|
|
54
|
+
- Skip announcing intent ("Let me…", "I will now…") — just do.
|
|
55
|
+
- Skip explaining tool use — the call result speaks.
|
|
56
|
+
- Skip post-hoc summary unless rechecking a decision.
|
|
57
|
+
- Multi-step → bullets, not paragraphs.
|
|
58
|
+
- One-true-answer question → one sentence + the answer.
|
|
86
59
|
|
|
87
|
-
|
|
60
|
+
`token-efficiency` covers the loop side; this rule covers per-reply
|
|
61
|
+
length. **Never overrides** `user-interaction` (numbered options stay)
|
|
62
|
+
or command-mandated steps.
|
|
88
63
|
|
|
89
|
-
|
|
90
|
-
- Empathy signaling: ❤️, 🤗, 😊.
|
|
91
|
-
- Section dividers / headline ornaments.
|
|
92
|
-
- Reaction reactions to the user's message.
|
|
64
|
+
## Emoji Scope — functional markers only
|
|
93
65
|
|
|
94
|
-
|
|
66
|
+
**Whitelist:** `📒` (chat-history heartbeat, verbatim per
|
|
67
|
+
`chat-history-visibility`); mode markers from `role-mode-adherence`;
|
|
68
|
+
CLI status `❌` / `✅` / `⚠️` (two-space rule from `language-and-tone`);
|
|
69
|
+
roadmap checkboxes `[x]` / `[~]` / `[-]`.
|
|
95
70
|
|
|
96
|
-
|
|
71
|
+
**Blacklist (never in prose):** opening flair (✨, 🚀, 🎉, 💡, 🔥, 👍);
|
|
72
|
+
empathy (❤️, 🤗, 😊); section dividers, headline ornaments, reaction
|
|
73
|
+
emojis. Unsure → assume blacklist.
|
|
97
74
|
|
|
98
|
-
|
|
99
|
-
- Stating a function name without `grep`/`view` — Iron Law 2.
|
|
100
|
-
- Three paragraphs for a one-line answer — Iron Law 3.
|
|
101
|
-
- ✨/🎉/💡 to mark "this is interesting" — emoji blacklist.
|
|
75
|
+
## Failure modes
|
|
102
76
|
|
|
103
|
-
|
|
104
|
-
|
|
77
|
+
Trigger phrases + in-language correction pattern:
|
|
78
|
+
[`asking-and-brevity-examples`](../../docs/guidelines/agent-infra/asking-and-brevity-examples.md#direct-answers--failure-modes-the-user-will-call-out).
|
|
79
|
+
On call-out: acknowledge once in the user's language, switch, no
|
|
80
|
+
excuses (mirrors `language-and-tone` § slip handling).
|
|
105
81
|
|
|
106
82
|
## Interactions
|
|
107
83
|
|
|
@@ -44,10 +44,10 @@ docker compose exec -T <php-service> vendor/bin/phpunit
|
|
|
44
44
|
|
|
45
45
|
## Build / Task Runner
|
|
46
46
|
|
|
47
|
-
Before using raw `docker compose exec
|
|
48
|
-
ships a `Makefile`
|
|
49
|
-
`make test`, `make phpstan`). Read the Makefile first
|
|
50
|
-
|
|
51
|
-
raw `docker compose exec`.
|
|
47
|
+
Before using raw `docker compose exec` commands, check if the consumer
|
|
48
|
+
project ships a `Makefile` for common targets (e.g. `make console`,
|
|
49
|
+
`make test`, `make phpstan`). Read the Makefile first to discover
|
|
50
|
+
available shortcuts. If the project uses a different task runner,
|
|
51
|
+
inspect its config file before defaulting to raw `docker compose exec`.
|
|
52
52
|
|
|
53
53
|
Frontend commands (npm, webpack) run on the host or in the node container.
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
type: "auto"
|
|
3
3
|
description: "Keeping .augment/ contexts, counts, and cross-references in sync when creating, renaming, or deleting skills, commands, rules, guidelines, templates, or any agent infrastructure files"
|
|
4
4
|
source: package
|
|
5
|
+
load_context:
|
|
6
|
+
- .agent-src.uncompressed/contexts/communication/rules-auto/docs-sync-mechanics.md
|
|
5
7
|
---
|
|
6
8
|
|
|
7
9
|
# Docs Sync
|
|
@@ -18,33 +20,16 @@ A new rule/skill/command without its index entry, count update, and context upda
|
|
|
18
20
|
1. Create/delete the file
|
|
19
21
|
2. **Immediately** update `contexts/augment-infrastructure.md` (counts + category tables)
|
|
20
22
|
3. Check cross-references in contexts and routing hints (inline "see X skill" references)
|
|
23
|
+
4. If a **skill** was added/renamed/deleted: update distribution manifests
|
|
24
|
+
5. If a **hook** was added/renamed/deleted: update hook registries
|
|
25
|
+
6. If **content** changed: run the consistency grep across other artefacts
|
|
21
26
|
|
|
22
|
-
Steps 2–
|
|
27
|
+
Steps 2–6 are NOT optional. Do NOT present the result to the user until all steps are done.
|
|
23
28
|
|
|
24
29
|
**Two modes:**
|
|
25
|
-
- **Reactive** (automatic): Triggered by add/remove/rename or scope/description/count changes → sync counts, contexts, cross-references.
|
|
30
|
+
- **Reactive** (automatic): Triggered by add/remove/rename or scope/description/count changes → sync counts, contexts, cross-references, manifests, registries.
|
|
26
31
|
- **Proactive** (on demand): Full audit → find duplicates, thin skills, redundancy, stale content → fix or merge. Ask before destructive actions.
|
|
27
32
|
|
|
28
|
-
## What to update
|
|
29
|
-
|
|
30
|
-
When a file is **added, removed, or renamed**:
|
|
31
|
-
|
|
32
|
-
| Change | Files to update |
|
|
33
|
-
|---|---|
|
|
34
|
-
| Skill/command/rule count changes | `contexts/augment-infrastructure.md` (count + category table) |
|
|
35
|
-
| New skill category | `contexts/augment-infrastructure.md` + `contexts/skills-and-commands.md` |
|
|
36
|
-
| New workflow chain | `contexts/skills-and-commands.md` (workflow chains section) |
|
|
37
|
-
|
|
38
|
-
## Cross-reference updates
|
|
39
|
-
|
|
40
|
-
When a skill is **added or its scope changes**, check and update:
|
|
41
|
-
|
|
42
|
-
| What | Where to check |
|
|
43
|
-
|---|---|
|
|
44
|
-
| Inline routing hints | "see X skill" or "use X instead" references in other skills |
|
|
45
|
-
| Guideline cross-references | Guidelines that reference the changed skill |
|
|
46
|
-
| Command skill references | Commands that use the changed skill |
|
|
47
|
-
|
|
48
33
|
## Settings template sync
|
|
49
34
|
|
|
50
35
|
When a skill, rule, or command **reads a new setting** from `.agent-settings.yml` that does not yet
|
|
@@ -61,54 +46,15 @@ exist in `.augment/templates/agent-settings.md`:
|
|
|
61
46
|
**This step is mandatory.** If the template gains a new key but the local `.agent-settings.yml`
|
|
62
47
|
is not updated, the user cannot discover the new setting exists.
|
|
63
48
|
|
|
64
|
-
##
|
|
65
|
-
|
|
66
|
-
`.augment/`-internal sync (counts, contexts, cross-refs) is one half. The
|
|
67
|
-
other half is **distribution manifests** that ship the package to consumers
|
|
68
|
-
and **hook registries** that wire engine code into platform lifecycles.
|
|
69
|
-
These are not auto-derived — they drift silently until CI catches them, and
|
|
70
|
-
on cooperative platforms (no pre-commit) they can sit broken in a branch
|
|
71
|
-
for hours.
|
|
72
|
-
|
|
73
|
-
When a **skill** is added, renamed, or deleted under
|
|
74
|
-
`.agent-src.uncompressed/skills/`:
|
|
75
|
-
|
|
76
|
-
| Manifest | Required update |
|
|
77
|
-
|---|---|
|
|
78
|
-
| `.claude-plugin/marketplace.json` | Add/remove the `./.claude/skills/<name>` entry in `plugins[0].skills[]`, alphabetical position. Caught by `scripts/lint_marketplace.py` in CI. |
|
|
79
|
-
| `.augment-plugin/marketplace.json` | Skill-name-agnostic — no update needed. Touch only when plugin metadata (description, tags) changes. |
|
|
80
|
-
| `.github/plugin/marketplace.json` | Same as above — metadata-only manifest. |
|
|
81
|
-
|
|
82
|
-
When a **hook** is added, renamed, or deleted under
|
|
83
|
-
`.agent-src.uncompressed/templates/scripts/work_engine/hooks/builtin/`:
|
|
84
|
-
|
|
85
|
-
| Registry | Required update |
|
|
86
|
-
|---|---|
|
|
87
|
-
| `templates/scripts/work_engine/hooks/builtin/__init__.py` | New hook class → add the import + `__all__` entry. Single source of truth for engine-side registration. |
|
|
88
|
-
| `templates/consumer-settings/claude-settings.json` | Only when a **new platform event** is wired (e.g. first time a hook listens on `SessionEnd`). Existing hooks reuse the `./agent-config chat-history:hook --platform claude` dispatcher — no per-hook entry needed. |
|
|
89
|
-
| `templates/consumer-settings/augment-cli-hooks.json` | Same logic — new platform event → new `command` block; new hook on existing event → no update. |
|
|
90
|
-
|
|
91
|
-
Failure mode that motivated this section: a skill on disk without its
|
|
92
|
-
`marketplace.json` entry passes local edits, builds, and tests — only
|
|
93
|
-
CI catches it via `lint_marketplace`. The cooperative path is
|
|
94
|
-
"agent updates the manifest in the same response as the skill"; the
|
|
95
|
-
structural backstop is a pre-commit hook installed by
|
|
96
|
-
`scripts/install-hooks.sh` that runs `lint_marketplace` on every
|
|
97
|
-
commit. Run the installer once per clone; bypass for an unrelated WIP
|
|
98
|
-
commit is `git commit --no-verify`.
|
|
99
|
-
|
|
100
|
-
## Content consistency
|
|
101
|
-
|
|
102
|
-
**CRITICAL — MANDATORY CHECK:** When a rule, skill, or guideline's **content** is changed
|
|
103
|
-
(not just metadata), you MUST search for **all other rules, skills, and guidelines that cover
|
|
104
|
-
the same topic** and verify they are consistent.
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
grep -rl "TOPIC" .augment/rules/ .augment/skills/ .augment/guidelines/ --include="*.md"
|
|
108
|
-
```
|
|
49
|
+
## Lookup tables and details — see mechanics
|
|
109
50
|
|
|
110
|
-
|
|
111
|
-
|
|
51
|
+
The exact "what to update" tables, cross-reference targets,
|
|
52
|
+
distribution-manifest update tables (`marketplace.json` etc.), hook
|
|
53
|
+
registry update tables (`__init__.py`, consumer-settings JSON), the
|
|
54
|
+
failure mode that motivated the manifest section, and the content
|
|
55
|
+
consistency `grep` snippet all live in
|
|
56
|
+
[`contexts/communication/rules-auto/docs-sync-mechanics.md`](../contexts/communication/rules-auto/docs-sync-mechanics.md).
|
|
57
|
+
Pull it whenever a sync trigger fires.
|
|
112
58
|
|
|
113
59
|
## Do NOT
|
|
114
60
|
|
|
@@ -17,96 +17,72 @@ NO MOMENTUM EXCEPTION. NO TECHNICAL-CONTEXT EXCEPTION.
|
|
|
17
17
|
NO "SWITCH MID-PARAGRAPH". NO "LAST 20 TURNS WERE ENGLISH".
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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.
|
|
28
|
-
|
|
29
|
-
### Source of language truth — chat messages ONLY
|
|
30
|
-
|
|
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.
|
|
20
|
+
Trigger is the user's last **chat message** — not turn count, open
|
|
21
|
+
file, roadmap, ticket, codebase, `view` / `grep` output, prior reply,
|
|
22
|
+
or files just edited. Short German (`3`, `weiter`, `mach das`) after
|
|
23
|
+
many English turns flips the reply to German.
|
|
35
24
|
|
|
36
25
|
### Pre-send gate — MANDATORY before every reply
|
|
37
26
|
|
|
38
|
-
Run silently
|
|
27
|
+
Run silently before any output:
|
|
39
28
|
|
|
40
|
-
1. **Detect** — language of user's last
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
3. **Rewrite** — if no, rewrite whole prose
|
|
45
|
-
|
|
46
|
-
4. **Confirm** — first sentence
|
|
29
|
+
1. **Detect** — language of the user's last chat message. Mixed →
|
|
30
|
+
**dominant** language; tie → German (project default).
|
|
31
|
+
2. **Check** — is drafted prose (not code, not file contents) in
|
|
32
|
+
that language?
|
|
33
|
+
3. **Rewrite** — if no, rewrite whole prose. No "just this sentence",
|
|
34
|
+
no "technical term is English anyway".
|
|
35
|
+
4. **Confirm** — first sentence in target language. No English opener
|
|
47
36
|
before switching mid-paragraph.
|
|
48
37
|
|
|
49
|
-
###
|
|
50
|
-
|
|
51
|
-
- User writes German → **MUST** respond in German (informal "Du", never "Sie").
|
|
52
|
-
"Du" capitalized at sentence start, lowercase otherwise.
|
|
53
|
-
- User writes English → respond in English.
|
|
54
|
-
- User switches mid-conversation → switch on the **very next** reply. No
|
|
55
|
-
grace period, no "let me finish this thought in the old language".
|
|
56
|
-
- Code blocks, command output, file contents, quoted tool output stay in
|
|
57
|
-
their native language. Only the **prose around them** mirrors the user.
|
|
58
|
-
- "I've been answering in English for a while" is NOT a reason to keep going.
|
|
59
|
-
Trigger is the **latest user message**, not conversation momentum.
|
|
60
|
-
- Numbered option lists (per `user-interaction`) mirror the user's language —
|
|
61
|
-
`.md` source is English, rendered reply is translated at runtime.
|
|
38
|
+
### Spelled out
|
|
62
39
|
|
|
63
|
-
|
|
40
|
+
- German → respond in German, informal "Du" (never "Sie"). "Du"
|
|
41
|
+
capitalized at sentence start, lowercase otherwise.
|
|
42
|
+
- Code blocks, command output, file contents, and quoted tool output
|
|
43
|
+
stay in their native language; only the **prose around them**
|
|
44
|
+
mirrors the user.
|
|
45
|
+
- Numbered options (per `user-interaction`) — `.md` source English,
|
|
46
|
+
rendered reply translated at runtime.
|
|
64
47
|
|
|
65
|
-
|
|
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.
|
|
48
|
+
### Slip handling
|
|
69
49
|
|
|
70
|
-
|
|
50
|
+
Acknowledge **once**, briefly, in the correct language
|
|
51
|
+
("Entschuldigung" / "Sorry"). Switch on the same reply. Do **not**
|
|
52
|
+
re-explain in the wrong language; do **not** promise "from now on" —
|
|
53
|
+
just do it.
|
|
71
54
|
|
|
72
|
-
|
|
73
|
-
|
|
55
|
+
Full failure-mode list and wrong-vs-correct examples in
|
|
56
|
+
[`../../docs/guidelines/agent-infra/language-and-tone-examples.md`](../../docs/guidelines/agent-infra/language-and-tone-examples.md).
|
|
74
57
|
|
|
75
58
|
## Other language rules
|
|
76
59
|
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
|
|
80
|
-
-
|
|
81
|
-
|
|
82
|
-
-
|
|
60
|
+
- Code comments in English.
|
|
61
|
+
- `.md` documentation files in English (see section below).
|
|
62
|
+
Translate existing German `.md` files when you touch them.
|
|
63
|
+
- Two spaces after icons `❌`, `✅`, `⚠️` in CLI output; one space
|
|
64
|
+
for other icons.
|
|
65
|
+
- One blank line max; no double or triple blank lines.
|
|
66
|
+
- Every file ends with exactly one newline.
|
|
83
67
|
|
|
84
68
|
## `.md` files are ALWAYS English — no exceptions
|
|
85
69
|
|
|
86
|
-
**Every** piece of text inside `.md` files in `.augment
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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).
|
|
70
|
+
**Every** piece of text inside `.md` files in `.augment/`,
|
|
71
|
+
`.agent-src/`, `.agent-src.uncompressed/`, and `agents/` must be in
|
|
72
|
+
English: headings, paragraphs, bullets, option labels, example
|
|
73
|
+
prompts, template placeholders, ASCII-art labels, table headers and
|
|
74
|
+
content. The agent translates to the user's language **at runtime**.
|
|
95
75
|
|
|
96
|
-
###
|
|
76
|
+
### Labeled-anchor exception
|
|
97
77
|
|
|
98
|
-
|
|
99
|
-
|
|
78
|
+
Quoting German examples inside English prose is **not allowed**.
|
|
79
|
+
Two correct ways:
|
|
100
80
|
|
|
101
|
-
1. **Translate to English
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
abstractly later and link back to the anchor block.
|
|
107
|
-
|
|
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).
|
|
81
|
+
1. **Translate to English** — trigger recognition is semantic.
|
|
82
|
+
2. **Use a labeled `DE: … · EN: …` anchor list** when the
|
|
83
|
+
multilingual nature of recognition is the point. This is the
|
|
84
|
+
**only** allowed location for German prose in an English `.md`;
|
|
85
|
+
reference phrases abstractly elsewhere and link to the anchor.
|
|
110
86
|
|
|
111
87
|
### Detection heuristic
|
|
112
88
|
|
|
@@ -121,4 +97,4 @@ Before saving an `.md` file under `.augment/`, `.agent-src/`,
|
|
|
121
97
|
- Non-English quoted phrases in body text (paragraphs, list items,
|
|
122
98
|
table cells) when the surrounding prose is English.
|
|
123
99
|
|
|
124
|
-
Hit → translate
|
|
100
|
+
Hit → translate it or move it into a `DE: … · EN: …` block.
|