Skip to content

Commit d59c009

Browse files
committed
Round 78: nine-skill thinking cross-links + Module Contract anti-drift
Complete SKILL_THINKING_SOURCES coverage for all CORE_SKILLS, add reflective-research Prompt Sources thinking lenses, and gate Module Contract subsections with test_skill_module_contract.py.
1 parent 95fc8d9 commit d59c009

9 files changed

Lines changed: 136 additions & 6 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Full library docs: [reflective-prompt-library/README.md](reflective-prompt-libra
2121
## Governance
2222

2323
- **Contributing:** [CONTRIBUTING.md](CONTRIBUTING.md) — quality gates, routing maintenance (R8–R12), `make all`
24-
- **Panel record:** [multi-agent-panel-consensus](reflective-prompt-library/plans/multi-agent-panel-consensus-2026-06-25.md) — six-lens Socratic consensus (Rounds 1–77)
24+
- **Panel record:** [multi-agent-panel-consensus](reflective-prompt-library/plans/multi-agent-panel-consensus-2026-06-25.md) — six-lens Socratic consensus (Rounds 1–78)
2525
- **Operator playbook:** [GLOSSARY.md](reflective-prompt-library/GLOSSARY.md) — Governance Maintenance Playbook
2626

2727
The repository contains:

reflective-prompt-library/PROJECT_KNOWLEDGE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ deferred promotions are recurrence-gated — see [panel backlog](plans/multi-age
7272

7373
## Decision Index
7474

75+
- 2026-06-25 Round 78 panel — complete nine-skill thinking-lens cross-links + Module Contract anti-drift → [record](plans/multi-agent-panel-consensus-2026-06-25.md)
7576
> Pointers to the causal trail — plans, reflections, tests, commits. Detail is
7677
> not duplicated here; this is a map, not an archive.
7778

reflective-prompt-library/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Pick **Strictness L1–L6** first (`skills/reflective-dispatch/SKILL.md`, [GLOSS
3030

3131
## Governance Panel Record
3232

33-
Multi-agent Socratic consensus on project goals and the nine skills (Rounds 1–77, options A–DZ) is recorded in [plans/multi-agent-panel-consensus-2026-06-25.md](plans/multi-agent-panel-consensus-2026-06-25.md). Run `make all` before claiming routing or governance changes are verified.
33+
Multi-agent Socratic consensus on project goals and the nine skills (Rounds 1–78, options A–ED) is recorded in [plans/multi-agent-panel-consensus-2026-06-25.md](plans/multi-agent-panel-consensus-2026-06-25.md). Run `make all` before claiming routing or governance changes are verified.
3434

3535
## Directory Map
3636

reflective-prompt-library/plans/QUALITY_GATES_SUMMARY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ ROUTE-002 measures unseen phrasing separately from ROUTE-001. Round 7 (2026-06-2
314314
2. **ROUTE-001/002/003 in CI** — 128 + 102 + 53 paraphrases at 100% consistency (seeded fixtures); `validate_route_fixture.py` gates minimum coverage
315315
3. **Governance validators** — links, lint, governance metadata, PROJECT_KNOWLEDGE, benchmark fixture, skill examples
316316
4. **Harness policy docs** — CONTRIBUTING, AGENTS, SKILL_INSTALLATION, maintenance playbook
317-
5. **Doc anti-drift**`test_routing_contract.py`, cheatsheet parity tests, `test_readme_governance.py`, `test_thinking_prompts_eval_harness.py`, `test_engineering_prompts_eval_harness.py`, `test_prompt_cross_links.py`, `test_core_prompts_eval_harness.py`, `test_agent_prompts_eval_harness.py`, `test_context_prompts_eval_harness.py`, `test_domain_prompts_eval_harness.py`, `test_repo_prompts_eval_harness.py`, `test_validate_governance.py`, `test_validate_links.py`, `test_lint_skills.py` (410+ pytest anti-drift suite in CI)
317+
5. **Doc anti-drift**`test_routing_contract.py`, cheatsheet parity tests, `test_readme_governance.py`, `test_thinking_prompts_eval_harness.py`, `test_engineering_prompts_eval_harness.py`, `test_prompt_cross_links.py`, `test_core_prompts_eval_harness.py`, `test_agent_prompts_eval_harness.py`, `test_context_prompts_eval_harness.py`, `test_domain_prompts_eval_harness.py`, `test_repo_prompts_eval_harness.py`, `test_validate_governance.py`, `test_validate_links.py`, `test_lint_skills.py`, `test_skill_module_contract.py` (430+ pytest anti-drift suite in CI)
318318

319319
### Ongoing maintenance (not blockers)
320320

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

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1994,3 +1994,72 @@ User directive (repeat): review prompts, plans, skills, and Socratic/critical-th
19941994
## Panel status (updated)
19951995

19961996
**Resealed 2026-06-25** after **Round 77** (options DX–DZ). Governance validator pytest mirrors complete; prompt-library contract sweep and governance anti-drift suite closed. Holdout expansion before router tuning remains recurrence-gated maintenance.
1997+
1998+
## Round 78 — Workflow skill thinking cross-links (2026-06-25)
1999+
2000+
User directive (repeat): review prompts, plans, skills, and Socratic/critical-thinking lenses in parallel until all roles agree, then implement.
2001+
2002+
### EA: Complete all nine workflow skill ↔ thinking-lens cross-links?
2003+
2004+
| Lens | Position |
2005+
| --- | --- |
2006+
| Opus | **Agree** — Round 71 covered three skills; remaining six leave Socratic/critical lenses untested |
2007+
| Codex | **Agree**`SKILL_THINKING_SOURCES` parity with `CORE_SKILLS` is falsifiable |
2008+
| Gemini | **Agree** — dispatch/brief/minimality lenses are cost-relevant entry points |
2009+
| Composer | **Agree** — IDE users load skills with thinking lenses; reciprocal Prompt Sources required |
2010+
| Sakana | **Agree** — research multi-voice method needs explicit socratic + critical-thinking links |
2011+
| GLM | **Agree** — English canonical links; TW routing unaffected |
2012+
2013+
**Socratic Q:** Why skills after prompt contract sweep?
2014+
**Answer:** Skills are the harness-policy layer; thinking lenses must be traceable from every workflow skill Prompt Sources, not only implement/spec-plan/handoff.
2015+
2016+
**Consensus:** **Agree** — extend `SKILL_THINKING_SOURCES` to all nine skills; add missing `reflective-research` Prompt Sources links; `test_all_workflow_skills_have_thinking_cross_link`.
2017+
2018+
### EB: Skill Module Contract anti-drift for all nine skills?
2019+
2020+
| Lens | Position |
2021+
| --- | --- |
2022+
| All six | **Agree**`lint_skills.py` warnings are not pytest-gated; bounded Trigger/Methods/Output/Never test |
2023+
2024+
**Consensus:** **Agree**`test_skill_module_contract.py` for all `CORE_SKILLS`.
2025+
2026+
### EC: ROUTE-002/003 holdout expansion now?
2027+
2028+
| Lens | Position |
2029+
| --- | --- |
2030+
| All six | **Defer** — maintenance playbook item; this round targets skill ↔ thinking linkage |
2031+
2032+
### ED: Router / holdout / tenth skill / benchmark CI?
2033+
2034+
| Lens | Position |
2035+
| --- | --- |
2036+
| All six | **Reject** — unchanged |
2037+
2038+
### Round 78 verdict table
2039+
2040+
| ID | Option | Verdict | Action |
2041+
| --- | --- | --- | --- |
2042+
| EA | Nine-skill thinking cross-links | **Agree** | SKILL_THINKING_SOURCES + research Prompt Sources |
2043+
| EB | Module Contract anti-drift | **Agree** | `test_skill_module_contract.py` |
2044+
| EC | Holdout expansion | **Defer** | maintenance |
2045+
| ED | Router/tenth skill/benchmark CI | **Reject** | no change |
2046+
2047+
**All roles agree.**
2048+
2049+
## Implemented Changes (Round 78)
2050+
2051+
- `skills/reflective-research/SKILL.md`: add `01-thinking/socratic-reviewer.md` + `critical-thinking-check.md` to Prompt Sources
2052+
- `plans/tests/test_prompt_cross_links.py`: `SKILL_THINKING_SOURCES` covers all nine `CORE_SKILLS`; lens file existence test
2053+
- `plans/tests/test_skill_module_contract.py`: Module Contract + Trigger/Methods/Output/Never anti-drift
2054+
- `QUALITY_GATES_SUMMARY.md`: skill cross-link + module contract tests; pytest floor 430+
2055+
- `PROJECT_KNOWLEDGE.md`: Decision Index Round 78 entry
2056+
- `README.md`, `reflective-prompt-library/README.md`, `test_readme_governance.py`: panel round 78 sync
2057+
2058+
## Verification (Round 78)
2059+
2060+
- `make all`: pytest + ROUTE-001/002/003 100%
2061+
2062+
## Panel status (updated)
2063+
2064+
**Resealed 2026-06-25** after **Round 78** (options EA–ED). Nine-skill thinking-lens cross-link pass complete; Module Contract anti-drift closed for core skills. Holdout expansion remains recurrence-gated maintenance.
2065+

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

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,30 @@
2828
}
2929

3030
SKILL_THINKING_SOURCES: dict[str, tuple[str, ...]] = {
31+
"reflective-brief": (
32+
"01-thinking/why-what-how-done.md",
33+
"01-thinking/falsifiability.md",
34+
),
35+
"reflective-dispatch": ("01-thinking/socratic-reviewer.md",),
36+
"reflective-handoff-retro": ("01-thinking/socratic-reviewer.md",),
3137
"reflective-implement": (
3238
"01-thinking/counterargument.md",
3339
"01-thinking/critical-thinking-check.md",
3440
),
41+
"reflective-minimality": ("01-thinking/counterargument.md",),
42+
"reflective-research": (
43+
"01-thinking/socratic-reviewer.md",
44+
"01-thinking/critical-thinking-check.md",
45+
),
46+
"reflective-review": (
47+
"01-thinking/critical-thinking-check.md",
48+
"01-thinking/counterargument.md",
49+
),
50+
"reflective-risk": ("01-thinking/critical-thinking-check.md",),
3551
"reflective-spec-plan": (
3652
"01-thinking/falsifiability.md",
3753
"01-thinking/why-what-how-done.md",
3854
),
39-
"reflective-handoff-retro": ("01-thinking/socratic-reviewer.md",),
4055
}
4156

4257

@@ -251,6 +266,18 @@ def test_workflow_skill_lists_thinking_sources(skill_name: str, thinking_refs: t
251266
assert ref in section, f"{skill_name} Prompt Sources should list {ref}"
252267

253268

269+
def test_all_workflow_skills_have_thinking_cross_link():
270+
from validate_skill_examples import CORE_SKILLS # noqa: WPS433
271+
272+
assert set(SKILL_THINKING_SOURCES) == set(CORE_SKILLS)
273+
274+
275+
def test_thinking_lens_files_exist_for_skill_links():
276+
linked = {ref for refs in SKILL_THINKING_SOURCES.values() for ref in refs}
277+
for ref in linked:
278+
assert (LIBRARY_ROOT / ref).is_file(), f"missing thinking lens file {ref}"
279+
280+
254281
@pytest.mark.parametrize("prompt_path", THINKING_PROMPTS, ids=lambda p: p.name)
255282
def test_thinking_prompt_maps_to_workflow_skill(prompt_path: Path):
256283
preamble = _preamble(prompt_path)

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
METHODOLOGY_MAP_EN = Path(__file__).parent.parent.parent / "METHODOLOGY_MAP.md"
1111
SKILL_MAP = Path(__file__).parent.parent.parent / "skills" / "skill-map.md"
1212

13-
CURRENT_PANEL_ROUND = "77"
14-
CURRENT_PANEL_OPTIONS = "A–DZ"
13+
CURRENT_PANEL_ROUND = "78"
14+
CURRENT_PANEL_OPTIONS = "A–ED"
1515

1616

1717
@pytest.fixture(scope="module")
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"""Anti-drift: all nine workflow skills keep Module Contract subsections."""
2+
3+
import re
4+
import sys
5+
from pathlib import Path
6+
7+
import pytest
8+
9+
sys.path.insert(0, str(Path(__file__).parent.parent))
10+
11+
from validate_skill_examples import CORE_SKILLS # noqa: E402
12+
13+
SKILLS_DIR = Path(__file__).parent.parent.parent / "skills"
14+
15+
REQUIRED_SUBSECTIONS = ("Trigger", "Methods", "Output", "Never")
16+
17+
18+
@pytest.mark.parametrize("skill_name", CORE_SKILLS)
19+
def test_core_skill_has_module_contract(skill_name: str):
20+
content = (SKILLS_DIR / skill_name / "SKILL.md").read_text(encoding="utf-8")
21+
assert "## Module Contract" in content, skill_name
22+
23+
24+
@pytest.mark.parametrize("skill_name", CORE_SKILLS)
25+
def test_core_skill_has_contract_subsections(skill_name: str):
26+
content = (SKILLS_DIR / skill_name / "SKILL.md").read_text(encoding="utf-8")
27+
for subsection in REQUIRED_SUBSECTIONS:
28+
pattern = rf"(##\s*{re.escape(subsection)}|^\*?\*?{re.escape(subsection)}:)"
29+
assert re.search(pattern, content, re.MULTILINE | re.IGNORECASE), (
30+
f"{skill_name} missing {subsection}"
31+
)

reflective-prompt-library/skills/reflective-research/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,3 +163,5 @@ Skip when the question is narrow, repo-local, and already has a single canonical
163163
- `03-context/gemini-long-document.md`
164164
- `04-agent/runtime-trust-boundary.md`
165165
- `04-agent/agent-scaffold-provenance.md`
166+
- `01-thinking/socratic-reviewer.md`
167+
- `01-thinking/critical-thinking-check.md`

0 commit comments

Comments
 (0)