@event4u/agent-config 7.0.2 → 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.
- package/.claude-plugin/marketplace.json +9 -1
- package/CHANGELOG.md +117 -0
- package/README.md +4 -2
- package/dist/agent-src/commands/council/default.md +28 -20
- package/dist/agent-src/commands/evals/fix.json +5 -1
- package/dist/agent-src/commands/fix/comments.md +101 -0
- package/dist/agent-src/commands/fix.md +5 -2
- package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +65 -0
- package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +68 -0
- package/dist/agent-src/contexts/execution/host-capability-manifest.md +68 -0
- package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +62 -0
- package/dist/agent-src/contexts/execution/orchestration-telemetry.md +59 -0
- package/dist/agent-src/contexts/execution/roadmap-process-loop.md +8 -3
- package/dist/agent-src/contexts/execution/subagent-response-contract.md +56 -0
- package/dist/agent-src/contexts/execution/subagent-routing.md +57 -0
- package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +54 -0
- package/dist/agent-src/contexts/execution/subagent-steering.md +71 -0
- package/dist/agent-src/contexts/execution/verify-budget.md +50 -0
- package/dist/agent-src/rules/brand-source-of-truth.md +10 -0
- package/dist/agent-src/rules/delegation-policy.md +85 -0
- package/dist/agent-src/rules/design-fidelity.md +98 -0
- package/dist/agent-src/rules/domain-safety-pii.md +22 -0
- package/dist/agent-src/rules/legal-safety-floor.md +182 -0
- package/dist/agent-src/rules/lethal-trifecta-guard.md +25 -22
- 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/scripts/archive_completed_roadmaps.ts +102 -15
- package/dist/agent-src/scripts/update_roadmap_progress.ts +30 -3
- package/dist/agent-src/skills/accessibility-auditor/SKILL.md +20 -5
- package/dist/agent-src/skills/ai-council/SKILL.md +28 -1
- package/dist/agent-src/skills/blade-ui/SKILL.md +9 -0
- package/dist/agent-src/skills/contract-review/SKILL.md +125 -0
- package/dist/agent-src/skills/contract-review/evals/triggers.json +17 -0
- 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 +130 -0
- package/dist/agent-src/skills/dpa-review/evals/triggers.json +17 -0
- 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/laravel/SKILL.md +1 -0
- package/dist/agent-src/skills/legal-intake-triage/SKILL.md +128 -0
- package/dist/agent-src/skills/legal-intake-triage/evals/triggers.json +17 -0
- package/dist/agent-src/skills/legal-practice-profile/SKILL.md +101 -0
- package/dist/agent-src/skills/legal-practice-profile/evals/triggers.json +17 -0
- package/dist/agent-src/skills/livewire/SKILL.md +8 -0
- package/dist/agent-src/skills/nda-triage/SKILL.md +114 -0
- package/dist/agent-src/skills/nda-triage/evals/triggers.json +17 -0
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +21 -9
- package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +3 -1
- package/dist/agent-src/skills/recursive-verification/SKILL.md +186 -0
- package/dist/agent-src/skills/roadmap-management/SKILL.md +17 -0
- package/dist/agent-src/skills/skill-writing/SKILL.md +18 -0
- package/dist/agent-src/skills/subagent-orchestration/SKILL.md +11 -0
- 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/agent-src/templates/agent-settings.md +64 -19
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +362 -43
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +13 -5
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +56 -11
- package/dist/discovery/trust-report.md +7 -5
- package/dist/discovery/workspaces.json +38 -7
- 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 +23 -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 +4 -4
- package/docs/benchmark.md +46 -0
- package/docs/catalog.md +18 -6
- package/docs/command-flows.md +7 -1
- package/docs/contracts/ai-council-config.md +17 -10
- package/docs/contracts/audit-log-v1.md +7 -0
- package/docs/contracts/auto-orchestration-v1.md +70 -0
- package/docs/contracts/capability-boundary.md +64 -0
- package/docs/contracts/command-clusters.md +1 -1
- package/docs/contracts/discovery-manifest.schema.json +2 -2
- 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 +32 -0
- package/docs/decisions/ADR-020-global-only-consumer-scope.md +13 -6
- package/docs/decisions/ADR-049-configuration-trust-boundary.md +11 -1
- package/docs/decisions/ADR-093-ai-council-config-user-global.md +10 -4
- package/docs/decisions/ADR-104-ai-council-config-global-only.md +119 -0
- package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +102 -0
- package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +126 -0
- package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +70 -0
- package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +46 -0
- package/docs/decisions/INDEX.md +5 -0
- package/docs/getting-started.md +2 -2
- package/docs/guidelines/agent-infra/domain-eval-anti-pattern.md +53 -0
- package/docs/guidelines/agent-infra/domain-pack-architecture.md +56 -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 +103 -3
- package/src/config/discovery/packs.yml +24 -0
- package/src/config/discovery/workspaces.yml +7 -0
- package/src/scripts/_lib/auto_dispatch.ts +95 -0
- package/src/scripts/_lib/host_capability.ts +59 -0
- package/src/scripts/_lib/orchestration_gate.ts +98 -0
- package/src/scripts/_lib/subagent_bundle.ts +154 -0
- package/src/scripts/_lib/subagent_response.ts +82 -0
- package/src/scripts/_lib/subagent_routing.ts +81 -0
- package/src/scripts/_lib/subagent_spawn.ts +97 -0
- package/src/scripts/_lib/subagent_steering.ts +64 -0
- package/src/scripts/_lib/verify_budget.ts +54 -0
- package/src/scripts/ai_council/advisors.ts +4 -2
- package/src/scripts/ai_council/clients.ts +7 -1
- package/src/scripts/ai_council/config.ts +22 -17
- package/src/scripts/bench_ab_v2_run.ts +127 -0
- package/src/scripts/bench_ab_v2_stats.ts +39 -0
- package/src/scripts/check_council_config_location.ts +6 -5
- package/src/scripts/check_trunk_drift.ts +67 -0
- package/src/scripts/lint_design_quality.ts +321 -0
- package/src/scripts/lint_discovery_vocabulary.ts +6 -0
- package/src/scripts/lint_framework_leakage_allowlist.json +21 -0
- package/src/scripts/lint_legal_pack.ts +197 -0
- package/src/scripts/lint_output_slop.ts +223 -0
- package/src/scripts/lint_pack_risk_class.ts +79 -0
- package/src/scripts/probe_projection_fidelity.ts +7 -1
- package/src/scripts/schemas/agent-settings.schema.json +23 -0
- package/src/scripts/schemas/skill.schema.json +5 -0
- package/src/scripts/skill_linter.ts +3 -0
- package/dist/ui/assets/index-CoQo90sz.js.map +0 -1
package/dist/ui/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
6
|
<meta name="robots" content="noindex" />
|
|
7
7
|
<title>agent-config</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-UjcTG_9O.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-BbWWuFrF.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Release Story — `<version>`
|
|
2
|
+
|
|
3
|
+
A curated, human-readable "what changed and **why it matters**" — distinct from
|
|
4
|
+
the raw `CHANGELOG`. The changelog lists commits; the release story tells a
|
|
5
|
+
maintainer or consumer, in plain language, what they get and what to watch.
|
|
6
|
+
|
|
7
|
+
Copy this template per release; keep it short (a screen or less).
|
|
8
|
+
|
|
9
|
+
## Headline
|
|
10
|
+
|
|
11
|
+
One sentence: the single most important thing this release delivers.
|
|
12
|
+
|
|
13
|
+
## What changed (and why it matters)
|
|
14
|
+
|
|
15
|
+
- **<change>** — what it is · why a consumer cares · what they should do (if anything).
|
|
16
|
+
- **<change>** — …
|
|
17
|
+
|
|
18
|
+
## Safety / behaviour changes
|
|
19
|
+
|
|
20
|
+
Anything that changes agent behaviour, gates, or defaults — call it out explicitly
|
|
21
|
+
(new floors, new consent gates, renamed packs, changed risk postures). Consumers
|
|
22
|
+
read this section first.
|
|
23
|
+
|
|
24
|
+
## Upgrade notes
|
|
25
|
+
|
|
26
|
+
- Breaking? Migration steps. Non-breaking? Say so.
|
|
27
|
+
- New opt-in surfaces (packs, settings) — how to enable.
|
|
28
|
+
|
|
29
|
+
## Deferred / known limitations
|
|
30
|
+
|
|
31
|
+
What was intentionally left for a future release, and the pointer (roadmap /
|
|
32
|
+
ADR). Honesty here prevents "is this missing or coming?" questions.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
> Fill every section. An empty section is a signal the release is not understood
|
|
37
|
+
> well enough to ship its story. (road-to-product-clarity Phase 4a.)
|
package/docs/architecture.md
CHANGED
|
@@ -146,10 +146,10 @@ note, package-internal path-swap, description budget, and the
|
|
|
146
146
|
|
|
147
147
|
| Layer | Count | Purpose |
|
|
148
148
|
|---|---|---|
|
|
149
|
-
| **Skills** |
|
|
150
|
-
| **Rules** |
|
|
151
|
-
| **Commands** |
|
|
152
|
-
| **Guidelines** |
|
|
149
|
+
| **Skills** | 258 | On-demand expertise — stack analysis (Laravel · Symfony · Zend / Laminas · Next.js · React · Node), testing, Docker, API design, security, observability, … |
|
|
150
|
+
| **Rules** | 93 | Always-active constraints — coding standards, scope control, verification, language-and-tone, agent-authority |
|
|
151
|
+
| **Commands** | 162 | Slash-command workflows — `/commit`, `/create-pr`, `/fix ci`, `/optimize skills`, `/feature plan`, `/work`, `/implement-ticket`, `/condense`, … |
|
|
152
|
+
| **Guidelines** | 86 | Reference material cited by skills — PHP patterns, Eloquent, Playwright, agent-infra, … |
|
|
153
153
|
| **Templates** | 7 | Scaffolds for features, roadmaps, contexts, skills, overrides |
|
|
154
154
|
| **Contexts** | 5 | Shared knowledge about the system itself |
|
|
155
155
|
|
package/docs/benchmark.md
CHANGED
|
@@ -73,3 +73,49 @@
|
|
|
73
73
|
- Arms: vanilla (plugin off) · package (real plugin) · package-rdp (plugin + RDP rules) · placebo (plugin off + equal-length inert prose).
|
|
74
74
|
- Corpus: `internal/bench/corpora/ab-trackb-v2.yaml` (5 trap archetypes). Scoring: `bench_ab_scoring_v2.py` (deterministic, no LLM judge).
|
|
75
75
|
- Roadmap: `agents/roadmaps/road-to-discipline-axis-benchmark.md`.
|
|
76
|
+
|
|
77
|
+
## Recursive self-verification (ADR-106) — HONEST-NULL
|
|
78
|
+
|
|
79
|
+
> **Verdict: recursion is redundant with the always-on rules. `verification.recursive`
|
|
80
|
+
> stays `off`. No model got "closer to Fable" — exactly what ADR-106's gate was built to
|
|
81
|
+
> disconfirm.** The one retraining-free Sakana-Fugu mechanism (a depth-bounded
|
|
82
|
+
> `attempt → critic verdict → re-attempt` loop) was built, shipped behind a gate, and
|
|
83
|
+
> measured — and adds nothing over the rules.
|
|
84
|
+
|
|
85
|
+
Measured the `package-recursive` arm (D₂ = rules + recursion, deterministic scorer-as-critic,
|
|
86
|
+
`max_depth=1`) against `package` (D₁ = rules only) on a weak host (`claude-haiku-4-5`),
|
|
87
|
+
`capH-debug` archetype × 6 seeds (n=54 paired):
|
|
88
|
+
|
|
89
|
+
| axis | D₁ (rules) | D₂ (rules + recursion) | Δ (D₂ − D₁) | test |
|
|
90
|
+
|---|---|---|---|---|
|
|
91
|
+
| capability (pass-rate) | 87% | 87% | 0 | McNemar p=1.0, h=0.0 |
|
|
92
|
+
| discipline (0–1) | 0.852 | 0.861 | +0.009 | Wilcoxon p=0.79, rb=0.33, n≠0=3 |
|
|
93
|
+
|
|
94
|
+
**ADR-106 gate: FALSIFIED** — neither a capability lift (p=1.0) nor a *significant* novel
|
|
95
|
+
discipline lift (p=0.79; only 3 discordant pairs, below the ≥6 the gate requires).
|
|
96
|
+
|
|
97
|
+
**Why, despite a passing human pre-test.** Recursion fired on only **8/29** corpus tasks
|
|
98
|
+
(~28%) and produced a differentiated output on **4/29** — with the rules active, the host's
|
|
99
|
+
*first* attempt already passes the critic 72% of the time, so recursion is a no-op. A blind
|
|
100
|
+
human pre-test on the 4 differentiated pairs preferred the recursion output **4/4**, but those
|
|
101
|
+
cases are too rare and the aggregate marginal lift too small (n≠0=3) to register as
|
|
102
|
+
significant. The pre-test looked positive on N=4; the paired benchmark falsified it — which is
|
|
103
|
+
exactly why ADR-106 required the benchmark, not just the pre-test.
|
|
104
|
+
|
|
105
|
+
**Honesty scope.** Weak host, `capH-debug` family, deterministic scorer-as-critic, `max_depth=1`.
|
|
106
|
+
A model-based critic (Phase 4) was not pursued — gated on this result passing, which it did not.
|
|
107
|
+
Cost axis: each recursion run is up to 2× the host calls of a single pass, for a null lift.
|
|
108
|
+
|
|
109
|
+
- Roadmap: `agents/roadmaps/archive/road-to-recursive-verification.md` (closed honest-null).
|
|
110
|
+
- Gate logic: `recursiveGateVerdict` / `resolveRecursiveDefault` (`orchestration_gate.ts`); on a
|
|
111
|
+
falsified gate `resolveRecursiveDefault` resolves `off` — no shipped-default flip.
|
|
112
|
+
|
|
113
|
+
**Follow-up disposition — TERMINAL** (AI council, anthropic/claude-sonnet-4-5 +
|
|
114
|
+
openai/gpt-4o, 2026-06-24, deep tier). Both members converged: do **not** pursue a
|
|
115
|
+
model-critic / cross-vendor variant. The 72% first-pass rate shows recursion solves the
|
|
116
|
+
wrong problem — cost scales with *all* tasks, benefit only on the ~28% tail (best-case
|
|
117
|
+
~4–6% lift, would need n≥200 to detect); a model-critic would mostly fire more often and
|
|
118
|
+
produce more null-lift re-attempts at higher cost. The real lever is **refining the rules
|
|
119
|
+
on the 28% failure tail** (applies to 100% of tasks at zero marginal cost), not recursion.
|
|
120
|
+
Recursion-as-a-class is closed; the model-critic's contextual-quality angle, if ever
|
|
121
|
+
wanted, is a *different* (quality-review) product, not a recursion follow-up.
|
package/docs/catalog.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# agent-config — Public Catalog
|
|
2
2
|
|
|
3
|
-
Consumer-facing catalog of all **
|
|
3
|
+
Consumer-facing catalog of all **593 public artefacts** shipped by
|
|
4
4
|
this package. Internal package-maintenance rules and deprecation shims
|
|
5
5
|
are excluded.
|
|
6
6
|
|
|
7
|
-
> **Regenerate:**
|
|
7
|
+
> **Regenerate:** `./scripts-run src/scripts/generate_index`
|
|
8
8
|
> Auto-generated — do not edit manually.
|
|
9
9
|
|
|
10
|
-
## Skills (
|
|
10
|
+
## Skills (257)
|
|
11
11
|
|
|
12
12
|
| kind | name | extra | description |
|
|
13
13
|
|---|---|---|---|
|
|
@@ -57,6 +57,7 @@ are excluded.
|
|
|
57
57
|
| skill | [`content-funnel-design`](../dist/agent-src/skills/content-funnel-design/SKILL.md) | | Use when mapping funnel-stage to content shape — conversion-pathway, content-as-system, leverage-point selection. Triggers on 'design our content funnel', 'why does mid-funnel leak'. |
|
|
58
58
|
| skill | [`context-authoring`](../dist/agent-src/skills/context-authoring/SKILL.md) | | Use when filling in knowledge-layer context files — auth-model, tenant-boundaries, data-sensitivity, deployment-order, observability — interactive walkthrough that turns templates into reviewer fuel. |
|
|
59
59
|
| skill | [`context-document`](../dist/agent-src/skills/context-document/SKILL.md) | | Use when the user says \"create context\", \"document this area\", or wants a structured snapshot of a codebase area for agent orientation. |
|
|
60
|
+
| skill | [`contract-review`](../dist/agent-src/skills/contract-review/SKILL.md) | | 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'. |
|
|
60
61
|
| skill | [`contracts-cognition`](../dist/agent-src/skills/contracts-cognition/SKILL.md) | | Use when reading a contract for risk and constraint — clause shape, redline priority, what the contract actually binds. Triggers on 'review this contract', 'what does this MSA constrain'. |
|
|
61
62
|
| skill | [`conventional-commits-writing`](../dist/agent-src/skills/conventional-commits-writing/SKILL.md) | | Use when writing commit messages or squash-merge titles — `feat:`, `fix:`, `chore:`, scopes, breaking changes — even when the user just says 'commit this' without naming Conventional Commits. |
|
|
62
63
|
| skill | [`copilot-agents-optimization`](../dist/agent-src/skills/copilot-agents-optimization/SKILL.md) | | Use when optimizing AGENTS.md or copilot-instructions.md — deduplicates against .augment/ content, enforces line budgets, and focuses each file on its audience. |
|
|
@@ -83,6 +84,7 @@ are excluded.
|
|
|
83
84
|
| skill | [`discovery-interview`](../dist/agent-src/skills/discovery-interview/SKILL.md) | | Use when running discovery interviews — question-bank build, bias audit, insight extraction. Triggers on 'audit my guide', 'extract insights from transcript', 'is my hypothesis falsifiable'. |
|
|
84
85
|
| skill | [`doc-coauthoring`](../dist/agent-src/skills/doc-coauthoring/SKILL.md) | | Use when co-authoring a PRD, design doc, RFC, decision doc, or technical spec — 3-stage flow (context → section-by-section → reader-test) — even if the user just says 'help me write this spec'. |
|
|
85
86
|
| skill | [`docker`](../dist/agent-src/skills/docker/SKILL.md) | | Use when working with Docker — Dockerfile edits, docker-compose services, containers, or the dual-container (fast + Xdebug) setup — even when the user just says 'my container won't start'. |
|
|
87
|
+
| skill | [`dpa-review`](../dist/agent-src/skills/dpa-review/SKILL.md) | | Use when reviewing a DPA as controller or processor against GDPR Art. 28 — GREEN/YELLOW/RED gap frame, never a final call. Triggers on \"review this DPA\", \"check this DPA\". |
|
|
86
88
|
| skill | [`editorial-calendar`](../dist/agent-src/skills/editorial-calendar/SKILL.md) | | Use when shaping cadence — evergreen / campaign / reactive split, beat-mapping across channel stages, content-debt management. Triggers on 'plan our content cadence', 'what should we publish'. |
|
|
87
89
|
| skill | [`eloquent`](../dist/agent-src/skills/eloquent/SKILL.md) | | Use when writing Eloquent models, relationships, scopes, or queries via Model:: — 'fetch users with their orders'. NOT for PHPStan output, non-Eloquent services, or raw SQL questions. |
|
|
88
90
|
| skill | [`emit-tickets`](../dist/agent-src/skills/emit-tickets/SKILL.md) | | Use when materialising a roadmap into a ticket bundle — 'turn this roadmap into tickets', 'materialise tickets', 'mach Tickets aus der Roadmap', 'emit tickets for this plan'. |
|
|
@@ -135,6 +137,8 @@ are excluded.
|
|
|
135
137
|
| skill | [`laravel-websocket`](../dist/agent-src/skills/laravel-websocket/SKILL.md) | | Use when building Laravel real-time features — Broadcasting events, ShouldBroadcast, private/presence channels, Echo client. For non-Laravel WebSockets, use the stack-native skill. |
|
|
136
138
|
| skill | [`launch-readiness`](../dist/agent-src/skills/launch-readiness/SKILL.md) | | Use before merging a release-shaped PR — pre-merge checklist, rollout plan, rollback criteria, ops handoff. Triggers on 'ready to ship', 'launch checklist', 'rollout plan for X'. |
|
|
137
139
|
| skill | [`learning-to-rule-or-skill`](../dist/agent-src/skills/learning-to-rule-or-skill/SKILL.md) | | Use when a repeated learning, mistake, or successful pattern should be turned into a new rule or skill. Also use after completing a task to capture learnings from the work. |
|
|
140
|
+
| skill | [`legal-intake-triage`](../dist/agent-src/skills/legal-intake-triage/SKILL.md) | | Use when triaging the quick legal-question channel + intake; classifies and ROUTES, never reviews. Triggers on 'is this a legal problem', 'do we need a lawyer for this', 'quick legal question'. |
|
|
141
|
+
| skill | [`legal-practice-profile`](../dist/agent-src/skills/legal-practice-profile/SKILL.md) | | Use when setting up the legal pack — captures jurisdiction, role, escalation, and playbook into a plain-prose profile every legal skill reads. Triggers on \"set up legal\", \"legal profile\". |
|
|
138
142
|
| skill | [`lint-skills`](../dist/agent-src/skills/lint-skills/SKILL.md) | | Use when running the package's skill linter against all skills and rules to validate frontmatter, required sections, and execution metadata. |
|
|
139
143
|
| skill | [`livewire`](../dist/agent-src/skills/livewire/SKILL.md) | | Use when the project's frontend stack is Livewire — dispatched by `directives/ui/{apply,review,polish}.py`. Covers reactive state, events, lifecycle hooks, and component/view separation. |
|
|
140
144
|
| skill | [`livewire-architect`](../dist/agent-src/skills/livewire-architect/SKILL.md) | | Use when shaping a Livewire component before code — full-page vs partial, parent/child split, event flow, state-vs-props boundary, hydration cost — even on 'add this Livewire component'. |
|
|
@@ -154,6 +158,7 @@ are excluded.
|
|
|
154
158
|
| skill | [`module-management`](../dist/agent-src/skills/module-management/SKILL.md) | | Use when working within any module under `modules.root_paths` from `.agent-project-settings.yml` — Laravel HMVC, Symfony DDD-lite, Node monorepo, Python src/, Go internal/, or a custom path. |
|
|
155
159
|
| skill | [`motion-choreographer`](../dist/agent-src/skills/motion-choreographer/SKILL.md) | | Use when turning a locked still + blueprint into a provider-tuned motion prompt — camera, primary + secondary motion, physics, native-audio sync. Triggers 'motion prompt for Veo/Kling/Sora'. |
|
|
156
160
|
| skill | [`multi-tenancy`](../dist/agent-src/skills/multi-tenancy/SKILL.md) | | Use when working with the multi-tenant architecture — customer DB switching, FQDN routing, tenant isolation, or cross-tenant operations. |
|
|
161
|
+
| skill | [`nda-triage`](../dist/agent-src/skills/nda-triage/SKILL.md) | | Use when triaging an inbound NDA fast — GREEN/YELLOW/RED so only the hard ones reach a lawyer. Triggers on 'check this NDA', 'can we sign this NDA', 'is this NDA standard'. |
|
|
157
162
|
| skill | [`nextjs-patterns`](../dist/agent-src/skills/nextjs-patterns/SKILL.md) | | Writes Next.js App Router code — Server Components, Server Actions, RSC boundaries, route handlers, caching, and streaming — matching framework conventions and project architecture. |
|
|
158
163
|
| skill | [`okr-tree-modeling`](../dist/agent-src/skills/okr-tree-modeling/SKILL.md) | | Use when decomposing a company objective into team OKRs, auditing a draft OKR tree, or stress-testing an existing one for measurability and laddering. |
|
|
159
164
|
| skill | [`onboarding-design`](../dist/agent-src/skills/onboarding-design/SKILL.md) | | Use when designing customer onboarding — time-to-first-value, milestone design, friction audit, drop-off diagnosis. Triggers on 'fix onboarding', 'why do new accounts churn fast'. |
|
|
@@ -201,6 +206,7 @@ are excluded.
|
|
|
201
206
|
| skill | [`readme-writing-package`](../dist/agent-src/skills/readme-writing-package/SKILL.md) | | Use when creating or rewriting a README for a reusable package or library. Focus on installability, minimal usage example, compatibility, and developer onboarding. |
|
|
202
207
|
| skill | [`reasoning-orchestrator`](../dist/agent-src/skills/reasoning-orchestrator/SKILL.md) | | Use for multi-step / ambiguous / end-to-end work — refactor a whole module, drive a vague ticket to a verified result, plan+build+verify a migration; coordinates the reasoning chain across skills. |
|
|
203
208
|
| skill | [`receiving-code-review`](../dist/agent-src/skills/receiving-code-review/SKILL.md) | | Use when processing code review feedback (bot or human) before changing anything — triages, verifies, and pushes back with technical reasoning — even when the user just says 'fix the comments'. |
|
|
209
|
+
| skill | [`recursive-verification`](../dist/agent-src/skills/recursive-verification/SKILL.md) | | Use to run a depth-bounded self-correction loop (attempt → critic verdict → re-attempt) as a tunable test-time compute knob — a do-and-judge specialisation, default off, capability-gated. |
|
|
204
210
|
| skill | [`refine-prompt`](../dist/agent-src/skills/refine-prompt/SKILL.md) | | Reconstruct a free-form prompt into actionable AC + assumptions + confidence band before the engine plans — '/work \"…\"', 'baue X', 'ist der Prompt klar genug für die Engine?'. |
|
|
205
211
|
| skill | [`refine-ticket`](../dist/agent-src/skills/refine-ticket/SKILL.md) | | Refine a Jira/Linear ticket before planning — 'refine ticket', 'tighten AC on PROJ-123', 'ist das Ticket klar?' — rewritten ticket, Top-5 risks, persona voices, sub-skills orchestrated, close-prompt. |
|
|
206
212
|
| skill | [`release-comms`](../dist/agent-src/skills/release-comms/SKILL.md) | | Use when turning a shipped changelog into a release narrative — value-not-feature framing, audience-segmented surfaces, one source of truth. Triggers on 'announce the release', 'write changelog post'. |
|
|
@@ -263,7 +269,7 @@ are excluded.
|
|
|
263
269
|
| skill | [`voc-extract`](../dist/agent-src/skills/voc-extract/SKILL.md) | | Use when extracting Voice-of-Customer themes from existing artefacts — GH issues, PR threads, Sentry patterns. Triggers on 'what are users saying', 'recurring complaints', 'top themes'. |
|
|
264
270
|
| skill | [`voice-and-tone-design`](../dist/agent-src/skills/voice-and-tone-design/SKILL.md) | | Use when shaping brand voice — voice attributes, tone-by-context matrix, consistency review. Triggers on 'define our voice', 'why does our copy sound different on every surface'. |
|
|
265
271
|
|
|
266
|
-
## Rules (
|
|
272
|
+
## Rules (90)
|
|
267
273
|
|
|
268
274
|
| kind | name | type | description |
|
|
269
275
|
|---|---|---|---|
|
|
@@ -283,6 +289,8 @@ are excluded.
|
|
|
283
289
|
| rule | [`commit-policy`](../dist/agent-src/rules/commit-policy.md) | always | Commit policy — never commit and never ask about committing unless the user said so this turn, the roadmap authorizes it, or a commit command is invoked |
|
|
284
290
|
| rule | [`context-hygiene`](../dist/agent-src/rules/context-hygiene.md) | auto | Debugging, fixing errors, or long conversations — 3-failure stop rule, tool-loop detection, fresh-chat triggers |
|
|
285
291
|
| rule | [`copilot-routing`](../dist/agent-src/rules/copilot-routing.md) | auto | Configuring GitHub Copilot — copilot-instructions.md, PR-review patterns, suggestion behavior — route to copilot-config |
|
|
292
|
+
| rule | [`delegation-policy`](../dist/agent-src/rules/delegation-policy.md) | auto | Delegable multi-part work + auto-orchestration enabled — decompose, tier-size each slice, dispatch to subagents instead of doing it all in-session |
|
|
293
|
+
| rule | [`design-fidelity`](../dist/agent-src/rules/design-fidelity.md) | auto | A provided prototype / mockup / design system is the run's spec — build it 1:1; never swap fonts, controls, components, or layout without confirmation. Strictness: design.fidelity_mode. |
|
|
286
294
|
| rule | [`devcontainer-routing`](../dist/agent-src/rules/devcontainer-routing.md) | auto | Wiring DevContainers/Codespaces — devcontainer.json, images, VS Code features, port forwarding — route to the devcontainer skill |
|
|
287
295
|
| rule | [`direct-answers`](../dist/agent-src/rules/direct-answers.md) | always | Always — direct, unembellished answers. No flattery, no invented facts (verify load-bearing claims, otherwise ask). Emojis only as functional markers. Brevity is the default. |
|
|
288
296
|
| rule | [`docker-commands`](../dist/agent-src/rules/docker-commands.md) | auto | Running PHP inside Docker — artisan, composer, phpstan, rector, ecs, phpunit, tests, migrations, any CLI tool |
|
|
@@ -305,6 +313,7 @@ are excluded.
|
|
|
305
313
|
| rule | [`language-and-tone`](../dist/agent-src/rules/language-and-tone.md) | always | Language and tone — informal German Du, English code comments, .md files always English |
|
|
306
314
|
| rule | [`laravel-routing`](../dist/agent-src/rules/laravel-routing.md) | auto | Writing/reviewing Laravel code — controllers, Eloquent, Artisan, jobs, events, policies — route to laravel skill |
|
|
307
315
|
| rule | [`laravel-translations`](../dist/agent-src/rules/laravel-translations.md) | auto | Laravel language files, translations, i18n, lang/de, lang/en, __() helper, localization |
|
|
316
|
+
| rule | [`legal-safety-floor`](../dist/agent-src/rules/legal-safety-floor.md) | auto | Legal-pack output (contract/NDA/DPA review, triage) — never a final legal call; role-conditional header + attorney-review line; EU/DE-only hard refusal; machine-checkable Jurisdiction tag |
|
|
308
317
|
| rule | [`lethal-trifecta-guard`](../dist/agent-src/rules/lethal-trifecta-guard.md) | auto | Authoring a skill/command/tool that mixes private-data access + untrusted-content ingestion + external comms — break one leg of the lethal trifecta before shipping |
|
|
309
318
|
| rule | [`linked-projects-onboarding-gate`](../dist/agent-src/rules/linked-projects-onboarding-gate.md) | auto | IDE-attached sibling repo detected — prompt once to opt it into proactive cross-repo awareness, persist local-only, then surface cross-repo impact on relevant changes |
|
|
310
319
|
| rule | [`low-impact-corpus-privacy-floor`](../dist/agent-src/rules/low-impact-corpus-privacy-floor.md) | auto | Writing/editing/upstreaming entries in agents/decisions/low-impact-decisions.md — non-bypassable privacy floor for the learning corpus |
|
|
@@ -355,7 +364,7 @@ are excluded.
|
|
|
355
364
|
| rule | [`user-interrupt-priority`](../dist/agent-src/rules/user-interrupt-priority.md) | always | User interrupts override the current task — STOP, complete new task in full, then ASK before resuming; never silently return to prior work |
|
|
356
365
|
| rule | [`verify-before-complete`](../dist/agent-src/rules/verify-before-complete.md) | always | Verify before completion — run tests and quality tools before claiming done |
|
|
357
366
|
|
|
358
|
-
## Commands (
|
|
367
|
+
## Commands (162)
|
|
359
368
|
|
|
360
369
|
| kind | name | cluster | description |
|
|
361
370
|
|---|---|---|---|
|
|
@@ -420,6 +429,7 @@ are excluded.
|
|
|
420
429
|
| command | [`feature-roadmap`](../dist/agent-src/commands/feature/roadmap.md) | cluster: feature | Generate implementation roadmap(s) from a feature plan and link them |
|
|
421
430
|
| command | [`fix`](../dist/agent-src/commands/fix.md) | cluster: fix | Fix orchestrator — routes to ci, references, portability, seeder, pr-comments |
|
|
422
431
|
| command | [`fix-ci`](../dist/agent-src/commands/fix/ci.md) | cluster: fix | Fetch CI errors from GitHub Actions and fix them |
|
|
432
|
+
| command | [`fix-comments`](../dist/agent-src/commands/fix/comments.md) | cluster: fix | Review the code comments touched by the current branch and simplify, shorten, or remove each one |
|
|
423
433
|
| command | [`fix-portability`](../dist/agent-src/commands/fix/portability.md) | cluster: fix | Find and fix project-specific references in shared .augment/ package files |
|
|
424
434
|
| command | [`fix-pr-comments`](../dist/agent-src/commands/fix/pr-comments.md) | cluster: fix | Fix and reply to all open review comments (bots + human reviewers) on a GitHub PR |
|
|
425
435
|
| command | [`fix-refs`](../dist/agent-src/commands/fix/refs.md) | cluster: fix | Find and fix broken cross-references in .augment/ and agents/ files |
|
|
@@ -521,7 +531,7 @@ are excluded.
|
|
|
521
531
|
| command | [`video-storyboard`](../dist/agent-src/commands/video/storyboard.md) | cluster: video | Image-only storyboard — script → scenes → blueprint → image render → contact-sheet PNG via ffmpeg montage. No video calls. |
|
|
522
532
|
| command | [`work`](../dist/agent-src/commands/work.md) | | Drive a free-form prompt end-to-end through refine → score → plan → implement → test → verify → report — Option-A loop over the `work_engine` Python engine, confidence-band gated, no auto-git. |
|
|
523
533
|
|
|
524
|
-
## Guidelines (
|
|
534
|
+
## Guidelines (84)
|
|
525
535
|
|
|
526
536
|
| kind | name | category | description |
|
|
527
537
|
|---|---|---|---|
|
|
@@ -536,6 +546,8 @@ are excluded.
|
|
|
536
546
|
| guideline | [`critical-thinking`](../docs/guidelines/agent-infra/critical-thinking.md) | agent-infra | |
|
|
537
547
|
| guideline | [`developer-judgment`](../docs/guidelines/agent-infra/developer-judgment.md) | agent-infra | |
|
|
538
548
|
| guideline | [`direct-answers-demos`](../docs/guidelines/agent-infra/direct-answers-demos.md) | agent-infra | |
|
|
549
|
+
| guideline | [`domain-eval-anti-pattern`](../docs/guidelines/agent-infra/domain-eval-anti-pattern.md) | agent-infra | |
|
|
550
|
+
| guideline | [`domain-pack-architecture`](../docs/guidelines/agent-infra/domain-pack-architecture.md) | agent-infra | |
|
|
539
551
|
| guideline | [`engineering-memory-data-format`](../docs/guidelines/agent-infra/engineering-memory-data-format.md) | agent-infra | |
|
|
540
552
|
| guideline | [`failure-signatures`](../docs/guidelines/agent-infra/failure-signatures.md) | agent-infra | |
|
|
541
553
|
| guideline | [`first-principles`](../docs/guidelines/agent-infra/first-principles.md) | agent-infra | |
|
package/docs/command-flows.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
> Every command is classified in `src/flows/surface-map.yaml` (coverage enforced by `scripts/lint_command_flow_coverage.py`). The four user-work flows carry rich definitions in `src/flows/<flow>.yaml`.
|
|
9
9
|
|
|
10
|
-
**
|
|
10
|
+
**154 commands** across **10 surfaces** (4 user-work flows + 6 platform/domain surfaces).
|
|
11
11
|
|
|
12
12
|
## User-work flows
|
|
13
13
|
|
|
@@ -205,6 +205,12 @@ _AI image + video pipeline._
|
|
|
205
205
|
|
|
206
206
|
_Ghostwriter + post-as voice pipeline._
|
|
207
207
|
|
|
208
|
+
- `brand` — Brand-as-UX orchestrator — strategy, identity, tokens, review, voice. Routes to the brand-grounding skills…
|
|
209
|
+
- `brand-identity` — Define the brand identity — logo direction, colour story, type story, imagery direction — and the token con…
|
|
210
|
+
- `brand-review` — Audit emitted UI, copy, and assets against the active brand tokens and voice profile — flag any value not t…
|
|
211
|
+
- `brand-strategy` — Define brand positioning, archetype, voice, tone, and messaging over the brand-grounding corpus — the strat…
|
|
212
|
+
- `brand-tokens` — Derive a DTCG .tokens.json source of truth from brand decisions, then emit CSS vars + Tailwind via the no-N…
|
|
213
|
+
- `brand-voice` — Define the brand voice-and-tone profile — register, do/don't lexicon, and tone shifts by context — the prof…
|
|
208
214
|
- `ghostwriter` — Ghostwriter cluster — fetch, write, list, show, and delete public-figure voice profiles (the third voice pr…
|
|
209
215
|
- `ghostwriter-delete` — Hard-delete a ghostwriter profile at agents/reference/ghostwriter/<slug>.md after a two-step confirmation.…
|
|
210
216
|
- `ghostwriter-fetch` — Build or refresh a public-figure voice profile under agents/reference/ghostwriter/ from a URL or bare name;…
|
|
@@ -33,23 +33,30 @@ fallback during the v2.4 namespace transition). This is where a single
|
|
|
33
33
|
developer enables members, pins models, and sets caps once — and the
|
|
34
34
|
council then works in **every** project they open, with no per-project
|
|
35
35
|
file to check in or accidentally commit. See
|
|
36
|
-
[ADR-093](../decisions/ADR-093-ai-council-config-user-global.md)
|
|
36
|
+
[ADR-093](../decisions/ADR-093-ai-council-config-user-global.md) and
|
|
37
|
+
[ADR-104](../decisions/ADR-104-ai-council-config-global-only.md).
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
**The council config is ALWAYS user-global. The project tree is NEVER
|
|
40
|
+
searched for it.** `scripts/ai_council/config.ts:resolve_config_path`
|
|
41
|
+
resolves the active file with this precedence (first match wins):
|
|
40
42
|
|
|
41
43
|
1. **`$AI_COUNCIL_CONFIG`** — an explicit absolute path. Honoured even
|
|
42
44
|
when the target is absent (so a typo surfaces as "create it here"
|
|
43
45
|
rather than silently falling back). Primarily for tests / power users.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
config. This **overrides** the user-global file for that project.
|
|
47
|
-
3. **User-global** `~/.event4u/agent-config/settings/.ai-council.yml` — the
|
|
46
|
+
This is an explicit path, not a project search.
|
|
47
|
+
2. **User-global** `~/.event4u/agent-config/settings/.ai-council.yml` — the
|
|
48
48
|
canonical default described above.
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
There is **no project-local lookup.** A `<project_root>/agents/settings/.ai-council.yml`
|
|
51
|
+
in any project (including this package's own tree) is ignored — the
|
|
52
|
+
council never reads it (ADR-104, superseding the project-local override
|
|
53
|
+
ADR-093 had kept). The absence of a council file *in a project* therefore
|
|
54
|
+
says **nothing** about whether the council is configured; only the
|
|
55
|
+
user-global file (or the `$AI_COUNCIL_CONFIG` override) decides that.
|
|
56
|
+
|
|
57
|
+
When neither exists, the loader reports the user-global path as the place
|
|
58
|
+
to create it. `agents/templates/.ai-council.yml.example` ships the
|
|
59
|
+
documented shape to copy from. The legacy `ai_council.*` block under
|
|
53
60
|
`.agent-settings.yml` remains removed (Phase 0 Step 5); a one-line
|
|
54
61
|
breadcrumb there points at this contract.
|
|
55
62
|
|
|
@@ -87,6 +87,13 @@ Single-line. The pretty-printed reference shape:
|
|
|
87
87
|
Unknown trailing fields are forward-compat extensions; readers MUST
|
|
88
88
|
NOT raise on them.
|
|
89
89
|
|
|
90
|
+
A line MAY carry an optional `orchestration` object when the run was
|
|
91
|
+
produced by the auto-dispatch orchestration layer. It is additive and
|
|
92
|
+
non-breaking — `schema_version` is unchanged, no existing field is
|
|
93
|
+
removed or renamed, and readers that do not understand it ignore it per
|
|
94
|
+
the forward-compat rule above. Its shape lives in
|
|
95
|
+
[`orchestration-telemetry.md`](../../src/agent-src/contexts/execution/orchestration-telemetry.md).
|
|
96
|
+
|
|
90
97
|
## Privacy floor
|
|
91
98
|
|
|
92
99
|
Lines MUST NOT contain:
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
stability: beta
|
|
3
|
+
keep-beta-until: 2026-09-23
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Auto-Orchestration v1
|
|
7
|
+
|
|
8
|
+
**Purpose.** Pin the data shapes the automatic subagent-orchestration layer
|
|
9
|
+
depends on — the host-capability manifest, the spawn brief, and the
|
|
10
|
+
orchestration telemetry object — so producers and consumers agree without
|
|
11
|
+
re-deriving them. Behaviour (when to dispatch, how to route, how to verify)
|
|
12
|
+
lives in the context docs; this contract pins the **shapes**.
|
|
13
|
+
|
|
14
|
+
**Scope.** The three JSON shapes below + the activation precondition. Does not
|
|
15
|
+
define classification rules, routing policy, or the verification budget — those
|
|
16
|
+
are the cited context docs.
|
|
17
|
+
|
|
18
|
+
Last refreshed: 2026-06-23. Decided in
|
|
19
|
+
[ADR-105](../decisions/ADR-105-automatic-subagent-orchestration.md).
|
|
20
|
+
|
|
21
|
+
## Host-capability manifest
|
|
22
|
+
|
|
23
|
+
Resolved once per session, cached. Safe default = all-false.
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{ "schema_version": 1, "subagent_spawn": false, "parallel_spawn": false, "status_polling": false, "separate_quota_pool": false }
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Full semantics: [`host-capability-manifest`](../../src/agent-src/contexts/execution/host-capability-manifest.md).
|
|
30
|
+
|
|
31
|
+
## Spawn brief
|
|
32
|
+
|
|
33
|
+
Composed per delegated sub-task; knowledge is references only, capped.
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{ "task": "<sub-task>", "role_mode": "reviewer|null", "profile": "<id|null>", "personas": ["<id>"], "knowledge_refs": ["<id-or-path>"] }
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Full semantics: [`subagent-spawn-contract`](../../src/agent-src/contexts/execution/subagent-spawn-contract.md).
|
|
40
|
+
|
|
41
|
+
## Orchestration telemetry
|
|
42
|
+
|
|
43
|
+
Optional `orchestration` object on an [`audit-log-v1`](audit-log-v1.md) line —
|
|
44
|
+
additive, non-breaking, counts + ids only.
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{ "task_size_estimate": 0, "spawn_count": 0, "tiers": [], "token_delta": 0, "wall_clock_ms": 0, "outcome": "DONE", "verify_mode": "deterministic" }
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Full semantics: [`orchestration-telemetry`](../../src/agent-src/contexts/execution/orchestration-telemetry.md).
|
|
51
|
+
|
|
52
|
+
## Activation precondition
|
|
53
|
+
|
|
54
|
+
Auto-dispatch is attempted only when:
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
subagents.enabled AND subagents.auto != off AND manifest.subagent_spawn AND task-is-delegable
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Any failing → in-session. Full gate:
|
|
61
|
+
[`auto-orchestration-activation`](../../src/agent-src/contexts/execution/auto-orchestration-activation.md).
|
|
62
|
+
|
|
63
|
+
## Cross-references
|
|
64
|
+
|
|
65
|
+
- [ADR-105](../decisions/ADR-105-automatic-subagent-orchestration.md) — the decisions.
|
|
66
|
+
- [`subagent-routing`](../../src/agent-src/contexts/execution/subagent-routing.md) — model downshift + quota bonus.
|
|
67
|
+
- [`auto-dispatch-classification`](../../src/agent-src/contexts/execution/auto-dispatch-classification.md) — delegability rules.
|
|
68
|
+
- [`verify-budget`](../../src/agent-src/contexts/execution/verify-budget.md) — verification budget.
|
|
69
|
+
- [`subagent-steering`](../../src/agent-src/contexts/execution/subagent-steering.md) — guardrails + kill-switch.
|
|
70
|
+
- [`orchestration-benchmark-gate`](../../src/agent-src/contexts/execution/orchestration-benchmark-gate.md) — the default-flip gate.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Capability Boundary Matrix
|
|
2
|
+
|
|
3
|
+
The per-pack safety posture at a glance: is a pack on by default, does it need
|
|
4
|
+
consent, a council pass, a disclaimer, an eval — and how risky is it. The matrix
|
|
5
|
+
makes the invisible visible; the **enforcement** lives in the per-pack safety
|
|
6
|
+
floors + gates (this doc is the map, not the engine).
|
|
7
|
+
|
|
8
|
+
> Source of truth: `src/config/discovery/packs.yml` (`surface_tier`,
|
|
9
|
+
> `trust_level_default`, `domain`, and the legal-review-prep gate fields) + the
|
|
10
|
+
> domain safety-floor rules. Built in `road-to-capability-governance` Phase 1;
|
|
11
|
+
> `risk_class` becomes a real pack field in Phase 2.
|
|
12
|
+
|
|
13
|
+
## Policy by risk class
|
|
14
|
+
|
|
15
|
+
| `risk_class` | default install | consent | council / deep-research | disclaimer | eval expectation | surface_tier |
|
|
16
|
+
|---|---|---|---|---|---|---|
|
|
17
|
+
| **low** | per profile | no | no | no | optional | `core` |
|
|
18
|
+
| **medium** (advisory) | per profile | no | no | **yes** (domain safety floor) | recommended | `core` |
|
|
19
|
+
| **high** | **no** (opt-in) | **yes** | **yes** (fail-closed) | **yes** | **yes** | `lab` |
|
|
20
|
+
|
|
21
|
+
- **low** — engineering, product, meta, and tooling packs. Normal capability; no domain liability surface.
|
|
22
|
+
- **medium (advisory)** — packs that emit advisory-shaped output (finance, strategy). They carry a **domain safety floor** that mandates a not-X-advice disclaimer + structural elements (assumptions / counter-case / confidence). Not off-by-default, but never a final call.
|
|
23
|
+
- **high** — regulated-advice-adjacent. Off by default, consent-gated, council-gated (fail-closed), disclaimer-bound, eval-backed, lab-tier, and promotion-gated behind a professional review.
|
|
24
|
+
|
|
25
|
+
## Per-pack assignment (non-low)
|
|
26
|
+
|
|
27
|
+
| Pack | `risk_class` | Floor | Gates |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| `legal-review-prep` | **high** | `legal-safety-floor` | consent (`legal_review_prep.acknowledged`) · council (`require_council`, fail-closed) · hard individual-case STOP · attorney-review line + `Jurisdiction:` tag · attorney-framing-review promotion tripwire · `default_install: false` · `surface_tier: lab` |
|
|
30
|
+
| `finance-basic` | medium | `finance-safety-floor` | not-financial-advice disclaimer · assumptions + sensitivity + confidence + counter-case · no final invest/raise call |
|
|
31
|
+
| `finance-advanced` | medium | `finance-safety-floor` | as finance-basic (DCF / scenario depth) |
|
|
32
|
+
| `founder-strategy` | medium | `strategy-safety-floor` | not-a-strategic-decision footer · bet + counter-case + residual risk + decision owner |
|
|
33
|
+
|
|
34
|
+
Every other pack in `packs.yml` is **low** by default. A pack moves to medium the
|
|
35
|
+
moment it ships advisory-shaped output behind a domain safety floor, and to high
|
|
36
|
+
only through the high-risk checklist (consent + council + disclaimer + eval +
|
|
37
|
+
lab + promotion gate) — see `road-to-legal-review-prep` for the worked example.
|
|
38
|
+
|
|
39
|
+
## Capability lifecycle (a view, not a new axis)
|
|
40
|
+
|
|
41
|
+
Reviewers wanted one lifecycle vocabulary for promoting / retiring capabilities.
|
|
42
|
+
This is a **derived view** over the metadata that already exists
|
|
43
|
+
(`trust_level_default` + `surface_tier` + eval presence) — **not** a new field.
|
|
44
|
+
Nothing to set; it is read off what is already there.
|
|
45
|
+
|
|
46
|
+
| Lifecycle | Derived from | Promotion criterion (to reach it) |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| **experimental** | `surface_tier: lab` **or** `trust_level_default: experimental` | default for any new pack/skill |
|
|
49
|
+
| **validated** | `surface_tier: core` **and** has an `evals/` (or regression harness) | a real eval exists + the pack left lab |
|
|
50
|
+
| **recommended** | validated **and** in a default profile / ≥1 real consumer | adoption evidence, not just existence |
|
|
51
|
+
| **deprecated** | a `deprecated`/`superseded_by` marker in frontmatter | a successor named (per the persona/skill deprecation discipline) |
|
|
52
|
+
|
|
53
|
+
Read the lifecycle column off the matrix above: a `lab` + `experimental` pack
|
|
54
|
+
(e.g. `legal-review-prep`, `ai-video`) is **experimental**; a `core` pack with an
|
|
55
|
+
eval is **validated**; a `core` pack a profile ships is **recommended**.
|
|
56
|
+
Promotion stays a human/maintainer decision (criteria-documented, never
|
|
57
|
+
automated — see `road-to-capability-governance` Phase 6).
|
|
58
|
+
|
|
59
|
+
## See also
|
|
60
|
+
|
|
61
|
+
- [`legal-safety-floor`](../../src/rules/legal-safety-floor.md) — the high-risk exemplar.
|
|
62
|
+
- `finance-safety-floor` · `strategy-safety-floor` — the medium-risk advisory floors.
|
|
63
|
+
- [`domain-pack-architecture`](../guidelines/agent-infra/domain-pack-architecture.md) — the pack build sequence.
|
|
64
|
+
- `road-to-capability-governance` Phase 2 — `risk_class` as a validated pack field.
|
|
@@ -28,7 +28,7 @@ column 1 of this table.
|
|
|
28
28
|
|
|
29
29
|
| Cluster | Phase | Sub-commands | Replaces |
|
|
30
30
|
|---|:-:|---|---|
|
|
31
|
-
| `fix` | 1 | `ci` · `pr-comments` · `pr-bot-comments` · `pr-developer-comments` · `portability` · `refs` · `seeder` | `fix-ci` · `fix-pr-comments` · `fix-pr-bot-comments` · `fix-pr-developer-comments` · `fix-portability` · `fix-references` · `fix-seeder` |
|
|
31
|
+
| `fix` | 1 | `ci` · `pr-comments` · `pr-bot-comments` · `pr-developer-comments` · `portability` · `refs` · `seeder` · `comments` | `fix-ci` · `fix-pr-comments` · `fix-pr-bot-comments` · `fix-pr-developer-comments` · `fix-portability` · `fix-references` · `fix-seeder`; `comments` added 2026-06-22 — audits the **code comments** in the current branch's diff (simplify / shorten / remove), distinct from the PR-review-thread `pr-comments` sub |
|
|
32
32
|
| `optimize` | 1 | `agents-dir` · `augmentignore` · `rtk` · `skills` | `optimize-augmentignore` · `optimize-rtk-filters` · `optimize-skills` · former `/optimize agents` and `/optimize agents-md` moved to the `/agents` file-family cluster 2026-05-09; `/agents prepare/audit/cleanup` collapsed into the single `/optimize agents-dir` (flags or wizard) per the agent-doc consolidation |
|
|
33
33
|
| `feature` | 1 | `explore` · `plan` · `refactor` · `roadmap` · `dev` | `feature-explore` · `feature-plan` · `feature-refactor` · `feature-roadmap` · `feature-dev` |
|
|
34
34
|
| `chat-history` | 2 | `show` · `import` · `learn` | `chat-history` (legacy status) — `resume` / `clear` / `checkpoint` removed in `road-to-chat-history-hook-only` (auto-adopt + structural hooks); `import` (verbatim cross-session render) and `learn` (project-improving learning extraction) added in the v4 stateless schema |
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
},
|
|
75
75
|
"workspace_id": {
|
|
76
76
|
"type": "string",
|
|
77
|
-
"enum": ["engineering", "product", "finance", "founder", "gtm", "ops", "small-business", "construction", "agent-config-maintainer"]
|
|
77
|
+
"enum": ["engineering", "product", "finance", "founder", "gtm", "ops", "small-business", "construction", "legal-review-prep", "agent-config-maintainer"]
|
|
78
78
|
},
|
|
79
79
|
"pack_id": {
|
|
80
80
|
"type": "string",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"finance-basic", "finance-advanced",
|
|
85
85
|
"gtm-sales", "gtm-marketing",
|
|
86
86
|
"ops-people", "founder-strategy", "small-business", "construction", "ai-video", "ai-image", "fun", "meta", "git", "frontend-design", "brand",
|
|
87
|
-
"memory", "analytics", "product-reasoning", "analysis-workbench"
|
|
87
|
+
"memory", "analytics", "product-reasoning", "analysis-workbench", "legal-review-prep"
|
|
88
88
|
]
|
|
89
89
|
},
|
|
90
90
|
"lifecycle": {
|
|
@@ -156,5 +156,8 @@ layout + cloud-bundle pipeline:
|
|
|
156
156
|
3. Commit in logical chunks with Conventional Commits.
|
|
157
157
|
4. Open a PR against `main`.
|
|
158
158
|
|
|
159
|
+
Per-pack safety posture (default-install / consent / council / disclaimer /
|
|
160
|
+
risk_class): [`capability-boundary.md`](capability-boundary.md).
|
|
161
|
+
|
|
159
162
|
User-facing story: [`README.md`](../../README.md). Architecture
|
|
160
163
|
deep-dive: [`docs/architecture.md`](../architecture.md).
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Subagent Boundary Contract
|
|
2
|
+
|
|
3
|
+
What a subagent **owns** and what it must **never** own. As delegation spreads
|
|
4
|
+
(the `subagent-orchestration` modes, the `delegation-policy` auto-trigger,
|
|
5
|
+
workflow fan-out), the failure mode is scope drift: a subagent quietly
|
|
6
|
+
redefining the task, expanding scope, or bypassing a floor. This contract draws
|
|
7
|
+
the line.
|
|
8
|
+
|
|
9
|
+
## The ownership line
|
|
10
|
+
|
|
11
|
+
A subagent **executes one scoped, named task and returns a conclusion.** That is
|
|
12
|
+
the whole of its authority.
|
|
13
|
+
|
|
14
|
+
### A subagent OWNS
|
|
15
|
+
|
|
16
|
+
- **Its scoped task** — the single, well-specified slice it was dispatched with.
|
|
17
|
+
- **Its method** — how it searches, reads, reasons, or drafts within that slice.
|
|
18
|
+
- **Its return** — a conclusion + evidence, sized to what the orchestrator asked for (structured output when a schema was given).
|
|
19
|
+
|
|
20
|
+
> **Explainability is durable, not host-ephemeral.** The return must carry a brief
|
|
21
|
+
> *why + evidence* (which sources/steps led to the conclusion) **in the artefact /
|
|
22
|
+
> output itself**, not only in the host's session reasoning. A user opening the
|
|
23
|
+
> result later — possibly across sessions — must be able to trace the *why* without
|
|
24
|
+
> reassembling provider chat logs. This is the reasoning-in-notes discipline applied
|
|
25
|
+
> to delegation: conclusions + evidence travel with the output, raw chain-of-thought
|
|
26
|
+
> does not.
|
|
27
|
+
|
|
28
|
+
### A subagent must NEVER own
|
|
29
|
+
|
|
30
|
+
- **Task meaning** — it does not redefine, broaden, or reinterpret the parent task. An ambiguous slice returns "ambiguous + why", it does not guess a bigger task.
|
|
31
|
+
- **Cross-task memory / state** — it does not write durable memory, mutate shared roadmaps, or persist decisions for other tasks; its output is its only channel.
|
|
32
|
+
- **Pack / surface decisions** — it does not decide what ships, what installs, or what a pack contains; those are orchestrator + human calls.
|
|
33
|
+
- **Safety-floor bypass** — every floor applies *inside* the subagent. The Hard Floor ([`non-destructive-by-default`](../../src/rules/non-destructive-by-default.md)), the domain safety floors, [`scope-control`](../../src/rules/scope-control.md), and [`commit-policy`](../../src/rules/commit-policy.md) are not lifted by being one level down. A subagent cannot do what its parent may not.
|
|
34
|
+
- **Silent scope expansion** — touching files / systems beyond its slice is a contract violation, surfaced, not absorbed.
|
|
35
|
+
|
|
36
|
+
## Orchestrator obligations (the other side)
|
|
37
|
+
|
|
38
|
+
- **Verify, never adopt blind** — a subagent return is evidence, not truth; the orchestrator verifies per [`delegation-policy`](../../src/rules/delegation-policy.md)'s Iron Law before adopting it.
|
|
39
|
+
- **Tier-size the slice, not the agent** — dispatch at the slice's complexity, not the session's.
|
|
40
|
+
- **Own the safety decision** — a Hard-Floor or egress action surfaced by a subagent is decided by the orchestrator + human, never executed by the subagent.
|
|
41
|
+
|
|
42
|
+
## Failure modes
|
|
43
|
+
|
|
44
|
+
- A research subagent that, finding the task underspecified, invents a broader task and "helpfully" does it.
|
|
45
|
+
- A subagent that writes to shared memory / a roadmap dashboard as a side effect.
|
|
46
|
+
- A subagent that commits, pushes, or deletes because "the task implied it".
|
|
47
|
+
- An orchestrator that pastes a subagent's claim into the answer without verifying it.
|
|
48
|
+
|
|
49
|
+
## See also
|
|
50
|
+
|
|
51
|
+
- [`subagent-orchestration`](../../src/skills/subagent-orchestration/SKILL.md) — the dispatch modes this contract bounds.
|
|
52
|
+
- [`delegation-policy`](../../src/rules/delegation-policy.md) — the delegate-by-default trigger + verify-every-return Iron Law.
|
|
53
|
+
- [`capability-boundary`](capability-boundary.md) — the pack-level companion (this is the agent-level one).
|
|
54
|
+
- [`non-destructive-by-default`](../../src/rules/non-destructive-by-default.md) — the Hard Floor that applies inside subagents too.
|
|
@@ -93,6 +93,7 @@ install:
|
|
|
93
93
|
| `ops` | Operations | Hiring, comp, perf, org design, runbooks. |
|
|
94
94
|
| `small-business` | Small Business | Self-employed / SMB-shaped owner workflows. |
|
|
95
95
|
| `construction` | Construction | Trade-business workflows (planning, quotes). |
|
|
96
|
+
| `legal` | Legal | In-house legal — contract/NDA/DPA review, privacy, legal triage (EU/DE scope). |
|
|
96
97
|
| `agent-config-maintainer` | Maintainer | Skills/rules/commands that maintain *this* package. |
|
|
97
98
|
|
|
98
99
|
Amendments to the workspace list require an ADR-013 amendment.
|
|
@@ -120,6 +121,7 @@ Amendments to the workspace list require an ADR-013 amendment.
|
|
|
120
121
|
| `founder-strategy` | Vision, fundraising narrative, competitive moat. (Renamed from `founder` to honour the non-overlap rule against `profile.id: founder`.) |
|
|
121
122
|
| `small-business` | SMB-shaped owner workflows. |
|
|
122
123
|
| `construction` | Trade-business workflows. |
|
|
124
|
+
| `legal` | In-house legal — EU/DE-scoped contract/NDA/DPA review and legal triage; procedure-only, attorney-review draft output. |
|
|
123
125
|
| `ai-video` | AI video pipeline (per ADR-011, the only heavyweight domain). |
|
|
124
126
|
| `fun` | Non-essential social/fun workflows (prediction-pool tips, etc.). Optional under the `small-business` workspace; `experimental` trust. |
|
|
125
127
|
| `meta` | Artefacts that maintain *this* package (`agent-config` itself). |
|
|
@@ -295,6 +297,36 @@ consistency governance that constrains UI). Mirrored in
|
|
|
295
297
|
2026-06-13 (road-to-image-brand-typography Phase B). Additive, no rename;
|
|
296
298
|
non-overlap with cost-profile and `profile.id` reservations holds.
|
|
297
299
|
|
|
300
|
+
### 2026-06-24 — New `legal` workspace + `legal` pack
|
|
301
|
+
|
|
302
|
+
Added workspace id `legal` and pack id `legal` to the closed vocabularies
|
|
303
|
+
(in-house legal — EU/DE-scoped contract/NDA/DPA review and legal triage;
|
|
304
|
+
procedure-only, no default legal positions; every output a draft for attorney
|
|
305
|
+
review). Mirrored in
|
|
306
|
+
[`src/config/discovery/workspaces.yml`](../../src/config/discovery/workspaces.yml),
|
|
307
|
+
[`src/config/discovery/packs.yml`](../../src/config/discovery/packs.yml), and the
|
|
308
|
+
`ADR_WORKSPACES` + `ADR_PACKS` sets in
|
|
309
|
+
[`src/scripts/lint_discovery_vocabulary.ts`](../../src/scripts/lint_discovery_vocabulary.ts).
|
|
310
|
+
`workspaces: [legal]`, `domain: legal`, `size_class: medium`,
|
|
311
|
+
`trust_level_default: experimental`, `surface_tier: lab` (gated lab-tier until the
|
|
312
|
+
Gate-2 maintenance owner + external qualification is confirmed —
|
|
313
|
+
road-to-legal-pack Phase 0.2). Council-resolved across three rounds 2026-06-24
|
|
314
|
+
(road-to-legal-pack). Additive, no rename; non-overlap with cost-profile and
|
|
315
|
+
`profile.id` reservations holds.
|
|
316
|
+
|
|
317
|
+
### 2026-06-24 — Rename `legal` → `legal-review-prep` (workspace + pack)
|
|
318
|
+
|
|
319
|
+
Renamed the workspace id and pack id `legal` → `legal-review-prep` in both
|
|
320
|
+
closed vocabularies, the schema enums, and all artefacts (`src/domains/legal/`
|
|
321
|
+
→ `src/domains/legal-review-prep/`, the five skill frontmatters, the
|
|
322
|
+
`legal-safety-floor` rule). Driven by a deep AI-council (3 rounds,
|
|
323
|
+
anthropic/claude-sonnet-4-5 + openai/gpt-4o, 2026-06-24) + ~8 external
|
|
324
|
+
7.1.0 reviewers: the name `legal` reads as "legal advice" and undermines the
|
|
325
|
+
not-legal-advice positioning; `legal-review-prep` names the actual capability
|
|
326
|
+
(prepare for attorney review). The `domain: legal` classifier and the `legal`
|
|
327
|
+
user-type are a different axis and are unchanged. Rename, not additive;
|
|
328
|
+
non-overlap reservations still hold. See `road-to-legal-review-prep` Phase 0.
|
|
329
|
+
|
|
298
330
|
## Cross-references
|
|
299
331
|
|
|
300
332
|
- [ADR-007 — Agent Discovery Scopes](ADR-007-agent-discovery-scopes.md):
|