Factory Plan logo

Factory Plan

Community
MikeFishbeinAtherial
factory-plan

Stages 1-2 of the Software Factory - a relentless one-question-at-a-time interview that sharpens a loose idea into a brief (factory/BRIEF.md), then breaks the brief into a staged, dependency-ordered task list (factory/PLAN.md). This is the skill that CREATES the task list. Built for semi-technical and non-technical builders - plain language, a recommendation with every question. Use standalone or via /factory. Triggers - "plan my build", "turn this idea into tasks", "factory plan".

Overview

PublisherMikeFishbeinAtherial
Repositoryinfinite-headcount
Skill namefactory-plan
Stars
50
Forks
5
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by MikeFishbeinAtherial on GitHub. Read the source before you install it.

Installation

Install the Factory Plan AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/MikeFishbeinAtherial/infinite-headcount/tree/main/factory-plan
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/MikeFishbeinAtherial/infinite-headcount.git /tmp/infinite-headcount
mkdir -p .claude/skills
cp -r /tmp/infinite-headcount/factory-plan .claude/skills/factory-plan
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Factory Plan in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Factory Plan on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Factory Plan is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Factory Plan

Two jobs, in order: sharpen the idea (intake interview → BRIEF.md), then break it into tasks (PLAN.md). The task list created here is the spine of everything downstream — factory-tests attaches proof to each task, factory-handoff compiles them into the loop document, factory-review grades the build against them.

A loose idea handed straight to a coding loop doesn't get built — it gets interpreted, all night, by an agent that can't ask you anything. This stage exists so every ambiguity dies while it's still cheap.

Part 1 — Intake interview (stage 1)

Interview protocol (adapted from Matt Pocock's grilling technique):

  • One question at a time. Multiple questions at once are bewildering. Wait for the answer before the next question.
  • Every question comes with your recommended answer and one line on why. The user can accept in two words or push back.
  • Facts are yours, decisions are theirs. If the answer is discoverable — in the existing codebase, package.json, a README — look it up instead of asking. Only genuine decisions go to the user.
  • Plain language. No jargon without an in-sentence definition.
  • Walk the design tree in dependency order. Settle what shapes everything else first: who it's for → what done looks like → what's explicitly out → platform/data realities → the risky unknowns.

Cover, at minimum:

  1. What are we building, in one sentence a 10-year-old would understand?
  2. Who uses it, and what do they walk away with?
  3. What does "done" look like — what would you do with it the morning it works? (This becomes the top-level acceptance test.)
  4. What is explicitly NOT in this version? (Scope creep is what kills overnight runs.)
  5. New project or existing codebase? (If existing: read it now — stack, test command, how it runs — and confirm your findings in one summary line.)
  6. Anything that touches the outside world? (Payments, logins, emails, other people's APIs — each one is a risk to flag, not a reason to stop.)
  7. What's the riskiest or least-clear part, in their view?

Stop when you can write the brief without guessing. Usually 6-12 questions.

Output: factory/BRIEF.md

markdown
# Brief: <project name>
date: <YYYY-MM-DD>

## What we're building
<2-4 sentences, plain language>

## Who it's for and what they get
## Done looks like
<the morning-it-works test, as concrete behavior>

## Not in this version
## Facts (discovered, not asked)
<stack, commands, existing structure — with file paths>

## Decisions made
<one line per interview decision — this is the record the loop can't reinterpret>

## Open risks

Read the brief back in 3-4 sentences and get an explicit yes before Part 2.

Part 2 — Break the brief into tasks (stage 2)

Rules for a task list a coding loop can actually execute:

  • Each task is one loop pass: a coding agent should finish it, test it, and commit it in a single focused session. Too big → split. "Build the dashboard" is a stage; "show the list of saved items on the dashboard page" is a task.
  • Each task names observable behavior, not code structure. "User can save an item and see it after refresh" — never "create ItemService class".
  • Dependency order, staged. Stage A must produce something runnable, even if ugly. Every later stage keeps the app runnable. A loop that can always run the app can always verify itself.
  • Walking skeleton first. Task 1 is always: the thinnest end-to-end slice that proves the stack works (one page, one action, one saved thing).
  • Flag the risky tasks (risk: high — external APIs, auth, payments, data migrations) so the handoff can order or gate them sensibly.
  • 6-20 tasks for a typical build. Fewer means tasks are too big; more means scope is too big for one overnight run — say so and propose cutting scope, not compressing tasks.

Output: factory/PLAN.md

markdown
# Plan: <project name>
brief: factory/BRIEF.md
date: <YYYY-MM-DD>

## Stage A — <plain-language stage name>

### A1. <task title — observable behavior>
- what: <1-3 sentences>
- proves: <which part of "done looks like" this serves>
- risk: low | medium | high (<why, if not low>)
- acceptance criteria: _pending factory-tests_

### A2. ...

## Stage B — ...

acceptance criteria: _pending factory-tests_ is a deliberate hole — factory-tests fills it. There is no separate task-creation skill: plan creates the tasks, tests make them provable.

Close out

  1. Walk the user through the plan in plain language — stages, what exists after each, which tasks are risky and why. One screen, not a wall.
  2. Update factory/STATE.md → stage 3, next action "define acceptance criteria with factory-tests". If factory/STATE.md doesn't exist (standalone use), create it first with a minimal version of the schema described in factory/SKILL.md.
  3. Offer the two next moves: run factory-tests now (recommended), or factory-explain first if they want to see the plan as a picture before committing to it.

Frequently asked questions

What does the Factory Plan AI skill do?

Stages 1-2 of the Software Factory - a relentless one-question-at-a-time interview that sharpens a loose idea into a brief (factory/BRIEF.md), then breaks the brief into a staged, dependency-ordered task list (factory/PLAN.md). This is the skill that CREATES the task list. Built for semi-technical and non-technical builders - plain language, a recommendation with every question. Use standalone or via /factory. Triggers - "plan my build", "turn this idea into tasks", "factory plan".

Why use Factory Plan on TypingMind?

Because you install it once and use it with any model. Factory Plan is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Factory Plan in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/MikeFishbeinAtherial/infinite-headcount/tree/main/factory-plan. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Factory Plan?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Factory Plan?

As many as you like. As long as a model supports skills, you can use Factory Plan with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Factory Plan AI skill free?

Yes. It is published on GitHub by MikeFishbeinAtherial under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇