@event4u/agent-config 7.1.0 → 7.3.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 +2 -1
- package/CHANGELOG.md +80 -0
- package/README.md +9 -10
- package/dist/agent-src/rules/brand-source-of-truth.md +10 -0
- package/dist/agent-src/rules/delegation-policy.md +1 -0
- package/dist/agent-src/rules/legal-safety-floor.md +42 -4
- package/dist/agent-src/rules/output-discipline.md +85 -0
- package/dist/agent-src/rules/telegraph-speak.md +4 -1
- package/dist/agent-src/rules/token-budget-discipline.md +94 -0
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +20 -5
- package/dist/agent-src/skills/blade-ui/SKILL.md +9 -0
- package/dist/agent-src/skills/bug-analyzer/evals/evals.json +13 -0
- package/dist/agent-src/skills/code-review/evals/evals.json +21 -0
- package/dist/agent-src/skills/contract-review/SKILL.md +3 -2
- package/dist/agent-src/skills/dashboard-design/SKILL.md +21 -5
- package/dist/agent-src/skills/design-intelligence/SKILL.md +96 -0
- package/dist/agent-src/skills/design-review/SKILL.md +83 -0
- package/dist/agent-src/skills/design-system-capture/SKILL.md +234 -0
- package/dist/agent-src/skills/design-tokens/SKILL.md +1 -0
- package/dist/agent-src/skills/dpa-review/SKILL.md +3 -2
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +15 -4
- package/dist/agent-src/skills/fe-design/SKILL.md +98 -16
- package/dist/agent-src/skills/flux/SKILL.md +8 -0
- package/dist/agent-src/skills/iconography/SKILL.md +1 -0
- package/dist/agent-src/skills/legal-intake-triage/SKILL.md +3 -2
- package/dist/agent-src/skills/legal-practice-profile/SKILL.md +3 -2
- package/dist/agent-src/skills/livewire/SKILL.md +8 -0
- package/dist/agent-src/skills/nda-triage/SKILL.md +3 -2
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +21 -9
- package/dist/agent-src/skills/skill-writing/SKILL.md +18 -0
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +7 -10
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +17 -7
- package/dist/agent-src/skills/typography-system/SKILL.md +14 -0
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +9 -0
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +123 -59
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +8 -8
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +18 -15
- package/dist/discovery/trust-report.md +5 -5
- package/dist/discovery/workspaces.json +15 -12
- package/dist/mcp/registry-manifest.json +3 -3
- package/dist/router.json +1 -1
- package/dist/server/routes/wizard.js +4 -3
- package/dist/server/routes/wizard.js.map +1 -1
- package/dist/server/schemas/settings.js +9 -0
- package/dist/server/schemas/settings.js.map +1 -1
- package/dist/ui/assets/{index-CoQo90sz.js → index-UjcTG_9O.js} +2 -2
- package/dist/ui/assets/index-UjcTG_9O.js.map +1 -0
- package/dist/ui/index.html +1 -1
- package/docs/RELEASE_STORY_TEMPLATE.md +37 -0
- package/docs/architecture.md +3 -3
- package/docs/contracts/capability-boundary.md +64 -0
- package/docs/contracts/discovery-manifest.schema.json +2 -2
- package/docs/contracts/governance-enforcement-projection.md +154 -0
- package/docs/contracts/package-self-orientation.md +3 -0
- package/docs/contracts/subagent-boundary.md +54 -0
- package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +13 -0
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +19 -0
- package/docs/enforcement-by-host.md +35 -0
- package/docs/getting-started.md +1 -1
- package/docs/guidelines/agent-infra/domain-pack-architecture.md +1 -0
- package/docs/guidelines/design-antipatterns-triggers.json +17 -0
- package/docs/guidelines/design-antipatterns.md +170 -0
- package/docs/guidelines/design-modes.md +97 -0
- package/package.json +1 -1
- package/src/config/agent-settings.template.yml +31 -0
- package/src/config/discovery/packs.yml +16 -5
- package/src/config/discovery/workspaces.yml +4 -4
- package/src/scripts/_lib/eval_discrimination.ts +95 -0
- package/src/scripts/_lib/trigger_routers.ts +268 -0
- package/src/scripts/bench_ab_v2_run.ts +38 -0
- package/src/scripts/check_trunk_drift.ts +67 -0
- package/src/scripts/cross_model_smoke.ts +245 -0
- package/src/scripts/lint_design_quality.ts +321 -0
- package/src/scripts/lint_discovery_vocabulary.ts +4 -4
- package/src/scripts/lint_legal_pack.ts +62 -4
- package/src/scripts/lint_output_slop.ts +223 -0
- package/src/scripts/lint_pack_risk_class.ts +79 -0
- package/src/scripts/run_skill_evals.ts +38 -0
- package/src/scripts/schemas/agent-settings.schema.json +12 -0
- package/src/scripts/schemas/skill.schema.json +5 -0
- package/src/scripts/skill_linter.ts +26 -10
- package/dist/ui/assets/index-CoQo90sz.js.map +0 -1
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Shared agent configuration — skills for AI coding tools (Claude Code, Augment, Cursor, Cline, Windsurf, Gemini CLI).",
|
|
9
|
-
"version": "7.
|
|
9
|
+
"version": "7.3.0",
|
|
10
10
|
"keywords": [
|
|
11
11
|
"agent-config",
|
|
12
12
|
"skills",
|
|
@@ -258,6 +258,7 @@
|
|
|
258
258
|
"./dist/agent-src/skills/design-intelligence",
|
|
259
259
|
"./dist/agent-src/skills/design-review",
|
|
260
260
|
"./dist/agent-src/skills/design-tokens",
|
|
261
|
+
"./dist/agent-src/skills/design-system-capture",
|
|
261
262
|
"./dist/agent-src/skills/devcontainer",
|
|
262
263
|
"./dist/agent-src/skills/developer-like-execution",
|
|
263
264
|
"./dist/agent-src/skills/discovery-interview",
|
package/CHANGELOG.md
CHANGED
|
@@ -948,6 +948,86 @@ our recommendation order, not its support status.
|
|
|
948
948
|
> that forces a new era split (`# Era: 7.1.x`, etc.) — see
|
|
949
949
|
> [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
|
|
950
950
|
|
|
951
|
+
## [7.3.0](https://github.com/event4u-app/agent-config/compare/7.2.0...7.3.0) (2026-06-25)
|
|
952
|
+
|
|
953
|
+
### Features
|
|
954
|
+
|
|
955
|
+
* **bench:** opt-in hardened arms for governance-enforcement eval ([af9a0e0](https://github.com/event4u-app/agent-config/commit/af9a0e07a2c2312f6b53782a8fcb44b2bde35635))
|
|
956
|
+
* **evals:** cross-model canary workflow + robust smoke (T-005) ([d062095](https://github.com/event4u-app/agent-config/commit/d06209535731d27446768442c081fcac151b3f20))
|
|
957
|
+
* **evals:** cross-model trigger smoke — SDK-free fetch routers + runner (Phase 0 T-004 keystone) ([1a8df9c](https://github.com/event4u-app/agent-config/commit/1a8df9cc83f2a9ace2e4a45eb9d66be6b51be5ae))
|
|
958
|
+
* **evals:** finding_floor assertion kind — deterministic count gate (Phase 1) ([7f0e9e6](https://github.com/event4u-app/agent-config/commit/7f0e9e617a741b1f778d9cacdde145ef4a300994))
|
|
959
|
+
* **evals:** graded negative-control discrimination primitive (Phase 0 T-003) ([5407121](https://github.com/event4u-app/agent-config/commit/54071210ecbfc8b6807fa37d726ea27654d22158))
|
|
960
|
+
|
|
961
|
+
### Bug Fixes
|
|
962
|
+
|
|
963
|
+
* **skills:** declare top-level skill field in bug-analyzer/code-review evals ([7c7f2e3](https://github.com/event4u-app/agent-config/commit/7c7f2e3adf181f2a1e936cb028538b3471e8f15e))
|
|
964
|
+
* **skill-linter:** accept finding_floor eval assertion kind ([bb629f9](https://github.com/event4u-app/agent-config/commit/bb629f98c41c09912a6d67d31ceef25a49becb56))
|
|
965
|
+
* **evals:** GeminiRouter JSON output contract — closes the format divergence (Phase 0b) ([f739b32](https://github.com/event4u-app/agent-config/commit/f739b320a1dcb54350d44a67009e634a421034ed))
|
|
966
|
+
* **evals:** drop legacy-path literal from a comment (ADR-051 guard) ([48328f0](https://github.com/event4u-app/agent-config/commit/48328f0bd0f9c36cd8d0f11c2bbc206c49faefc6))
|
|
967
|
+
* **harvest:** drop illustrative ellipsis path that tripped check_references ([94e6098](https://github.com/event4u-app/agent-config/commit/94e6098bf7d4a6e5127729db103a04b61dfc8f39))
|
|
968
|
+
|
|
969
|
+
### Documentation
|
|
970
|
+
|
|
971
|
+
* **roadmap:** enforcement honest-null; archive positioning roadmap ([226bf33](https://github.com/event4u-app/agent-config/commit/226bf3394b905a7dbd45fd74c55ab3a001ddaf2f))
|
|
972
|
+
* **readme:** lead with capability; add host-enforcement matrix ([531327d](https://github.com/event4u-app/agent-config/commit/531327d465ed0cc2803b1ee1900d5b551dacbdc0))
|
|
973
|
+
* **harvest:** wider-coverage baseline (10 skills) + agent-ide-plugin security-lessons note ([4a2aaaa](https://github.com/event4u-app/agent-config/commit/4a2aaaaac0b6fbd1467b254207690f5adaacf7d8))
|
|
974
|
+
* **harvest:** Phase 0b resolved — record the 3-variant format-fix evidence + flip checkbox ([a64dcab](https://github.com/event4u-app/agent-config/commit/a64dcab235efb41170cb28fd4603ae2f3fd1de25))
|
|
975
|
+
* **harvest:** cross-model baseline + outcome read (T-006); credential blocker resolved ([b4e8453](https://github.com/event4u-app/agent-config/commit/b4e84534064fe91f4609e2e06fbd04e957f2e2fa))
|
|
976
|
+
* **harvest:** Phase 0 evidence — capability matrix, fixture-portability audit, vendor-credential gate decision ([cb64570](https://github.com/event4u-app/agent-config/commit/cb64570b414c3a4d2e3ec34dda70137f513bbfa5))
|
|
977
|
+
|
|
978
|
+
### Tests
|
|
979
|
+
|
|
980
|
+
* **evals:** starter behavioral evals.json fixtures (Phase 1, T-001 0-fixtures gap) ([dd6861b](https://github.com/event4u-app/agent-config/commit/dd6861bff4d66d7458468f0a9b2490ac088157c7))
|
|
981
|
+
|
|
982
|
+
### Chores
|
|
983
|
+
|
|
984
|
+
* **roadmap:** archive operator-runtime-harvest (core complete) + park residuals in later/ ([69ef1ac](https://github.com/event4u-app/agent-config/commit/69ef1ac91af47c3c462f4453f74eeb94fece310b))
|
|
985
|
+
* **roadmap:** defer Phase 2 (won't-build-speculatively) — undershoot guard + catalog target ([9f37fa8](https://github.com/event4u-app/agent-config/commit/9f37fa8fcf29f1822a5739d916b5510047a9f23d))
|
|
986
|
+
* **roadmap:** close T-005 + Phase G (honest-null) + plugin note; mark human/parallel residuals ([a0d7f80](https://github.com/event4u-app/agent-config/commit/a0d7f806ac5ed048b19b9c20e41ba392328f3393))
|
|
987
|
+
* **roadmap:** Phase 0 — T-004 + T-006 done (live smoke ran); T-005 re-scoped (cost), Phase 0b actionable ([036e66f](https://github.com/event4u-app/agent-config/commit/036e66f98d3cc805e0128a86ab01ee15fd771bb1))
|
|
988
|
+
* **dist:** sync eval-fixture projection for the new behavioral evals.json ([01cc089](https://github.com/event4u-app/agent-config/commit/01cc08994ebf11d7cf894822b73a4374b7ef0ee9))
|
|
989
|
+
* **roadmap:** Phase 1 — finding_floor mechanism + fixtures done; calibration deferred on P0 ([3a5bc28](https://github.com/event4u-app/agent-config/commit/3a5bc28083206118352b1dd641d76326ac58114d))
|
|
990
|
+
* **roadmap:** Phase 0 — mark T-000..T-003 done, T-004..T-006 deferred on credentials ([4f302ee](https://github.com/event4u-app/agent-config/commit/4f302ee9270b02488d1dce6d285520984d01ab40))
|
|
991
|
+
|
|
992
|
+
## [7.2.0](https://github.com/event4u-app/agent-config/compare/7.1.0...7.2.0) (2026-06-24)
|
|
993
|
+
|
|
994
|
+
### Features
|
|
995
|
+
|
|
996
|
+
* **design-craft:** wire existing design/frontend skills into the anti-slop layer ([4ac512c](https://github.com/event4u-app/agent-config/commit/4ac512c294c47c54c04e71a12d2a85e6a8600d93))
|
|
997
|
+
* **design-craft:** add anti-slop enforcement + design memory + token governance ([4c07b60](https://github.com/event4u-app/agent-config/commit/4c07b60195db52a938f41445a347a0bec3331bc2))
|
|
998
|
+
* **product-clarity:** process wins (release-story, trunk-drift, explainability) ([f91b898](https://github.com/event4u-app/agent-config/commit/f91b898d7ae833bd4eb7b1577e7ae5f78ee96be4))
|
|
999
|
+
* **governance:** capability lifecycle view + complete capability-governance ([f299791](https://github.com/event4u-app/agent-config/commit/f2997914a3f9e25fc0a26b4a202e3f521a0471b7))
|
|
1000
|
+
* **governance:** subagent boundary contract ([8ed4181](https://github.com/event4u-app/agent-config/commit/8ed4181afbff73cb99b764ac695354c0bb1f073f))
|
|
1001
|
+
* **governance:** skill-growth gate in the authoring flow ([a9a3b80](https://github.com/event4u-app/agent-config/commit/a9a3b80ab7dfbcfee0cb8f0c51d5744aabb03bd7))
|
|
1002
|
+
* **governance:** capability-boundary matrix + risk_class invariant ([7b683b8](https://github.com/event4u-app/agent-config/commit/7b683b864188f40424c4a9399a6a931081e14291))
|
|
1003
|
+
* **legal-review-prep:** attorney-framing-review promotion tripwire ([551fe8b](https://github.com/event4u-app/agent-config/commit/551fe8b4b7e817c5f81adddfe8d85220f3ef30a7))
|
|
1004
|
+
* **legal-review-prep:** high-risk pack metadata ([554282e](https://github.com/event4u-app/agent-config/commit/554282e4b12575dc884c078f45b560facea60be1))
|
|
1005
|
+
* **legal-review-prep:** council / deep-research gate on legal work-product ([7b44c89](https://github.com/event4u-app/agent-config/commit/7b44c8961d94ae9a5b99329a80ff725db2d0c6d5))
|
|
1006
|
+
* **legal-review-prep:** install consent gate (checkbox + flag + floor refusal) ([af2ee1d](https://github.com/event4u-app/agent-config/commit/af2ee1dbc18446f77f0d13e79b11551634f15d2c))
|
|
1007
|
+
* **legal-review-prep:** hard individual-case STOP in the floor + lint ([71860da](https://github.com/event4u-app/agent-config/commit/71860da9699d8537a81942ff4d59aeca6fbd2a96))
|
|
1008
|
+
|
|
1009
|
+
### Bug Fixes
|
|
1010
|
+
|
|
1011
|
+
* **lint:** trim telegraph-speak amendment to clear long_rule warning ([95d54c6](https://github.com/event4u-app/agent-config/commit/95d54c6852c2344f3402f5f9730185a400fc4941))
|
|
1012
|
+
* **lint:** add model_tier to design-system-capture skill ([57c3a6d](https://github.com/event4u-app/agent-config/commit/57c3a6defd57a771a9f86805b9634f3b73a6afee))
|
|
1013
|
+
* **framework-neutrality:** drop npm-install literal in design-intelligence ([aeadec5](https://github.com/event4u-app/agent-config/commit/aeadec54038c0d43aed75ea30f30574a2d6b7d65))
|
|
1014
|
+
* **ci:** Zod settings parity + router minification for tokens.rich_skills ([88930da](https://github.com/event4u-app/agent-config/commit/88930da1786731a9cc1317b841646477f77ad1d1))
|
|
1015
|
+
* **ci:** strict-TS null-safety in design-craft linters ([3cac522](https://github.com/event4u-app/agent-config/commit/3cac522ed8234190a6d361735bc323616b11393b))
|
|
1016
|
+
* **ci:** broken refs + unused var in design-craft additions ([2e0c2a7](https://github.com/event4u-app/agent-config/commit/2e0c2a785596c67fb4114ead09caea57aeb6e0ab))
|
|
1017
|
+
* **portability:** drop task-invocation from shipped /create-pr command ([e03f97a](https://github.com/event4u-app/agent-config/commit/e03f97a14ea38439ba41427448f7d77c868959c4))
|
|
1018
|
+
|
|
1019
|
+
### Documentation
|
|
1020
|
+
|
|
1021
|
+
* **roadmaps:** add legal-review-prep + capability-governance + product-clarity roadmaps ([e3ad120](https://github.com/event4u-app/agent-config/commit/e3ad120893dd20cea79c7875558137f42d2797da))
|
|
1022
|
+
|
|
1023
|
+
### Refactoring
|
|
1024
|
+
|
|
1025
|
+
* **legal:** rename legal pack to legal-review-prep ([fb34133](https://github.com/event4u-app/agent-config/commit/fb3413305718d321b435514e5f0ab0f4122e37b7))
|
|
1026
|
+
|
|
1027
|
+
### Chores
|
|
1028
|
+
|
|
1029
|
+
* **sync:** condense design-craft skills/rules + sync dist/agent-src/ ([3a3e6e1](https://github.com/event4u-app/agent-config/commit/3a3e6e1f668128e386ca7d19ffe031a09a391fcd))
|
|
1030
|
+
|
|
951
1031
|
## [7.1.0](https://github.com/event4u-app/agent-config/compare/7.0.2...7.1.0) (2026-06-24)
|
|
952
1032
|
|
|
953
1033
|
### Features
|
package/README.md
CHANGED
|
@@ -4,17 +4,22 @@
|
|
|
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)
|
|
6
6
|
|
|
7
|
+
[](dist/agent-src/skills/) [](dist/agent-src/rules/) [](dist/agent-src/commands/) [](docs/guidelines/) [](dist/agent-src/personas/) [](dist/agent-src/personas/advisors/)
|
|
8
|
+
|
|
7
9
|
> **Choose your experience — developer · founder · content · agency · finance · ops. Add packs. Get a focused command set, not a 500-artefact dump.** Bring your own AI provider.
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
**258 skills, 162 commands, 93 governed rules** — plus a capability router that loads the right skill on intent, and multi-agent orchestration with consensus review. The whole layer is compiled into 7+ host agents (Claude Code, Cursor, Augment, Cline, Windsurf, Copilot, Gemini) with **zero runtime daemon**. Six role-shaped entry paths sit on top, so any host becomes a reliable team member — without locking you to a single model or vendor.
|
|
10
12
|
|
|
11
13
|
### What's different
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
It is both deep **and** disciplined — and honest about what it deliberately is not:
|
|
14
16
|
|
|
17
|
+
- **Depth that routes itself** — 258 skills + 162 commands, with a capability router that loads the right one on intent, not a 500-artefact context dump.
|
|
18
|
+
- **Governance on every host** — rules compiled into each tool's native format at projection time; deterministic runtime hooks added on hook-capable hosts ([enforcement by host](docs/enforcement-by-host.md)).
|
|
15
19
|
- **Surgical uninstall** — removes only its own keys from a shared host config (matched by JSON-pointer + SHA-256), never a neighbour tool's entries.
|
|
16
20
|
- **Pack-scoped install** — writes the active pack only, not a 500-artefact dump.
|
|
17
|
-
|
|
21
|
+
|
|
22
|
+
**What it deliberately is *not*** — a content + governance layer, not a runtime: **no background daemon, no separate state database, no self-rewriting memory, no auto-build pipeline.** The host agent runs the loop; every learned change is human-reviewed; the same layer stays portable across tools. Capability without a process to babysit.
|
|
18
23
|
|
|
19
24
|
See exactly [what works on which host](docs/capability-matrix.md), or jump to [things you can do in a minute](docs/cookbook.md).
|
|
20
25
|
|
|
@@ -85,13 +90,7 @@ is platform operation, not a user-work flow.)
|
|
|
85
90
|
|
|
86
91
|
> **Legal Pack — not legal advice.** The EU/DE legal pack (contract/NDA/DPA review, triage) is a **research-and-drafting aid only** — it does not provide legal advice, does not replace a qualified lawyer, and must not be relied on for any concrete matter. It produces general information and general templates, never individual-case examination. Read [`LEGAL_NOTICE.md`](LEGAL_NOTICE.md) before use.
|
|
87
92
|
|
|
88
|
-
|
|
89
|
-
<summary><b>Catalog at a glance</b> — raw artefact counts (maintainer reference)</summary>
|
|
90
|
-
|
|
91
|
-
[](dist/agent-src/skills/) [](dist/agent-src/rules/) [](dist/agent-src/commands/) [](docs/guidelines/) [](dist/agent-src/personas/) [](dist/agent-src/personas/advisors/)
|
|
92
|
-
|
|
93
|
-
The headline is the **experience** (profile + packs), not the raw counts. Full catalog: [`docs/catalog.md`](docs/catalog.md).
|
|
94
|
-
</details>
|
|
93
|
+
> Full catalog — every skill, rule, command, guideline: [`docs/catalog.md`](docs/catalog.md). The headline is the **experience** (profile + packs) **and** the depth behind it.
|
|
95
94
|
|
|
96
95
|
## Use it in your project
|
|
97
96
|
|
|
@@ -51,7 +51,17 @@ corpus from quietly replacing a value the brand already defines.
|
|
|
51
51
|
marked as corpus-sourced, until `brand-identity` defines real tokens.
|
|
52
52
|
- Non-brand surfaces.
|
|
53
53
|
|
|
54
|
+
## Design register note
|
|
55
|
+
|
|
56
|
+
When a consumer brand profile is present, the brand register ("the impression IS
|
|
57
|
+
the product") is active — use `brand-identity`, `iconography`, and
|
|
58
|
+
`design-intelligence` as the primary skill cluster. For product/dashboard/admin
|
|
59
|
+
surfaces within the same brand, the product register ("design serves the task")
|
|
60
|
+
may apply per-surface. See [`docs/guidelines/design-modes.md`](../docs/guidelines/design-modes.md)
|
|
61
|
+
for the full Brand-mode vs Product-mode discriminator.
|
|
62
|
+
|
|
54
63
|
## See also
|
|
55
64
|
|
|
56
65
|
- [`brand-consistency`](brand-consistency.md) — validates emitted artifacts against the authoritative brand profile this rule establishes.
|
|
57
66
|
- [`brand`](../skills/brand/SKILL.md) — the gap-fill corpus this rule subordinates to consumer brand.
|
|
67
|
+
- [`docs/guidelines/design-modes.md`](../docs/guidelines/design-modes.md) — brand vs product register discriminator and routing.
|
|
@@ -80,5 +80,6 @@ primitive → run in-session (clean no-op).
|
|
|
80
80
|
## See also
|
|
81
81
|
|
|
82
82
|
- [`subagent-orchestration`](../skills/subagent-orchestration/SKILL.md) — the 7 modes this selects.
|
|
83
|
+
- [`subagent-boundary`](../docs/contracts/subagent-boundary.md) — what a subagent owns vs never owns (task-meaning, memory, pack-surface, safety-floor bypass).
|
|
83
84
|
- [`auto-orchestration-activation`](../contexts/execution/auto-orchestration-activation.md) — the gate.
|
|
84
85
|
- [`reasoning-orchestrator`](../skills/reasoning-orchestrator/SKILL.md) — RDP dispatch, now gated here.
|
|
@@ -24,9 +24,9 @@ routes_to:
|
|
|
24
24
|
- "skill:dpa-review"
|
|
25
25
|
- "skill:legal-intake-triage"
|
|
26
26
|
workspaces:
|
|
27
|
-
- legal
|
|
27
|
+
- legal-review-prep
|
|
28
28
|
packs:
|
|
29
|
-
- legal
|
|
29
|
+
- legal-review-prep
|
|
30
30
|
trust:
|
|
31
31
|
level: advisory
|
|
32
32
|
human_review_required: true
|
|
@@ -36,7 +36,7 @@ trust:
|
|
|
36
36
|
|
|
37
37
|
# Legal Safety Floor
|
|
38
38
|
|
|
39
|
-
Domain safety floor for legal-pack
|
|
39
|
+
Domain safety floor for the `legal-review-prep` pack (contract/NDA/DPA review, legal triage). Auto-activates when `pack-legal-review-prep` is installed. Sibling to `finance-safety-floor` / `strategy-safety-floor`. Every output is a **draft to PREPARE for attorney review**, never legal advice.
|
|
40
40
|
|
|
41
41
|
## Iron Law — no final legal call
|
|
42
42
|
|
|
@@ -56,6 +56,29 @@ THEY DO NOT REPLACE A LICENSED ATTORNEY. NO ONE MAY RELY ON THEM AS DEFINITIVE.
|
|
|
56
56
|
|
|
57
57
|
Every output is a **draft / research aid for a human attorney to verify** — for first-pass review, issue-spotting, and drafts only. It is **not** legal advice, **not** a legal opinion, and **not** a substitute for a qualified lawyer in the relevant jurisdiction. Nobody should rely on it for a binding decision; treat it as a tool that makes attorney review faster, never as the review itself. This disclaimer is non-removable from the pack. See [`LEGAL_NOTICE.md`](../../LEGAL_NOTICE.md).
|
|
58
58
|
|
|
59
|
+
## Consent gate — refuse until acknowledged
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
NO legal-review-prep SKILL RUNS UNTIL legal_review_prep.acknowledged: true.
|
|
63
|
+
FAIL-CLOSED: NO ACKNOWLEDGMENT → REFUSE, POINT TO THE SETUP WIZARD.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Before any legal-review-prep skill produces output, read `legal_review_prep.acknowledged` from `.agent-settings.yml`. Missing / `false` → refuse and surface: *"The legal-review-prep pack is inactive until you acknowledge it is not legal advice. Run the setup wizard's legal-consent step, or set `legal_review_prep.acknowledged: true` in `.agent-settings.yml`."* This is active consent (set via the wizard checkbox), not a passive disclaimer — it manages reliance/expectation and host-ToS exposure; it does **not** cure RDG.
|
|
67
|
+
|
|
68
|
+
## Iron Law — legal work-product is council / deep-research gated
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
WHEN legal_review_prep.require_council IS TRUE (DEFAULT), A LEGAL WORK-PRODUCT
|
|
72
|
+
IS PRODUCED VIA A MULTI-MODEL COUNCIL / research:deep PASS — NEVER SINGLE-MODEL.
|
|
73
|
+
FAIL-CLOSED: NO COUNCIL CONFIGURED → REFUSE. NO INFRA → NO OUTPUT, NOT BAD OUTPUT.
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
A **work-product** = a review, redline, gap-frame, or demand draft (not a one-line definition or a general-concept explanation). Every legal-review-prep skill carries `council_depth: deep`; when consulted it routes through the AI council (`--depth deep`) or `research:deep`. Single-model legal work-product is refused while `require_council: true`. When no council is configured, **fail closed** — refuse and say so; an unreviewed single-model legal draft is the worse outcome for a high-risk pack.
|
|
77
|
+
|
|
78
|
+
**Honest enforcement boundary.** This is advisory + settings + lint enforcement, not a hard runtime hook — skills are prose the host reads; the floor, the `require_council` flag, and the `lint_legal_pack` `council_depth` check are the teeth, the host is *asked* to route through the council. The deep council (2026-06-24) found this defense-in-depth substantive (documented multi-stage review + reliance-bounding friction + audit trail), **not** an RDG cure: it improves quality and creates a record; it does **not** make the output reliable legal advice.
|
|
79
|
+
|
|
80
|
+
**Audit pointer.** When a council / deep-research pass runs for a legal work-product, persist its pointer (timestamp · members · artefact hash) under `agents/runtime/council/responses/` so the "documented multi-stage review" claim is real, not asserted. No pass, no work-product.
|
|
81
|
+
|
|
59
82
|
## Iron Law — general information only, never individual-case examination
|
|
60
83
|
|
|
61
84
|
```
|
|
@@ -69,7 +92,22 @@ The line (German RDG § 2(1); a disclaimer does **not** cure crossing it): a reg
|
|
|
69
92
|
- **Definitive individual application** — "this violates GDPR in your case", "you must terminate within 30 days".
|
|
70
93
|
- **Dispute-specific drafting** — "draft the warning letter for *my* dispute with X", "write my response to this cease-and-desist".
|
|
71
94
|
|
|
72
|
-
|
|
95
|
+
This is a hard **STOP**, not a hedge — do not continue the individual-case analysis. When the request crosses into individual-case territory (specific facts about *your* situation, outcome prediction, deadline-driven or definitive-action questions — "may I terminate?", "will I win?", "is this enforceable in my case?"), emit the STOP block and end the individual-case answer:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
🛑 I must stop here — this needs a lawyer.
|
|
99
|
+
|
|
100
|
+
Your request involves individual legal examination, which I cannot provide.
|
|
101
|
+
This is a regulatory boundary (German RDG § 2(1)), not a gap in knowledge.
|
|
102
|
+
Find a qualified lawyer:
|
|
103
|
+
- Rechtsanwaltskammer (German bar) attorney search — https://www.rechtsanwaltskammer.de
|
|
104
|
+
- Beratungshilfe (legal aid) — https://www.bmj.de
|
|
105
|
+
|
|
106
|
+
I can still explain the general concept and provide a general template —
|
|
107
|
+
just not how it applies to your specific situation.
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Err toward the STOP when more than ~3 case-specific facts are needed to answer. The general-information path (concept + template) stays available; the STOP only terminates the *individual-case* branch, never the whole interaction.
|
|
73
111
|
|
|
74
112
|
## No definitive legal language
|
|
75
113
|
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "auto"
|
|
3
|
+
tier: "2a"
|
|
4
|
+
description: "Prohibits placeholder-prose output in generated code and UI — no truncation shorthands; on budget overflow emit a clean PAUSED breakpoint instead"
|
|
5
|
+
triggers:
|
|
6
|
+
- intent: "generating code or multi-section output"
|
|
7
|
+
- keyword: "// rest of component"
|
|
8
|
+
- keyword: "for brevity"
|
|
9
|
+
- keyword: "rest follows the same pattern"
|
|
10
|
+
- phrase: "similar pattern"
|
|
11
|
+
workspaces:
|
|
12
|
+
- engineering
|
|
13
|
+
packs:
|
|
14
|
+
- engineering-base
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Output Discipline
|
|
18
|
+
|
|
19
|
+
## Iron Law — no placeholder prose in emitted code
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
NEVER EMIT PLACEHOLDER PROSE IN GENERATED CODE OR UI.
|
|
23
|
+
PLACEHOLDER PROSE IS INCOMPLETE OUTPUT, NOT A STYLE CHOICE.
|
|
24
|
+
ON BUDGET OVERFLOW: EMIT A CLEAN PAUSED MARKER. NEVER TRUNCATE SILENTLY.
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Banned placeholder patterns
|
|
28
|
+
|
|
29
|
+
The following patterns are **absolutely banned** in generated code, components,
|
|
30
|
+
templates, and UI markup. They signal "I gave up midway" and leave the codebase
|
|
31
|
+
in a broken state:
|
|
32
|
+
|
|
33
|
+
| Banned pattern | What to do instead |
|
|
34
|
+
|---|---|
|
|
35
|
+
| `// rest of component` | Write the rest of the component. If budget runs out, emit `[PAUSED]` marker |
|
|
36
|
+
| `// ... (unchanged)` | Emit the unchanged code or omit it from the diff with a clean explanation of what was NOT changed |
|
|
37
|
+
| `// TODO: implement` | Implement it. If genuinely deferred, name the deferral explicitly in the brief, not in the code |
|
|
38
|
+
| `/* similar pattern */` | Write the similar pattern in full |
|
|
39
|
+
| `"for brevity"` in code comments | There is no brevity in broken code |
|
|
40
|
+
| `// rest follows same pattern` | Follow the same pattern — write it |
|
|
41
|
+
| `...` / `…` as an ellipsis replacing code content | Write the content |
|
|
42
|
+
| `[Your component here]` / `<YourComponentName>` | Use the actual component name or write the component |
|
|
43
|
+
| `Lorem ipsum` / `dolor sit amet` in UI output intended for review | Use realistic placeholder content or ask for content |
|
|
44
|
+
|
|
45
|
+
The banned patterns above are also detected by `lint_output_slop.ts` (see
|
|
46
|
+
`src/scripts/lint_output_slop.ts`) — violations cause a CI exit-code-2.
|
|
47
|
+
|
|
48
|
+
## On budget overflow — PAUSED protocol
|
|
49
|
+
|
|
50
|
+
When output genuinely reaches a context budget limit mid-generation:
|
|
51
|
+
|
|
52
|
+
1. Complete the current logical unit (function body, component, section).
|
|
53
|
+
2. Emit a clean breakpoint marker on its own line:
|
|
54
|
+
```
|
|
55
|
+
[PAUSED — section X of Y complete. Continue prompt: "continue from <last-completed-unit>"]
|
|
56
|
+
```
|
|
57
|
+
3. Stop. Do **not** truncate with `// rest follows...` or `...`.
|
|
58
|
+
|
|
59
|
+
The user will prompt "continue" and the next turn resumes cleanly from the
|
|
60
|
+
named unit.
|
|
61
|
+
|
|
62
|
+
## Interaction with `verify-before-complete`
|
|
63
|
+
|
|
64
|
+
`verify-before-complete` requires fresh verification before claiming work is
|
|
65
|
+
done. `output-discipline` adds the pre-condition: **there must be nothing to
|
|
66
|
+
verify that was never written**. A component with `// rest of component` is
|
|
67
|
+
not a complete artifact — it cannot be verified, it cannot be committed.
|
|
68
|
+
|
|
69
|
+
## Inline-ignore escape (for legitimate edge cases)
|
|
70
|
+
|
|
71
|
+
In the rare case where a pattern above is intentional (e.g., a documentation
|
|
72
|
+
example showing what NOT to do), use the inline-ignore escape:
|
|
73
|
+
|
|
74
|
+
```javascript
|
|
75
|
+
// lint-output-slop-disable-next-line impl-placeholder -- showing a negative example in documentation
|
|
76
|
+
// rest of component
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Or for a whole file: `// lint-output-slop-disable-file impl-placeholder -- test fixture`
|
|
80
|
+
|
|
81
|
+
## See also
|
|
82
|
+
|
|
83
|
+
- `verify-before-complete` — no completion claim without evidence
|
|
84
|
+
- `downstream-changes` — every edit is incomplete until all callers are updated
|
|
85
|
+
- `src/scripts/lint_output_slop.ts` — the CI linter enforcing this rule
|
|
@@ -59,7 +59,7 @@ Post-rewrite validator runs on every reply when `speak_scope != off`:
|
|
|
59
59
|
The rule documents the algorithm; agents apply it inline before
|
|
60
60
|
sending. The mechanism is the rule, not a hidden script.
|
|
61
61
|
|
|
62
|
-
Optional CI-side regression lock: [`scripts/validate_telegraph_carveouts.py`](../../scripts/validate_telegraph_carveouts.py)
|
|
62
|
+
- Optional CI-side regression lock: [`scripts/validate_telegraph_carveouts.py`](../../scripts/validate_telegraph_carveouts.py) — pre/post reply pair, byte-identical preservation across all seven carve-out categories; runtime mechanism stays algorithmic, script is the offline check.
|
|
63
63
|
|
|
64
64
|
## Telegraph grammar
|
|
65
65
|
|
|
@@ -80,4 +80,7 @@ Example: *"I will now check the file and see if it exists"* →
|
|
|
80
80
|
| `telegraph.speak` | `true` | Compile-time include in `dist/router.json`. |
|
|
81
81
|
| `telegraph.speak_scope` | `prose_only` | Runtime scope of telegraph grammar. |
|
|
82
82
|
|
|
83
|
+
- Input-side memory condensation (shrinking always-loaded memory files like `AGENTS.md` / `CLAUDE.md` / `.cursorrules` rather than the reply stream) runs independently of `speak_scope` — see [`condense-memory`](../skills/condense-memory/SKILL.md) for the script wrapper, sensitive-path refusal contract, and `.original.md` round-trip.
|
|
84
|
+
- Skills marked `token_budget_class: rich` are **exempt** from telegraph condensation + thin-projector trimming (gated by `tokens.rich_skills`, default `on`) — full model in [`token-budget-discipline`](token-budget-discipline.md).
|
|
85
|
+
|
|
83
86
|
Cross-rule index: [`frugality-charter § cross-references`](../contexts/contracts/frugality-charter.md#cross-references--frugality-canon-rules).
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: "auto"
|
|
3
|
+
tier: "2a"
|
|
4
|
+
description: "Governs token_budget_class: rich skills — exempt them from telegraph-speak + thin-projector trimming; enforce the 15% cap + justification requirement"
|
|
5
|
+
triggers:
|
|
6
|
+
- keyword: "token_budget_class"
|
|
7
|
+
- keyword: "rich skill"
|
|
8
|
+
- intent: "editing a rich-tagged skill"
|
|
9
|
+
workspaces:
|
|
10
|
+
- agent-config-maintainer
|
|
11
|
+
packs:
|
|
12
|
+
- meta
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Token Budget Discipline
|
|
16
|
+
|
|
17
|
+
## Iron Law — rich skills load in full, lean skills compress
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
SKILLS MARKED token_budget_class: rich ARE INTENTIONALLY DETAILED.
|
|
21
|
+
LOAD THEM FULLY. DO NOT CONDENSE, SUMMARIZE, OR TRIM THEM.
|
|
22
|
+
THEIR LENGTH IS A DELIBERATE QUALITY INVESTMENT, NOT BLOAT.
|
|
23
|
+
SKILLS WITHOUT THE KEY, OR MARKED lean/standard, REMAIN SUBJECT
|
|
24
|
+
TO THE FULL FRUGALITY CANON (telegraph-speak, thin-projector).
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## The three classes
|
|
28
|
+
|
|
29
|
+
| Class | Default? | Telegraph-speak | Thin-projector trimming | Target size |
|
|
30
|
+
|---|---|---|---|---|
|
|
31
|
+
| `lean` | No explicit key = lean | Full condensation | May be trimmed | < 500 tokens |
|
|
32
|
+
| `standard` | — | Balanced condensation | Not trimmed if priority ≥ 60 | 500–2000 tokens |
|
|
33
|
+
| `rich` | Must be declared + justified | **Exempt** | **Never trimmed** | 2000–5000 tokens |
|
|
34
|
+
|
|
35
|
+
Read `tokens.rich_skills` from `.agent-settings.yml` (default `on`) to determine
|
|
36
|
+
whether rich skills may load in full. If `off`, treat them as
|
|
37
|
+
`standard`. If `ask`, surface the estimated token delta (≈ skill file size in
|
|
38
|
+
chars / 4) and wait for user confirmation; cache the answer for the session.
|
|
39
|
+
|
|
40
|
+
## Requirements for `token_budget_class: rich`
|
|
41
|
+
|
|
42
|
+
A skill claiming `rich` MUST satisfy ALL three:
|
|
43
|
+
|
|
44
|
+
1. **`## Why this skill is rich` section** — explains in 2-5 sentences the
|
|
45
|
+
irreducible complexity that makes condensation harmful (e.g. "agents need to
|
|
46
|
+
see 6 worked examples to pattern-match the modular scale; condensing to the
|
|
47
|
+
rule alone produces agents that invent arbitrary sizes"). The linter
|
|
48
|
+
(`lint_token_budget_discipline.ts`) fails the skill if this section is absent.
|
|
49
|
+
|
|
50
|
+
2. **Not already coverable by a reference link** — if the richness is entirely
|
|
51
|
+
in an external document the agent can fetch, the skill should load lean and
|
|
52
|
+
carry a `load_context` pointer instead.
|
|
53
|
+
|
|
54
|
+
3. **≤ 15 % of the suite's skills may claim `rich`** — the CI linter counts
|
|
55
|
+
rich-tagged skills and hard-fails if the ratio is exceeded. With ~230 skills, the
|
|
56
|
+
cap is ~35. Do not claim `rich` for convenience; claim it only for
|
|
57
|
+
irreducible-complexity skills.
|
|
58
|
+
|
|
59
|
+
## Telegraph-speak amendment
|
|
60
|
+
|
|
61
|
+
The `telegraph-speak` rule (Tier 1, always-on) **exempts** skills marked
|
|
62
|
+
`token_budget_class: rich`. When such a skill is active:
|
|
63
|
+
|
|
64
|
+
- Do not apply telegraph-speak condensation to its guidance prose
|
|
65
|
+
- Do not drop articles, linking auxiliaries, or extended examples
|
|
66
|
+
- Do not compress multi-paragraph explanations into fragments
|
|
67
|
+
- Preserve all worked examples, decision tables, and code blocks verbatim
|
|
68
|
+
|
|
69
|
+
This exemption is limited to the skill's guidance content; reply prose from the
|
|
70
|
+
*agent* (not from the skill body) remains subject to telegraph-speak unless the
|
|
71
|
+
user has set `telegraph.speak_scope: off`.
|
|
72
|
+
|
|
73
|
+
## Candidate rich skills (justified, not exhaustive)
|
|
74
|
+
|
|
75
|
+
These skills are approved `rich` by this roadmap's council:
|
|
76
|
+
|
|
77
|
+
| Skill | Justification summary |
|
|
78
|
+
|---|---|
|
|
79
|
+
| `design-intelligence` | 11 corpus CSVs + 16 design-language prose specs + a 10-category checklist; grounded selection needs the full reference to avoid random corpus subsets |
|
|
80
|
+
| `typography-system` | Modular-scale math + 6 worked example type systems; condensing to "use 1.25 ratio" produces agents that invent arbitrary px values |
|
|
81
|
+
| `accessibility-auditor` | WCAG criteria are non-negotiable detail; every criterion has a testable condition + failure mode; compression loses the test procedures |
|
|
82
|
+
| `design-system-capture` (Phase 6) | Writes + maintains DESIGN.md + PRODUCT.md; needs full templates + worked examples to generate useful artifacts |
|
|
83
|
+
|
|
84
|
+
## Governed by
|
|
85
|
+
|
|
86
|
+
- `tokens.rich_skills` setting in `.agent-settings.yml` (consumer override)
|
|
87
|
+
- `lint_token_budget_discipline.ts` (cap + justification CI check)
|
|
88
|
+
- `telegraph-speak.md` (amended to except rich-tagged skills)
|
|
89
|
+
|
|
90
|
+
## See also
|
|
91
|
+
|
|
92
|
+
- `token_budget_class` key in `src/scripts/schemas/skill.schema.json`
|
|
93
|
+
- `tokens.rich_skills` in `src/config/agent-settings.template.yml`
|
|
94
|
+
- `telegraph-speak` rule — the frugality canon this rule amends
|
|
@@ -9,6 +9,7 @@ workspaces:
|
|
|
9
9
|
- engineering
|
|
10
10
|
packs:
|
|
11
11
|
- engineering-base
|
|
12
|
+
token_budget_class: rich
|
|
12
13
|
---
|
|
13
14
|
|
|
14
15
|
# accessibility-auditor
|
|
@@ -53,11 +54,12 @@ gets a verdict in step 5; missing one is a coverage failure.
|
|
|
53
54
|
**Perceivable** — text alternatives for non-text (`alt`, `aria-label`),
|
|
54
55
|
contrast ≥ 4.5:1 for body / 3:1 for large or UI components, no
|
|
55
56
|
colour-only state ("error in red" must also be iconic or text).
|
|
56
|
-
Grounded reference for palette + chart verdicts: corpus
|
|
57
|
-
token sets (`--domain color`), chart a11y grades +
|
|
58
|
-
(`--domain chart`), mobile touch/a11y rules
|
|
59
|
-
|
|
60
|
-
|
|
57
|
+
Grounded reference for palette + chart verdicts: the adopted corpus's
|
|
58
|
+
WCAG-adjusted token sets (`--domain color`), chart a11y grades +
|
|
59
|
+
colorblind fallbacks (`--domain chart`), and mobile touch/a11y rules
|
|
60
|
+
(`--domain web`, 44pt targets) via
|
|
61
|
+
[`design-intelligence`](../design-intelligence/SKILL.md) — cite the
|
|
62
|
+
corpus row; the WCAG 2.2 AA *method* stays this skill's own checklists.
|
|
61
63
|
Widget-pattern selection (dialog, combobox, tabs, toast, table, form
|
|
62
64
|
errors, drag-reorder …) grounds in the ARIA-APG corpus:
|
|
63
65
|
`ground.py search --manifest
|
|
@@ -145,3 +147,16 @@ Top 3 fixes: <ordered by user impact>
|
|
|
145
147
|
jurisdictions.
|
|
146
148
|
- Do NOT close a finding by adjusting the test instead of the UI;
|
|
147
149
|
the user's experience is the ground truth, not the test report.
|
|
150
|
+
|
|
151
|
+
## Why this skill is rich
|
|
152
|
+
|
|
153
|
+
WCAG 2.2 AA compliance is non-negotiable detail — each success criterion
|
|
154
|
+
has a specific testable condition, failure mode, and remediation path.
|
|
155
|
+
The skill carries the full WCAG criterion matrix with concrete test
|
|
156
|
+
procedures (not just "check contrast"), keyboard-navigation patterns
|
|
157
|
+
(roving tabindex, trap management, escape-key handling), ARIA role/
|
|
158
|
+
property/state tables, and screen-reader-specific edge cases per
|
|
159
|
+
assistive technology. Condensing to "check contrast and add aria-labels"
|
|
160
|
+
loses the test procedures that turn a vague finding into a reproducible
|
|
161
|
+
failure with a specific remedy. Accessibility bugs that are described
|
|
162
|
+
vaguely cannot be verified as fixed.
|
|
@@ -133,6 +133,15 @@ current state on the next polish round.
|
|
|
133
133
|
- Do NOT put business logic in Blade templates — use Livewire or view composers.
|
|
134
134
|
- Do NOT use inline styles — use Tailwind utility classes.
|
|
135
135
|
|
|
136
|
+
## Anti-slop
|
|
137
|
+
|
|
138
|
+
Before shipping a Blade view, pull
|
|
139
|
+
[`docs/guidelines/design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md)
|
|
140
|
+
and scan Visual / Typography / Layout — the Blade markup is where side-stripe
|
|
141
|
+
accents (V1), icon-tile feature cards (T3), and the centered-hero + 3-column
|
|
142
|
+
template (L1/L2) concretely land. Stack-specific Tailwind class/hex bans live in
|
|
143
|
+
[`tailwind-engineer`](../tailwind-engineer/SKILL.md).
|
|
144
|
+
|
|
136
145
|
## Auto-trigger keywords
|
|
137
146
|
|
|
138
147
|
- Blade template
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "bug-analyzer",
|
|
3
|
+
"_calibration": "Starter behavioral fixtures (roadmap road-to-operator-runtime-harvest, Phase 1, line 182). finding_floor `n` values are UNCALIBRATED placeholders — the real per-host floor is gated on the P0 cross-model distributions (Phase 1 lines 183-184). Do not wire these as an enforcing CI gate until calibrated.",
|
|
4
|
+
"scenarios": [
|
|
5
|
+
{
|
|
6
|
+
"id": "stacktrace-root-cause-findings",
|
|
7
|
+
"prompt": "Analyze this failure and list each candidate cause as its own bullet point:\n```\nTypeError: Cannot read properties of undefined (reading 'id')\n at resolveUser (auth.ts:42)\n at middleware (auth.ts:11)\n```\nContext: intermittent; only on requests without a session cookie.",
|
|
8
|
+
"assertions": [
|
|
9
|
+
{ "kind": "finding_floor", "n": 2, "pattern": "(?m)^\\s*[-*+]\\s+" }
|
|
10
|
+
]
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "code-review",
|
|
3
|
+
"_calibration": "Starter behavioral fixtures (roadmap road-to-operator-runtime-harvest, Phase 1, line 182). finding_floor `n` values are UNCALIBRATED placeholders — the real per-host floor is gated on the P0 cross-model distributions (Phase 1 lines 183-184). Do not wire these as an enforcing CI gate until calibrated.",
|
|
4
|
+
"scenarios": [
|
|
5
|
+
{
|
|
6
|
+
"id": "diff-with-multiple-issues",
|
|
7
|
+
"prompt": "Review this diff and list each distinct issue as its own bullet point:\n```js\nfunction pay(amount) {\n var x = amount\n eval(userInput)\n db.query('SELECT * FROM users WHERE id = ' + req.params.id)\n return x\n}\n```",
|
|
8
|
+
"assertions": [
|
|
9
|
+
{ "kind": "finding_floor", "n": 2 },
|
|
10
|
+
{ "kind": "contains", "value": "eval" }
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "clean-diff-few-findings",
|
|
15
|
+
"prompt": "Review this diff and list each distinct issue as its own bullet point:\n```js\nexport function add(a: number, b: number): number {\n return a + b\n}\n```",
|
|
16
|
+
"assertions": [
|
|
17
|
+
{ "kind": "finding_floor", "n": 0 }
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -4,12 +4,13 @@ name: contract-review
|
|
|
4
4
|
description: "Use when reviewing a contract clause-by-clause from your party's side — buyer/seller/vendor/licensee. Triggers on 'review this contract', 'redline this MSA', 'is this clause a problem'."
|
|
5
5
|
status: active
|
|
6
6
|
tier: senior
|
|
7
|
+
council_depth: deep
|
|
7
8
|
domain: process
|
|
8
9
|
recommended_for_user_types: [legal]
|
|
9
10
|
workspaces:
|
|
10
|
-
- legal
|
|
11
|
+
- legal-review-prep
|
|
11
12
|
packs:
|
|
12
|
-
- legal
|
|
13
|
+
- legal-review-prep
|
|
13
14
|
trust:
|
|
14
15
|
level: advisory
|
|
15
16
|
install:
|
|
@@ -23,11 +23,17 @@ Do NOT use when:
|
|
|
23
23
|
|
|
24
24
|
## Procedure: Design a dashboard
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
1. **Inspect the data sources** — Identify which signals already exist (logs, metrics, app queries) and where they live (Grafana / Loki / app DB) before designing a new panel.
|
|
27
|
+
2. **Pick the surface** — Use the decision tables below to choose Grafana, app dashboard, or embed; document audience and refresh cadence.
|
|
28
|
+
3. **Draft the layout** — Sketch panels, choose visualization per signal (RED / USE / Golden Signals), define filters and thresholds.
|
|
29
|
+
**Ground the chart-type choice** in the adopted data-viz corpus instead
|
|
30
|
+
of memory: `ground.py search --manifest
|
|
31
|
+
<skills-root>/design-intelligence/data/manifest.json --domain chart
|
|
32
|
+
"<data shape>"` returns the best chart type, when-NOT-to-use, data-volume
|
|
33
|
+
threshold, a11y grade + colorblind fallback, and a library
|
|
34
|
+
recommendation per row (see
|
|
35
|
+
[`design-intelligence`](../design-intelligence/SKILL.md)).
|
|
36
|
+
4. **Implement and verify** — Build the dashboard, load realistic data, and confirm every panel answers a named question for the named audience.
|
|
31
37
|
|
|
32
38
|
| Domain | Technology | Purpose |
|
|
33
39
|
|---|---|---|
|
|
@@ -120,6 +126,16 @@ Config required: `allow_embedding = true`, `cookie_samesite = none` (cross-origi
|
|
|
120
126
|
- Do NOT mix ops metrics with business KPIs on the same dashboard.
|
|
121
127
|
- Do NOT show admin data without tenant scoping.
|
|
122
128
|
|
|
129
|
+
## Anti-slop
|
|
130
|
+
|
|
131
|
+
Dashboards have their own signature tell: the **hero-metric template** (giant
|
|
132
|
+
number + small label + a row of stats + gradient) is L1 in
|
|
133
|
+
[`docs/guidelines/design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md).
|
|
134
|
+
Pull the catalog and check L1–L3 (hero-metric, identical-card grids, monotonous
|
|
135
|
+
spacing) before finalizing the layout — a dashboard is product-mode
|
|
136
|
+
(`docs/guidelines/design-modes.md`): design serves the task, so favour data
|
|
137
|
+
density and earned familiarity over decorative variance.
|
|
138
|
+
|
|
123
139
|
## Auto-trigger keywords
|
|
124
140
|
|
|
125
141
|
- dashboard
|