@event4u/agent-config 1.25.0 → 1.27.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/e2e-heal.md +2 -0
- package/.agent-src/commands/e2e-plan.md +2 -0
- package/.agent-src/rules/domain-adoption-policy.md +158 -0
- package/.agent-src/rules/no-unsolicited-rebase.md +107 -0
- package/.agent-src/skills/mobile-e2e-strategy/SKILL.md +147 -0
- package/.agent-src/skills/playwright-testing/SKILL.md +1 -0
- package/.agent-src/skills/react-native-setup/SKILL.md +221 -0
- package/.claude-plugin/marketplace.json +3 -1
- package/CHANGELOG.md +32 -0
- package/README.md +2 -2
- package/docs/architecture.md +3 -3
- package/docs/catalog.md +9 -4
- package/docs/contracts/linter-structural-model.md +180 -0
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/agent-infra/ios-simulator-guide.md +383 -0
- package/docs/guidelines/agent-infra/size-and-scope.md +18 -12
- package/package.json +1 -1
- package/scripts/measure_density.py +232 -0
- package/scripts/skill_linter.py +156 -27
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Shared agent configuration \u2014 skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.27.0"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
@@ -153,6 +153,7 @@
|
|
|
153
153
|
"./.claude/skills/memory-propose",
|
|
154
154
|
"./.claude/skills/merge-conflicts",
|
|
155
155
|
"./.claude/skills/migration-creator",
|
|
156
|
+
"./.claude/skills/mobile-e2e-strategy",
|
|
156
157
|
"./.claude/skills/mode",
|
|
157
158
|
"./.claude/skills/module",
|
|
158
159
|
"./.claude/skills/module-create",
|
|
@@ -198,6 +199,7 @@
|
|
|
198
199
|
"./.claude/skills/prompt-optimizer",
|
|
199
200
|
"./.claude/skills/quality-fix",
|
|
200
201
|
"./.claude/skills/quality-tools",
|
|
202
|
+
"./.claude/skills/react-native-setup",
|
|
201
203
|
"./.claude/skills/react-shadcn-ui",
|
|
202
204
|
"./.claude/skills/readme-reviewer",
|
|
203
205
|
"./.claude/skills/readme-writing",
|
package/CHANGELOG.md
CHANGED
|
@@ -318,6 +318,38 @@ 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.27.0](https://github.com/event4u-app/agent-config/compare/1.26.0...1.27.0) (2026-05-08)
|
|
322
|
+
|
|
323
|
+
### Features
|
|
324
|
+
|
|
325
|
+
* **governance:** add no-unsolicited-rebase rule ([b17e4bc](https://github.com/event4u-app/agent-config/commit/b17e4bc8482342a8f3b9c47f40994e17a6eab626))
|
|
326
|
+
* **governance:** add domain-adoption-policy rule ([30a45c3](https://github.com/event4u-app/agent-config/commit/30a45c352a7c9b16dfe455f31bf87c253fe95014))
|
|
327
|
+
* **mobile:** add mobile track skills and iOS simulator guideline ([f4dbb5c](https://github.com/event4u-app/agent-config/commit/f4dbb5cc32065e76d39981d18bc4513551a5da8b))
|
|
328
|
+
|
|
329
|
+
### Bug Fixes
|
|
330
|
+
|
|
331
|
+
* **governance:** set tier 2a on no-unsolicited-rebase rule ([284ced0](https://github.com/event4u-app/agent-config/commit/284ced0c7b53ec9a394234a37ee5b370d2278802))
|
|
332
|
+
* **governance:** allowlist .agent-src.uncompressed/ substring in domain-adoption-policy ([e2091dc](https://github.com/event4u-app/agent-config/commit/e2091dc660ce4c437c1b5035aaa1179f469e7abe))
|
|
333
|
+
|
|
334
|
+
### Chores
|
|
335
|
+
|
|
336
|
+
* **roadmap:** archive road-to-mobile-adoption ([cc5e6ea](https://github.com/event4u-app/agent-config/commit/cc5e6ea4228666b9784fd468095bb2c096430672))
|
|
337
|
+
* regenerate tool projections and counts for mobile + governance ([b36d495](https://github.com/event4u-app/agent-config/commit/b36d4957a43b26d0786ae73f11097091ca28fbbb))
|
|
338
|
+
|
|
339
|
+
## [1.26.0](https://github.com/event4u-app/agent-config/compare/1.25.0...1.26.0) (2026-05-08)
|
|
340
|
+
|
|
341
|
+
### Features
|
|
342
|
+
|
|
343
|
+
* **linter:** replace size heuristics with structural-density model ([95584ac](https://github.com/event4u-app/agent-config/commit/95584ac5e74948b71a9d13ff5ec6870c110be489))
|
|
344
|
+
|
|
345
|
+
### Documentation
|
|
346
|
+
|
|
347
|
+
* **contracts:** add linter structural model + update size-and-scope ([32fa8b2](https://github.com/event4u-app/agent-config/commit/32fa8b2b7cc65148f7bc28fb782f20670d6640bc))
|
|
348
|
+
|
|
349
|
+
### Chores
|
|
350
|
+
|
|
351
|
+
* gitignore density logs + archive completed structural-linter roadmap ([0a94ece](https://github.com/event4u-app/agent-config/commit/0a94ece8ac724386a5d49451b1e0d3058f2644cf))
|
|
352
|
+
|
|
321
353
|
## [1.25.0](https://github.com/event4u-app/agent-config/compare/1.24.0...1.25.0) (2026-05-08)
|
|
322
354
|
|
|
323
355
|
### 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>
|
|
10
|
+
<strong>144 Skills</strong> · <strong>60 Rules</strong> · <strong>103 Commands</strong> · <strong>59 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 +
|
|
371
|
+
> package (rules + 144 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.
|
package/docs/architecture.md
CHANGED
|
@@ -96,10 +96,10 @@ fails on any source-side violation, without producing artifacts.
|
|
|
96
96
|
|
|
97
97
|
| Layer | Count | Purpose |
|
|
98
98
|
|---|---|---|
|
|
99
|
-
| **Skills** |
|
|
100
|
-
| **Rules** |
|
|
99
|
+
| **Skills** | 144 | 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 |
|
|
101
101
|
| **Commands** | 103 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/compress`, … |
|
|
102
|
-
| **Guidelines** |
|
|
102
|
+
| **Guidelines** | 59 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
|
|
103
103
|
| **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
|
|
104
104
|
| **Contexts** | 5 | Shared knowledge about the system itself |
|
|
105
105
|
|
package/docs/catalog.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# agent-config — Public Catalog
|
|
2
2
|
|
|
3
|
-
Consumer-facing catalog of all **
|
|
3
|
+
Consumer-facing catalog of all **363 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 (
|
|
10
|
+
## Skills (144)
|
|
11
11
|
|
|
12
12
|
| kind | name | extra | description |
|
|
13
13
|
|---|---|---|---|
|
|
@@ -87,6 +87,7 @@ are excluded.
|
|
|
87
87
|
| skill | [`md-language-check`](../.agent-src/skills/md-language-check/SKILL.md) | | Use BEFORE saving any .md under .augment/, .agent-src*/, or agents/ — scans umlauts, German function words, and quoted German phrases outside DE:/EN: anchor blocks. Hard gate per language-and-tone. |
|
|
88
88
|
| skill | [`merge-conflicts`](../.agent-src/skills/merge-conflicts/SKILL.md) | | Use when the user has merge conflicts or says "resolve conflicts". Understands conflict markers, resolution strategies, and verification workflow. |
|
|
89
89
|
| skill | [`migration-creator`](../.agent-src/skills/migration-creator/SKILL.md) | | Use when the user says "create migration", "add column", or "new table". Creates migrations with correct table prefixes, column naming, and multi-tenant awareness. |
|
|
90
|
+
| skill | [`mobile-e2e-strategy`](../.agent-src/skills/mobile-e2e-strategy/SKILL.md) | | Use when picking a mobile E2E framework — Detox / Appium / Maestro / XCUITest / Espresso — or planning iOS Simulator / Android Emulator coverage in CI for RN, Expo, or native apps. |
|
|
90
91
|
| skill | [`module-management`](../.agent-src/skills/module-management/SKILL.md) | | Use when the user says "create module", "explore module", or works within app/Modules/. Understands module structure, auto-loading, route registration, and namespace conventions. |
|
|
91
92
|
| skill | [`multi-tenancy`](../.agent-src/skills/multi-tenancy/SKILL.md) | | Use when working with the multi-tenant architecture — customer DB switching, FQDN routing, tenant isolation, or cross-tenant operations. |
|
|
92
93
|
| skill | [`okr-tree-modeling`](../.agent-src/skills/okr-tree-modeling/SKILL.md) | | Use when decomposing a company objective into team OKRs, auditing a draft OKR tree, or stress-testing an existing one for measurability and laddering. |
|
|
@@ -112,6 +113,7 @@ are excluded.
|
|
|
112
113
|
| skill | [`project-docs`](../.agent-src/skills/project-docs/SKILL.md) | | Use when looking for project-specific documentation. Knows which docs exist in agents/docs/ and agents/contexts/ and maps work areas to relevant docs. |
|
|
113
114
|
| skill | [`prompt-optimizer`](../.agent-src/skills/prompt-optimizer/SKILL.md) | | Use when the user wants a prompt optimized for ChatGPT, Claude, Gemini, or another AI — 'make this prompt better', 'optimize for ChatGPT', 'rewrite my prompt' — even without saying 'optimize'. |
|
|
114
115
|
| skill | [`quality-tools`](../.agent-src/skills/quality-tools/SKILL.md) | | Use when PHPStan, Rector, or ECS output appears — \"phpstan says mixed\", type errors, \"fix code style\", \"run rector\" — even when Eloquent/Laravel/model code is also mentioned. |
|
|
116
|
+
| skill | [`react-native-setup`](../.agent-src/skills/react-native-setup/SKILL.md) | | Use when setting up React Native or Expo dev environments — Xcode, Android Studio, CocoaPods, EAS, Metro, New Architecture — even when the user just says 'my RN build won't start'. |
|
|
115
117
|
| skill | [`react-shadcn-ui`](../.agent-src/skills/react-shadcn-ui/SKILL.md) | | Use when building React UI on shadcn/ui primitives + Tailwind — the apply/review/polish skill dispatched by `directives/ui/*` for the `react-shadcn` stack. |
|
|
116
118
|
| skill | [`readme-reviewer`](../.agent-src/skills/readme-reviewer/SKILL.md) | | Use when reviewing a README for accuracy, usability, and alignment with the actual repository. Detects invented content, broken setup steps, and structural issues. |
|
|
117
119
|
| skill | [`readme-writing`](../.agent-src/skills/readme-writing/SKILL.md) | | Use when creating, rewriting, or significantly improving a README based on the actual repository structure, commands, and intended audience. |
|
|
@@ -154,7 +156,7 @@ are excluded.
|
|
|
154
156
|
| 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. |
|
|
155
157
|
| 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'. |
|
|
156
158
|
|
|
157
|
-
## Rules (
|
|
159
|
+
## Rules (57)
|
|
158
160
|
|
|
159
161
|
| kind | name | type | description |
|
|
160
162
|
|---|---|---|---|
|
|
@@ -175,6 +177,7 @@ are excluded.
|
|
|
175
177
|
| 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
178
|
| rule | [`direct-answers`](../.agent-src/rules/direct-answers.md) | always | Always — direct, unembellished answers. No flattery, no invented facts (verify load-bearing claims, otherwise ask). Emojis only as functional markers. Brevity is the default. |
|
|
177
179
|
| 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 |
|
|
180
|
+
| rule | [`domain-adoption-policy`](../.agent-src/rules/domain-adoption-policy.md) | auto | Adopting a new domain track (mobile, ML, blockchain, scientific computing, IoT, gaming) into the suite — gates the import on demand, ownership, CI fit, and Sunset compatibility BEFORE any harvest |
|
|
178
181
|
| 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 |
|
|
179
182
|
| rule | [`e2e-testing`](../.agent-src/rules/e2e-testing.md) | auto | Playwright E2E tests — locators, assertions, Page Objects, fixtures, CI, and flaky test prevention |
|
|
180
183
|
| rule | [`guidelines`](../.agent-src/rules/guidelines.md) | manual | Writing or reviewing code — check relevant guideline before writing or reviewing code |
|
|
@@ -189,6 +192,7 @@ are excluded.
|
|
|
189
192
|
| 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 |
|
|
190
193
|
| 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) |
|
|
191
194
|
| 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 |
|
|
195
|
+
| rule | [`no-unsolicited-rebase`](../.agent-src/rules/no-unsolicited-rebase.md) | auto | Working with git history — never rewrite, rebase, squash, fixup, or amend without explicit user request; the linear/squashed shape is the user's call, not a tidiness reflex |
|
|
192
196
|
| 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
197
|
| 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
198
|
| 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 |
|
|
@@ -322,7 +326,7 @@ are excluded.
|
|
|
322
326
|
| command | [`upstream-contribute`](../.agent-src/commands/upstream-contribute.md) | | Contribute a learning, skill, rule, or fix from a consumer project back to the shared agent-config package |
|
|
323
327
|
| command | [`work`](../.agent-src/commands/work.md) | | Drive a free-form prompt end-to-end through refine → score → plan → implement → test → verify → report — Option-A loop over the `work_engine` Python engine, confidence-band gated, no auto-git. |
|
|
324
328
|
|
|
325
|
-
## Guidelines (
|
|
329
|
+
## Guidelines (59)
|
|
326
330
|
|
|
327
331
|
| kind | name | category | description |
|
|
328
332
|
|---|---|---|---|
|
|
@@ -334,6 +338,7 @@ are excluded.
|
|
|
334
338
|
| guideline | [`developer-judgment`](../docs/guidelines/agent-infra/developer-judgment.md) | agent-infra | |
|
|
335
339
|
| guideline | [`direct-answers-demos`](../docs/guidelines/agent-infra/direct-answers-demos.md) | agent-infra | |
|
|
336
340
|
| guideline | [`engineering-memory-data-format`](../docs/guidelines/agent-infra/engineering-memory-data-format.md) | agent-infra | |
|
|
341
|
+
| guideline | [`ios-simulator-guide`](../docs/guidelines/agent-infra/ios-simulator-guide.md) | agent-infra | |
|
|
337
342
|
| guideline | [`language-and-tone-examples`](../docs/guidelines/agent-infra/language-and-tone-examples.md) | agent-infra | |
|
|
338
343
|
| guideline | [`layered-settings`](../docs/guidelines/agent-infra/layered-settings.md) | agent-infra | |
|
|
339
344
|
| guideline | [`mcp-request-signing`](../docs/guidelines/agent-infra/mcp-request-signing.md) | agent-infra | |
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Linter Structural Model
|
|
6
|
+
|
|
7
|
+
**Status:** LOCKED — shipped 2026-05-08 on
|
|
8
|
+
`feat/road-to-structural-linter-reform`. The linter now applies the
|
|
9
|
+
structural model to skills, rules, and commands.
|
|
10
|
+
|
|
11
|
+
## Why a structural model
|
|
12
|
+
|
|
13
|
+
Council convergence (Sonnet + GPT-4o, 2026-05-06): raw line / word
|
|
14
|
+
counts produce ratchet drift. Three failure modes that the pure-size
|
|
15
|
+
gate cannot distinguish:
|
|
16
|
+
|
|
17
|
+
- A 500-line skill with **one** 10-step procedure (legitimate) vs a
|
|
18
|
+
500-line skill with **ten** independent procedures (split candidate).
|
|
19
|
+
- A 1700-word command that **delegates** to a cluster (legitimate
|
|
20
|
+
orchestrator) vs a 1700-word command that **inlines** the work.
|
|
21
|
+
- A 60-line rule whose body is a **verbatim Iron-Law block**
|
|
22
|
+
(legitimate) vs a 60-line rule that is **prose explanation**
|
|
23
|
+
(split candidate).
|
|
24
|
+
|
|
25
|
+
The structural model replaces the size threshold with four primitives.
|
|
26
|
+
|
|
27
|
+
## Primitives
|
|
28
|
+
|
|
29
|
+
### 1. Density score (0.0 – 1.0)
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
density = structured_lines / total_non_blank_lines
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`structured_lines` = lines inside fenced blocks + markdown-table rows
|
|
36
|
+
+ bullet-list lines + numbered-list lines + section-heading lines.
|
|
37
|
+
Higher = more structured (catalogue, table, code, list); lower =
|
|
38
|
+
prose-dominant.
|
|
39
|
+
|
|
40
|
+
### 2. Multi-workflow detector (skills only)
|
|
41
|
+
|
|
42
|
+
Skills with **≥ 2 `## Procedure`** (or `## Procedure: <name>`)
|
|
43
|
+
sections ship multiple independently invocable procedures. Combined
|
|
44
|
+
with size, this is the cluster-split signal.
|
|
45
|
+
|
|
46
|
+
### 3. Delegation detector (commands only)
|
|
47
|
+
|
|
48
|
+
Command has a delegation signal when **either** holds:
|
|
49
|
+
|
|
50
|
+
- frontmatter declares `cluster:` or `routes_to:`
|
|
51
|
+
- body contains ≥ 3 markdown links to other `.md` files
|
|
52
|
+
|
|
53
|
+
Absence of both signals on a large command = inlined logic.
|
|
54
|
+
|
|
55
|
+
### 4. Iron-Law block detector (rules only)
|
|
56
|
+
|
|
57
|
+
A fenced block is an Iron-Law block when its body has **≥ 30
|
|
58
|
+
alphabetical characters** with **≥ 60 % uppercase** across **≥ 1
|
|
59
|
+
non-empty line**. The 30-character floor filters single ALL-CAPS
|
|
60
|
+
markers (`OK`, `WIP`); the 60 % uppercase floor catches verbatim
|
|
61
|
+
imperatives (`NEVER COMMIT.`).
|
|
62
|
+
|
|
63
|
+
## Phase 1 calibration (2026-05-08)
|
|
64
|
+
|
|
65
|
+
Sweep covered all 310 lintable artifacts via
|
|
66
|
+
[`scripts/measure_density.py`](../../scripts/measure_density.py); raw
|
|
67
|
+
data lives at `agents/.density-snapshot.jsonl` (local-only — re-run
|
|
68
|
+
`python3 scripts/measure_density.py --root .agent-src --jsonl
|
|
69
|
+
agents/.density-snapshot.jsonl` to regenerate).
|
|
70
|
+
|
|
71
|
+
| Type | Count | Avg density | Median | Bucket [0.4-0.6] | Bucket [0.6-1.0] |
|
|
72
|
+
|---|---|---|---|---|---|
|
|
73
|
+
| skill | 142 | 0.76 | 0.78 | 22 | 119 |
|
|
74
|
+
| command | 103 | 0.59 | 0.57 | 46 | 45 |
|
|
75
|
+
| rule | 58 | 0.47 | 0.48 | 25 | 11 |
|
|
76
|
+
| persona | 7 | 0.38 | 0.38 | 1 | 0 |
|
|
77
|
+
|
|
78
|
+
Iron-Law detector recall on 9 canonical Iron-Law rules: **8 / 9** (all
|
|
79
|
+
except `agent-authority`, which uses a markdown-table index instead of
|
|
80
|
+
a fenced block — correct miss).
|
|
81
|
+
|
|
82
|
+
`quality-tools` (411 lines, single workflow): density **0.83**, single
|
|
83
|
+
procedure → no warning under the new model. ✓ roadmap success criterion.
|
|
84
|
+
|
|
85
|
+
`optimize/augmentignore.md` (1679 words): delegation signal **present**
|
|
86
|
+
(frontmatter `routes_to:`) → no warning under the new model. ✓ roadmap
|
|
87
|
+
success criterion.
|
|
88
|
+
|
|
89
|
+
Of 13 commands ≥ 1000 words, only **2** lack a delegation signal —
|
|
90
|
+
both are candidates for Phase 4.1 review (`compress.md`,
|
|
91
|
+
`project-analyze.md`; the latter has density 0.86, exempt under the
|
|
92
|
+
density-AND-delegation gate).
|
|
93
|
+
|
|
94
|
+
## Warn rules (shipped Phase 3, 2026-05-08)
|
|
95
|
+
|
|
96
|
+
| Artifact | Warn condition |
|
|
97
|
+
|---|---|
|
|
98
|
+
| **skill** | `lines > 400` AND (`density < 0.6` OR `procedures ≥ 2`) |
|
|
99
|
+
| **command** | `words > 1000` AND no delegation signal AND `density < 0.65` |
|
|
100
|
+
| **rule** | `lines > 60` AND `density < 0.5` AND `iron_law_blocks == 0` |
|
|
101
|
+
|
|
102
|
+
The 200-line rule **error** stays unconditional. No new frontmatter
|
|
103
|
+
keys ship — the four structural primitives are the contract.
|
|
104
|
+
|
|
105
|
+
Calibration sweep on the 2026-05-08 corpus (310 artifacts):
|
|
106
|
+
|
|
107
|
+
| Type | Old warns | New warns | New band | Δ |
|
|
108
|
+
|---|---|---|---|---|
|
|
109
|
+
| rule | 23 | 2 | 3.4 % | −91 % |
|
|
110
|
+
| skill | 2 | 1 | 0.7 % | −50 % |
|
|
111
|
+
| command | 9 | 1 | 1.0 % | −89 % |
|
|
112
|
+
| **total** | **34** | **4** | **1.3 %** | **−88 %** |
|
|
113
|
+
|
|
114
|
+
Pass rate: 186 → 209 (`pass`); 124 → 101 (`pass_with_warnings`); 0
|
|
115
|
+
errors. Each remaining warning is a genuine structural defect:
|
|
116
|
+
|
|
117
|
+
- `compress.md` (1569 words, density 0.58, no delegation signal) —
|
|
118
|
+
inlined logic in a non-orchestrator command.
|
|
119
|
+
- `artifact-drafting-protocol.md` rule (65 lines, density 0.37, no
|
|
120
|
+
Iron-Law block) — prose-dominant long rule.
|
|
121
|
+
- `minimal-safe-diff.md` rule (69 lines, density 0.41, no Iron-Law
|
|
122
|
+
block) — prose-dominant long rule.
|
|
123
|
+
- `ai-council/SKILL.md` (525 lines, density 0.37) — orchestrator
|
|
124
|
+
skill below the density floor; refactor candidate.
|
|
125
|
+
|
|
126
|
+
Roadmap target ≤ 10 % rule-warning band. ✓ (3.4 %)
|
|
127
|
+
|
|
128
|
+
## Frontmatter contract — Phase 2 decisions (2026-05-08)
|
|
129
|
+
|
|
130
|
+
AI Council run (Claude Sonnet 4.5 + GPT-4o, 2 rounds, $0.046; raw
|
|
131
|
+
transcript local-only per the council-references convention).
|
|
132
|
+
|
|
133
|
+
**Key 1 — `iron_law:` frontmatter — DECISION: Option A (auto-detect, no tag).**
|
|
134
|
+
|
|
135
|
+
Both council members converged on Option A. The detector recall on
|
|
136
|
+
the canonical 9-rule set is 8 / 9, and the one miss
|
|
137
|
+
(`agent-authority`) uses a markdown-table priority index that is
|
|
138
|
+
**not** an Iron-Law imperative — its body delegates to the rules it
|
|
139
|
+
indexes. The detector is correct to skip it. No `iron_law:`
|
|
140
|
+
frontmatter key is added.
|
|
141
|
+
|
|
142
|
+
**Key 2 — `density_exempt:` frontmatter — DECISION: Option A (no flag).**
|
|
143
|
+
|
|
144
|
+
Council split:
|
|
145
|
+
|
|
146
|
+
- Sonnet 4.5: Reject any flag. Add **type-based density floors**
|
|
147
|
+
(orchestrators 0.35, executors 0.6, imperatives 0.4) so the
|
|
148
|
+
detector classifies structurally instead of relying on author
|
|
149
|
+
declarations.
|
|
150
|
+
- GPT-4o: Adopt Option C (`density_exempt: true` + required
|
|
151
|
+
`density_exempt_reason:`) with periodic re-audit.
|
|
152
|
+
|
|
153
|
+
Sonnet's structural argument carries: an escape hatch for a 1-in-142
|
|
154
|
+
corpus case ships maintenance debt across every future artifact that
|
|
155
|
+
brushes the boundary. The single failing skill (`ai-council`,
|
|
156
|
+
density 0.36) is a documentation-heavy reference-orchestrator and is
|
|
157
|
+
left as a Phase-4 review candidate — either restructure the skill or
|
|
158
|
+
add orchestrator-aware type-floors as a follow-up. No
|
|
159
|
+
`density_exempt:` key is added in Phase 3.
|
|
160
|
+
|
|
161
|
+
The Phase-3 implementation therefore ships **zero new frontmatter
|
|
162
|
+
keys** — the structural primitives are the contract.
|
|
163
|
+
|
|
164
|
+
## Out of scope
|
|
165
|
+
|
|
166
|
+
- Hard error thresholds beyond the 200-line rule cap.
|
|
167
|
+
- Automatic refactoring of artifacts that fail the new model.
|
|
168
|
+
- Cross-artifact dependency counts (a skill linking 4 other skills is
|
|
169
|
+
`routes_to` doing its job, not a defect).
|
|
170
|
+
|
|
171
|
+
## References
|
|
172
|
+
|
|
173
|
+
- `scripts/measure_density.py` — Phase 1.1 measurement tool.
|
|
174
|
+
- `agents/.density-snapshot.jsonl` — full per-artifact metrics
|
|
175
|
+
(gitignored, re-run the measurement script to regenerate).
|
|
176
|
+
- `scripts/skill_linter.py` — structural-model implementation
|
|
177
|
+
(`_density_score`, `_count_procedure_sections`,
|
|
178
|
+
`_command_delegation_signal`, `_iron_law_blocks`).
|
|
179
|
+
- `docs/guidelines/agent-infra/size-and-scope.md` — guideline now
|
|
180
|
+
describes the structural model; Option 2 transition notes removed.
|
package/docs/getting-started.md
CHANGED
|
@@ -115,7 +115,7 @@ Your agent is now:
|
|
|
115
115
|
- **Respecting your codebase** — no conflicting patterns
|
|
116
116
|
- **Following standards** — consistent code quality
|
|
117
117
|
|
|
118
|
-
This is enforced automatically by
|
|
118
|
+
This is enforced automatically by 60 rules. No configuration needed.
|
|
119
119
|
|
|
120
120
|
---
|
|
121
121
|
|