Skip to content

neurophone: wire MUST enforcement (quality.yml + must-check) + SPDX fixes#161

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/neurophone-repo-setup-envzix
Jul 1, 2026
Merged

neurophone: wire MUST enforcement (quality.yml + must-check) + SPDX fixes#161
hyperpolymath merged 1 commit into
mainfrom
claude/neurophone-repo-setup-envzix

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

RSR wire-first follow-up (after merged #160). MUST.contractile promised
"quality.yml runs must-check on every PR", but neither the workflow nor the validator
existed — and the estate Nickel k9 runner (with its _base.ncl/template-hunt.k9.ncl
bases) isn't wired into this repo (the existing bust.ncl already imports a missing
_base.ncl). So I delivered a portable enforcer that actually runs today.

  • .machine_readable/contractiles/k9/must-check.sh — read-only bash enforcer for the
    mechanically-verifiable MUST invariants: LICENSE = MPL-2.0, 0-AI-MANIFEST +
    .machine_readable preserved, no loose root SCM files, all Actions SHA-pinned, no
    proof escape hatches (believe_me/sorry/Admitted/…), no new TS/Python/Go, no
    hardcoded /home|/mnt paths, SPDX header on every Rust source. Exits 0.
  • .github/workflows/quality.yml — runs must-check on push(main)/PR; SHA-pinned,
    least-privilege, always-created (stable check); advisory EditorConfig pass.
  • MUST.contractile [enforcement] — references the runnable must-check.sh alongside
    the declarative .k9.ncl (no invariants changed; the reference is no longer dangling).
  • Fix the real MUST violation must-check found: added the missing SPDX header to
    crates/claude-client/src/lib.rs and crates/lsm/src/lib.rs.

Verified: must-check exit 0, quality.yml YAML valid, cargo build OK, fmt clean.

FLAGS — external / owner-plane

🤖 Generated with Claude Code

https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh


Generated by Claude Code

… SPDX

MUST.contractile [enforcement] promised "quality.yml runs must-check on every
PR", but neither the workflow nor the validator existed (and the estate Nickel
k9 runner + its _base.ncl/template-hunt.k9.ncl bases are not wired into this
repo — the existing bust.ncl already imports a missing _base.ncl). Wire-first:
deliver a portable enforcer that actually runs today.

- .machine_readable/contractiles/k9/must-check.sh — portable, read-only bash
  enforcer for the mechanically-verifiable MUST invariants: LICENSE=MPL-2.0,
  0-AI-MANIFEST + .machine_readable preserved, no loose root SCM files, all
  GitHub Actions SHA-pinned, no proof escape hatches (believe_me/assert_total/
  sorry/Admitted/unsafeCoerce/Obj.magic), no new TS/Python/Go, no hardcoded
  /home|/mnt paths, SPDX header on every Rust source. Passes clean (exit 0).
- .github/workflows/quality.yml — runs must-check on push(main)/PR, SHA-pinned,
  least-privilege, always-created (no path filters) so it's a stable check;
  advisory EditorConfig pass.
- MUST.contractile [enforcement] — reference the runnable must-check.sh
  alongside the declarative .k9.ncl (no invariants changed; reference no longer
  dangling).
- Fix the real MUST violation must-check surfaced: add the missing
  `// SPDX-License-Identifier: MPL-2.0` header to crates/claude-client/src/lib.rs
  and crates/lsm/src/lib.rs.

Verified: must-check exit 0, quality.yml YAML valid, cargo build OK, fmt clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh
@sonarqubecloud

sonarqubecloud Bot commented Jul 1, 2026

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath marked this pull request as ready for review July 1, 2026 12:30
@hyperpolymath
hyperpolymath merged commit 839cabe into main Jul 1, 2026
31 of 33 checks passed
@hyperpolymath
hyperpolymath deleted the claude/neurophone-repo-setup-envzix branch July 1, 2026 12:31
hyperpolymath added a commit that referenced this pull request Jul 1, 2026
…F→Code Scanning) (#162)

## Summary

Fixes the **recurring `governance / Check Workflow Staleness` red** that
has failed on
every recent PR (#154, #161, …).

**Root cause (pre-existing, from #159):** the Scorecard workflow adopted
in #159 runs
Scorecard in **SARIF** mode and pushes the SARIF into **GitHub Code
Scanning**, but only
fires on `push(main)`/`schedule` — not per-PR-head. The standards
governance staleness
gate forbids exactly that:

> `::error:: OSSF Scorecard must not upload SARIF to GitHub Code
Scanning unless it runs
> for every PR head commit.`

**Fix:** delegate `scorecard.yml` to the canonical standards
`scorecard-reusable.yml@7c9db0e` — it runs Scorecard in **JSON** mode
with
`publish_results` and uploads an **artifact**, and does **not** push
SARIF into Code
Scanning. That's the canonical behaviour #159's title ("adopt canonical
scorecard.yml")
intended, and it satisfies the gate. Job name (`analysis`) preserved for
the required-check
contract.

Also hardened `must-check.sh` (portable `[[:space:]]` instead of
GNU-only `\s`; quoted
`exit "$fail"`).

**Verified locally:** `check-workflow-staleness.sh` → "All workflow
staleness checks
passed"; `scorecard.yml` YAML valid; `must-check` exit 0.

## FLAGS (unchanged)
- `gossamer` + `conative-gating` still 403-blocked → #83 / #103 staged
(needs the repos
  added to the environment's scope).
- OPEN proof obligations 1.1 / 1.2 (formal) / 3.2 remain honestly
staged.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh

---
_Generated by [Claude
Code](https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh)_

Co-authored-by: Claude <noreply@anthropic.com>
hyperpolymath added a commit that referenced this pull request Jul 1, 2026
…gfault (#163)

## Summary

Fixes the **recurring `rust-ci / Coverage (tarpaulin + codecov)` red**
(failed on #161,
#162, …) with a **locally-verified** repo-side change.

**Root cause:** the standards rust-ci reusable runs `cargo tarpaulin
--out Xml` with the
default **ptrace** engine, which **segfaults** on the CI runners while
instrumenting the
property-test binary (`"Failed to run tests: A segfault occurred while
executing tests"`).
It's a tarpaulin instrumentation flake — the suite passes under `cargo
test`, and the
ptrace engine doesn't even reproduce the segfault locally.

**Fix:** `tarpaulin.toml` selecting the **LLVM (source-based) engine**,
which avoids
ptrace entirely. The reusable's `cargo tarpaulin --out Xml` reads this
`[default]`
profile, so **no standards-reusable change is needed**.

**Verified locally** (I installed tarpaulin and reproduced the setup):
- default engine locally → passes (segfault is CI-runner-specific);
- `[default] engine = "Llvm"` + `cargo tarpaulin --out Xml` → activates
`LLVM_PROFILE_FILE` coverage across 26 test binaries, exits 0, writes a
valid
  `cobertura.xml`.
- Note: the value must be capitalized `"Llvm"` — serde is
case-sensitive; lowercase
  silently falls back to ptrace.

This clears the last **repo-side-fixable** CI red. Remaining reds are
genuinely external:
`governance / Validate Hypatia Baseline` is pre-existing **#41 debt**
(needs the hypatia
CLI, out of session scope, or a baseline-regen decision), which the
owner has merged past.

## FLAGS (unchanged)
- `gossamer` + `conative-gating` still 403-blocked → **#83 / #103
staged** until added to
  the environment's repo scope.
- OPEN proof obligations 1.1 / 1.2 (formal) / 3.2 remain honestly
staged.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh

---
_Generated by [Claude
Code](https://claude.ai/code/session_0172RBMz3qYjb1ttzD2i7RNh)_

Co-authored-by: Claude <noreply@anthropic.com>
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.

2 participants