Repository navigation
feat(rsr): the scorecard deed carries :assessor and :assessed-at - #1126
Conversation
…ompiles again The merge commit 4d5538c ("Merge branch 'main' into rsr/criteria-accept-chora-deed") that #1117 was squashed from kept the new call `deed = deed_state(repo)` in descriptiles_parse/1 but dropped the definition of deed_state/1, the `deed == :broken -> :fail` branch, 3.1.1's descriptile_carrier/0 and the deed-first anchor read. So Hypatia.Rules.RsrConformance has not compiled on main since 0cc4455 (undefined function deed_state/1), and #1117's own tests expect the dropped behaviour. This applies the diff from the squash (0cc4455) to the branch's last commit before that merge (d0880bb) for lib/rules/rsr_conformance.ex only: 3.1.1 reads a top-level descriptile clause of the chora deed, 3.1.8 reads the (anchor …) clause first, and 3.2.1 fails a chora deed that does not parse whatever .a2ml remains. With it, the 33 rsr_conformance tests pass and `mix compile --warnings-as-errors` is clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0136P7ZoBy5xGnGDLk7wQ8jC
The owner ratified the RSR scorecard clause on 2026-11-14 with one
change: it records who scored and when (standards
clauses/rsr-scorecard.abnf v0.2.0, branch deed/rsr-scorecard-assessor).
- RsrConformance.to_deed/2 writes :assessor, "hypatia rsr_score
<version>" with hypatia's version from mix.exs (fixed at compile
time, as Hypatia.Verdict does; also assessor/0), and :assessed-at,
the run time as an RFC 3339 UTC timestamp with whole seconds
("2026-11-14T19:33:12Z"), the one spelling the standards checker
accepts.
- New option :assessed_at injects a DateTime for a deterministic file;
any offset is converted to UTC and the fraction dropped, without a
time-zone database.
- Tests: the writer test checks both fields; a new test pins an
injected time, a fraction and a +05:30 offset.
- docs/consumers/rsr-oracle.adoc and the mix task doc describe the
fields, and that a rescore of an unchanged commit is no longer
byte-identical.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0136P7ZoBy5xGnGDLk7wQ8jC
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0136P7ZoBy5xGnGDLk7wQ8jC
|
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 59 minutes. View limit details
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. |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Generated by Claude Code |
Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
|



Summary
This is the writer half of the owner's 2026-11-14 ratification of the RSR scorecard deed. The grammar half is metadatastician/standards#1586 (
rsr-scorecard.abnfv0.2.0).Changes
RsrConformance.to_deed/2writes::assessor "hypatia rsr_score <version>", with the version frommix.exsat compile time;assessor/0returns the same string;:assessed-at, the run time in UTC with whole seconds.:assessed_atoption lets tests inject a fixedDateTime. Offsets are converted to UTC.docs/consumers/rsr-oracle.adocand the mix task docs are updated.Includes #1125's fix (
89c0ab79), which restores the part of #1117 lost in its merge, because main does not compile without it. Merge #1125 first; this branch then merges cleanly.Verification
rsr_conformance: 34 pass, 0 failures.mix format: clean.mix compile --warnings-as-errors: clean.mix hypatia.rsr_score --writeon a copy of hypatia produces a deed that passes bothdeed_lint --rsr-scorecardand the plain linter, from the new standards branch.Merge after metadatastician/standards#1586.
Generated by Claude Code