Synced from references/refinement-hooks.md in script-pool skill on 2026-05-18. Edit upstream in the skill; this file is overwritten on next sync.

Refinement Hooks — Forward Spec for M114

Daniel said refinement (enrichment with adjacent themes) is a “späterer Schritt.” This file specifies the frontmatter and body hooks the script-pool puts in place TODAY so a future M114 refinement skill can pick up where script-pool leaves off without schema changes.

What “refinement” means

Take an existing script.md in draft status and:

  1. Pull adjacent Readwise highlights (semantic search on clip themes)
  2. Identify related Daniel-thinking from the existing script pool (cross-reference scripts on similar pillars / themes)
  3. Surface 2-3 enrichment alternatives (e.g., “Bengio said X; Karpathy said Y; you have a Y-clip from 3 weeks ago — want to weave both?“)
  4. Update the script body with Daniel-approved additions
  5. Bump status: draftrefiningready

Hooks in frontmatter (already in S01 schema)

refinement:
  themes_to_explore: []           # populated at draft time by Mode C
  adjacent_clips: []              # M114 fills via Readwise semantic search
  status: "draft-v1"              # M114 bumps as it progresses
  refined_at: null                # M114 sets ISO-8601 on each pass
  unanswered_questions: []        # M114 may add open questions Daniel decides on
  contradicting_clips: []         # M114 may surface clips that contradict draft thesis

themes_to_explore

Mode C populates 3-5 themes auto-extracted from Daniel’s reflection’s “Was klingt verwandt” section. M114 reads these as the search seeds for adjacent-clip queries.

Example values (from Bengio Continuity Cluster reflection):

themes_to_explore:
  - "episodic-memory-papers"
  - "anthropic-constitutional-memory"
  - "companion-product-launches-2025-2026"
  - "stateless-vs-stateful-llm-architecture"

Mode C must NOT invent themes — only extract what Daniel actually wrote. If reflection had no “Was klingt verwandt” content, this list stays empty ([]) and M114 can later prompt Daniel to add some.

adjacent_clips

M114-only. Each entry:

adjacent_clips:
  - readwise_id: "..."
    relevance_note: "<one-line why this clip is adjacent — semantic similarity, complementary angle, etc.>"

M114 finds these via:

  • Readwise semantic search (mcp__readwise__search_highlights({ query: <theme + clip excerpt> }))
  • Filtering by date (avoid suggesting the source clip itself)
  • Confidence scoring + Daniel-confirm before injecting

unanswered_questions

Daniel-supplied OR M114-extracted questions that the current draft doesn’t answer. Examples:

  • “Does Bengio define state architecturally or behaviorally?”
  • “Is the persistence-layer claim verifiable in our code right now, or aspirational?”

These can guide Daniel to record a follow-up clip or enrich the current draft.

contradicting_clips

Adversarial framing. M114 looks for clips that CONTRADICT the draft’s thesis:

contradicting_clips:
  - readwise_id: "..."
    note: "<one-line how this clip cuts against the current angle>"

Useful for: avoiding echo-chamber framing, building stronger arguments by addressing counter-points, or pivoting if a strong contradiction surfaces.

Hooks in body (markdown comments)

Mode C injects refinement-anchor comments inline:

<!-- refinement-hook: theme-enrich. Beat 2 unpacks "stateless = vending machine."
     Adjacent themes worth pulling per `themes_to_explore`: episodic memory papers,
     constitutional AI memory work, companion-product launches 2025-2026.
     M114 should query these and offer Daniel 2-3 enriched alternates. -->

These comments live in the script body and survive markdown rendering (HTML comments are invisible to readers + Dataview). M114 grep-finds them.

Status lifecycle (M114 transitions)

draft (S02 commit)
  ↓ M114 read themes_to_explore, query Readwise for adjacent
refining
  ↓ M114 surface alternates, Daniel approves enrichments
refining (Daniel iterates)
  ↓ Daniel says "ready"
ready
  ↓ priming Mode 4 (script-driven) + recording + extraction
shipped (extraction post-hook writes shipped_clip_id)

retired is a manual transition — Daniel chooses to abandon a script.

What M114 must NOT do

  • Modify verbatim quotes. sources[].text_excerpt is sacred. M114 can ADD new sources from adjacent clips, never modify existing ones.
  • Bypass voice-safety gates. Each refinement pass re-runs all 7 gates. Status bump to ready requires all gates pass.
  • Auto-promote to ready. Always Daniel-confirm before status bump.
  • Touch other scripts in the pool. M114 enriches one script per invocation. Cross-script de-duplication or merging is a separate concern (M115?).

Schema compatibility

The schema in .schema/script.frontmatter.schema.json already accepts all the M114-relevant fields. No schema changes needed when M114 ships — purely additive consumption.

Forward-compatibility test: Mode C writes script.md with empty adjacent_clips: [] and unanswered_questions: []. M114 just populates these arrays. No migration required.