Skip to content
This repository was archived by the owner on Aug 10, 2026. It is now read-only.

chore(sop): CANON.md + release-please workflow + lefthook pre-push - #10

Merged
todie merged 1 commit into
mainfrom
chore/sop-compliance
Jul 28, 2026
Merged

chore(sop): CANON.md + release-please workflow + lefthook pre-push#10
todie merged 1 commit into
mainfrom
chore/sop-compliance

Conversation

@todie

@todie todie commented Jul 28, 2026

Copy link
Copy Markdown
Member

Global SOP dogfood compliance for escapement (per audit Track escapement).

  • CANON.md (ground-truth doctrine — was missing despite being a registered federated node)
  • .github/workflows/release.yml (release-please manifest mode, SHA-pinned)
  • lefthook.yml pre-push affected-CI gate (cargo test --all-targets)

The 1 unsigned commit (adcadf5, orrery→escapement rename) is surfaced as a known deviation — not rewritten (already pushed).


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith with what you need. Autofix is disabled.

Bring escapement onto terrarium federated-node standards (adopt-standards.md §1):
the three SOP pillars the dogfood audit flagged as missing for this registered
node.

1. CANON.md — ground-truth doctrine doc. Lineage frontmatter conforms_to
   terrarium/CANON.md; defines escapement, dispatch-protocol, custody-bridge,
   metering. Consolidates the shape from README.md + docs/dispatch-protocol-v0.1.md
   into one doctrine with a modules table, integration-contract edges, custody +
   observability posture, and hard rules. Registered node was missing its CANON
   (adopt-standards §1D + the lineage convention).

2. .github/workflows/release.yml — wired release-please (adopted from the soma-os
   workflow + unsigned-paas house rule). Manifest mode driven by the existing
   release-please-config.json + .release-please-manifest.json (two packages:
   crates/escapement-core [rust], edge/worker [node]). Actions SHA-pinned
   (no @latest / bare @vn). A standing Release PR replaces the manual tag flow.

3. lefthook.yml — added the pre-push affected-CI gate (was commit-msg +
   pre-commit-gitleaks only). Escapement is a Cargo workspace with no moon/proto
   toolchain, so the gate runs `cargo test --all-targets` (mirrors ci.yml's rust
   job — the "green before push = no CI surprise" invariant).

Known deviation surfaced (not rewritten): adcadf5 ("refactor: rename project
orrery → escapement") is the one unsigned commit in history (Christian Todie,
pre-custody bootstrap). It is already pushed; rewriting shared history is
disallowed. All commits from this change forward are signed — branch protection
should require signed commits to keep it that way.

Not in scope for this slice (per audit next_slice_priorities.escapement, operator-
gated): SHA-pinning the 5 Actions in ci.yml; adding moon/proto/cliff toolchain;
adding CLAUDE.md; Forgejo self-hosted CI.

No push, no PR — local commit for operator coordination.
@github-actions

Copy link
Copy Markdown

🤖 Agent Jury — ⚠️ needs-changes

Field Value
Model glm-5.2
Verdict needs-changes
Confidence high
Findings 1

Summary

Introduces the release-please GitHub Actions workflow, CANON.md doctrine, and a lefthook pre-push gate. The pre-push hook fails to enforce formatting and clippy checks as mandated by the newly added CANON.md, risking CI surprises on push.

Findings

Severity File Line Issue Suggestion
warning lefthook.yml 25 The pre-push hook runs cargo test --all-targets but omits cargo fmt --check and cargo clippy -D warnings, breaking parity with the CI gate mandated in CANON.md §Hard rules. Update the pre-push hook to execute cargo fmt --check && cargo clippy -D warnings && cargo test --all-targets to match the documented CI gate.

Automated review by GLM-5.2 via LiteLLM gateway. Advisory — a human makes the final call.

@todie
todie merged commit e75aa77 into main Jul 28, 2026
4 checks passed
@todie
todie deleted the chore/sop-compliance branch July 28, 2026 19:22
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant