Use only when the server has enabled the paid Family legacy memoir feature. Extract explicit storyteller-grounded people and relationship assertions for the Memoir family-tree workspace while preserving uncertainty, privacy, and canonical identity rules.
Resources
2Install
npx skillscat add bohui/copyme2-ai/memoir-family-tree Install via the SkillsCat registry.
Memoir Family Tree
Activation
The server loads this skill only after confirming a paid Family legacy
entitlement backed by STRIPE_PRICE_FAMILY. The entitlement decision is the
authority; never infer access from profile data, request fields, or browser
state.
Dispatch only for an explicit relationship mention, details about an established
relative, or a relevant correction. Ordinary narration leaves the tree unchanged.
This skill does not extract author life events: the independent shared MemoryEvent
lane handles every authorised narrator input without granting premium display.
Kinship titles and explicit shorthand such as my father, my mother, Mum,Dad, my sister and my partner are explicit relationship cues. Preserve
their grounded current-turn detail; use an existing canonical ID only when the
saved context clearly identifies the person. A shared spelling is insufficient.
Examples of relationship-driven updates: “At about three, I followed my father to the docks”
introduces an explicit father item; “Mum grew mint beside the laundry”
can enrich an established mother's introduction. Use only the storyteller's actual
details, never copy these example facts into a project.
Workflow
- Read the storyteller's current message and use only the smallest private
context needed to resolve an already-established person. - Extract only people, aliases, family titles, introductions, and relationship assertions the
storyteller explicitly stated or clearly corrected. - Preserve uncertainty and distinguish parent, child, spouse, sibling,
adoptive, step, guardian, and other assertions. - Never infer a relationship from surnames, titles, photos, public history,
geography, age, or cultural convention. Ask one short clarification when
identity or kinship is ambiguous and emit no marker for that detail. - Keep living-relative visibility and print inclusion explicit when supplied.
Put one machine marker on its own line after the visible reply.
Marker
Emit compact JSON between these exact delimiters only when the turn adds a
clear, explicit tree item:
[[MEMORY_SPARK_FAMILY_TREE]]{"people":[{"id":"p-mum","name":"Mei","family_title":"mother"}],"relationships":[]}[[/MEMORY_SPARK_FAMILY_TREE]]The top-level keys are only people and relationships. IDs are temporary
correlation keys for this marker, not database IDs.
People require id and name. They may include aliases, family_title,birth_date_expression, death_date_expression, living_status,visibility, include_in_print, and introduction.
When the storyteller shares details about a person, save a short introduction
(at most 1,200 characters) using only those details and established private
context. Preserve uncertainty, avoid inferred traits, and omit the field when
there is no grounded introduction. Update it with existing_id as details emerge.
Relationships require from_person_id, to_person_id, andrelationship_type. Supported types include parent, child, spouse,sibling, adoptive_parent, adopted_child, step_parent, step_child,guardian, and other; direction and maternal_paternal are optional.
When revising a saved record, include its canonical existing_id and include
every person referenced by a relationship. Omit existing_id for a new
record. Never match people only by similar names, titles, ages, or surnames.
Do not put Markdown, raw chat text, payment identifiers, exact private
addresses, inferred facts, or extra top-level keys inside the marker. The
application runtime validates and strips it before returning the reply. In the
canonical runtime, event extraction is queued separately through the shared
MemoryEvent service; this family-tree pass never authors timeline events. The
legacy standalone adapter may accept a separate MEMORY_SPARK_AUTHOR_TIMELINE
marker, but that format is outside this relationship-driven pass.
Persisted workspace contract
The application runtime merges this update into the shared, versioned family_context
document for the authenticated user and Memoir project. It returns the
persisted document plus family_context_update; the envelope includesskills: ["family_tree"] when this skill changed the document. The browser
renders the persisted document directly and uses accessible person cards
when a visualization adapter is unavailable.
The database boundary is user-scoped by RLS, checks the expected revision, and
makes retries idempotent. The storyteller remains the authority for every
relationship and identity assertion.