SOP-005 — Owner Prompt Archival · sop-005-prompt-archival
Owner directive (2026-07-10), canonical. "Organize this prompt, save its as with the other…" [src: wiki/development/prompts-archive/by-topic/knowledge-management-and-concept-modeling.md:451] — earlier: "I want every single prompt I wrote to claude in all projects inside a json with date and topic. (…) I want the purest form of prompt" [src: :434-444].
Content
Owner prompts are the fourth level of the authority chain (sop-002-conflict-resolution): an archived prompt is citable as OWNER-YYYY-MM-DD with path:line. This SOP keeps the archive verbatim, complete, and regenerable.
Canonical stores and direction of truth
- Source of truth:
~/Documents/CodeLoop/prompt-archive/prompts_by_topic.md— the verbatim per-topic markdown snapshot (produced byconcat_prompts.py) [src: wiki/development/prompts-archive/INDEX.md:3]. - Derived JSON:
archive.jsonis regenerated from the markdown, not the reverse.regen_archive.py"regenerate[s] archive.json from prompts_by_topic.md. The working-dir archive.json was wiped between sessions. The verbatim 335-prompt snapshot survives in prompts_by_topic.md" [src: Documents/CodeLoop/prompt-archive/regen_archive.py:3-9]. The direction is markdown → json; never hand-editarchive.json. - Published copy:
wiki/development/prompts-archive/INDEX.md(verbatim copy) split intoby-topic/files bysplit_by_topic.py, which is "read-only w.r.t. the source archive" [src: wiki/development/prompts-archive/split_by_topic.py:3-7].
Procedure
- Capture verbatim. The prompt is stored exactly as written — spelling, punctuation, line breaks. "336 prompts across 14 topics, nothing edited" [src: wiki/development/prompts-archive/INDEX.md:3]. The single redaction rule: live credentials are replaced with a
[REDACTED — …]marker; nothing else is ever altered [src: wiki/development/prompts-archive/INDEX.md:6]. - Append to the source of truth. Add the prompt under its
## Topic (n)heading inprompts_by_topic.mdwith the meta line[YYYY-MM-DD · Source · subtopic](sources: Claude Code, Opus session, Claude web, Gemini chat, Voice memo, PDF session [src: Documents/CodeLoop/prompt-archive/regen_archive.py:21-25]). Bump the topic count. - Regenerate JSON. Run
regen_archive.py(markdown →archive.json). Verify the entry count incremented as expected. - Publish to the wiki. Copy the updated archive verbatim into
wiki/development/prompts-archive/INDEX.md, then runsplit_by_topic.pyto refreshby-topic/*.mdand the INDEX topic links. - Cite. From this point the prompt is a citable authority:
OWNER-YYYY-MM-DD+[src: wiki/development/prompts-archive/by-topic/<topic>.md:line]. Library cards ruled by it are upgraded per sop-002-conflict-resolution step 6. - Commit the source archive and the wiki copy in the same loop [src: …/knowledge-management-and-concept-modeling.md:586].
TCC note (macOS harvesting)
When harvesting prompts from application transcript stores (Claude/other app containers under ~/Library/…), macOS TCC (Transparency, Consent & Control) can silently block reads: an unpermitted process gets empty listings rather than errors. Therefore: (a) run harvests only from a terminal the owner has deliberately granted Full Disk Access, with the owner's consent; (b) never work around TCC; (c) verify harvest counts against expected session counts — a suspiciously low count is treated as a blocked read, not as "no prompts", and is raised as a queue item (sop-003-run-dispatch).
Composition
- uses: sop-003-run-dispatch (queue items for blocked harvests) · sop-002-conflict-resolution (how archived prompts act as authorities)
- used-by: every card citing
OWNER-YYYY-MM-DD· sop-004-library-authoring (citation targets) · squad-schematic (governance owner)
See also
- bp-002-knowledge-library — the resolved layer the archive feeds
- src-hosweb-routes · src-droplet-index — sibling source-capture cards