@event4u/agent-config 7.0.1 → 7.1.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 (103) hide show
  1. package/.claude-plugin/marketplace.json +8 -1
  2. package/CHANGELOG.md +99 -0
  3. package/README.md +4 -2
  4. package/dist/agent-src/commands/council/default.md +28 -20
  5. package/dist/agent-src/commands/evals/fix.json +5 -1
  6. package/dist/agent-src/commands/fix/comments.md +101 -0
  7. package/dist/agent-src/commands/fix.md +5 -2
  8. package/dist/agent-src/contexts/execution/auto-dispatch-classification.md +65 -0
  9. package/dist/agent-src/contexts/execution/auto-orchestration-activation.md +68 -0
  10. package/dist/agent-src/contexts/execution/host-capability-manifest.md +68 -0
  11. package/dist/agent-src/contexts/execution/orchestration-benchmark-gate.md +62 -0
  12. package/dist/agent-src/contexts/execution/orchestration-telemetry.md +59 -0
  13. package/dist/agent-src/contexts/execution/roadmap-process-loop.md +8 -3
  14. package/dist/agent-src/contexts/execution/subagent-response-contract.md +56 -0
  15. package/dist/agent-src/contexts/execution/subagent-routing.md +57 -0
  16. package/dist/agent-src/contexts/execution/subagent-spawn-contract.md +54 -0
  17. package/dist/agent-src/contexts/execution/subagent-steering.md +71 -0
  18. package/dist/agent-src/contexts/execution/verify-budget.md +50 -0
  19. package/dist/agent-src/rules/delegation-policy.md +84 -0
  20. package/dist/agent-src/rules/design-fidelity.md +98 -0
  21. package/dist/agent-src/rules/domain-safety-pii.md +22 -0
  22. package/dist/agent-src/rules/legal-safety-floor.md +144 -0
  23. package/dist/agent-src/rules/lethal-trifecta-guard.md +25 -22
  24. package/dist/agent-src/scripts/archive_completed_roadmaps.ts +102 -15
  25. package/dist/agent-src/scripts/update_roadmap_progress.ts +52 -7
  26. package/dist/agent-src/skills/ai-council/SKILL.md +28 -1
  27. package/dist/agent-src/skills/contract-review/SKILL.md +124 -0
  28. package/dist/agent-src/skills/contract-review/evals/triggers.json +17 -0
  29. package/dist/agent-src/skills/dpa-review/SKILL.md +129 -0
  30. package/dist/agent-src/skills/dpa-review/evals/triggers.json +17 -0
  31. package/dist/agent-src/skills/laravel/SKILL.md +1 -0
  32. package/dist/agent-src/skills/legal-intake-triage/SKILL.md +127 -0
  33. package/dist/agent-src/skills/legal-intake-triage/evals/triggers.json +17 -0
  34. package/dist/agent-src/skills/legal-practice-profile/SKILL.md +100 -0
  35. package/dist/agent-src/skills/legal-practice-profile/evals/triggers.json +17 -0
  36. package/dist/agent-src/skills/nda-triage/SKILL.md +113 -0
  37. package/dist/agent-src/skills/nda-triage/evals/triggers.json +17 -0
  38. package/dist/agent-src/skills/reasoning-orchestrator/SKILL.md +36 -9
  39. package/dist/agent-src/skills/recursive-verification/SKILL.md +186 -0
  40. package/dist/agent-src/skills/roadmap-management/SKILL.md +17 -0
  41. package/dist/agent-src/skills/subagent-orchestration/SKILL.md +14 -0
  42. package/dist/agent-src/templates/agent-settings.md +64 -19
  43. package/dist/discovery/deprecation-report.md +1 -1
  44. package/dist/discovery/discovery-manifest.json +278 -23
  45. package/dist/discovery/discovery-manifest.json.sha256 +1 -1
  46. package/dist/discovery/discovery-manifest.summary.md +12 -4
  47. package/dist/discovery/orphan-report.md +1 -1
  48. package/dist/discovery/packs.json +50 -8
  49. package/dist/discovery/trust-report.md +7 -5
  50. package/dist/discovery/workspaces.json +34 -6
  51. package/dist/mcp/registry-manifest.json +3 -3
  52. package/dist/router.json +1 -1
  53. package/dist/server/schemas/settings.js +14 -0
  54. package/dist/server/schemas/settings.js.map +1 -1
  55. package/docs/architecture.md +4 -4
  56. package/docs/benchmark.md +46 -0
  57. package/docs/catalog.md +18 -6
  58. package/docs/command-flows.md +7 -1
  59. package/docs/contracts/ai-council-config.md +17 -10
  60. package/docs/contracts/audit-log-v1.md +7 -0
  61. package/docs/contracts/auto-orchestration-v1.md +70 -0
  62. package/docs/contracts/command-clusters.md +1 -1
  63. package/docs/contracts/discovery-manifest.schema.json +2 -2
  64. package/docs/decisions/ADR-013-discovery-frontmatter-contract.md +19 -0
  65. package/docs/decisions/ADR-020-global-only-consumer-scope.md +13 -6
  66. package/docs/decisions/ADR-049-configuration-trust-boundary.md +11 -1
  67. package/docs/decisions/ADR-093-ai-council-config-user-global.md +10 -4
  68. package/docs/decisions/ADR-104-ai-council-config-global-only.md +119 -0
  69. package/docs/decisions/ADR-105-automatic-subagent-orchestration.md +102 -0
  70. package/docs/decisions/ADR-106-recursive-verification-benchmark-gate.md +126 -0
  71. package/docs/decisions/ADR-107-legal-domain-pack-adoption.md +51 -0
  72. package/docs/decisions/ADR-108-open-source-forever-no-commercial-tier.md +46 -0
  73. package/docs/decisions/INDEX.md +5 -0
  74. package/docs/getting-started.md +2 -2
  75. package/docs/guidelines/agent-infra/domain-eval-anti-pattern.md +53 -0
  76. package/docs/guidelines/agent-infra/domain-pack-architecture.md +55 -0
  77. package/package.json +1 -1
  78. package/src/config/agent-settings.template.yml +72 -3
  79. package/src/config/discovery/packs.yml +13 -0
  80. package/src/config/discovery/workspaces.yml +7 -0
  81. package/src/scripts/_lib/auto_dispatch.ts +95 -0
  82. package/src/scripts/_lib/host_capability.ts +59 -0
  83. package/src/scripts/_lib/orchestration_gate.ts +98 -0
  84. package/src/scripts/_lib/subagent_bundle.ts +154 -0
  85. package/src/scripts/_lib/subagent_response.ts +82 -0
  86. package/src/scripts/_lib/subagent_routing.ts +81 -0
  87. package/src/scripts/_lib/subagent_spawn.ts +97 -0
  88. package/src/scripts/_lib/subagent_steering.ts +64 -0
  89. package/src/scripts/_lib/verify_budget.ts +54 -0
  90. package/src/scripts/ai_council/advisors.ts +4 -2
  91. package/src/scripts/ai_council/clients.ts +7 -1
  92. package/src/scripts/ai_council/config.ts +22 -17
  93. package/src/scripts/bench_ab_v2_run.ts +127 -0
  94. package/src/scripts/bench_ab_v2_stats.ts +39 -0
  95. package/src/scripts/check_council_config_location.ts +6 -5
  96. package/src/scripts/lint_discovery_vocabulary.ts +6 -0
  97. package/src/scripts/lint_framework_leakage_allowlist.json +21 -0
  98. package/src/scripts/lint_legal_pack.ts +139 -0
  99. package/src/scripts/probe_projection_fidelity.ts +7 -1
  100. package/src/scripts/rdp_gate_classify.ts +131 -0
  101. package/src/scripts/rdp_quality_eval.ts +437 -0
  102. package/src/scripts/schemas/agent-settings.schema.json +11 -0
  103. package/src/scripts/skill_linter.ts +3 -0
@@ -0,0 +1,186 @@
1
+ ---
2
+ model_tier: inherit
3
+ name: recursive-verification
4
+ description: "Use to run a depth-bounded self-correction loop (attempt → critic verdict → re-attempt) as a tunable test-time compute knob — a do-and-judge specialisation, default off, capability-gated."
5
+ domain: process
6
+ workspaces:
7
+ - agent-config-maintainer
8
+ packs:
9
+ - meta
10
+ ---
11
+
12
+ # recursive-verification
13
+
14
+ ## When to use
15
+
16
+ * A first attempt at a bounded task may be improvable by feeding the
17
+ attempt plus an explicit critic verdict back into a corrective
18
+ re-attempt — and the extra compute is justified by the task's value.
19
+ * You want **depth** (number of correction rounds) to be an explicit
20
+ compute knob, not an open-ended loop.
21
+ * The shipped default (`verification.recursive`) is not `off` for the
22
+ active host, or the user asks for an extra self-correction pass.
23
+
24
+ Do NOT use when:
25
+
26
+ * The task is trivial — a one-liner, a rename, a format fix. The loop's
27
+ cost dwarfs any gain (the package's A/B bench measured ~11× tokens for
28
+ a single wrapper pass; recursion multiplies that per depth level).
29
+ * The host already one-shots the task. On a strong host with no headroom
30
+ a second pass only adds cost (see `docs/benchmark.md`: strong-host
31
+ discipline lift is null).
32
+ * You are chasing **model intelligence**. This transfers a test-time
33
+ *compute* pattern, not capability — it cannot make a model smarter than
34
+ its weights, and it implies **no** comparison to any frontier model.
35
+ * Budget is the constraint, or `verification.recursive: off` for this host.
36
+
37
+ ## Goal
38
+
39
+ Land a verified result by running a depth-bounded
40
+ `attempt → critic verdict → conditional re-attempt` loop, with depth as
41
+ the only compute knob, every level budgeted, and the loop default-off
42
+ until a benchmark gate authorises it per host.
43
+
44
+ ## The Iron Law
45
+
46
+ ```
47
+ A CROSS-MODEL CRITIC NEVER RUNS ON THE SAME MODEL + CONTEXT AS THE ATTEMPT.
48
+ SAME-MODEL SELF-CRITIQUE IS A DISCIPLINE PASS ONLY — NEVER A CAPABILITY CLAIM.
49
+ ```
50
+
51
+ Inherited from [`subagent-orchestration`](../subagent-orchestration/SKILL.md):
52
+ same model + same context = same blind spots. A same-model self-critique
53
+ at depth 1 is allowed **only** when explicitly flagged as a *discipline*
54
+ (not capability) pass — it can catch a skipped step or a scope-creep, but
55
+ it shares the attempt's blind spots and must never be sold as a capability
56
+ lift. Cross-model recursion (a different vendor as critic) is the
57
+ cross-vendor variant and obeys the Iron Law by construction
58
+ (critic model ≠ attempt model).
59
+
60
+ ## The loop
61
+
62
+ ```
63
+ attempt₀
64
+ → critic verdict (accept | revise: <reason>)
65
+ → accept → done
66
+ → revise → attempt₁ (reads attempt₀ + the verdict as context)
67
+ → critic verdict
68
+ → … → depthₙ
69
+ ```
70
+
71
+ Each level reads **only** the prior attempt plus the critic's verdict —
72
+ never the full history — mirroring the read-your-own-output-and-decide
73
+ pattern. Depth `n` is the tunable compute knob, hard-capped by
74
+ `verification.max_depth`.
75
+
76
+ ## Deterministic stop conditions
77
+
78
+ The loop stops at the first of:
79
+
80
+ 1. **`accept`** — the critic accepts the attempt.
81
+ 2. **`max_depth` reached** — `verification.max_depth` (default `1`).
82
+ 3. **`verify-budget` exhausted** — each re-attempt is one budgeted unit
83
+ per [`verify-budget`](../../contexts/execution/verify-budget.md); a
84
+ required-but-unrun verification is a surfaced safety gap, never a
85
+ silent pass.
86
+ 4. **No-progress floor** — two consecutive attempts score identical on
87
+ the deterministic scorer; further depth cannot help, so stop.
88
+
89
+ Stop conditions are deterministic so the loop can never run unbounded —
90
+ there is no open-ended "keep trying" branch.
91
+
92
+ ## Settings
93
+
94
+ Configured in `.agent-settings.yml`; documented in
95
+ [`agent-settings`](../../templates/agent-settings.md):
96
+
97
+ | Key | Default | Effect |
98
+ |---|---|---|
99
+ | `verification.recursive` | `off` | `off` = inert; `ask` = ask once before looping; `on` = loop silently up to `max_depth`. |
100
+ | `verification.max_depth` | `1` | Hard cap on correction rounds. `1` = a single critic pass (effectively inert beyond one review) until a benchmark gate authorises more. |
101
+
102
+ Ships `off`. The per-host shipped default flips only on a passing
103
+ capability-axis benchmark cell (see Procedure step 4); an honest-null
104
+ keeps it `off`.
105
+
106
+ ## Procedure
107
+
108
+ ### 1. Gate on settings + task shape
109
+
110
+ Resolve `verification.recursive` for the active host. `off` → no-op.
111
+ Confirm the task is non-trivial (above the `verify-budget` change-size
112
+ floor) and that the host plausibly has headroom — skip otherwise.
113
+
114
+ ### 2. Resolve the critic
115
+
116
+ Read `.agent-settings.yml` (`subagents.judge_model`). A cross-model
117
+ critic must satisfy the Iron Law. A same-model depth-1 pass is allowed
118
+ only when explicitly flagged as a discipline pass; surface that framing.
119
+
120
+ ### 3. Run the loop
121
+
122
+ Run `attempt → verdict → conditional re-attempt`, counting each
123
+ re-attempt against `verify-budget`, until a deterministic stop condition
124
+ fires. Under `verification.recursive: on` surface depth + spend in one
125
+ line; under `ask`, ask once before the first re-attempt.
126
+
127
+ ### 4. Honour the benchmark gate
128
+
129
+ The shipped default is set by the `bench:ab` gate
130
+ ([`orchestration-benchmark-gate`](../../contexts/execution/orchestration-benchmark-gate.md),
131
+ `gateVerdict` / `resolveShippedDefault`): `on`/`ask` only on a host whose
132
+ **capability-axis** cell passed; `off` otherwise. A discipline-only lift
133
+ does not authorise a flip — that question is already answered by the
134
+ existing rules. Never flip a default without its own passing cell.
135
+
136
+ ### 5. Report
137
+
138
+ Follow the output format. Never present a recursion result as a
139
+ capability gain or a frontier-model comparison.
140
+
141
+ ## Gotcha
142
+
143
+ * **Recursion as discipline duplicate** — if the only lift is on the
144
+ discipline axis, recursion duplicates rules the package already ships,
145
+ at multiplied cost. Surface it; do not ship a redundant expensive loop.
146
+ * **Unbounded loop** — there is no open-ended branch; the four stop
147
+ conditions are deterministic and the depth cap is hard.
148
+ * **Same-model self-praise** — a same-model critic shares the attempt's
149
+ blind spots and tends to accept; treat depth-1 same-model passes as a
150
+ discipline check only, never as independent verification.
151
+ * **Cost surprise** — depth multiplies the per-pass token cost; confirm
152
+ budget before raising `max_depth` above 1.
153
+ * **Strong-host no-op** — on a host that one-shots the task, every extra
154
+ depth level is pure cost; the benchmark gate keeps the default `off`
155
+ there.
156
+
157
+ ## Output format
158
+
159
+ 1. **Depth reached** — the number of correction rounds run, and which
160
+ stop condition fired (`accept` / `max_depth` / `budget` / `no-progress`).
161
+ 2. **Critic pairing** — attempt model / critic model (resolved), and
162
+ whether it was a cross-model or same-model discipline pass.
163
+ 3. **Verdict** — accepted attempt vs. handed back, with the budget spent.
164
+ 4. **Evidence** — per-depth scorer/verdict trail, never framed as a
165
+ capability or frontier-model comparison.
166
+
167
+ ## Do NOT
168
+
169
+ * NEVER claim recursion makes the host model more capable or "closer to"
170
+ any frontier model — it is a test-time compute pattern, not intelligence.
171
+ * NEVER run an open-ended loop — `max_depth` and the stop conditions are
172
+ hard caps.
173
+ * NEVER treat a same-model self-critique as independent verification.
174
+ * NEVER flip the shipped default without a passing capability-axis gate
175
+ cell for that host.
176
+ * NEVER skip a required verification silently — surface it as a safety gap.
177
+
178
+ ## Handover
179
+
180
+ | Task | Skill / context |
181
+ |---|---|
182
+ | Mode selection, the judge Iron Law | [`subagent-orchestration`](../subagent-orchestration/SKILL.md) |
183
+ | Per-pass cost budgeting | [`verify-budget`](../../contexts/execution/verify-budget.md) |
184
+ | Shipped-default gate mechanism | [`orchestration-benchmark-gate`](../../contexts/execution/orchestration-benchmark-gate.md) |
185
+ | Cross-vendor critic (different vendor) | [`ai-council`](../ai-council/SKILL.md) |
186
+ | Completion evidence | [`verify-completion-evidence`](../verify-completion-evidence/SKILL.md) |
@@ -43,6 +43,23 @@ rule. Batching multiple edits in one response is fine — one final
43
43
  regeneration before replying is enough. But the response must not end
44
44
  without it.
45
45
 
46
+ ### Archival — preferred sweep, untracked-safe manual fallback
47
+
48
+ Robust path: `archive_completed_roadmaps --all` — detects complete
49
+ (`count_open == 0`, `count_deferred == 0`), moves to `agents/roadmaps/archive/`
50
+ (`git mv` tracked, plain `mv` untracked / no-commit), rewrites inbound refs,
51
+ regens dashboard. PR-independent.
52
+
53
+ **Manual fallback (script not vendored)** — same response, never leave a
54
+ 100 %-complete roadmap active because `git mv` failed:
55
+
56
+ 1. `mkdir -p agents/roadmaps/archive`.
57
+ 2. `git mv agents/roadmaps/<x>.md agents/roadmaps/archive/<x>.md` (tracked); plain
58
+ `mv` if untracked / no commits.
59
+ 3. Rewrite inbound `agents/roadmaps/<x>.md` → `agents/roadmaps/archive/<x>.md`
60
+ across the tree (working tree, not just index, when untracked).
61
+ 4. Regenerate `agents/roadmaps-progress.md`.
62
+
46
63
  ## Procedure: Manage a roadmap
47
64
 
48
65
  1. **Identify need** — Is this a multi-step change that spans sessions or agents?
@@ -56,6 +56,20 @@ parallel subagents **by default** and keep working while they run (async), rathe
56
56
  than blocking on each return — intervene only if one goes off track. Engage per
57
57
  [`rdp-gate`](../../contexts/execution/rdp-gate.md).
58
58
 
59
+ ### Settings-gated auto-dispatch
60
+
61
+ "By default" is governed by `.agent-settings.yml`, not unconditional. Before
62
+ auto-dispatch, run the activation gate
63
+ ([`auto-orchestration-activation`](../../contexts/execution/auto-orchestration-activation.md)):
64
+ dispatch only when `subagents.enabled` **and** `subagents.auto != off` **and**
65
+ the [`host-capability-manifest`](../../contexts/execution/host-capability-manifest.md)
66
+ reports `subagent_spawn: true` **and** the task is classified delegable
67
+ ([`auto-dispatch-classification`](../../contexts/execution/auto-dispatch-classification.md)).
68
+ `auto: ask` → ask once (per [`user-interaction`](../../rules/user-interaction.md));
69
+ `auto: on` → surface chosen mode + per-subtask tiers in one line. Any gate fails
70
+ → in-session. Auto-dispatch is the default where host + settings allow, a clean
71
+ no-op elsewhere — never lifts a safety floor.
72
+
59
73
  ## The seven modes
60
74
 
61
75
  Each mode has a decision row: when to use, when not, and the expected
@@ -59,6 +59,20 @@ made by the user directly or by the agent on request, following the
59
59
  # custom = ignore profile — every matrix value must be set explicitly.
60
60
  rule_loading_tier: balanced
61
61
 
62
+ # --- Per-skill model auto-switch (ADR-035) ---
63
+ # Skills declare a vendor-neutral `model_tier` (lite|medium|high); the generator
64
+ # maps it to a native Claude model (high→opus, medium→sonnet, lite→haiku).
65
+ # suggest = (default) never emit a native Claude `model:` key; the
66
+ # model-recommendation rule names the tier as a one-question
67
+ # suggestion on every surface. Your explicit /model choice is
68
+ # never silently overridden.
69
+ # auto = render a native Claude `model:` into lite/medium/high-tier skills
70
+ # so Claude Code switches automatically for that turn (reverts on
71
+ # the next prompt); suggest on surfaces without a native override.
72
+ # off = inert — no native key, no suggestion.
73
+ model:
74
+ auto_switch: suggest
75
+
62
76
  # --- Personal preferences ---
63
77
  personal:
64
78
  # IDE to use for opening files (code, phpstorm, cursor)
@@ -209,14 +223,20 @@ pipelines:
209
223
  # response — that cadence is governed by `roadmap-progress-sync` and
210
224
  # is non-negotiable. This setting only governs *quality tool runs*.
211
225
  roadmap:
212
- # Skip the /roadmap:process-* pre-run confirmation gate (true, false).
213
- # true = default. Command name names the scope; a discoverable single
214
- # active roadmap (or a named one) starts the loop immediately,
215
- # resolved config surfaced inline so a wrong pick can still be
216
- # aborted mid-stream.
217
- # false = legacy. Shows the pre-run summary with numbered options and
218
- # waits. Gate is still shown regardless when the roadmap is
219
- # ambiguous or a scope / cadence conflict has no default.
226
+ # Skip the pre-run confirmation gate when /roadmap:process-step|phase|full
227
+ # is invoked (true, false).
228
+ # true = default. The command name itself names the scope; if a
229
+ # single active roadmap is discoverable (or the user named
230
+ # one), the loop starts immediately. The resolved roadmap /
231
+ # cadence / council setting are surfaced inline as a one-shot
232
+ # note so an unwanted pick can still be aborted mid-stream.
233
+ # false = legacy. The loop shows the pre-run summary with numbered
234
+ # options (Go / Different roadmap / Different scope / Toggle
235
+ # council / Abort) and waits for input.
236
+ # The gate is still shown — regardless of this flag — when the roadmap
237
+ # is ambiguous (multiple active, none named) or a scope / cadence
238
+ # conflict has no sensible default. The flag suppresses the
239
+ # confirmation, never a genuine "which roadmap?" question.
220
240
  skip_pre_run_gate: true
221
241
 
222
242
  # When to run quality tools during /roadmap:process-step|phase|full.
@@ -257,6 +277,23 @@ subagents:
257
277
  # Set to 1 to serialize. Hard cap enforced by runtime.
258
278
  max_parallel: 3
259
279
 
280
+ # --- Recursive self-verification (see skills/recursive-verification) ---
281
+ verification:
282
+ # off | ask | on (default: off)
283
+ # Depth-bounded self-correction loop (attempt -> critic verdict ->
284
+ # conditional re-attempt) as a tunable test-time compute knob.
285
+ # off = inert; ask = ask once before looping; on = loop up to max_depth.
286
+ # The shipped per-host default flips off -> on/ask ONLY on a passing
287
+ # capability-axis bench:ab gate cell (orchestration-benchmark-gate);
288
+ # a discipline-only or honest-null result keeps it off.
289
+ recursive: off
290
+
291
+ # Hard cap on correction rounds (integer, default 1).
292
+ # 1 = a single critic pass (effectively inert beyond one review) until
293
+ # a benchmark gate authorises deeper recursion. Each level is one
294
+ # verify-budget unit; the loop also stops on accept / no-progress.
295
+ max_depth: 1
296
+
260
297
  # --- Git worktrees ---
261
298
  worktrees:
262
299
  # off | on | ask (default: ask)
@@ -432,18 +469,26 @@ telemetry:
432
469
  path: .agent-engagement.jsonl
433
470
 
434
471
  # --- Linked projects (cross-repo awareness, local-only) ---
435
- # IDE-attached sibling repos in scope for proactive cross-repo awareness.
436
- # BELONGS IN `.agent-settings.local.yml` (in agents/settings/) (per-machine, gitignored) — sibling
437
- # paths differ per developer, never commit them. Each entry: path (absolute,
438
- # auto-filled by detection) + include (true = in scope, false = declined,
439
- # never re-prompted). Detection skips bloat dirs; a sibling over max_files is
440
- # flagged `large` (awareness only), never excluded. See ADR-032 +
441
- # docs/guides/cross-repo-linked-projects.md. Agent never bulk-includes sibling
442
- # files — passive awareness only.
472
+ #
473
+ # Sibling repositories the IDE has attached to this project (PhpStorm
474
+ # .idea/modules.xml + vcs.xml, VS Code *.code-workspace). When a sibling is
475
+ # opted in, the agent proactively considers cross-repo impact (API contract /
476
+ # shared-type changes) and warns — it does NOT bulk-include the sibling's
477
+ # files. See docs/guides/cross-repo-linked-projects.md and ADR-032.
478
+ #
479
+ # THIS KEY BELONGS IN `.agent-settings.local.yml` (in agents/settings/) (the per-machine, gitignored
480
+ # override layer), NOT in the committed `.agent-settings.yml`: sibling paths
481
+ # differ per developer and must never be committed. Each entry:
482
+ # - path: absolute path to the sibling repo root (auto-filled by detection)
483
+ # - include: true = in scope (proactive awareness); false = declined, never
484
+ # re-prompted.
485
+ # Detection auto-skips bloat dirs (node_modules/.git/dist/build/.venv/target);
486
+ # a sibling over `max_files` is flagged `large` (awareness only), never excluded.
443
487
  linked_projects: []
444
488
  # - path: /abs/path/to/sibling-repo
445
489
  # include: true
446
- linked_projects_max_files: 20000 # ceiling for the `large` flag; never excludes
490
+ # Optional ceiling for the `large` flag (does not exclude). Default 20000.
491
+ linked_projects_max_files: 20000
447
492
  ```
448
493
 
449
494
  ## Settings Reference
@@ -468,7 +513,7 @@ the canonical narrative lives in
468
513
  | `personal.minimal_output` | `true`, `false` | `true` | When `true`: short bullet points during work, concise summary at end. When `false`: verbose explanations. |
469
514
  | `personal.play_by_play` | `true`, `false` | `false` | When `true`: share intermediate findings during investigation. When `false`: work silently, report only the conclusion. |
470
515
  | `personal.pr_comment_bot_icon` | `true`, `false` | `false` | Prefix PR comment replies with 🤖 to indicate bot-authored replies. Personal preference — each developer decides. |
471
- | `personal.autonomy` | `on`, `off`, `auto` | `auto` | Suppress trivial workflow questions and act on the obvious next step. `auto` defaults to `off` but flips to `on` after a prose opt-in like "arbeite selbstständig". `on` suppresses trivial questions unconditionally. Blocking decisions (security, scope expansion, push/merge/branch/PR/tag) are never suppressed. See `rules/autonomous-execution.md`. |
516
+ | `personal.autonomy` | `on`, `off`, `auto` | `auto` | Suppress trivial workflow questions and act on the obvious next step. `auto` (default) defaults to `off` but flips to `on` after a prose opt-in like "arbeite selbstständig". `on` suppresses trivial questions unconditionally. `off` is the legacy ask-everything mode. Blocking decisions (security, scope expansion, push/merge/branch/PR/tag) are never suppressed. See `rules/autonomous-execution.md`. |
472
517
  | `project.pr_template` | file path | `.github/pull_request_template.md` | Path to PR template file. Read this instead of searching for it. |
473
518
  | `project.upstream_repo` | `org/repo` | _(empty)_ | Target repository for universal improvement PRs (e.g., `org/agent-config`). |
474
519
  | `project.improvement_pr_branch_prefix` | string | `improve/agent-` | Branch prefix for agent improvement PRs. |
@@ -487,7 +532,7 @@ the canonical narrative lives in
487
532
  | `hooks.chat_history.enabled` | `true`, `false` | `true` | Register the chat-history hooks (`append` on `after_step`, `halt_append` on `on_halt`). Gated by **both** this flag AND `chat_history.enabled`; either off → no chat-history hook registers. Schema v4: every entry self-identifies via a 16-char session fingerprint, no ownership/sidecar layer. |
488
533
  | `hooks.chat_history.script` | path | `scripts/chat_history.py` | Override path to the chat-history CLI. Set only when the script lives outside the standard location. |
489
534
  | `pipelines.skill_improvement` | `true`, `false` | `true` | When `true`: propose learning capture after meaningful tasks. When `false`: silent. Included in every profile except `custom`. |
490
- | `roadmap.skip_pre_run_gate` | `true`, `false` | `true` | When `true` (default): `/roadmap:process-step\|phase\|full` skips the interactive pre-run summary and starts immediately — resolved roadmap / cadence / council surfaced inline so an unwanted pick can still be aborted. When `false`: shows the pre-run summary with numbered options and waits. Gate is always shown — regardless of this flag — when the roadmap is ambiguous (multiple active, none named) or a scope / cadence conflict has no default. |
535
+ | `roadmap.skip_pre_run_gate` | `true`, `false` | `true` | When `true` (default): `/roadmap:process-step\|phase\|full` skips the interactive pre-run summary and starts the loop immediately — the resolved roadmap, cadence, and council are surfaced inline so an unwanted pick can still be aborted. When `false`: the loop shows the pre-run summary with numbered options (Go / Different roadmap / Different scope / Toggle council / Abort) and waits. The gate is always shown — regardless of this flag — when the roadmap is ambiguous (multiple active, none named) or a scope / cadence conflict has no sensible default. |
491
536
  | `roadmap.quality_cadence` | `end_of_roadmap`, `per_phase`, `per_step` | `end_of_roadmap` | When `/roadmap:process-step|phase|full` runs the project's quality pipeline. Default skips per-step / per-phase runs and gates only the final archival. `per_phase` runs once after every phase; `per_step` is the legacy verbose mode. Step checkboxes and the dashboard are always updated regardless. `verify-before-complete` still requires fresh output before any "roadmap complete" claim. |
492
537
  | `quality.local_auto_run` | `true`, `false` | `true` | When `true`: agent runs the project's quality pipeline (`task ci`, `make test`, `npm run check`, PHPStan, ECS, Rector, test suites) autonomously when work is ready for verification. When `false`: agent asks before running locally. **Carve-out**: NEW CI gates / smoke tests / test files MUST run locally regardless of this flag — without execution the new gate is unverified evidence. Iron Law `verify-before-complete` still applies; suppressed runs require the agent to surface the gap before claiming completion. |
493
538
  | `quality.wait_for_remote_ci` | `true`, `false` | `false` | When `true`: after `git push`, the agent polls GitHub check-runs / pipeline status on the PR and reports green / red before handing back. When `false`: agent pushes and hands back immediately; the user inspects CI themselves (default — saves agent runtime and tokens). |
@@ -1,6 +1,6 @@
1
1
  # Discovery — Deprecation Report
2
2
 
3
- - Generated: `2026-06-21T23:17:03Z`
3
+ - Generated: `2026-06-24T13:42:39Z`
4
4
  - Deprecated artefacts: **0**
5
5
 
6
6
  _None. Tree is clean._