Skip to content

feat(000): found the spec corpus, the harness, and the governed gate - #1

Merged
bartekus merged 2 commits into
mainfrom
000-hqgit-bootstrap
Sep 3, 2026
Merged

feat(000): found the spec corpus, the harness, and the governed gate#1
bartekus merged 2 commits into
mainfrom
000-hqgit-bootstrap

Conversation

@bartekus

@bartekus bartekus commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

hqgit is specified before it is built. This lands the whole design and the
machinery that keeps future code faithful to it.

  • 68 specs. 000 (the bootstrap spec: what a spec is, and the frozen
    invariants), 001 (the agentic harness), 002 (the platform thesis: layer
    model, nouns, crate topology, eight build waves), 003 (the rahi chassis
    boundary), and 64 ordinary specs, every one status: approved and
    implementation: pending. Spec ordinals are the build order, so the
    lowest-numbered ready spec is the next work order.
  • Governance. spec-spine 0.11.0: spec-spine.toml with the layer
    taxonomy, a closed kind enum, require_ownership on, and every
    agent-steering surface hashed; the fifteen-principle constitution, the
    corpus contract, and the spec template under standards/; the compiled
    registry and index shards committed under .derived/.
  • The gate. make spine and make ci, both guarded for the pre-Cargo
    tree, and .github/workflows/govern.yml re-running exactly that on every
    pull request plus a corpus attestation artifact.
  • The harness. AGENTS.md (session protocol and backlog discipline),
    CLAUDE.md, fifteen skills, six agents, six rules, and hooks that refuse
    a push to main and refuse gh pr create on a red coupling gate.
  • Design docs. docs/design/00-architecture.md (the analysis) and
    docs/design/01-build-order.md (the spec DAG, rendered).

Spec 003 arrived after the rest of the corpus, so this change also refreshes
what indexes it: the rendered DAG (68 specs, 003 as a wave 1 leaf on 002),
the record-spec range in AGENTS.md step 0, and the pointers in README.md
and CLAUDE.md.

Open decision carried by 003

003 B-3 leaves the wave 6 transport question open and names it: rahi's edge
is axum over HTTP, while 090 currently multiplexes HTTP/1.1 and gRPC on one
port with tonic. The preferred resolution is the Connect protocol over plain
HTTP, which 093 already names and axum serves natively, so no multiplexing
is needed and rahi is unchanged; the fallback is a rahi spec that mounts a
tonic service into its router. FR-004 requires whichever is chosen to be
recorded as a D-n entry in 090 before 090 is flipped to in-progress. It
does not block any spec below wave 6.

Testing

  • make spine: compile 68 specs (0 warnings), index, lint --fail-on-warn
    (0 warnings), index check fresh, couple --base origin/main clean over
    108 checked paths, spec-dag.sh acyclic with every dependency
    lower-numbered and one root.
  • make ci: the above plus index coverage --fail-on-untraced. The cargo
    and deny targets report that they are waiting for spec 010, which is the
    guarded behavior this tree is meant to have.
  • scripts/verify-spec.sh on the record specs: 001 passes (3 commands), 003
    passes (1 command), 000 and 002 declare no ## Verification block.

hqgit is specified before it is built: this lands the whole design and
the machinery that keeps code faithful to it.

- 68 specs: 000 bootstrap with the frozen invariants, 001 the agentic
  harness, 002 the platform thesis, 003 the rahi chassis boundary, and
  64 ordinary specs across eight waves, approved and pending
- spec-spine 0.11.0 governance: spec-spine.toml, the constitution, the
  corpus contract, the spec template, and the committed registry and
  index shards under .derived/
- the gate: make spine and make ci, guarded for the pre-Cargo tree, and
  govern.yml re-running it on every pull request
- the harness: the AGENTS.md session and backlog protocol, CLAUDE.md,
  fifteen skills, six agents, six rules, and hooks that refuse a push to
  main and a pull request on a red coupling gate
- docs/design: the architecture analysis and the rendered spec DAG
GitHub allows hashFiles only inside a step, so the job-level guards on
Cargo.toml and deny.toml failed the workflow at startup: the run reported
as "no checks" on the pull request instead of as a gate result. The spine
job now probes the tree after checkout and publishes has_cargo and
has_deny for the cargo and deny jobs to gate on. Recorded as D-3 on 001.
@bartekus
bartekus merged commit 316762b into main Sep 3, 2026
4 checks passed
@bartekus
bartekus deleted the 000-hqgit-bootstrap branch September 3, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant