Mohamed Douare Logo
FR

← Back to portfolio

AI Product Factory: how an idea becomes a reviewed pull request

A 24/7 server runs one Claude Code session per project. It can be driven from a workstation or, when needed, from a phone. The agents do the work between two human gates; I decide what ships.

Flow

  1. Idea. One message: a paragraph describing the product or the feature.
  2. Discover. The discover skill researches the market, existing products, regulation and feasibility, and produces a sourced opportunity study plus a GO / PIVOT / NO-GO verdict. NO-GO stops here.
  3. Specify. A pre-filled REQUIREMENTS.md with every assumption marked and the open questions batched (seven at most), then the documentation suite: PRD, architecture, data model, API, ADRs, runbook, design brief.
  4. Gate 1, spec approval (human). One message, readable anywhere, including on a phone. No feature code before approval.
  5. Design in Figma or Claude Design. Through the Figma MCP server, or Claude Design when the project calls for it: brand page with three logo directions, variables, components, key screens for desktop and mobile, prototype flows.
  6. Gate 2, design loop (human). As many rounds as needed until the design is approved, then frozen into the repository as tokens, screens and reference code.
  7. Build. Test-driven vertical slices, each checked against the frozen design. Every slice ends with build, typecheck, lint and tests green.
  8. Quality loop. Automated code review and security review, then a review → fix loop until the review comes back clean.
  9. Ship. One command opens a squash pull request to the dev branch and merges it. Promotion to production is a separate, manual pull request that only I open.

Human gates

Two approvals (specification, design) and one manual act (promotion to production). Everything else runs unattended; risky or outward-facing actions surface as push notifications and wait.

Each repository carries a CLAUDE.md with its own rules: read the requirements first, respect the frozen design, follow the delivery policy, no attribution trailer in commits.

What never reaches the LLM

Secrets, keystores and personal data: they are gitignored and provisioned into CI as encrypted secrets by a script that never prints them.

The production branch: agents may merge to dev, never to main.

Decisions and why

Why first-party tooling only. Three third-party orchestration products shut down in a year. The factory is built on Claude Code Remote Control and shell scripts, so nothing in it can disappear with a vendor.

Why file-based artifacts. Requirements, ADRs and design tokens live in the repository, so a new session, a new agent or a human reviewer starts from the same truth.

Why skills rather than prompts. A skill is versioned, testable and shared across projects; a prompt in a chat is lost.

Why a human only at the gates. It keeps the cadence of the agents without giving up accountability for what reaches production.

Numbers

17 repositories under the factory, on GitHub and Azure DevOps, each with its own policy file.

A bilingual corporate website taken from idea to production in 8 days and 32 commits; a single-page site in one day.

Pilume, a five-application platform with 66 test files and 15 ADRs, built in 10 weeks.

4 custom skills (discover, figma-studio, design-handoff, research-document) plus the standard planning, TDD and review skills.

Stack

Claude Code (Remote Control, skills, subagents) · Model Context Protocol (Figma, GitHub, Azure DevOps, Todoist) · Bash and Python · tmux on Ubuntu · Caddy edge · GitHub and Azure DevOps APIs

See also

Drafting a funding proposal without inventing a single figure

Pilume: an AI that explains a medication schedule but never decides it

The agent harness: the guarantees I give a client


Send me an email about this system and I will walk you through it.