Repository navigation
feat: land the contractiles tree vendored in reposystem (147 files, incl. the contractile CLI) - #68
Conversation
Lands 147 files from hyperpolymath/reposystem@8456796^:contractiles/ (the parent of the 2026-06-21 commit that replaced the vendored directory with a gitlink). Until now the content existed only in reposystem history. Landed verbatim at their vendored paths: cli/ (Rust workspace, crates contractile + contractile-core), mustfile/, runners/, config/, policy/, keys/, schema/, the dust/intent/trust spec docs, docs/A2ML-FORMAT.adoc, docs/CLI-REFERENCE.adoc, scripts/check-6scm.sh, .flux/README.adoc. Not landed: vendored .github/, .claude/, .machine_readable/, every *.a2ml (A2ML is retired; D313 forbids hand conversion), and the template scaffold on every path both trees share. This repo's version wins on all 24 shared paths. .machine_readable/root-allow.txt gains the 11 new top-level entries, with a comment giving where they came from. Authorised by the owner's 2026-10-09 ruling on the empty/template repo census ("get that stuff out"). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BbkZgW7JLugsZ5MhRjF8iE
|
Important Review skippedToo many files! This PR contains 146 files, which is 46 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry. ⚙️ Run configuration
⛔ Files ignored due to path filters (2)
📒 Files selected for processing (146)
You can disable this status message by setting the
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|




Summary
This PR moves the contractiles tree that
reposystemvendored into this repo. Until now that content existed only in reposystem's history, athyperpolymath/reposystem@845679600b292e86c0389401c9d59671565be6bc^:contractiles/. That is the parent of the 2026-06-21 commit845679600b29("extract the 5 local-only standalones to gitlinks"), which deleted the 236-file vendored directory and left a gitlink pointing here. None of the 236 files had ever reached this repo.Authority: the owner's 2026-10-09 ruling on the empty/template-repo census ("they should all be standalone rsr-template-repos … get that stuff out"). The census and the ruling are in
dev-notes/administration/estate-management/empty-template-repo-census-2026-10-09/.This PR conflicts with ADR-0002, so it needs your eye. ADR-0002 (
docs/decisions/0002-contractile-cli-spec-first.adoc, status Proposed) and the 2026-10-03 audit (docs/reports/audit/contractile-cli-audit-2026-10-03.adoc§E2) both say there is "nocli/" and that the CLI "existed in an unpublished local checkout and was lost, or never existed". That premise is false. The CLI is the 20-file Rust workspace atreposystem@845679600b29^:contractiles/cli/, and this PR lands it ascli/.contractile --helplistsmust,trust,dust,intend,adjust,k9,gen-just,initandstatus..github/workflows/contractile.yml, which this PR does not land, so no workflow invokes the binary.Auto-merge is deliberately not armed. The only required context here is
scan / gitleaks, which goes green within seconds of opening. Arming would merge a 22k-line PR that conflicts with an ADR before anyone reads it, so it waits for a human merge.Changes
cli/(20): Rust workspace, cratescontractileandcontractile-core, withCargo.lock;mustfile/(54): the Mustfile runner project (Ada/SPARK, shell launchers, man page, spec);runners/(57): per-verb runners (must/is a full Rust + Ada project;trust/,intend/,just/,bust/READMEs);config/(5),policy/(2),keys/signing.pub(an Ed25519 public key),schema/version.txt;dustfile/,intentfile/andtrustfile/spec docs;docs/A2ML-FORMAT.adoc,docs/CLI-REFERENCE.adoc,scripts/check-6scm.sh,.flux/README.adoc..machine_readable/root-allow.txt: 11 new top-level entries, under one dated comment naming their source. Paths stay as vendored so their origin can be traced; moving them is a ratification-time decision.README.adoc(this repo's spec-first self-description, 80 lines, not the vendored 298-line one),docs/QUICKSTART.adoc,MAINTAINERS.adoc,Justfile,LICENSEand the workflows. This PR modifies no existing file exceptroot-allow.txt..a2mlfiles. A2ML is retired (D99/D269c), and D313 forbids hand conversion. These are the contractile declarations themselves, recoverable atreposystem@845679600b29^, pending kcX:must/Mustfile.a2ml,trust/Trustfile.a2ml,intend/Intentfile.a2ml;contractiles/{dust/Dustfile,must/Mustfile,trust/Trustfile}.a2ml;runners/must/0-AI-MANIFEST.a2ml;runners/must/.machine_readable/6a2/{AGENTIC,ECOSYSTEM,META,NEUROSYM,PLAYBOOK,STATE}.a2ml..github/files and 1.claude/file: vendored CI and agent config. This repo has its own.CODE_OF_CONDUCT.md,ROADMAP.adoc,ffi/zig/*,contractile.just,contractiles/*/README.adoc,runners/must/STATE.adoc.📌 New pins
b1a57f16dea9d1cf9ceea8d85aad1c5c9e004a80cli/Cargo.lockis new: 72 package records, unchanged from the vendored copy.cargo test --lockedresolves against it.uses:SHAs,actions.lockentries or container digests are added or changed.RSR Quality Checklist
Required
Tests pass.
cargo test --lockedincli/: 8 passed, 0 failed. The Ada/SPARK code inmustfile/andrunners/must/was not built or tested in this PR.Code is formatted. Not done, on purpose:
cargo fmt --checkincli/exits 1, and the code is landed byte-for-byte so it matches its source sha. Formatting is a follow-up commit, kept separate so this diff stays a pure copy.Linter is clean.
cargo clippy --lockedincli/printed no warnings or errors.No banned language patterns. The landing has no TypeScript,
package.json, bun/npm lockfiles, Go or Python.mustfile/scripts/shells/holds one launcher per shell, including.ps1and.cmd.No
unsafeblocks. Both crates declare#![forbid(unsafe_code)].No banned functions. A grep for
believe_me,unsafeCoerce,Obj.magic,Admittedandsorryover the 147 files found none.SPDX headers on all new files. 31 landed files lack one, kept verbatim:
runners/must/src/{manifest,rollback,state,task}.rs;runners/must/Cargo.tomland themustfile.tomlfixtures;runners/must/SPARK-*.md;README.adoc/INSTALL.adocfiles;scripts/check-6scm.sh.The rest carry
PMPL-1.0-or-later. Note thatcli/Cargo.tomldeclareslicense = "MPL-2.0"while its sources sayPMPL-1.0-or-later; that mismatch is vendored, not introduced here.No secrets.
gitleaks detect --log-opts=origin/main..HEADfound no leaks.keys/signing.pubis a public key.As Applicable
.machine_readable/6a2/STATE.a2mlupdated. N/A: A2ML is retired, so no.a2mlfile is added or edited..machine_readable/6a2/ECOSYSTEM.a2mlupdated. N/A, same reason..machine_readable/6a2/META.a2mlupdated. N/A, same reason. The ADR conflict is stated above instead.README.adockeeps this repo's version on purpose. The landeddocs/CLI-REFERENCE.adocdocuments the CLI.TOPOLOGY.mdupdated. N/A: there is noTOPOLOGY.mdat the root.CHANGELOGupdated. Not updated; I'd rather the owner word that entry once the ADR question is settled.cli/crates (clap, clap_complete, anyhow, serde, serde_json, colored, toml) are MIT/Apache-2.0, which is compatible.src/interface/is not touched. The vendoredffi/zig/stub was not landed (it is template scaffold).Testing
mainatd440161is already red on Dogfood Gate, Governance, Static Analysis Gate and Well-Known Standards, and CodeQL ends instartup_failure. Any of those that is red here was red before this PR.Screenshots
🤖 Generated with Claude Code
https://claude.ai/code/session_01BbkZgW7JLugsZ5MhRjF8iE