PIPELINE

Method

How a keyword becomes a site

Six stages, in order, with the number each one has to produce before the next one starts. A stage that cannot produce its number halts the run instead of passing it forward, because "could not check" is not "fine".

What follows is the mechanism, not a forecast. It describes how a site gets built so that a crawler can parse it and a person can use it. Whether anything is then indexed or read is not a property of this repository, and the last section on this page says so at length.

The six stages

  1. 01

    Harvest

    Five to ten adaptive intake questions resolve the brief, and a brief that is incoherent or unbuildable is refused before a single network call is made. The accepted brief's head terms are then expanded into a query taxonomy, and the pipeline samples 50 live result pages to record what each query's search page actually looks like. Difficulty is stored as a distribution over ten bins, never as a mean, because a mean hides the long tail that a new domain can reach.

  2. 02

    Qualify

    Six measured components combine into a viability score from 0 to 100, using the weights below. Under 40 the run is killed. Between 40 and 55 it proceeds as CONDITIONAL, capped at 25 pages with no budget increase. Where the 95 percent confidence interval straddles 40, the decision is INCONCLUSIVE: the sample doubles and the layer re-runs, at most twice. The pipeline does not ship a site on a coin flip.

  3. 03

    Spec

    The .com is generated in bulk, cut down by a local filter that costs nothing, and only then verified against the live registry over RDAP. An unscreened name scores as null, not as trademark clear, so the shortlist carries an evidence coverage fraction and is refused when that fraction falls below 0.80. Then every target query is assigned to exactly one URL. One query, one page, written down before any design exists, because that map is what later stops two of your own pages competing for the same result.

  4. 04

    Design

    Four fixed prompt files, run at claude.ai/design, produce the analysis, the design system and the page designs. The second is mandatory and runs in a fresh session, where it scores ten dimensions and names the five worst failures. A weighted composite below 8.5 sends it back, and so does any single dimension below 8.0. An iteration that gains less than 0.3 does not count as progress, and there are at most four.

  5. 05

    Build

    The exported zip is treated as untrusted input: symlinks, absolute paths and parent traversal are rejected, the file extension allowlist is closed, and any dependency on someone else's server is vendored or removed rather than trusted. Content is generated into the slots and gated on information gain, so a page scoring under 0.30, or carrying fewer than three novel substantive claims against the pages already ranking, is regenerated instead of published. The technical pass then does the part that actually decides whether a crawler can use the page: one JSON-LD block per page whose every property matches visible text, no orphan pages, nothing more than three clicks from home, titles inside 60 characters, descriptions inside 155, a sitemap that lists only indexable URLs, and a build-time ceiling of 500 KB and 40 requests per page.

  6. 06

    Ship

    A GitHub repository is the source of truth, GitHub Pages serves it, and Cloudflare handles DNS, edge TLS, caching and the www to apex redirect. The sitemap is submitted and IndexNow is called, with the fact recorded on the artifact that IndexNow does not cover Google. Coverage is then measured on days 3, 7, 14, 21 and 30. A figure that was not measured is stored as null with its source set to not_measured, and there is no permitted value in the schema representing an estimate, a projection or an extrapolation.

Six stages is a narrative compression. In the repository the build track is thirteen layer contracts, L00 intake through L12 monitor, and the recurring growth track that opens after launch is seven sprint stages, G0 through G6. 395 machine-evaluable gates sit across the two, in 20 gates.json files, and each one carries a written reason for existing.

The weights

Stage 02 produces one scalar from six declared L01 weights that sum to exactly 1.00, and this is the vector behind it.

Viability score components, from the L01 layer contract.
Factor Weight Why
Difficulty accessibility 0.26 The binding constraint on a new domain is not how much demand exists, it is how much of it is reachable without backlinks.
Addressable volume 0.24 Volume sets the ceiling, so it is nearly as important as accessibility and strictly less, because unreachable volume is worth zero.
SERP capture headroom 0.16 How much of the click demand survives AI Overviews, shopping packs and local packs. A feature-saturated result page changes what a rank is worth.
Competitor displaceability 0.14 Authority distribution and brand concentration in the top ten. Weighted below accessibility because difficulty already encodes some of it.
Monetization fit 0.12 Intent tier against the chosen money model. It affects revenue per session, not whether the site can rank at all.
Format buildability 0.08 The lowest weight, because it is nearly always high. It exists to catch the video and forum dominated niches, where it collapses and correctly drags the score down.

These are declared constants in layers/L01-niche-research/LAYER.md, mirrored in pipeline.config.json so a deployment can override them without editing the contract. They are not fitted against outcomes, because there are no outcomes to fit them against, and a weight vector presented as empirical when it is a judgement would be exactly the fabrication the rest of this system is built to prevent.

One gate does the honest work here. The score artifact has to carry six rows, one per component, each with its weight, its subscore and their product, and the six products must sum to the reported score within 0.1. A score that cannot be reproduced by hand, with a calculator, from its own artifact, fails.

Refinement ledger

Shipping is not the end of the method, it is the point where the method starts getting measured. A query sitting just outside the top ten gets exactly one diagnosis, determined in this order, first match wins. The diagnosis decides the intervention and which layer the page re-enters. At most ten findings enter the queue per cycle, or a fifth of the published pages, whichever is smaller, because changing more than that destroys attribution and the next cycle degrades into guessing.

  1. 01
    cannibalized

    The query also appears in a cannibalization finding. Resolve the duplication first and suppress this finding for the cycle. Re-enters at the keyword map or the technical pass.

  2. 02
    intent_mismatch

    The page's assigned intent is opposed to the query's, or the result page's dominant format is not the format of the page. Reassign the query to a different, possibly new, URL. That is a map problem, and editing prose almost never fixes it.

  3. 03
    subtopic_gap

    The query's head term and its two commonest modifiers appear nowhere as a subheading, and the page does not answer it in the first 300 words. Add one dedicated section that answers it directly. Do not rewrite the page.

  4. 04
    title_omission

    The head term is absent from both the title element and the h1. Rewrite those two to lead with it, and leave the URL and the body alone.

  5. 05
    orphan_or_deep

    Zero inbound internal links, or four or more clicks from home. Inject two to four contextual links from topically adjacent pages and raise it in the hierarchy.

  6. 06
    thin

    Below the site's own 25th percentile for length and below the median of the pages already ranking for that query. Expand it to cover the subtopics those pages carry and this one does not.

  7. 07
    authority_bound

    None of the above match. No action is taken. A page that is structurally correct, on intent, well linked, long enough and correctly titled and is still stuck is stuck for reasons this pipeline cannot reach. It leaves the queue and is counted as evidence toward the stop loss instead.

A URL that has been through four corrective cycles without reaching the top ten is marked authority bound for good, and further edits are treated as having no expected return. If the authority bound share of findings passes 0.60 across two consecutive monthly cycles, that is a stop-loss input, not an instruction to try harder.

Day 90 is a viability checkpoint. Day 180 is a stop loss with five criteria that must all hold at once, two of which exist purely to make abandonment falsifiable: the site must actually have been iterated, and the changes must have been applied and measured and not worked. A site is never abandoned for lack of effort.

What the pipeline will not do

Read this section if you read nothing else on the page. It's not a disclaimer at the bottom of a sales page, it is the set of constraints the system was designed around.

  • It does not promise indexation.

    Google indexes a subset of what it crawls and provides no mechanism to compel inclusion. Submission through Search Console or IndexNow is a request, not an instruction. A technically flawless site can sit at partial or zero indexation indefinitely, and no amount of pipeline correctness changes that. L11 reports measured coverage and nothing else. Zero indexed pages at day 30 is a real, reportable outcome that routes into the monitor layer rather than being smoothed over.

  • It does not promise that scaled content ranks.

    The content layer is built around information gain precisely because content produced mainly to manipulate rankings is what search engines are explicitly built to discount. The gate exists to stop this pipeline producing that, and it will fail runs. A gate that never fails is not a gate.

  • It generates zero off-site signal.

    Ranking is limited by domain authority and external links, and nothing from L00 to L12 touches either one. That is why the seventh diagnosis in the ledger above exists and why it takes no action: it is the expected finding on a new domain, not the exceptional one. Anything sold to you as automated authority is either a link scheme or a rounding error.

  • It cannot remove its own footprint.

    Every site a single pipeline builds shares a lineage: comparable template structure, section shape, internal linking pattern, hosting footprint and deploy signature. A pattern-level spam action does not hit one site, it hits all of them in the same week. The countermeasures are real and they are partial: genuinely distinct design archetypes rather than one template in different colours, the information-gain gate as a blocking check, at least one non-reproducible element per site such as original data or a working tool, a page cap that is priced rather than negotiable, and no shared hosting accounts, analytics identifiers or contact details between operators. That reduces the exposure. It does not remove it, and the risk is written into the register rather than into a footnote.

  • It will not let an unchecked thing count as a checked thing.

    A blocking gate that fails halts the run, and a blocking gate that cannot be evaluated also halts the run. Unknown is null, never a flattering default: an unscreened domain does not score as trademark clear, an unmeasured page does not score as passing, and a composite built on 60 percent of the evidence reports that fraction next to itself rather than quietly renormalising into a confident number. No statistic is published without a source.

  • It will not keep a site alive on the theory that it might recover.

    The failure mode of an autonomous optimisation loop is not that it stops too early, it is that it never stops. Every cycle has a plausible next thing to try, and a site with no traffic can absorb unlimited tokens, renewals and attention. So there is an intermediate verdict, maintenance_only, which freezes the site, keeps the domain and the uptime probe, drops the analysis to quarterly and stops all content spend, and there is a terminal one, which stops the spend entirely and defaults the domain to non-renew.

The structural version, from the productization document's own section on the most likely reason this fails: this is a supply-side tool aimed at a demand-side problem. Making websites was already close to free. Getting them seen is the expensive part, and L00 through L12 don't touch it. What the pipeline compresses is build cost and the cost of being wrong, which is worth paying for if build cost is genuinely your constraint, and is worth nothing if it is not.

EVERY FIGURE ON THIS PAGE IS REPRODUCIBLE FROM THE REPOSITORY. WHERE THE PAGE AND THE REPOSITORY DISAGREE, THE REPOSITORY IS CORRECT.