Claude Code skill: one prompt to a production-ready company, under executable gates, a 473-item blindspot registry and an authorisation queue
  • Python 96.6%
  • Shell 3.4%
Find a file
exo bcb7d599f5
All checks were successful
validate / selftest (push) Successful in 15s
fix: close 13 checker defects from the scripts red-team
An adversarial pass reproduced 13 defects in the deterministic layer — the checkers
that are the product. Several defeated the core guarantee (forged evidence passing,
a denial substantiating a claim). All are fixed and reproduced green; the reproductions
are now regression guards in selftest.sh.

High:
- consistency_check crashed with an uncaught ValueError on a textual plan price
  ("Custom", "Contact sales"), aborting every later check — an enterprise tier is the
  normal trigger. Guarded; a non-numeric price is skipped.
- truth_check: a denial of a term substantiated the claim, so "we are NOT SOC 2
  certified" in 07-legal made a "SOC 2 certified" marketing claim pass. substantiated()
  now ignores negated mentions.
- truth_check: the negation guard skipped the whole line on any stray "no"/"non",
  whitewashing "SOC 2 certified. No credit card required." Now scoped to a window
  before the specific claim.
- verify_gates: a pass verdict with a command line but empty output passed, and
  must_contain was satisfiable from the command string. A pass now requires real
  output, and must_contain is matched against the output only.

Medium:
- verify_gates: a tampered bound file self-healed to pass on the next run; staleness
  now latches (binding keyed to the evidence `when`, cleared only by a newer record).
- load_waivers ignored `expires`, so an expired waiver kept suppressing its item;
  expired waivers now reopen the item in both the audit and the coverage report.
- must_contain was an unanchored substring, so "AI" matched "domain" and "24" matched
  "2024". New shared contains_tokens() applies a word-boundary rule for short and
  numeric tokens while keeping prefix tokens like "migrat".
- truth_check flagged numbers inside fenced code blocks and the venture's own plan
  prices; now tracks fence state and excludes the lock's own amounts.
- truth_check citation radius let an unrelated nearby source mask a bare number;
  scoped to the claim's own blank-line-delimited paragraph.
- truth_check placeholder rule flagged bare semantic HTML tags (<section>) and
  example.com framed as an illustration; both excluded.
- authorization_check missed sk_live_ keys in .env.local, Dockerfile and extensionless
  config files; scan broadened.

Low:
- authorization_check required-action coverage was a substring match ("entity" covered
  by "identity"); now word-boundary. Vague-command list extended.

Scoping (genesis_lib.matches/tier_at_least/applicable) and the exit-code contract were
probed and found clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 17:42:27 +02:00
.forgejo/workflows feat: genesis — one-prompt company builder skill 2026-08-02 17:10:43 +02:00
evals feat: genesis — one-prompt company builder skill 2026-08-02 17:10:43 +02:00
genesis fix: close 13 checker defects from the scripts red-team 2026-08-02 17:42:27 +02:00
tools fix: close 13 checker defects from the scripts red-team 2026-08-02 17:42:27 +02:00
.gitignore feat: genesis — one-prompt company builder skill 2026-08-02 17:10:43 +02:00
install.sh feat: genesis — one-prompt company builder skill 2026-08-02 17:10:43 +02:00
LICENSE feat: genesis — one-prompt company builder skill 2026-08-02 17:10:43 +02:00
README.md fix: fold in adversarial-review findings (registry + spec compliance) 2026-08-02 17:33:22 +02:00

genesis

A Claude Code skill that turns one request into a company: market research, positioning, pricing, product spec, architecture, brand and design system, the working codebase, security and accessibility hardening, legal and privacy documents, tax, observability, search and AI-answer visibility, paid and lifecycle marketing, sales, support, the finance model, operations, and the launch runbook.

What makes it different from a long prompt is the machinery underneath: a fixed phase spine, 15 executable gates that only open on recorded evidence, a registry of 511 things that are quietly forgotten, and a rule that nothing irreversible is ever done — it is queued for one human authorisation instead.

Install

git clone https://forgejo.ekaii.fr/exo/genesis-skill.git
cd genesis-skill && ./install.sh          # copies genesis/ to ~/.claude/skills/genesis

Then, in Claude Code:

/genesis build me a SaaS that chases overdue invoices for freelance designers

It also triggers without the slash command on requests like "launch a marketplace end to end", "monte-moi un SaaS prêt pour la production", or a single slice such as "do the positioning and pricing for this idea".

Requirements: python3 3.8 or newer. Every bundled script uses the standard library only, so there is nothing to install.

How it works

P0 intake    → P1 market  → P2 strategy → P3 product → P4 architecture
P5 design    → P6 build   → P7 harden   → P8 legal   → P9 observability
P10 go to market → P11 business ops → P12 audit → P13 launch → P14 handoff

Each phase writes artefacts into a venture workspace, then stops at its gate. A gate check passes one of two ways: a command that exits 0, or an evidence block in EVIDENCE.md containing the actual output of the command that was run. A pass verdict with no output is rejected, and evidence bound to files goes stale when those files change.

Three mechanisms do the work that a human reviewer would otherwise have to:

  • COMPANY.lock.json — the single source of truth for the venture: archetype, tier, conditions, name, category, plans, prices, URLs, legal entity, budget. Code, marketing copy and legal text quote its strings exactly, and consistency_check.py fails when they drift apart.
  • The blindspot registry — 511 items across 32 disciplines, each scoped by archetype, tier and product conditions, each with the proof that closes it. blindspot_audit.py reports what is still open; silence counts as unaddressed.
  • The authorisation queue — anything that spends money, binds a person, reaches a real third party or cannot be undone goes in AUTHORIZATION.md with its exact command, cost, blast radius and undo. The run continues; the operator says yes once.

Repository layout

genesis/
  SKILL.md                 the orchestrator: spine, rules, routing, gotchas
  references/  (51 files)  one per discipline, loaded only when its trigger applies
  registry/                phases, gates, blindspots, conditions, archetypes,
                           defaults, roles — JSON, queried by script
  scripts/     (16 files)  the deterministic layer, standard library only
tools/
  merge_blindspots.py      validate and merge registry fragments
  selftest.sh              validates the skill itself
evals/
  evals.json               trigger cases and scenario cases

The scripts

Script Use
registry.py Query what applies: blindspots, gates, defaults, archetypes, roles
scaffold_venture.py Create the workspace, the lock and the state files
verify_gates.py Evaluate gates, parse evidence, bind digests, render STATE.md
blindspot_audit.py Audit against the registry, render BLINDSPOTS.md, audit waivers
truth_check.py Unsourced numbers, unsubstantiated claims, placeholder residue
consistency_check.py Lock strings versus code, copy and legal text; contract freezing
code_audit.py Secrets, placeholders, hardcoded design values, test-integrity drift
contrast_check.py Token contrast ratios and light and dark completeness
web_audit.py Security headers, CSP, SEO tags, structured data, broken links
dns_audit.py SPF, DKIM, DMARC, DNSSEC, CAA, expiry, name availability
unit_economics.py Margin, payback, break-even, runway, one-at-a-time sensitivity
spec_lint.py Story testability, ADR coverage, data-inventory completeness
vendor_reconcile.py Vendors in code versus the published subprocessor list
authorization_check.py The queue is complete and nothing was done unilaterally
coverage_report.py Per-discipline honest accounting, renders COVERAGE.md

Every script: non-interactive, --help is its documentation, human output plus --json, and exit codes 0 pass, 1 findings, 2 usage error, 3 inconclusive. An inconclusive check is never treated as a pass.

Scope control

Tiers. T0 validate only, T1 live MVP, T2 production commercial (the default), T3 scale and enterprise. A tier changes scope, never quality: security, legal accuracy and accessibility do not degrade by tier.

Archetypes. saas-b2b, saas-b2c, api-devtool, marketplace, ecommerce-dtc, mobile-app, ai-product, content-media, services-agency, oss-commercial, internal-tool, local-business.

Scoping is what keeps the audit credible. On a B2B SaaS at T2 with AI features, 394 of the 511 registry items apply; the rest stay silent because they genuinely do not.

Verifying a change

tools/selftest.sh                       # registries, limits, references, lifecycle
python3 genesis/scripts/registry.py validate
python3 tools/merge_blindspots.py --parts <fragments-dir> --check

selftest.sh also enforces the skill-authoring limits: name matches the directory, description under 1024 characters, SKILL.md under 500 lines, every phase reference present, and a contents list in every reference file over 100 lines.

Extending it

  • A new blindspot: add it to genesis/registry/blindspots.json following genesis/registry/SCHEMA.md, then run registry.py validate. Scope it honestly; an item that fires where it does not apply teaches the operator to ignore the audit.
  • A new archetype: add it to archetypes.json with its preset conditions, then review which registry items should scope to it.
  • A new default: add it to defaults.json with value, why and reverse_cost. A default without a reason will be followed without thought.
  • A new discipline reference: add the file, add it to the owning phase's references in phases.json, and add its load trigger to the routing table in SKILL.md.

What it does not do

It does not give legal, tax or investment advice, does not execute irreversible actions, and does not replace professional review before a first sale. It produces the artefacts, the evidence and the queue; a qualified human signs what needs signing.

Licence

Proprietary. See LICENSE.