Skip to content
🎓 Find your path Subscribe

PCA: The Personal Context Artifacts

Tier 3 · Real Builds 7 min read

Before this, read:


There is a class of agent failure that has nothing to do with tools or retrieval. The agent has all the information it needs. It has access to the right files and the right APIs. And it still produces output that is wrong for the person it serves — the wrong tone in a draft email, a recommendation that contradicts how JD thinks about money, an action taken without the approval that JD would have insisted on.

This failure comes from not knowing the person. The Personal Context Artifacts are the fix.

The PCAs are four markdown files that any agent can load before acting on JD’s behalf:

FileWhat it is
jd-wiki.mdWho JD is — identity, background, family, current projects, 8 domains, top ~20 people
jd-mental-models.mdHow he decides — trade-off priors on money, time, family, work, risk, energy
jd-voice.mdHow he writes — 10 examples, 10 anti-examples, voice rules (em-dash now banned), the tone
jd-protocols.mdHard rules that do not bend — time (family after 6pm is sacred), money ($500 cooldown, >$5K needs Sam conversation), comms, engineering

These files are loaded explicitly on every session restart per CLAUDE.md’s “Session Awareness” section. They are not optional. The executive_assistant persona doc at agents/executive_assistant/persona.md forks from them.

Each file serves a different agent use case:

jd-wiki.md is the “who is JD” reference. Loaded by the CEO orchestrator, the executive assistant, the chief of staff, and any agent that routes information to JD or decides which domain a task belongs to. It’s broad and factual.

jd-mental-models.md is the decision engine. The framing in it is explicit: “I prioritize FAMILY over WORK when the cost is reversible.” “I prioritize 80%-NOW over 100%-LATER for anything reversible.” “I prioritize EXISTING TOOLING over BUILDING NEW.” An agent recommending a course of action checks these models first. If the recommendation conflicts with a stated prior, the agent surfaces that conflict rather than hiding it.

jd-voice.md is narrow and specific. It exists only for agents that write as JD — draft emails, LinkedIn posts, newsletter content, Telegram replies that come from JD’s name. The ten example passages show the rhythm and vocabulary. The ten anti-examples name the patterns to avoid. The em-dash was explicitly banned (logged 2026-06-08 after JD’s directive) — that single edit changed the output of every draft-as-JD pipeline downstream.

jd-protocols.md is the hard rules file. Short on purpose. Anything that belongs here is a P0 error if violated, not a soft preference. Money rules, family time rules, Sunday Sabbath rule (no commercial transactions, no work email), communication rules, engineering rules. The protocols file stays short; if it gets long, the extras are soft preferences that belong in jd-mental-models.md instead.

The PCAs were shipped on 2026-05-22 (CHANGELOG: “Phase 0 + Phase 1 shipped — 4 PCA file skeletons”). They were part of the Executive Assistant v2 build — the EA needed something more structured than “read CLAUDE.md” to generate JD-calibrated output.

The initial content was populated by the agent from existing sources: CLAUDE.md, SOUL.md, the ORGANIZATION-CHARTER, JD’s LinkedIn profile, public resume context. The PCA files were deliberately scaffolded with [FILL: ...] markers for details only JD knows — age, exact income mix, health targets, kid details. Those are for JD to fill in; the agent pre-filled what it could from public-record sources.

The design intent: PCAs are living documents. JD updates them after major life events (job change, kid milestone, project pivot) and quarterly otherwise. The [FILL: ...] markers are homework, not gaps to fabricate around.

At session start (mandatory):

# From ~/agent-system/CLAUDE.md "When you start a new session"
# Read all four PCA files — they are required reading for any session
# that drafts as JD, makes decisions on JD's behalf, or surfaces information to JD.

At draft-as-JD time (selective):

# agent loading jd-voice.md before generating a LinkedIn draft
with open("~/clawd/state/jd-voice.md") as f:
voice_context = f.read()
# inject into system prompt before calling the LLM

At recommendation time (mental-models check):

# Before recommending a $2,000 tool purchase
# Check jd-protocols.md: $500 cooldown rule, $5K = Sam conversation
# Surface the rule in the recommendation, don't bury it

The executive assistant is the primary consumer. Before drafting a reply to Sam’s email, before suggesting a calendar reshuffle, before deciding whether an incoming request warrants a Telegram ping at 7pm, the EA reads the relevant PCA file. This is not boilerplate — it changes the output. An agent that knows “family time after 6pm MT is sacred” will hold a non-urgent notification until morning. An agent that skips the protocols file will ping JD at 7:45pm and wonder why that’s a problem.

The PCAs matter most where agent autonomy is highest. When the EA is deciding whether to auto-draft a reply, auto-schedule a follow-up, or escalate to JD for a decision, that decision is made against the autonomy ladder — a framework that lives in agents/executive_assistant/persona.md and references the PCAs directly.

The ladder has three levels:

  1. Auto-act — safe, reversible, within hard rules. The EA does it without asking.
  2. Propose-then-ask — meaningful enough to require JD’s approval. One message, one ask.
  3. Surface and wait — JD’s call. The EA surfaces the decision-shaped artifact and parks it.

The PCAs define the boundaries. Without jd-protocols.md, the agent can’t know which things require JD approval. Without jd-mental-models.md, it can’t make the 80%-now vs. 100%-later call on its own. The files are the shared contract between JD and every agent that acts on his behalf.

The PCAs are static files that JD updates manually. This means they drift. If JD’s approach to risk changes after a major financial event, jd-mental-models.md won’t reflect it until he edits the file. If a new hard rule emerges (like the em-dash ban), it needs to be written in.

The v3 mnemosyne roadmap includes a “bi-temporal fact model” that would let the system reason about when JD’s stated priors changed over time. That’s a future capability. For now, the PCAs are a snapshot, not a live document — and they’re significantly better than having no snapshot at all.


Next: Nerve Center v5: the web cockpit — the Next.js dashboard that turns the agent system into something you can watch and steer.