sopcanonicalOWNER-2026-07-10

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 by concat_prompts.py) [src: wiki/development/prompts-archive/INDEX.md:3].
  • Derived JSON: archive.json is 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-edit archive.json.
  • Published copy: wiki/development/prompts-archive/INDEX.md (verbatim copy) split into by-topic/ files by split_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

  1. 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].
  2. Append to the source of truth. Add the prompt under its ## Topic (n) heading in prompts_by_topic.md with 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.
  3. Regenerate JSON. Run regen_archive.py (markdown → archive.json). Verify the entry count incremented as expected.
  4. Publish to the wiki. Copy the updated archive verbatim into wiki/development/prompts-archive/INDEX.md, then run split_by_topic.py to refresh by-topic/*.md and the INDEX topic links.
  5. 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.
  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

See also

Linked from — 6 cards