Build — will it ship?
Brief 142

Spec the Product

Turns venture research and operator intent into SPEC.md — a contract where every acceptance criterion carries a command a machine can run.

SPEC.md4 phases7 lenses~3.0k chars

Free & open · no signup · read-only — it ends by asking · nothing leaves your machine

What it does

You are working inside this repo — a product repo scaffolded from the goal-prompts template. Mission: turn the venture research and the operator's intent into SPEC.md, a contract in which every acceptance criterion can be checked by a machine.

This is the load-bearing document of the build: 143 implements nothing that is not in it, and 144 ships nothing that fails it. Your only write is the spec file.

What it looks for

7 lenses it looks through

Phase 2 sweeps the codebase through every one of these, citing file and line for each finding.

1

Job

the one job the product does, in a sentence a buyer would recognize

2

Buyer and the first dollar

who pays, and the shortest wired path from stranger to revenue

3

Acceptance criteria

every behavior as AC-n — <criterion> | check: <command>; if no command can check it, rewrite it until one can, or demote it to a non-goal

4

Non-goals

what v1 refuses to do; scope creep dies here, in writing

5

Interfaces

inputs, outputs, schemas, error shapes; exact enough to test against

6

Evals

for judgment-shaped output, golden cases in evals/cases/ and a numeric floor

7

Kill criteria

the measurable tripwires that mean stop building

The deliverable

What lands in your repo

One structured report at the repo root — or in reports/, if you keep one — the same shape every time, ready for a teammate — or the optional Studio — to act on.

SPEC.md
One file. Evidence-backed. It ends by asking before touching anything.
How it works

What it makes the agent do

Every Goal Prompt follows the same four steps, so results are consistent and repeatable — no matter which one you run.

1
Phase 1

Collect what is known

Read the research if it exists.

2
Phase 2

Draft through 7 lenses

Job — the one job the product does, in a sentence a buyer would recognize.

3
Phase 3

Harden

Run python3 scripts/spec_lint.py against the draft until it passes.

4
Phase 4

Report

Write SPEC.md at repo root in the skeleton's sections.

Get started

Three ways to run this Goal Prompt

01 · COPY

Paste it in

Copy it and paste it into your agent inside the repo you want checked.

02 · INSTALL

As a slash command

Install the goal plugin once — two commands — then just type /goal:spec-the-product.

1/plugin marketplace add GhostlyGawd/goal-prompts
2/plugin install goal@goal-prompts

Or install only this Goal Prompt as /goal-spec-the-product:

curl -fsSL https://goal-prompts.vercel.app/install | BRIEF=142 sh
03 · AGENT

From an agent (MCP)

Let an agent fetch it mid-conversation, or pull the raw Goal Prompt by URL.

https://goal-prompts.vercel.app/raw/142.md
Transparency

The exact prompt

Nothing hidden — this is the whole Goal Prompt, verbatim. Read it in a minute, edit it, or copy it as-is.

Read the full brief (3,042 characters)
# Goal: Spec the Product

You are working inside this repo — a product repo scaffolded from the goal-prompts template. Mission: turn the venture research and the operator's intent into `SPEC.md`, a contract in which every acceptance criterion can be checked by a machine.

This is the load-bearing document of the build: 143 implements nothing that is not in it, and 144 ships nothing that fails it. Your only write is the spec file.

## Phase 1 — Collect what is known
- Read the research if it exists: VERDICT.md, POSITIONING.md, DEMAND.md, NICHE.md (root or `reports/`) — the wedge, the buyer, and the pain define the job.
- Read the `SPEC.md` skeleton the scaffold left, and `scripts/spec_lint.py` — the format the gate enforces. The spec must pass it.
- List the questions only the operator can answer (price, name, niche details) and ask them now, rather than inventing answers.

## Phase 2 — Draft through 7 lenses
1. **Job** — the one job the product does, in a sentence a buyer would recognize
2. **Buyer and the first dollar** — who pays, and the shortest wired path from stranger to revenue
3. **Acceptance criteria** — every behavior as `**AC-n** — <criterion> | check: <command>`; if no command can check it, rewrite it until one can, or demote it to a non-goal
4. **Non-goals** — what v1 refuses to do; scope creep dies here, in writing
5. **Interfaces** — inputs, outputs, schemas, error shapes; exact enough to test against
6. **Evals** — for judgment-shaped output, golden cases in `evals/cases/` and a numeric floor
7. **Kill criteria** — the measurable tripwires that mean stop building

## Phase 3 — Harden
- Run `python3 scripts/spec_lint.py` against the draft until it passes; the lint is the format, not a suggestion.
- Strike every AC that restates another; a good v1 spec has 5–12.
- Mark the ACs the first build session should take with `status: next`.

## Phase 4 — Report
Write `SPEC.md` at repo root in the skeleton's sections: Job, Non-goals, Acceptance criteria, Interfaces, Evals, Dependencies, Kill criteria.

Date the header. If `SPEC.md` already exists from a previous run with ratified content, this is a spec revision — read it first, lead with what changed, and never renumber existing ACs; retire them with `status: dropped` instead, because 143's commits cite their ids.

## Rules
- Every AC carries a runnable `check:` — mechanical verifiability is the product-selection constraint, and this is where it is enforced
- The spec must pass `scripts/spec_lint.py` before this brief ends
- Answers you don't have come from the operator, never from imagination
- Not inside a scaffolded repo — no `scripts/spec_lint.py` here? Say so in a one-paragraph null report and stop: run 141 first.
- If a `reports/` directory exists at the repo root, the null report goes there — but `SPEC.md` itself always lives at the root, where the gate reads it.
- Before asking, present the top findings as a ranked list in plain words
- Report only — end by asking the operator to ratify the spec before 143 builds against it

House rules for this Goal Prompt

  • Every AC carries a runnable check: — mechanical verifiability is the product-selection constraint, and this is where it is enforced
  • The spec must pass scripts/spec_lint.py before this brief ends
  • Answers you don't have come from the operator, never from imagination
  • Not inside a scaffolded repo — no scripts/spec_lint.py here? Say so in a one-paragraph null report and stop: run 141 first.
  • If a reports/ directory exists at the repo root, the null report goes there — but SPEC.md itself always lives at the root, where the gate reads it.
  • Before asking, present the top findings as a ranked list in plain words
  • Report only — end by asking the operator to ratify the spec before 143 builds against it
Keep exploring

Pairs well with

Curated neighbors — briefs that answer the adjacent question, worth running in the same session.

More Build briefs

Runs inside these playbooks — curated sequences you can launch with one paste: