Repository navigation
chore(hypatia): delete dead ci-templates/mirror.yml, qualify echidnabot paths, baseline → JCS [stack 2/3] - #433
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 44 minutes. View limit details
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📜 Recent review details
📝 Summary
Merge Risk: ⚪ Minimal · up to
|
|
@coderabbitai review (Stacked PR on #432, so its base isn't the default branch and auto-review skipped it. The review should cover only commit Generated by Claude Code |
✅ Action performedReview finished.
|
…bot-path SD022; baseline -> JCS Validate Hypatia Baseline is red on main (6 findings from #426/#427). - echidna-playground/ci-templates/mirror.yml (download_then_run_shell, `curl -sSf https://radicle.xyz/install | sh`): deleted. The template never ran (GitHub reads only root workflows; ci-templates/README.adoc) and the live root mirror.yml uses the standards reusable workflow. Its dead baseline ack under the pre-#417 path echidna-playground/.github/workflows/mirror.yml is retired. - SD022 in issues/echidnabot-01-*.md, .github/issues/echidnabot-01-*.md and docs/handover/PARADISEO-ROADMAP-PROMPT.adoc: the src/api, src/scheduler, src/modes and src/dispatcher paths are echidnabot's tree (all four exist there), so these are cross-repo references, not renames. Acknowledged under #314, one entry per (file, type), which is how apply-baseline.sh matches. - .hypatia-baseline.json is now JCS (RFC 8785) I-JSON plus a final LF (.editorconfig), per the estate format standard: same entries, sorted keys, no insignificant whitespace. Validated with standards@571cc734 scripts/apply-baseline.sh (the pinned reusable's filter): the new baseline passes its schema check and keeps 0 of the 5 SD022 findings (exit 0); main's baseline keeps all 5 (exit 1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
…het 71 -> 70) The Exemption ratchet rejected the previous commit: baselining the five SD022 hits grew .hypatia-baseline.json 71 -> 73, and the gate's rule is "remove the finding rather than the report" (hypatia's CLAUDE.md also ranks the baseline last, after fixing at source). SD022 matches only a root-relative `src/<dir>/`; a `src/` preceded by another path segment is, in hypatia's own words, "that other tree/crate/repo" (lib/rules/structural_drift.ex lookbehind). The five references name echidnabot's tree, so they now say so: echidnabot/src/api/, echidnabot/src/scheduler/, echidnabot/src/modes/ (issues/echidnabot-01-*.md, .github/issues/echidnabot-01-*.md) and echidnabot/src/dispatcher/ (docs/handover/PARADISEO-ROADMAP-PROMPT.adoc). The three SD022 baseline entries are dropped; the retired dead mirror ack keeps the ledger at 70, below main's 71. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3
0850e4a to
64d6291
Compare
…w, owner norms [stack 3/3] (#435) ## Summary Stack 3 of 3. #432 and #433 have merged, so this PR now targets `main`. It holds the ECH-05 follow-ups the owner decided after #430 merged, plus the owner's norms written down where agent sessions read them. **History rebuilt, 2026-10-14 (owner decision: force-with-lease).** The branch used to carry the pre-squash copies of #432 and #433. Rebase-merge replayed them onto `main`, which already had the squash commits, and conflicted on `.hypatia-baseline.json`. The branch is now this PR's own four commits on current `main` (5583c70), so it rebase-merges cleanly. Its tree is byte-identical to the old head (75288e7) merged with `main`. ## Changes - **`tests/fixtures/arbitration_regression.json` → JCS** (RFC 8785) I-JSON plus a final LF. - It is re-serialised, not regenerated. All 327 numbers, and the whole document, compare equal to the fixture recorded at `29b18ea`; only spellings change (`0.0` → `0`). This is the source of the large deletion count. - The regenerator now writes JCS. - A new test, `fixture_is_jcs_canonical`, keeps it canonical. A pretty-printed fixture fails it; I ran that negative control. - **ROADMAP stage 6 and the gap-analysis pair table:** HOL4 ↔ HOL Light through OpenTheory is the first target (owner decision, 2026-10-14). Lean 4 ↔ Rocq through Dedukti is the next candidate. - **`issues/README.md`:** ECH-05 is #431, closed as completed by #430, and is the arbiter-typing slice of #429, which stays open. - **`.claude/CLAUDE.md`, owner norms:** - decisions are asked with the selector tool; - work lands as stacked PRs; - findings are fixed at source. The exemption ratchet admits ledger growth only with a `Ratchet-exception:` line naming the ledger. - The format standards point at their normative source in standards: `YAML-POLICY.adoc` (KYAML, `.kyaml`; D280/D307/D293), the workflow gate in standards#1025, `JSON-POLICY.adoc` (I-JSON as JCS; D306) and ADR-008 (UUID v8; D305/D305b/D320). - The UUID rule is scoped until the `ids.rs` migration lands. `ids.rs` still mints v7 records and v8 content ids without a domain. This is the wording the owner accepted on proof-burrower#111. ## RSR Quality Checklist ### Required - [x] Tests pass (`cargo test --test arbitration_regression_test`: 2 passed, 1 ignored) - [x] Code is formatted (`cargo fmt --all -- --check`) - [x] Linter is clean - [x] No banned language patterns - [x] No `unsafe` blocks - [x] No banned functions - [x] SPDX license headers present on all new/modified source files - [x] No secrets, credentials, or `.env` files included ### As Applicable - [x] `docs/ROADMAP.adoc` updated (stage 6 first target) - [x] Documentation updated - [ ] Others: n/a ## Testing ``` $ cargo test --test arbitration_regression_test test numeric_fusion_unchanged_and_level_is_belief ... ok test fixture_is_jcs_canonical ... ok negative control: pretty-printed fixture → fixture_is_jcs_canonical FAILED ("fixture must be JCS (RFC 8785) canonical") jq: 327 numbers equal, documents equal (29b18ea fixture vs JCS fixture) ``` ## Stack 1. #432: `quinn-proto` lockfile bump (merged) 2. #433: Hypatia findings fixed at source, baseline → JCS (merged) 3. **This PR**: ECH-05 follow-ups and owner norms 4. #436: workflow checkers read KYAML (S4), stacked on this PR 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3 --------- Co-authored-by: Claude <noreply@anthropic.com>
Summary
Stack 2 of 3. It sits on #432, so its diff is commits
96e919cand0850e4a. It fixesgovernance / Validate Hypatia Baseline, which is red onmainwith six findings introduced by #426 and #427. The fixes are made at the source, not by baselining. It also brings.hypatia-baseline.jsonto the estate format standard: JCS-canonical I-JSON.Changes
echidna-playground/ci-templates/mirror.yml(finding:download_then_run_shell,curl -sSf https://radicle.xyz/install | sh).ci-templates/README.adoc). The live root.github/workflows/mirror.ymluses the standards reusable workflow and has no pipe-to-shell.echidnabot/src/api/,echidnabot/src/scheduler/andechidnabot/src/modes/inissues/echidnabot-01-…mdand.github/issues/echidnabot-01-…md, andechidnabot/src/dispatcher/indocs/handover/PARADISEO-ROADMAP-PROMPT.adoc.src/<dir>/; per its lookbehind inhypatia/lib/rules/structural_drift.ex, a prefixedsrc/"belongs to that other tree/crate/repo".0850e4areplaces it..hypatia-baseline.json→ JCS (RFC 8785) I-JSON with a final LF, which.editorconfigrequires. It is one line with sorted keys, a fixed point of the canonicaliser. It now has 70 entries, belowmain's 71.RSR Quality Checklist
Required
unsafeblocks.envfiles includedAs Applicable
ci-templates/README.adoc, cross-repo paths)Testing
Stack
quinn-protolockfile bump🤖 Generated with Claude Code
https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3