Skip to content

fix(rsr): restore the deed-first 3.1.1 and 3.2.1 that #1117 described (main does not compile) - #1128

Merged
hyperpolymath merged 2 commits into
mainfrom
claude/fix-main-rsr-compile
Nov 14, 2026
Merged

hyperpolymath merged 2 commits into
mainfrom
claude/fix-main-rsr-compile

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

What

main has not compiled since #1117 (0cc4455). In lib/rules/rsr_conformance.ex:

  • descriptiles_parse/1 calls deed_state/1, which nothing defines (CompileError).
  • The same cond has a duplicate record_files == [] branch that can never run.
  • descriptile_carrier/0 is defined but never used. That is an unused-function warning, and 3.1.1 still read only the directory.

#1117's own head (4d5538c) has the same defect. It merged while its Test, Check and Compile jobs were still queued.

This PR does what #1117's description says:

  • deed_state/1: the chora deed is :absent, :ok (it parses as a repo-deed) or :broken. deed_parses?/1 is folded into it.
  • 3.1.1 uses descriptile_carrier/0: the deed first, then the descriptiles/ directory.
  • 3.2.1: a broken chora deed fails, even when the .a2ml files parse.

Why

Every open hypatia PR fails Compile and Test until main compiles. The owner asked for this fix.

Evidence

  • feat(rules): RSR 3.1.1 and 3.2.1 read the chora deed first #1117's own tests are on main but cannot compile there: "3.1.1: a chora deed with a top-level descriptile clause is the substrate", "3.1.1: a deed with none, or only nested, fails; the directory alone passes", "3.2.1 needs every carrier to parse, the deed first".
  • mix test test/rules test/soundness_test.exs: 974 tests, 0 failures.
  • mix format --check-formatted passes on the changed file. gen-rules-praxis.sh --check and check-readme-claims.sh also pass.

Not done

  • The full suite was not run. My local copy of the repo is partial, so CI runs the rest.

Generated by Claude Code

main has not compiled since #1117: descriptiles_parse/1 calls
deed_state/1, which nothing defines; a duplicate `record_files == []`
branch can never run; and descriptile_carrier/0 is defined but never
used, so 3.1.1 still read only the directory.

- deed_state/1: the chora deed is :absent, :ok (parses as a repo-deed)
  or :broken. deed_parses?/1 is folded into it.
- 3.1.1 uses descriptile_carrier/0: the deed first, then the directory.
- 3.2.1: a broken chora deed fails even when the .a2ml files parse.

#1117's own tests ("3.1.1: a chora deed with a top-level descriptile
clause is the substrate", "3.2.1 needs every carrier to parse, the deed
first") fail on the code before #1117 and pass with this change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0136P7ZkGCWGEyedTtdEHAPT
@coderabbitai

coderabbitai Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

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 1 minute.

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

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: b1de87b5-d8f3-4cb7-9dbe-4157e1659130
Commits

Reviewing files that changed from the base of the PR and between f6bbce3 and 3a163f9.

Files selected for processing: 1

  • lib/rules/rsr_conformance.ex
  • 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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 14, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-14T20:06:21.929595Z df970a9 PR opened
🔒 Security Review ✅ Completed 2026-11-14T20:07:43.590767Z df970a9 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@hyperpolymath
hyperpolymath merged commit 18aa7fd into main Nov 14, 2026
42 of 43 checks passed
@hyperpolymath
hyperpolymath deleted the claude/fix-main-rsr-compile branch November 14, 2026 20:06
@sonarqubecloud

Copy link
Copy Markdown

hyperpolymath added a commit that referenced this pull request Nov 14, 2026
…1129)

## What

This PR fixes the three Codex P2 findings that #1110 merged with:

- **WF033:** `exit` takes its argument only across blanks. Before, a
masked comment (`exit # done`) let `\s+` reach the next line and read
`"$CODE"` as the exit argument.
- **`Hypatia.Workflow.shell_mask/2`:** `)` no longer starts a word. In
`--label=$(name)#suffix`, the `#` is part of the word, so a later
`--hypatia-ref` is still read.
- **WF033:** `&>`, `>&` and `<&` are redirections, not a later command.
`test … && echo ok &>/dev/null` keeps the list's status.

## Why

These are threads 4575286064, 4575286074 and 4575286070 on #1110. The
owner approved this follow-up.

## Evidence

- There are 3 new tests, and each fails on `main`'s code (`213 tests, 3
failures`) and passes with this change.
- `mix test test/rules test/soundness_test.exs`: `977 tests, 0
failures`. This was run with #1128's `rsr_conformance.ex` applied
locally, because `main` does not compile without it.
- `mix format`, `gen-rules-praxis.sh --check`, `check-readme-claims.sh`
and `rules-praxis-test.sh` all pass.

## Not done

- CI cannot compile this until #1128 (the `main` compile fix) merges.
After that I'll merge `main` into this branch.
- A `#` right after a subshell's `)`, as in `(cmd)#x`, is now read as
text, not as a comment. That only errs towards reading more of the
script.

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

---------

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.

3 participants