Skip to content
cccskills
FreePublished on GitHub

factory-spec

Turn a ready-to-spec queue item into an approved plan through explicit human gates. Use when an item needs scope decided before code exists, when planning a feature, or before starting a migration. Runs interactively - not for unattended routines.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Factory spec

This skill exists because the cheapest place to fix a decision is before any code encodes it. Once a model has written a thousand lines, changing direction is expensive and every instinct is to patch instead.

This skill is interactive. It stops and waits for a human. Do not run it inside an unattended routine; a routine that approves its own spec has no gates at all.

Read docs/factory/CONTRACT.md and docs/factory/CHARTER.md before gate 1.

Gates

Four, in order. Stop at each one. Never merge two gates into a single pass. Never proceed on an inferred approval: "looks good" on gate 1 is not approval of gate 2.

Write each gate's output into docs/factory/specs/FQ-<n>/ as its own file, and track approvals in docs/factory/specs/FQ-<n>/00-status.md.

Gate 1 - Product (01-product.md)

No technical content whatsoever. If you find yourself naming a file or a function, you are in the wrong gate.

  • The user problem, stated as a person's problem
  • What success looks like, measurably
  • A short announcement written as if the change already shipped
  • Plain HTML mockups for any screen involved, in mockups/
  • What we are deliberately not doing

That last item is the one people skip and the one that saves the most time. It is also where the kill decision lives: if the honest answer to "should this exist" is no, this gate is where that is cheap to say.

STOP. Ask for approval.

Gate 2 - Architecture (02-architecture.md)

  • Which existing systems and modules this touches
  • New endpoints, data structures, and their shapes
  • The end-to-end call flow, in order
  • External dependencies, and whether each is genuinely required
  • Which LOAD_BEARING paths are involved
  • What could break elsewhere

STOP. Ask for approval. For anything touching a load-bearing path, also run the factory-critic subagent against this document before asking, and include its output.

Gate 3 - Program design (03-design.md)

  • Exact file paths, new and modified
  • Type signatures and function contracts, no implementations
  • The call stack for the main flow
  • The test list: what will be tested and what each test proves
  • The three decisions you are least confident about

That last section is the highest-value part of this gate. It is where a reviewer can intervene before the uncertainty is buried under working code.

STOP. Ask for approval.

Gate 4 - Slices (04-slices.md)

Decompose into vertical slices. Each slice must be independently shippable, independently testable, and small enough to review in one sitting.

  • Slice 0 is a tracer bullet: end to end, mostly mocked, proving the shape works.
  • Each later slice replaces one mock with real behavior.
  • Each slice gets its own queue entry with its own done_when.

Once approved, create or update one GitHub issue per slice and apply factory:ready-to-implement. Create or update its factory-handoff:v1 comment with the approved done_when, expected files, gate level, and confidence. Also write each slice into the QUEUE.md snapshot. The issue label and comment are the handoff back to the unattended part of the factory.

STOP. Ask for approval before writing the queue entries.

After the approved handoff, write a unique spec run record under docs/factory/runs/.

Status file

00-status.md tracks state so the spec survives a context reset or a week away:

item: FQ-<n>
gate_1_product: approved 2026-08-16 | pending | rejected
gate_2_architecture: pending
gate_3_design: not-started
gate_4_slices: not-started
slices_completed: 0 / ?
open_questions:
  - <anything blocking, with who owns the answer>

For migrations specifically

If this spec covers a migration, gate 2 must answer one question before anything else:

What is the oracle?

An old or unlaunched project usually has the thinnest test coverage in the portfolio, which means a migration can compile, typecheck, pass every existing test, and still behave differently. Green does not mean equivalent.

So the first slices are not migration slices:

  1. Make it build on the current stack
  2. Make it typecheck
  3. Pin current behavior with characterization tests and golden-master snapshots
  4. Only then migrate, wide and fast, against the oracle you just built

This inverts the usual reading of back-pressure. Instead of accepting the verification budget you have and limiting autonomy to match, you go build a bigger budget first and claim the autonomy it buys. Each of those four steps is itself a clean factory job.

If gate 2 cannot name the oracle, the migration is not ready and no amount of agent throughput fixes that.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Claim and implement one ready GitHub issue, run fail-closed gates, obtain independent verification, and open a draft pull request.

The English summary is being prepared. Showing the original description.

addyosmani/factory283Updated Aug 22, 2026

Claim one live GitHub queue item, implement it end to end, run fail-closed gates and independent verification, then open a draft PR. Use for one ready-to-implement issue or the implementation routine.

The English summary is being prepared. Showing the original description.

addyosmani/factory283Updated Aug 22, 2026

Scheduled health sweep that closes the factory loop - reads CI failures, recent commits, dependency and security advisories, and live queue labels, then files issues and writes an immutable run record. Use for the nightly or weekly monitor routine.

The English summary is being prepared. Showing the original description.

addyosmani/factory283Updated Aug 22, 2026

Inspect factory health, stale work, CI, security advisories, and recent run evidence without implementing fixes.

The English summary is being prepared. Showing the original description.

addyosmani/factory283Updated Aug 22, 2026

Turn an ambiguous factory issue into human-approved product, behavior, design, and implementation slices. Use interactively before implementation.

The English summary is being prepared. Showing the original description.

addyosmani/factory283Updated Aug 22, 2026

Show the factory control room from live GitHub labels, open PRs, recent run records, gate health, and charter limits.

The English summary is being prepared. Showing the original description.

addyosmani/factory283Updated Aug 22, 2026

See all skills by addyosmani

Report a problem with this skill