<< All versions
Skill v1.0.0
currentLLM-judged scan90/100famstack-dev/famstack/family-memory
──Details
PublishedOctober 21, 2026 at 11:43 PM
Content Hashsha256:4e5cd68977e1abb0...
Git SHAf252e8aaf5e0
──Files
Files (1 file, 4.3 KB)
SKILL.md4.3 KBactive
SKILL.md · 76 lines · 4.3 KB
version: "1.0.0" name: family-memory description: How I look things up about the family and edit their lists. metadata: {"nanobot": {"always": true}}
Family memory (rules as pseudocode)
Vault = all family knowledge. Look before answering.
LOOKUP:brief names the page -> read_file(page) # no searchelse -> memory_search(2-4 literal keywords)scope family/<topic> first; miss -> widenindependent lookups -> ONE call, queries=[..] # max 3miss -> retry once, new keywords; then say tried + askprofile -> memory_person(name)"lately|since when|who did" -> memory_history # search ranks NOW, not changefull source document -> paperless_id frontmatter + `stack docs show <id> --content`PATHS:person -> vault/<name>/about.mdtopic -> vault/family/<topic>/about.mdlist -> vault/family/lists/<list>.md ; which lists exist -> `stack memory list show`search prints vault-relative paths -> read as vault/<path>SOURCES (answer used a vault page, searched or read):end answer with: Sources: [<page title>](<link line from search output, verbatim>)only pages I read; never shorten|reuse|invent a link; no link line -> title onlymax 3 sources; nothing from vault -> no Sources lineVOICE AND PHOTOS:"[transcription: …]" -> what they said aloud; act on it like typed textunclear or empty -> ask; change nothing # my answer shows the transcript itselfphoto attached -> look at it; a handwritten list -> add each item (list not said -> leave list out)CALENDAR (the family's dates; never list_edit, never read_file):appointment | "put it in the calendar" -> calendar op=add what="<what>, <where>" day=YYYY-MM-DD time=HH:MM"tomorrow|on Saturday" -> day from when the message was sent; say the date in my answerno day said -> ask for the day; add nothinga second time (when to leave) -> add it as its own entry; never drop either time"what's on|this week|today|tomorrow" -> calendar op=show days=7|1|2; read out its weekdays as they arecancelled|called off -> calendar op=remove what=<what>LISTS:"what is on X|which lists" -> exec `stack memory list show [<list>]`; never read_file to show a listitem op add|tick|untick|remove -> list_edit(list, op, items=[one or more])add, list not said -> leave list out (topic room: topic=<topic>); known items find their list"we did that" -> tick, never remove; list not said -> leave list out"bought all|clear the list" -> tick what they got; ticked items leave the list overnight"start the week|fresh list" -> list_edit op=reset # reopens allbelongs on another list -> op=move, to=<list>, never remove"get X at the market instead" | "buy X somewhere else" | "Y sells X" -> moveno list fits (a new store) -> op=create list=<slug> title about topic sections, then add"belongs here|rename|new order|new sections" -> op=set list=<slug> with only what changes"delete|drop list X|don't need X any more" -> op=delete list=X; never empty it item by itemdelete answer "Not deleted" -> ask whether the open items go too; their yes -> op=delete confirmed=truenever exec rm|mv on vault files; the list store is the only way to change a listadd to a list with sections -> section = one of the list's own"for <name>" | "by <day>" -> add with people=[name] | due=YYYY-MM-DD; never guess eithertwo items fit what was said -> ask which one, never pickanswer "ambiguous|no item|no section|no list|nobody called"-> pick from the named choices, retry oncerestructure set cannot do (merge two lists, split a section)-> read_file then write_file(complete page)keep: frontmatter verbatim at column one, every [x], their order, their wordswrite answer reports unintended unticked|REMOVED -> restore now, then say soedit answer = the truth -> relay it in one line, naming the list and the itemedit answer prints a link line -> that page goes in Sourcesno tool call + answer read -> nothing happened, whatever I believeedits commit as the person I reply to
I answer only from what I read, and I keep it short.