@event4u/agent-config 10.3.0 → 11.0.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/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +147 -0
- package/README.md +1 -1
- package/dist/agent-src/commands/analyze.md +2 -1
- package/dist/agent-src/commands/council/debate.md +13 -4
- package/dist/agent-src/commands/council/default.md +26 -11
- package/dist/agent-src/commands/council.md +1 -1
- package/dist/agent-src/commands/design-system/capture.md +44 -0
- package/dist/agent-src/commands/design-system/generate.md +75 -0
- package/dist/agent-src/commands/design-system/import.md +63 -0
- package/dist/agent-src/commands/design-system.md +66 -0
- package/dist/agent-src/commands/pr/create.md +51 -26
- package/dist/agent-src/commands/worktree/create.md +5 -3
- package/dist/agent-src/rules/settings-ask-protocol.md +14 -9
- package/dist/agent-src/skills/ai-council/SKILL.md +24 -6
- package/dist/agent-src/skills/corpus-grounding/SKILL.md +12 -1
- package/dist/agent-src/skills/corpus-grounding/scripts/decision_engine.ts +215 -7
- package/dist/agent-src/skills/corpus-grounding/scripts/ground.ts +39 -1
- package/dist/agent-src/skills/design-intelligence/ATTRIBUTION.md +19 -2
- package/dist/agent-src/skills/design-intelligence/data/manifest.json +36 -1
- package/dist/agent-src/skills/design-intelligence/data/motion.csv +17 -0
- package/dist/agent-src/skills/design-system-capture/SKILL.md +9 -0
- package/dist/agent-src/skills/design-system-capture/references/design-system-json.md +70 -0
- package/dist/agent-src/skills/git-workflow/SKILL.md +9 -3
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +9 -6
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +25 -21
- package/dist/agent-src/templates/agent-settings.md +0 -1
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/scripts/work_engine/directives/ui/design.ts +4 -1
- package/dist/cli-delegate/{chunk-BV3WR67D.js → chunk-55WZN5VF.js} +3 -6
- package/dist/cli-delegate/{chunk-X3VOARZD.js → chunk-L565YFXH.js} +3 -3
- package/dist/cli-delegate/{chunk-JMQZ7MM5.js → chunk-MNWRDMR5.js} +1 -1
- package/dist/cli-delegate/{chunk-IR3IVRVC.js → chunk-NLP54U3J.js} +2 -1
- package/dist/cli-delegate/{chunk-FV34EGEX.js → chunk-NN4KW4HZ.js} +1 -1
- package/dist/cli-delegate/{chunk-6ENSXSBW.js → chunk-PPQO4NGR.js} +1 -1
- package/dist/cli-delegate/chunk-RLN73PR5.js +157 -0
- package/dist/cli-delegate/{chunk-6LOPHJLD.js → chunk-RYNADUFG.js} +1 -1
- package/dist/cli-delegate/{chunk-I5EAFRII.js → chunk-ZPSXJTLI.js} +2 -154
- package/dist/cli-delegate/cmd_analyze_session.js +1 -1
- package/dist/cli-delegate/cmd_brand_status.js +1 -1
- package/dist/cli-delegate/cmd_conformance.js +673 -215
- package/dist/cli-delegate/cmd_doctor.js +2 -2
- package/dist/cli-delegate/cmd_explain.js +2 -2
- package/dist/cli-delegate/cmd_export.js +4 -4
- package/dist/cli-delegate/cmd_handoff.js +10 -8
- package/dist/cli-delegate/cmd_mcp_available.js +1 -1
- package/dist/cli-delegate/cmd_migrate.js +2 -2
- package/dist/cli-delegate/cmd_packs_active.js +2 -2
- package/dist/cli-delegate/cmd_prune.js +4 -4
- package/dist/cli-delegate/cmd_route_audit.js +2 -2
- package/dist/cli-delegate/cmd_route_explain.js +1 -1
- package/dist/cli-delegate/cmd_session_recycle.js +6 -4
- package/dist/cli-delegate/cmd_settings_get.js +1 -1
- package/dist/cli-delegate/cmd_settings_migrate.js +4 -4
- package/dist/cli-delegate/cmd_settings_set.js +1 -1
- package/dist/cli-delegate/cmd_sync.js +4 -4
- package/dist/cli-delegate/cmd_uninstall.js +4 -4
- package/dist/cli-delegate/cmd_update.js +1 -1
- package/dist/cli-delegate/cmd_upgrade.js +1 -1
- package/dist/cli-delegate/cmd_validate.js +4 -4
- package/dist/cli-delegate/cmd_versions.js +1 -1
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +127 -22
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +3 -3
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +9 -5
- package/dist/discovery/trust-report.md +2 -2
- package/dist/discovery/workspaces.json +8 -4
- package/dist/hooks/dispatch.js +994 -399
- package/dist/install/install.mjs +5 -7
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +1104 -593
- package/dist/scripts/_lib/agent_settings.js +8 -0
- package/dist/scripts/_lib/agent_settings.js.map +1 -1
- package/dist/server/schemas/settings.js +3 -4
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/ui/assets/{index-5fXOHoVh.js → index-B0aMJnuz.js} +2 -2
- package/dist/ui/assets/{index-5fXOHoVh.js.map → index-B0aMJnuz.js.map} +1 -1
- package/dist/ui/index.html +1 -1
- package/docs/contracts/settings-classes.md +12 -9
- package/package.json +1 -1
- package/src/agent-src/templates/scripts/work_engine/directives/ui/design.ts +4 -1
- package/src/config/agent-settings.template.yml +15 -18
- package/src/config/gate-coverage.yml +33 -2
- package/src/config/gate-violation-baselines.json +2 -2
- package/src/config/pack-size-budget.json +3 -2
- package/src/scripts/_lib/agent_settings.ts +8 -0
- package/src/scripts/_lib/design_system_import.ts +987 -0
- package/src/scripts/check_branch_freshness.ts +238 -6
- package/src/scripts/design_system_import.ts +264 -0
- package/src/scripts/external_sources_denylist.json +7 -2
- package/src/scripts/hook_manifest.yaml +71 -2
- package/src/scripts/hooks/concern_registry.ts +4 -0
- package/src/scripts/hooks/dispatch_hook.ts +10 -0
- package/src/scripts/hooks/host_semantics.ts +2 -0
- package/src/scripts/hooks/spawn_guard_shadow_hook.ts +212 -0
- package/src/scripts/hooks/subagent_ledger_hook.ts +723 -0
- package/src/scripts/hooks/turn_end_gate_hook.ts +39 -2
- package/src/scripts/lint_hook_manifest.ts +2 -0
- package/src/scripts/lint_rule_skill_pack_reach.ts +194 -13
- package/src/scripts/session_register_hook.ts +120 -10
- package/src/server/schemas/settings.ts +3 -6
- package/tests/fixtures/hooks/subagent_start.json +7 -0
- package/tests/fixtures/hooks/subagent_stop.json +8 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Bootstrap shim for the event4u agent-config suite. This plugin ships ONLY the dispatcher hooks plus one install-pointer skill — ALL content (skills, rules, commands) is installed via `npx -y @event4u/agent-config init`, which writes the file projection AND registers the same hooks in ~/.claude/settings.json. DEPRECATED as a content channel; kept so the marketplace listing stays discoverable and existing installs keep working hooks.",
|
|
9
|
-
"version": "
|
|
9
|
+
"version": "11.0.0",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
package/CHANGELOG.md
CHANGED
|
@@ -348,6 +348,153 @@ Entry-shape contract: [`docs/contracts/CHANGELOG-conventions.md`](docs/contracts
|
|
|
348
348
|
> that forces a new era split (`# Era: 10.4.x`, etc.) — see
|
|
349
349
|
> [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
|
|
350
350
|
|
|
351
|
+
## [11.0.0](https://github.com/event4u-app/agent-config/compare/10.4.0...11.0.0) (2026-08-13)
|
|
352
|
+
|
|
353
|
+
### Release highlights
|
|
354
|
+
|
|
355
|
+
<!-- Curated head: fill before merge, keep it under 10 lines, and leave `_none_` where it is genuinely the answer. The generated log below is unchanged. -->
|
|
356
|
+
- **Behaviour changes:** _auto-derived, rewrite before merge:_ rule/schema diffs, breaking commits or removed public surface in 7d4af2c, 9e4cc35.
|
|
357
|
+
- **Default changes + migration:** _none_
|
|
358
|
+
- **Security and correctness:** _none_
|
|
359
|
+
- **Honest nulls:** _none_
|
|
360
|
+
- **Known limitations:** _none_
|
|
361
|
+
|
|
362
|
+
### BREAKING CHANGES
|
|
363
|
+
|
|
364
|
+
* **settings:** delete worktrees.mode — worktree creation is instruction-only ([9e4cc35](https://github.com/event4u-app/agent-config/commit/9e4cc35513a69b9e107b639ff9dc78622d42b09e))
|
|
365
|
+
|
|
366
|
+
### Features
|
|
367
|
+
|
|
368
|
+
* **council:** replace the per-run spend confirmation with a ceiling ([945d6c0](https://github.com/event4u-app/agent-config/commit/945d6c08b6e9a5519858fa6f4bb6ddece461621b))
|
|
369
|
+
* **gates:** resolve the PR base before judging branch freshness ([f77da9a](https://github.com/event4u-app/agent-config/commit/f77da9a6618d0ef982cd4b9bb83201179e26e818))
|
|
370
|
+
* **grounding:** the three 1-10 design dials, re-derived not ported ([1516fa8](https://github.com/event4u-app/agent-config/commit/1516fa8adda1c772a71062fb1950598f336b1c5e))
|
|
371
|
+
* **corpus:** vendor motion.csv and a gsap search domain; decline the rest ([0a82fa2](https://github.com/event4u-app/agent-config/commit/0a82fa2128ffdbc3273b85efd83152ead8e1da28))
|
|
372
|
+
|
|
373
|
+
### Bug Fixes
|
|
374
|
+
|
|
375
|
+
* **settings:** correct the class-count summaries after the deletion ([b1cf141](https://github.com/event4u-app/agent-config/commit/b1cf1419366bd1a8bc338ce4a11e310724143627))
|
|
376
|
+
* **session-register:** gate the context block on a real collision ([c1dcf0e](https://github.com/event4u-app/agent-config/commit/c1dcf0e599e709f465903805a3f8147cc079fecd))
|
|
377
|
+
* **council:** align the command surfaces with the ceiling bound ([2e3ad3f](https://github.com/event4u-app/agent-config/commit/2e3ad3f74947fba2ff73c2017515e5954b19cefb))
|
|
378
|
+
* **session-register:** anchor the record on the session checkout, not the chdir target ([7b64d4e](https://github.com/event4u-app/agent-config/commit/7b64d4e3d0db42e6f177692cdf2c47eba3634d72))
|
|
379
|
+
* **review:** put the skip declaration on one line ([d6d3736](https://github.com/event4u-app/agent-config/commit/d6d3736fef1509eda589dbb8f36a3b806f30bcf3))
|
|
380
|
+
* **docs:** drop maintainer-only invocations from the shipped surfaces ([4e89881](https://github.com/event4u-app/agent-config/commit/4e8988172a773be43b8a9b3d93d3676f76fc5adf))
|
|
381
|
+
* **roadmap:** relocate distillation's two maintainer-gated items and archive it ([c19fcf6](https://github.com/event4u-app/agent-config/commit/c19fcf6072f499a5e0b5149985e238ee8eb5511e))
|
|
382
|
+
* **corpus:** advance last_checked in the manifest too, not only in ATTRIBUTION ([ca40b92](https://github.com/event4u-app/agent-config/commit/ca40b92b83db4a1951b4dc1328b21ecfdf7919f4))
|
|
383
|
+
* **provenance:** correct a falsified compliance record, and shrink two diffs ([88e095d](https://github.com/event4u-app/agent-config/commit/88e095d8342106111bd36d69f410f39646deb558))
|
|
384
|
+
* **grounding:** make the dials reach a reader, and make the variance claim true ([af919d3](https://github.com/event4u-app/agent-config/commit/af919d30d91a2c379819135fa7e34446a7da33a3))
|
|
385
|
+
* **gates:** carve out the two license-attribution surfaces for code borrows ([2a969a0](https://github.com/event4u-app/agent-config/commit/2a969a0c4835e9a4db031d01e70ebcb5e0bb051d))
|
|
386
|
+
* **records:** close all seven R2 findings, including a false claim of mine ([5ca4290](https://github.com/event4u-app/agent-config/commit/5ca4290795560d4fca8a054db6439e39e5bb6b42))
|
|
387
|
+
|
|
388
|
+
### Documentation
|
|
389
|
+
|
|
390
|
+
* **skills:** hardcode the instruction-only worktree rule across every surface ([7d4af2c](https://github.com/event4u-app/agent-config/commit/7d4af2c9b51714fe3a6ae636b379f835f7dc0cbc))
|
|
391
|
+
* **adr:** record ADR-229 — worktree creation is instruction-only ([b20e3a5](https://github.com/event4u-app/agent-config/commit/b20e3a56a05402d95f88a66ade4075b3d211e53d))
|
|
392
|
+
* **adr:** record ADR-230 — the council spend bound is a ceiling ([1f35330](https://github.com/event4u-app/agent-config/commit/1f35330a6203c336a9ddced6593cf7f8e09fdbdc))
|
|
393
|
+
* **review:** declare the completion-review skip for a docs-only branch ([3ad11bf](https://github.com/event4u-app/agent-config/commit/3ad11bf5109088bca10a80954dffbd280e2586c1))
|
|
394
|
+
* **roadmap:** close Phase 0 Step 3 and re-scope Phases 1 and 2 on the measurement ([d9a888e](https://github.com/event4u-app/agent-config/commit/d9a888e793977be05af7c2c2b345655956e3eb8e))
|
|
395
|
+
* **evidence:** reproduce #58109 and record what the ledger cannot see ([21b8d2d](https://github.com/event4u-app/agent-config/commit/21b8d2dfbcd0dff415bfda7306788a86f3b3809b))
|
|
396
|
+
* **review:** re-bind the skip declaration after merging main ([3e03c75](https://github.com/event4u-app/agent-config/commit/3e03c75c4465ceac9d02bdfb76e8ad0091387965))
|
|
397
|
+
* **git:** route the pre-PR freshness check through the gate ([c0edb1f](https://github.com/event4u-app/agent-config/commit/c0edb1f36c001087d1118ef1fac3e7cb5e10f333))
|
|
398
|
+
* **review:** re-scope the skip declaration after the main merge ([7184ae8](https://github.com/event4u-app/agent-config/commit/7184ae89ec9e9385aca59ecba9bdd2eacc336c08))
|
|
399
|
+
* **review:** re-bind the findings artefact after the corpus-staleness fix ([47131d4](https://github.com/event4u-app/agent-config/commit/47131d403539cdaebf67e7b514267562835ae5c1))
|
|
400
|
+
* **review:** re-bind the findings artefact to the post-fix scope ([6a48f11](https://github.com/event4u-app/agent-config/commit/6a48f11ba78b1086209dfa06928bfe1f7addc743))
|
|
401
|
+
* **roadmap:** correct three overclaims, re-depth the archive links, stale watchlist ([c4e95d3](https://github.com/event4u-app/agent-config/commit/c4e95d36a6efcaf44f1aa693816806111e823165))
|
|
402
|
+
* **review:** bind the R2 findings for feat-design-system-onramp-blockers ([2092734](https://github.com/event4u-app/agent-config/commit/2092734d3438ac2647bdcdde5faf05be49b7b0dc))
|
|
403
|
+
* **review:** re-bind the artefact after the third main merge ([3b4bdb6](https://github.com/event4u-app/agent-config/commit/3b4bdb6a08f46181d869a2d4bd4dfb16af3e4349))
|
|
404
|
+
* **review:** re-bind the R2 artefact after the fix pass ([5bfc84c](https://github.com/event4u-app/agent-config/commit/5bfc84c8bfea61a9522f21f8cbb7f72acdcc7450))
|
|
405
|
+
* **council:** record the two unblocking decisions, and their honest standing ([8cd7182](https://github.com/event4u-app/agent-config/commit/8cd71823c1b1ce3c6002d16cb444d1b96b70f3fa))
|
|
406
|
+
* **review:** the real R2 review, replacing the skip — 7 findings ([834e7f1](https://github.com/event4u-app/agent-config/commit/834e7f10f26e0d93911f0c92d0720f72c8ee0fc2))
|
|
407
|
+
|
|
408
|
+
### Tests
|
|
409
|
+
|
|
410
|
+
* **settings:** re-point two vacuous assertions and assert the deletion ([933f320](https://github.com/event4u-app/agent-config/commit/933f3208efd38a22854e147e7d3c7ddee2bacde1))
|
|
411
|
+
|
|
412
|
+
### Chores
|
|
413
|
+
|
|
414
|
+
* **roadmap:** regenerate the dashboard after the main merge ([2653222](https://github.com/event4u-app/agent-config/commit/26532222c07d0784f1f608a0fc4185ed9b02274b))
|
|
415
|
+
* **roadmap:** regenerate the dashboard after the third main merge ([b271d07](https://github.com/event4u-app/agent-config/commit/b271d078b70d3c177571fc152cc00315b5780aba))
|
|
416
|
+
* **roadmap:** close design-system-onramp at 12/12 and archive it ([14bce9c](https://github.com/event4u-app/agent-config/commit/14bce9c59b193631737f7b2a19157fd53d4e6de4))
|
|
417
|
+
|
|
418
|
+
Tests: 13818 (+50 since 10.4.0)
|
|
419
|
+
|
|
420
|
+
## [10.4.0](https://github.com/event4u-app/agent-config/compare/10.3.0...10.4.0) (2026-08-13)
|
|
421
|
+
|
|
422
|
+
### Release highlights
|
|
423
|
+
|
|
424
|
+
<!-- Curated head: fill before merge, keep it under 10 lines, and leave `_none_` where it is genuinely the answer. The generated log below is unchanged. -->
|
|
425
|
+
- **Behaviour changes:** _none_
|
|
426
|
+
- **Default changes + migration:** _none_
|
|
427
|
+
- **Security and correctness:** _none_
|
|
428
|
+
- **Honest nulls:** _auto-derived, rewrite before merge:_ commits carrying an honest-null marker in 5a9f530.
|
|
429
|
+
- **Known limitations:** _none_
|
|
430
|
+
|
|
431
|
+
### Features
|
|
432
|
+
|
|
433
|
+
* **commands:** /design-system cluster — three doors onto machinery that already ships ([e56eaf4](https://github.com/event4u-app/agent-config/commit/e56eaf4a5496bed575e421df997ad60bd2cfac08))
|
|
434
|
+
* **scripts:** three-lane adapter into the design-system.json contract ([d1dd006](https://github.com/event4u-app/agent-config/commit/d1dd00610d4c2c97aa5adf0fa7baa120167b6aa2))
|
|
435
|
+
* **hooks:** an open subagent dispatch is an explicit turn-end allow ([39daf4e](https://github.com/event4u-app/agent-config/commit/39daf4e2c3ba70fa4e43b57fc82bc1bf9eb5b613))
|
|
436
|
+
* **hooks:** ship Phase 3 runaway containment in shadow posture ([b9efa4e](https://github.com/event4u-app/agent-config/commit/b9efa4ec618b3f26c1c07a8eb335866545c4274c))
|
|
437
|
+
* **hooks:** register subagent lifecycle events and bind the ledger ([a6a4023](https://github.com/event4u-app/agent-config/commit/a6a4023529074069f03f8542d0513ee77f3adfde))
|
|
438
|
+
* **hooks:** add the capture-only subagent-ledger concern ([f393ec4](https://github.com/event4u-app/agent-config/commit/f393ec4686422d247bc5862cf13e04459d64ace5))
|
|
439
|
+
* **gates:** adopt the self-test harness in lint_rule_skill_pack_reach ([a758153](https://github.com/event4u-app/agent-config/commit/a7581533b8d5ed8672f985337dc87d21508fa451))
|
|
440
|
+
|
|
441
|
+
### Bug Fixes
|
|
442
|
+
|
|
443
|
+
* **design-system:** drop maintainer-only invocations from shipped surfaces ([122760a](https://github.com/event4u-app/agent-config/commit/122760aad5f2a6f4a19c7571da5fcfb732e5e1a8))
|
|
444
|
+
* **scripts:** close nine silent-loss paths in the design-system import adapter ([ed4c7e3](https://github.com/event4u-app/agent-config/commit/ed4c7e39ad3bd732b034c24952460332bb7cb503))
|
|
445
|
+
* **docs:** regenerate proof.md after the command-count change ([c5cb075](https://github.com/event4u-app/agent-config/commit/c5cb07529d8e1903ad15bbf300ce4156fb5a11b2))
|
|
446
|
+
* **ci:** wire check_gate_coverage locally too, and correct three numbers ([a62745c](https://github.com/event4u-app/agent-config/commit/a62745cea249ace8e89a453e9f5950e7179721ce))
|
|
447
|
+
* **ci:** wire the two meta-gates, re-anchor the parity floor ([ea13fc7](https://github.com/event4u-app/agent-config/commit/ea13fc77f2cceecc127933b7f56a5fbcc5a07709))
|
|
448
|
+
* **commands:** register analyze:conformance in the table it already belonged in ([2c307f3](https://github.com/event4u-app/agent-config/commit/2c307f392061eb4ff24a15b1c29b7ddc5c162b71))
|
|
449
|
+
* **hooks:** close the round-2 completion-review findings ([a3de33b](https://github.com/event4u-app/agent-config/commit/a3de33beacff72725b48e4ebdd0bb58b4258bee1))
|
|
450
|
+
* **contracts:** drop the roadmap link from the activation policy ([4d49029](https://github.com/event4u-app/agent-config/commit/4d49029266a04d8d025e110be0a574553634acea))
|
|
451
|
+
* **roadmap:** sync the Phase 2 record with the shipped floors, and own the red ([f98d9d5](https://github.com/event4u-app/agent-config/commit/f98d9d52998c016ad865334ffdf3964b4e01a8e3))
|
|
452
|
+
* **hooks:** close the twelve R2 completion-review findings in the subagent ledger ([4415ff5](https://github.com/event4u-app/agent-config/commit/4415ff54c2e8f47375aeeada5e5d9776eccefa86))
|
|
453
|
+
* **gates:** emit a parseable scan line, and refuse a valueless --root ([8ec2334](https://github.com/event4u-app/agent-config/commit/8ec2334a526572dd549b571f40bf9a24928dbd35))
|
|
454
|
+
* **refs:** re-point the archived roadmap and record a two-gate contradiction ([9671002](https://github.com/event4u-app/agent-config/commit/9671002114d27fcbd112d3f77d79dfaacc94c821))
|
|
455
|
+
* **roadmap:** tag the corpus-scoping roadmap lightweight, not standard ([b6676b0](https://github.com/event4u-app/agent-config/commit/b6676b09f87c48aa083feb98f2ff7343c837bd18))
|
|
456
|
+
|
|
457
|
+
### Documentation
|
|
458
|
+
|
|
459
|
+
* **review:** re-bind the findings artefact after the consumer-path fix ([fcb8ab4](https://github.com/event4u-app/agent-config/commit/fcb8ab408c9b2fbfd51d98e261ead5c572e5cf7a))
|
|
460
|
+
* **review:** re-bind the findings artefact after the second main merge ([cfd2695](https://github.com/event4u-app/agent-config/commit/cfd2695162708c3db80b699667dbc7108c9e057c))
|
|
461
|
+
* **review:** re-bind the findings artefact to the post-fix scope ([2674827](https://github.com/event4u-app/agent-config/commit/267482700c5d00db465722005888f823d50acc4c))
|
|
462
|
+
* **review:** re-bind the skip declaration to the merged scope ([6518a6a](https://github.com/event4u-app/agent-config/commit/6518a6a12a69bc640c70febcf36d176ae05b8992))
|
|
463
|
+
* **design-system:** correct two claims the review showed were too broad ([49b6e47](https://github.com/event4u-app/agent-config/commit/49b6e4741aa21a18c72c3f51f9775981f980bb1f))
|
|
464
|
+
* **review:** bind the R2 completion-review findings for feat-design-system-onramp ([3be0b77](https://github.com/event4u-app/agent-config/commit/3be0b771bf99816ab4b0a7d9d69c51ea8e41a848))
|
|
465
|
+
* **roadmap:** close road-to-local-only-gate-reds and archive it ([cfeeacc](https://github.com/event4u-app/agent-config/commit/cfeeacc81c2b09f18d7e5fcfd7a312b05dd0b209))
|
|
466
|
+
* **roadmap:** archive road-to-august-program on its own falsifier ([3fd5a77](https://github.com/event4u-app/agent-config/commit/3fd5a776750447e6967137be31ee76a6e1c7b4b4))
|
|
467
|
+
* **roadmap:** resolve the three release-integrity blockers and archive it ([9d66d73](https://github.com/event4u-app/agent-config/commit/9d66d73f45b28ed8c17b842ca0f730cf11ca614d))
|
|
468
|
+
* **contract:** publish the curated-head recurrence rate, (b) stands ([310b49b](https://github.com/event4u-app/agent-config/commit/310b49b1d4b5f8fe7a12d6199c84429257cc4e0c))
|
|
469
|
+
* **adr:** ADR-228 — the global install does not emit paths: ([d9bcbf5](https://github.com/event4u-app/agent-config/commit/d9bcbf5c46e7d4c100f1bceabe429c0df6b42990))
|
|
470
|
+
* **adr:** accept ADR-221, the host-native-first ladder ([a55a37f](https://github.com/event4u-app/agent-config/commit/a55a37f6f88eb08326d56a0562c22324fa1746dc))
|
|
471
|
+
* **review:** re-bind the round-2 findings after the fix pass ([f1403f1](https://github.com/event4u-app/agent-config/commit/f1403f1896b4570b6eb83c9ac0f1c28b1d504914))
|
|
472
|
+
* **review:** bind round 2 of the completion review, and keep round 1 ([7914694](https://github.com/event4u-app/agent-config/commit/7914694b9055c4b47caf5c01c49699cb1aa77f01))
|
|
473
|
+
* **design-system:** name the supply path where the contract is refused ([0bef92d](https://github.com/event4u-app/agent-config/commit/0bef92d6314c82978bce578effaff7e43e24ea6c))
|
|
474
|
+
* **roadmap:** record the Phase 3 council pass and flip its three steps ([e1c99ad](https://github.com/event4u-app/agent-config/commit/e1c99ad25ece149cd80c0879957b01702148cc00))
|
|
475
|
+
* **contracts:** write the concern activation policy three roadmaps cited and none wrote ([130a9d9](https://github.com/event4u-app/agent-config/commit/130a9d98ad691888a3d41bec71f170e8e6d853c3))
|
|
476
|
+
* **review:** re-bind the round-2 artefact to the fixed scope ([1cba2b1](https://github.com/event4u-app/agent-config/commit/1cba2b111a3759d565ec0071ee1607c7c0d6bbec))
|
|
477
|
+
* **review:** round 2 of the completion review, over the merged scope ([57e4fc5](https://github.com/event4u-app/agent-config/commit/57e4fc58491b80ce70f994963fbcaa6fbe972be4))
|
|
478
|
+
* **review:** re-bind the findings artefact after the fix pass ([b58fcd5](https://github.com/event4u-app/agent-config/commit/b58fcd59ea10b899d6feaa1b7afa632c437f3d77))
|
|
479
|
+
* **review:** bind the R2 completion-review findings for feat-subagent-lifecycle-integrity ([79b7c8e](https://github.com/event4u-app/agent-config/commit/79b7c8eb27f114ae6d40d6c168fa5c992be1b650))
|
|
480
|
+
* **review:** re-bind the completion-review artefact to the fixed scope ([c714668](https://github.com/event4u-app/agent-config/commit/c71466897e1053bc28387d3da1240a3773534a0b))
|
|
481
|
+
* **review:** R2 completion review for feat-local-only-gate-reds ([3c87378](https://github.com/event4u-app/agent-config/commit/3c87378c83b36da10a82af729ffa224d506716a8))
|
|
482
|
+
* **roadmap:** record the Phase 0/1/5 findings and the Phase 3 stop ([3fc4332](https://github.com/event4u-app/agent-config/commit/3fc433269cc36520bb10e5f08f302cdfdffc5d5a))
|
|
483
|
+
* **review:** declare the completion-review skip for a zero-code-path branch ([ac92f16](https://github.com/event4u-app/agent-config/commit/ac92f1686a44ca8d52cf652fb3c35ec71224d800))
|
|
484
|
+
* **adr:** record that paths scoping is saturated, not a corpus lever ([6c062d9](https://github.com/event4u-app/agent-config/commit/6c062d9d57e290a50b0eb544448e83b8ec03c396))
|
|
485
|
+
* **roadmap:** record the four closed steps, and a fifth red the repair left ([637c009](https://github.com/event4u-app/agent-config/commit/637c00913b9936d5ceb8fe5cdffa8eddd610ef47))
|
|
486
|
+
|
|
487
|
+
### Chores
|
|
488
|
+
|
|
489
|
+
* **dist:** re-project the design-system doc and halt-text changes ([070f4ce](https://github.com/event4u-app/agent-config/commit/070f4ce7b48ca0f206b6fae413a8f529d3f5bf0b))
|
|
490
|
+
* **roadmap:** regenerate the dashboard after the main merge ([54250e3](https://github.com/event4u-app/agent-config/commit/54250e3f6de110ba8881386e6e8c95be38b9b8d4))
|
|
491
|
+
* **roadmap:** close design-system-onramp Phases 1, 2 and 4; file two blockers ([80573dd](https://github.com/event4u-app/agent-config/commit/80573dd7d75ab27d026138e54ef06119daec59e8))
|
|
492
|
+
* **roadmaps:** regenerate the dashboard after the main merge ([d54aba9](https://github.com/event4u-app/agent-config/commit/d54aba956229302c3bc7323ddf8cafd7bd4ccb3c))
|
|
493
|
+
* **roadmap:** regenerate the dashboard after the second main merge ([b1a283b](https://github.com/event4u-app/agent-config/commit/b1a283bb04d9a881aa13495c28f0779557792670))
|
|
494
|
+
* **roadmap:** close always-loaded-corpus-scoping on its honest null ([5a9f530](https://github.com/event4u-app/agent-config/commit/5a9f53009a920ff16b9cc92e39167497a51d92ab))
|
|
495
|
+
|
|
496
|
+
Tests: 13768 (+89 since 10.3.0)
|
|
497
|
+
|
|
351
498
|
## [10.3.0](https://github.com/event4u-app/agent-config/compare/10.2.0...10.3.0) (2026-08-13)
|
|
352
499
|
|
|
353
500
|
### Release highlights
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [](https://www.npmjs.com/package/@event4u/agent-config) [](https://glama.ai/mcp/servers/event4u-app/agent-config) [](https://mcptoplist.com/server/glama%2Fevent4u-app%2Fagent-config)
|
|
6
6
|
|
|
7
|
-
[](dist/agent-src/skills/) [](dist/agent-src/rules/) [](dist/agent-src/skills/) [](dist/agent-src/rules/) [](dist/agent-src/commands/) [](docs/guidelines/) [](dist/agent-src/personas/) [](dist/agent-src/personas/advisors/)
|
|
8
8
|
|
|
9
9
|
**Try it in 30 seconds** — drop one read-only subagent into any repo and watch it gate "done": `@production-validator check this branch is actually done`. No wizard, no lock-in, nothing else installed — the [30-second wedge ↓](#quickstart) is the whole first step. Start at the proof, not the catalog: **[event4u-app.github.io/agent-config/proof/](https://event4u-app.github.io/agent-config/proof/)**.
|
|
10
10
|
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: true
|
|
|
5
5
|
argument-hint: "[postmortem|premortem|decision|near-miss|incident|reference-repo|inbox] [subject]"
|
|
6
6
|
pack: analysis-workbench
|
|
7
7
|
intent: "Analysis dispatcher — classify input by keywords, propose a weighted framework path, let the user pick"
|
|
8
|
-
routes_to: [analyze-postmortem, analyze-premortem, analyze-decision, analyze-near-miss, analyze-incident, analyze-reference-repo, analyze-inbox]
|
|
8
|
+
routes_to: [analyze-postmortem, analyze-premortem, analyze-decision, analyze-near-miss, analyze-incident, analyze-reference-repo, analyze-inbox, analyze-conformance]
|
|
9
9
|
replaces: []
|
|
10
10
|
tier: 1
|
|
11
11
|
visibility: advanced
|
|
@@ -40,6 +40,7 @@ to the chosen sub-command. Never auto-selects silently.
|
|
|
40
40
|
| `/analyze:incident` | `analyze/incident/command.md` | Full incident flow: commander → RCA → post-mortem → memory candidate |
|
|
41
41
|
| `/analyze:reference-repo` | `analyze/reference-repo/command.md` | Deep-dive an external reference repo (competitor, inspiration, peer) → structured comparison + adoption plan |
|
|
42
42
|
| `/analyze:inbox` | `analyze/inbox/command.md` | Deep-dive a LOCAL artifact dropped in `agents/tmp/` (review, prompt, spec, transcript) → claim verification against the current tree + artefact mapping + roadmap |
|
|
43
|
+
| `/analyze:conformance` | `analyze/conformance/command.md` | Audit recent local sessions for rule violations → deterministic scan + subagent passes, root-caused per class, and a roadmap for what is mechanisable |
|
|
43
44
|
|
|
44
45
|
## Dispatch
|
|
45
46
|
|
|
@@ -68,11 +68,20 @@ this automatically when invoked via `debate`). The estimate covers
|
|
|
68
68
|
projection. Surface the projection to the user with a clear note that
|
|
69
69
|
progressive disclosure may stop the debate early.
|
|
70
70
|
|
|
71
|
-
### 4.
|
|
71
|
+
### 4. Spend bound (ask when a billable member has no ceiling)
|
|
72
72
|
|
|
73
|
-
Per [`ai-council` skill §
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
Per [`ai-council` skill § Procedure 3](../../skills/ai-council/SKILL.md)
|
|
74
|
+
and ADR-230, surface the projected total spend in every case, and ask
|
|
75
|
+
only when a billable member is in the fan-out AND both
|
|
76
|
+
`cost_budget.max_total_usd` and `daily_limit_usd` are `0`.
|
|
77
|
+
|
|
78
|
+
A debate multiplies the per-round cost by `N`, so quote the worst case,
|
|
79
|
+
not one round — that is what a ceiling has to cover. The between-rounds
|
|
80
|
+
confirmation gate is unaffected: it is a separate, per-round control and
|
|
81
|
+
it still fires, which is where a debate that turns out expensive gets
|
|
82
|
+
stopped.
|
|
83
|
+
|
|
84
|
+
Numbered options, when the ask applies:
|
|
76
85
|
|
|
77
86
|
> The debate is projected to cost **$X.XXXX** ($Y.YYYY × N rounds, worst case).
|
|
78
87
|
>
|
|
@@ -152,11 +152,22 @@ Construct each member from the resolved mode:
|
|
|
152
152
|
- `manual` → `ManualClient` from `scripts.ai_council.clients`
|
|
153
153
|
(`billable=False`, no API key, no SDK call).
|
|
154
154
|
|
|
155
|
-
### 3.
|
|
155
|
+
### 3. Spend bound — ASK when a billable member has no ceiling
|
|
156
156
|
|
|
157
|
-
Council calls to billable members spend money
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
Council calls to billable members spend money, so a bound is mandatory.
|
|
158
|
+
Per ADR-230 the bound is a **ceiling**, not a per-invocation approval —
|
|
159
|
+
the same three cases the `ai-council` skill resolves in its Procedure § 3:
|
|
160
|
+
|
|
161
|
+
| Situation | Behaviour |
|
|
162
|
+
|---|---|
|
|
163
|
+
| No billable member (all `mode: cli`, subscription auth) | No gate. Estimate is information; go to Step 4. Spend is $0. |
|
|
164
|
+
| Billable member **with** `cost_budget.max_total_usd` or `daily_limit_usd` non-zero | No per-run ask. The ceiling is the authorization the user already gave; `on_overrun` still pauses per member on breach. |
|
|
165
|
+
| Billable member with **both** caps `0` | **Ask.** Nothing bounds the spend, so the user must. |
|
|
166
|
+
|
|
167
|
+
`personal.autonomy` neither creates nor lifts that bound — autonomy is
|
|
168
|
+
not a ceiling. Consumers who want a per-invocation gate set a small
|
|
169
|
+
`cost_budget.max_total_usd`; every call then breaches and `on_overrun`
|
|
170
|
+
asks per member.
|
|
160
171
|
|
|
161
172
|
Run the CLI in **estimate** mode first — it bundles the artefact, runs
|
|
162
173
|
redaction, and prints the per-member preview without spending:
|
|
@@ -182,17 +193,21 @@ roadmap file with `--input-mode roadmap`. `diff` and `files` modes
|
|
|
182
193
|
remain Phase 4 — for now ask the user to convert into a `prompt`.
|
|
183
194
|
|
|
184
195
|
The CLI prints a `council:estimate · members=N (billable=M)` line
|
|
185
|
-
followed by per-member projected USD and a TOTAL. Render that
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
196
|
+
followed by per-member projected USD and a TOTAL. Render that table per
|
|
197
|
+
the `ai-council` skill (§ Pre-call estimate format) in every case — it is
|
|
198
|
+
what makes the spend legible whether or not it is being asked about.
|
|
199
|
+
|
|
200
|
+
Then read `billable=M` together with the two caps:
|
|
190
201
|
|
|
191
|
-
|
|
202
|
+
- `M == 0` → no gate. Proceed to Step 4.
|
|
203
|
+
- `M > 0` and a cap is set → no gate. Proceed to Step 4; `on_overrun`
|
|
204
|
+
handles a breach per member.
|
|
205
|
+
- `M > 0` and both caps are `0` → render the table inside a numbered-options
|
|
206
|
+
block (`1. Run / 2. Cancel`) and wait. `1` proceeds; anything else aborts.
|
|
192
207
|
|
|
193
208
|
### 4. Run the CLI
|
|
194
209
|
|
|
195
|
-
|
|
210
|
+
Invoke the same arguments with `run` plus
|
|
196
211
|
`--confirm` and an output path under `agents/runtime/council/sessions/`:
|
|
197
212
|
|
|
198
213
|
```bash
|
|
@@ -35,7 +35,7 @@ sub-command swaps the mode-specific addendum.
|
|
|
35
35
|
|
|
36
36
|
1. Resolve the target + capture the original ask.
|
|
37
37
|
2. Check the council is configured + price table fresh.
|
|
38
|
-
3.
|
|
38
|
+
3. Spend bound (ask only when a billable member has no ceiling — ADR-230).
|
|
39
39
|
4. Run the CLI.
|
|
40
40
|
5. Render the report (5 / 5a / 5b — render → critical lens → user options).
|
|
41
41
|
6. Hard floor — text only.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: design-system-capture
|
|
4
|
+
pack: engineering-base
|
|
5
|
+
tier: 2
|
|
6
|
+
visibility: internal
|
|
7
|
+
cluster: design-system
|
|
8
|
+
sub: capture
|
|
9
|
+
skills: [existing-ui-audit, design-system-capture]
|
|
10
|
+
description: Inventory this repo's own components and tokens and emit them in the design-system.json shape, so the import path is identical to an external extraction.
|
|
11
|
+
argument-hint: "[path]"
|
|
12
|
+
suggestion:
|
|
13
|
+
eligible: false
|
|
14
|
+
rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /cluster:sub name; not independently suggested (surface-consolidation)."
|
|
15
|
+
workspaces:
|
|
16
|
+
- engineering
|
|
17
|
+
packs:
|
|
18
|
+
- frontend-design
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /design-system:capture
|
|
22
|
+
|
|
23
|
+
Run [`existing-ui-audit`](../../skills/existing-ui-audit/SKILL.md) over the
|
|
24
|
+
current repo and emit its inventory as a `design-system.json` artifact — the
|
|
25
|
+
same shape an external extraction tool produces, so the import path is identical
|
|
26
|
+
either way. Args: optional `[path]` to narrow the scan.
|
|
27
|
+
|
|
28
|
+
Two sources, one shape: use this for **this** repo, and
|
|
29
|
+
[`/design-system:import`](../import/command.md) for a site or repo you do not
|
|
30
|
+
own.
|
|
31
|
+
|
|
32
|
+
## Then hand it over
|
|
33
|
+
|
|
34
|
+
Pass the emitted artifact to [`design-system-capture`](../../skills/design-system-capture/SKILL.md)'s
|
|
35
|
+
import step, which confirms it per field into `DESIGN.md`.
|
|
36
|
+
|
|
37
|
+
## Rules
|
|
38
|
+
|
|
39
|
+
- **Set `source` honestly** — `kind: dir`, `ref` = the scanned path,
|
|
40
|
+
`captured_at` = now. An artifact with no provenance is rejected downstream.
|
|
41
|
+
- **Observation is not a token.** Anything the audit *noticed* rather than
|
|
42
|
+
*decided* belongs under `_meta`, per the contract's field rules.
|
|
43
|
+
- **The audit's own grouping is not the contract's shape.** Map it deliberately;
|
|
44
|
+
do not rename the audit's output keys and call it done.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: high
|
|
3
|
+
name: design-system-generate
|
|
4
|
+
pack: engineering-base
|
|
5
|
+
tier: 2
|
|
6
|
+
visibility: internal
|
|
7
|
+
cluster: design-system
|
|
8
|
+
sub: generate
|
|
9
|
+
skills: [corpus-grounding, design-intelligence, design-system-capture]
|
|
10
|
+
description: Ground a design system in the curated design corpus from a product or industry brief, then optionally persist it as MASTER.md or seed DESIGN.md.
|
|
11
|
+
argument-hint: "<product / industry / keywords>"
|
|
12
|
+
suggestion:
|
|
13
|
+
eligible: false
|
|
14
|
+
rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /cluster:sub name; not independently suggested (surface-consolidation)."
|
|
15
|
+
workspaces:
|
|
16
|
+
- engineering
|
|
17
|
+
packs:
|
|
18
|
+
- frontend-design
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /design-system:generate
|
|
22
|
+
|
|
23
|
+
Run the grounded one-shot over the curated corpus and print the full
|
|
24
|
+
recommendation. Args: `"<product / industry / keywords>"`.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx tsx node_modules/@event4u/agent-config/src/skills/corpus-grounding/scripts/ground.ts \
|
|
28
|
+
ground "<query>" \
|
|
29
|
+
--manifest node_modules/@event4u/agent-config/src/skills/design-intelligence/data/manifest.json \
|
|
30
|
+
[--variance 1-10] [--motion 1-10] [--density 1-10]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Add `--persist <dir> --project-name <name>` to write
|
|
34
|
+
`design-system/<slug>/MASTER.md`, and `--page <name>` for a page-override stub
|
|
35
|
+
alongside it. The engine is read-only without `--persist`.
|
|
36
|
+
|
|
37
|
+
## The three dials — optional, and unset means unset
|
|
38
|
+
|
|
39
|
+
Each takes an integer 1-10. A dial you do not pass changes nothing at all, so
|
|
40
|
+
the no-flag result is exactly what it was before dials existed.
|
|
41
|
+
|
|
42
|
+
| Dial | 1-3 | 4-7 | 8-10 | What it touches |
|
|
43
|
+
|---|---|---|---|---|
|
|
44
|
+
| `--variance` | Centered / Minimal | Balanced / Modern | Bold / Asymmetric | Biases which style is **selected** from the rows the corpus returned |
|
|
45
|
+
| `--motion` | Subtle | Standard | Complex | Pulls a motion recipe at that intensity tier |
|
|
46
|
+
| `--density` | Spacious | Standard | Dense / Dashboard | Overrides the spacing scale |
|
|
47
|
+
|
|
48
|
+
**`--variance` biases selection, never retrieval.** The rows that come back from
|
|
49
|
+
the corpus are the same with or without it; the dial only changes which of those
|
|
50
|
+
rows is picked. And when it changes the pick away from what the grounding rule's
|
|
51
|
+
own keywords would have chosen, the run **says so in its evidence gaps** — a
|
|
52
|
+
preference is allowed to win, but never quietly.
|
|
53
|
+
|
|
54
|
+
`--motion` needs the `gsap` domain (`motion.csv`) in the manifest. Without it,
|
|
55
|
+
or when no row matches the requested tier, the run reports that rather than
|
|
56
|
+
returning an empty block.
|
|
57
|
+
|
|
58
|
+
## After the recommendation
|
|
59
|
+
|
|
60
|
+
Offer both destinations, and let the human pick — they are different artifacts,
|
|
61
|
+
not two spellings of one:
|
|
62
|
+
|
|
63
|
+
- **`MASTER.md` + page overrides** (`--persist`) — the interchange format, good
|
|
64
|
+
for handing a system to another tool or to a designer.
|
|
65
|
+
- **`DESIGN.md`** via [`design-system-capture`](../../skills/design-system-capture/SKILL.md)
|
|
66
|
+
— this package's canonical design memory, the file every later design task
|
|
67
|
+
reads. Seed it when the system is for *this* repo's own work.
|
|
68
|
+
|
|
69
|
+
## Rules
|
|
70
|
+
|
|
71
|
+
- **Generated output is a proposal.** A provided artifact, registered brand
|
|
72
|
+
tokens, and a confirmed `DESIGN.md` outrank it — never overwrite a confirmed
|
|
73
|
+
decision with a generated default.
|
|
74
|
+
- **Never persist silently.** `--persist` is the human's choice, and `DESIGN.md`
|
|
75
|
+
is seeded per field, not written wholesale.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: medium
|
|
3
|
+
name: design-system-import
|
|
4
|
+
pack: engineering-base
|
|
5
|
+
tier: 2
|
|
6
|
+
visibility: internal
|
|
7
|
+
cluster: design-system
|
|
8
|
+
sub: import
|
|
9
|
+
skills: [design-system-capture]
|
|
10
|
+
description: Run an extraction tool's output through the three-lane adapter into the design-system.json contract, then hand it to the per-field confirmation import.
|
|
11
|
+
argument-hint: "<file>"
|
|
12
|
+
suggestion:
|
|
13
|
+
eligible: false
|
|
14
|
+
rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /cluster:sub name; not independently suggested (surface-consolidation)."
|
|
15
|
+
workspaces:
|
|
16
|
+
- engineering
|
|
17
|
+
packs:
|
|
18
|
+
- frontend-design
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /design-system:import
|
|
22
|
+
|
|
23
|
+
Transform an extracted design system into the `design-system.json` contract,
|
|
24
|
+
then import it per field. Args: `<file>`.
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx tsx node_modules/@event4u/agent-config/src/scripts/design_system_import.ts <file> \
|
|
28
|
+
[--lane native|dtcg|dembrandt] \
|
|
29
|
+
[--source-kind url|repo|dir --source-ref <ref>] [--captured-at <ISO>] \
|
|
30
|
+
[--format json|summary]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The lane is detected from the file's own shape; `--lane` only forces which
|
|
34
|
+
mapper runs and never reshapes the input. Lane behaviour, the documented
|
|
35
|
+
producers, and the never-force-a-lane degradation are specified in
|
|
36
|
+
[`design-system-json.md`](../../skills/design-system-capture/references/design-system-json.md)
|
|
37
|
+
§ Extractor compatibility.
|
|
38
|
+
|
|
39
|
+
## The easy path, in two lines
|
|
40
|
+
|
|
41
|
+
1. Connect an extractor once — e.g.
|
|
42
|
+
`claude mcp add --transport stdio dembrandt -- npx -y --package dembrandt dembrandt-mcp`.
|
|
43
|
+
2. Run `/design-system:import` over its output.
|
|
44
|
+
|
|
45
|
+
No extractor available? Skip step 1 and use
|
|
46
|
+
[`/design-system:generate`](../generate/command.md) from the corpus instead, or
|
|
47
|
+
[`/design-system:capture`](../capture/command.md) for this repo.
|
|
48
|
+
|
|
49
|
+
## Then hand it over
|
|
50
|
+
|
|
51
|
+
Pass the result to [`design-system-capture`](../../skills/design-system-capture/SKILL.md)'s
|
|
52
|
+
import step. Do not write `DESIGN.md` from here.
|
|
53
|
+
|
|
54
|
+
## Rules
|
|
55
|
+
|
|
56
|
+
- **Provenance is mandatory.** A file with no `source` and no `--source-ref` is
|
|
57
|
+
rejected — you cannot confirm what you cannot trace. Supplying it by flag is
|
|
58
|
+
recorded as caller-asserted, not extracted.
|
|
59
|
+
- **The artifact is observed, not authoritative.** Every field is confirmed by
|
|
60
|
+
the human; a value conflicting with a registered brand token is flagged, never
|
|
61
|
+
auto-applied.
|
|
62
|
+
- **The adapter is offline.** It reads a file and writes the contract shape — it
|
|
63
|
+
never fetches, crawls, or launches a browser.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
model_tier: inherit
|
|
3
|
+
name: design-system
|
|
4
|
+
pack: engineering-base
|
|
5
|
+
tier: 2
|
|
6
|
+
visibility: internal
|
|
7
|
+
cluster: design-system
|
|
8
|
+
type: orchestrator
|
|
9
|
+
description: Design-system onramp — generate one from the corpus, import an extractor's output, or capture the current repo's. Three doors onto machinery that already ships.
|
|
10
|
+
argument-hint: "[generate|import|capture] [args]"
|
|
11
|
+
suggestion:
|
|
12
|
+
eligible: true
|
|
13
|
+
trigger_description: "generate a design system, import extracted design tokens, capture this repo's design system, seed DESIGN.md from a site"
|
|
14
|
+
trigger_context: "user explicitly wants a design system produced, imported, or captured — never suggested for ordinary UI work"
|
|
15
|
+
workspaces:
|
|
16
|
+
- engineering
|
|
17
|
+
packs:
|
|
18
|
+
- frontend-design
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# /design-system
|
|
22
|
+
|
|
23
|
+
Three doors onto machinery this package already ships and nothing could reach.
|
|
24
|
+
The grounded generator, its `MASTER.md` persistence, the `design-system.json`
|
|
25
|
+
import contract, and the current-repo inventory all existed before this cluster;
|
|
26
|
+
what was missing was a way in. So every sub-command below is an entry point, not
|
|
27
|
+
a new subsystem.
|
|
28
|
+
|
|
29
|
+
**Optional means invoked or not invoked.** This cluster adds no settings key, no
|
|
30
|
+
always-on rule, and no auto-trigger. It is suggestion-eligible only when a
|
|
31
|
+
design-system question is explicit, and otherwise silent.
|
|
32
|
+
|
|
33
|
+
## Sub-commands
|
|
34
|
+
|
|
35
|
+
| Sub-command | Routes to | Purpose |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| `/design-system:generate "<product / industry / keywords>"` | `commands/design-system/generate.md` | Ground a design system in the curated corpus; optionally persist `MASTER.md` + page overrides, or seed `DESIGN.md` |
|
|
38
|
+
| `/design-system:import <file>` | `commands/design-system/import.md` | Run an extractor's output through the three-lane adapter, then the per-field confirmation import |
|
|
39
|
+
| `/design-system:capture` | `commands/design-system/capture.md` | Inventory *this* repo's components and tokens and emit the same `design-system.json` shape |
|
|
40
|
+
|
|
41
|
+
## Dispatch
|
|
42
|
+
|
|
43
|
+
1. Parse `/design-system <sub-command> [args]`. Sub-command = first token; match
|
|
44
|
+
against the table's exact names only.
|
|
45
|
+
2. Look up the sub-command and execute its file verbatim with the remaining args.
|
|
46
|
+
3. Unknown / missing sub-command → print the table and ask which door to take.
|
|
47
|
+
|
|
48
|
+
## Rules
|
|
49
|
+
|
|
50
|
+
- **Do NOT commit, push, or open a PR** — subcommands never do this.
|
|
51
|
+
- **Do NOT chain subcommands.** One `/design-system <sub>` per turn.
|
|
52
|
+
- **Generated and imported output is a proposal.** A provided artifact,
|
|
53
|
+
registered brand tokens, and a confirmed `DESIGN.md` all outrank it; a value
|
|
54
|
+
that conflicts with a registered brand token is flagged, never auto-applied
|
|
55
|
+
(per [`brand-source-of-truth`](../rules/brand-source-of-truth.md)).
|
|
56
|
+
- **No crawler, browser runtime, or font-bundler is shipped.** Extraction tools
|
|
57
|
+
are user-installed and user-connected; this package's share is the adapter,
|
|
58
|
+
the instructions, and the validation.
|
|
59
|
+
- **Edit `src/` only.** Generated mirrors regenerate.
|
|
60
|
+
|
|
61
|
+
## See also
|
|
62
|
+
|
|
63
|
+
- [`design-system-capture`](../../skills/design-system-capture/SKILL.md) — owns `DESIGN.md` and the per-field-confirmation import.
|
|
64
|
+
- [`corpus-grounding`](../../skills/corpus-grounding/SKILL.md) · [`design-intelligence`](../../skills/design-intelligence/SKILL.md) — the grounded generator behind `:generate`.
|
|
65
|
+
- [`existing-ui-audit`](../../skills/existing-ui-audit/SKILL.md) — the current-repo inventory behind `:capture`.
|
|
66
|
+
- [`docs/contracts/command-clusters.md`](../docs/contracts/command-clusters.md) — `design-system` cluster registration.
|