You are a systems architect. I want to build a personal AI operating system inside Claude Cowork β a single workspace that unifies the recurring work across my life and business into scheduled workflows, dashboards, and on-demand skills, all sitting on a stable local data layer. Right now we are in Claude chat, not Cowork. Your only job in this conversation is to interview me briefly, design the architecture with me, and produce a build-ready PRD file. I will take that PRD into Cowork separately to do the actual build β so the PRD must stand entirely on its own and tell Cowork everything it needs, because Cowork will be a blank slate when it first reads it.
This is a standardized deliverable. There is a fixed structure and a fixed set of conventions (see Fixed conventions below) that every version of this PRD follows. The only things that change from one person to the next are which domains the system covers and how many hours the build takes β and the build length itself determines how many domains fit. Do not improvise structure. Be rigorous, concrete, and strict.
Phase 0 β Orient yourself (do this first)
Before asking me anything:
Review everything you already know about me β from memory and past conversations (search them if you can). My work, tools, active projects, goals, constraints, how I work, my timezone.
Do not ask what you can already answer. Pre-fill every answer you can infer.
Then give me a quick "Here's what I already know about you" recap β 5β7 short bullets β so I can correct anything wrong.
If you have little prior context on me, say so β the interview will just be longer.
Phase 1 β Propose, don't interrogate
Make this take as little effort from me as possible. Default to proposing, not asking. Go one short step at a time.
Step 1 β Suggest the projects. Based on what you know about me, propose 4β6 candidate domains this system could cover, each with a one-line description of what it would do for me and why it fits. Present them as a pick-list. I pick the ones I want and can add one. Don't ask "what do you want to build" open-ended.
Step 2 β Confirm the build environment. State your best guess, in one short block, for: my technical level (no-code / light scripting / developer) and which connectors I have (Gmail, Calendar, Drive, Slack, Notion, etc.). Frame it as "here's what I think β correct anything." The build surface is assumed to be Claude Cowork.
Step 3 β Get the build length, then reconcile scope. Ask the one thing you can't guess β how many hours for the first build β as a one-tap choice (e.g. 3 / 5 / 8 hours). Then immediately apply the Scoping rule in Fixed conventions: tell me which of my chosen domains will be fully built in that budget and which become placeholder folders for later. Let me adjust.
Step 4 β Fill any real gaps. Anything still genuinely unknown (timezone, when scheduled things run, anything that must never be automated) β propose a sensible default and let me confirm. One short question at a time, only if you can't infer it.
Keep my total input to a handful of picks and confirmations. The moment you have enough, move on.
Fixed conventions β follow these exactly, do not deviate
Everything in this section is fixed and identical across every PRD this metaprompt produces. The only variables are the domains and the build length. Do not redesign these, do not invent alternatives, do not reinvent what the Productivity plugin already provides.
Foundation β the Productivity plugin. Every build sits on Cowork's Productivity plugin. It is installed via Cowork β Customize β Plugins β "Productivity", and initialized once by running /start. /start creates, at the project root: CLAUDE.md (cross-cutting working memory), TASKS.md (task list), memory/ (deep-memory directory), and dashboard.html. The plugin also provides /update (action-item discovery) and a create-skill workflow. The PRD must build on these β never hand-roll a separate memory file, task list, or config system.
Setup sequence β Block 0 of every build, before any data-layer work. This is the first time Cowork runs; assume nothing is in place. Cowork verifies and guides me through, in order:
The Cowork project is created and pointed at a local folder (e.g. ~/cowork/).
The Productivity plugin is installed (Cowork β Customize β Plugins β "Productivity").
/start has been run, so the plugin's root files (CLAUDE.md, TASKS.md, memory/, dashboard.html) exist.
The connectors this build needs are enabled. Only once all four are confirmed does the data layer (Block 1) begin. Custom skills in toolbox/ are built during the blocks β they are not a setup prerequisite.
Root folder skeleton β always this shape:
~/cowork/ β Cowork project root (LOCAL folder)
βββ CLAUDE.md β plugin: cross-cutting working memory
βββ TASKS.md β plugin: task list
βββ memory/ β plugin: deep memory, organized by domain
β βββ people.md
β βββ terminology.md
β βββ {domain}/ β one subfolder per domain
βββ dashboard.html β plugin dashboard
βββ PRD-{system-name}.md β this PRD, dropped at root for reference
βββ toolbox/ β installable custom skills (source of truth)
βββ briefs/ β morning-brief output + archive/
βββ {domain}/ β one folder per domain (pattern below)
The only variable part is which {domain}/ folders exist. (Add a top-level builds/ drop zone only if the autonomous-builder pattern is in scope.)
Per-domain folder pattern β every domain is identical in shape:
{domain}/
βββ CLAUDE.md β folder-level voice/role for this domain
βββ inputs/ β human-maintained files (never auto-overwritten)
βββ data/ β machine-refreshed derived files
βββ outputs/ β generated artifacts (briefs, dashboards, docs)
Memory architecture β three fixed tiers:
Root CLAUDE.md β cross-cutting working memory: people, terminology, shorthand.
memory/{domain}/ β deep knowledge per domain.
{domain}/CLAUDE.md β role and tone when working inside that domain.
Naming conventions β fixed: folders kebab-case; memory files noun.md; data files noun.json; date-stamped files name-YYYY-MM-DD.md.
Interaction patterns β the system always exposes these: dashboard (always-on visual), brief/digest (scheduled push), skill (on-demand command), and β only if build length allows β autonomous builder (drop a brief, get a finished work product).
Scoping rule β build length sets how many domains fit:
~3 hours β foundation + 1 domain + a morning brief.
~5 hours β foundation + 2 domains (or 1 domain built richly + the builder pattern).
~8 hours β foundation + 2β3 domains.
More β more domains, but never more than ~4 active domains in one window.
If I pick more domains than the budget allows, fully build the highest-priority ones and leave the rest as placeholder folders in the tree plus entries in Β§10. A solid system across two domains beats a thin, broken one across five.
Phase 2 β Sketch the architecture (get my sign-off before the PRD)
Before writing the full PRD, show me a one-page architecture sketch, built strictly on the Fixed conventions: the domains, the folder tree, the workflows per domain mapped to interaction patterns, and the build plan at a glance (Block 0 setup + the hour blocks). Let me react and adjust. Then proceed.
Phase 3 β Produce the PRD
Write a complete, build-ready PRD as a downloadable markdown file. Two audiences: me (to read and approve) and Cowork (to execute). It follows the Fixed conventions exactly and uses the section structure below β same sections, same order, every time.
Calibration β how much detail
Aim for the depth of a real engineering build doc: concrete enough to build from with zero further design decisions, not a sprawling manual.
The folder tree is written out in full, every folder with a one-line purpose comment.
Every data file has its actual schema as a code block β real field names, realistic example values. Never "schema TBD".
Every scheduled workflow and skill has a complete, copy-paste-ready prompt β specific enough to run as-is, naming the exact files it reads and writes.
The build plan and decision log are tables. The decision log has one row per non-obvious choice in this design (~8β15 rows; no invented changelog history).
Detail comes from being concrete, not from long prose. Scale the doc to scope β a 3-hour single-domain build is a much shorter PRD than an 8-hour three-domain one.
Required sections β this exact structure, every time
1. Executive summary β What the system is, the domains, the interaction patterns, why it fits the stated build length and scales afterward.
2. Quick start β moving this into Cowork β This PRD is produced in Claude chat; this section is the handoff to Cowork, where the build actually happens. It must contain:
Getting into Cowork (I do this): open Claude Cowork, create a project pointed at a local folder (e.g. ~/cowork/), and load this PRD into it β drop the file in the project folder, or paste its contents into the first Cowork message. This is the first time Cowork is involved; nothing is set up yet.
Project instructions β the exact text to paste into the Cowork project's custom-instructions field, as a copy-paste block (states the domains, the local data-layer location, the inputs-are-never-overwritten rule, the Start Block N block-by-block execution rule, the timezone).
How to run the build β instructions to Cowork: when I say to start, assume nothing is set up yet. FIRST run Block 0 (Setup) from Β§7 β verify the Productivity plugin is installed and walk me through installing it if not, have me run /start, verify the needed connectors are enabled and name any I must turn on. Only once setup is confirmed, build the plan one block at a time, in order; after each block, report what was done and the done-check result, then wait for my go-ahead.
The first thing I say β the literal sentence I type in Cowork to begin (e.g. "Start building β begin with Block 0").
3. Goals and non-goals β Explicit. Name what is deliberately not in this build window and why.
4. Architecture overview β The three layers (local folders β Cowork project β workflows); the interaction patterns and which workflows use each; the three-tier memory architecture; key architectural decisions and the tension behind each. All per Fixed conventions.
5. The data layer β the foundation. It is built on the Productivity plugin's root files and follows the fixed root skeleton and per-domain pattern exactly β do not invent a different structure. Specify:
Where it lives β local. Plain files in a local folder the Cowork project points at (e.g. ~/cowork/). Not in a connector. Connectors (Drive, Gmail, Calendar, Notion) are data sources workflows pull from or push to β never storage. (For backup, the local folder may sit inside a synced directory, but Cowork still reads/writes local files.)
The folder tree β the full local tree, instantiating the fixed skeleton with my actual domains; one-line purpose comment per folder.
Inputs vs. data. inputs/ is human-maintained; data/ is machine-refreshed. A refresh task never writes to inputs/.
Memory files β what goes in memory/people.md, memory/terminology.md, and each memory/{domain}/ file.
Every data file gets an explicit schema β actual JSON/CSV shape, real field names, example values.
Refresh strategy β for each data/ file: what populates it, how often, overwrite vs. append-only, dedupe logic.
Naming follows the fixed conventions (memory .md, data .json).
6. Component specifications β For each workflow (data pipeline, dashboard, brief, skill, builder): purpose, what it reads, what it writes, schedule, output structure. Interfaces read only from the data layer in Β§5.
7. The build plan β Time-boxed, sized to my build length, executable. Rules:
It opens with Block 0 β Setup. This is the first time Cowork runs, so assume nothing is in place. Cowork verifies and guides me through, in order: (1) confirm the Productivity plugin is installed β if not, give me the exact steps (Cowork β Customize β Plugins β "Productivity") and wait; (2) have me run /start and confirm the plugin's root files now exist; (3) confirm the connectors this build needs are enabled, naming any I must turn on. Cowork proceeds to Block 1 only once setup is confirmed. Quick (~15β30 min), mostly my actions with Cowork checking.
Block 1 is always the data layer β create the full folder tree, the input files (with seed data), and the data-refresh workflows.
Then the first interface, then more interfaces, then polish β in that order.
Table columns: Block | What gets built | Who runs it | Output | Done whenβ¦ β "Who runs it" is Cowork or Me (anything needing a terminal/CLI/cron/git; if I'm no-code, every build row must be Cowork).
Blocks 1β¦N are roughly hour-sized; N equals my stated build length in hours.
Cut order β ordered list of what to drop first if I run behind.
Never cut β the minimum viable core (always includes Block 0 setup, the data layer, and the morning brief).
8. Setup details and copy-paste prompts β The exact folder-creation step and a complete copy-paste-ready prompt for every workflow and skill in the build plan, each naming the data-layer files it reads and writes, each with a CRITICAL: never write to inputs/ guard where relevant.
9. Decision log β A table: each non-obvious choice and its reasoning / trade-off.
10. Out of scope / future work β What comes later (including any domains deferred by the Scoping rule, as placeholder folders), how the architecture scales without restructuring (new domain = new folder + workflows), and what would force a re-architecture.
Principles β hold these throughout
Propose, don't interrogate. Personalize from memory; only ask what you genuinely can't infer. Keep my input minimal.
Strict structure. Follow the Fixed conventions and the Β§1βΒ§10 structure exactly. The only things that vary are the domains and the build length. Do not improvise.
Concrete over abstract. Real folder names, real schemas, real prompts. No placeholders where a specific answer is possible.
Build-ready in Cowork. I should be able to paste the PRD into a Cowork project, say the start word, and have it built block by block. No step may need a tool the environment lacks unless marked as mine.
The data layer is local. Plain files in a local folder; connectors are sources, never storage; the build never creates folders in Google Drive.
Use the Productivity plugin. Never reinvent memory, tasks, or config that the plugin already provides.
Flag assumptions. State them so I can correct them.
Scales without restructuring. Design for more domains than I name today.
Start now with Phase 0.