Skip to content

Commit f5e45ef

Browse files
committed
docs(governance): Round 66 panel — R12 boundary quick-cue contract
Six-lens unanimous agreement after post-cb6ea2b rethink: - ROUTING_CONTRACT R12: curated boundary quick-cue summary policy - GLOSSARY Boundary Quick Cues + playbook step 6 (Rounds 1–66) - Probe-snippet anti-drift in test_cheatsheet_boundary_quick_cues.py - QUALITY_GATES 7.4 cheatsheet parity pytest mention - Reject expanding quick-cue bullets (seven curated traps suffice) 167 pytest; ROUTE-001/002/003 remain 100%.
1 parent cb6ea2b commit f5e45ef

9 files changed

Lines changed: 184 additions & 8 deletions

reflective-prompt-library/GLOSSARY.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,9 +327,17 @@ Routing boundary: when intent is to **implement or land an approved spec in the
327327

328328
---
329329

330+
## Boundary Quick Cues / 邊界速查
331+
332+
Curated top-of-cheatsheet summary of high-confusion routing traps (ROUTE-002 holdout + ROUTE-003 adversarial). Not exhaustive — per-skill trigger cues and holdout fixtures remain authoritative.
333+
334+
**Operational test:** `test_cheatsheet_boundary_quick_cues.py` — marker labels and probe-linked snippets in the quick-cue block; `ROUTING_CONTRACT.md` R12.
335+
336+
---
337+
330338
## Governance Maintenance Playbook / 治理維護手冊
331339

332-
Ongoing upkeep after panel close (Rounds 1–65). Not agent instructions — operator checklist.
340+
Ongoing upkeep after panel close (Rounds 1–66). Not agent instructions — operator checklist.
333341

334342
**Operational test:** Before router tuning, add fresh ROUTE-002/003 holdout phrases; run `make validate`; record decisions in `PROJECT_KNOWLEDGE.md` Decision Index when governance surface changes.
335343

@@ -338,4 +346,5 @@ Ongoing upkeep after panel close (Rounds 1–65). Not agent instructions — ope
338346
3. Watch non-blocking undocumented-decision warnings from `validate_project_knowledge.py`.
339347
4. Keep manual `benchmark_tasks.py` runs optional — fixture gate only in CI.
340348
5. Reject tenth skill / full `SKILL.md` i18n unless promotion gate met (panel A, Q, W, AJ).
349+
6. When cheatsheet boundary quick cues change, update `BOUNDARY_QUICK_CUE_*` markers and probe snippets in `test_validate_route_fixture.py`; run `test_cheatsheet_boundary_quick_cues.py`.
341350

reflective-prompt-library/PROJECT_KNOWLEDGE.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ operating its own agent runtime. See [README.md](README.md#north-star).
4141
> does not silently expand. Completed milestones are retired from this section;
4242
> their outcomes live in the Decision Index.
4343
44-
**Ongoing (post Round 65 panel):** maintain ROUTE-001/002/003 evals, governance validators,
44+
**Ongoing (post Round 66 panel):** maintain ROUTE-001/002/003 evals, governance validators,
4545
and holdout expansion before router tuning — see [GLOSSARY.md](GLOSSARY.md) Governance
4646
Maintenance Playbook. Post-panel maintenance (e.g. ROUTING_CONTRACT R11 approved-spec delivery)
4747
follows the same holdout-before-tune rule. No open implementation blockers from Rounds 8–20;
@@ -81,6 +81,7 @@ deferred promotions are recurrence-gated — see [panel backlog](plans/multi-age
8181
- 2026-06-18 Adopt STORM's source-grounded perspective discovery as an optional `reflective-research` method, not a new skill → [record](plans/storm-perspective-discovery-reflection-2026-06-18.md)
8282
- 2026-06-20 Synthesize external-adoption case studies, then correct the evidence and promotion-gate scope after the Test Plan routing counterexample → [record](plans/external-adoption-case-studies-2026-06-20.md)
8383
- 2026-06-21 Evaluate Hyperplan / multi-agent adversarial planning — no change (runtime = non-goal; methodology overlaps; possible gaps not promoted) → [record](plans/external-adoption-case-studies-2026-06-20.md)
84+
- 2026-06-25 Round 66 panel — R12 boundary quick-cue contract, probe-snippet anti-drift, reject quick-cue expansion → [record](plans/multi-agent-panel-consensus-2026-06-25.md)
8485
- 2026-06-25 R11 zh-TW approved-spec delivery holdout — mixed-language ROUTE-003 phrases + router fairness → [ROUTING_CONTRACT.md](plans/ROUTING_CONTRACT.md#r11-approved-spec-delivery)
8586
- 2026-06-25 R11 approved-spec delivery routing — `implement_not_plan_trap` fix, ROUTE-003 back to 100%, contract + anti-drift test → [ROUTING_CONTRACT.md](plans/ROUTING_CONTRACT.md#r11-approved-spec-delivery)
8687
- 2026-06-25 Rounds 51–65 panel — brief-before-plan, design comparison, dispatch-meta, readme plain review holdouts → [record](plans/multi-agent-panel-consensus-2026-06-25.md)

reflective-prompt-library/plans/QUALITY_GATES_SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,7 @@ python3 reflective-prompt-library/plans/route_paraphrase_eval.py reflective-prom
227227
- Current minimums: ROUTE-001 (12 intent + 4 adversarial groups, 128 phrases); ROUTE-002 (36 holdout groups, 100 phrases); ROUTE-003 (13 adversarial groups, 31 phrases)
228228
- Round 22 panel compromise: deterministic hygiene without YAML dependency explosion
229229
- Integrated in `make validate` after skill examples gate; mirrored by pytest in `test_validate_route_fixture.py`
230+
- Cheatsheet parity anti-drift: `test_cheatsheet_boundary_quick_cues.py` (R12 quick-cue summary), `test_cheatsheet_*_parity.py` (holdout probe cues in EN/zh-TW cheatsheets)
230231

231232
**Usage:**
232233
```bash

reflective-prompt-library/plans/ROUTING_CONTRACT.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,18 @@ This contract applies to:
100100
still route to `reflective-spec-plan`.
101101
- Add ROUTE-003 `implement_not_plan_trap` holdout phrases (including mixed zh-TW + English approved-spec delivery) before tuning this boundary.
102102

103+
### R12: Boundary quick-cue summary
104+
105+
- `SKILL_TRIGGER_CHEATSHEET.md` and `.zh-TW.md` include a **curated** boundary quick-cue block
106+
before the per-skill sections. It summarizes high-confusion ROUTE-002 holdout and ROUTE-003
107+
adversarial traps; it is not an exhaustive list of all holdout phrases.
108+
- When adding a new routing boundary (R8–R11 pattern), update holdout fixtures and per-skill
109+
trigger cues first; add a quick-cue bullet only when the trap is frequent enough to merit
110+
top-of-page visibility.
111+
- Anti-drift: `plans/tests/test_cheatsheet_boundary_quick_cues.py` guards marker labels and
112+
probe-linked snippets in the quick-cue block; `test_cheatsheet_*_parity.py` guards full
113+
cheatsheet coverage.
114+
103115

104116
## Router Output Contract
105117

reflective-prompt-library/plans/multi-agent-panel-consensus-2026-06-25.md

Lines changed: 103 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,8 +1162,108 @@ User directive: continue Socratic panel for as many rounds as feasible.
11621162

11631163
- `make all`: **64 pytest**, ROUTE-001 **100%** (16/128), ROUTE-002 **100%** (36/100), ROUTE-003 **100%** (13/28)
11641164

1165-
## Panel status (final)
1165+
## Round 66 — Post quick-cue maintenance (2026-06-25)
11661166

1167-
**Sealed 2026-06-25** after **Round 65** (options A–CF). Extended deliberation complete. Future work is recurrence-gated maintenance per playbook.
1167+
User directive: **do anything you want** — reopen panel for post-`cb6ea2b` boundary quick-cue governance.
11681168

1169-
_Ongoing maintenance: [GLOSSARY.md](../GLOSSARY.md) Governance Maintenance Playbook — expand ROUTE-002/003 holdout before `route_paraphrase_eval.py` tuning (R8–R11)._
1169+
### CG: ROUTING_CONTRACT R12 — boundary quick-cue summary?
1170+
1171+
| Lens | Position |
1172+
| --- | --- |
1173+
| Opus | **Agree** — curated quick-cue block is now a contract surface; document curated-not-exhaustive rule |
1174+
| Codex | **Agree** — links holdout parity tests to routing contract |
1175+
| Gemini | **Agree** — operators need explicit R12 before adding bullets ad hoc |
1176+
| Composer | **Agree** — matches R8–R11 maintenance pattern |
1177+
| Sakana | **Agree** — no new skill; contract only |
1178+
| GLM | **Agree** — zh-TW cheatsheet included in R12 scope |
1179+
1180+
**Socratic Q:** Does R12 duplicate cheatsheet content?
1181+
**Answer:** No — it states *maintenance policy* (curated summary, holdout-first), not trigger cues.
1182+
1183+
**Consensus:** **Agree** — add R12 to `ROUTING_CONTRACT.md`.
1184+
1185+
### CH: Probe-linked anti-drift for quick-cue block?
1186+
1187+
| Lens | Position |
1188+
| --- | --- |
1189+
| Opus | **Agree** — marker-only tests allow label drift from probe meaning |
1190+
| Codex | **Agree**`BOUNDARY_QUICK_CUE_PROBE_SNIPPETS_*` tied to bullet descriptions |
1191+
| Gemini | **Agree** — stronger than bold-label checks alone |
1192+
| Composer | **Agree** — extend `test_cheatsheet_boundary_quick_cues.py` |
1193+
| Sakana | **Agree** — exported from `test_validate_route_fixture.py` |
1194+
| GLM | **Agree** — separate EN/zh-TW snippet tuples |
1195+
1196+
**Consensus:** **Agree** — probe-snippet pytest guard.
1197+
1198+
### CI: Expand quick cues (minimality, dispatch-meta, design comparison)?
1199+
1200+
| Lens | Position |
1201+
| --- | --- |
1202+
| Opus | **Reject** — seven bullets suffice; skill sections + parity tests cover rest |
1203+
| Codex | **Reject** — quick means quick; exhaustive list defeats purpose |
1204+
| Gemini | **Defer** — would add three bullets |
1205+
| Composer | **Reject** — R12 documents curated subset |
1206+
| Sakana | **Reject** — holdout parity tests already guard full cues |
1207+
| GLM | **Reject** — zh-TW summary already long enough |
1208+
1209+
**Socratic Q:** If users miss minimality traps, do we expand quick cues?
1210+
**Answer:** Per-skill sections and `test_cheatsheet_boundary_parity.py` already enforce those probes; expand holdout before router tune (R8), not quick-cue list.
1211+
1212+
**Consensus:** **Reject expansion** — keep seven curated bullets.
1213+
1214+
### CJ: GLOSSARY + maintenance playbook step?
1215+
1216+
| Lens | Position |
1217+
| --- | --- |
1218+
| All six | **Agree** — Boundary Quick Cues section + playbook step 6 |
1219+
1220+
**Consensus:** **Agree**.
1221+
1222+
### CK: QUALITY_GATES 7.4 mentions cheatsheet parity tests?
1223+
1224+
| Lens | Position |
1225+
| --- | --- |
1226+
| All six | **Agree** — document `test_cheatsheet_boundary_quick_cues.py` + `test_cheatsheet_*_parity.py` |
1227+
1228+
**Consensus:** **Agree**.
1229+
1230+
### CL: Re-litigate backlog (tenth skill, default minimality, benchmark CI, full i18n)?
1231+
1232+
| Lens | Position |
1233+
| --- | --- |
1234+
| All six | **Reject / Defer unchanged** — recurrence-gated backlog stands |
1235+
1236+
**Consensus:** **Agree** — no backlog changes.
1237+
1238+
### Round 66 verdict table
1239+
1240+
| ID | Option | Verdict | Action |
1241+
| --- | --- | --- | --- |
1242+
| CG | R12 boundary quick-cue contract | **Agree** | `ROUTING_CONTRACT.md` |
1243+
| CH | Probe-snippet anti-drift | **Agree** | `test_validate_route_fixture.py` + `test_cheatsheet_boundary_quick_cues.py` |
1244+
| CI | Expand quick-cue bullets | **Reject** | Keep curated seven |
1245+
| CJ | GLOSSARY + playbook | **Agree** | Boundary Quick Cues + step 6 |
1246+
| CK | QUALITY_GATES 7.4 sync | **Agree** | Cheatsheet parity pytest mention |
1247+
| CL | Final seal | **Agree** | Panel resealed Round 66 |
1248+
1249+
**All roles agree.**
1250+
1251+
## Implemented Changes (Round 66)
1252+
1253+
- `ROUTING_CONTRACT.md`: R12 Boundary quick-cue summary
1254+
- `GLOSSARY.md`: Boundary Quick Cues section; playbook Rounds 1–66 + step 6
1255+
- `test_validate_route_fixture.py`: `BOUNDARY_QUICK_CUE_PROBE_SNIPPETS_EN/ZH`
1256+
- `test_cheatsheet_boundary_quick_cues.py`: probe-snippet + count anti-drift tests
1257+
- `test_glossary_structure.py`: Boundary Quick Cues section + Round 66 reference
1258+
- `test_quality_gates_summary.py`: 7.4 cheatsheet parity mention guard
1259+
- `QUALITY_GATES_SUMMARY.md`: 7.4 cheatsheet parity bullets
1260+
1261+
## Verification (Round 66)
1262+
1263+
- `make all`: pytest + ROUTE-001/002/003 100%
1264+
1265+
## Panel status (updated)
1266+
1267+
**Sealed 2026-06-25** after **Round 66** (options A–CL). Post-`cb6ea2b` quick-cue governance complete. Future work remains recurrence-gated maintenance per playbook.
1268+
1269+
_Ongoing maintenance: [GLOSSARY.md](../GLOSSARY.md) Governance Maintenance Playbook — expand ROUTE-002/003 holdout before `route_paraphrase_eval.py` tuning (R8–R12)._

reflective-prompt-library/plans/tests/test_cheatsheet_boundary_quick_cues.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
from test_validate_route_fixture import ( # noqa: E402
1111
BOUNDARY_QUICK_CUE_EN_MARKERS,
12+
BOUNDARY_QUICK_CUE_PROBE_SNIPPETS_EN,
13+
BOUNDARY_QUICK_CUE_PROBE_SNIPPETS_ZH,
1214
BOUNDARY_QUICK_CUE_ZH_MARKERS,
1315
)
1416

@@ -44,3 +46,22 @@ def test_boundary_quick_cues_present_in_english_summary(en_boundary_quick_cues:
4446
@pytest.mark.parametrize("marker", BOUNDARY_QUICK_CUE_ZH_MARKERS)
4547
def test_boundary_quick_cues_present_in_zh_tw_summary(zh_boundary_quick_cues: str, marker: str):
4648
assert marker in zh_boundary_quick_cues, f"zh-TW boundary quick-cue summary missing: {marker!r}"
49+
50+
@pytest.mark.parametrize("snippet", BOUNDARY_QUICK_CUE_PROBE_SNIPPETS_EN)
51+
def test_boundary_quick_cue_probe_snippets_in_english_summary(en_boundary_quick_cues: str, snippet: str):
52+
assert snippet.lower() in en_boundary_quick_cues.lower(), (
53+
f"English boundary quick-cue summary missing probe snippet: {snippet!r}"
54+
)
55+
56+
57+
@pytest.mark.parametrize("snippet", BOUNDARY_QUICK_CUE_PROBE_SNIPPETS_ZH)
58+
def test_boundary_quick_cue_probe_snippets_in_zh_tw_summary(zh_boundary_quick_cues: str, snippet: str):
59+
assert snippet.lower() in zh_boundary_quick_cues.lower(), (
60+
f"zh-TW boundary quick-cue summary missing probe snippet: {snippet!r}"
61+
)
62+
63+
64+
def test_boundary_quick_cue_probe_snippet_counts_match_markers():
65+
assert len(BOUNDARY_QUICK_CUE_PROBE_SNIPPETS_EN) == len(BOUNDARY_QUICK_CUE_EN_MARKERS) - 1
66+
assert len(BOUNDARY_QUICK_CUE_PROBE_SNIPPETS_ZH) == len(BOUNDARY_QUICK_CUE_ZH_MARKERS) - 1
67+

reflective-prompt-library/plans/tests/test_glossary_structure.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,17 @@ def test_round_boundary_terms_present(glossary_text: str):
2323
required = (
2424
"## Brief-before-Plan",
2525
"## Approved-Spec Delivery",
26+
"## Boundary Quick Cues",
2627
"## Governance Maintenance Playbook",
2728
)
2829
for heading in required:
2930
assert heading in glossary_text, f"missing glossary section: {heading}"
3031

3132

32-
def test_maintenance_playbook_references_round_65(glossary_text: str):
33+
def test_maintenance_playbook_references_round_66(glossary_text: str):
3334
playbook = glossary_text.split("## Governance Maintenance Playbook", 1)[1]
34-
assert "Rounds 1–65" in playbook or "Rounds 1-65" in playbook
35-
assert "Rounds 1–50" not in playbook and "Rounds 1-50" not in playbook
35+
assert "Rounds 1–66" in playbook or "Rounds 1-66" in playbook
36+
assert "Rounds 1–65" not in playbook and "Rounds 1-65" not in playbook
3637

3738

3839
def test_approved_spec_delivery_separated_from_playbook(glossary_text: str):

reflective-prompt-library/plans/tests/test_quality_gates_summary.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,13 @@ def test_ci_paraphrase_totals_match_route_minimums(summary_text: str):
8484
f"{ROUTE_001_MIN_PHRASES} + {ROUTE_002_MIN_PHRASES} + {ROUTE_003_MIN_PHRASES}"
8585
)
8686
assert expected_total in summary_text
87+
88+
def test_route_fixture_gate_mentions_cheatsheet_parity_tests(summary_text: str):
89+
section = _section_between(
90+
summary_text,
91+
"### 7.4 Route Fixture Gate ✅",
92+
"### 7. Small Benchmark Set ✅",
93+
)
94+
assert "test_cheatsheet_boundary_quick_cues.py" in section
95+
assert "test_cheatsheet_" in section and "_parity.py" in section
96+

reflective-prompt-library/plans/tests/test_validate_route_fixture.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,27 @@ def test_round_51_boundary_probes():
139139
"**正式環境風險不是一般審查**",
140140
)
141141

142+
# Probe-linked snippets that must appear in each quick-cue bullet description (R12 anti-drift).
143+
BOUNDARY_QUICK_CUE_PROBE_SNIPPETS_EN = (
144+
"explicit no-code context",
145+
"production risk is out of scope",
146+
"approved spec in the repository",
147+
"before PRD/tickets",
148+
"multi-voice debates",
149+
"small code patches",
150+
"auth/production/billing",
151+
)
152+
153+
BOUNDARY_QUICK_CUE_PROBE_SNIPPETS_ZH = (
154+
"明確不要改程式",
155+
"排除正式環境風險",
156+
"已核准 spec",
157+
"PRD/工單前",
158+
"多視角",
159+
"小 patch",
160+
"auth/production/billing",
161+
)
162+
142163

143164
def test_route_003_adversarial_boundary_probes():
144165
"""Anti-drift: ROUTE-003 adversarial boundaries route as fixture expects."""

0 commit comments

Comments
 (0)