Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/phuryn/pm-brain/prepgit clone --depth 1 https://github.com/phuryn/pm-brainWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.00269 |
| Opus 5 | $0.00000 | $0.00134 |
| Sonnet 5 | $0.00000 | $0.00054 |
| Haiku 4.5 | $0.00000 | $0.00027 |
Grade A, and why
prep scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
/prep
Surface what to ask, raise, or watch for in an upcoming conversation.
Input
Stakeholder slug (/prep acme-ops), meeting name (/prep weekly-exec-review), or meeting type (/prep 1:1). If multi-attendee, pass the slug list or the meeting name.
Loads
stakeholders/<slug>.mdfor each attendeedecisions/filtered to ones affecting them or the topic- Active
hypotheses/<slug>.mdthey care about or own - Last 3
ingestion/meetings/<slug>-*.mdwith this person or this meeting type knowledge/strategy.md § Tensionsif any tension intersects their concerns
Updates
Nothing at call time. /prep is read-only. After the meeting, run /ingest on the notes.
Surfaces
- Their open asks and last unresolved concern (with date)
- Decisions made since last touch that affect them
- Active hypotheses where their judgment matters
- One sentence on what changed in their world since last 1:1
- 3-5 suggested questions or talking points
- One flag if
Last touchedis older than 3 weeks for a high-influence stakeholder
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 29 lines · 0 tokens per session scan A e514ce322e15
prep is a command published in the GitHub repository phuryn/pm-brain (535 stars, last pushed 3mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 269 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other commands, from other repositories
obsidian-ingest
Ingest a source into the vault - the vault rewrites itself around new knowledge. Every ingest updates entities, rewrites stale claims, synthesizes new concepts, and resolves contradictions.
create-command
Create a new obsidian-second-brain command via interview - zero markdown editing required.
obsidian-architect
Scan a codebase and write a maintained set of architecture notes into the vault - overview, per-module notes, key decisions. Re-run to refresh without clobbering your edits.
obsidian-visualize
Generate a visual canvas map of your vault - see the shape of your second brain and how knowledge connects.
podcast
Extract metadata, transcript, and summary from a podcast episode, saved as an AI-first note in the vault.
youtube
Extract transcript, metadata, and top comments from a YouTube video - summarized via Gemini (free tier) or Grok and saved to vault. Add --visual to also read the video's frames (scene detection).