Skip to content

chore(hypatia): delete dead ci-templates/mirror.yml, qualify echidnabot paths, baseline → JCS [stack 2/3] - #433

Merged
hyperpolymath merged 2 commits into
mainfrom
claude/new-session-th4e9w-hypatia
Oct 14, 2026
Merged

hyperpolymath merged 2 commits into
mainfrom
claude/new-session-th4e9w-hypatia

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

Summary

Stack 2 of 3. It sits on #432, so its diff is commits 96e919c and 0850e4a. It fixes governance / Validate Hypatia Baseline, which is red on main with six findings introduced by #426 and #427. The fixes are made at the source, not by baselining. It also brings .hypatia-baseline.json to the estate format standard: JCS-canonical I-JSON.

Changes

  • Deleted echidna-playground/ci-templates/mirror.yml (finding: download_then_run_shell, curl -sSf https://radicle.xyz/install | sh).
  • Qualified five cross-repo paths, which removes the SD022 findings: echidnabot/src/api/, echidnabot/src/scheduler/ and echidnabot/src/modes/ in issues/echidnabot-01-…md and .github/issues/echidnabot-01-…md, and echidnabot/src/dispatcher/ in docs/handover/PARADISEO-ROADMAP-PROMPT.adoc.
    • SD022 flags only a root-relative src/<dir>/; per its lookbehind in hypatia/lib/rules/structural_drift.ex, a prefixed src/ "belongs to that other tree/crate/repo".
    • These paths are echidnabot's, so the qualified form is also the accurate one.
    • My first push baselined them instead. The Exemption ratchet correctly rejected that (71 → 73: "remove the finding rather than the report"), so 0850e4a replaces it.
  • .hypatia-baseline.json → JCS (RFC 8785) I-JSON with a final LF, which .editorconfig requires. It is one line with sorted keys, a fixed point of the canonicaliser. It now has 70 entries, below main's 71.

RSR Quality Checklist

Required

  • Tests pass (no code change)
  • Code is formatted (baseline is canonical JCS)
  • Linter is clean
  • No banned language patterns
  • No unsafe blocks
  • No banned functions
  • SPDX license headers present on all new/modified source files
  • No secrets, credentials, or .env files included

As Applicable

  • Documentation updated (ci-templates/README.adoc, cross-repo paths)
  • Others: n/a

Testing

standards scripts/check-exemption-ratchet.sh 2dbf3c4   (what CI runs)
  96e919c (baseline approach): GREW 71 -> 73, FAILED      ← reproduces the CI failure
  0850e4a (this head):         SHRANK 71 -> 70, OK
standards@571cc734 scripts/apply-baseline.sh             (the pinned reusable's filter)
  new baseline: schema check passes (exit 0)
SD022 regex (?<[\w./-])src/([A-Za-z0-9_][A-Za-z0-9_-]*)/ over the three docs:
  every remaining root-relative src/<dir>/ is a real echidna directory (rust, abi, zig_ffi, chapel)

Stack

  1. fix(deps): bump quinn-proto 0.11.15 → 0.11.19 (RUSTSEC-2026-0338..0342) [stack 1/3] #432: quinn-proto lockfile bump
  2. This PR: Hypatia findings fixed at source, baseline → JCS
  3. ECH-05 follow-ups and format norms (next)

🤖 Generated with Claude Code

https://claude.ai/code/session_019a95kk88TZ1iegsBK3kox3

@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Warning

Review limit reached

You'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.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 4a67e7c3-ee6c-4752-9f36-e4aa7cd6b399
📥 Commits

Reviewing files that changed from the base of the PR and between 0850e4a and 64d6291.

📒 Files selected for processing: 6
  • .github/issues/echidnabot-01-adaptive-ci-portfolio-scheduler.md
  • .hypatia-baseline.json
  • docs/handover/PARADISEO-ROADMAP-PROMPT.adoc
  • echidna-playground/ci-templates/README.adoc
  • echidna-playground/ci-templates/mirror.yml
  • issues/echidnabot-01-adaptive-ci-portfolio-scheduler.md

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 530b1857-2aa1-4a26-ad88-54be80493845
📥 Commits

Reviewing files that changed from the base of the PR and between 2dbf3c4 and 0850e4a.

📒 Files selected for processing: 6
  • .github/issues/echidnabot-01-adaptive-ci-portfolio-scheduler.md
  • .hypatia-baseline.json
  • docs/handover/PARADISEO-ROADMAP-PROMPT.adoc
  • echidna-playground/ci-templates/README.adoc
  • echidna-playground/ci-templates/mirror.yml
  • issues/echidnabot-01-adaptive-ci-portfolio-scheduler.md
💤 Files with no reviewable changes: 1
  • echidna-playground/ci-templates/mirror.yml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

📜 Recent review details
⏰ Context from checks skipped due to timeout: 3
  • GitHub Check: rust-ci / Cargo test
  • GitHub Check: Validate DEED manifests
  • GitHub Check: PR (address)
🧰 Additional context used
📚 Code guidelines: 1
.github/copilot-instructions.md — auto-discovered
📓 Path-based instructions: 1
Source excerpt: SPDX: `MPL-2.0` on all new files.

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

Files:

  • docs/handover/PARADISEO-ROADMAP-PROMPT.adoc
  • issues/echidnabot-01-adaptive-ci-portfolio-scheduler.md
  • echidna-playground/ci-templates/README.adoc
🔇 Additional comments: 5
.github/issues/echidnabot-01-adaptive-ci-portfolio-scheduler.md: 1

24-24: LGTM!

docs/handover/PARADISEO-ROADMAP-PROMPT.adoc: 1

215-215: LGTM!

issues/echidnabot-01-adaptive-ci-portfolio-scheduler.md: 1

18-19: LGTM!

Also applies to: 21-21

echidna-playground/ci-templates/README.adoc: 1

4-4: LGTM!

Also applies to: 13-15

.hypatia-baseline.json: 1

1-1: LGTM!

📝 Summary

Summary by CodeRabbit

  • Documentation
    • Updated references to project source locations and clarified the CI template’s mirroring setup.
  • Chores
    • Removed the CI template’s separate forge-mirroring workflow. The root mirroring workflow remains the documented route for mirroring.
    • Updated the tracked baseline of code-safety, workflow and structural findings.

The pull request updates the Hypatia baseline, removes the archived playground mirror workflow, revises its README, and corrects Echidnabot source paths in issue and handover notes.

Changes: Baseline findings

Layer / File(s) Summary
Update tracked findings
.hypatia-baseline.json
The baseline adds structured findings across several rule areas and removes the entry for the deleted playground mirror workflow.

Mirror workflow retirement

Layer / File(s) Summary
Remove and document the mirror workflow
echidna-playground/ci-templates/mirror.yml, echidna-playground/ci-templates/README.adoc
The archived mirror workflow and its forge-mirroring jobs are removed. The README records the removal date, root workflow coverage, and the Radicle installation method. It also removes the workflow-file count.

Echidnabot path corrections

Layer / File(s) Summary
Correct Echidnabot source paths
.github/issues/echidnabot-01-adaptive-ci-portfolio-scheduler.md, issues/echidnabot-01-adaptive-ci-portfolio-scheduler.md, docs/handover/PARADISEO-ROADMAP-PROMPT.adoc
The issue and handover notes update source paths to include the echidnabot/ directory prefix. Their other claims remain unchanged.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 0850e

No actionable issue introduced by this PR remains; it is mergeable after normal checks.

Pre-merge checks: Passed 5
Passed Passed checks: 5 passed
Check name Status Explanation
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Title check Passed The title clearly summarises the main changes: deleting the unused mirror workflow, qualifying echidnabot paths, and converting the Hypatia baseline to JCS. It is specific and suitable for a stacked p…
Description check Passed The description is complete and relevant. It includes the purpose, key changes, quality checklist, testing commands and results, and stack context. The optional Screenshots section is not needed for t…
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

❤️ Share

A rabbit checks the paths with care,
Then finds the mirror workflow gone.
New baseline entries settle there,
The README notes what carries on.
I nibble clover, pleased and bright,
And hop through docs made right.

Comment @coderabbitai help to get the list of available commands.

@hyperpolymath
hyperpolymath marked this pull request as ready for review October 14, 2026 08:31
@hyperpolymath
hyperpolymath added this pull request to stack #434 October 14, 2026 08:31

Copy link
Copy Markdown
Owner Author

@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 96e919c.)


Generated by Claude Code

@hyperpolymath hyperpolymath changed the title chore(hypatia): delete dead ci-templates/mirror.yml, baseline echidnabot-path SD022, baseline → JCS [stack 2/3] chore(hypatia): delete dead ci-templates/mirror.yml, qualify echidnabot paths, baseline → JCS [stack 2/3] Oct 14, 2026
@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Base automatically changed from claude/new-session-th4e9w to main October 14, 2026 08:54
…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
@hyperpolymath
hyperpolymath force-pushed the claude/new-session-th4e9w-hypatia branch from 0850e4a to 64d6291 Compare October 14, 2026 08:54
@hyperpolymath
hyperpolymath merged commit 4ff121a into main Oct 14, 2026
67 checks passed
@hyperpolymath
hyperpolymath deleted the claude/new-session-th4e9w-hypatia branch October 14, 2026 09:16
hyperpolymath added a commit that referenced this pull request Oct 14, 2026
…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>
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