King Hippopotamus

Method

Method

A programme is researched, sourced, built, gated and published in the same seven stations every time. The last one tries to break the result.

The seven stations

The stations run in order, and the order carries information: nothing is built before the objectives are frozen, and nothing is published before something has tried to falsify it. Each station is named by the artifact it has to leave behind.

  1. Vision, written before the build

    A programme opens with a dated document that states the ambition and the laws the build must obey, and says out loud that it is a draft awaiting review.

    Artifact
    A dated design document with a locked-decisions table and an explicit status line.

  2. Objectives, enumerated and frozen

    The ambition becomes a coverage matrix a deliverable is checked against, not a prose brief. Covered is defined operationally, so a claim of coverage can be refused.

    Artifact
    An objective matrix bound to filing types and execution phases; a registry of lines of inquiry crossed with recognised methodologies.

  3. Source census with the gaps written down

    Before the pipeline is designed, the available data is inventoried against what the objectives need, and every shortfall is recorded as a first-class row.

    Artifact
    A source census table with row counts and a column for what is not being taken.

  4. Protocol — who does what, with what budget, writing where

    The census becomes an execution manifest: each unit gets a track, a tool-call budget, a lock requirement, a sequencing rule and one fixed output path.

    Artifact
    An agent manifest table and a timed orchestration for the whole run.

  5. Gates, executable and fail-closed

    Quality is enforced by code that returns an exit status, not by a checklist in prose. 5 gate programmes sit at the seams of a run and exit 0 pass, 1 block, 2 warn-and-acknowledge.

    Artifact
    3,593 lines of gate code and the JSON result file each gate writes.

  6. Deliverable, with its own limits attached

    The output is one self-contained artifact rendered from a fixed template, and it ships with a section naming what the evidence does not support.

    Artifact
    The rendered deliverable plus a record of its own revision history.

  7. Falsification, applied to its own output

    The loop closes by treating a finished deliverable as a hypothesis and asking one question of every declared gap: was the information genuinely undisclosed, unavailable to us, or available and never retrieved?

    Artifact
    An investigation plan, a gap classification with one verdict per finding, and a withdrawal record.

The last station

The final station treats a finished deliverable as a hypothesis; it has been exercised, and it has withdrawn work.

What is public, and what is on request

  • Public: the verified claims, the verification policy, and the count of what was withdrawn before publication.

  • On request: the full evidence record — failed rows, raw records, incident reports — as one export-ready bundle per chapter, for counterparties doing diligence.

  • Everything else stays internal. The audits did not change; only the publication scope did.

Each evidence page carries the same standing line: N claims tested · M published · N−M withdrawn before publication. Full evidence record available on request. Each chapter's audit tests a fixed budget of 12 claims; the count is a quota by design, the verdicts are not. king.hippopotamus@yahoo.com.

The stack, as decisions

A stack is a list of trade-offs somebody took, so it is listed as trade-offs rather than as logos. Each card names what was chosen, what it was chosen over, and the reason that made the difference.

Host

Chose one host with declarative scheduled units over a distributed stack with an orchestrator, because the failure I actually fight is absence of data mistaken for knowledge, and a surface I can enumerate in a single command makes absence loud where a fleet would bury it.

Acquisition

Chose one collector module per data type over one module per vendor, because a schema change or a block then lands on one module and one store instead of on everything that source supplies — SEC EDGAR alone decomposes into twelve modules, each with its own resume state and its own circuit breaker.

Discovery

Chose calendar-anchored discovery over provider-listing discovery, because a what-is-new surface reports what the provider is showing, not what happened — so a collector reconciles against an independent expectation source (an earnings calendar, the filing spine, a trading-day calendar) and chases the difference rather than trusting the index.

Scheduling

Chose declarative timer units over cron one-liners because the unit file is the one place restart, catch-up and drift semantics can be stated and then counted: 44 of 50 catch up after downtime, 29 randomise their start, 8 pin to the US market clock. Cron kept only the 11 jobs it expresses better.

Observability

Chose a watcher that reads artifacts over a watcher that imports the pipeline because a defect in the pipeline must not be able to disable the thing that watches it: standard library only, no pipeline import, and scheduled twenty minutes later so it inspects a result rather than racing one.

Verification

Chose an independent verify stage that re-runs the commands over accepting the fixing stage's report, because a stage can produce a plausible artifact and state a number it never measured — the verifier runs in a fresh context, is handed only the evidence file and the built page, never sees the earlier stages' reasoning, and its gate to advance is zero mismatches and zero unverified claims; the first case study of the week came back FAIL with six of them.

Write scope

Chose per-stage write scopes and tool-call caps over instructions asking a unit to be careful, because a limit written in prose is advice and a limit written into the stage definition is arithmetic — the fix stage writes only into a clean-room worktree and its gate to advance is mechanical rather than declarative: the source tree's `git status --porcelain` unchanged, plus a modification-time sweep over the source since stage start that returns empty.

Security

Chose to deny inbound at two independent layers over one clean rule in the host firewall, because the container daemon writes its own chain that is consulted before the host's user chain — a single rule in the wrong layer is bypassed by the layer above it.

Authorship

I am the architect and author of record; drafts were produced by agent tooling under my protocol and every sentence was approved by me before publication.

That formula is checkable rather than decorative. An approvals ledger holds one row per page — path, content hash, approval date — and the build refuses to publish a page whose current hash has no row. Each evidence page carries its approval date and the first eight characters of the hash it was approved at.

Author approval — 2026-08-23, hash 92f83bd3