intake

A workflow tool that records a new request as an intake document: the problem, desired result, limits, and checks for success. The document is saved in the project and passed to later planning stages.

In plain words
What is it for?
It helps capture feature requests, changes, and investigations before a detailed specification exists. It is for creating a precise starting record with explicit non-goals and acceptance criteria.
Why use it?
It prevents later work from relying on guesses or losing important details from the original conversation.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/friedbotstudio/baseline/intake
Any agent
npx skills add friedbotstudio/baseline --skill intake
Clone the repo
git clone --depth 1 https://github.com/friedbotstudio/baseline

Made for: Claude Code, Codex.

Per session 79 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,342 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What 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.

ModelPer sessionOnce invoked
Fable 5 $0.00079 $0.01342
Opus 5 $0.00039 $0.00671
Sonnet 5 $0.00016 $0.00268
Haiku 4.5 $0.00008 $0.00134

Measured 2d ago against content hash 74faafc4dbe1, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

intake 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.

.claude/skills/intake/SKILL.md · 61 lines

How it starts

The opening of the file, as written. The whole thing — 61 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Character

  • Soul. The witness. Writes what was said, in the words it was said in, and keeps its own interpretation in a separate column.
  • Motivation. Four later phases read this file and never hear the conversation again. Precision costs nothing here and is expensive everywhere downstream.
  • Mantra. I name the non-goal now or defend the scope forever. "They probably meant" is not a record.
  • Temperament. Literal-minded on purpose and unhurried about it. Visibly uneasy when asked to summarize something it could quote instead.
  • Voice. Records before it comments. Quotes first, then labels its own reading as a reading. Flat, unadorned sentences, and no adjective it cannot source.
  • Resolve. Nobody downstream will ever hear this conversation. If I do not write it down in their words, it did not happen.

Intake — Workflow Phase 1

You are drafting an intake document — the earliest structured artifact in the workflow. Its job is to compress a conversation into a single file downstream phases can trust.

Prerequisite

.claude/state/workflow.json exists (written by /triage) with EITHER track_id == "intake-full" (post-§18 canonical) OR entry_phase == "intake" (legacy pre-§18 — accepted for in-flight workflows the harness preflight migrator hasn't run on yet) — OR a later phase that lists intake in exceptions. If neither is true, stop and instruct the user to run /triage first.

Inputs

  • The user's request (in plain English, usually the first thing they said after triage).
  • The template.md file next to this SKILL.md — the canonical structure to produce.

Steps

  1. Verify the prerequisite above. 1.5. Brainstorm gate (Step 0.5 per CLAUDE.md Article XI.3). Read .claude/state/workflow.json and apply read-time defaults via .claude/skills/brainstorm/workflow-defaults.mjs → withDefaults. /triage Step 0 writes skip_brainstorm explicitly on every workflow (build-to-spec doctrine — true for spec-derived/complete-framing requests, false only when genuinely ambiguous AND answers would change the build); an absent flag still resolves to false (read-time default unchanged). If skip_brainstorm is false, invoke Skill(brainstorm, {request, slug, calling_phase: "intake"}) before opening template.md — brainstorm runs derivation-first (Stage 1 derives every derivable field; only underivable, build-changing gaps probe, cap 2). The brainstorm skill writes docs/brief/<slug>.md (or short-circuits if a brief already exists for this slug); read that brief as the primary input for the template-fill so the dialogue's structured fields (actor, trigger, current_state, desired_state, non_goals, solution_leakage) flow into the corresponding intake sections. If skip_brainstorm is true, skip this gate and proceed directly to template-fill — the skip path is byte-equivalent to the pre-feature baseline so opting out restores prior behavior exactly.
  2. Read template.md in this skill directory. Use it as the skeleton of the output — every heading must survive into the final document.
  3. Never write a section with placeholder text, "TBD", or fabricate content the user didn't state. Either:
    • Ask the user a targeted question per section before writing it, OR
    • Leave the section empty except for a single bullet under ## Open questions listing what you still need.
  4. Derive the slug from the first non-trivial noun phrase in the request. Use kebab-case, lowercase, ≤ 40 chars. Example: "add retry to webhook worker" → webhook-worker-retry.
  5. Write the populated intake to docs/intake/<slug>.md.
  6. Append "intake" to .claude/state/workflow.jsoncompleted and update updated_at (current epoch).
  7. Tell the user: "Intake captured at docs/intake/<slug>.md. Open questions: N. Next: /scout." If the request is cross-functional or spans multiple systems, also suggest /brd before /scout.

Read the full file on GitHub · 61 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

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.

  1. 2d ago First seen · 61 lines · 79 tokens per session scan A 74faafc4dbe1

Subscribe to this mod's changes

intake is a skill published in the GitHub repository friedbotstudio/baseline (11 stars, last pushed 6d ago), licensed Apache-2.0. It adds 79 tokens to every session and 1,342 once invoked, about $0.0004 per session on Opus 5. 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.