@event4u/agent-config 7.1.0 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/.claude-plugin/marketplace.json +2 -1
  2. package/CHANGELOG.md +39 -0
  3. package/README.md +1 -1
  4. package/dist/agent-src/rules/brand-source-of-truth.md +10 -0
  5. package/dist/agent-src/rules/delegation-policy.md +1 -0
  6. package/dist/agent-src/rules/legal-safety-floor.md +42 -4
  7. package/dist/agent-src/rules/output-discipline.md +85 -0
  8. package/dist/agent-src/rules/telegraph-speak.md +4 -1
  9. package/dist/agent-src/rules/token-budget-discipline.md +94 -0
  10. package/dist/agent-src/skills/accessibility-auditor/SKILL.md +20 -5
  11. package/dist/agent-src/skills/blade-ui/SKILL.md +9 -0
  12. package/dist/agent-src/skills/contract-review/SKILL.md +3 -2
  13. package/dist/agent-src/skills/dashboard-design/SKILL.md +21 -5
  14. package/dist/agent-src/skills/design-intelligence/SKILL.md +96 -0
  15. package/dist/agent-src/skills/design-review/SKILL.md +83 -0
  16. package/dist/agent-src/skills/design-system-capture/SKILL.md +234 -0
  17. package/dist/agent-src/skills/design-tokens/SKILL.md +1 -0
  18. package/dist/agent-src/skills/dpa-review/SKILL.md +3 -2
  19. package/dist/agent-src/skills/existing-ui-audit/SKILL.md +15 -4
  20. package/dist/agent-src/skills/fe-design/SKILL.md +98 -16
  21. package/dist/agent-src/skills/flux/SKILL.md +8 -0
  22. package/dist/agent-src/skills/iconography/SKILL.md +1 -0
  23. package/dist/agent-src/skills/legal-intake-triage/SKILL.md +3 -2
  24. package/dist/agent-src/skills/legal-practice-profile/SKILL.md +3 -2
  25. package/dist/agent-src/skills/livewire/SKILL.md +8 -0
  26. package/dist/agent-src/skills/nda-triage/SKILL.md +3 -2
  27. package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +21 -9
  28. package/dist/agent-src/skills/skill-writing/SKILL.md +18 -0
  29. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +7 -10
  30. package/dist/agent-src/skills/tailwind-engineer/SKILL.md +17 -7
  31. package/dist/agent-src/skills/typography-system/SKILL.md +14 -0
  32. package/dist/agent-src/skills/ui-component-architect/SKILL.md +9 -0
  33. package/dist/discovery/deprecation-report.md +1 -1
  34. package/dist/discovery/discovery-manifest.json +123 -59
  35. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  36. package/dist/discovery/discovery-manifest.summary.md +8 -8
  37. package/dist/discovery/orphan-report.md +1 -1
  38. package/dist/discovery/packs.json +18 -15
  39. package/dist/discovery/trust-report.md +5 -5
  40. package/dist/discovery/workspaces.json +15 -12
  41. package/dist/mcp/registry-manifest.json +2 -2
  42. package/dist/router.json +1 -1
  43. package/dist/server/routes/wizard.js +4 -3
  44. package/dist/server/routes/wizard.js.map +1 -1
  45. package/dist/server/schemas/settings.js +9 -0
  46. package/dist/server/schemas/settings.js.map +1 -1
  47. package/dist/ui/assets/{index-CoQo90sz.js → index-UjcTG_9O.js} +2 -2
  48. package/dist/ui/assets/index-UjcTG_9O.js.map +1 -0
  49. package/dist/ui/index.html +1 -1
  50. package/docs/RELEASE_STORY_TEMPLATE.md +37 -0
  51. package/docs/architecture.md +3 -3
  52. package/docs/contracts/capability-boundary.md +64 -0
  53. package/docs/contracts/discovery-manifest.schema.json +2 -2
  54. package/docs/contracts/package-self-orientation.md +3 -0
  55. package/docs/contracts/subagent-boundary.md +54 -0
  56. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +13 -0
  57. package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +19 -0
  58. package/docs/getting-started.md +1 -1
  59. package/docs/guidelines/agent-infra/domain-pack-architecture.md +1 -0
  60. package/docs/guidelines/design-antipatterns-triggers.json +17 -0
  61. package/docs/guidelines/design-antipatterns.md +170 -0
  62. package/docs/guidelines/design-modes.md +97 -0
  63. package/package.json +1 -1
  64. package/src/config/agent-settings.template.yml +31 -0
  65. package/src/config/discovery/packs.yml +16 -5
  66. package/src/config/discovery/workspaces.yml +4 -4
  67. package/src/scripts/check_trunk_drift.ts +67 -0
  68. package/src/scripts/lint_design_quality.ts +321 -0
  69. package/src/scripts/lint_discovery_vocabulary.ts +4 -4
  70. package/src/scripts/lint_legal_pack.ts +62 -4
  71. package/src/scripts/lint_output_slop.ts +223 -0
  72. package/src/scripts/lint_pack_risk_class.ts +79 -0
  73. package/src/scripts/schemas/agent-settings.schema.json +12 -0
  74. package/src/scripts/schemas/skill.schema.json +5 -0
  75. package/dist/ui/assets/index-CoQo90sz.js.map +0 -1
@@ -34,9 +34,15 @@ wraps `npx shadcn@latest add <components>` — **the only subprocess+network
34
34
  surface in the adopted suite**. Per `runtime-safety` + the `execution`
35
35
  block above:
36
36
 
37
- 1. **Propose, never silent-run** — show exact `npx` command + component list first (`--dry-run`); user confirms before live run.
38
- 2. **Missing tool** → per `missing-tool-handling`: `npx`/Node absent → STOP and ask (install vs manual copy) — never silently work around.
39
- 3. **Verify after run** — `components/ui/<name>.tsx` exists, `components.json` unchanged or sanely updated, before reporting success.
37
+ 1. **Propose, never silent-run** — always show the exact `npx` command +
38
+ component list first (use `--dry-run`); the user confirms before any
39
+ live run.
40
+ 2. **Missing tool** → per `missing-tool-handling`: if `npx`/Node is
41
+ absent, STOP and ask (install vs. manual component copy) — never
42
+ silently work around.
43
+ 3. **Verify after run** — confirm the component landed
44
+ (`components/ui/<name>.tsx` exists, `components.json` unchanged or
45
+ sanely updated) before reporting success.
40
46
 
41
47
  ## Compatibility
42
48
 
@@ -82,13 +88,19 @@ Do NOT use when:
82
88
  the generated primitives but is easy to remove during a refactor.
83
89
  - **Anti-AI-slop: shadcn-default look.** The out-of-the-box shadcn
84
90
  theme + `Inter`-as-system-fallback + neutral grays reads as
85
- template across projects. Unless `state.ui_audit.design_tokens`
86
- pins the neutral palette as the project's identity, the polish
87
- step should match typography and color tokens to the design
88
- brief's `aesthetic:` line (from `fe-design` aesthetic-direction).
89
- Theme/font drift within a single audited project breaks
90
- consistency — variation lives between projects, not between
91
+ template across projects (catalog T7/T8 + C5). Unless
92
+ `state.ui_audit.design_tokens` pins the neutral palette as the
93
+ project's identity, the polish step should match typography and color
94
+ tokens to the design brief's `aesthetic:` line (from `fe-design`
95
+ aesthetic-direction). Theme/font drift within a single audited project
96
+ breaks consistency — variation lives between projects, not between
91
97
  components in the same surface.
98
+ - **Anti-AI-slop catalog + linter.** Pull
99
+ [`docs/guidelines/design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md)
100
+ before the polish step (Visual V1–V7, Layout L1–L8 are the React-component
101
+ slop tells); the objective quality floors (WCAG contrast, focus-visible,
102
+ reduced-motion) are CI-enforced by
103
+ [`lint_design_quality`](../../../src/scripts/lint_design_quality.ts).
92
104
 
93
105
  ## Covered primitives
94
106
 
@@ -121,6 +121,24 @@ Then run the Understand → Research → Draft sequence from the
121
121
  rule. Skip only on explicit *"just do it"* bypass or trivial edits
122
122
  (typo, link, single-line clarification).
123
123
 
124
+ ### 0b. Skill-growth gate (new skill only)
125
+
126
+ The skill count keeps climbing; nothing forces *"should this be a new skill at
127
+ all?"*. Before creating a **new** skill, answer these in the PR body — a new
128
+ skill that cannot answer them is a merge / guideline / no-op in disguise:
129
+
130
+ 1. **Family** — which capability family does it join? (engineering, product, …)
131
+ 2. **Capability** — what does it do that no existing skill does? Name the gap.
132
+ 3. **Why not extend / merge** — which nearest skill did you consider folding into, and why is a separate skill better?
133
+ 4. **Why not a guideline** — is this executable workflow (skill) or reference material (guideline)? Guideline-shaped content does not become a skill.
134
+ 5. **Visibility tier** — `core` or `lab`? Which pack?
135
+
136
+ **Surface overlap before deciding** — run `./scripts-run src/scripts/skill_overlap`
137
+ (or `audit_skill_overlap`) and read the nearest matches; a high-overlap hit is a
138
+ merge signal, not a green light. This gate is the authoring-time companion to the
139
+ [capability-boundary matrix](../../../docs/contracts/capability-boundary.md): the
140
+ matrix governs packs, this governs the skills inside them.
141
+
124
142
  ### 1. Define the trigger
125
143
 
126
144
  Write "When to use" first. This is the in-body trigger — it documents the
@@ -58,17 +58,13 @@ than blocking on each return — intervene only if one goes off track. Engage pe
58
58
 
59
59
  ### Settings-gated auto-dispatch
60
60
 
61
- "By default" is governed by `.agent-settings.yml`, not unconditional. Before
62
- auto-dispatch, run the activation gate
61
+ "By default" is governed by the [`delegation-policy`](../../rules/delegation-policy.md)
62
+ rule — the single source of the auto-trigger. It gates on the activation context
63
63
  ([`auto-orchestration-activation`](../../contexts/execution/auto-orchestration-activation.md)):
64
- dispatch only when `subagents.enabled` **and** `subagents.auto != off` **and**
65
- the [`host-capability-manifest`](../../contexts/execution/host-capability-manifest.md)
66
- reports `subagent_spawn: true` **and** the task is classified delegable
67
- ([`auto-dispatch-classification`](../../contexts/execution/auto-dispatch-classification.md)).
68
- `auto: ask` → ask once (per [`user-interaction`](../../rules/user-interaction.md));
69
- `auto: on` → surface chosen mode + per-subtask tiers in one line. Any gate fails
70
- → in-session. Auto-dispatch is the default where host + settings allow, a clean
71
- no-op elsewhere — never lifts a safety floor.
64
+ dispatch only when `subagents.enabled`, `subagents.auto != off`, the host
65
+ manifest reports `subagent_spawn: true`, and the task is classified delegable.
66
+ `auto: ask` → ask once; `auto: on` → surface mode + per-subtask tiers in one
67
+ line; any gate failing → in-session no-op. Never lifts a safety floor.
72
68
 
73
69
  ## The seven modes
74
70
 
@@ -368,3 +364,4 @@ the judge verdict.
368
364
  | Standalone judge on an existing diff | [`/judge`](../../commands/judge.md) |
369
365
  | External / networked second opinion | [`ai-council`](../ai-council/SKILL.md) |
370
366
  | Verifying completeness | [`verify-before-complete`](../verify-before-complete/SKILL.md) |
367
+ | What a subagent owns vs never owns | [`subagent-boundary`](../../../docs/contracts/subagent-boundary.md) |
@@ -51,11 +51,13 @@ radius, spacing, shadow, font-size to a configured token. If the design hands yo
51
51
  (`bg-[#3B82F6]`, `mt-[17px]`) are a smell — accept only with a
52
52
  one-line comment naming the design source.
53
53
 
54
- Token authoring (DTCG 3-layer, CSS-var/Tailwind generation):
55
- [`design-tokens`](../design-tokens/SKILL.md); its `tokens.py validate
56
- --dir <path>` is the **single token-discipline linter** behind this rule.
57
- Greenfield config: bundled `scripts/tailwind_config_gen.py`
58
- (Apache-2.0-derived, pure templating) scaffolds `tailwind.config.{js,ts}`.
54
+ Token authoring (DTCG 3-layer model, CSS-var/Tailwind generation) lives
55
+ in [`design-tokens`](../design-tokens/SKILL.md); its
56
+ `tokens.py validate --dir <path>` is the **single token-discipline
57
+ linter** — the mechanical check behind this rule (no hardcoded hex / px /
58
+ rem outside the token files). Greenfield Tailwind config: bundled
59
+ `scripts/tailwind_config_gen.py` (Apache-2.0-derived, pure templating)
60
+ scaffolds `tailwind.config.{js,ts}` per framework.
59
61
 
60
62
  ### 2. Compose, don't inline
61
63
 
@@ -127,10 +129,18 @@ Risks: <arbitrary values, !important, dark-mode gaps>
127
129
  break the design system; they accumulate silently.
128
130
  - `@apply` inside component CSS interacts with PurgeCSS — keep it
129
131
  in files Tailwind scans, not in vendor CSS.
132
+ - **Anti-AI-slop catalog.** The bullets below are the Tailwind-specific
133
+ manifestations of the stack-agnostic patterns in
134
+ [`docs/guidelines/design-antipatterns.md`](../../../docs/guidelines/design-antipatterns.md)
135
+ (C1 gradients, T7 fonts, L1/L2 layout, V1 side-stripe). Pull the catalog
136
+ for the full list; the objective subset (contrast, font-size floor,
137
+ reduced-motion) is CI-enforced by
138
+ [`lint_design_quality`](../../../src/scripts/lint_design_quality.ts) for
139
+ consumer projects.
130
140
  - **Anti-AI-slop: gradients.** Unless audit-pinned or brief-explicit,
131
141
  avoid the default purple-to-blue / cyan-to-pink gradients on white —
132
- they read as auto-generated. Reach for a single accent from the
133
- token map, or a duotone built from configured tokens.
142
+ they read as auto-generated (catalog C1/C2). Reach for a single accent
143
+ from the token map, or a duotone built from configured tokens.
134
144
  - **Anti-AI-slop: typography.** Unless audit-pinned, avoid surfacing
135
145
  the system stack (`font-sans` fallback to Arial / Helvetica / Inter
136
146
  via system defaults) as the *visible* body face. If `tailwind.config`
@@ -8,6 +8,7 @@ workspaces:
8
8
  - engineering
9
9
  packs:
10
10
  - frontend-design
11
+ token_budget_class: rich
11
12
  trust:
12
13
  level: professional
13
14
  install:
@@ -136,3 +137,16 @@ brand already registers fonts, use them and skip the filter.
136
137
  consumes the token system produced here.
137
138
  - [`brand`](../brand/SKILL.md) — supplies the archetype → pairing-filter
138
139
  Grounding (`typography` domain) consumed by stage 2.
140
+
141
+ ## Why this skill is rich
142
+
143
+ Typography is one of the highest-leverage design decisions and one of the
144
+ most commonly mis-applied by AI agents (defaulting to Inter + arbitrary sizes).
145
+ The skill carries 73 curated font pairings (heading + body + mono combinations
146
+ with Google Fonts URLs and Tailwind config), 6 worked-through modular-scale
147
+ examples across different use-cases (marketing, dashboard, docs, e-commerce,
148
+ SaaS, editorial), and per-pairing line-height + weight guidance. Condensing
149
+ to "use a 1.25 modular scale" loses the worked examples that teach agents
150
+ the difference between a 14/17.5/21.8/27.2 rounded scale and an invented
151
+ arbitrary scale. Without the worked examples, agents produce: 16, 20, 24, 28
152
+ (arbitrary) instead of a properly grounded typographic system.
@@ -144,6 +144,15 @@ Anti-cases: <combinations the component refuses to support>
144
144
  every render, the child re-renders too. Stabilize via
145
145
  `useCallback` or hoist.
146
146
 
147
+ ## Cross-task design memory
148
+
149
+ Before proposing a component, check the project root for `DESIGN.md`
150
+ (written by `design-system-capture`). If present, apply its captured
151
+ visual conventions (radius/shadow/motion/spacing) to the new component
152
+ rather than deriving them from scratch. Flag any new design decision
153
+ (e.g., a first-use of a new elevation tier) for capture:
154
+ *"Suggest adding to DESIGN.md: [decision]."*
155
+
147
156
  ## Do NOT
148
157
 
149
158
  - Do NOT design a component without running
@@ -1,6 +1,6 @@
1
1
  # Discovery — Deprecation Report
2
2
 
3
- - Generated: `2026-06-24T13:42:39Z`
3
+ - Generated: `2026-06-24T20:56:10Z`
4
4
  - Deprecated artefacts: **0**
5
5
 
6
6
  _None. Tree is clean._