@event4u/agent-config 1.17.0 → 1.18.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 (50) hide show
  1. package/.agent-src/rules/context-hygiene.md +6 -0
  2. package/.agent-src/rules/direct-answers.md +17 -26
  3. package/.agent-src/rules/no-cheap-questions.md +14 -21
  4. package/.agent-src/rules/onboarding-gate.md +7 -0
  5. package/.agent-src/rules/roadmap-progress-sync.md +27 -0
  6. package/.agent-src/rules/rule-type-governance.md +28 -0
  7. package/.agent-src/templates/roadmaps.md +4 -0
  8. package/.claude-plugin/marketplace.json +1 -1
  9. package/CHANGELOG.md +35 -0
  10. package/README.md +1 -1
  11. package/docs/architecture.md +1 -1
  12. package/docs/contracts/load-context-budget-model.md +80 -0
  13. package/docs/contracts/load-context-schema.md +20 -0
  14. package/docs/contracts/roadmap-complexity-standard.md +137 -0
  15. package/docs/guidelines/agent-infra/ask-when-uncertain-demos.md +134 -0
  16. package/docs/guidelines/agent-infra/direct-answers-demos.md +145 -0
  17. package/docs/guidelines/agent-infra/verify-before-complete-demos.md +128 -0
  18. package/package.json +1 -1
  19. package/scripts/agent-config +20 -0
  20. package/scripts/ai_council/one_off_archive/2026-05/README.md +45 -0
  21. package/scripts/ai_council/one_off_archive/2026-05/_one_off_budget_v2_audit.py +206 -0
  22. package/scripts/build_rule_trigger_matrix.py +360 -0
  23. package/scripts/check_always_budget.py +39 -0
  24. package/scripts/check_one_off_location.py +81 -0
  25. package/scripts/check_references.py +6 -0
  26. package/scripts/compress.py +5 -2
  27. package/scripts/context_hygiene_hook.py +173 -0
  28. package/scripts/hooks/augment-context-hygiene.sh +55 -0
  29. package/scripts/hooks/augment-onboarding-gate.sh +55 -0
  30. package/scripts/install.py +58 -19
  31. package/scripts/lint_examples.py +98 -0
  32. package/scripts/lint_roadmap_complexity.py +127 -0
  33. package/scripts/onboarding_gate_hook.py +137 -0
  34. package/scripts/schemas/rule.schema.json +5 -0
  35. /package/scripts/ai_council/{_one_off_2a4_acceptance.py → one_off_archive/2026-05/_one_off_2a4_acceptance.py} +0 -0
  36. /package/scripts/ai_council/{_one_off_context_layer_v1_estimate.py → one_off_archive/2026-05/_one_off_context_layer_v1_estimate.py} +0 -0
  37. /package/scripts/ai_council/{_one_off_context_layer_v1_review.py → one_off_archive/2026-05/_one_off_context_layer_v1_review.py} +0 -0
  38. /package/scripts/ai_council/{_one_off_followups_review.py → one_off_archive/2026-05/_one_off_followups_review.py} +0 -0
  39. /package/scripts/ai_council/{_one_off_nondestructive_inline_audit.py → one_off_archive/2026-05/_one_off_nondestructive_inline_audit.py} +0 -0
  40. /package/scripts/{_one_off_phase4_dispatch_latency.py → ai_council/one_off_archive/2026-05/_one_off_phase4_dispatch_latency.py} +0 -0
  41. /package/scripts/{_one_off_phase6_trigger_jaccard.py → ai_council/one_off_archive/2026-05/_one_off_phase6_trigger_jaccard.py} +0 -0
  42. /package/scripts/ai_council/{_one_off_phase_2a_budget_rebalance.py → one_off_archive/2026-05/_one_off_phase_2a_budget_rebalance.py} +0 -0
  43. /package/scripts/ai_council/{_one_off_phase_2a_post_revert.py → one_off_archive/2026-05/_one_off_phase_2a_post_revert.py} +0 -0
  44. /package/scripts/ai_council/{_one_off_rebalancing_audit.py → one_off_archive/2026-05/_one_off_rebalancing_audit.py} +0 -0
  45. /package/scripts/ai_council/{_one_off_roundtrip.py → one_off_archive/2026-05/_one_off_roundtrip.py} +0 -0
  46. /package/scripts/ai_council/{_one_off_rule_hardening_v1.py → one_off_archive/2026-05/_one_off_rule_hardening_v1.py} +0 -0
  47. /package/scripts/ai_council/{_one_off_structural_open_questions.py → one_off_archive/2026-05/_one_off_structural_open_questions.py} +0 -0
  48. /package/scripts/ai_council/{_one_off_structural_optimization.py → one_off_archive/2026-05/_one_off_structural_optimization.py} +0 -0
  49. /package/scripts/ai_council/{_one_off_structural_v3_gaps.py → one_off_archive/2026-05/_one_off_structural_v3_gaps.py} +0 -0
  50. /package/scripts/ai_council/{_one_off_structural_v3_review.py → one_off_archive/2026-05/_one_off_structural_v3_review.py} +0 -0
@@ -0,0 +1,134 @@
1
+ ---
2
+ demo_for: ask-when-uncertain
3
+ layer: pattern-memory
4
+ prose_delta:
5
+ rule_chars_before: 3893
6
+ rule_chars_after: 4267
7
+ measured_at: phase-3.3-cross-link-landing
8
+ note: "+374 chars from the Examples cross-link block; future prose-pruning rounds (out of scope for Phase 3) will pull pattern prose from the rule into this demo and drive the after-count below the before-count."
9
+ ---
10
+
11
+ # ask-when-uncertain — Pattern Memory
12
+
13
+ > Wrong / right / why demos for the `ask-when-uncertain` Iron Law
14
+ > (one question per turn, vague-request must ask). Linked from
15
+ > [`ask-when-uncertain`](../../.agent-src.uncompressed/rules/ask-when-uncertain.md)
16
+ > § Examples. Outcome baseline at
17
+ > [`tests/golden/outcomes/ask_when_uncertain.json`](../../tests/golden/outcomes/ask_when_uncertain.json).
18
+
19
+ ## Demo 1 — Vague request, multi-question stack
20
+
21
+ ### Wrong shape
22
+
23
+ ```
24
+ User: improve this
25
+
26
+ Agent:
27
+ 1. Should I optimize for readability or speed?
28
+ 2. Refactor the function signature?
29
+ 3. Add tests too?
30
+ 4. Run PHPStan after?
31
+
32
+ Reply with a, b, c, d so I can pick.
33
+ ```
34
+
35
+ **Failure mode:** four `?` aimed at the user, structured-answer
36
+ demand (`a, b, c, d`), no triage. Iron Law breach: a turn with a
37
+ question has *exactly one*. Compound thinking load — answer to Q1
38
+ reframes Q2.
39
+
40
+ ### Right shape
41
+
42
+ ```
43
+ User: improve this
44
+
45
+ Agent: Welche Achse soll "improve" treffen?
46
+
47
+ 1. Lesbarkeit (Naming, Funktions-Splits)
48
+ 2. Performance (Allokationen, N+1)
49
+ 3. Robustheit (Error-Handling, Edge Cases)
50
+
51
+ Dann lege ich los.
52
+ ```
53
+
54
+ ### Why it works
55
+
56
+ Single `?`, numbered options without compound asks, picks the
57
+ question whose answer reframes everything downstream. The follow-up
58
+ ("tests? PHPStan?") rides on the next turn — its framing depends on
59
+ the answer here.
60
+
61
+ ## Demo 2 — Drive-by execution on a vague trigger
62
+
63
+ ### Wrong shape
64
+
65
+ ```
66
+ User: clean up this file
67
+
68
+ Agent: [edits 12 files, removes 200 lines, reformats imports,
69
+ extracts 3 helpers, renames 5 variables]
70
+ Done.
71
+ ```
72
+
73
+ **Failure mode:** "clean up" is a vague-request trigger
74
+ (`ask-when-uncertain` § Vague-request triggers). MUST-ask before
75
+ touching code. Without scope, the diff is a guess at the user's
76
+ intent.
77
+
78
+ ### Right shape
79
+
80
+ ```
81
+ User: clean up this file
82
+
83
+ Agent: Was bedeutet "clean up" hier?
84
+
85
+ 1. Toten Code raus
86
+ 2. Format / Imports sortieren
87
+ 3. Refactor (Funktionen splitten)
88
+
89
+ Pick one — sonst ist der Diff Raten.
90
+ ```
91
+
92
+ ### Why it works
93
+
94
+ Names the trigger explicitly ("vague-request"), surfaces the three
95
+ canonical interpretations from the rule's trigger table, and
96
+ declines to act without scope. The cost of asking once << cost of
97
+ ripping through 12 files in the wrong direction.
98
+
99
+ ## Demo 3 — Stacked questions inside a handoff
100
+
101
+ ### Wrong shape
102
+
103
+ ```
104
+ Agent: Bevor ich die Roadmap übergebe:
105
+
106
+ - Welcher Branch?
107
+ - Soll ich PRs erwähnen?
108
+ - Welches Modell für die Fortsetzung?
109
+ - Soll ich .agent-chat-history zitieren?
110
+
111
+ Antworte als 1, 2, 3, 4.
112
+ ```
113
+
114
+ **Failure mode:** four-question handoff block. Per § Ordering &
115
+ handoff: handoff questions ride LAST, after domain clarifications,
116
+ folded into the handoff prompt itself — not as a parallel quiz.
117
+
118
+ ### Right shape
119
+
120
+ ```
121
+ Agent: [delivers the handoff prompt with sensible defaults filled
122
+ in: current branch, PR link present if open, model
123
+ recommendation per `model-recommendation`, history reference
124
+ auto-included]
125
+
126
+ Welche der vier Defaults soll ich vor dem Übergeben anpassen?
127
+ ```
128
+
129
+ ### Why it works
130
+
131
+ Defaults absorb three of the four "questions"; the remaining
132
+ question is the only one that genuinely needs user input — and it's
133
+ phrased so a one-word answer ("PR link" / "model" / "passt") closes
134
+ the loop.
@@ -0,0 +1,145 @@
1
+ ---
2
+ demo_for: direct-answers
3
+ layer: pattern-memory
4
+ prose_delta:
5
+ rule_chars_before: 4098
6
+ rule_chars_after: 4514
7
+ measured_at: phase-3.3-cross-link-landing
8
+ note: "+416 chars from the Examples cross-link block; future prose-pruning rounds (out of scope for Phase 3) will pull pattern prose from the rule into this demo and drive the after-count below the before-count."
9
+ ---
10
+
11
+ # direct-answers — Pattern Memory
12
+
13
+ > Wrong / right / why demos for the three Iron Laws of
14
+ > `direct-answers` (no flattery, no invented facts, brevity by
15
+ > default). Linked from
16
+ > [`direct-answers`](../../.agent-src.uncompressed/rules/direct-answers.md)
17
+ > § Examples. Outcome baseline at
18
+ > [`tests/golden/outcomes/direct_answers.json`](../../tests/golden/outcomes/direct_answers.json).
19
+
20
+ ## Demo 1 — Flattery opener (Iron Law 1)
21
+
22
+ ### Wrong shape
23
+
24
+ ```
25
+ User: Wie viele Always-Rules gibt es aktuell?
26
+
27
+ Agent: Sehr gute Frage! Das ist tatsächlich eine spannende
28
+ Eigenschaft des Systems. Lass mich das für dich aufschlüsseln —
29
+ aktuell sind es 38 Always-Rules.
30
+ ```
31
+
32
+ **Failure mode:** flattery opener ("Sehr gute Frage!"), action
33
+ announcement ("Lass mich…"), then 30 Wörter Anlauf für eine
34
+ Ein-Wort-Antwort. Iron Law 1 + Iron Law 3 zusammen verletzt.
35
+
36
+ ### Right shape
37
+
38
+ ```
39
+ User: Wie viele Always-Rules gibt es aktuell?
40
+
41
+ Agent: 38.
42
+ ```
43
+
44
+ ### Why it works
45
+
46
+ Eine Frage mit einer wahren Antwort = ein Satz. Kein Anlauf, kein
47
+ Kissen, kein "let me…". Die Zahl ist die ganze Antwort.
48
+
49
+ ## Demo 2 — Hedged claim without verification (Iron Law 2)
50
+
51
+ ### Wrong shape
52
+
53
+ ```
54
+ User: Hat verify-before-complete ein "load_context"-Feld?
55
+
56
+ Agent: Ja, ich glaube schon — die meisten Always-Rules haben das
57
+ inzwischen. Sollte in der Frontmatter stehen.
58
+ ```
59
+
60
+ **Failure mode:** load-bearing project-shape claim ohne Verify, mit
61
+ zwei Hedges ("ich glaube", "sollte"). Iron Law 2 § Severity-tiered:
62
+ project-shape claims müssen mit einem Tool-Call belegt werden, wenn
63
+ einer reicht — und hier reicht ein `view`/`grep` locker.
64
+
65
+ ### Right shape
66
+
67
+ ```
68
+ User: Hat verify-before-complete ein "load_context"-Feld?
69
+
70
+ Agent: [grept frontmatter]
71
+ Nein. `verify-before-complete.md` deklariert keinen load_context-
72
+ Eintrag (nur die anderen vier Safety-Floor-Rules tun das).
73
+ ```
74
+
75
+ ### Why it works
76
+
77
+ Tool-Call vor Antwort, dann konkrete Aussage mit Begründung. Wenn
78
+ der Verify-Aufwand zu groß wäre → fragen, nicht raten. Hier kostet
79
+ ein `grep` zwei Sekunden, also Tool-Call ist Pflicht.
80
+
81
+ ## Demo 3 — Post-hoc summary creep (Iron Law 3)
82
+
83
+ ### Wrong shape
84
+
85
+ ```
86
+ User: Wie öffne ich die VBC-Demos?
87
+
88
+ Agent: Hier der Pfad zur Datei:
89
+
90
+ `docs/guidelines/agent-infra/verify-before-complete-demos.md`
91
+
92
+ Zusammenfassend: das ist die Demo-Datei für die Iron Law des
93
+ verify-before-complete-Rule. Sie folgt dem wrong/right/why-Schema
94
+ und ist Teil der Phase 3 von road-to-context-layer-maturity.
95
+ Lass mich wissen, falls du Fragen dazu hast.
96
+ ```
97
+
98
+ **Failure mode:** Nutzlose Zusammenfassung nach der Antwort, dann
99
+ Service-Floskel ("Lass mich wissen…"). Iron Law 3: kürzeste
100
+ vollständige Antwort gewinnt; Restaurierung von Kontext und
101
+ Closing-Floskel sind beide Failure-Modes.
102
+
103
+ ### Right shape
104
+
105
+ ```
106
+ User: Wie öffne ich die VBC-Demos?
107
+
108
+ Agent: `docs/guidelines/agent-infra/verify-before-complete-demos.md`
109
+ ```
110
+
111
+ ### Why it works
112
+
113
+ Pfad ist die ganze Antwort. Kein Re-Frame der Frage, kein
114
+ "Zusammenfassend", kein angebotenes Follow-up. Wenn Matze mehr
115
+ will, fragt er.
116
+
117
+ ## Demo 4 — Functional emoji vs prose flair
118
+
119
+ ### Wrong shape
120
+
121
+ ```
122
+ Agent: 🚀 Tests sind durch! ✨ Alle 47 grün 🎉 Bereit für den nächsten Schritt 💪
123
+ ```
124
+
125
+ **Failure mode:** Emoji als Stil-Element, nicht als funktionaler
126
+ Marker. § Emoji Scope erlaubt nur die Whitelist (`📒` Heartbeat,
127
+ mode marker, `❌` `✅` `⚠️` mit Two-Space-Regel, Roadmap-`[x]/[~]/[-]`).
128
+ Alles andere ist Rauschen.
129
+
130
+ ### Right shape
131
+
132
+ ```
133
+ Agent: Tests durch:
134
+
135
+ $ vendor/bin/pest -q
136
+ ............................................... 47 passed
137
+
138
+ ✅ 47/47 grün, Exit 0.
139
+ ```
140
+
141
+ ### Why it works
142
+
143
+ Genau ein Emoji aus der Whitelist (`✅` mit Two-Space), funktional
144
+ verwendet als Status-Marker neben dem CLI-Output. Keine Deko, keine
145
+ Reaktions-Emojis.
@@ -0,0 +1,128 @@
1
+ ---
2
+ demo_for: verify-before-complete
3
+ layer: pattern-memory
4
+ prose_delta:
5
+ rule_chars_before: 2196
6
+ rule_chars_after: 2603
7
+ measured_at: phase-3.3-cross-link-landing
8
+ note: "+407 chars from the Examples cross-link block; future prose-pruning rounds (out of scope for Phase 3) will pull pattern prose from the rule into this demo and drive the after-count below the before-count."
9
+ ---
10
+
11
+ # verify-before-complete — Pattern Memory
12
+
13
+ > Wrong / right / why demos for the `verify-before-complete` Iron
14
+ > Law (no completion claim without fresh evidence in this message).
15
+ > Linked from
16
+ > [`verify-before-complete`](../../.agent-src.uncompressed/rules/verify-before-complete.md)
17
+ > § Examples. Outcome baseline at
18
+ > [`tests/golden/outcomes/verify_before_complete.json`](../../tests/golden/outcomes/verify_before_complete.json).
19
+
20
+ ## Demo 1 — Hedged completion claim
21
+
22
+ ### Wrong shape
23
+
24
+ ```
25
+ User: ist der Fix fertig?
26
+
27
+ Agent: Ja, sollte jetzt durchlaufen — ich habe die fehlende
28
+ Bedingung ergänzt und die Tests müssten grün sein.
29
+ ```
30
+
31
+ **Failure mode:** "sollte", "müssten" are red-flag hedges (§ Red
32
+ flags — STOP immediately). No fresh command output in this message.
33
+ The claim rides on inference, not evidence.
34
+
35
+ ### Right shape
36
+
37
+ ```
38
+ User: ist der Fix fertig?
39
+
40
+ Agent: Frisch gerade ausgeführt:
41
+
42
+ $ python3 -m pytest tests/test_load_context.py -v
43
+ ============================== 7 passed in 0.07s ===============================
44
+
45
+ Exit code 0, 7/7 grün. Damit ist der Fix verifiziert.
46
+ ```
47
+
48
+ ### Why it works
49
+
50
+ Literal command line, fresh output, exit code, pass count — all in
51
+ this message. The user can scroll up and see the same shape that
52
+ the test runner produced. No hedging vocabulary.
53
+
54
+ ## Demo 2 — Trusting an earlier run
55
+
56
+ ### Wrong shape
57
+
58
+ ```
59
+ [12 messages earlier, agent ran tests — green]
60
+
61
+ User: also fertig zum committen?
62
+
63
+ Agent: Ja, die Tests waren ja grün vorhin. Du kannst committen.
64
+ ```
65
+
66
+ **Failure mode:** "Trusting a previous run from earlier in the
67
+ conversation" — explicit red flag. Code drifted in the meantime;
68
+ the earlier run is stale evidence.
69
+
70
+ ### Right shape
71
+
72
+ ```
73
+ User: also fertig zum committen?
74
+
75
+ Agent: Ich verifiziere kurz — Tests laufen jetzt:
76
+
77
+ $ python3 -m pytest tests/ -q
78
+ ... 47 passed in 2.31s
79
+
80
+ Grün. Plus ein quality-tools-Lauf:
81
+
82
+ $ task ci
83
+ ... ✅ All checks passed
84
+
85
+ Jetzt ist der Stand sauber.
86
+ ```
87
+
88
+ ### Why it works
89
+
90
+ Re-runs both gates *now*. The `quality-tools` skill handles the
91
+ specific commands; the rule only mandates "fresh in this message".
92
+ "Stand sauber" is anchored on actual exit codes, not on memory.
93
+
94
+ ## Demo 3 — Partial verification claimed as complete
95
+
96
+ ### Wrong shape
97
+
98
+ ```
99
+ User: ready für den PR?
100
+
101
+ Agent: Tests sind grün, ich öffne den PR.
102
+ ```
103
+
104
+ **Failure mode:** "Relying on partial verification (ran tests but
105
+ not PHPStan)" — explicit red flag. PR-readiness needs the full
106
+ gate, not a single channel.
107
+
108
+ ### Right shape
109
+
110
+ ```
111
+ User: ready für den PR?
112
+
113
+ Agent: Ich check beide Gates:
114
+
115
+ $ vendor/bin/pest
116
+ ... 47 passed
117
+ $ vendor/bin/phpstan analyse
118
+ ... [OK] No errors
119
+
120
+ Beide grün. Soll ich den PR jetzt erstellen?
121
+ ```
122
+
123
+ ### Why it works
124
+
125
+ Both gates run fresh, both outputs in the message, exit summaries
126
+ visible. The follow-up question is permission-gated per
127
+ `scope-control` § Git operations — the verification is done
128
+ independently of the user's go-ahead.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@event4u/agent-config",
3
- "version": "1.17.0",
3
+ "version": "1.18.0",
4
4
  "description": "Shared agent configuration \u2014 skills, rules, commands, guidelines, and templates for AI coding tools",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -72,6 +72,10 @@ Commands:
72
72
  (CHECKPOINT fallback for platforms without native hooks)
73
73
  roadmap-progress:hook PostToolUse hook entry point (read JSON from stdin)
74
74
  Regenerates roadmaps-progress.md when a tool wrote under agents/roadmaps/
75
+ onboarding-gate:hook Hook entry point (drains stdin)
76
+ Writes .augment/state/onboarding-gate.json from .agent-settings.yml
77
+ context-hygiene:hook PostToolUse hook entry point (read JSON from stdin)
78
+ Maintains .augment/state/context-hygiene.json (turn count, loop, freshness)
75
79
  telemetry:record Append one artefact-engagement event (default-off)
76
80
  telemetry:status Print artefact-engagement telemetry status (read-only)
77
81
  telemetry:report Aggregate the engagement log into a quartile report
@@ -325,6 +329,20 @@ cmd_roadmap_progress_hook() {
325
329
  exec python3 "$script" "$@"
326
330
  }
327
331
 
332
+ cmd_onboarding_gate_hook() {
333
+ require_python3
334
+ local script
335
+ script="$(resolve_script "scripts/onboarding_gate_hook.py")" || return 1
336
+ exec python3 "$script" "$@"
337
+ }
338
+
339
+ cmd_context_hygiene_hook() {
340
+ require_python3
341
+ local script
342
+ script="$(resolve_script "scripts/context_hygiene_hook.py")" || return 1
343
+ exec python3 "$script" "$@"
344
+ }
345
+
328
346
  cmd_chat_history_checkpoint() {
329
347
  require_python3
330
348
  local script
@@ -446,6 +464,8 @@ main() {
446
464
  chat-history:hook) cmd_chat_history_hook "$@" ;;
447
465
  chat-history:checkpoint) cmd_chat_history_checkpoint "$@" ;;
448
466
  roadmap-progress:hook) cmd_roadmap_progress_hook "$@" ;;
467
+ onboarding-gate:hook) cmd_onboarding_gate_hook "$@" ;;
468
+ context-hygiene:hook) cmd_context_hygiene_hook "$@" ;;
449
469
  telemetry:record) cmd_telemetry_record "$@" ;;
450
470
  telemetry:status) cmd_telemetry_status "$@" ;;
451
471
  telemetry:report) cmd_telemetry_report "$@" ;;
@@ -0,0 +1,45 @@
1
+ # One-off archive — 2026-05
2
+
3
+ > Archived per **Phase 0a.2** of `agents/roadmaps/road-to-rule-hardening.md`.
4
+ > Each script here was a single-purpose AI-council probe or measurement
5
+ > tied to a specific phase of `road-to-structural-optimization.md` (now
6
+ > archived) or `road-to-rule-hardening.md`. The session output lives
7
+ > under `agents/council-sessions/` (durable evidence) and the linter
8
+ > `scripts/check_one_off_location.py` enforces that no new
9
+ > `_one_off_*.py` lands outside this folder.
10
+
11
+ ## Lifecycle rule (uniform — Phase 0.2 of context-layer-maturity)
12
+
13
+ > A one-off is **archived**, never deleted. The session manifest under
14
+ > `agents/council-sessions/` is the audit trail; the script itself is
15
+ > kept here so a future contributor can re-read intent, re-run a probe
16
+ > on a future branch, or extract a reusable helper.
17
+
18
+ ## Inventory
19
+
20
+ | Script | Roadmap / Phase | Council session id |
21
+ |---|---|---|
22
+ | `_one_off_2a4_acceptance.py` | structural-optimization 2A.4 | various 2A sessions |
23
+ | `_one_off_context_layer_v1_estimate.py` | context-layer-maturity v1 cost estimate | `2026-05-03T17-56-21Z` |
24
+ | `_one_off_context_layer_v1_review.py` | context-layer-maturity v1 review | `2026-05-03T17-56-21Z` |
25
+ | `_one_off_followups_review.py` | road-to-1-16-followups review | session under `agents/council-sessions/` |
26
+ | `_one_off_nondestructive_inline_audit.py` | non-destructive-by-default audit | session under `agents/council-sessions/` |
27
+ | `_one_off_phase4_dispatch_latency.py` | structural-optimization 4.3.1 cluster latency benchmark | local benchmark, no council |
28
+ | `_one_off_phase6_trigger_jaccard.py` | structural-optimization Phase 6 trigger overlap | local measurement |
29
+ | `_one_off_phase_2a_budget_rebalance.py` | structural-optimization 2A budget rebalance | `2026-05-03T*` |
30
+ | `_one_off_phase_2a_post_revert.py` | structural-optimization 2A post-revert | `2026-05-03T*` |
31
+ | `_one_off_rebalancing_audit.py` | rebalancing roadmap audit | session under `agents/council-sessions/` |
32
+ | `_one_off_roundtrip.py` | council client roundtrip smoke test | local smoke test |
33
+ | `_one_off_rule_hardening_v1.py` | rule-hardening v1 review | `2026-05-03T19-16-25Z` |
34
+ | `_one_off_structural_open_questions.py` | structural-optimization open questions | session under `agents/council-sessions/` |
35
+ | `_one_off_structural_optimization.py` | structural-optimization initial review | session under `agents/council-sessions/` |
36
+ | `_one_off_structural_v3_gaps.py` | structural-optimization v3 gap audit | session under `agents/council-sessions/` |
37
+ | `_one_off_structural_v3_review.py` | structural-optimization v3 review | session under `agents/council-sessions/` |
38
+
39
+ ## Re-running an archived script
40
+
41
+ Imports may have shifted (e.g. `scripts.ai_council.*`). If a probe
42
+ needs to be re-run against a current branch, copy it back to its
43
+ original location, fix imports, run, then move the working copy
44
+ back here. Do **not** edit in place — keep the archive immutable
45
+ beyond cosmetic README updates.