Why this document exists
The DARK LINE landing page presents the idea of a lights-out web-development factory at the level of concept: a six-station line where raw intent goes in and shippable software comes out, with humans moved "up a level" to defining intent and the checks that decide what ships. That framing is deliberately high-level and is doing its job — engaging people on ideas, not implementation.
This document begins the next step: weighing how to accomplish it against the core idea. Specifically it answers three questions:
- Which steps of the line can be automated, and what is the nature of that automation? (Deterministic? AI? Human-anchored?)
- What already exists — in the MachinaXX tooling and in live client projects — that fills those steps today?
- Where are the gaps, and what is the smallest credible sequence to close them with Claude Code as the orchestrator?
The line is not hypothetical. A semi-manual version of it is already running across multiple real projects. The work ahead is less "invent the factory" and more "automate the orchestration that a human is currently doing by hand, and harden the inspection stage."
What was examined
Two categories of asset were investigated: components (reusable MachinaXX tooling that is the line's machinery) and consumers (live client projects that are outputs of the line and prove the machinery works together).
Components — the MachinaXX tooling
| Project | What it is | Maturity | Station |
|---|---|---|---|
MakerGen v1.27 |
Deterministic code generator: a declarative MakerX XML model → C#/SQL/TypeScript data layer + Minimal-API endpoints. Built for "agentic use" (structured JSON output, exit codes, describe schema discovery, byte-identical output). 752 tests, golden-file regression, CI/CD, NuGet global tool. |
Production-ready | 02 Jigs / 03 Machines |
Chassis v4.1.1 |
Reusable ASP.NET Core API foundation library — CQRS messaging, cookie/JWT auth, health checks, Swagger, DbUp migrations, structured logging, config validation. House standards as a consumable package. 82+ tests, CI/CD, NuGet, migration guides, 250-line CLAUDE.md. |
Production-ready | 02 Jigs |
Vector v0.6.8 |
Webhook-driven IIS deployment handler: GitHub release → download artifact → versioned path swap → app-pool restart → health check → automatic rollback on failure. Itself built on Chassis. 108 tests. | Code-complete, staging pending | post-04 / 05 (release) |
Consumers — live projects that are outputs of the line
| Project | What it is | Stack fingerprint | Maturity |
|---|---|---|---|
| RentaStore | Mono-repo modernising a rental/storage platform off three legacy systems (MultiChannel, Cortex, Portal) into one bounded-context architecture. | Full stack: Chassis + MakerGen data layer + Vector deploy + MCP server (129 tools) + huge phased Plans/ + issues/ defect log + CI gated on v* tags. |
Mature / the reference |
| SNTSystems (SurNavTec) | Surgical-navigation equipment dispatch & case-lifecycle platform. 8 bounded contexts; Google Calendar, QuickBooks and Web-Push integrations. | Full stack: Chassis 4.1.1 + MakerGen + MCP + phased Plans/ + claude-sessions/ + CI. ~35 releases in ~3 months. |
Early but coherent |
| LifeGauge (Alex Forbes) | Pension-fund / annuity modelling tool for financial consultants. Modernising .NET Framework 4.8 + AngularJS → .NET 10 BFF + Angular 21, offline-first (IndexedDB/PWA). | Process only: phased Plans/ + evaluation gates + claude-sessions/ + CLAUDE.md. No Chassis, MakerGen, MCP or Vector — a YARP strangler over the preserved legacy API. |
Early, pre-production |
| rent-a-store-2019 | The legacy Angular SSR site (now superseded). Uses Claude Code ad-hoc — a permission allowlist, no jigs. | Ad-hoc AI assist only. | Legacy (context) |
The method layer — universal across all of the above
Every modern project, regardless of stack, shares the same operating method, applied by hand through Claude Code:
- A
Plans/folder of phased documents following a consistent shape: Requirement → Implementation Plan → Evaluation Plan → Findings → Remediation. This is exactly thephased-implementationskill available in the environment. - A
claude-sessions/archive of AI session transcripts (RentaStore, SNTSystems, LifeGauge all have 20–40+). - A
CLAUDE.mdencoding house conventions (K&R braces, net10.0, nullable, "no inline SQL", vertical-slice pattern). - A
.claude/settings.local.jsonpermission allowlist, and anissues/log (RentaStore) feeding remediation.
The line has two separable layers
The projects reveal that "the line" is really two layers that can be adopted independently:
| Layer | What it is | Where it applies | Embodied by |
|---|---|---|---|
| A. The Method | The orchestration discipline: machine-readable spec → phased build → evaluation → findings → remediation → release, all under version control with an AI session archive. | Universally — greenfield and legacy modernisation. LifeGauge proves it works with none of the MachinaXX components. | phased-implementation skill, Plans/, claude-sessions/, CLAUDE.md, evaluation gates |
| B. The Components | The stack-specific machinery that makes generation deterministic and deployment hands-off. | Greenfield .NET builds where you control the substrate (RentaStore, SNTSystems). Not retrofittable onto a constrained legacy app like LifeGauge. | Chassis, MakerGen, Vector, the MCP-server pattern |
The website pitches one line, but in practice you run a portable method that can wrap any project, plus a high-automation component stack you bolt on when the project allows. The method is what makes a project "on the line" at all; the components move individual stations from human-paced to lights-out. This should shape the pricing story (Method = baseline offering; Components = margin multiplier) and the build sequence below.
Station-by-station automation map
For each of the six stations: the nature of the automation possible, what fills it today, and the gap.
Station 01 — Specification Human layer
Nature of automation: assistive, not autonomous. The spec is the raw material and caps output quality; it stays human-owned by design. But it can be made machine-readable and AI-drafted-then-human-signed.
- Already automated: The MakerX XML model is a fully machine-readable spec for the data layer — and MakerGen proves the principle end-to-end. RentaStore and SNTSystems drive their entire data/API layer from one XML file. Rich domain specs already exist as structured prose (
Documents/— Domain Boundaries, Ubiquitous Language, Features Endpoints Specification). - Nature today: Data-layer spec = fully codified & machine-consumed. Feature/behaviour spec = structured prose, AI-assisted but not yet a validated contract.
- Gap: No single validated spec format for features/stories/acceptance-criteria/API-contracts the way there is for the data model.
- Opportunity: Extend the MakerX "declarative input → deterministic output" pattern upward from data to endpoints and acceptance criteria. This is adoption step 1 ("codify the spec format").
Station 02 — Jigs Tooling
Nature of automation: deterministic constraint. Jigs are where house standards become tooling the agent can't drift from. This is the line's strongest station today.
- Already automated: Chassis is the primary jig — it ships the architecture as a package, so every app inherits house standards. MakerGen is a second jig — it enforces the data-access pattern ("no inline SQL", generated
IXxxDatainterfaces) by construction.CLAUDE.mdfiles encode conventions;phased-implementationis a process jig. - Nature today: Split between enforced-by-construction (Chassis/MakerGen — strong) and documented-but-advisory (
CLAUDE.mdprose — weaker, relies on the agent complying). - Gap: Few deterministic guardrail hooks. Conventions are not yet pre-commit/CI hooks that block on violation.
- Opportunity: Promote the highest-value
CLAUDE.mdrules into hooks that fail the build/commit — converting advisory jigs into enforced ones.
Station 03 — Machines Automated
Nature of automation: two kinds — deterministic and probabilistic, with different trust models.
- Already automated (deterministic): MakerGen is the deterministic machine for the data/API layer — same input, byte-identical output, no LLM in the loop. Fully lights-out and safe today.
- Already automated (probabilistic): Claude Code sessions are the machines for feature logic, UI and integrations — but currently human-launched, one session at a time.
- Gap vs the website's claim ("headless agents under orchestration… in parallel"): there is no orchestration and no headless/event-triggered execution yet. The orchestrator is the human at the keyboard.
- Opportunity: The central automation target — Claude Code becomes the primary orchestrator (see Section 06).
Station 04 — Inspection Automated — the trust mechanism
Nature of automation: deterministic verification — the whole safety system. This is what lets the lights go off, and it is the station with the biggest gap between current state and the website's promise.
- Already automated: Compile with warnings-as-errors (G1, partial), full test suites — xUnit/NSubstitute + Vitest (G2), CI gating release on
v*tags. The Evaluation Plan → Findings half of every phased document is effectively a second-pass AI inspection (the advisory A1 gate), already practised. Vector adds a deploy-time health-check-and-rollback gate.
| Gate | Promised | Current state |
|---|---|---|
| G1 Compile & analyzers | builds clean, analysis enforced | ✅ build + warnings-as-errors; analyzers partial |
| G2 Test suite | full suite + coverage as a gate | ✅ suites run in CI; coverage not yet a hard gate |
| G3 Mutation testing | proves tests actually bite | ❌ not present |
| G4 Architecture fitness | layering tested as behaviour | ❌ not present (conventions are prose only) |
| G5 Contract tests | API checked vs signed contract | ⚠️ partial — MCP surface + Features spec could seed it |
| G6 Secrets & security scan | hooks block leaks | ⚠️ secrets-externalisation by plan; no automated scan/hook |
| A1 AI review (advisory) | smell/intent review, never authorises | ✅ the Evaluation/Findings practice already does this |
Inspection is where investment buys the most trust — the website itself says "build inspection first." Concretely: make coverage a hard gate, add architecture-fitness tests, add a secrets/security scan hook, then mutation testing.
Station 05 — Exception Desk Human layer
Nature of automation: deliberately human. Escalations, judgement calls, release ownership.
- Already established: This station is working as designed — Al reviews Findings, decides remediation, and cuts the
v*tag that authorises a release (PR Reviews/,issues/). - Nature today: Healthy. The human is currently the orchestrator and the exception desk; as Station 03 gains orchestration, the human should shed the orchestrator role and keep only the desk.
- Gap: Escalations aren't yet surfaced by the system — the human goes looking for them. A mature line pushes "undecided intent" and "failed-after-N-attempts" to the desk as explicit events.
Station 06 — Ratchet Compounding
Nature of automation: process discipline, currently manual. Every escaped defect should upgrade a jig or gate so its whole class can't recur.
- Already automated (partially): The discipline exists —
issues/ISSUE-001-business-logic-in-data-layer, Findings → Remediation docs,Deferred-Issues-Status.md. Crucially, Chassis and MakerGen are a structural ratchet: a fix to MakerGen propagates to every consumer on the next regenerate; a Chassis migration guide upgrades the whole fleet. - Gap: The defect → jig/gate upgrade loop is a manual practice, not automated.
- Opportunity: Wire the loop so a logged defect spawns a remediation task that must land a new test/gate/hook before closing — making the ratchet a rule, not a habit.
Coverage at a glance
| Station | Deterministic | AI automation | Human-anchored | Net |
|---|---|---|---|---|
| 01 Specification | ● data model (MakerX) | ◐ AI-drafted prose | ● sign-off | ◐ |
| 02 Jigs | ● Chassis, MakerGen | — | — | ● |
| 03 Machines | ● MakerGen | ◐ manual sessions | ◐ launches each run | ◐ |
| 04 Inspection | ◐ build + tests + CI | ● Eval/Findings (A1) | ◐ reads findings | ◐ (key gap) |
| 05 Exception Desk | — | — | ● as designed | ● |
| 06 Ratchet | ◐ Chassis/MakerGen propagation | — | ◐ manual issue→fix | ◐ |
| Deploy / Release | ● Vector (rollback) | — | ● v* tag authorises | ● |
The line is strongest at the edges of the build — jigs going in (02) and deployment coming out (Vector). The soft middle is orchestration (03) and inspection depth (04) — exactly where the website locates the magic. The good news: the hard, unglamorous infrastructure (foundation library, deterministic generator, gated deploy with rollback) is the part that already exists and is production-grade.
Claude Code as the orchestrator — the harness question
The working assumption — "set up Claude Code to be the primary orchestrator of the line" — is well-founded. The evidence:
- The orchestration pattern already exists as a skill (
phased-implementation) and is practised by hand on every project. - Claude Code already drives all the components: it invokes
makergen generate, consumes Chassis, reads theCLAUDE.mdjigs, runs the test gates, authors the Evaluation/Findings. - Each project exposes an MCP server (RentaStore 129 tools, SNTSystems) — the apps already publish an agent-facing tool surface.
What additional harness is required — minimal, and mostly glue rather than new platform:
- An event trigger. Today a human starts each run. The line needs spec-change / issue-filed / schedule to launch a headless Claude Code run. Vector already proves the in-house webhook→action pattern; a sibling "build trigger" is the same shape pointed at generation.
- A run controller for parallelism. Claude Code's own agent/workflow orchestration covers this; the missing piece is a thin queue + concurrency cap + per-task isolation (worktrees) so multiple task-classes run without colliding.
- A gate runner. A single deterministic entry point that runs G1–G6 and returns pass/fail+report, so the orchestrator has one verdict to act on.
- An escalation channel. A defined way to push "undecided intent" or "failed after N attempts" to the human exception desk.
None of this requires a bespoke orchestration platform. It is Claude Code + the existing skill + thin event/queue/gate glue.
Gap analysis — ranked by leverage
- Inspection depth (Station 04). Highest leverage; it is what makes lights-out safe. Add (in order): coverage as a hard gate → architecture-fitness tests → secrets/security scan hook → contract tests → mutation testing.
- Orchestration & headless execution (Station 03). Convert the manual, sequential session pattern into event-triggered, parallel, gated runs. The biggest visible change; depends on #1 to be trustworthy.
- Enforced jigs (Station 02). Promote the top
CLAUDE.mdrules from prose to blocking hooks. Cheap, compounding, feeds the ratchet. - Spec formalisation (Station 01). Extend the MakerX "declarative → deterministic" pattern from data to endpoints/acceptance-criteria.
- Automated ratchet (Station 06). Make "defect must land a new gate before closing" a rule, not a habit.
- Escalation surfacing (Station 05). Push exceptions to the desk rather than having the human discover them.
A practical sequence
The site already prescribes a seven-step adoption order; the assets above let us make it concrete and pick the smallest trustworthy loop first.
| # | Website step | Concrete first move, using what exists |
|---|---|---|
| 1 | Codify the spec format | Adopt MakerX XML as the data-spec standard (done in practice). Pilot a declarative endpoint/acceptance-criteria format seeded from the Features Endpoints Specification. |
| 2 | Encode standards as jigs | Chassis + MakerGen + CLAUDE.md exist. Next: turn the top 3–5 conventions into blocking hooks. |
| 3 | Build inspection first | Stand up the gate runner (G1–G6 behind one command). Make coverage + architecture-fitness hard gates. Do this before adding any autonomy. |
| 4 | Wire one event-triggered loop | Pick one task class on one repo (RentaStore — most mature). Spec-change → headless Claude Code build → gate runner → human review. |
| 5 | Add orchestration | Once that loop is boring: parallel runs via Claude Code's agent/workflow orchestration + a concurrency cap + worktree isolation. |
| 6 | Install the ratchet | Wire issues/ so every escaped defect must land a new gate/hook before the issue closes. |
| 7 | Widen the envelope | Grant more autonomy per task-class as trust data accumulates — never globally at once. |
Steps 3–4 on RentaStore, one narrow task class (e.g. a CRUD vertical regenerated from a schema change). It is the most mature consumer, has the richest Plans/ history, already has the MCP surface and Vector deploy, and a real defect log to seed the ratchet.
Honest caveats
Consistent with the site's "twilight, not dark" framing.
- The component stack is .NET-shaped. Chassis/MakerGen/Vector assume ASP.NET Core + SQL + IIS. LifeGauge shows a constrained legacy modernisation runs on the method alone — so "the line" must be sold and built as method-first, components-when-the-substrate-allows.
- The orchestration claim is currently aspirational. "Parallel headless agents under orchestration" is not running yet; what runs is disciplined, human-launched, sequential Claude Code. The gap is closeable with glue, but it is real today and shouldn't be over-stated to partners.
- Inspection is the long pole. Three of the seven advertised gates (mutation, architecture-fitness, security scan) don't exist yet. Until they do, "lights-out" is a promise the safety system can't fully back.
- Vector is code-complete but not production-validated. The deploy arm is ready in principle; the staging soak hasn't run.
- The human is doing two jobs. Today Al is both orchestrator and exception desk. The point of the build-out is to automate the first so only the second remains — the whole "moved up a level" thesis.