@event4u/agent-config 1.24.0 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/.agent-src/commands/review-routing.md +7 -10
  2. package/.agent-src/contexts/authority/kernel-rule-edits.md +48 -0
  3. package/.agent-src/contexts/authority/scope-mechanics.md +15 -0
  4. package/.agent-src/contexts/contracts/consumer-agents-md-guide.md +127 -0
  5. package/.agent-src/contexts/contracts/emergency-triage-block.md +53 -0
  6. package/.agent-src/rules/analysis-skill-routing.md +1 -1
  7. package/.agent-src/rules/artifact-drafting-protocol.md +1 -1
  8. package/.agent-src/rules/artifact-engagement-recording.md +1 -1
  9. package/.agent-src/rules/augment-source-of-truth.md +1 -1
  10. package/.agent-src/rules/autonomous-execution.md +1 -1
  11. package/.agent-src/rules/caveman-speak.md +1 -1
  12. package/.agent-src/rules/cli-output-handling.md +1 -1
  13. package/.agent-src/rules/command-suggestion-policy.md +1 -1
  14. package/.agent-src/rules/docs-sync.md +1 -1
  15. package/.agent-src/rules/guidelines.md +1 -1
  16. package/.agent-src/rules/improve-before-implement.md +1 -1
  17. package/.agent-src/rules/invite-challenge.md +1 -1
  18. package/.agent-src/rules/minimal-safe-diff.md +1 -1
  19. package/.agent-src/rules/model-recommendation.md +1 -1
  20. package/.agent-src/rules/no-attribution-footers.md +1 -1
  21. package/.agent-src/rules/no-roadmap-references.md +56 -20
  22. package/.agent-src/rules/onboarding-gate.md +1 -1
  23. package/.agent-src/rules/package-ci-checks.md +1 -1
  24. package/.agent-src/rules/reviewer-awareness.md +9 -2
  25. package/.agent-src/rules/roadmap-progress-sync.md +1 -1
  26. package/.agent-src/rules/scope-control.md +6 -0
  27. package/.agent-src/rules/security-sensitive-stop.md +1 -1
  28. package/.agent-src/rules/size-enforcement.md +1 -1
  29. package/.agent-src/rules/token-optimizer-maintenance.md +1 -1
  30. package/.agent-src/rules/ui-audit-gate.md +1 -1
  31. package/.agent-src/skills/adr-create/SKILL.md +2 -1
  32. package/.agent-src/skills/agents-md-thin-root/SKILL.md +125 -0
  33. package/.agent-src/skills/ai-council/SKILL.md +9 -7
  34. package/.agent-src/skills/review-routing/SKILL.md +3 -4
  35. package/.agent-src/templates/AGENTS.md +18 -148
  36. package/.agent-src/templates/copilot-instructions.md +41 -17
  37. package/.agent-src/templates/github-workflows/pr-risk-review.yml +1 -1
  38. package/.agent-src/templates/scripts/pr_review_routing.py +1 -1
  39. package/.claude-plugin/marketplace.json +2 -1
  40. package/AGENTS.md +18 -216
  41. package/CHANGELOG.md +58 -0
  42. package/README.md +2 -2
  43. package/docs/architecture.md +13 -7
  44. package/docs/catalog.md +26 -27
  45. package/docs/contracts/agents-md-tech-stack.md +74 -0
  46. package/docs/contracts/linear-ai-rules-inclusion.md +1 -1
  47. package/docs/contracts/linter-structural-model.md +180 -0
  48. package/docs/contracts/package-self-orientation.md +135 -0
  49. package/docs/contracts/rule-classification.md +4 -4
  50. package/docs/decisions/ADR-004-rule-governance-pruning.md +240 -0
  51. package/docs/getting-started.md +1 -1
  52. package/docs/guidelines/agent-infra/review-routing-data-format.md +1 -2
  53. package/docs/guidelines/agent-infra/size-and-scope.md +18 -12
  54. package/package.json +1 -1
  55. package/scripts/_p4_migrate.py +5 -5
  56. package/scripts/audit_auto_rules.py +159 -0
  57. package/scripts/audit_likelihood.py +148 -0
  58. package/scripts/audit_overlap.py +145 -0
  59. package/scripts/build_rule_trigger_matrix.py +3 -5
  60. package/scripts/check_augment_description_cap.py +79 -0
  61. package/scripts/check_council_references.py +3 -3
  62. package/scripts/check_kernel_rule_bundle.py +151 -0
  63. package/scripts/check_references.py +21 -1
  64. package/scripts/compile_router.py +3 -0
  65. package/scripts/install.sh +0 -1
  66. package/scripts/lint_agents_md.py +168 -0
  67. package/scripts/measure_augment_budget.py +208 -0
  68. package/scripts/measure_density.py +232 -0
  69. package/scripts/schemas/rule.schema.json +2 -1
  70. package/scripts/skill_linter.py +166 -31
  71. package/scripts/spotcheck_thin_root.py +134 -0
  72. package/scripts/update_counts.py +6 -10
  73. package/.agent-src/rules/no-council-references.md +0 -76
  74. package/.agent-src/rules/review-routing-awareness.md +0 -19
  75. package/.agent-src/templates/copilot-review-instructions.md +0 -76
package/AGENTS.md CHANGED
@@ -1,232 +1,34 @@
1
1
  # event4u/agent-config
2
2
 
3
- > **agent-config is not a runtime, but it ships a deterministic orchestration contract / state machine for host agents.**
4
-
5
- **Shared agent configuration** — skills, rules, commands, guidelines, and templates
6
- for AI coding tools (Augment Code, Claude Code, Cursor, Cline, Windsurf, Gemini CLI,
7
- GitHub Copilot).
8
-
9
- This file is the AGENTS.md **of the package itself**. It gives an agent that is
10
- working **on this repository** (adding skills, fixing the installer, improving
11
- the linter) the context it needs. Consumer projects get their own AGENTS.md
12
- generated from [`.augment/templates/AGENTS.md`](.agent-src/templates/AGENTS.md)
13
- when they install the package.
14
-
15
- ## What this repo is
16
-
17
- `event4u/agent-config` is a **governed skill suite** for two cognition
18
- clusters: engineering depth (Wing 1) and senior cross-department
19
- cognition (Wings 2–4: Product + Foundation, GTM + Growth, Money +
20
- Strategy + Ops). The differentiator is **depth over breadth, decisions
21
- over boilerplate, under a shared Iron-Law floor** (`commit-policy`,
22
- `non-destructive-by-default`, `language-and-tone`, `skill-quality`,
23
- `direct-answers`). The same agent that ships a refactor commit also
24
- runs DCF sensitivity, OKR-tree decomposition, and launch-funnel
25
- diagnosis — under the same governance.
26
-
27
- Mechanically the package is:
28
-
29
- - A distribution package, not an application of any framework.
30
- - `type: library` in `composer.json`; no `app/` directory, no application
31
- runtime (no Laravel, Symfony, Next.js, or other framework app code).
32
- - Published to Composer and npm as `event4u/agent-config` / `@event4u/agent-config`.
33
- - Installed into consumer projects via `scripts/install.sh` (Bash) and
34
- `scripts/install.py` (Python bridge).
35
-
36
- ## The four wings
37
-
38
- The skill suite is organized as four wings under one Iron-Law floor.
39
- Each wing has its own roadmap, its own personas, and its own plate;
40
- they compose via the cross-wing handoff contract
41
- ([`docs/contracts/cross-wing-handoff.md`](docs/contracts/cross-wing-handoff.md) (beta),
42
- landing in `road-to-suite-closure.md` Phase 3).
43
-
44
- | Wing | Cognition cluster |
45
- |---|---|
46
- | **1 — Engineering** | Code craft, debugging, refactoring, release discipline; depth-first |
47
- | **2 — Product + Foundation** | Roles cluster (PM, designer, QA, EM); product discovery, prioritization, delivery shape |
48
- | **3 — GTM + Growth** | CMO + marketing + sales + lifecycle; channel-agnostic positioning + funnel cognition |
49
- | **4 — Money + Strategy + Ops** | CFO + COO + board-level strategy, valuation, org-design; stage-agnostic financial + operational cognition |
50
-
51
- Per-wing plates (roadmaps, persona maps, decision logs) live under
52
- `agents/roadmaps/` and `agents/contexts/`. Roadmaps are transient
53
- working layers — agents that need a wing's plate look it up by wing
54
- number rather than by file path (per `no-roadmap-references`).
3
+ > Shared skill / rule / command suite for AI coding tools. No application runtime. AGENTS.md of the **package itself**.
55
4
 
56
5
  ## Source of truth
57
6
 
58
- | Directory | Purpose | Editable? |
59
- |---|---|---|
60
- | `.agent-src.uncompressed/` | Authoring layer — full verbose content | ✅ Yes — edit here |
61
- | `.agent-src/` | Compressed output — shipped in the package, consumed by agents | ❌ No — regenerated |
62
- | `.augment/` | Local projection of `.agent-src/` for Augment Code (gitignored) | ❌ No — regenerated |
63
- | `.claude/`, `.cursor/`, `.clinerules/`, `.windsurfrules` | Tool-specific projections | ❌ No — regenerated |
64
- | `agents/` | Package's own roadmaps, contexts, sessions | ✅ Yes |
65
-
66
- **Never edit `.agent-src/` or `.augment/` directly.** Edit `.agent-src.uncompressed/`
67
- and run `task sync` (or `task ci`) to compress + regenerate the tool directories.
68
-
69
- ## Tech stack of this package
70
-
71
- - **Bash** — install scripts, compression driver
72
- - **Python 3.10+** — linters (`scripts/skill_linter.py`, `scripts/check_portability.py`,
73
- `scripts/check_references.py`, `scripts/readme_linter.py`), compression tooling,
74
- test suite (pytest)
75
- - **Markdown** — all content (skills, rules, commands, guidelines, templates)
76
- - **Taskfile** — developer entrypoints (`task ci`, `task sync`, `task test`)
77
- - **GitHub Actions** — CI workflow under `.github/workflows/`
78
-
79
- No application code or framework runtime (no Laravel / Symfony / Next.js /
80
- Express). The `composer.json` / `package.json` are thin distribution
81
- manifests.
82
-
83
- **Recommended ingestion path for non-text formats.** PDF, DOCX, XLSX,
84
- PPTX, EPUB, image, and audio inputs route through the
85
- [`markitdown`](.agent-src/skills/markitdown/SKILL.md) skill — a thin
86
- markdown-only wrapper over Microsoft's MIT-licensed `markitdown-mcp`
87
- server (peer-side install, zero Python in this package). The skill
88
- ships the four-layer security defense (skill checklist · narrow API ·
89
- Docker read-only · localhost binding) and a calibrated token claim
90
- (3-5× comprehension on text-heavy, 10-50× on image-heavy). Measure
91
- locally with `python3 scripts/measure_markitdown_lift.py` against
92
- `tests/fixtures/markitdown-corpus/`.
93
-
94
- **Cognition-only floor for Wings 2–4.** Wings 2, 3, and 4 enforce a
95
- no-SaaS-auth, no-vendor-SDK, no-stage-prescription floor: cognition
96
- artifacts (markdown tables, scoring rubrics, walkthroughs) must work
97
- in any host without external dependencies. The structural-malice
98
- check in `skill_linter.py` enforces this boundary mechanically (no
99
- credential exfiltration, no remote execution, no shell injection in
100
- subprocess calls — see `.agent-src.uncompressed/rules/skill-quality.md`
101
- § Structural Malice Floor).
7
+ Edit `.agent-src.uncompressed/` only. Generated trees (`.agent-src/`, `.augment/`, `.claude/`, `.cursor/`, `.clinerules/`, `.windsurfrules`) regenerate from `task sync` + `task generate-tools`; never hand-edit.
102
8
 
103
9
  ## Working on this repo
104
10
 
105
11
  ```bash
106
- task sync # .agent-src.uncompressed/ .agent-src/, then project → .augment/
107
- task generate-tools # Regenerate .claude/, .cursor/, .clinerules/, .windsurfrules
108
- task test # pytest tests/ + tests/test_install.sh
109
- task lint-skills # python3 scripts/skill_linter.py --all
110
- task build-cloud-bundles-all # ZIP every eligible skill → dist/cloud/ (Claude.ai Web / Skills API)
111
- task ci # Full pipeline — must be green before PR
12
+ task sync # regenerate .agent-src/, .augment/
13
+ task generate-tools # regenerate .claude/, .cursor/, .clinerules/, .windsurfrules
14
+ task ci # full pipeline green before PR
112
15
  ```
113
16
 
114
- All checks must pass before a PR: sync-check, consistency, check-compression,
115
- check-refs, check-portability, lint-skills, test, lint-readme.
116
-
117
- ## Maintainer telemetry (opt-in)
118
-
119
- The artefact-engagement telemetry pipeline (`./agent-config telemetry:record`
120
- and `./agent-config telemetry:report`) is **default-off**. Maintainers who
121
- want to measure which skills/rules/commands the agent actually applies set
122
- `telemetry.artifact_engagement.enabled: true` in `.agent-settings.yml`. The
123
- log is local-only JSONL (no upload, no cross-project share) and is bound
124
- by the redaction floor described in
125
- [`contexts/contracts/artifact-engagement-flow.md`](.agent-src.uncompressed/contexts/contracts/artifact-engagement-flow.md) (beta).
126
- The recording rule lives at
127
- [`.agent-src/rules/artifact-engagement-recording.md`](.agent-src/rules/artifact-engagement-recording.md).
128
-
129
- ## Context-aware command suggestion
130
-
131
- When a user's free-form prompt matches a command's purpose, the agent
132
- surfaces matches as a numbered-options block with an always-present
133
- "run the prompt as-is" escape. **Nothing auto-executes** — the user
134
- picks every time. Engine: `scripts/command_suggester/`. Rule:
135
- [`.agent-src/rules/command-suggestion-policy.md`](.agent-src/rules/command-suggestion-policy.md).
136
- Locked eligibility table, scoring contract, and hardening list:
137
- [`docs/contracts/adr-command-suggestion.md`](docs/contracts/adr-command-suggestion.md)
138
- and
139
- [`contexts/contracts/command-suggestion-flow.md`](.agent-src.uncompressed/contexts/contracts/command-suggestion-flow.md) (beta).
140
-
141
- ## Key rules for agents editing this repo
142
-
143
- | Rule | File |
144
- |---|---|
145
- | `.agent-src/` must stay project-agnostic — no project names, domains, stacks | [`augment-portability`](.agent-src/rules/augment-portability.md) |
146
- | Root AGENTS.md + copilot-instructions.md must stay project-agnostic too | [`augment-portability`](.agent-src/rules/augment-portability.md) |
147
- | Edit `.agent-src.uncompressed/`, never `.agent-src/` or `.augment/` | [`augment-source-of-truth`](.agent-src/rules/augment-source-of-truth.md) |
148
- | Skills must declare frontmatter, be self-contained, pass the linter | [`skill-quality`](.agent-src/rules/skill-quality.md) |
149
- | Size budgets for skills, rules, commands | [`size-enforcement`](.agent-src/rules/size-enforcement.md) |
150
- | Keep `.agent-src/` / `agents/` cross-refs in sync on add/rename/delete | [`docs-sync`](.agent-src/rules/docs-sync.md) |
151
- | Creating a new skill/rule/command/guideline runs Understand → Research → Draft | [`artifact-drafting-protocol`](.agent-src/rules/artifact-drafting-protocol.md) |
152
-
153
- ## Kernel + Router
154
-
155
- The rule set runs on a **Kernel + Router** model (locked 2026-05-06,
156
- see [`docs/decisions/ADR-rule-kernel-and-router.md`](docs/decisions/ADR-rule-kernel-and-router.md)):
157
-
158
- - **Kernel** = 9 always-loaded Iron-Law rules, ≤ 26k chars
159
- (`agent-authority`, `ask-when-uncertain`, `commit-policy`,
160
- `direct-answers`, `language-and-tone`, `no-cheap-questions`,
161
- `non-destructive-by-default`, `scope-control`, `verify-before-complete`).
162
- Locked set: [`docs/contracts/kernel-membership.md`](docs/contracts/kernel-membership.md) (beta).
163
- - **Router** = frontmatter `tier:` + `triggers:` + `routes_to:` keys
164
- on every rule. `scripts/compile_router.py` builds `router.json`
165
- deterministically. Contract: [`docs/contracts/rule-router.md`](docs/contracts/rule-router.md) (beta).
166
- - **Cost profiles** gate which tiers load:
167
- `minimal` = kernel only · `balanced` = kernel + tier-1 (default) ·
168
- `full` = kernel + tier-1 + tier-2.
169
-
170
- Hard caps enforced by `task lint-rule-budget`: kernel-bucket ≤ 26k chars,
171
- per-rule ≤ 2.5k chars (Iron-Law overrides up to 4.0k via ADR in
172
- [`docs/decisions/`](docs/decisions/) and
173
- [`docs/contracts/iron-law-overrides.txt`](docs/contracts/iron-law-overrides.txt)).
174
- Daily snapshots: `python3 scripts/measure_rule_budget.py --trend-append`
175
- appends to `agents/.rule-budget-history.jsonl`.
176
-
177
- ## Repository layout
178
-
179
- ```
180
- .agent-src.uncompressed/ ← edit here
181
- skills/ (141 skills)
182
- rules/ (60 rules)
183
- commands/ (103 commands)
184
- personas/ (7 personas)
185
- templates/ (AGENTS.md, copilot-instructions.md, skill.md, …)
186
- contexts/
187
-
188
- docs/guidelines/ (47 guidelines — reference material, not packaged)
189
- docs/contracts/ (kernel-membership, rule-router, rule-classification, …)
190
- docs/decisions/ (ADRs — kernel overrides, scope decisions)
191
- .agent-src/ ← compressed output shipped in the package
192
- .agent-src/router.json ← compiled router manifest (consumed at runtime)
193
- .augment/ ← local projection for Augment Code (gitignored)
194
- scripts/ ← install.sh, install.py, compress.py, linters
195
- tests/ ← pytest (324 tests) + test_install.sh
196
- agents/ ← this package's own roadmaps / sessions / contexts
197
- .github/workflows/ ← CI
198
- ```
199
-
200
- ## Multi-agent tool support
201
-
202
- `task generate-tools` builds:
203
-
204
- | Tool | Output | Strategy |
205
- |---|---|---|
206
- | Augment Code | `.augment/` | Native (source) |
207
- | Claude Code | `.claude/rules/`, `.claude/skills/` | Symlinks + Agent Skills standard |
208
- | Cursor | `.cursor/rules/` | Symlinks |
209
- | Cline | `.clinerules/` | Symlinks |
210
- | Windsurf | `.windsurfrules` | Concatenated file |
211
- | Gemini CLI | `GEMINI.md` | Symlink → AGENTS.md |
212
- | Claude.ai Web / Skills API | `dist/cloud/<skill>.zip` | `task build-cloud-bundles-all` (T3-H gated) |
213
-
214
- Skills follow the [Agent Skills open standard](https://agentskills.io). Commands
215
- are converted to Claude Code Skills with `disable-model-invocation: true`.
216
- Cloud bundles enforce description budgets and prepend a sandbox note for
217
- T2/T3-S skills — see [`docs/architecture.md`](docs/architecture.md#cloud-bundle-pipeline).
17
+ ## Pointers
218
18
 
219
- ## Contributing
19
+ - **Package self-orientation** — identity, four-wing cognition map, repo layout, tech stack, key-rules table, telemetry, command-suggester: [`docs/contracts/package-self-orientation.md`](docs/contracts/package-self-orientation.md).
20
+ - **Kernel + Router** — 9 always-loaded Iron-Law rules, tier-1 / tier-2 routing, cost profiles, per-rule char caps enforced by `task lint-rule-budget`: [`kernel-membership`](docs/contracts/kernel-membership.md) + [`rule-router`](docs/contracts/rule-router.md).
21
+ - **Multi-tool projection** — Augment, Claude Code, Cursor, Cline, Windsurf, Gemini CLI, Claude.ai bundle pipeline that ships from `.agent-src/` to consumer surfaces: [`docs/architecture.md`](docs/architecture.md#cloud-bundle-pipeline).
22
+ - **Iron-Law rules when editing this repo** — portability, source-of-truth, skill-quality: [`augment-portability`](.agent-src/rules/augment-portability.md), [`augment-source-of-truth`](.agent-src/rules/augment-source-of-truth.md), [`skill-quality`](.agent-src/rules/skill-quality.md).
23
+ - **Thin-Root contract** governing **this** file (cap, pointer ratio, emergency-triage block) — read before editing AGENTS.md: [`agents-md-thin-root`](.agent-src/skills/agents-md-thin-root/SKILL.md).
24
+ - **Consumer story + architecture deep-dive** — what the package does for installers and how it ships: [`README.md`](README.md), [`docs/architecture.md`](docs/architecture.md).
220
25
 
221
- 1. Edit inside `.agent-src.uncompressed/` or `scripts/` or `tests/` never in
222
- `.agent-src/`, `.augment/`, `.claude/`, `.cursor/`, etc.
223
- 2. Run `task ci` locally. It must exit 0.
224
- 3. Commit in logical chunks with Conventional Commits.
225
- 4. Open a PR against `main`.
26
+ ## Emergency triage read this when nothing else is reachable
226
27
 
227
- See [`README.md`](README.md) for the user-facing story, and
228
- [`docs/architecture.md`](docs/architecture.md) for the package architecture.
28
+ 1. **What is this repo?** — `event4u/agent-config`, a governed skill / rule / command suite for AI coding tools (no application runtime).
29
+ 2. **What language?** — All `.md` content is English; agents mirror the user's language at runtime.
30
+ 3. **Where do I edit?** — `.agent-src.uncompressed/` only. Never `.agent-src/`, `.augment/`, `.claude/`, `.cursor/`, `.clinerules/`, `.windsurfrules`.
31
+ 4. **Lint / test / sync entry point?** — `task ci` (full pipeline). Subsets: `task sync`, `task generate-tools`, `task lint-skills`, `task test`.
32
+ 5. **Where do the always-active rules live?** — `.agent-src/rules/` (kernel = 9 Iron-Law rules; tier-1 / tier-2 routed via `.agent-src/router.json`).
229
33
 
230
- ## License
231
34
 
232
- [MIT](LICENSE).
package/CHANGELOG.md CHANGED
@@ -318,6 +318,64 @@ our recommendation order, not its support status.
318
318
  users" tension without removing any path that an existing user
319
319
  might rely on.
320
320
 
321
+ ## [1.26.0](https://github.com/event4u-app/agent-config/compare/1.25.0...1.26.0) (2026-05-08)
322
+
323
+ ### Features
324
+
325
+ * **linter:** replace size heuristics with structural-density model ([95584ac](https://github.com/event4u-app/agent-config/commit/95584ac5e74948b71a9d13ff5ec6870c110be489))
326
+
327
+ ### Documentation
328
+
329
+ * **contracts:** add linter structural model + update size-and-scope ([32fa8b2](https://github.com/event4u-app/agent-config/commit/32fa8b2b7cc65148f7bc28fb782f20670d6640bc))
330
+
331
+ ### Chores
332
+
333
+ * gitignore density logs + archive completed structural-linter roadmap ([0a94ece](https://github.com/event4u-app/agent-config/commit/0a94ece8ac724386a5d49451b1e0d3058f2644cf))
334
+
335
+ ## [1.25.0](https://github.com/event4u-app/agent-config/compare/1.24.0...1.25.0) (2026-05-08)
336
+
337
+ ### Features
338
+
339
+ * **scope-control:** mandate branch-base inventory before first commit ([b038c26](https://github.com/event4u-app/agent-config/commit/b038c2660f8e317f09156ff00120bcdf31d7db92))
340
+ * **ci:** agents-md linter + CI integration (Phase 7) ([dd86beb](https://github.com/event4u-app/agent-config/commit/dd86bebd929bb3dde96e4100e96645a674f137fa))
341
+ * **agents-md:** Thin-Root refactor — agents-md-thin-root skill + content (Phase 6) ([7d31204](https://github.com/event4u-app/agent-config/commit/7d31204659a0ce085bb8a8f45b16de34cae06a78))
342
+ * **rules:** rule-governance audit — demote 4 auto-rules to manual (Phase 5) ([5071ff5](https://github.com/event4u-app/agent-config/commit/5071ff5855cf67c61303bb4cb07c4229fbbb4dd4))
343
+ * **rules:** consolidate auto-rules — merge council into no-roadmap-references and review-routing-awareness into reviewer-awareness (Lever D) ([18c42a3](https://github.com/event4u-app/agent-config/commit/18c42a33af0d950e07c50615615d4deb076071ff))
344
+ * **docs:** outboard AGENTS.md tech-stack details to context (Lever B) ([9b7bcfd](https://github.com/event4u-app/agent-config/commit/9b7bcfd374ce3325dd7013e530ce71f4b92df4eb))
345
+ * **budget:** augment workspace-guidelines budget meter + description cap (Lever A) ([da75061](https://github.com/event4u-app/agent-config/commit/da750615acbf9a687b81b1ecaff6d517a11203fb))
346
+ * **ci:** enforce one kernel-rule edit per PR ([a91ce92](https://github.com/event4u-app/agent-config/commit/a91ce927dc2a98129a7b685f803f7650863b31fa))
347
+
348
+ ### Bug Fixes
349
+
350
+ * **roadmap:** repoint sibling-roadmap reference to archived path ([f7ee632](https://github.com/event4u-app/agent-config/commit/f7ee632800290d3cd90f2dd1274e47e8127f1f63))
351
+ * **tests:** align update_counts + linter + hero-counts tests with Thin-Root ([5556c8c](https://github.com/event4u-app/agent-config/commit/5556c8ce1a8cf4df7a7b4a957030d5b5d2d0fd7e))
352
+ * **skills:** mark agents-md-thin-root cloud_safe noop ([17a3824](https://github.com/event4u-app/agent-config/commit/17a3824ddd1ea567fca8b699113b2c62050c5507))
353
+ * **docs:** move agents-md-tech-stack from agents/contexts/ to docs/contracts/ ([77eef8c](https://github.com/event4u-app/agent-config/commit/77eef8c61d2561ef5a563518f2bdb1dff80541c7))
354
+ * **rules:** drop forbidden agents/ link from reviewer-awareness body ([8a573a4](https://github.com/event4u-app/agent-config/commit/8a573a48bc959f0c16ea8b56fc0e6bd0d3139238))
355
+ * **refs:** point to archived roadmap, inline council convergence ([bf56b70](https://github.com/event4u-app/agent-config/commit/bf56b7084dae68fe2a21e52d7cb644ed6b3bb670))
356
+
357
+ ### Documentation
358
+
359
+ * **roadmap:** archive road-to-augment-limit-fit and repoint references ([58e101c](https://github.com/event4u-app/agent-config/commit/58e101c8a3421004929f47f4c760e44b97c124bc))
360
+ * **roadmap:** flip 8.3 + 8.4 — strategic phases committed and CI green ([712c414](https://github.com/event4u-app/agent-config/commit/712c4141103dbdc6db7fa6d1fa94d31943bd40e1))
361
+ * **roadmap:** drop gitignored council-response link ([74206a5](https://github.com/event4u-app/agent-config/commit/74206a592f47b9254c788b162ea3d99c54057506))
362
+ * **roadmap:** close road-to-augment-limit-fit (Phase 8) ([ac062ad](https://github.com/event4u-app/agent-config/commit/ac062ad184764f04f639eb52d59b1d63419b4b9b))
363
+ * **index:** regenerate agents/index.md + docs/catalog.md after rule consolidation ([3aa347c](https://github.com/event4u-app/agent-config/commit/3aa347c1e814a9c289891c350d69f8b9fda6783f))
364
+ * **roadmap:** land road-to-augment-limit-fit + ADR + regen derived artefacts ([5e54d22](https://github.com/event4u-app/agent-config/commit/5e54d220579658c4fc2310f123908b8cba97683e))
365
+ * **adr:** park always-budget relief strategy with reactivation triggers ([487e736](https://github.com/event4u-app/agent-config/commit/487e7366de6e99db60906906d61033486a0a6aa3))
366
+ * **rules:** add kernel-rule slow-rollout guarantee to scope-control ([26c43a2](https://github.com/event4u-app/agent-config/commit/26c43a2c96ede95319990b4ba578a986e46768a2))
367
+
368
+ ### Refactoring
369
+
370
+ * **copilot:** collapse copilot-review-instructions.md into copilot-instructions.md ([6c6ac25](https://github.com/event4u-app/agent-config/commit/6c6ac25a5958c3bbc0ffc7bb38422a6b9d855b50))
371
+
372
+ ### Chores
373
+
374
+ * **tools:** regen .windsurfrules for branch-base inventory ([a87641c](https://github.com/event4u-app/agent-config/commit/a87641cc0db84e705a9afe7aa36afbd451fb1467))
375
+ * **rebase:** restore compression hashes for files inherited from PR #55 ([863ba1c](https://github.com/event4u-app/agent-config/commit/863ba1cd71dc00559db905eb0d11b96951a9c5bd))
376
+ * regenerate .windsurfrules ([822b95e](https://github.com/event4u-app/agent-config/commit/822b95e1dcf48b05ec4e9bec0a4f481583ae6de7))
377
+ * **roadmap:** close + archive road-to-always-budget-relief, regen index ([350bfb1](https://github.com/event4u-app/agent-config/commit/350bfb1e75602769f6a1cfa535ed5d30adcd5eba))
378
+
321
379
  ## [1.24.0](https://github.com/event4u-app/agent-config/compare/1.23.0...1.24.0) (2026-05-08)
322
380
 
323
381
  ### Features
package/README.md CHANGED
@@ -7,7 +7,7 @@ Give your AI agents an audit-disciplined orchestration contract — testing, Git
7
7
  > Your agent picks up the project's stack, runs tests, prepares PRs, fixes CI — and follows your team's coding standards while doing it. Stack-aware skill sets ship for PHP (Laravel · Symfony · Zend/Laminas), JavaScript (Next.js · React · Node), and cross-stack concerns (API · testing · security · observability).
8
8
 
9
9
  <p align="center">
10
- <strong>141 Skills</strong> · <strong>60 Rules</strong> · <strong>103 Commands</strong> · <strong>58 Guidelines</strong> · <strong>8 AI Tools</strong>
10
+ <strong>142 Skills</strong> · <strong>58 Rules</strong> · <strong>103 Commands</strong> · <strong>58 Guidelines</strong> · <strong>8 AI Tools</strong>
11
11
  </p>
12
12
 
13
13
  ---
@@ -368,7 +368,7 @@ Every developer gets the same behavior. No per-user setup needed.
368
368
  native slash-commands)
369
369
 
370
370
  > **What this means in practice:** Augment Code and Claude Code get the full
371
- > package (rules + 141 skills + 103 native commands). Cursor, Cline, Windsurf,
371
+ > package (rules + 142 skills + 103 native commands). Cursor, Cline, Windsurf,
372
372
  > Gemini CLI, and GitHub Copilot only get the **rules** natively; skills and
373
373
  > commands are available to them as documentation the agent can read, not as
374
374
  > first-class features.
@@ -96,8 +96,8 @@ fails on any source-side violation, without producing artifacts.
96
96
 
97
97
  | Layer | Count | Purpose |
98
98
  |---|---|---|
99
- | **Skills** | 141 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
100
- | **Rules** | 60 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
99
+ | **Skills** | 142 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
100
+ | **Rules** | 58 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
101
101
  | **Commands** | 103 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
102
102
  | **Guidelines** | 58 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
103
103
  | **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
@@ -258,15 +258,21 @@ created by `scripts/install.sh`, not via raw git checkout. This means
258
258
  GitHub Copilot's static checker — which walks the git tree — will see
259
259
  broken paths where there are none. **The gap is intentional, not a bug.**
260
260
 
261
- The package ships two complementary suppression artefacts:
261
+ The package ships **one** Copilot instruction artefact:
262
262
 
263
263
  | File | Read by | Purpose |
264
264
  |---|---|---|
265
- | `.github/copilot-instructions.md` | Copilot Chat + PR review | Repo-wide coding standards, self-contained behavior |
266
- | `.github/copilot-review-instructions.md` | Copilot PR review | Path-resolution suppression floor (this section's mate) |
265
+ | `.github/copilot-instructions.md` | Copilot Chat + PR review | Repo-wide coding standards plus the path-resolution suppression floor (Known False Positives) |
267
266
 
268
- Both are installed (copy-if-missing) by `scripts/install.sh` from
269
- `.agent-src.uncompressed/templates/`. Consumers can edit them freely;
267
+ Per [GitHub's documented convention](https://docs.github.com/en/copilot/reference/custom-instructions-support),
268
+ Copilot Code Review reads `.github/copilot-instructions.md`
269
+ repository-wide and `.github/instructions/**/*.instructions.md` for
270
+ path-specific rules — there is no separate "review-only" instruction
271
+ file. The first 4000 characters are the budget; keep
272
+ high-priority rules (Scope Control, Known False Positives) up top.
273
+
274
+ Installed (copy-if-missing) by `scripts/install.sh` from
275
+ `.agent-src.uncompressed/templates/`. Consumers can edit it freely;
270
276
  the installer never overwrites.
271
277
 
272
278
  The mechanical floor is `scripts/check_compressed_paths.py`, wired into
package/docs/catalog.md CHANGED
@@ -1,19 +1,20 @@
1
1
  # agent-config — Public Catalog
2
2
 
3
- Consumer-facing catalog of all **359 public artefacts** shipped by
3
+ Consumer-facing catalog of all **358 public artefacts** shipped by
4
4
  this package. Internal package-maintenance rules and deprecation shims
5
5
  are excluded.
6
6
 
7
7
  > **Regenerate:** `python3 scripts/generate_index.py`
8
8
  > Auto-generated — do not edit manually.
9
9
 
10
- ## Skills (141)
10
+ ## Skills (142)
11
11
 
12
12
  | kind | name | extra | description |
13
13
  |---|---|---|---|
14
14
  | skill | [`adr-create`](../.agent-src/skills/adr-create/SKILL.md) | | Use when capturing an architectural decision — naming the file, picking the next ADR number, filling Status / Context / Decision / Consequences, and regenerating the index — even without saying 'ADR'. |
15
15
  | skill | [`adversarial-review`](../.agent-src/skills/adversarial-review/SKILL.md) | | ONLY when user explicitly requests adversarial review, devil's advocate analysis, stress-testing a plan, or 'poke holes in this' — NOT for regular code review or design feedback. |
16
16
  | skill | [`agent-docs-writing`](../.agent-src/skills/agent-docs-writing/SKILL.md) | | Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure. |
17
+ | skill | [`agents-md-thin-root`](../.agent-src/skills/agents-md-thin-root/SKILL.md) | | Use when editing AGENTS.md (package root) or templates/AGENTS.md (consumer) — enforces Thin-Root contract: hard char ceilings, ≥40% pointer ratio, mandatory emergency-triage block. |
17
18
  | skill | [`ai-council`](../.agent-src/skills/ai-council/SKILL.md) | | Use when polling external AIs (OpenAI, Anthropic) outside the host session for a neutral second opinion on a roadmap, diff, prompt, or file set — or 'cross-check with another model'. |
18
19
  | skill | [`analysis-autonomous-mode`](../.agent-src/skills/analysis-autonomous-mode/SKILL.md) | | ONLY when user explicitly requests autonomous analysis, deep investigation, multi-step research, or 'dig into this end-to-end without asking me each step' — NOT for normal feature work. |
19
20
  | skill | [`analysis-skill-router`](../.agent-src/skills/analysis-skill-router/SKILL.md) | | Use when picking which analysis or project-analysis-* skill fits a request — routes by scope, framework, and symptom — even if the user just says 'analyze this' or 'dig into the codebase'. |
@@ -153,22 +154,22 @@ are excluded.
153
154
  | skill | [`verify-completion-evidence`](../.agent-src/skills/verify-completion-evidence/SKILL.md) | | Use when claiming 'done', suggesting a commit, push, or PR — runs the evidence gate so completion claims come from fresh output in this message, not memory or earlier runs. |
154
155
  | skill | [`websocket`](../.agent-src/skills/websocket/SKILL.md) | | Use when building real-time features — WebSocket broadcasting, live updates, presence channels, connection state — even when the user just says 'push this to the client live'. |
155
156
 
156
- ## Rules (57)
157
+ ## Rules (55)
157
158
 
158
159
  | kind | name | type | description |
159
160
  |---|---|---|---|
160
161
  | rule | [`agent-authority`](../.agent-src/rules/agent-authority.md) | always | Priority Index for the four authority rules — Hard Floor → Permission Gate → Commit Default → Trivial-vs-Blocking; read first, route to canonical rule |
161
162
  | rule | [`agent-docs`](../.agent-src/rules/agent-docs.md) | auto | Reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md |
162
- | rule | [`analysis-skill-routing`](../.agent-src/rules/analysis-skill-routing.md) | auto | When choosing an analysis skill, route to the narrowest matching skill instead of defaulting to broad analysis |
163
+ | rule | [`analysis-skill-routing`](../.agent-src/rules/analysis-skill-routing.md) | manual | When choosing an analysis skill, route to the narrowest matching skill instead of defaulting to broad analysis |
163
164
  | rule | [`architecture`](../.agent-src/rules/architecture.md) | auto | Architecture rules for creating new files, classes, controllers, modules, or making structural decisions about project organization |
164
- | rule | [`artifact-drafting-protocol`](../.agent-src/rules/artifact-drafting-protocol.md) | auto | Creating a new skill, rule, command, or guideline, or significantly rewriting one — runs a mandatory Understand → Research → Draft sequence before any artifact content is written. |
165
- | rule | [`artifact-engagement-recording`](../.agent-src/rules/artifact-engagement-recording.md) | auto | After a /implement-ticket or /work phase-step (refine/memory/analyze/plan/implement/test/verify/report) or full task — emit one telemetry:record call with consulted+applied ids when enabled |
165
+ | rule | [`artifact-drafting-protocol`](../.agent-src/rules/artifact-drafting-protocol.md) | auto | Creating a new skill, rule, command, or guideline, or significantly rewriting one — runs mandatory Understand → Research → Draft before drafting |
166
+ | rule | [`artifact-engagement-recording`](../.agent-src/rules/artifact-engagement-recording.md) | auto | After a /implement-ticket or /work phase-step (refine/memory/analyze/plan/implement/test/verify/report) or full task — emit one telemetry:record call |
166
167
  | rule | [`ask-when-uncertain`](../.agent-src/rules/ask-when-uncertain.md) | always | Ask when uncertain — don't guess, assume, or improvise |
167
- | rule | [`autonomous-execution`](../.agent-src/rules/autonomous-execution.md) | auto | Deciding whether to ask the user or just act on a workflow step — trivial-vs-blocking classification, autonomy opt-in detection, commit default; defers to non-destructive-by-default for the Hard Floor |
168
+ | rule | [`autonomous-execution`](../.agent-src/rules/autonomous-execution.md) | auto | Whether to ask or act on a workflow step — trivial-vs-blocking, autonomy opt-in, commit default; Hard Floor in non-destructive-by-default |
168
169
  | rule | [`capture-learnings`](../.agent-src/rules/capture-learnings.md) | auto | After completing a task where a repeated mistake or successful pattern appeared — capture as rule or skill |
169
- | rule | [`caveman-speak`](../.agent-src/rules/caveman-speak.md) | auto | When caveman.speak_scope != off — compress reply prose to caveman grammar with byte-for-byte carve-outs for numbered options, Iron-Law literals, code, paths, and error markers. |
170
- | rule | [`cli-output-handling`](../.agent-src/rules/cli-output-handling.md) | auto | Running CLI commands that produce verbose output — git, tests, linters, docker, build tools, artisan, npm, composer. Wrap with rtk when installed; tail/grep is fallback. |
171
- | rule | [`command-suggestion-policy`](../.agent-src/rules/command-suggestion-policy.md) | auto | 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 |
170
+ | rule | [`caveman-speak`](../.agent-src/rules/caveman-speak.md) | auto | When caveman.speak_scope != off — compress reply prose to caveman grammar with carve-outs for numbered options, Iron-Law, code, paths, error markers |
171
+ | rule | [`cli-output-handling`](../.agent-src/rules/cli-output-handling.md) | auto | Running CLI commands that produce verbose output — git, tests, linters, docker, build tools, artisan, npm, composer. Wrap with rtk; tail/grep fallback |
172
+ | rule | [`command-suggestion-policy`](../.agent-src/rules/command-suggestion-policy.md) | auto | User prompt without /command matching an eligible slash command — surface matches as numbered options with as-is escape; never auto-executes |
172
173
  | rule | [`commit-conventions`](../.agent-src/rules/commit-conventions.md) | auto | Git commit message format, branch naming, conventional commits, committing, pushing, or creating pull requests |
173
174
  | rule | [`commit-policy`](../.agent-src/rules/commit-policy.md) | always | Commit policy — never commit and never ask about committing unless the user said so this turn, the roadmap authorizes it, or a commit command is invoked |
174
175
  | rule | [`context-hygiene`](../.agent-src/rules/context-hygiene.md) | auto | When debugging, fixing errors, or running long conversations — 3-failure stop rule, tool-loop detection, fresh-chat triggers |
@@ -176,41 +177,39 @@ are excluded.
176
177
  | rule | [`docker-commands`](../.agent-src/rules/docker-commands.md) | auto | Running PHP commands inside Docker containers — artisan, composer, phpstan, rector, ecs, phpunit, tests, migrations, and any CLI tool execution |
177
178
  | rule | [`downstream-changes`](../.agent-src/rules/downstream-changes.md) | auto | After EVERY code edit, find ALL downstream changes needed to existing files, including callers, tests, imports, types, and documentation |
178
179
  | rule | [`e2e-testing`](../.agent-src/rules/e2e-testing.md) | auto | Playwright E2E tests — locators, assertions, Page Objects, fixtures, CI, and flaky test prevention |
179
- | rule | [`guidelines`](../.agent-src/rules/guidelines.md) | auto | Writing or reviewing code — check relevant guideline before writing or reviewing code |
180
- | rule | [`improve-before-implement`](../.agent-src/rules/improve-before-implement.md) | auto | Before implementing features or architectural changes — validate the request against existing code, challenge weak requirements, and suggest improvements |
181
- | rule | [`invite-challenge`](../.agent-src/rules/invite-challenge.md) | auto | Before executing a complex plan or non-trivial design — proactively ask 'am I solving the right problem?' and pause for user confirmation, even when no ambiguity is detected |
180
+ | rule | [`guidelines`](../.agent-src/rules/guidelines.md) | manual | Writing or reviewing code — check relevant guideline before writing or reviewing code |
181
+ | rule | [`improve-before-implement`](../.agent-src/rules/improve-before-implement.md) | auto | Before implementing features or architectural changes — validate the request against existing code, challenge weak requirements, suggest improvements |
182
+ | rule | [`invite-challenge`](../.agent-src/rules/invite-challenge.md) | auto | Before executing a complex plan or non-trivial design — ask 'am I solving the right problem?' and pause for user confirmation, even when no ambiguity |
182
183
  | rule | [`language-and-tone`](../.agent-src/rules/language-and-tone.md) | always | Language and tone — informal German Du, English code comments, .md files always English |
183
184
  | rule | [`laravel-translations`](../.agent-src/rules/laravel-translations.md) | auto | Laravel language files, translations, i18n, lang/de, lang/en, __() helper, localization, multilingual text |
184
185
  | rule | [`markdown-safe-codeblocks`](../.agent-src/rules/markdown-safe-codeblocks.md) | auto | Generating markdown output that contains code blocks — prevent broken nesting |
185
- | rule | [`minimal-safe-diff`](../.agent-src/rules/minimal-safe-diff.md) | auto | 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 |
186
+ | rule | [`minimal-safe-diff`](../.agent-src/rules/minimal-safe-diff.md) | auto | When writing or reviewing a diff — the smallest change that solves the stated problem; no drive-by edits, opportunistic refactors, or reformatting |
186
187
  | rule | [`missing-tool-handling`](../.agent-src/rules/missing-tool-handling.md) | auto | When a CLI tool needed for the task is not installed — ask before working around it; do NOT install silently |
187
- | rule | [`model-recommendation`](../.agent-src/rules/model-recommendation.md) | auto | 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 |
188
- | rule | [`no-attribution-footers`](../.agent-src/rules/no-attribution-footers.md) | auto | 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 |
188
+ | rule | [`model-recommendation`](../.agent-src/rules/model-recommendation.md) | auto | Starting a new task, switching task type, or invoking a command — detect complexity and recommend optimal model (Opus/Sonnet/GPT) before work |
189
+ | rule | [`no-attribution-footers`](../.agent-src/rules/no-attribution-footers.md) | auto | Generating PR/issue/comment/commit-message bodies — forbids 'Generated with', 'Co-authored by', or 'Pull Request opened by' attribution footers |
189
190
  | rule | [`no-cheap-questions`](../.agent-src/rules/no-cheap-questions.md) | always | No cheap questions — never ask what context answers, never offer Iron-Law-violating options, never stage no-trade-off choices; mode-independent (off / auto / on) |
190
- | rule | [`no-council-references`](../.agent-src/rules/no-council-references.md) | auto | 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 |
191
- | rule | [`no-roadmap-references`](../.agent-src/rules/no-roadmap-references.md) | auto | 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 |
191
+ | rule | [`no-roadmap-references`](../.agent-src/rules/no-roadmap-references.md) | auto | Linking transient files (agents/roadmaps/, agents/council-{questions,responses,sessions}/) from a stable artifact — both layers expire; promote findings |
192
192
  | rule | [`non-destructive-by-default`](../.agent-src/rules/non-destructive-by-default.md) | always | Agent is never destructive — Hard Floor always asks for prod-trunk merges, deploys, pushes, prod data/infra, bulk deletions, and bulk-deletion/infra commits; no autonomy or roadmap bypass |
193
- | rule | [`onboarding-gate`](../.agent-src/rules/onboarding-gate.md) | auto | First turn of a conversation on a project — check onboarding.onboarded in .agent-settings.yml; when false, prompt the user to run /onboard before executing any other request |
194
- | rule | [`package-ci-checks`](../.agent-src/rules/package-ci-checks.md) | auto | Before pushing to remote or creating a PR in the agent-config package — run all CI checks locally first |
193
+ | rule | [`onboarding-gate`](../.agent-src/rules/onboarding-gate.md) | auto | First turn of a conversation on a project — check onboarding.onboarded in .agent-settings.yml; when false, prompt to run /onboard before any request |
194
+ | rule | [`package-ci-checks`](../.agent-src/rules/package-ci-checks.md) | manual | Before pushing to remote or creating a PR in the agent-config package — run all CI checks locally first |
195
195
  | rule | [`php-coding`](../.agent-src/rules/php-coding.md) | auto | Writing or reviewing PHP code — strict types, naming, comparisons, early returns, Eloquent conventions |
196
196
  | rule | [`preservation-guard`](../.agent-src/rules/preservation-guard.md) | auto | When merging, refactoring, compressing, or restructuring skills, rules, commands, or guidelines — prevent quality loss |
197
- | rule | [`review-routing-awareness`](../.agent-src/rules/review-routing-awareness.md) | auto | When routing reviewers or flagging risk hotspots — consult ownership-map and historical-bug-patterns before suggesting reviewers or claiming a change is safe |
198
- | rule | [`reviewer-awareness`](../.agent-src/rules/reviewer-awareness.md) | auto | When suggesting reviewers for a change anchor the choice in paths and risk, never prestige or seniority; require primary + secondary role for medium/high risk |
199
- | rule | [`roadmap-progress-sync`](../.agent-src/rules/roadmap-progress-sync.md) | auto | Any touch to agents/roadmaps/ — create/rename/delete/move, edit checkboxes ([x]/[~]/[-]), add/rename/remove phases — must regenerate dashboard and archive if 0 open items, same response |
197
+ | rule | [`reviewer-awareness`](../.agent-src/rules/reviewer-awareness.md) | auto | When suggesting reviewers or flagging risk hotspots — anchor in paths/risk + ownership-map + bug-patterns; medium/high needs primary + secondary |
198
+ | rule | [`roadmap-progress-sync`](../.agent-src/rules/roadmap-progress-sync.md) | auto | Any roadmap touch (file move, checkbox flip, phase change) regens dashboard same response; archive at 0 open. Autonomous runs flip checkboxes inline |
200
199
  | rule | [`role-mode-adherence`](../.agent-src/rules/role-mode-adherence.md) | auto | When roles.active_role is set in .agent-settings.yml — closing outputs must match the mode's contract and emit the structured mode marker |
201
200
  | rule | [`rule-type-governance`](../.agent-src/rules/rule-type-governance.md) | auto | Creating or editing rules, or auditing rule types — decides when a rule should be always vs auto |
202
201
  | rule | [`runtime-safety`](../.agent-src/rules/runtime-safety.md) | auto | When a skill declares execution metadata — enforce safety constraints for assisted and automated execution types |
203
202
  | rule | [`scope-control`](../.agent-src/rules/scope-control.md) | always | Scope control — no unsolicited architectural changes, refactors, or library replacements |
204
- | rule | [`security-sensitive-stop`](../.agent-src/rules/security-sensitive-stop.md) | auto | Security-sensitive paths — auth, billing, tenant boundaries, secrets, file uploads, external integrations, webhooks, public endpoints — stop and run threat analysis BEFORE editing |
205
- | rule | [`size-enforcement`](../.agent-src/rules/size-enforcement.md) | auto | Creating or editing rules, skills, commands, guidelines, AGENTS.md, or copilot-instructions.md — enforce size and scope limits |
203
+ | rule | [`security-sensitive-stop`](../.agent-src/rules/security-sensitive-stop.md) | auto | Security-sensitive paths — auth, billing, tenant boundaries, secrets, uploads, integrations, webhooks, public endpoints — threat-model BEFORE editing |
204
+ | rule | [`size-enforcement`](../.agent-src/rules/size-enforcement.md) | manual | Creating or editing rules, skills, commands, guidelines, AGENTS.md, or copilot-instructions.md — enforce size and scope limits |
206
205
  | rule | [`skill-improvement-trigger`](../.agent-src/rules/skill-improvement-trigger.md) | auto | After completing a meaningful task — trigger post-task learning capture if pipelines.skill_improvement is enabled |
207
206
  | rule | [`skill-quality`](../.agent-src/rules/skill-quality.md) | auto | Creating, editing, or reviewing skills — minimum quality standard, every skill must be executable, validated, and self-contained |
208
207
  | rule | [`slash-command-routing-policy`](../.agent-src/rules/slash-command-routing-policy.md) | auto | When user types a slash command like /create-pr, /commit, or pastes command file content |
209
208
  | rule | [`think-before-action`](../.agent-src/rules/think-before-action.md) | auto | Before coding, modifying, or debugging — analyze first, verify with real tools, never guess or trial-and-error |
210
209
  | rule | [`token-efficiency`](../.agent-src/rules/token-efficiency.md) | auto | When running CLI tools, fetching logs, or producing replies — redirect verbose output, minimize tool calls, keep replies concise |
211
- | rule | [`token-optimizer-maintenance`](../.agent-src/rules/token-optimizer-maintenance.md) | auto | Editing a token-optimizer-cited asset (cli-output-handling, rtk-output-filtering, token-efficiency, agent-handoff, direct-answers, markitdown) — keep the catalog row in sync in the same commit. |
210
+ | rule | [`token-optimizer-maintenance`](../.agent-src/rules/token-optimizer-maintenance.md) | auto | Editing a token-optimizer-cited asset (cli-output-handling, rtk-output-filtering, token-efficiency, markitdown) — sync catalog same commit |
212
211
  | rule | [`tool-safety`](../.agent-src/rules/tool-safety.md) | auto | When a skill uses external tools — enforce allowlist, deny-by-default, and no hidden credential patterns |
213
- | rule | [`ui-audit-gate`](../.agent-src/rules/ui-audit-gate.md) | auto | Writing or editing UI — components, screens, partials, layouts, design tokens — require existing-ui-audit findings in state.ui_audit before non-trivial UI change; gate, not suggestion |
212
+ | rule | [`ui-audit-gate`](../.agent-src/rules/ui-audit-gate.md) | auto | Writing or editing UI — components, screens, partials, layouts, design tokens — require existing-ui-audit findings before non-trivial UI change |
214
213
  | rule | [`upstream-proposal`](../.agent-src/rules/upstream-proposal.md) | auto | After creating or significantly improving a skill, rule, guideline, or command — ask if it should be contributed upstream to the shared package |
215
214
  | rule | [`user-interaction`](../.agent-src/rules/user-interaction.md) | auto | Asking the user a question, presenting options, or summarizing progress — numbered-options Iron Law, single-recommendation rule, progress indicators |
216
215
  | rule | [`verify-before-complete`](../.agent-src/rules/verify-before-complete.md) | always | Verify before completion — run tests and quality tools before claiming done |
@@ -0,0 +1,74 @@
1
+ ---
2
+ stability: beta
3
+ ---
4
+
5
+ # Tech stack — deep detail
6
+
7
+ Outboarded from `AGENTS.md` Phase 2 of `road-to-augment-limit-fit` to
8
+ keep the front-door file under the Augment workspace-guidelines
9
+ budget. AGENTS.md retains a 2-3 sentence summary; everything below
10
+ is the long-form reference.
11
+
12
+ ## Recommended ingestion path for non-text formats
13
+
14
+ PDF, DOCX, XLSX, PPTX, EPUB, image, and audio inputs route through the
15
+ [`markitdown`](../../.agent-src/skills/markitdown/SKILL.md) skill — a
16
+ thin markdown-only wrapper over Microsoft's MIT-licensed
17
+ `markitdown-mcp` server (peer-side install, zero Python in this
18
+ package). The skill ships the four-layer security defense:
19
+
20
+ 1. **Skill checklist** — frontmatter declares allowed input types, max
21
+ sizes, and the disallow list (no remote URLs, no executables).
22
+ 2. **Narrow API** — the skill exposes `convert(path) → markdown`; no
23
+ shell-out, no arbitrary file globbing.
24
+ 3. **Docker read-only** — `markitdown-mcp` runs in a read-only
25
+ container with the mount restricted to the input file's directory.
26
+ 4. **Localhost binding** — the MCP server binds to `127.0.0.1` only;
27
+ no exposure to the host network.
28
+
29
+ Calibrated token claim: 3-5× comprehension on text-heavy formats
30
+ (PDF, DOCX), 10-50× on image-heavy formats (scanned PDF, PPTX with
31
+ diagrams). Measure locally with
32
+ `python3 scripts/measure_markitdown_lift.py` against
33
+ `tests/fixtures/markitdown-corpus/`.
34
+
35
+ ## Cognition-only floor for Wings 2–4
36
+
37
+ Wings 2 (Product + Foundation), 3 (GTM + Growth), and 4 (Money +
38
+ Strategy + Ops) enforce a no-SaaS-auth, no-vendor-SDK,
39
+ no-stage-prescription floor: cognition artifacts (markdown tables,
40
+ scoring rubrics, walkthroughs) must work in any host without
41
+ external dependencies.
42
+
43
+ Mechanical enforcement: the structural-malice check in
44
+ `scripts/skill_linter.py` blocks:
45
+
46
+ - Credential exfiltration patterns (env-var reads of `*_TOKEN`,
47
+ `*_KEY`, `*_SECRET` followed by network egress).
48
+ - Remote execution (subprocess to URLs, `eval` of network-fetched
49
+ content).
50
+ - Shell injection in subprocess calls (string-concat shell commands
51
+ with user-controlled input).
52
+
53
+ See `.agent-src.uncompressed/rules/skill-quality.md` § Structural
54
+ Malice Floor for the full rule.
55
+
56
+ ## Distribution mechanics
57
+
58
+ - `type: library` in `composer.json`; no `app/` directory, no
59
+ application runtime (no Laravel, Symfony, Next.js, or other
60
+ framework app code).
61
+ - Published to Composer and npm as `event4u/agent-config` /
62
+ `@event4u/agent-config`.
63
+ - Installed into consumer projects via `scripts/install.sh` (Bash)
64
+ and `scripts/install.py` (Python bridge).
65
+
66
+ ## See also
67
+
68
+ - [`AGENTS.md`](../../AGENTS.md) — front-door (kernel orientation only)
69
+ - [`docs/architecture.md`](../../docs/architecture.md) — package
70
+ architecture and cloud-bundle pipeline
71
+ - [`.agent-src.uncompressed/rules/skill-quality.md`](../../.agent-src.uncompressed/rules/skill-quality.md)
72
+ — Structural Malice Floor
73
+ - [`.agent-src/skills/markitdown/SKILL.md`](../../.agent-src/skills/markitdown/SKILL.md)
74
+ — markitdown skill entry point
@@ -89,7 +89,7 @@ agent that does not maintain `event4u/agent-config`.
89
89
  `agent-docs`, `architecture`, `artifact-drafting-protocol`,
90
90
  `augment-portability`, `augment-source-of-truth`, `capture-learnings`,
91
91
  `docs-sync`, `guidelines`, `package-ci-checks`, `preservation-guard`,
92
- `review-routing-awareness`, `roadmap-progress-sync`,
92
+ `reviewer-awareness`, `roadmap-progress-sync`,
93
93
  `role-mode-adherence`, `rule-type-governance`, `runtime-safety`,
94
94
  `size-enforcement`, `skill-improvement-trigger`, `skill-quality`,
95
95
  `tool-safety`, `upstream-proposal`.