deep-plan
Deep planning: research subagents plus a 15-question interview for large or strategic PRDs.
Skill by indigoai-us
Chalk Labs
Need help deploying deep-plan?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
npx agentmarket install skill/indigoai-us-deep-plan
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: research
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/deep-plan
Tools it pre-approves 20
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Task,Read,Write,Edit,Grep,Glob,Bash(git:*),Bash(qmd:*),Bash(ls:*),Bash(date:*),Bash(stat:*),Bash(core/scripts/read-policy-frontmatter.sh:*),
Show 8 more
Bash(npx:*),Bash(bashcore/scripts/work-mesh-live-bind-trusted.sh:*),Bash,core/scripts/resolve-company.sh:*),Bash(.claude/skills/_shared/journal.sh:*),AskUserQuestion,core/scripts/read-policy-frontmatter.sh:*)
What's inside
- Skill name
deep-plan- Description
- Deep planning: research subagents plus a 15-question interview for large or strategic PRDs. For light planning use /prd.
- License
- MIT
- Allowed tools
- Task,, Read,, Write,, Edit,, Grep,, Glob,, Bash(git:*),, Bash(qmd:*),, Bash(ls:*),, Bash(date:*),, Bash(stat:*),, Bash(core/scripts/read-policy-frontmatter.sh:*),, Bash(npx:*),, Bash(bash, core/scripts/work-mesh-live-bind-trusted.sh:*),, Bash,, Bash(bash, core/scripts/resolve-company.sh:*),, Bash(.claude/skills/_shared/journal.sh:*),, AskUserQuestion,, Bash(bash, core/scripts/read-policy-frontmatter.sh:*)
- Instructions
- 923 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
- Instructions call the network
Agent Skills spec issues
- body: 923 lines (spec recommends under 500)
Files (2)
- SKILL.md
- openai.yaml · agents/
SKILL.md (first lines)
# Deep Plan — Research-First PRD Generation
Create execution-ready PRDs with full HQ context awareness, parallel research subagents, and a structured three-tier deep interview. Use this skill when the project is large, strategically important, touches unfamiliar code, or warrants the 10-15 minute upfront cost. For small ideas, tweaks, or fast captures, use the lightweight `/prd` skill instead.
**Important:** Do NOT implement. Just create the PRD.
## Work Mesh Live — trusted bind (do this first)
After Step 0 resolves `{co}` and before any other tool call that touches project work, bind the session per
`.claude/skills/_shared/work-mesh-live-bind.md` (US-011):
```bash
bash core/scripts/work-mesh-live-bind-trusted.sh \
--company "{co}" --project "{project}" --task "{task}"
```
Omit `--task` when unknown. This writes `workspace/sessions/<sid>/meta.yaml`
and reconciles with `observation.trustedContext` (no `--trusted` CLI flag).
## Step 0: Company Anchor (from user input)
Resolve the company with the shared resolver — never by hand, and never from the first word alone:
```bash
bash core/scripts/resolve-company.sh --prompt "{the user's full input}"
```
It returns `{"company":"<slug>","source":"prompt|session|device_default|none"}`: an explicit whole-token slug in the input wins, then the bound session company, then the enabled device default. A session company always wins over the default; disabled and `needsChoice` defaults resolve as `none`. If `source` is `none`, use the structured picker before creating project files.
**If `company` is non-empty:** Read `companies/manifest.yaml` for company metadata, then:
1. **Set `{co}`** = resolved slug for the entire flow. Strip it from the description only when it was the leading token
2. **Announce:** "Anchored on **{co}**"
3. **Bind the session** — run `bash core/scripts/work-mesh-live-bind-trusted.sh --company "{co}"` now, before any read under `companies/{co}/`. The scope guard blocks company paths until the session is bound to `{co}`.
4. **Load policies (frontmatter-only)** — Collect eligible files for the resolved company, except `example-policy.md`, `README.md`, and `_digest.md`; preserve their order and split the stable file order into consecutive chunks of at most 40 files. For each chunk, run `bash core/scripts/read-policy-frontmatter.sh {file1} {file2} ...` once with each path as a separate argument. Keep each call under 30 KB of output. The first output block belongs to the chunk’s first file argument; each later block belongs to the path named by its preceding `# --- policy-file: <path> ---` separator. Note `enforcement: hard` titles. For hard-enforcement policies only, additionally read the `## Rule` section with a targeted range. Policy digests remain retired; SessionStart injects matching policies via `inject-policy-on-trigger`. Apply hard rules as constraints throughout the PRD
5. **Scope qmd searches** — If company has `qmd_collections` in manifest, use `-c {collection}` for all `qmd` calls
6. **Pre-load repos** — Extract `{co}.repos[]` from manifest. Present as repo options in the Architecture tier repo question
7. **Scope workers** — Filter to company workers (`companies/{co}/workers/`) + public workers (`core/workers/public/`)
8. **Scope projects** — Only search `companies/{co}/projects/` for existing project collision check
**If `source` is `none`** — do not silently assume personal scope. Ask the user which company this belongs to, or whether it is personal/HQ work, before creating any project files. The full input text is the project description either way.
## Step 1: Get Project Description
If user provided input, use as starting point.
If empty, ask the user: "Describe what you want to build or accomplish." Wait for response.
## Step 2: Scan HQ Context
Before asking questions, explore HQ. Resolve `mode` from Step 0 + input:
- **company mode** — a company slug was anchored in Step 0
- **repo mode** — no company anchor but a target repo is mentioned or resolvable from input
- **personal/HQ mode** — neither of the above (personal projects, HQ infrastructure work)
If `{co}` is anchored, scope all searches to that company.
**Companies & Context (only if `mode in (company, repo)`):**
- Read `agents-companies.md` (roles, priorities, three-tier roster) — needed to route cross-company PRDs
- Read `companies/manifest.yaml` (companies already listed there — never Glob for company discovery)
- **Skip both if already anchored in Step 0**: Step 0 already loaded manifest and matched the company. Re-reading is pure waste
- **Skip entirely for personal/HQ mode**: no company routing needed, no repo to map
**Workers (only if `mode in (company, repo)` AND the description plausibly needs a worker — otherwise skip):**
- Read `core/workers/registry.yaml` (workers already indexed there — never Glob for worker discovery). Skip if the description is clearly code/infra work not matching a worker skill
- If anchored: filter to company workers (`companies/{co}/workers/`) + public workers (`core/workers/public/`)
- **Skip entirely for personal/HQ mode**
**Existing Projects:**
- If anchored: `qmd search "prd.json" --json -n 20 -c {co}` (scoped) or search `companies/{co}/projects/` directly
- If not anchored: `qmd search "prd.json" --json -n 20` — existing projects across all companies and personal
**Knowledge (use single qmd hybrid query, not Grep, not vsearch+search pair):**
- If anchored + company has `qmd_collections`: `qmd query "<description keywords>" -c {collection} --json -n 10`
- If not anchored: `qmd query "<description keywords>" --json -n 10` — hybrid BM25 + vector + re-ranking for related knowledge, prior work, workers
**Company Policies (anchored only):**
- Already loaded in Step 0 (frontmatter-only). Do NOT re-read here. Note constraints from that scan
**Repo Policies (if repo resolved):**
- If target repo identified, list files in `{repoPath}/.claude/policies/` (if the directory exists; skip `README.md` and `_digest.md`), preserve their order, and split the stable file order into consecutive chunks of at most 40 files. For each chunk, run `bash core/scripts/read-policy-frontmatter.sh {file1} {file2} ...` once with each path as a separate argument. Keep each call under 30 KB of output. The first output block belongs to the chunk’s first file argument; each later block belongs to the path named by its preceding `# --- policy-file: <path> ---` separator. Do not prefer a digest file (retired). For hard-enforcement policies, additionally read the `## Rule` section
**Target Repo (if repo specified or discovered):**
- If anchored: company repos already pre-loaded from manifest. Present as options
- If target repo has a qmd collection (e.g. `my-app`): `qmd query "<description keywords>" -c {collection} --json -n 10` — hybrid search for related code, patterns, existing implementations
- Present: "Found related code: {list of relevant files}"
Present:
```
Scanned HQ:
- Mode: {company | repo | personal/HQ}
- Company: {co} (anchored) | TBD | n/a
- Workers: {relevant list or "skipped"}
- Existing projects: {list or "none matching"}
- Relevant knowledge: {if any}
- Policies: {count loaded, or "none"}
- Category: [company-specific | cross-company | personal | HQ infrastructure]
```
## Step 2.5: Infrastructure Pre-Check
Before generating the PRD, verify infrastructure exists for the target company/repo:
1. **Company**: If project targets a company, read `companies/manifest.yaml`. If company has `knowledge: null`, flag that it has no knowledge directory. If the user wants one, create `companies/{co}/knowledge/` as a plain real directory (never initialize Git or symlink it), add a README if useful, and update the manifest `knowledge` field with that directory path.
2. **Repo**: If `repoPath` specified and doesn't exist locally, flag: "Repo not found at {path}. Clone it or create new?" Add to `manifest.yaml` if missing.
3. **qmd collection**: If company has `qmd_collections: []` in manifest, flag and offer to create collection.
Fix any gaps before proceeding.
## Step 3: Get + Validate Project Name
Ask the user for project slug (or infer from description). Then:
1. If `{co}` already set by Step 0: use it directly (skip company detection)
If NOT set: determine company from context (infer from description, repo, or ask the user)
2. Check if `companies/{co}/projects/{name}/` exists (also check `personal/projects/{name}/` for personal/HQ)
- If exists: ask the user "Project exists. Continue editing or choose different name?"From indigoai-us/hq-pack-core-skills, MIT.
More from indigoai-us/hq-pack-core-skills
- 0.570score
daily-brief
indigoai-us
Build the user's Daily Brief across personal work and every permitted company.
SkillAFreshness: AClaude Code +9 - 0.565score
decision-desk
indigoai-us
The owner's decision desk for one /super-conductor link.
SkillAFreshness: AClaude Code +9 - 0.565score
architect
indigoai-us
Find shallow modules and propose deepening refactors, ranked with file refs; never edits code.
SkillAFreshness: AClaude Code +9 - 0.565score
conduct-join
indigoai-us
Join this already-running session to a /conduct session as one of its children, so the conductor can send it instructions and receive its reports.
SkillAFreshness: AClaude Code +9 - 0.561score
conduct
indigoai-us
Orchestrator mode: coordinate only; small tasks go to subagents, worker areas to standing hq lanes.
SkillAFreshness: AClaude Code +9 - 0.561score
capacity
indigoai-us
Show usage, limits and reset times for every signed-in AI account (Claude, Codex, Grok) as a card in chat, or a table in a terminal.
SkillAFreshness: AClaude Code +9 - 0.561score
codebase-design
indigoai-us
Vocabulary for designing deep modules and clean interfaces.
SkillAFreshness: AClaude Code +9 - 0.558score
create-skill
indigoai-us
Create a shared company skill in HQ with a durable identity and ACL governance.
SkillAFreshness: AClaude Code +9 - 0.558score
accept
indigoai-us
Accept HQ membership invites from a magic link or raw token.
SkillAFreshness: AClaude Code +9 - 0.558score
commit-main
indigoai-us
Commit every dirty file in the current repo, only when on main.
SkillAFreshness: AClaude Code +9 - 0.558score
decision-queue
indigoai-us
Resolve pending user decisions one at a time, one picker per item.
SkillAFreshness: AClaude Code +9 - 0.558score
clean-worktree
indigoai-us
Merge an HQ worktree branch back into local main, then remove the worktree and branch.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 23, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from indigoai-us
- 0.570score
daily-brief
indigoai-us
Build the user's Daily Brief across personal work and every permitted company.
SkillAFreshness: AClaude Code +9 - 0.565score
conduct-join
indigoai-us
Join this already-running session to a /conduct session as one of its children, so the conductor can send it instructions and receive its reports.
SkillAFreshness: AClaude Code +9 - 0.565score
architect
indigoai-us
Find shallow modules and propose deepening refactors, ranked with file refs; never edits code.
SkillAFreshness: AClaude Code +9 - 0.565score
decision-desk
indigoai-us
The owner's decision desk for one /super-conductor link.
SkillAFreshness: AClaude Code +9 - 0.561score
codebase-design
indigoai-us
Vocabulary for designing deep modules and clean interfaces.
SkillAFreshness: AClaude Code +9 - 0.561score
capacity
indigoai-us
Show usage, limits and reset times for every signed-in AI account (Claude, Codex, Grok) as a card in chat, or a table in a terminal.
SkillAFreshness: AClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get deep-plan running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
deep-plan skill. Agent Mart. https://agentmart.dev/skills/indigoai-us-deep-plan (last updated 2026-10-24)