Skip to content

Gate record — M0 (Repository bootstrap)

  • Milestone: M0 per docs/prd/18-milestones.md
  • Date: 2026-07-02
  • Recorded per: REQ-MS-002
  • Result: PASS (with GitHub-side items deferred to first push; see §6)

1. Files created

Root governance: LICENSE (Apache-2.0, fetched verbatim from apache.org), README.md, CONTRIBUTING.md, CHANGELOG.md, SECURITY.md, .clang-format, .clang-tidy, .gitignore, .gitattributes.

Build skeleton (configure-only): CMakeLists.txt, CMakePresets.json, cmake/deps.cmake, cmake/flags.cmake, cmake/sanitizers.cmake, cmake/QuiverConfig.cmake.in.

CI / process: .github/workflows/ci.yml, .github/ISSUE_TEMPLATE/bug.yml, .github/ISSUE_TEMPLATE/benchmark-dispute.yml, .github/PULL_REQUEST_TEMPLATE.md, .github/repo-manifest.json, .github/scripts/repo_lint.py.

Documentation: docs/mkdocs.yml, docs/requirements.txt, docs/README.md (with the REQ-DOC-011 lexicon deny-list), per-directory READMEs (docs/{research,design,prompts,architecture,api,benchmarks,guides,internals,testing,releases}/README.md; docs/prd/README.md pre-existed), docs/architecture/module-map.md, docs/guides/building.md, docs/releases/gates/M0.md (this file).

ADR materialization (REQ-DOC-004): docs/adr/ADR-001…ADR-026 (26 files, one per decision, bodies extracted verbatim from the PRD by script with relative links rewritten for the new location) plus docs/adr/README.md (index of all 26, conventions, lifecycle, and the coverage-waiver note from PRD 01 §5).

2. Requirements satisfied (per PRD 18 M0 allocation)

REQ-REPO-001 (manifest + lint live), -008 (module-map), -012 (docs READMEs); REQ-BUILD-011 (presets); REQ-DOC-001, -004, -005, -008 (building.md guide), -009; REQ-SEC-006 (hash-pinned deps, SHA-pinned actions, minimal workflow permissions), -007 (SECURITY.md), -008; REQ-SIMD-010 (SVE2 scan in lint); REQ-STD-002 (.clang-format + CI pin), -007 (.clang-tidy), -009 (DCO check job + convention documented), -010 (PR template); REQ-CI-001; REQ-REL-002 (trunk-based policy documented; protection is GitHub-side, §6); REQ-MS-001, -002; REQ-META-001..004 (process rules in force).

3. ADRs materialized

All 26 (ADR-001 … ADR-026), verified complete by repo_lint.py (count + index cross-check). ADRs realized as policies in force at M0 per the PRD: ADR-001 (layout), ADR-019 (docs toolchain), ADR-024 (release/branching).

4. Commands run (evidence)

# Command Result
1 curl https://www.apache.org/licenses/LICENSE-2.0.txt -o LICENSE 202-line verbatim license text
2 curl -L <googletest v1.15.2 tar.gz> && shasum -a 256 7b42b4d6ed48810c5362c265a17faebe90dc2373c885e5216439d37927f02926 → pinned in cmake/deps.cmake
3 curl -L <benchmark v1.9.1 tar.gz> && shasum -a 256 32131c08ee31eeff2c8968d7e874f3cb648034377dfc32a4c377fa8796d84981 → pinned in cmake/deps.cmake
4 ADR extraction script (python3, assertion-guarded) 26/26 extracted; titles, Status, and Related fields asserted present
5 uv venv (Python 3.12.13) + uv pip install mkdocs-material resolved mkdocs 1.6.1 + mkdocs-material 9.7.6 → pinned in docs/requirements.txt
6 mkdocs build --strict -f docs/mkdocs.yml PASS (final run §5; earlier run with this file absent correctly failed — negative docs-link demonstration)
7 cmake --preset dev, cmake --preset release configure success (CMake 4.3.3, AppleClang; ≥ 3.28 floor honored)
8 cmake --preset dev -DQUIVER_PIN_ISA=bogus correctly rejected with the REQ-DISP-013 actionable error
9 cmake --preset asan-ubsan; -DQUIVER_SANITIZE="thread;address" preset configures; invalid combination correctly rejected (REQ-BUILD-012 / 03 §8)
10 GitHub API check of actions/checkout tag v4.2.2 SHA 11bd71901bbe5b1630ceea73d27597364c9af683 matches the ci.yml pin exactly (REQ-CI-001)
11 python3 .github/scripts/repo_lint.py (before this file existed) correctly failed on the one missing required path — negative tree-manifest demonstration
12 python3 .github/scripts/repo_lint.py (final) PASS (§5)

5. Checks passed locally

  • Tree matches the committed manifest; forbidden-at-M0 directories (include/, src/, tests/, bench/, ledger/, tools/, examples/) confirmed absent (REQ-REPO-001, milestone scope).
  • ADR index complete: 26 entries, files ↔ index cross-checked (M0 acceptance criterion).
  • Docs site builds strict and deploys locally (site/) — M0 acceptance criterion. Note: the PRD-specified config location docs/mkdocs.yml with docs_dir: . was validated empirically against mkdocs 1.6.1 (no deviation needed).
  • Presets configure for dev, release, asan-ubsan; option surface behaves per REQ-BUILD-006 including validation failure modes.
  • Format check: zero C++ sources at M0 — trivially clean by the same rule the CI job implements.

6. Checks not yet verifiable locally (deferred to first push — operator actions)

The repository is not yet a git repository and has no GitHub remote. Consequently:

  1. git init + initial DCO-signed commit — pending operator action.
  2. Branch protection on main (REQ-REL-002; M0 acceptance "branch protection active") — GitHub settings, after first push.
  3. DCO enforcement in anger — the dco-check job is authored and will run on the first PR.
  4. CI job execution (all five jobs) — the workflow is authored with SHA-pinned actions (pin verified against upstream, §4 #10); execution evidence lands on the first PR.
  5. Gate+ "deliberate-violation PR demonstrably blocked" (format / docs-link / tree-manifest) — requires PRs. Local negative equivalents were demonstrated for docs-link (§4 #6) and tree-manifest (§4 #11); the format negative requires C++ sources (none exist until M1) and will be demonstrated on the first M1 PR alongside the other two. Recorded as an accepted partial deferral.

This section is the checklist for the operator; the gate is otherwise complete.

7. Deviations and interpretations

  1. Repo-lint asset locations (.github/repo-manifest.json, .github/scripts/repo_lint.py): REQ-REPO-001 mandates the CI comparison but the PRD predetermines no file path for the manifest/script. Interpretation: they are MOD-CI workflow internals and live under .github/ (ownership per PRD 02 §4). Not a PRD amendment; recorded here.
  2. clang-tidy check bugprone-easily-swappable-parameters disabled globally with in-file reason (kernel signatures are pointer+length shaped by contract). This is the REQ-STD-007 suppression mechanism applied at configuration level; revisit at M1 when real code exists.
  3. Configure-time note: at M0 CMake reports CMAKE_EXPORT_COMPILE_COMMANDS as unused (no targets exist). Expected; disappears at M1.
  4. site_url/repo_url placeholders in docs/mkdocs.yml are env-overridable (QUIVER_DOCS_SITE_URL/QUIVER_DOCS_REPO_URL) until the public repository location exists (naming-diligence gate is an M5 launch item, Charter §1).

No deviations touch charter-bound decisions or PRD requirements; none require an amendment.


Post-gate addendum (recorded at M1): deferred operator actions completed

All §6 items were closed when the repository went live on GitHub (2026-07-02):

  1. git init + DCO-signed initial commit — commit cf76cff ("chore: bootstrap repository governance, build skeleton, CI, and ADR corpus"), Signed-off-by verified.
  2. GitHub repositoryhttps://github.com/div0rce/quiver (public; ARM64 runners and branch protection require it on this plan). Placeholder URLs in docs/mkdocs.yml/CMakeLists.txt were updated in the same commit.
  3. Branch protection on main — enabled: required status checks (repo lint, clang-format, docs build), linear history, no force pushes/deletions. Squash-only merge policy + delete-branch-on-merge set repo-wide (ADR-024).
  4. CI execution — run 28626197013 on the initial push: all five M0 jobs succeeded (dco-check correctly skipped on push events; it runs on PRs).
  5. Gate+ deliberate-violation demos — deferred to the first PR with C++ sources (M1), as recorded.