@event4u/agent-config 14.18.0 → 14.20.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/.augment-plugin/marketplace.json +3 -3
- package/.augment-plugin/plugin.json +1 -1
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +120 -129
- package/README.md +71 -149
- package/dist/agent-src/README.md +1 -1
- package/dist/agent-src/commands/agent-handoff.md +44 -43
- package/dist/agent-src/commands/review/changes.md +19 -19
- package/dist/agent-src/commands/review.md +2 -2
- package/dist/agent-src/contexts/execution/host-capability-manifest.md +37 -4
- package/dist/agent-src/rules/autonomous-execution.md +1 -1
- package/dist/agent-src/rules/git-history-discipline.md +2 -2
- package/dist/agent-src/rules/guidelines.md +1 -1
- package/dist/agent-src/rules/session-canary.md +2 -2
- package/dist/agent-src/rules/token-efficiency.md +1 -1
- package/dist/agent-src/rules/untrusted-input-defense.md +0 -2
- package/dist/agent-src/skills/adversarial-review/SKILL.md +0 -8
- package/dist/agent-src/skills/canvas-design/SKILL.md +1 -1
- package/dist/agent-src/skills/design-intelligence/SKILL.md +1 -1
- package/dist/agent-src/skills/design-intelligence/data/app-interface.csv +1 -1
- package/dist/agent-src/skills/design-intelligence/data/motion.csv +17 -17
- package/dist/agent-src/skills/design-intelligence/data/ux-guidelines.csv +2 -2
- package/dist/agent-src/skills/design-intelligence/references/context-and-registers.md +17 -0
- package/dist/agent-src/skills/design-intelligence/references/design-rules-checklist.md +4 -4
- package/dist/agent-src/skills/design-review/SKILL.md +1 -1
- package/dist/agent-src/skills/design-variations/SKILL.md +1 -1
- package/dist/agent-src/skills/evaluate-llm-feature/SKILL.md +1 -1
- package/dist/agent-src/skills/existing-ui-audit/SKILL.md +1 -1
- package/dist/agent-src/skills/fe-design/SKILL.md +32 -5
- package/dist/agent-src/skills/fe-design/references/craft-floor.md +7 -0
- package/dist/agent-src/skills/fe-design/references/design-patterns.md +47 -2
- package/dist/agent-src/skills/laravel-scheduling/SKILL.md +3 -1
- package/dist/agent-src/skills/markitdown/SKILL.md +1 -1
- package/dist/agent-src/skills/project-analyzer/SKILL.md +0 -6
- package/dist/agent-src/skills/react-native-setup/SKILL.md +3 -3
- package/dist/agent-src/skills/react-shadcn-ui/SKILL.md +1 -1
- package/dist/agent-src/skills/sequential-thinking/SKILL.md +18 -8
- package/dist/agent-src/skills/skill-improvement-pipeline/SKILL.md +28 -6
- package/dist/agent-src/skills/tailwind-engineer/SKILL.md +1 -1
- package/dist/agent-src/skills/test-driven-development/SKILL.md +1 -3
- package/dist/agent-src/skills/ui-apply-generic/SKILL.md +1 -1
- package/dist/agent-src/skills/ui-component-architect/SKILL.md +1 -1
- package/dist/agent-src/skills/using-git-worktrees/SKILL.md +17 -2
- package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
- package/dist/agent-src/templates/roadmaps.md +14 -1
- package/dist/agent-src/templates/scripts/telemetry/mcp_lite.ts +213 -0
- package/dist/agent-src/templates/scripts/telemetry/report_renderer.ts +16 -0
- package/dist/agent-src/templates/scripts/telemetry_report.ts +22 -2
- package/dist/cli/commands/recordTriggerEval.js +2 -2
- package/dist/cli/main.js +1 -1
- package/dist/cli/mcp/dispatch.js +10 -0
- package/dist/cli/mcp/stdio.js +33 -2
- package/dist/cli/mcp/telemetry.js +227 -0
- package/dist/cli-delegate/{chunk-AKJGUQNO.js → chunk-C6IPZRDA.js} +484 -353
- package/dist/cli-delegate/{chunk-CYH5SP6M.js → chunk-I6RHFQEG.js} +151 -16
- package/dist/cli-delegate/{chunk-7RXIKF62.js → chunk-NUMQHLS5.js} +304 -136
- package/dist/cli-delegate/{chunk-PMEKGDED.js → chunk-PI2GU3DP.js} +163 -1
- package/dist/cli-delegate/{chunk-7PRE6ZV2.js → chunk-YS6XTLEK.js} +199 -4
- package/dist/cli-delegate/chunk-ZVBOHSVF.js +1109 -0
- package/dist/cli-delegate/cmd_adr_effective.js +318 -81
- package/dist/cli-delegate/cmd_conformance.js +489 -121
- package/dist/cli-delegate/cmd_doctor.js +2 -2
- package/dist/cli-delegate/cmd_export.js +2 -2
- package/dist/cli-delegate/cmd_handoff.js +42 -12
- package/dist/cli-delegate/cmd_memory_get.js +1 -1
- package/dist/cli-delegate/cmd_prune.js +2 -2
- package/dist/cli-delegate/cmd_route_audit.js +2 -2
- package/dist/cli-delegate/cmd_session_recycle.js +59 -902
- package/dist/cli-delegate/cmd_settings_migrate.js +2 -2
- package/dist/cli-delegate/cmd_sync.js +2 -2
- package/dist/cli-delegate/cmd_uninstall.js +2 -2
- package/dist/cli-delegate/cmd_validate.js +2 -2
- package/dist/discovery/deprecation-report.md +1 -1
- package/dist/discovery/discovery-manifest.json +34 -33
- package/dist/discovery/discovery-manifest.json.sha256 +1 -1
- package/dist/discovery/discovery-manifest.summary.md +1 -1
- package/dist/discovery/dormancy-report.md +1 -1
- package/dist/discovery/orphan-report.md +1 -1
- package/dist/discovery/packs.json +2 -2
- package/dist/discovery/trust-report.md +1 -1
- package/dist/discovery/workspaces.json +2 -2
- package/dist/hooks/dispatch.js +4455 -3025
- package/dist/install/install.mjs +975 -689
- package/dist/mcp/registry-manifest.json +2 -2
- package/dist/mcp/server.json +2 -2
- package/dist/mcp/server.mjs +2087 -1134
- package/dist/scripts/_lib/model_tier.js +1 -1
- package/dist/scripts/mcp_server/telemetry.js +148 -0
- package/docs/guidelines/agent-infra/evaluator-independence-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/naming.md +1 -1
- package/docs/guidelines/agent-infra/roadmap-progress-mechanics.md +1 -1
- package/docs/guidelines/agent-infra/security-lint-containment.md +46 -6
- package/docs/guidelines/agent-infra/self-improvement-pipeline.md +4 -4
- package/docs/guidelines/agent-infra/untrusted-input-spotlighting.md +1 -1
- package/docs/guidelines/design-antipatterns.md +87 -64
- package/docs/guidelines/redundancy-taxonomy.md +28 -0
- package/package.json +1 -1
- package/src/agent-src/README.md +1 -1
- package/src/agent-src/templates/scripts/telemetry/mcp_lite.ts +213 -0
- package/src/agent-src/templates/scripts/telemetry/report_renderer.ts +16 -0
- package/src/agent-src/templates/scripts/telemetry_report.ts +22 -2
- package/src/config/assurance-capability-registry.json +9 -0
- package/src/config/ci-local-parity.yml +6 -0
- package/src/config/gate-coverage.yml +225 -0
- package/src/config/gate-violation-baselines.json +18 -6
- package/src/config/release-gate-locality.yml +12 -0
- package/src/scripts/_cli/cmd_doctor.ts +2 -2
- package/src/scripts/_cli/cmd_handoff.ts +1 -1
- package/src/scripts/_cli/cmd_session_recycle.ts +51 -3
- package/src/scripts/_cli/cmd_update.ts +1 -1
- package/src/scripts/_cli/cmd_versions.ts +1 -1
- package/src/scripts/_lib/adr_frontmatter.ts +44 -0
- package/src/scripts/_lib/audit_field_provenance.ts +44 -3
- package/src/scripts/_lib/consequence_objects.ts +152 -0
- package/src/scripts/_lib/exec_evidence.ts +7 -0
- package/src/scripts/_lib/global_deploy_inventory.ts +2 -2
- package/src/scripts/_lib/host_capability.ts +38 -0
- package/src/scripts/_lib/host_permission_checks.ts +251 -0
- package/src/scripts/_lib/install_reach_checks.ts +33 -1
- package/src/scripts/_lib/mcp_bridge.ts +222 -10
- package/src/scripts/_lib/mcp_consent_residual.ts +173 -0
- package/src/scripts/_lib/model_tier.ts +1 -1
- package/src/scripts/_lib/obligation_frequency.ts +2 -2
- package/src/scripts/_lib/orchestration_record.ts +23 -1
- package/src/scripts/_lib/recycle_envelope_paths.ts +190 -0
- package/src/scripts/_lib/release_highlights.ts +93 -0
- package/src/scripts/_lib/release_material.ts +64 -1
- package/src/scripts/_lib/release_position.ts +96 -0
- package/src/scripts/_lib/review_skipped_record.ts +17 -1
- package/src/scripts/_lib/runtime_journal.ts +26 -3
- package/src/scripts/_lib/runtime_wiring_checks.ts +12 -1
- package/src/scripts/_lib/security_lint.ts +179 -7
- package/src/scripts/_lib/self_repair.ts +141 -6
- package/src/scripts/_lib/self_repair_store.ts +273 -7
- package/src/scripts/_lib/session_register.ts +11 -6
- package/src/scripts/_lib/sqlite_schema.ts +22 -0
- package/src/scripts/_lib/subagent_capsule.ts +155 -3
- package/src/scripts/_lib/surface.ts +86 -0
- package/src/scripts/_lib/ui_authority.ts +116 -0
- package/src/scripts/adr/regenerate_index.ts +54 -1
- package/src/scripts/adr_cite_check.ts +71 -15
- package/src/scripts/ai_council/clients.ts +1 -1
- package/src/scripts/autonomy_friction_corpus.ts +229 -0
- package/src/scripts/build_proof.ts +15 -2
- package/src/scripts/build_rule_trigger_matrix.ts +5 -0
- package/src/scripts/check_beta_review_markers.ts +141 -17
- package/src/scripts/check_enforcement_coverage.ts +1 -1
- package/src/scripts/check_enforcement_denominator.ts +121 -11
- package/src/scripts/check_finding_dispositions.ts +66 -9
- package/src/scripts/check_gate_coverage.ts +96 -0
- package/src/scripts/check_mcp_doc_drift.ts +217 -0
- package/src/scripts/check_pack_size.ts +321 -3
- package/src/scripts/check_release_highlights.ts +74 -1
- package/src/scripts/check_skill_activation_claim.ts +179 -0
- package/src/scripts/check_trigger_evals.ts +1 -1
- package/src/scripts/conformance_scan.ts +44 -3
- package/src/scripts/explain_run.ts +1 -1
- package/src/scripts/generate_capability_matrix.ts +1 -1
- package/src/scripts/git_authorization_hook.ts +75 -1
- package/src/scripts/handoff_context_hook.ts +54 -7
- package/src/scripts/hook_manifest.json +1 -1
- package/src/scripts/hook_manifest.yaml +14 -11
- package/src/scripts/hooks/augment-dispatcher.sh +1 -1
- package/src/scripts/hooks/category_a.ts +291 -0
- package/src/scripts/hooks/cline-dispatcher.sh +1 -1
- package/src/scripts/hooks/cursor-dispatcher.sh +11 -5
- package/src/scripts/hooks/dispatch_hook.ts +17 -22
- package/src/scripts/hooks/git_command_classifier.ts +156 -1
- package/src/scripts/hooks/host_lowering.ts +215 -0
- package/src/scripts/hooks/host_lowering.yaml +185 -0
- package/src/scripts/hooks/host_semantics.ts +105 -37
- package/src/scripts/hooks/journal_record_hook.ts +10 -0
- package/src/scripts/hooks/permission_gate.ts +117 -0
- package/src/scripts/hooks/session_eol_hook.ts +18 -7
- package/src/scripts/hooks_status.ts +12 -10
- package/src/scripts/install.ts +57 -86
- package/src/scripts/install_anthropic_key.sh +2 -2
- package/src/scripts/lint_agent_security.ts +316 -25
- package/src/scripts/lint_confusables.ts +42 -6
- package/src/scripts/lint_design_antipattern_parity.ts +80 -0
- package/src/scripts/lint_evidence_artifacts.ts +45 -1
- package/src/scripts/lint_handoffs.ts +0 -132
- package/src/scripts/lint_hidden_unicode.ts +49 -7
- package/src/scripts/lint_hook_manifest.ts +87 -3
- package/src/scripts/lint_instruction_smuggling.ts +42 -6
- package/src/scripts/lint_mcp_config_security.ts +42 -6
- package/src/scripts/lint_motion_authority_drift.ts +731 -0
- package/src/scripts/lint_readme_size.ts +158 -12
- package/src/scripts/lint_reasoning_fixtures.ts +216 -0
- package/src/scripts/lint_roadmap_later_disposition.ts +217 -27
- package/src/scripts/lint_skill_frontmatter_safety.ts +43 -7
- package/src/scripts/lint_skill_trigger_contradiction.ts +161 -0
- package/src/scripts/mcp_server/resources.ts +41 -0
- package/src/scripts/mcp_server/telemetry.ts +19 -4
- package/src/scripts/measure_sibling_naming.ts +150 -0
- package/src/scripts/orchestration_record.ts +12 -1
- package/src/scripts/redact_hook_capture.ts +1 -1
- package/src/scripts/release.ts +24 -24
- package/src/scripts/release_publication.ts +6 -2
- package/src/scripts/report_skill_activation.ts +319 -7
- package/src/scripts/schemas/review-findings.schema.json +5 -0
- package/src/scripts/schemas/skill.schema.json +2 -2
- package/src/scripts/self_repair_cli.ts +31 -1
- package/src/scripts/session_canary_hook.ts +1 -1
- package/src/scripts/session_register_hook.ts +4 -3
- package/src/scripts/skill_scout.ts +69 -0
- package/src/scripts/trigger_eval_grandfather.json +5 -1
- package/src/scripts/validate_agent_settings.ts +1 -1
- package/dist/cli-delegate/chunk-2GNWGMAL.js +0 -172
- package/dist/cli-delegate/chunk-LPPWO5CE.js +0 -161
package/README.md
CHANGED
|
@@ -18,11 +18,30 @@
|
|
|
18
18
|
|
|
19
19
|
**A deep library of skills, commands and 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 **20 host agents** — of 23 detected, 3 being export-only<!-- claim:host-agent-count --> (Claude Code, Cursor, Augment, Cline, Windsurf, Copilot, Gemini CLI, Codex, Continue, Zed, JetBrains, Aider and more). **Resident processes are permitted only under the supervision contract ADR-249 establishes** — a policy this repository adopted on 2026-08-27, not a description of anything running today. 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.
|
|
20
20
|
|
|
21
|
+
## Try it in 30 seconds
|
|
22
|
+
|
|
23
|
+
**Try one thing in 30 seconds** — before the full suite, drop in a single
|
|
24
|
+
self-contained subagent and see the discipline on your own repo:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
mkdir -p .claude/agents
|
|
28
|
+
curl -fsSL https://raw.githubusercontent.com/event4u-app/agent-config/main/docs/wedge/production-validator/production-validator.md \
|
|
29
|
+
-o .claude/agents/production-validator.md
|
|
30
|
+
# then in Claude Code: @production-validator check this branch is actually done
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
`production-validator` is read-only and installs nothing else — it gates "done"
|
|
34
|
+
by hunting mocks/stubs on the shipped path and demanding real-system evidence
|
|
35
|
+
([what it does](docs/wedge/production-validator/README.md)). Like it? The full
|
|
36
|
+
suite installs in one command — [Quickstart ↓](#quickstart).
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
21
40
|
### What's different
|
|
22
41
|
|
|
23
|
-
|
|
42
|
+
Deep **and** disciplined, and honest about what it deliberately is not:
|
|
24
43
|
|
|
25
|
-
- **Depth that routes itself** — a
|
|
44
|
+
- **Depth that routes itself** — a capability router loads the right skill on intent, not a 500-artefact context dump.
|
|
26
45
|
- **Governance on every host** — rules compiled into each tool's native format at projection time; deterministic runtime hooks added on hook-capable hosts. This config-space, host-agnostic governance is the moat ([the governance advantage](docs/governance-advantage.md) · [enforcement by host](docs/enforcement-by-host.md)).
|
|
27
46
|
- **Surgical uninstall** — removes only its own keys from a shared host config (matched by JSON-pointer + SHA-256), never a neighbour tool's entries.<!-- claim:surgical-uninstall -->
|
|
28
47
|
- **Pack-scoped install** — writes the active pack only, not a 500-artefact dump.
|
|
@@ -39,41 +58,31 @@ See exactly [what works on which host](docs/capability-matrix.md) or jump to [th
|
|
|
39
58
|
|
|
40
59
|
### Pick your profile — six entry paths
|
|
41
60
|
|
|
42
|
-
`agent-config setup` writes `profile.id` to `.agent-settings.yml
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
53
|
-
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
[`src/agent-src/profiles/`](src/agent-src/profiles/) ·
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
**Per-profile experience pages** (who it's for · first tasks · packs + flows ·
|
|
64
|
-
what is *not* loaded · examples):
|
|
65
|
-
[developer](docs/experiences/developer.md) ·
|
|
66
|
-
[content_creator](docs/experiences/content_creator.md) ·
|
|
67
|
-
[founder](docs/experiences/founder.md) ·
|
|
68
|
-
[agency](docs/experiences/agency.md) ·
|
|
69
|
-
[finance](docs/experiences/finance.md) ·
|
|
70
|
-
[ops](docs/experiences/ops.md).
|
|
61
|
+
`agent-config setup` writes `profile.id` to `.agent-settings.yml` and sends you
|
|
62
|
+
to that profile's first screen. Each experience page carries the full detail —
|
|
63
|
+
who it's for, first commands and skills, packs and flows, and what is
|
|
64
|
+
deliberately *not* loaded.
|
|
65
|
+
|
|
66
|
+
| Profile | Audience | Experience page |
|
|
67
|
+
|---|---|---|
|
|
68
|
+
| 👩💻 [`developer`](docs/profiles.md#profile-developer) | IC engineer | [page](docs/experiences/developer.md) |
|
|
69
|
+
| ✍️ [`content_creator`](docs/profiles.md#profile-content_creator) | Writers, ghostwriters, marketers | [page](docs/experiences/content_creator.md) |
|
|
70
|
+
| 🚀 [`founder`](docs/profiles.md#profile-founder) | Solo / early-stage founder | [page](docs/experiences/founder.md) |
|
|
71
|
+
| 🏛 [`agency`](docs/profiles.md#profile-agency) | Multi-client delivery shop | [page](docs/experiences/agency.md) |
|
|
72
|
+
| 💼 [`finance`](docs/profiles.md#profile-finance) | CFO / fractional finance / FP&A | [page](docs/experiences/finance.md) |
|
|
73
|
+
| 🛡 [`ops`](docs/profiles.md#profile-ops) | RevOps, support, SRE-adjacent | [page](docs/experiences/ops.md) |
|
|
74
|
+
|
|
75
|
+
**Not sure which one?** The wizard asks a single 8-option role question and maps
|
|
76
|
+
to the closest profile. Source-of-truth
|
|
77
|
+
[`src/agent-src/profiles/`](src/agent-src/profiles/) · schema
|
|
78
|
+
[`docs/contracts/profile-system.md`](docs/contracts/profile-system.md) · beyond
|
|
79
|
+
software [`user-types/`](src/agent-src/user-types/) (galabau · metalworking ·
|
|
80
|
+
truck — see [Beyond software](#beyond-software)).
|
|
71
81
|
|
|
72
82
|
### Workflows, not raw commands
|
|
73
83
|
|
|
74
|
-
You don't memorize
|
|
75
|
-
developer story end-to-end
|
|
76
|
-
skills it composes:
|
|
84
|
+
You don't memorize commands — you run a **work journey**. Four flows span the
|
|
85
|
+
developer story end-to-end:
|
|
77
86
|
|
|
78
87
|
| Flow | Start with | The journey |
|
|
79
88
|
|---|---|---|
|
|
@@ -82,9 +91,7 @@ skills it composes:
|
|
|
82
91
|
| 🔎 **Review** | `/review-changes` · `/judge` | self-review → judge → quality-fix → threat-model |
|
|
83
92
|
| 🚢 **Delivery** | `/commit` · `/pr:create` | commit in chunks → open PR → answer review |
|
|
84
93
|
|
|
85
|
-
|
|
86
|
-
[`docs/flows.md`](docs/flows.md). (`agent-admin` — memory / analytics / config —
|
|
87
|
-
is platform operation, not a user-work flow.)
|
|
94
|
+
Composed skills and the canonical path per flow: [`docs/flows.md`](docs/flows.md).
|
|
88
95
|
|
|
89
96
|
<p align="center">
|
|
90
97
|
<a href="CHANGELOG.md">CHANGELOG</a> ·
|
|
@@ -122,23 +129,19 @@ lists the end-to-end workflows (`/implement-ticket`, `/work`,
|
|
|
122
129
|
Don't take the claims on trust — **verify them.** [`docs/proof.md`](docs/proof.md)
|
|
123
130
|
is generated from source: a claim→evidence table (every public claim binds to a
|
|
124
131
|
resolvable pointer or CI fails), honest-null benchmarks *including the runs where
|
|
125
|
-
the package changed nothing
|
|
126
|
-
checkout.
|
|
127
|
-
|
|
128
|
-
[event4u-app.github.io/agent-config/proof/](https://event4u-app.github.io/agent-config/proof/)
|
|
129
|
-
|
|
130
|
-
[`docs/us-vs-the-category.md`](docs/us-vs-the-category.md).
|
|
132
|
+
the package changed nothing*, and a "verify it yourself" block you run on a fresh
|
|
133
|
+
checkout. It fails CI if it drifts from its sources — reproducibility is the
|
|
134
|
+
proof. Read it at
|
|
135
|
+
[event4u-app.github.io/agent-config/proof/](https://event4u-app.github.io/agent-config/proof/),
|
|
136
|
+
with the comparison frame at [`docs/us-vs-the-category.md`](docs/us-vs-the-category.md).
|
|
131
137
|
Freshest measured row: in one post-fix session, advisory context injection cut language-mirror violations 555 → 19 while the two blocking guards went 8 → 0 and 1 → 0 — advisory reduced massively, only blocking eliminated. One session and a post-hoc reading, so a recorded prior rather than a law.<!-- claim:conformance-advisory-vs-blocking -->
|
|
132
138
|
|
|
133
139
|
Maintaining a skills catalog yourself? The **anti-reskin gate** that blocks
|
|
134
|
-
find-replace re-skin PRs here runs on
|
|
135
|
-
[`docs/anti-reskin-gate.md`](docs/anti-reskin-gate.md).
|
|
140
|
+
find-replace re-skin PRs here runs on yours too — [`docs/anti-reskin-gate.md`](docs/anti-reskin-gate.md).
|
|
136
141
|
|
|
137
|
-
Audit-disciplined by construction — every memory consult, decision
|
|
138
|
-
|
|
139
|
-
[Core principles](#core-principles) names the four invariants
|
|
140
|
-
[What `agent-config` is — and what it isn't](#what-agent-config-is--and-what-it-isnt)
|
|
141
|
-
draws the scope boundary.
|
|
142
|
+
Audit-disciplined by construction — every memory consult, decision key and hook
|
|
143
|
+
concern lands in `agents/runtime/state/` so you can replay it.
|
|
144
|
+
[Core principles](#core-principles) names the four invariants.
|
|
142
145
|
|
|
143
146
|
## Contribute
|
|
144
147
|
|
|
@@ -154,30 +157,13 @@ opt-in measurement loop. Source-of-truth tree is
|
|
|
154
157
|
|
|
155
158
|
## Quickstart
|
|
156
159
|
|
|
157
|
-
**Try one thing in 30 seconds** — before the full suite, drop in a single
|
|
158
|
-
self-contained subagent and see the discipline on your own repo:
|
|
159
|
-
|
|
160
|
-
```bash
|
|
161
|
-
mkdir -p .claude/agents
|
|
162
|
-
curl -fsSL https://raw.githubusercontent.com/event4u-app/agent-config/main/docs/wedge/production-validator/production-validator.md \
|
|
163
|
-
-o .claude/agents/production-validator.md
|
|
164
|
-
# then in Claude Code: @production-validator check this branch is actually done
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
`production-validator` is read-only and installs nothing else — it gates "done"
|
|
168
|
-
by hunting mocks/stubs on the shipped path and demanding real-system evidence
|
|
169
|
-
([what it does](docs/wedge/production-validator/README.md)). Like it? Install the
|
|
170
|
-
full suite:
|
|
171
|
-
|
|
172
160
|
**One command. Detection-driven — your installed AI tools are found and
|
|
173
161
|
pre-selected. Nothing is written until you click Finish. No YAML by hand.**
|
|
174
162
|
|
|
175
|
-
Those four are structural
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
run and published with its conditions, as evidence; it is never a promised
|
|
180
|
-
number.
|
|
163
|
+
Those four are structural — properties of the code path, not of your machine.
|
|
164
|
+
How *long* it takes is not: that is dominated by network and registry latency.
|
|
165
|
+
CI measures the install → `doctor` wall-clock on every umbrella run and
|
|
166
|
+
publishes it with its conditions, as evidence rather than as a promise.
|
|
181
167
|
|
|
182
168
|
```bash
|
|
183
169
|
# 1. Install — on a terminal with a display, the browser wizard launches
|
|
@@ -191,18 +177,17 @@ npx -y @event4u/agent-config init
|
|
|
191
177
|
/work "your first real task"
|
|
192
178
|
```
|
|
193
179
|
|
|
194
|
-
**Headless / CI:** `init` skips the GUI
|
|
180
|
+
**Headless / CI:** `init` skips the GUI on CI, a non-TTY, a headless host, or any CLI-mode flag, and runs the non-interactive installer instead. The GUI and the CLI share one installer (`src/scripts/install.ts`), so both produce identical results. Flags, the full opt-out set and `--dry-run`: [`docs/wizard.md`](docs/wizard.md) · [`gui-wizard` § When the GUI is skipped](docs/contracts/gui-wizard.md#when-the-gui-is-skipped).
|
|
195
181
|
|
|
196
|
-
**Pick specific AIs:** `--tools=claude-code,cursor,augment
|
|
182
|
+
**Pick specific AIs:** `--tools=claude-code,cursor,augment,…` (any subset). `--gui` forces the loopback-bound, CSRF-gated picker past the TTY and headless checks; it does **not** override `CI`, `AGENT_CONFIG_NO_UI` or a CLI-mode flag, and combining it with one of those exits non-zero rather than quietly running the CLI install.
|
|
197
183
|
|
|
198
|
-
**Verify hook coverage:** `npx @event4u/agent-config hooks:status`
|
|
184
|
+
**Verify hook coverage:** `npx @event4u/agent-config hooks:status` (`--strict` for CI, `--format json` for tooling).
|
|
199
185
|
|
|
200
|
-
> **Scope (v2.5+):** `init` writes **global** only — `~/.event4u/agent-config/`, `~/.claude/`, `~/.cursor/`, …. The project tree gets `agents/overrides/` only
|
|
186
|
+
> **Scope (v2.5+):** `init` writes **global** only — `~/.event4u/agent-config/`, `~/.claude/`, `~/.cursor/`, …. The project tree gets `agents/overrides/` only. `--project` is maintainer-only behind `AGENT_CONFIG_DEV_MODE=1` ([ADR-020](docs/decisions/ADR-020-global-only-consumer-scope.md), [dev-mode](docs/maintainers/dev-mode.md)).
|
|
201
187
|
|
|
202
|
-
Migrating from
|
|
188
|
+
Migrating from v1.x? `npx @event4u/agent-config migrate` — [`docs/migration/v1-to-v2.md`](docs/migration/v1-to-v2.md).
|
|
203
189
|
|
|
204
190
|
---
|
|
205
|
-
|
|
206
191
|
## What `agent-config` is — and what it isn't
|
|
207
192
|
|
|
208
193
|
A **content layer** — skills, rules, commands, guidelines, personas — distributed via npm and projected into every supported AI tool's native config format. It follows the [Agent Skills open standard](https://agentskills.io).
|
|
@@ -316,7 +301,7 @@ Create the user file interactively: `/agents user init` ([schema](docs/contracts
|
|
|
316
301
|
|
|
317
302
|
### Self-hosted MCP on Cloudflare — zero local install
|
|
318
303
|
|
|
319
|
-
Skills, commands, rules and guidelines can be served as an MCP endpoint from your own Cloudflare Worker
|
|
304
|
+
Skills, commands, rules and guidelines can be served as an MCP endpoint from your own Cloudflare Worker, reachable over HTTP by any MCP client. Two auth modes: `public` (default) and `bearer-auth` (operator opt-in, `MCP-Token` Wrangler secret).
|
|
320
305
|
|
|
321
306
|
```bash
|
|
322
307
|
task mcp:cloud:login # one-time, opens browser
|
|
@@ -328,7 +313,7 @@ task mcp:cloud:secret-put # opt in to bearer-auth (recommended for private de
|
|
|
328
313
|
|
|
329
314
|
> **Scope — Lite, not Full.** The Worker serves read-only governance (skills · commands · rules · guidelines · contexts) as MCP prompts and resources, plus small read-only tools (`memory_lookup`, `chat_history_read`, `list_*`). It does **not** execute the repository's local scripts (linters, audits, `task ci`, work-engine hooks) — those require local install per [Quickstart](#quickstart).
|
|
330
315
|
|
|
331
|
-
> The built-in **local stdio** server is listed
|
|
316
|
+
> The built-in **local stdio** server is listed in the [Glama MCP Registry](https://glama.ai/mcp/servers/event4u-app/agent-config) — it requires a local checkout, not a turnkey install ([ADR-067](docs/decisions/ADR-067-glama-registry-listing.md)).
|
|
332
317
|
|
|
333
318
|
### Deployment posture
|
|
334
319
|
|
|
@@ -338,15 +323,13 @@ task mcp:cloud:secret-put # opt in to bearer-auth (recommended for private de
|
|
|
338
323
|
| **Small team (3–10 people)** | ✅ today | Shared `agents/overrides/` Git repo + shared NAS for knowledge — no code change, no new server. Recipe: [`docs/deploy/small-team-recipe.md`](docs/deploy/small-team-recipe.md) |
|
|
339
324
|
| **Organization mode** (SSO · central policy · team context · internal connectors) | ⏸ not started | Each shape gated on a recruited customer + funded audit + maintainer ADR. Posture rationale: [`docs/deploy/team-deployment-posture.md`](docs/deploy/team-deployment-posture.md) |
|
|
340
325
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
> *The 9.3/10 feedback round (2026-05-25) re-asked for OAuth knowledge connectors, IAM / org governance and organization-shared memory. Each is a stable cancellation row in [`team-deployment-posture`](docs/deploy/team-deployment-posture.md) under the same three release gates — recruited team customer · funded audit · maintainer ADR.*
|
|
326
|
+
Organization-mode features (SSO, central policy, OAuth connectors, team-context) stay cancelled by design until a recruited customer and a funded security audit lift them; the small-team recipe is the supported path meanwhile. Each is a stable cancellation row in [`team-deployment-posture`](docs/deploy/team-deployment-posture.md).
|
|
344
327
|
|
|
345
328
|
---
|
|
346
329
|
|
|
347
330
|
## Harness expectations
|
|
348
331
|
|
|
349
|
-
Three classes of install/runtime behaviour look like package bugs
|
|
332
|
+
Three classes of install/runtime behaviour look like package bugs and are host-harness behaviour the package cannot control: sibling-plugin namespaces, deferred tools surfaced via `ToolSearch`, and cross-scope skill drift. Diagnostics and the package's response: [`docs/contracts/harness-expectations.md`](docs/contracts/harness-expectations.md). When a skill appears twice, start with `task probe:skills`.
|
|
350
333
|
|
|
351
334
|
## Supported tools
|
|
352
335
|
|
|
@@ -431,7 +414,7 @@ accepts a host-supplied config root so its own settings stay profile-scoped.
|
|
|
431
414
|
|
|
432
415
|
## Who this is for
|
|
433
416
|
|
|
434
|
-
|
|
417
|
+
A stack-agnostic governance core (orchestration · role modes · command clusters · quality gates · audit discipline), plus stack-specific skill sets:
|
|
435
418
|
|
|
436
419
|
| Stack | Coverage |
|
|
437
420
|
|---|---|
|
|
@@ -455,7 +438,7 @@ Three domain-safety rules ([`domain-safety-pii`](src/rules/domain-safety-pii.md)
|
|
|
455
438
|
|
|
456
439
|
### Code provenance & license governance
|
|
457
440
|
|
|
458
|
-
Every diff is checked against a **license policy derived from the target repo's own detected license** (
|
|
441
|
+
Every diff is checked against a **license policy derived from the target repo's own detected license** (precedence-ordered; sources disagree → escalate, never guess) and a **strict linter over our borrow ledger** ([`provenance/borrows.jsonl`](provenance/) → [`docs/THIRD-PARTY-NOTICES.md`](docs/THIRD-PARTY-NOTICES.md)) that fails a deny-class or unknown license, a missing transformation note, or a rename-only-phrased one — wired into `ci`/`ci-strict`. `license-compliance-audit` runs a similarity scan on demand, invoked by a human and never by a pipeline. This is provenance-governed borrow discipline with an audited trail — not a copy detector.
|
|
459
442
|
|
|
460
443
|
<!-- provenance-scope-box -->
|
|
461
444
|
#### Scope & limits
|
|
@@ -517,71 +500,10 @@ layer`), the platform's concern chain, host hook registration, and router +
|
|
|
517
500
|
projection freshness. Deeper hook internals (fail-open/closed posture, last
|
|
518
501
|
dispatcher feedback per concern): `agent-config hooks:doctor`.
|
|
519
502
|
|
|
520
|
-
### A new command / skill is missing in Claude Code after an upgrade
|
|
521
|
-
|
|
522
|
-
Under the single-surface model, `agent-config upgrade` refreshes the
|
|
523
|
-
`~/.claude/` file projection — that IS the content surface, so a fresh
|
|
524
|
-
session picks the new commands up directly. If commands are still missing,
|
|
525
|
-
the usual cause is a leftover **marketplace plugin**: it is a git-SHA
|
|
526
|
-
snapshot that never moves with the npm upgrade and it shadows nothing —
|
|
527
|
-
it just lists everything twice while lagging behind. Remove it:
|
|
528
|
-
|
|
529
|
-
```bash
|
|
530
|
-
claude plugin uninstall agent-config@event4u-agent-config
|
|
531
|
-
```
|
|
532
|
-
|
|
533
|
-
Then start a **new** Claude Code session. `agent-config doctor` reports a
|
|
534
|
-
leftover plugin as `claude-plugin: duplicate surface`; hooks are unaffected
|
|
535
|
-
(they live in a managed `~/.claude/settings.json` block — verify with the
|
|
536
|
-
`hook-wiring` check).
|
|
537
|
-
|
|
538
|
-
### Skills / commands appear twice in Claude Code
|
|
539
|
-
|
|
540
|
-
Same cause as above: the deprecated marketplace plugin is installed next to
|
|
541
|
-
the `~/.claude/` file projection, so every skill lists plain **and**
|
|
542
|
-
`agent-config:`-prefixed. Uninstall the plugin (command above) and start a
|
|
543
|
-
new session.
|
|
544
|
-
|
|
545
|
-
### `agent-config upgrade` fails with `Unknown argument: --no-ui`
|
|
546
|
-
|
|
547
|
-
Known bug in 8.2.0: `upgrade` passed a `--no-ui` flag that the install
|
|
548
|
-
orchestrator did not accept yet, so the run aborted early. Fixed on `main`;
|
|
549
|
-
until the next release, work around it with:
|
|
550
|
-
|
|
551
|
-
```bash
|
|
552
|
-
AGENT_CONFIG_NO_UI=1 agent-config global # refresh the global install, no wizard
|
|
553
|
-
```
|
|
554
|
-
|
|
555
|
-
### Upgrade was interrupted (Ctrl-C, wizard closed, step failed)
|
|
556
|
-
|
|
557
|
-
Only the initial `npm install -g` hard-aborts an upgrade. Every later step
|
|
558
|
-
(global re-deploy with hook registration, settings sync, wrapper + git-hook
|
|
559
|
-
refresh) runs independently — a single failed step is reported in the
|
|
560
|
-
end-of-run summary instead of silently skipping the rest. Re-run
|
|
561
|
-
`agent-config upgrade` to converge and use `agent-config doctor` to name
|
|
562
|
-
anything left in a mixed state.
|
|
563
|
-
|
|
564
|
-
### `agent-config: command not found` / hooks stopped firing
|
|
565
|
-
|
|
566
|
-
Runtime hooks resolve the **global** binary on `PATH` — a project-local
|
|
567
|
-
install alone is not enough for them. Reinstall the binary:
|
|
568
|
-
|
|
569
|
-
```bash
|
|
570
|
-
npm install -g @event4u/agent-config
|
|
571
|
-
agent-config doctor # verifies PATH + plugin wiring
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
### Project files look stale after a package update
|
|
575
|
-
|
|
576
|
-
Project-local projections are only rewritten on an explicit refresh:
|
|
577
|
-
|
|
578
|
-
```bash
|
|
579
|
-
agent-config refresh # re-apply the installed version to this project
|
|
580
|
-
agent-config refresh --global # same-version re-install of the global root
|
|
581
|
-
```
|
|
582
503
|
|
|
583
|
-
|
|
584
|
-
|
|
504
|
+
Upgrade and staleness symptoms — a command or skill missing after an upgrade,
|
|
505
|
+
skills appearing twice, an interrupted upgrade, `command not found`, stale
|
|
506
|
+
project files: [`docs/troubleshooting.md` § Upgrade and staleness](docs/troubleshooting.md#upgrade-and-staleness).
|
|
585
507
|
|
|
586
508
|
---
|
|
587
509
|
|
package/dist/agent-src/README.md
CHANGED
|
@@ -17,7 +17,7 @@ it as `.augment/` (local projection).
|
|
|
17
17
|
├── contexts/ # Background context documents for the agent
|
|
18
18
|
├── guidelines/ # Coding guidelines by language (reference material)
|
|
19
19
|
├── rules/ # Always-active behavior rules (auto-loaded every conversation)
|
|
20
|
-
├── skills/ # On-demand expertise (
|
|
20
|
+
├── skills/ # On-demand expertise (named or trigger-matched)
|
|
21
21
|
└── templates/ # File templates for roadmaps, features, skills, etc.
|
|
22
22
|
```
|
|
23
23
|
|
|
@@ -8,7 +8,7 @@ replaces: []
|
|
|
8
8
|
visibility: visible
|
|
9
9
|
skills: [agent-docs-writing]
|
|
10
10
|
description: Pick a recent session, generate a handoff from its transcript, and seed a fresh session with it — or summarize the live conversation for copy-paste.
|
|
11
|
-
argument-hint: "[--print |
|
|
11
|
+
argument-hint: "[--print | with tasks]"
|
|
12
12
|
suggestion:
|
|
13
13
|
eligible: true
|
|
14
14
|
trigger_description: "user asks for an agent handoff, to resume/continue a previous session in a fresh chat, or a context-summary to paste into a new chat"
|
|
@@ -65,9 +65,9 @@ exactly once, then deletes it). In a terminal-capable context, offer
|
|
|
65
65
|
to spawn the fresh session directly:
|
|
66
66
|
|
|
67
67
|
- `claude` — seeds via the session_start hook (clean first message).
|
|
68
|
-
- `codex` — no hook
|
|
68
|
+
- `codex` — this package binds no hook there; the adapter passes the handoff as the
|
|
69
69
|
initial prompt instead. Same UX, different transport.
|
|
70
|
-
- Bundle hosts
|
|
70
|
+
- Bundle hosts this package binds no hook on (Antigravity, Copilot) → use `--print` and
|
|
71
71
|
copy-paste.
|
|
72
72
|
|
|
73
73
|
## Fallback mode — summarize the LIVE conversation (`--print`)
|
|
@@ -114,10 +114,51 @@ Roadmap: {roadmap file if active, or "none"}
|
|
|
114
114
|
## Key decisions
|
|
115
115
|
- {important decisions made during this conversation}
|
|
116
116
|
|
|
117
|
+
## Least confident
|
|
118
|
+
- {the claim in this handoff you are least sure of} — verify: {command or
|
|
119
|
+
observable state that would confirm or kill it}
|
|
120
|
+
|
|
121
|
+
## Biggest thing missed
|
|
122
|
+
- {what a reviewer would most likely find that you did not} — verify: {command}
|
|
123
|
+
|
|
124
|
+
## Breaks in three months because
|
|
125
|
+
- {the assumption most likely to expire, and what expires it} — verify: {command}
|
|
126
|
+
|
|
127
|
+
## Not done
|
|
128
|
+
- {work inside the stated scope that did not land} — verify: {command}
|
|
129
|
+
|
|
117
130
|
## Relevant files
|
|
118
131
|
- {list of files that were edited or are important for context}
|
|
119
132
|
```
|
|
120
133
|
|
|
134
|
+
### The four self-critique sections — why every line carries a `verify:`
|
|
135
|
+
|
|
136
|
+
Every other section states what HAPPENED. None of them says what the outgoing
|
|
137
|
+
session is **least sure of**, which is the one thing the incoming session cannot
|
|
138
|
+
reconstruct and the one thing that decides where it should look first.
|
|
139
|
+
|
|
140
|
+
Each line in those four sections MUST name the command or observable state that
|
|
141
|
+
would confirm or kill it. An unverifiable line of self-doubt is filler: it reads
|
|
142
|
+
as diligence, costs the next session a read, and cannot be acted on. `none` is
|
|
143
|
+
accepted as the whole body of a section — an honest "nothing here" is an answer
|
|
144
|
+
— and blankness is not, exactly as `## Open questions` already treats the same
|
|
145
|
+
distinction. Nothing enforces either direction: the handoff artifact validator
|
|
146
|
+
that would have was retired with `HANDOFF.md`, so the contract is model-carried
|
|
147
|
+
here.
|
|
148
|
+
|
|
149
|
+
### Capture, do not chase
|
|
150
|
+
|
|
151
|
+
A finding surfaced **while writing the handoff** is written down, never fixed in
|
|
152
|
+
the handoff turn. The handoff exists because the session is ending, so a fix
|
|
153
|
+
started there is the least-verified change in the whole run — it lands after the
|
|
154
|
+
verification budget is spent, with no room to prove it.
|
|
155
|
+
|
|
156
|
+
The destination is a `model-noticed` self-repair record: `upsertFinding` in
|
|
157
|
+
`src/scripts/_lib/self_repair_store.ts`, carrying a `target` from the closed
|
|
158
|
+
`rule: | skill: | command: | hook:` vocabulary so the finding is joined to the
|
|
159
|
+
asset it is about. Put the same finding in `## Not done` with its `verify:`, so
|
|
160
|
+
the next session sees it without having to query the store.
|
|
161
|
+
|
|
121
162
|
The CLI generator emits the same section set (minus the live-only
|
|
122
163
|
*Repeatable workflow* / *Feedback history* refinements) — the template above
|
|
123
164
|
stays the single source of the section contract.
|
|
@@ -150,46 +191,6 @@ block (e.g. *"Copy this into a new chat:"*) and nothing after — no follow-up
|
|
|
150
191
|
questions, no numbered options. The picker in Step 2 is the one exception:
|
|
151
192
|
it is the flow's single question, asked BEFORE any handoff is generated.
|
|
152
193
|
|
|
153
|
-
## 2b. File-artifact mode — `HANDOFF.md` (optional, host-neutral)
|
|
154
|
-
|
|
155
|
-
On `/agent-handoff --file` (or when a workflow skill's phase boundary asks
|
|
156
|
-
for a standing handoff), ALSO write the contract to
|
|
157
|
-
`agents/runtime/state/HANDOFF.md` (gitignored runtime state — plain
|
|
158
|
-
Markdown, no host API). Required fields, in order:
|
|
159
|
-
|
|
160
|
-
```
|
|
161
|
-
# HANDOFF
|
|
162
|
-
## Mode
|
|
163
|
-
{current workflow mode/phase, e.g. Implement (TDD)}
|
|
164
|
-
## Contract received
|
|
165
|
-
{what the previous phase handed over}
|
|
166
|
-
## Contract owed
|
|
167
|
-
{what the current phase must produce before yielding}
|
|
168
|
-
## Decisions
|
|
169
|
-
- {decision taken, with one-line rationale} {optionally close the line with
|
|
170
|
-
`[reversible]` or `[irreversible]` — those two spellings exactly}
|
|
171
|
-
## Open questions
|
|
172
|
-
- {unresolved items the next session must not silently drop — each as a
|
|
173
|
-
question ending in `?`; write `none` when there genuinely are none}
|
|
174
|
-
## Next command
|
|
175
|
-
{the single command or step to run first on resume}
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
**Resume rule:** a workflow skill's step 0 checks for this file and resumes
|
|
179
|
-
from its contract (mode-inference table) instead of re-deriving state; a
|
|
180
|
-
long phase refreshes the file before yielding. Validated by
|
|
181
|
-
`lint_handoffs.ts` when present — a missing required field is red, and so is an
|
|
182
|
-
`## Open questions` section that answers neither way (blank, or a bare `TBD` /
|
|
183
|
-
`TODO` / `...`). A `?`-terminated question passes; so does an explicit `none` —
|
|
184
|
-
the check exists to stop a blank section reading as an all-clear, not to force a
|
|
185
|
-
question where there is none.
|
|
186
|
-
|
|
187
|
-
**Critical-planning-file safety protocol** (applies to HANDOFF.md and agent
|
|
188
|
-
roadmap edits): read the current file FIRST; take a timestamped backup copy
|
|
189
|
-
next to it (`HANDOFF.md.<ts>.bak`) before overwrite; duplicate-check before
|
|
190
|
-
appending (never double-append a section); preserve the section structure;
|
|
191
|
-
post-verify the write by re-reading the required fields.
|
|
192
|
-
|
|
193
194
|
## Detection — when natural-language triggers count as explicit
|
|
194
195
|
|
|
195
196
|
The user does not need to type `/agent-handoff` literally. Treat as
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
model_tier: high
|
|
3
3
|
name: review-changes
|
|
4
4
|
pack: engineering-base
|
|
5
|
-
intent: "Multi-judge review of the current diff — bugs, security, tests, quality, architecture"
|
|
6
|
-
routes_to: [code-review, judge-bug-hunter, judge-security-auditor, judge-test-coverage, judge-code-quality, architecture-review-lens, overbuild-review-lens]
|
|
5
|
+
intent: "Multi-judge review of the current diff — bugs, security, tests, quality, architecture, spec, overbuild"
|
|
6
|
+
routes_to: [code-review, judge-bug-hunter, judge-security-auditor, judge-test-coverage, judge-code-quality, architecture-review-lens, judge-spec-compliance, overbuild-review-lens]
|
|
7
7
|
replaces: []
|
|
8
8
|
visibility: internal
|
|
9
9
|
sub: changes
|
|
10
10
|
cluster: review
|
|
11
|
-
skills: [code-review, subagent-orchestration, judge-bug-hunter, judge-security-auditor, judge-test-coverage, judge-code-quality, architecture-review-lens, overbuild-review-lens, judge-synthesis, git-workflow]
|
|
12
|
-
description: Self-review local changes before creating a PR — dispatches to
|
|
11
|
+
skills: [code-review, subagent-orchestration, judge-bug-hunter, judge-security-auditor, judge-test-coverage, judge-code-quality, architecture-review-lens, judge-spec-compliance, overbuild-review-lens, judge-synthesis, git-workflow]
|
|
12
|
+
description: Self-review local changes before creating a PR — dispatches to seven specialized judges (bug, security, tests, quality, architecture, spec, overbuild) and consolidates verdicts
|
|
13
13
|
suggestion:
|
|
14
14
|
eligible: false
|
|
15
15
|
rationale: "Cluster sub-command — reached via its cluster head's routing or its explicit /cluster:sub name; not independently suggested (surface-consolidation)."
|
|
@@ -24,7 +24,7 @@ packs:
|
|
|
24
24
|
## Instructions
|
|
25
25
|
|
|
26
26
|
Review all uncommitted and committed-but-not-pushed changes against
|
|
27
|
-
the default branch (`main`) by dispatching to
|
|
27
|
+
the default branch (`main`) by dispatching to seven specialized judge
|
|
28
28
|
sub-skills and consolidating their verdicts.
|
|
29
29
|
|
|
30
30
|
### 1. Update the current branch
|
|
@@ -109,7 +109,7 @@ folded together, a handover the reviewer could not parse would report as "there
|
|
|
109
109
|
was nothing to check", which is the one outcome that hides a real failure
|
|
110
110
|
behind a benign one.
|
|
111
111
|
|
|
112
|
-
### 4. Dispatch to the
|
|
112
|
+
### 4. Dispatch to the seven judges
|
|
113
113
|
|
|
114
114
|
Each judge receives **the same diff plus the task context** (ticket,
|
|
115
115
|
PR body, commit messages) and runs independently. The judges are:
|
|
@@ -137,8 +137,8 @@ diff cannot answer about itself. It is dispatched on demand like the others, so
|
|
|
137
137
|
it adds no standing token cost — verified: `check_preamble_payload_budget`'s
|
|
138
138
|
measured total is unchanged by this routing.
|
|
139
139
|
|
|
140
|
-
**Why the sixth exists, and why it is not a severity.** The
|
|
141
|
-
craft-or-correctness question, so a change that is correct, clean, well-tested
|
|
140
|
+
**Why the sixth exists, and why it is not a severity.** The five that preceded it
|
|
141
|
+
all ask a craft-or-correctness question, so a change that is correct, clean, well-tested
|
|
142
142
|
and architecturally sound — and **does not do what was asked** — used to pass
|
|
143
143
|
this path with five green verdicts. Its finding does **not** enter the shared
|
|
144
144
|
severity axis: `judge-synthesis` carries it on its own dimension, because "this
|
|
@@ -180,14 +180,14 @@ Read `verbosity.offer_council_in_delivery` from `.agent-settings.yml`
|
|
|
180
180
|
- `true`: when `ai_council.enabled: true` **and** at least one member
|
|
181
181
|
enabled, ask (in the user's language):
|
|
182
182
|
|
|
183
|
-
> 1. Add an external council review alongside the
|
|
183
|
+
> 1. Add an external council review alongside the seven internal judges? (billable)
|
|
184
184
|
> 2. Skip — internal judges only
|
|
185
185
|
|
|
186
186
|
Also suppress when `personal.autonomy: on` (council is billable).
|
|
187
187
|
|
|
188
188
|
If picked **1**:
|
|
189
189
|
|
|
190
|
-
- Run `/council diff:<base>..<head>` in parallel with the
|
|
190
|
+
- Run `/council diff:<base>..<head>` in parallel with the seven
|
|
191
191
|
internal judges (or sequentially after them — whichever the
|
|
192
192
|
dispatch mode picked in step 4 supports).
|
|
193
193
|
- Treat each council member as one extra "judge" in the consolidated
|
|
@@ -202,12 +202,12 @@ If picked **2** → continue with internal judges only.
|
|
|
202
202
|
|
|
203
203
|
### 4b-fresh. The fresh reviewer — the one input with no implementation context
|
|
204
204
|
|
|
205
|
-
The
|
|
205
|
+
The seven judges above all read **the same diff plus the task context**, and on the common
|
|
206
206
|
path they run in-session: the party that wrote the diff also reads it, with the whole
|
|
207
207
|
implementation context in scope. That is a self-review, and calling it a review is the
|
|
208
208
|
defect `road-to-review-independence` exists to close.
|
|
209
209
|
|
|
210
|
-
So
|
|
210
|
+
So **one further input** is added, and its distinguishing property is a negative one: it
|
|
211
211
|
has **no implementation context**. Not a new mechanism —
|
|
212
212
|
[`dispatch_r2_reviewer.ts`](../../../../scripts/dispatch_r2_reviewer.ts) already derives
|
|
213
213
|
the scope and persists the prompt it sent:
|
|
@@ -216,7 +216,7 @@ the scope and persists the prompt it sent:
|
|
|
216
216
|
./scripts-run src/scripts/dispatch_r2_reviewer --slug <slug> --base origin/main
|
|
217
217
|
```
|
|
218
218
|
|
|
219
|
-
The
|
|
219
|
+
The seven in-session judges stay exactly as they are. This is an addition, not a
|
|
220
220
|
replacement — a fresh reviewer is worse than a spec judge at spec compliance, and the
|
|
221
221
|
point is not to be better at their job but to be uncontaminated by the author's framing.
|
|
222
222
|
|
|
@@ -262,7 +262,7 @@ Read `subagents.adversarial_council` from `.agent-settings.yml` (default
|
|
|
262
262
|
which supplies the four slots, the one-question budget, and the storage line
|
|
263
263
|
(not persisted: `subagents.adversarial_council` is class C). What only this
|
|
264
264
|
command knows is *why now*: the diff is high-risk, and the offer is a paid
|
|
265
|
-
distinct-model red-team for finding coverage against the
|
|
265
|
+
distinct-model red-team for finding coverage against the seven internal judges.
|
|
266
266
|
- `on`: run it automatically on a high-risk diff.
|
|
267
267
|
|
|
268
268
|
When run, dispatch the
|
|
@@ -315,7 +315,7 @@ window back with `./scripts-run src/scripts/review_axis_report`; it reports
|
|
|
315
315
|
before proceeding
|
|
316
316
|
- If **any** judge returned `revise` → fix 🔴 findings automatically,
|
|
317
317
|
ask before fixing 🟡 findings, report 🟢 as suggestions
|
|
318
|
-
- If all
|
|
318
|
+
- If all seven returned `apply` → the diff is ready; report and stop
|
|
319
319
|
|
|
320
320
|
**Opt-in (never auto-on):** when the `revise` findings are *test-driven*
|
|
321
321
|
(failing checks, not subjective craft) and you want bounded auto-repair
|
|
@@ -360,7 +360,7 @@ Per `verbosity.routine_confirmations` (default `false`):
|
|
|
360
360
|
## Use this command when
|
|
361
361
|
|
|
362
362
|
- Preparing a self-review before opening a PR
|
|
363
|
-
- Stress-testing a local branch with the same
|
|
363
|
+
- Stress-testing a local branch with the same seven lenses a reviewer
|
|
364
364
|
would apply
|
|
365
365
|
- Sanity-checking a diff before handing it to `/create-pr`
|
|
366
366
|
|
|
@@ -389,6 +389,6 @@ Per `verbosity.routine_confirmations` (default `false`):
|
|
|
389
389
|
|
|
390
390
|
- **LLM-as-a-Judge** — [arxiv.org/abs/2306.05685](https://arxiv.org/abs/2306.05685)
|
|
391
391
|
MT-Bench and Chatbot Arena — judging LLM outputs with LLM judges.
|
|
392
|
-
This command adapts the pattern by dispatching to
|
|
393
|
-
judges (bug, security, tests, quality
|
|
394
|
-
judge, and consolidating their verdicts.
|
|
392
|
+
This command adapts the pattern by dispatching to seven specialized
|
|
393
|
+
judges (bug, security, tests, quality, architecture, spec, overbuild)
|
|
394
|
+
instead of a single generic judge, and consolidating their verdicts.
|
|
@@ -8,7 +8,7 @@ intent: "Review dispatcher — multi-judge self-review of the current diff, or r
|
|
|
8
8
|
routes_to: [review-changes, review-routing]
|
|
9
9
|
replaces: []
|
|
10
10
|
visibility: advanced
|
|
11
|
-
description: Review orchestrator — routes to changes (
|
|
11
|
+
description: Review orchestrator — routes to changes (seven-judge self-review of the local diff) and routing (compute reviewer roles + historical bug patterns)
|
|
12
12
|
cluster: review
|
|
13
13
|
type: orchestrator
|
|
14
14
|
suggestion:
|
|
@@ -49,7 +49,7 @@ Sub-command names match the locked contract in
|
|
|
49
49
|
4. If the sub-command is unknown or missing, print the menu and ask — do not
|
|
50
50
|
guess:
|
|
51
51
|
|
|
52
|
-
> 1. changes —
|
|
52
|
+
> 1. changes — seven-judge self-review of the local diff (pre-PR)
|
|
53
53
|
> 2. routing — suggest reviewers + surface matched historical bug patterns
|
|
54
54
|
|
|
55
55
|
## Rules
|