
Record a Relative
Bank an elder's interview while the telling is fresh: file the transcript, pull the people, places, and dates into the family record with their source, and write the follow-up questions — because the questions you didn't ask are the ones that vanish. Locks the extraction rules FIRST (every fact carries its quote, uncertain stays uncertain), then files the transcript, then updates the tree and surfaces the conflicts. Use for filing a family interview, recording a relative's stories, pulling facts into the tree, and 'we interviewed grandma'.
Steps
Entry step: scope. Each step names the specialist role it wants; the full working prompt is expandable.
- Scope the extractiongenealogistentry
target branch, extraction rules, fact-sourcing checklist
Show working prompt
Aim the interview at the tree before extracting a single fact. Step 1: read tree.json from the workspace — the people, the branches, the facts already recorded and the ones marked uncertain. Step 2: identify the relative who was interviewed and which branch facts this interview can confirm, correct, or newly supply. Step 3: lock the extraction rules — every fact carries the teller's quote or the transcript line behind it; a fact that conflicts with the tree is surfaced as a conflict, never silently overwritten; uncertain stays uncertain ('she thought it was 1954' is recorded as thought, not fact). Step 4: write the acceptance-criteria checklist from those rules, plus 'the transcript is filed under interviews/' and 'follow-up questions written for the gaps the interview opened'. Call write_task_note with the relative + target branch + checklist and write notes/scope.md. - File the transcriptarchivist
speaker-labeled transcript with a header, under interviews/
Show working prompt
Get the interview on file where the family can find it in fifty years. Step 1: if a transcript file was provided, start from it; otherwise produce one from the recording through the project's transcription capabilities. Step 2: label the speakers and add a header — who was interviewed, by whom, when and where. Step 3: save it in the interviews/ folder named for the relative and the date (for example interviews/oma-2026-07.md). Keep the telling verbatim — the phrasing is part of the record. Step 4: call write_task_note with the path.
- Extract the factsgenealogist
facts with quotes into the tree, conflicts surfaced, follow-ups
Show working prompt
Pull the facts into the record with their sources. Step 1: walk the transcript and list every person, place, date, and event it attests — each with the quote behind it. Step 2: compare against tree.json: which facts confirm the tree, which are new, and which conflict with what is recorded — update the tree through the project's family-record capabilities for confirmations and additions, and surface every conflict for the owner instead of picking a winner. Step 3: write report.md: the facts captured (each with its quote), the conflicts with the existing tree stated plainly, and the follow-up questions to ask while asking is still possible. Step 4: call write_task_note with the fact count, the conflict count, and the top follow-up question.
- Evaluatereviewer
Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.
Show working prompt
Open report.md beside the interview transcript and tree.json and verify every criterion from notes/scope.md: every fact in the report carries a quote that actually appears in the transcript (spot-check five — a quote that isn't there is fabrication), every date and name in the report exists in the transcript or the tree, conflicts with the tree are surfaced as conflicts rather than silently resolved, uncertain memories are recorded as uncertain, and the follow-up questions are real questions aimed at real gaps. Write PASS/FAIL per criterion; on any failure, name the gap and loop back to extract. Then route — this is the whole point of the loop: - **Every criterion PASSES →** call `advance_task_step({ ref, stepId: "evaluate", next: "finish" })`. - **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: "evaluate", next: "extract" })` to loop back. The builder fixes exactly those gaps. Never route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in. - Finishdeveloper
All acceptance criteria met. Stamp a short summary and report DONE.
Show working prompt
Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.
Triggers
Phrases that suggest this craftbook to a crew.
- file the interview with oma
- we interviewed grandma
- pull the family facts from the transcript
- record a relative
- bank the elder interview
Source
View this craftbook on GitHub · MIT license