This node's per-standard record of what is actually adopted — the artifact whose absence
blocks a summary claim. One row per hub standard. It exists so that no Standards adopted ✅
can be written without a backing row, and so a future post-mortem (or the hub's report-review
spot-check) can diff a claim against reality cheaply. Governed by the hub standards
checklists-are-contracts and the notes system; read by the
release gate in git-workflow.md. The canonical, project-agnostic template
lives in the read-only hub clone at
assets/references/fairyfox.io/hub/templates/notes-skeleton/reference/adoption-manifest.md.
Seeded 2026-08-02 against hub 1.6.1 / 2d614f0 (adopting the 0.20.2 → 1.6.1 version span —
the standards-changelog entries across it are 0.21.0 → 1.6.0). First full compliance pass run
2026-08-02 — each standard's ## Verify was walked and the result recorded below (date + result).
Rows that passed are implemented; rows with an open remainder are gap(<due>) with the specific
finding named. The pass is not all-green: see the headline findings under Compliance audit
result below.
Date-accuracy note. The earlier adoption commits/report/session in this effort were mis-dated 2026-07-25 (anchored on the hub commit date); the real date was 2026-08-02. Git commit timestamps are authoritative; this manifest and all later artifacts use the correct 2026-08-02.
The rules (do not soften)
copied-onlyis not adopted. A file landing innotes/reference/iscopied-only. A row flips toimplementedonly when that standard's## Verifytable has been run and its result recorded here (date + per-row pass).- No summary claim without a row.
status.mdHealth, the registryadopts_hubflag, and any process report's "adopted X" must be backed by a row here. A bareStandards adopted ✅is banned wording (checklists-are-contracts). - A partial names its remainder. Every not-yet-adopted standard is a
gaprow with a due marker — the remainder lives here, owned and dated, never only in prose.
State vocabulary
implemented (Verify run + recorded) · copied-only (file present, Verify not run) ·
gap(<due>) (not adopted / open remainder; when it will be) · N-A(<reason>) (does not apply to
this project's kind — say why).
Manifest
Adopted @ = the hub VERSION/commit the row was last reconciled against. Last Verify = date +
result. Evidence = a link/path to the proof.
| Standard | State | Adopted @ | Last Verify | Evidence |
|---|---|---|---|---|
| git-workflow | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (main protected: enforce_admins + strict + required-conversation-resolution; v2.60.2 cut as a merge-commit tagged release; no master) |
branch protection API; .github/workflows/*; git-workflow.md. Note: 3 core required contexts (lint/format/smoke/unit · SPA build · Detox on-device) — not literally every CI job |
| versioning | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (VERSION 2.60.2 == tag v2.60.2 == package.json) |
versioning.md |
| notes-system | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (notes tree present; status.md current; inline changelog; this manifest exists) |
../README.md |
| ai-context | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (CLAUDE.md: identity · start-here · landmines · build/run · Default Workflow incl. phase-by-default · notes-maintenance) | repo-root CLAUDE.md |
| cross-project-sync | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (this effort's adopt flow: read-only git-ignored clone, on-request, no hub write; ledger read-only) | cross-project-sync.md |
| process-reports | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (adopting-updates report + this compliance-audit report written) | process-reports.md; ../fairyfox-reports/ |
| compliance | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (this full audit walked every row) | compliance.md |
| checklists-are-contracts | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (this manifest is the enforcing artifact; audit itemized per standard; no bare ✅) | checklists-are-contracts.md |
| mandate-ledger | gap(triggers on next multi-part owner directive) | 1.6.1 / 2d614f0 | 2026-08-02 — note present + wired, but no notes/plans/<date>-mandate.md has been triggered (the directives so far were single-intent "do X in full", not enumerable multi-clause lists), so the Verify can't be exercised yet |
mandate-ledger.md |
| planning | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (plan-first + live task lists throughout; phase-by-default folded into CLAUDE.md step 0) | planning.md |
| docs-site | gap(next docs-site preview session) | 1.6.1 / 2d614f0 | 2026-08-02 — partial: vendored chrome 2.2.1 vs master 2.3.0; 1.4.0 subnav/on-site-Notes/whole-chrome/coins-presence are browser-gated, not verified | assets/docs-theme/; hub docs-site/ standard |
| deployment | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (release.yml cut v2.60.2 with a CI-derived tag, not hand-pushed; pages.yml/netlify-deploy.yml present) |
deployment.md; gh release list |
| testing | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (npm test green locally; Playwright E2E/perf/a11y + Detox on-device green on release PR #61) |
../plans/testing.md |
| engineering-quality | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (base quality: no hacks; features finished; docs current) — ship-contract sub-part is a separate row below | engineering-quality.md |
| ship-contract | implemented | 1.6.1 / 2d614f0 | 2026-08-02 — Scorecard remediated: 6.7 → projected ~7.4 ≥ 7.0. The dominant lever (Vulnerabilities, was 0) is now cleared: verified with osv-scanner v2.4.0 = "No issues found" (the exact tool Scorecard's Vulnerabilities check runs). Fixable advisories fixed (root/web npm audit fix; mobile postcss/brace-expansion overrides); genuine-no-fix ones documented + filtered via osv-scanner.toml (17 unmaintained Tauri-Linux gtk3-rs/glib/proc-macro/unic Rust crates + 1 build-time Expo uuid) per the Scorecard-sanctioned mechanism. Tech-debt (Sonar gate) + PR-triage ✓. Public API refreshes on OSSF's weekly rescan |
osv-scanner run; targets/{web-shell,mobile}/osv-scanner.toml; engineering-quality.md |
| supply-chain-hardening | gap(attach release provenance as .intoto.jsonl asset) | 1.6.1 / 2d614f0 | 2026-08-02 — mostly resolved: SAST 10, Token-Permissions 10, Dangerous-Workflow 10, Dependency-Update-Tool 10; known vulns now cleared (osv-scanner = 0). Remaining: Signed-Releases 8 (artifacts signed via cosign .sigstore.json, but SLSA provenance lives in the attestations API, not attached as a .intoto.jsonl release asset → optional, improves over the 5-release window); Pinned-Dependencies 4 (npm commands can't be hash-pinned) |
.github/workflows/{scorecard,codeql,sonar,release}.yml; osv-scanner |
| dependencies | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (deps justified + current majors; all four Dependabot groups triaged + merged this effort). Note: npm audit = 5 (1 low, 4 high) in dev/subpackage deps — tracked under supply-chain gap |
dependencies.md; .github/dependabot.yml |
| repo-hygiene | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (check:docs/check:tidy/check:committed green; 5 stale Dependabot branches pruned — remote now only main/dev) |
repo-hygiene.md |
| docs-lifecycle | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (docs current; link-not-restate honoured) | documentation.md |
| research-capture | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (findings captured as reference/ notes; load-bearing facts verified with the probe — e.g. live Scorecard, font-CDN grep) |
research-capture.md |
| working-rhythm | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (multi-step work task-tracked live; long runs backgrounded then surfaced) | working-rhythm.md |
| self-hosted-assets | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (0 googleapis/gstatic/typekit refs in targets/web source; fonts under targets/web/public/fonts/) |
self-hosted-assets.md |
| legal-docs | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (all three pages present; no data-practice change this effort, so no re-date needed) | targets/web/public/legal/{privacy,terms,cookies}.html |
| coins | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (base counter vendored: assets/docs-theme/modules/coins.js present). Browser presence check is part of the docs-site gap |
coins.md |
| badges | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (all 20 canonical badges present in order + allowed Node runtime badge; social image exempt) | README.md badge block |
| readme | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (worded docs link near top, organized "Get it" section, mesh footer) | readme.md; README.md |
| agent-tooling | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (PowerShell + file tools used throughout, no bash sandbox; .gitattributes * text=auto eol=lf) |
agent-tooling.md |
| maintenance-sweep | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (release hygiene run this effort: PRs closed, stale branches pruned, main⊆dev) |
maintenance-sweep.md |
| adoption-manifest | implemented | 1.6.1 / 2d614f0 | 2026-08-02 pass (this file: one row/standard, ## Verify present, states honest) |
this file |
| docker | gap(next adopt pass: ship a Linux build/test Dockerfile/compose) | 1.6.1 / 2d614f0 | 2026-08-02 — no Docker asset committed; RAP has Linux-only loops (Playwright Linux baselines, Detox) so it applies | docker.md |
| farm-operating-model | N-A(single-project node) | 1.6.1 / 2d614f0 | 2026-08-02 | integrated-farm tier only |
| new-project-setup | N-A(runbook) | 1.6.1 / 2d614f0 | 2026-08-02 | join-time runbook, not a standing rule |
| onboarding-existing-project | N-A(runbook) | 1.6.1 / 2d614f0 | 2026-08-02 | join-time runbook |
| adopting-updates | N-A(runbook) | 1.6.1 / 2d614f0 | 2026-08-02 | procedure runbook (exercised this effort) |
Compliance audit result (2026-08-02)
26 of 30 applicable standards implemented (34 rows − 4 N-A = 30 applicable; 4 non-implemented:
mandate-ledger, docs-site, supply-chain, docker); the rest are honest, dated gaps. Updated
2026-08-02 (Scorecard remediation): ship-contract moved gap → implemented — the Scorecard
Vulnerabilities check was remediated (see finding 1).
The audit walked every standard's ## Verify (checklists-are-contracts). Headline findings, in
priority order:
- ship-contract — OpenSSF Scorecard 6.7 < 7.0 → REMEDIATED 2026-08-02 (projected ~7.4). The
dominant lever, Vulnerabilities (was 0), is now cleared and verified with osv-scanner v2.4.0
= "No issues found" — the exact tool Scorecard's Vulnerabilities check runs. What was done:
fixable advisories fixed (root/web
npm audit fix; mobile postcss/brace-expansion pinned viaoverrides), and the genuine-no-fix ones documented + filtered viaosv-scanner.tomlnext to each manifest (the Scorecard-sanctioned mechanism, checks.md#vulnerabilities): 17 unmaintained Tauri-v2-Linux gtk3-rs/glib/proc-macro/unic Rust crates (no upstream fix; confirmedcargo audit) + 1 build-time-only Expouuidadvisory. Vulnerabilities 0 → 10 (weight High) lifts 6.7 to ~7.4. The publicapi.securityscorecards.devscore refreshes on OSSF's weekly rescan — the fix is verified now via osv-scanner; confirm the public number after the next scan. The still-structural checks (Code-Review 0, Branch-Protection 4, Contributors 3 — all require a second maintainer/org) remain low but no longer block the floor. - supply-chain-hardening — partial. Strong on SAST/token-permissions/dangerous-workflow/update- tool; releases are signed but carry no provenance (Scorecard Signed-Releases 8) and Pinned-Dependencies is 4 (npm commands unpinned). Attach provenance + address vulns.
- docs-site — partial (browser-gated). Vendored chrome 2.2.1 vs master 2.3.0 + the 1.4.0 visual requirements; needs a preview session.
- docker — gap. No committed Dockerfile for the Linux-only test loop.
- mandate-ledger — copied-only. No multi-part directive has triggered a ledger yet.
Resolved during the audit: repo-hygiene branch litter — 5 stale Dependabot branches pruned; the
remote now carries only main and dev.
Open gaps (owned + dated)
RESOLVED 2026-08-02 — Vulnerabilities cleared (osv-scanner verified), projected ~7.4; confirm the public score on OSSF's next weekly rescan.gap: ship-contract Scorecard ≥ 7.0.gap: supply-chain release provenance (optional). Attach the SLSA provenance attestation as a.intoto.jsonlrelease asset (currently it lives in the GitHub attestations API; releases already carry cosign.sigstore.jsonsignatures, so Signed-Releases is 8/10). Improves over the 5-release window. Due: a future release-workflow pass. Not a floor-blocker.gap: docs-site visual adoption + chrome 2.2.1 → 2.3.0 (browser-gated). Due: next docs-site preview session.gap: docker path. A committedDockerfile/compose.yamlfor the Linux-only test loop. Due: next adopt pass.gap: mandate-ledger exercise. The note is adopted + wired, but no multi-part owner directive has yet triggered anotes/plans/<date>-mandate.md, so its Verify is unexercised. Due: the next genuinely multi-clause owner directive.
User exceptions (dated)
None. No badge, README link, or other default-required item has been dropped on a user-granted exception; every canonical badge and required README cross-link is present.
Verify (is it being followed?)
The per-manifest slice the compliance audit aggregates — report
done/partial/missing:
| Passes only when… | How to check |
|---|---|
| Every adopted hub standard has exactly one row, with a state from the vocabulary | diff the row list against hub/standards/ in the read-only clone; no standard missing, no duplicate |
No row reads implemented without a recorded per-row ## Verify pass (date + result in Last Verify) |
scan implemented rows for a dated Verify result; a blank Last Verify on an implemented row is a fail |
Every gap names a due marker; every N-A names a reason |
read the state column — no bare gap/N-A |
No summary claim elsewhere lacks a backing row (no bare Standards adopted ✅ in status.md/reports) |
grep status.md, notes/fairyfox-reports/, changelog for unbacked ✅/"adopted" over a set |
| Any dropped default-required item (badge, README link) has a dated User exceptions row | cross-check the badges/readme Verify against the User-exceptions section |
Adopted @ matches the hub VERSION/commit the row was last reconciled against |
compare against assets/references/fairyfox.io/VERSION at reconciliation time |