@event4u/agent-config 9.1.0 → 9.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +22 -251
  3. package/README.md +1 -1
  4. package/dist/agent-src/commands/implement-ticket.md +2 -0
  5. package/dist/agent-src/commands/review/changes.md +22 -0
  6. package/dist/agent-src/contexts/execution/subagent-modes-detail.md +41 -6
  7. package/dist/agent-src/contexts/execution/verify-budget.md +15 -0
  8. package/dist/agent-src/rules/cross-source-consistency.md +92 -0
  9. package/dist/agent-src/rules/delegation-policy.md +1 -1
  10. package/dist/agent-src/skills/estimate-ticket/SKILL.md +2 -0
  11. package/dist/agent-src/skills/feature-planning/SKILL.md +1 -1
  12. package/dist/agent-src/skills/po-discovery/SKILL.md +2 -0
  13. package/dist/agent-src/skills/refine-ticket/SKILL.md +7 -0
  14. package/dist/agent-src/skills/roadmap-writing/SKILL.md +14 -0
  15. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +26 -5
  16. package/dist/agent-src/skills/subagent-orchestration/evals/evals.json +18 -0
  17. package/dist/agent-src/skills/subagent-orchestration/prompts/README.md +3 -2
  18. package/dist/agent-src/skills/subagent-orchestration/prompts/adversarial-verification-council.md +79 -0
  19. package/dist/agent-src/skills/subagent-orchestration/schemas/adversarial-findings.json +56 -0
  20. package/dist/agent-src/templates/agents/agent-project-settings.example.yml +1 -1
  21. package/dist/discovery/deprecation-report.md +1 -1
  22. package/dist/discovery/discovery-manifest.json +42 -19
  23. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  24. package/dist/discovery/discovery-manifest.summary.md +4 -4
  25. package/dist/discovery/orphan-report.md +1 -1
  26. package/dist/discovery/packs.json +10 -8
  27. package/dist/discovery/trust-report.md +3 -3
  28. package/dist/discovery/workspaces.json +8 -6
  29. package/dist/install/install.mjs +9 -0
  30. package/dist/mcp/registry-manifest.json +2 -2
  31. package/dist/router.json +1 -1
  32. package/dist/server/schemas/settings.js +5 -0
  33. package/dist/server/schemas/settings.js.map +1 -1
  34. package/docs/CLAIMS.md +8 -1
  35. package/docs/architecture.md +2 -2
  36. package/docs/archive/CHANGELOG-pre-9.2.0.md +276 -0
  37. package/docs/benchmark.md +24 -0
  38. package/docs/decisions/ADR-122-adversarial-verification-council.md +136 -0
  39. package/docs/decisions/INDEX.md +1 -0
  40. package/docs/design/adversarial-council-eval.md +106 -0
  41. package/docs/getting-started-by-role.md +1 -1
  42. package/docs/getting-started.md +1 -1
  43. package/docs/governance-advantage.md +1 -1
  44. package/docs/guidelines/agent-infra/cross-source-consistency-mechanics.md +109 -0
  45. package/docs/proof.md +2 -2
  46. package/package.json +1 -1
  47. package/src/config/agent-settings.template.yml +42 -0
  48. package/src/scripts/_lib/adversarial_council_gate.test.ts +112 -0
  49. package/src/scripts/_lib/adversarial_council_gate.ts +98 -0
  50. package/src/scripts/_lib/adversarial_reconcile.test.ts +197 -0
  51. package/src/scripts/_lib/adversarial_reconcile.ts +187 -0
  52. package/src/scripts/_lib/verify_budget.ts +4 -1
  53. package/src/scripts/schemas/agent-settings.schema.json +11 -0
  54. package/src/server/schemas/settings.ts +9 -0
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Bootstrap shim for the event4u agent-config suite. This plugin ships ONLY the dispatcher hooks plus one install-pointer skill — ALL content (skills, rules, commands) is installed via `npx -y @event4u/agent-config init`, which writes the file projection AND registers the same hooks in ~/.claude/settings.json. DEPRECATED as a content channel; kept so the marketplace listing stays discoverable and existing installs keep working hooks.",
9
- "version": "9.1.0",
9
+ "version": "9.2.0",
10
10
  "keywords": [
11
11
  "agent-config",
12
12
  "skills",
package/CHANGELOG.md CHANGED
@@ -1017,274 +1017,45 @@ our recommendation order, not its support status.
1017
1017
  > keeps the active era under the 250-line drift cap enforced by
1018
1018
  > `tests/test_changelog_eras.py`.
1019
1019
 
1020
- # Era: 8.12.x — current
1020
+ # Era: pre-9.2.0 — archived
1021
1021
 
1022
- > Started at `8.12.0`. Full entries live inline below.
1023
- > The drift test caps this era at 250 lines of entry body; growth past
1024
- > that forces a new era split (`# Era: 8.13.x`, etc.) — see
1025
- > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
1026
-
1027
- ## [9.1.0](https://github.com/event4u-app/agent-config/compare/9.0.0...9.1.0) (2026-07-14)
1028
-
1029
- ### Features
1030
-
1031
- * **create-pr:** tier-driven body, grounded API examples, capability-gated screenshots ([306f7d5](https://github.com/event4u-app/agent-config/commit/306f7d59e6e7dee4a22e9c34aad4fbc89a75e3e2))
1032
- * **create-pr:** settings for description detail level, API examples, screenshots ([65275bb](https://github.com/event4u-app/agent-config/commit/65275bb1237fc4dfbbcefd86d27bc45ef4be257c))
1033
- * **ai-council:** prompt caching + right-sized output on the paid Anthropic path ([3ec7ff0](https://github.com/event4u-app/agent-config/commit/3ec7ff09d49283b096901e5d4716cc529fef1609))
1034
- * **skills:** add llm-provider-knowledge — verify LLM product facts against official docs ([ba34d94](https://github.com/event4u-app/agent-config/commit/ba34d94530d1b30066470a0316f247be84b5ac2d))
1035
- * **commands:** register discoverable /explain-run command ([13955a1](https://github.com/event4u-app/agent-config/commit/13955a1e7ab40a658ed0879e21266fe49a54c6a0))
1036
- * **doctor:** add rule-scope-drift check for the scoped-projection flip ([71353f8](https://github.com/event4u-app/agent-config/commit/71353f8c6bb66b404916f599c5e168bef1f85601))
1037
-
1038
- ### Bug Fixes
1039
-
1040
- * **ai-council:** make prompt caching explicit opt-in (default off) ([bad8070](https://github.com/event4u-app/agent-config/commit/bad80707eda42aacbd3698575e1d22383dbea8b3))
1041
- * **refs:** treat external claude-api plugin as non-repo reference ([75a3431](https://github.com/event4u-app/agent-config/commit/75a34314ca802e8cda39df8ff6b375c52621ae63))
1042
- * **commands:** reference agent-docs-writing skill in /explain-run ([c104279](https://github.com/event4u-app/agent-config/commit/c104279abaaad1035758cc86140be847ed4f4a06))
1043
- * **ci:** honest gate status in skill-lint + self-review comments ([5098465](https://github.com/event4u-app/agent-config/commit/50984659e028c8c0029b1cd1deb8a69bf1c4e61b))
1044
- * **install:** rebuild install bundle with real node_modules paths ([f875244](https://github.com/event4u-app/agent-config/commit/f8752443b1b27bd9471dbf056a65097d898e15de))
1045
- * **install:** rebuild install bundle + reword source-repo comment ([48e9dc2](https://github.com/event4u-app/agent-config/commit/48e9dc2a6f694610322d533b0196346cf07a151d))
1046
- * **tests:** make wrapper-delegation install test hermetic ([8ef5ea2](https://github.com/event4u-app/agent-config/commit/8ef5ea2bdc60f90fde7979bee2dca3d15a2e118e))
1047
-
1048
- ### Documentation
1049
-
1050
- * **create-pr:** document PR-description content settings ([812ae6b](https://github.com/event4u-app/agent-config/commit/812ae6ba84ba5508a71b3ab02c351cad4a3a2e55))
1051
- * subagent prompt-cache break-even + record the follow-up council verdict ([fdba56d](https://github.com/event4u-app/agent-config/commit/fdba56dbe06818c4bc50c5b3e94322e10b34bd0d))
1052
- * **roadmap:** API cost-optimization roadmap + dashboard ([3d1b313](https://github.com/event4u-app/agent-config/commit/3d1b3132b0d0d3a52c7eba555b1e3afd95d5750e))
1053
- * **agent-infra:** API cost-levers guideline + token-optimizer index wiring ([a97d0e7](https://github.com/event4u-app/agent-config/commit/a97d0e7eaa4c61eb4db59f8bdf469d112595b1b5))
1054
- * **roadmap:** archive completed road-to-llm-provider-knowledge-skill ([059aa10](https://github.com/event4u-app/agent-config/commit/059aa10b3405597986c12c0de3da6c767385bb97))
1055
- * **roadmap:** add + archive feedback-9.0-followups roadmap ([c8aa510](https://github.com/event4u-app/agent-config/commit/c8aa5104ac774f77f1354ac9c6c3816096b769fe))
1056
- * **changelog:** repair breaking-surface index + add sync lint ([e333d71](https://github.com/event4u-app/agent-config/commit/e333d7150254310fe569dcb6e0fad2c487568d32))
1057
-
1058
- ### Refactoring
1059
-
1060
- * **install:** retire the consumer bridge marker (ADR-020 amendment) ([2737b04](https://github.com/event4u-app/agent-config/commit/2737b04441b7e807240c979e874d8e2bb3967b9b))
1061
-
1062
- ### Build
1063
-
1064
- * **install:** rebuild bundle with repo-relative module paths ([f30adb5](https://github.com/event4u-app/agent-config/commit/f30adb5a109ac6aee9777bad722ef0146fc208fa))
1065
- * **install:** rebuild install bundle after create_pr settings addition ([a760b9f](https://github.com/event4u-app/agent-config/commit/a760b9f39a41a9621b21ad2fb92851c4a1ea66b2))
1066
-
1067
- ### Chores
1068
-
1069
- * **roadmaps:** archive completed pr-description-tiers roadmap ([2c4615f](https://github.com/event4u-app/agent-config/commit/2c4615fe42129eb8bd33e87a368cbed8f5f1ded7))
1070
- * sync generated guideline count (98 -> 99) for api-cost-levers ([17ce22b](https://github.com/event4u-app/agent-config/commit/17ce22bdfc2d99341d7a3edeaaf80554f4d75f33))
1071
- * **evals:** ratchet behavioural-eval coverage floor to current ([84f42fa](https://github.com/event4u-app/agent-config/commit/84f42fab93d77ad8b0b28ce430b79ae222748719))
1072
-
1073
- Tests: 7737 (+21 since 9.0.0)
1074
-
1075
- ## [9.0.0](https://github.com/event4u-app/agent-config/compare/8.13.0...9.0.0) (2026-07-13)
1076
-
1077
- ### BREAKING CHANGES
1078
-
1079
- * **scoping:** flip consumer rule projection default to scoped (Phase-1 human gate, approved) ([565c91a](https://github.com/event4u-app/agent-config/commit/565c91aa25e4c970d5b37258f497366f33e7a7a9))
1080
-
1081
- **Consumer rule projection is scoped by default** (`road-to-request-scoped-rule-load` Phase 1 human gate, 2026-07-13)
1082
-
1083
- - **Who is affected:** fresh consumer installs — the settings template now
1084
- ships `projection.rule_workspaces` filled with every consumer workspace, so
1085
- the 16 exclusively-maintainer specification rules (plus the recorded
1086
- `source-of-truth.md` compat exclusion) no longer arrive: 103 → 88 rules,
1087
- −9,880 cl100k tokens (−13.1%) per install. All domain safety floors and
1088
- domain rules keep shipping; kernel rules always ship.
1089
- - **Existing installs:** unchanged until you run `agent-config sync` /
1090
- re-install (settings sync preserves your current value; fill the list to
1091
- opt in). The first session after opting in rebuilds the KV-cache prefix
1092
- once (1.25–2× write cost, one session only).
1093
- - **Quality evidence:** deterministic set-inclusion verification
1094
- (`src/scripts/check_consumer_scope_flip.ts` →
1095
- `internal/bench/reports/2026-07-13-consumer-scoped-default-flip.json`):
1096
- only exclusively-maintainer rules drop; zero golden-set-exercised consumer
1097
- rules affected (90/90 labelled tasks, coverage 86/86).
1098
- - **Rollback:** set `projection.rule_workspaces: []` (= legacy-all).
1099
-
1100
- ### Features
1101
-
1102
- * **product:** pre-build demand gate folded into improve-before-implement — plate complete, archived ([d6b0fcb](https://github.com/event4u-app/agent-config/commit/d6b0fcb9d020f983a98f8cd0c744d758bb758f9a))
1103
- * **skills:** Known-pitfalls sections for docker, terraform, laravel ([4427224](https://github.com/event4u-app/agent-config/commit/442722417f319b7b704c2d0bdc711c38e870f796))
1104
- * **skill-writing,size-enforcement:** Known-pitfalls section standard + sprawl guard ([6276c9f](https://github.com/event4u-app/agent-config/commit/6276c9f24b3166c1ae4360151cf05f2cd29f9b31))
1105
- * **skill:** spreadsheet-authoring — recalc-verification loop + zero-formula-error contract ([fcaf93e](https://github.com/event4u-app/agent-config/commit/fcaf93e8beb36c944b356df04b1203941f8a3271))
1106
- * **skill:** pdf-tools — library-per-task PDF create/transform/fill routing ([11af714](https://github.com/event4u-app/agent-config/commit/11af7140fa999dea0f514ddb32f5a1d6d6e8934b))
1107
- * **skill:** docx-authoring — skeleton-create + unpack/edit/pack-with-validate toolkit ([218f711](https://github.com/event4u-app/agent-config/commit/218f7115359f10c630c239ec02302f6a2eb21a63))
1108
- * **humanizer:** severity-tiered AI-ism taxonomy, stance-preservation, voice-match ([00077d2](https://github.com/event4u-app/agent-config/commit/00077d2488246766317f86110a65e65cab7080b9))
1109
- * **skills:** docx-authoring + pdf-tools — completes the document read→write cycle ([c0688c1](https://github.com/event4u-app/agent-config/commit/c0688c11badc38bd060de89f0585b351ea2d265d))
1110
- * **skill:** launch-readiness epistemics block + fix-loop (contract-backed) ([591c386](https://github.com/event4u-app/agent-config/commit/591c386ae6be8d06b68997a41198166334e7249c))
1111
- * **prelaunch:** finding-ID contract, epistemics, regression gate + suppression ([0f4bff6](https://github.com/event4u-app/agent-config/commit/0f4bff64e12f5a73525ea2272df479672ce7f9aa))
1112
- * **workflow:** Phase 3 merge-conflicts plan-first — plate complete, archived ([3f51f4e](https://github.com/event4u-app/agent-config/commit/3f51f4ed1fa6ed4253788432db468c35678f1c81))
1113
- * **workflow:** Phase 2 — HANDOFF.md convention, resume rule, artifact validation ([5092d5e](https://github.com/event4u-app/agent-config/commit/5092d5ef44ea154817eda4640a526fa0909ed9a9))
1114
- * **workflow:** Phase 1 — TDD mode contracts with diff-checkable Forbidden blocks ([a6c4d70](https://github.com/event4u-app/agent-config/commit/a6c4d7048e24505db80dc04c6e03d8a63bfce3d1))
1115
- * **ci:** bridge-derivation, tools-matrix + host-loadability gates (Phase 4.3/4.4) ([9168bbd](https://github.com/event4u-app/agent-config/commit/9168bbdb455412261bf593dd89f5111085d24fe9))
1116
- * **schema:** optional effort: reasoning-effort pin (Phase 4.2) ([9248f36](https://github.com/event4u-app/agent-config/commit/9248f366d13e79d195bfcd50985fc48313e1b51f))
1117
- * **commands:** argument-hint frontmatter across the command surface (Phase 4.1) ([333a1b3](https://github.com/event4u-app/agent-config/commit/333a1b37bd15ff394c9c82ba4a7a961ce3aaf1c2))
1118
- * **authoring:** U1 description-optimizer loop (held-out split) — plate complete, archived ([a2d7f55](https://github.com/event4u-app/agent-config/commit/a2d7f552a6d28657714914d0a0efa81decb2b57e))
1119
- * **authoring:** U5 self-QA fresh-eyes pattern for output-producing skills ([6295bd7](https://github.com/event4u-app/agent-config/commit/6295bd744dc6dbd96face318956e3925a0b80ca6))
1120
- * **authoring:** U3 tool-grant uplift — scoped grants, disallowed_tools deny-list, numeric thresholds ([7089ac8](https://github.com/event4u-app/agent-config/commit/7089ac8d6ac5121f391650987b5b2c8fb227f6fb))
1121
- * **authoring:** U4 register note + U2 Agent-Skills spec alignment ([6ce3a13](https://github.com/event4u-app/agent-config/commit/6ce3a13b1243fdfb63a184c758a4764ab1dc67d8))
1122
- * **telemetry:** U5 agent-combo facet on the orchestration record ([1aacb46](https://github.com/event4u-app/agent-config/commit/1aacb46458c42f3857b5107d714ca25386133e97))
1123
- * **measurement:** U4 host-loadability smoke — generated trees must actually load ([0d0b014](https://github.com/event4u-app/agent-config/commit/0d0b0141f160f5722d4bba71ba8e017d0445a98a))
1124
- * **evals:** U2 golden-adversarial review pair + not_contains assertion kind ([b5f040a](https://github.com/event4u-app/agent-config/commit/b5f040a8fd90b6012106760c06a67981a2a437a9))
1125
- * **measurement:** U1 loaded-vs-fired utilization report + census-honesty note ([545c2ce](https://github.com/event4u-app/agent-config/commit/545c2ce3f1c0d3894bb9eebd5c87bb8e110ddb2b))
1126
- * **telemetry:** U1a loaded denominator — engagement schema, record CLI, aggregator, renderer ([a549788](https://github.com/event4u-app/agent-config/commit/a5497881cc67475a6cddfc3fb857f675fcb032be))
1127
- * **skill-quality:** add read-only-by-default script-convention lint ([401828d](https://github.com/event4u-app/agent-config/commit/401828df53069331007fe0e28edab8811fa46fa4))
1128
- * **skill-quality:** add eval schema v2 — tool-choice + trajectory_budget ([63a5cdf](https://github.com/event4u-app/agent-config/commit/63a5cdfd433374099ea70e8e10a5b8350ccebb52))
1129
- * **skill-quality:** add description-quality lint gate ([e7acc5e](https://github.com/event4u-app/agent-config/commit/e7acc5ec8744b1e00d2fe9ad89727731d3500147))
1130
- * **scoping:** deterministic held-quality verifier for the consumer scoped-projection flip ([9375e6e](https://github.com/event4u-app/agent-config/commit/9375e6e6f4788f644c031a62c36e956bd49c0ec7))
1131
- * **review:** tally-vs-reasoned boundary + fix-pr-comments dedup ([564efa8](https://github.com/event4u-app/agent-config/commit/564efa8300b07c345c9c618b8d5790f20fde9089))
1132
- * **review:** change-type routing, two-tier output, de-biasing in code-review ([ffad758](https://github.com/event4u-app/agent-config/commit/ffad75807e3ae6dae58087280d47865286d9d437))
1133
- * **team-gate:** managed Review-Gate circuit breaker — never an infinite Claude/Codex loop ([0356b30](https://github.com/event4u-app/agent-config/commit/0356b30f60a00b9fe7b13cdd7dde05ddda3684db))
1134
- * **team-fallback:** read-only multi-host review via team_dispatch + team-review envelope ([ba6ea00](https://github.com/event4u-app/agent-config/commit/ba6ea0062b34cad03dc296a887a7d8edba559d09))
1135
- * **security:** STRIDE table, CI-agent + insecure-defaults coverage, active-probe design note ([260fd2f](https://github.com/event4u-app/agent-config/commit/260fd2fe667e0c605cd042935327b316fa4a9641))
1136
- * **security:** add security-maturity-assessment skill ([657b68f](https://github.com/event4u-app/agent-config/commit/657b68f550bdeff356cfa3e1654a98f69835ec26))
1137
- * **security:** add false-positive gate to bug + security review skills ([4309cb3](https://github.com/event4u-app/agent-config/commit/4309cb35f93eb68deeed523369417ad90c13d86c))
1138
- * **evals:** calibrate finding_floor from the cross-host lower envelope — gate armed ([c19aecf](https://github.com/event4u-app/agent-config/commit/c19aecfb440e3d748935a494400319ff8bd0617a))
1139
- * **bench:** cross-model parity count-pass runner (council-transport re-scope) ([5cef323](https://github.com/event4u-app/agent-config/commit/5cef32329263f1169ed7875cf4cfad0ab982a10c))
1140
-
1141
- ### Bug Fixes
1142
-
1143
- * **humanizer:** reword 'drift' → 'slippage' to clear wing3_vendor_independence false-positive ([66f9179](https://github.com/event4u-app/agent-config/commit/66f91797a0f3cff9c414cb0edfe64b89c916d1a8))
1144
- * **ai-council:** enforce config is user-global only, never project-local ([09b16bb](https://github.com/event4u-app/agent-config/commit/09b16bb559f548baf2760a255e1ab20b48a3ccdd))
1145
- * **merge:** resolve index-roadmap conflict — both quality-gates and workflow-contracts shipped ([c42dce4](https://github.com/event4u-app/agent-config/commit/c42dce428f0c35f01cf2e58046f62be28dc05504))
1146
- * **ci:** use .js import extensions in the new matrix-lint modules (typecheck) ([bf79fe0](https://github.com/event4u-app/agent-config/commit/bf79fe0fd32975b2b1e7d1639bf382874f9b0c18))
1147
- * **schema:** surgical skill-schema edits — restore original formatting ([01243ad](https://github.com/event4u-app/agent-config/commit/01243ad12cf5381a010f1e822b6f0e3bb8a32268))
1148
- * **rules:** P4 Batch B stub consistency — routes_to + fire-time fix-now boundary ([97bed1c](https://github.com/event4u-app/agent-config/commit/97bed1c1dedc0687a9349381949094f850da8e1f))
1149
- * **linear-digest:** drop stale strip_sections for context-hygiene after Batch B migration ([0e705c1](https://github.com/event4u-app/agent-config/commit/0e705c1316a5cfb2e76ca5e0cd958fa95757463c))
1150
- * **tests:** run bench_parity_count tests under vitest (CI runner), not node:test ([5076a68](https://github.com/event4u-app/agent-config/commit/5076a68353f789d35dc2f236090056aa1a958017))
1151
- * **ci:** team status description under the 200-char linter cap ([800d2f4](https://github.com/event4u-app/agent-config/commit/800d2f49fdbd980bf58333f3a80bebe0760768bb))
1152
- * **team-doctor:** expiry-aware auth signal + namespace-resistant plugin identity + gate WARN ([7698386](https://github.com/event4u-app/agent-config/commit/76983863d0a164e20ad2a588fb2e6b8517f00622))
1153
-
1154
- ### Documentation
1155
-
1156
- * **roadmap:** mark skill-quality-gates Phases 1-3 done ([b0c2d43](https://github.com/event4u-app/agent-config/commit/b0c2d43b5a409c69a991191b478c8af28e58a463))
1157
- * **changelog:** breaking-change entry for the scoped consumer default (sync/re-install + one-time KV-prefix rebuild) ([2520859](https://github.com/event4u-app/agent-config/commit/2520859aa3e1842658392596e892b82b16f2b6eb))
1158
- * **roadmaps:** add and archive road-to-batch-b-stub-consistency ([60bf22c](https://github.com/event4u-app/agent-config/commit/60bf22cbbfffdf60e431c147bb5ec2367d2b1fa1))
1159
- * **team:** quota clarity, honest wording, pack move to meta, envelope contract ([6be986e](https://github.com/event4u-app/agent-config/commit/6be986e3ed500d3165a7adec3525203a0fd5b76e))
1160
- * **bench:** cross-model-parity-count claim + benchmark section ([5ff1a4c](https://github.com/event4u-app/agent-config/commit/5ff1a4c9f90344523e8977639296e18128674abc))
1161
-
1162
- ### Refactoring
1163
-
1164
- * **rules:** P4 Batch B part 2 — domain-adoption-policy, minimal-safe-diff, context-hygiene thinned; backlink report + grandfather shrink ([c6eb79c](https://github.com/event4u-app/agent-config/commit/c6eb79cb7383a78e3b48bc46bef4ade01b7d9106))
1165
- * **rules:** P4 Batch B part 1 — active-remediation, artifact-drafting-protocol, framework-neutrality, design-fidelity thinned to stubs ([e382bec](https://github.com/event4u-app/agent-config/commit/e382bec6cc04470e19534c7521a8271c52e0f79e))
1166
-
1167
- ### Tests
1168
-
1169
- * **workspace_inbox:** refresh skill-hint snapshot for docker Known-pitfalls section ([7003101](https://github.com/event4u-app/agent-config/commit/70031011264cc6bcafc8b68a33f8b6cfafa1c7e2))
1170
- * **review:** review-mechanics eval fixtures ([3a74f94](https://github.com/event4u-app/agent-config/commit/3a74f94e729fe6c5f0476be303e11b1d91a80027))
1171
-
1172
- ### Build
1173
-
1174
- * **skill-quality:** wire the two new lints into ci-fast ([c9e85d8](https://github.com/event4u-app/agent-config/commit/c9e85d80f31266f901189f2ee3bdc337ce030551))
1175
-
1176
- ### Chores
1177
-
1178
- * **roadmap:** tool-pitfalls plate complete — archived, index updated ([b93774c](https://github.com/event4u-app/agent-config/commit/b93774c8d130a2e0f6663b0aba24d88e679924a1))
1179
- * refresh condensation hashes ([8a0d974](https://github.com/event4u-app/agent-config/commit/8a0d97437f6257399da5f79cb218671154aa97b4))
1180
- * **roadmap:** document-skills plate complete — archived, index updated ([d96a11e](https://github.com/event4u-app/agent-config/commit/d96a11e5d69bf21c7d6d6d2148b231fb56449a7e))
1181
- * **docs:** skill counts 272 → 274, meta pack regen, condensation hashes ([4115d3a](https://github.com/event4u-app/agent-config/commit/4115d3a08041086251926303ee9e3d6c39437cd8))
1182
- * **generated:** regenerate proof.md + CAPABILITIES.yaml after +2 skills (272→274) ([51eac3e](https://github.com/event4u-app/agent-config/commit/51eac3eb885956ac4ded6f874d4a27645b1c6dc9))
1183
- * **roadmap:** prose-authenticity U1-U5 complete; U6 blocked on decision-revisit-gate ([ebff2d8](https://github.com/event4u-app/agent-config/commit/ebff2d815630ea92a69bd341a21f73aa39fc66ac))
1184
- * **roadmap:** prelaunch-diagnostics plate complete — archived, index updated ([6ca449d](https://github.com/event4u-app/agent-config/commit/6ca449de2e3b4c8c73ef36ca509a9956d57ac087))
1185
- * **roadmap:** skill-quality-gates plate complete — Phase 4 flipped, archived, index updated ([2d89dd3](https://github.com/event4u-app/agent-config/commit/2d89dd3e2c514f3add37176ee86e84e2b218fbb4))
1186
- * **sync:** regenerate meta domain README after condense-memory description update ([d6f8557](https://github.com/event4u-app/agent-config/commit/d6f85574627e124b6b9af8e2b2e3cc2b2731a122))
1187
- * **condense:** re-mark upstream-contribute after skill-writing dep-fold ([6e71ef9](https://github.com/event4u-app/agent-config/commit/6e71ef95daf695b23de2da3fd30c4f840ca1a2b7))
1188
- * **roadmap:** authoring-rigor U2+U4 closed ([b744092](https://github.com/event4u-app/agent-config/commit/b74409267a40e458805a701cc44678bf679041df))
1189
- * **sync:** dist twin of code-review evals after U2 golden pair ([10d67ba](https://github.com/event4u-app/agent-config/commit/10d67ba755ef75ecc2520e2ff242d00a9c8e10fa))
1190
- * **roadmap:** reliability-measurement plate complete — archived, index updated ([5662e80](https://github.com/event4u-app/agent-config/commit/5662e80753a620be34c95680e1d7e4cec56dd0d4))
1191
- * **roadmap:** reliability-measurement U1/U1a/U3 closed ([dc16eaa](https://github.com/event4u-app/agent-config/commit/dc16eaa6e1d19c105b36001f09979e8a08cb8466))
1192
- * **roadmap:** request-scoped-rule-load Phase-1 human gate closed - only trigger-gated Phase-4 park remains ([0f46997](https://github.com/event4u-app/agent-config/commit/0f46997c9829a6d9c3f265ed4d744c3588e7f7be))
1193
- * **counts:** guideline badge + table 91 -> 98 after Batch B guideline homes ([ecad776](https://github.com/event4u-app/agent-config/commit/ecad7764848d8a0309bae2a56c11b3aafd048efc))
1194
- * **roadmap:** complete + archive review-mechanics; refresh hashes ([9ede176](https://github.com/event4u-app/agent-config/commit/9ede1767c451446ec485198da25247821d56b032))
1195
- * **roadmap:** request-scoped-rule-load Phase 5 closed — Batch B done, Batch C skipped-by-tradeoff, backlink report current ([37e73f8](https://github.com/event4u-app/agent-config/commit/37e73f89cd30dc7127293de51cc583ed0118d7b1))
1196
- * **roadmap:** truth-sync the inherited golden-set blocker in request-scoped-rule-load ([2e13966](https://github.com/event4u-app/agent-config/commit/2e1396657d2e9570bb6eebbb02f51413f1b5fad2))
1197
- * **roadmap:** park road-to-token-saving in later/ — all open work operator-gated, judge blocker resolved negative ([51a56bd](https://github.com/event4u-app/agent-config/commit/51a56bdd0fe6b6203bde83792892a88f25a5c8c4))
1198
- * **proof:** regenerate docs/proof.md after claims-ledger update ([63421da](https://github.com/event4u-app/agent-config/commit/63421da76566e2ca38e1f72025c68e49646ec404))
1199
- * **bench:** codex-host lift replication HONEST NULL — discipline_profile default stays; measurement-unblock roadmap complete + archived ([5e11ce0](https://github.com/event4u-app/agent-config/commit/5e11ce09f7846f4875e032db1c6dc236f9a229cb))
1200
- * **pack:** register security-maturity-assessment in engineering-base manifest ([ee89252](https://github.com/event4u-app/agent-config/commit/ee89252794e4979a002de7e2dd682ee90c75d533))
1201
- * sync generated count surfaces + dependent command hashes ([44e064a](https://github.com/event4u-app/agent-config/commit/44e064abecd90d924432fcef958477964ed13fa7))
1202
- * **sync:** meta pack manifest + index + envelope dist projection ([5473ca0](https://github.com/event4u-app/agent-config/commit/5473ca0e9e6446bfff475db8668ff334b9f2295d))
1203
- * **roadmaps:** feedback-8.11-5 executed and archived; team-mode Phases 3+4 complete ([487cbe6](https://github.com/event4u-app/agent-config/commit/487cbe61a2fa52e20c21db66aa9b6a4650aac60b))
1204
- * **roadmap:** regenerate progress dashboard ([d085f71](https://github.com/event4u-app/agent-config/commit/d085f716c25c06fa2edf6561c0c66ba9204acdc9))
1205
- * **roadmap:** archive completed ecosystem-harvest bug-security-rigor ([25982c5](https://github.com/event4u-app/agent-config/commit/25982c55aefd3a8c2b8715f2ac05112e52849bb4))
1206
- * **roadmap:** measurement-unblock Phase 3 complete (build decision + parity pass + armed gate) ([9c0f051](https://github.com/event4u-app/agent-config/commit/9c0f051c91b6a712884fb1408e41c339fc42462f))
1207
-
1208
- Tests: 7716 (+158 since 8.13.0)
1209
-
1210
- ## [8.13.0](https://github.com/event4u-app/agent-config/compare/8.12.0...8.13.0) (2026-07-12)
1211
-
1212
- ### Features
1213
-
1214
- * **backlinks:** orphan-stub correctness check + fan-out info + gated hard-gate list ([fe88ff5](https://github.com/event4u-app/agent-config/commit/fe88ff5c42bd08338c0ab9c83f3e1fdf0f6f7d1c))
1215
- * **team-doctor:** 'team' health check + suppressible setup hint ([22a5c14](https://github.com/event4u-app/agent-config/commit/22a5c141ddaa47994f7d9c150dafa36b0fcb38a8))
1216
- * **team-commands:** /team family — thin fail-closed delegations under ai_team governance ([958c491](https://github.com/event4u-app/agent-config/commit/958c4910bf2276449a99ef2462e78caa718148a5))
1217
- * **team-config:** ai_team contract — default-off block, fail-closed loader, shared quota ([f45c988](https://github.com/event4u-app/agent-config/commit/f45c98860a63d2c8c572a9e121ecaf05d4c34aa9))
1218
- * **pr-create:** harden the freshness gate — regenerate-on-conflict + update freshness ([83104e0](https://github.com/event4u-app/agent-config/commit/83104e0a3a8666d8eb47044c9b9e028a1e60c913))
1219
-
1220
- ### Bug Fixes
1221
-
1222
- * **rules:** restore the concrete verification-tool mapping in the improve-before-implement stub ([a54d89f](https://github.com/event4u-app/agent-config/commit/a54d89f852120e639f25aa059e33baf672255f66))
1223
-
1224
- ### Documentation
1225
-
1226
- * **round4:** strict:false operating conditions + Batch B/C stub-necessity pre-questions ([7961ba4](https://github.com/event4u-app/agent-config/commit/7961ba4dda15d33fe4a8be6a92d4e71b7a4bedb6))
1227
- * **team:** getting-started section — depth complement to the council, no value claims ([6c64fc3](https://github.com/event4u-app/agent-config/commit/6c64fc3acade96c3d1eff3c610677be5a852f18e))
1228
- * **roadmap:** measurement-unblock Phase 2 — codex auth+smoke verified, paired run in flight ([489bdc1](https://github.com/event4u-app/agent-config/commit/489bdc168565c6b27eceeaca8384751e089378ef))
1229
-
1230
- ### Chores
1022
+ > All entries before `9.2.0` live in
1023
+ > [`docs/archive/CHANGELOG-pre-9.2.0.md`](docs/archive/CHANGELOG-pre-9.2.0.md).
1024
+ > The archive is read-only; git tags remain the canonical
1025
+ > source for what shipped. Splitting them out of the main file
1026
+ > keeps the active era under the 250-line drift cap enforced by
1027
+ > `tests/test_changelog_eras.py`.
1231
1028
 
1232
- * **counts:** hero badge + browse line 178 -> 183 after the 8.12.0 release merge ([ef396f5](https://github.com/event4u-app/agent-config/commit/ef396f55476ccfed53387a6fbe49201be8e312c0))
1233
- * **counts:** featured-skills command count 178 -> 183 (update_counts anchor) ([13cb8de](https://github.com/event4u-app/agent-config/commit/13cb8de13373e66c26a21689b2a86427ee9ac043))
1234
- * **roadmaps:** feedback-8.11-4 executed and archived; team-mode P1+P2 complete ([dd44aa6](https://github.com/event4u-app/agent-config/commit/dd44aa69fea35d95fadc00936c3ec23caaeb2c1b))
1029
+ # Era: 9.2.x — current
1235
1030
 
1236
- Tests: 7558 (+49 since 8.12.0)
1031
+ > Started at `9.2.0`. Full entries live inline below.
1032
+ > The drift test caps this era at 250 lines of entry body; growth past
1033
+ > that forces a new era split (`# Era: 9.3.x`, etc.) — see
1034
+ > [`docs/contracts/CHANGELOG-conventions.md § Era splits`](docs/contracts/CHANGELOG-conventions.md).
1237
1035
 
1238
- ## [8.12.0](https://github.com/event4u-app/agent-config/compare/8.11.0...8.12.0) (2026-07-12)
1036
+ ## [9.2.0](https://github.com/event4u-app/agent-config/compare/9.1.0...9.2.0) (2026-07-14)
1239
1037
 
1240
1038
  ### Features
1241
1039
 
1242
- * **rules:** P4 migration Batch A — 9 rule bodies to their existing homes (−51.7% stub bytes) ([94dc19c](https://github.com/event4u-app/agent-config/commit/94dc19cac62ff21449afd5a373c1363ee3d6215c))
1243
- * **explain-run:** plain-language Summary section ([257d8fc](https://github.com/event4u-app/agent-config/commit/257d8fc4d2ef69e9696f9a143d653a1a0a771e2c))
1244
- * **complexity:** report v2 — proxy honesty, coupling metric, soft-ratchet baseline ([8328bae](https://github.com/event4u-app/agent-config/commit/8328bae0b791da4215fd704a90734123df0f6b13))
1245
- * **bench:** live retrieval benchmark executed — decisive PASS ([25d9f03](https://github.com/event4u-app/agent-config/commit/25d9f03756e33870fbc507bc1bc964c5b6c83403))
1246
- * **bench:** persona-placebo benchmark — executed, HONEST NULL (identity adds nothing) ([000c3e7](https://github.com/event4u-app/agent-config/commit/000c3e77081d7aa39e3d617f98ba67ef27121218))
1247
- * **reports:** complexity report, explain-run v0, rule-backlinks — all report-only with kill criteria ([e718f13](https://github.com/event4u-app/agent-config/commit/e718f1396562e0cb94fab344b75332a73a34ac35))
1248
- * **knowledge:** per-card sensitivity classes, promotion gate, revocation trail (ADR-121) ([a14b1ad](https://github.com/event4u-app/agent-config/commit/a14b1ad54b750d86ff288cd96ad9e76fe58fcdc5))
1249
- * **consumer-matrix:** live hook-lifecycle leg + dist import-graph completeness ([1f1d9e1](https://github.com/event4u-app/agent-config/commit/1f1d9e1f8f8186de51071f47ca20ed649fad01f3))
1250
- * **bench:** length-neutral judge rerun — executed, SECOND INCONCLUSIVE (gate closed-by-diagnosis) ([66ba0a3](https://github.com/event4u-app/agent-config/commit/66ba0a3e7a995fb8f7db1b795d33682328dc8596))
1251
- * **council:** restate pass — the last wiring item (pre-round-1, transport-safe) ([4df6069](https://github.com/event4u-app/agent-config/commit/4df6069e127a0467f5a86aea57ea4c90929746a1))
1252
- * **council:** stance-line repair call in consult (bounded, transport-gated) ([91fd10e](https://github.com/event4u-app/agent-config/commit/91fd10e25429d7d35f460ba8560c76565007b0c6))
1253
- * **council:** debate-gate repair dispatch in run_debate (bounded, policy-gated) ([e7f6380](https://github.com/event4u-app/agent-config/commit/e7f6380639835d61c72b4b89cb79d77a5c90cb9c))
1040
+ * **rules:** cross-source-consistency — detect discrepancies, ask before guessing ([63b8049](https://github.com/event4u-app/agent-config/commit/63b804981e70045f138af4bd4a5546b62b135d24))
1041
+ * **settings:** add consistency.cross_source toggle (default on) ([2f41bbb](https://github.com/event4u-app/agent-config/commit/2f41bbbf52737f12401eb7ccfed104d3b4a9b4a6))
1042
+ * **settings:** opt-in subagents.adversarial_council + verify-budget escalation ([fa68dbc](https://github.com/event4u-app/agent-config/commit/fa68dbc514a6cc2def90f7f4b8b031e5c872747f))
1043
+ * **subagent:** Mode 9 adversarial-verification-council + skeptic prompt ([26501a1](https://github.com/event4u-app/agent-config/commit/26501a18a1ab53d3eb54a06230086e0c4508bfee))
1044
+ * **subagent:** adversarial-findings schema + deterministic reconciliation core ([12c64f2](https://github.com/event4u-app/agent-config/commit/12c64f26bcc92d4472935badc41b64fe563f98b2))
1254
1045
 
1255
1046
  ### Bug Fixes
1256
1047
 
1257
- * **ci:** roadmap-ci-steps-mechanics joins the task-invocation skip class ([659d775](https://github.com/event4u-app/agent-config/commit/659d775099bd67168beac8a5742a4efbe773b690))
1258
- * **ci:** skill description under the 200-char linter cap + modernize a migrated legacy path ([893ce69](https://github.com/event4u-app/agent-config/commit/893ce6922df759ac2432b221e28951a292233a47))
1259
- * **proof:** move the honest-null entry into the build_proof generator ([5c1a12c](https://github.com/event4u-app/agent-config/commit/5c1a12c152d35fd320e40f0173b27f842fb39903))
1260
- * **ci:** regenerate proof.md post-merge + de-literalize example imports ([6ff330d](https://github.com/event4u-app/agent-config/commit/6ff330d5a84c4682fae63eb2331ec3f645473cb4))
1261
- * **claims:** thin-projection honesty + pre-register the council-vs-solo baseline ([6aee669](https://github.com/event4u-app/agent-config/commit/6aee669e311261121f582793e47698e029b0c8ae))
1262
- * **identity:** resolve the placeholder git identity and guard against recurrence ([b17a801](https://github.com/event4u-app/agent-config/commit/b17a801dd16ddda9c3bcfd6b269dc65aff5a5e41))
1263
- * **counts:** regenerate CAPABILITIES.yaml and close the structured-surface drift gap ([55aafb5](https://github.com/event4u-app/agent-config/commit/55aafb58b7f0e775b73a100d0b83f55b13defea0))
1048
+ * **proof:** regenerate docs/proof.md after the pre-registered claim ([a24fb54](https://github.com/event4u-app/agent-config/commit/a24fb54574379aaf90061beee2df4d21e3d55a9a))
1264
1049
 
1265
1050
  ### Documentation
1266
1051
 
1267
- * **posture:** knowledge scaling reality + local_auto_run as deliberate design ([ad9f43b](https://github.com/event4u-app/agent-config/commit/ad9f43baaa52cea533f6e1fd91ca012d95d35e9e))
1268
- * **maintainers:** one-page system map + prepared branch protection ([efe63d0](https://github.com/event4u-app/agent-config/commit/efe63d006ff7ef97b1f4e201c29e53824ef3af95))
1269
- * **claims:** pre-register the utilization-window decision criteria ([4667adf](https://github.com/event4u-app/agent-config/commit/4667adf085af9d2e178932b0a3fc9e2d674d6d2c))
1270
- * **roadmap:** complete + archive road-to-opt-retrieval-and-memory ([cfc8657](https://github.com/event4u-app/agent-config/commit/cfc86578b7033945d227db80d98821aef33b8917))
1271
- * **roadmap:** complete + archive road-to-opt-council-deliberation ([8777a8e](https://github.com/event4u-app/agent-config/commit/8777a8ebf90c2fc32362cfcbe1e58f8bee8f56d7))
1272
- * **proof:** persona-identity-placebo-null — backed claim + honest-null story ([0d0de13](https://github.com/event4u-app/agent-config/commit/0d0de1387b6cd61a0165ec26a1db695172dcc2bd))
1273
- * **rules:** rule-body migration inventory + P4 batches into request-scoped-rule-load ([c5abc40](https://github.com/event4u-app/agent-config/commit/c5abc40e4edc09d92681afbeae5f837f63784e29))
1274
- * **bench:** record the closed-by-diagnosis disposition ([e02f7d7](https://github.com/event4u-app/agent-config/commit/e02f7d765d1aa2d61ae7bd1e879b27a1711fe595))
1275
- * **roadmap:** flip the restate step + the confirmed harness prerequisite ([6415b3e](https://github.com/event4u-app/agent-config/commit/6415b3e672a659e8453159ca7e421d2ce7fdb9da))
1276
- * **roadmap:** flip the stance-repair + chairman-ADR steps ([c1278a0](https://github.com/event4u-app/agent-config/commit/c1278a092027bb1659ba37d3281b9692a2c4066e))
1277
- * **adr:** ADR-120 — council chairman mode supersedes always-host synthesis ([9e593f4](https://github.com/event4u-app/agent-config/commit/9e593f42bcd5ff844332eb7eca4fbb545be7d8fd))
1278
- * **roadmap:** flip the debate-gate repair-dispatch step ([d4bba6b](https://github.com/event4u-app/agent-config/commit/d4bba6b31c1ceca01480f66ea80174a27887ab88))
1052
+ * **adr:** ADR-122 + pre-registered finding-coverage claim + eval design ([0123cd2](https://github.com/event4u-app/agent-config/commit/0123cd298d0587fd1eb98f82c7e40f41e912ee05))
1279
1053
 
1280
1054
  ### Chores
1281
1055
 
1282
- * **sync:** propagate the shortened skill description into the generated domain README ([ec2a931](https://github.com/event4u-app/agent-config/commit/ec2a931e76b148c0c653dad3353f6f11590edf33))
1283
- * **roadmaps:** feedback-8.11-2 disposition executed and archived ([0037d52](https://github.com/event4u-app/agent-config/commit/0037d521c62699d3757b5e975dafbec54beab1b4))
1284
- * **condense:** record knowledge-card template condensation hash ([7ce68cc](https://github.com/event4u-app/agent-config/commit/7ce68cc38d976a4e10666bdf006db4059d788305))
1285
- * **roadmaps:** feedback-8.11 disposition executed and archived ([960179f](https://github.com/event4u-app/agent-config/commit/960179fa08e343a8e1bb1856bce76e2025abe8d3))
1056
+ * regenerate derived artefacts for the new rule ([5268766](https://github.com/event4u-app/agent-config/commit/5268766dd6aca34efbac77660ecf3fa9d1553814))
1286
1057
 
1287
- Tests: 7509 (+130 since 8.11.0)
1058
+ Tests: 7764 (+27 since 9.1.0)
1288
1059
 
1289
1060
  # Era: pre-4.0.0 — archived
1290
1061
 
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [![Smoke](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke.yml) [![Public install smoke (3 OS × 2 Node)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml/badge.svg)](https://github.com/event4u-app/agent-config/actions/workflows/smoke-public-install.yml) [![npm](https://img.shields.io/npm/v/@event4u/agent-config?style=flat-square&label=npm&color=orange)](https://www.npmjs.com/package/@event4u/agent-config) [![agent-config MCP server](https://glama.ai/mcp/servers/event4u-app/agent-config/badges/score.svg)](https://glama.ai/mcp/servers/event4u-app/agent-config)
6
6
 
7
- [![Skills](https://img.shields.io/badge/Skills-275-orange?style=flat-square)](dist/agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-104-orange?style=flat-square)](dist/agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-184-orange?style=flat-square)](dist/agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-99-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-29-orange?style=flat-square)](dist/agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](dist/agent-src/personas/advisors/)
7
+ [![Skills](https://img.shields.io/badge/Skills-275-orange?style=flat-square)](dist/agent-src/skills/) [![Rules](https://img.shields.io/badge/Rules-105-orange?style=flat-square)](dist/agent-src/rules/) [![Commands](https://img.shields.io/badge/Commands-184-orange?style=flat-square)](dist/agent-src/commands/) [![Guidelines](https://img.shields.io/badge/Guidelines-100-orange?style=flat-square)](docs/guidelines/) [![Personas](https://img.shields.io/badge/Personas-29-orange?style=flat-square)](dist/agent-src/personas/) [![Advisors](https://img.shields.io/badge/Advisors-5-orange?style=flat-square)](dist/agent-src/personas/advisors/)
8
8
 
9
9
  > **Choose your experience — developer · founder · content · agency · finance · ops. Add packs. Get a focused command set, not a 500-artefact dump.** Bring your own AI provider.
10
10
 
@@ -131,6 +131,8 @@ On exit `1`, look at the first line after `[halt] outcome=… step=…`:
131
131
  options verbatim, wait for the user, write their answer back onto the
132
132
  matching state slice, then re-run the engine. Never guess.
133
133
 
134
+ A **cross-source discrepancy** discovered while planning or applying — ticket text contradicting an attached mockup, a spec silent on a clearly-needed behavior, or a spec-vs-codebase conflict (per [`cross-source-consistency`](../rules/cross-source-consistency.md), gated by `consistency.cross_source`) — is a blocking user question, not a silent resolution: surface it as the `questions[0]` halt and wait, never expand scope on a plausible inference.
135
+
134
136
  ### 4. Directive mapping
135
137
 
136
138
  When `questions[0]` is `@agent-directive: <verb> [key=value …]`, dispatch:
@@ -130,6 +130,28 @@ If picked **1**:
130
130
 
131
131
  If picked **2** → continue with internal judges only.
132
132
 
133
+ ### 4c. Optional adversarial verification council (opt-in, high-risk)
134
+
135
+ Read `subagents.adversarial_council` from `.agent-settings.yml` (default
136
+ `off`):
137
+
138
+ - `off` (default): skip silently.
139
+ - `ask`: when the diff is explicitly high-risk (security, tenant, migration,
140
+ public API), offer it (in the user's language):
141
+
142
+ > 1. Run the adversarial verification council on this high-risk diff? (distinct-model skeptics red-team for finding coverage)
143
+ > 2. Skip — the five internal judges are enough
144
+
145
+ - `on`: run it automatically on a high-risk diff.
146
+
147
+ When run, dispatch the
148
+ [`adversarial-verification-council`](../../skills/subagent-orchestration/SKILL.md)
149
+ mode (Mode 9): distinct-model skeptics red-team the diff for defect FINDING
150
+ coverage; the reconciled findings-by-severity envelope is folded into step 5 as
151
+ an **advisory** input, clearly marked. Like the external council it **never
152
+ auto-gates** — a human decides what is actionable. This is defect coverage, not
153
+ a go/no-go verdict.
154
+
133
155
  ### 5. Consolidate
134
156
 
135
157
  Consolidate via [`judge-synthesis`](../../skills/judge-synthesis/SKILL.md) — the
@@ -1,10 +1,11 @@
1
- # Subagent Modes — worktree + live-app-judge detail
1
+ # Subagent Modes — worktree + live-app-judge + adversarial-council detail
2
2
 
3
- Extended detail for the two heaviest [`subagent-orchestration`](../../skills/subagent-orchestration/SKILL.md)
4
- modes — `do-in-worktrees` (mode 7) and `do-with-live-app-judge` (mode 8).
5
- Split out of the skill body to keep it under the size budget; the mode list,
6
- selection rules, and the six common modes stay inline in the skill. Pull this
7
- when you actually dispatch one of these two modes.
3
+ Extended detail for the heaviest [`subagent-orchestration`](../../skills/subagent-orchestration/SKILL.md)
4
+ modes — `do-in-worktrees` (mode 7), `do-with-live-app-judge` (mode 8), and
5
+ `adversarial-verification-council` (mode 9). Split out of the skill body to keep
6
+ it under the size budget; the mode list, selection rules, and the six common
7
+ modes stay inline in the skill. Pull this when you actually dispatch one of these
8
+ modes.
8
9
 
9
10
  ## Mode 7 — do-in-worktrees
10
11
 
@@ -82,3 +83,37 @@ Rules:
82
83
  mechanism for this mode's judge once dependable screenshot tooling lands.
83
84
  Recorded from road-to-opt-design-polish; gate it behind the same
84
85
  `verdict_changed_outcome` adoption evidence above.
86
+
87
+ ## Mode 9 — adversarial-verification-council (gated — opt-in, advisory)
88
+
89
+ A panel of N (default 2) **distinct-model** skeptics red-teams a real,
90
+ already-verified change through the `judge-*` lenses. Each skeptic is prompted to
91
+ *break* the change, returns a structured findings array (+ optional refutations),
92
+ and the returns are reconciled by
93
+ [`_lib/adversarial_reconcile.ts`](../../../scripts/_lib/adversarial_reconcile.ts)
94
+ into one [`adversarial-findings.json`](../../../skills/subagent-orchestration/schemas/adversarial-findings.json)
95
+ envelope. Scope: defect **finding coverage**, not a go/no-go decision (that is
96
+ mode 6). Full contract: ADR-122; skeptic prompt:
97
+ [`prompts/adversarial-verification-council.md`](../../../skills/subagent-orchestration/prompts/adversarial-verification-council.md).
98
+
99
+ | When to use | When not | Model pairing |
100
+ |---|---|---|
101
+ | High-risk change (security, tenant, migration, public API) where finding coverage matters, opted-in | Default flow, routine change, `subagents.adversarial_council: off`, or a plain go/no-go (use mode 6) | skeptics = ≥2 distinct models; cross-*vendor* for the registered claim + high-risk tier; cross-model Iron Law across all |
102
+
103
+ Invariants:
104
+
105
+ - **Advisory only — never auto-gates the change (Hard Floor).** The reconciler
106
+ ranks and annotates findings; a human decides what is actionable.
107
+ - **Default-off.** `subagents.adversarial_council` (`off|ask|on`, default `off`).
108
+ Fires only on an explicit high-risk change under an opted-in setting.
109
+ - **Cross-model Iron Law** across all skeptics; the registered finding-coverage
110
+ claim and the high-risk tier require cross-*vendor* skeptics (the backed
111
+ `cross-vendor-parity` signal is provider-level).
112
+ - **Reconciliation is deterministic TS with tests** — dedup, severity-quorum
113
+ confidence, false-positive suppression (demote, never drop). Never
114
+ LLM-computed prose (ADR-122 anti-lesson).
115
+ - **N cap** from the verify budget; no daemon / no persistent runtime; each
116
+ skeptic return uses the `subagent-status.json` envelope before reconciliation.
117
+ - **Prove-or-drop.** The mode stays default-off until the
118
+ `adversarial-council-finding-coverage` claim is `backed` by the two-stage
119
+ residual-detection benchmark (roadmap Phase 4); honest-null keeps it inert.
@@ -30,6 +30,20 @@ verification recorded as `none`, or a non-trivial change verified only
30
30
  deterministically, is a **gap** that is surfaced to the user — it never passes
31
31
  silently. This is the audit-visible enforcement of the Iron Law.
32
32
 
33
+ ## Opt-in escalation — adversarial verification council (default-off)
34
+
35
+ For an explicitly high-risk change (security, tenant, migration, public API)
36
+ AND `subagents.adversarial_council != off`, the verify step MAY escalate from a
37
+ single cross-model judge to the **adversarial-verification-council** panel
38
+ (subagent-orchestration Mode 9, ADR-122) — recorded as `verify_mode: council`.
39
+
40
+ This escalation is **strictly opt-in and advisory**: it never fires when the
41
+ setting is `off` (the default), and the panel finds defects but **never
42
+ auto-gates the change** (Hard Floor). It replaces neither the deterministic
43
+ floor nor the standard judge — it adds finding-coverage on top for changes where
44
+ a single judge is too easy to fool. Stays default-off until the
45
+ `adversarial-council-finding-coverage` claim is `backed` (prove-or-drop).
46
+
33
47
  ## Why this does not weaken the floor
34
48
 
35
49
  `deterministic` is still verification — a real diff + dry-run + structural
@@ -48,3 +62,4 @@ small to carry risk, where the deterministic check is sufficient evidence.
48
62
  - [`verify-before-complete`](../../rules/verify-before-complete.md) — the Iron Law this preserves.
49
63
  - [`subagent-orchestration`](../../skills/subagent-orchestration/SKILL.md) — the cross-model judge law.
50
64
  - [`orchestration-telemetry`](orchestration-telemetry.md) — where `verify_mode` is recorded.
65
+ - [`subagent-response-contract`](subagent-response-contract.md) — a low-confidence mutating finding forces the full judge path (`forcesJudge`).
@@ -0,0 +1,92 @@
1
+ ---
2
+ type: "auto"
3
+ tier: "2a"
4
+ description: "Two sources disagree (ticket text vs mockup, spec silent on a needed behavior, spec vs code) → surface + ask before proceeding, never silently guess"
5
+ triggers:
6
+ - keyword: "ticket"
7
+ - keyword: "refine"
8
+ - keyword: "acceptance criteria"
9
+ - keyword: "AC"
10
+ - keyword: "mockup"
11
+ - keyword: "screenshot"
12
+ - keyword: "attachment"
13
+ - keyword: "roadmap"
14
+ - keyword: "estimate"
15
+ - phrase: "plan this ticket"
16
+ - phrase: "refine this ticket"
17
+ - phrase: "is this ticket clear"
18
+ - phrase: "implement the ticket"
19
+ applies_to_user_types:
20
+ - "developer"
21
+ - "founder"
22
+ - "consultant"
23
+ routes_to:
24
+ - "guideline:agent-infra/cross-source-consistency-mechanics"
25
+ workspaces: [engineering, product]
26
+ packs: [engineering-base, product-basic]
27
+ ---
28
+
29
+ # Cross-Source Consistency
30
+
31
+ When the agent works from **more than one source** — ticket text, an attached
32
+ image / mockup / screenshot, the spec, the codebase — those sources can
33
+ disagree. The failure this rule prevents: the agent notices (or should notice)
34
+ the disagreement, picks one reading, and proceeds silently — **even when its
35
+ pick is correct**. A good guess on a real contradiction still robs the user of
36
+ the decision that was theirs to make.
37
+
38
+ ## The Iron Law
39
+
40
+ ```
41
+ TWO PRESENT SOURCES DISAGREE → SURFACE THE DISCREPANCY AND ASK BEFORE PROCEEDING.
42
+ A SILENT GUESS ON A REAL CONTRADICTION IS A VIOLATION — EVEN IF THE GUESS IS RIGHT.
43
+ AN INFERRED-BUT-UNSPECIFIED BEHAVIOR IS A SCOPE EXPANSION: ASK, NEVER ADD IT SILENTLY.
44
+ OBVIOUS-TO-THE-AGENT ≠ IN-SCOPE.
45
+ ```
46
+
47
+ ## What counts as a discrepancy
48
+
49
+ - **(a) text ↔ image** — ticket text contradicts an attached mockup / screenshot / diagram (canonical case: text says "show birthdays **today**", the mockup shows a birthday from two days ago).
50
+ - **(b) silent-but-needed** — the spec is silent on a behavior that is clearly required (a weekend/holiday shift, an empty state, an error path). Surface it and ask **before** implementing — do not expand scope on a plausible inference (canonical case: the spec specifies weekend-shifting only; the agent also adds public-holiday shifting without asking).
51
+ - **(c) spec ↔ codebase/reality** — the spec contradicts what the code actually does or what a real source shows.
52
+ - **(d) intra-ticket** — the acceptance criteria, description, and comments contradict each other.
53
+
54
+ ## When it fires — and when NOT
55
+
56
+ **Fires** while planning, refining, estimating, roadmapping, or implementing from
57
+ a ticket/spec that carries a second source (an attachment, a code reality, or an
58
+ internal contradiction), gated by `consistency.cross_source` in
59
+ `.agent-settings.yml` (`on` default · `auto` = high-confidence only · `off` = inert).
60
+
61
+ **Does NOT fire** on a single clear source with no second source to compare
62
+ against (that is plain vagueness — it belongs to `ask-when-uncertain`), on
63
+ trivial edits, or when the user has already resolved the discrepancy this turn.
64
+
65
+ ## How to surface it (subordinate to the ask discipline)
66
+
67
+ - **Subordinate to [`ask-when-uncertain`](ask-when-uncertain.md).** Fold the
68
+ discrepancy into the SAME turn's single question — batch all discrepancies for
69
+ one artefact into ONE numbered-options block. Never emit a second question
70
+ block; one-question-per-turn holds.
71
+ - **Defer to [`scope-control`](scope-control.md)** as the permission authority
72
+ for the type-(b) silent-scope-expansion case.
73
+ - **Precedes [`design-fidelity`](design-fidelity.md).** This rule fires first,
74
+ at decision time ("text says X, the mockup says Y — which wins?"); once the
75
+ user resolves it, `design-fidelity` governs build-time 1:1 fidelity.
76
+ - **Pass the [`no-cheap-questions`](no-cheap-questions.md) Pre-Send Self-Check.**
77
+ Fire only on a genuine contradiction or silent-scope-expansion carrying a real
78
+ trade-off — never a content-free "are you sure?". Under an autonomous mandate a
79
+ detected discrepancy is a blocking decision and is NOT suppressed, but an
80
+ off-hand non-contradiction must not become a continuation prompt.
81
+
82
+ The taxonomy, the scan procedure, the confidence-tiered noise control, worked
83
+ examples, and the precedence table live in
84
+ [`cross-source-consistency-mechanics`](../docs/guidelines/agent-infra/cross-source-consistency-mechanics.md).
85
+
86
+ ## See also
87
+
88
+ - [`ask-when-uncertain`](ask-when-uncertain.md) — the one-question-per-turn ask discipline this folds into (missing info → ask; this adds conflicting present sources → ask).
89
+ - [`scope-control`](scope-control.md) — the permission authority for the silent-scope-expansion (type b) case.
90
+ - [`design-fidelity`](design-fidelity.md) — governs build-time fidelity once a text↔image conflict is resolved.
91
+ - [`active-remediation`](active-remediation.md) — the never-silently-ignore ladder this rule mirrors for source discrepancies.
92
+ - [`no-cheap-questions`](no-cheap-questions.md) — the floor the discrepancy ask must clear.
@@ -90,7 +90,7 @@ primitive → run in-session (clean no-op).
90
90
 
91
91
  ## See also
92
92
 
93
- - [`subagent-orchestration`](../skills/subagent-orchestration/SKILL.md) — the form gate + 8 modes this selects.
93
+ - [`subagent-orchestration`](../skills/subagent-orchestration/SKILL.md) — the form gate + 9 modes this selects.
94
94
  - [`subagent-boundary`](../docs/contracts/subagent-boundary.md) — what a subagent owns vs never owns (task-meaning, memory, pack-surface, safety-floor bypass).
95
95
  - [`auto-orchestration-activation`](../contexts/execution/auto-orchestration-activation.md) — the gate.
96
96
  - [`reasoning-orchestrator`](../skills/reasoning-orchestrator/SKILL.md) — RDP dispatch, now gated here.
@@ -77,6 +77,8 @@ If the ticket scores low on estimability (vague AC, no out-of-scope,
77
77
  no mention of deps), set `uncertainty = Underspecified` and
78
78
  emit a single-line redirect to `/refine-ticket` at the top of the output.
79
79
 
80
+ A **cross-source discrepancy** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md), gated by `consistency.cross_source`) — ticket text contradicting an attached mockup, or a clearly-needed-but-unstated behavior (weekend/holiday shift) — is not estimable as-is: it hides an open scope decision. Raise `uncertainty` and name the discrepancy in the redirect rather than sizing over a contradiction.
81
+
80
82
  ### 3. Apply sizing heuristics
81
83
 
82
84
  Score across four axes; each axis contributes to the final size:
@@ -28,7 +28,7 @@ Do NOT use when:
28
28
 
29
29
  ## Procedure: Plan a feature
30
30
 
31
- 1. **Gather requirements** — What problem does this solve? Who benefits? What's the expected outcome?
31
+ 1. **Gather requirements** — What problem does this solve? Who benefits? What's the expected outcome? Run a **cross-source discrepancy scan** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md), gated by `consistency.cross_source`): where the source ticket carries text + an attachment/mockup, or leaves a clearly-needed behavior unstated (weekend/holiday shift, empty/error state, timezone), surface the conflict/gap as an *Open question* before drafting phases — an inferred behavior is a scope expansion to confirm, not to bake in. See [`cross-source-consistency-mechanics`](../../../docs/guidelines/agent-infra/cross-source-consistency-mechanics.md).
32
32
  2. **Analyze scope** — Which modules, routes, models, services are affected?
33
33
  3. **Write the plan** — Create a feature plan document (see template below).
34
34
  4. **Verify** — Confirm all affected areas are identified, no missing dependencies.
@@ -81,6 +81,8 @@ not name an implementation**. Use Given / When / Then or a numbered
81
81
  list. Reject ACs that hide assumptions ("works correctly", "is fast
82
82
  enough") — replace with measurable thresholds or strike them.
83
83
 
84
+ **Cross-source discrepancy scan** (per [`cross-source-consistency`](../../rules/cross-source-consistency.md), gated by `consistency.cross_source`): when the raw input includes a screenshot / mockup alongside the story text, check the sources against each other and surface any conflict as a `gap` / open question — never resolve it silently. Watch for: story text contradicting an attached screenshot; the AC contradicting the description; a clearly-needed behavior the input never states (weekend/holiday shift, empty/error state). Batch them into one clarifying question. Taxonomy: [`cross-source-consistency-mechanics`](../../../docs/guidelines/agent-infra/cross-source-consistency-mechanics.md).
85
+
84
86
  ### 5. Surface non-functional gaps
85
87
 
86
88
  Flag anything missing that downstream skills will need: success