Skip to content

feat(rsr): the scorecard deed carries :assessor and :assessed-at - #1126

Merged
hyperpolymath merged 4 commits into
mainfrom
rsr/scorecard-assessor
Nov 14, 2026
Merged

hyperpolymath merged 4 commits into
mainfrom
rsr/scorecard-assessor

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Nov 14, 2026 •

Copy link
Copy Markdown
Owner

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.abnf v0.2.0).

Changes

  • RsrConformance.to_deed/2 writes:
    • :assessor "hypatia rsr_score <version>", with the version from mix.exs at compile time; assessor/0 returns the same string;
    • :assessed-at, the run time in UTC with whole seconds.
  • A new :assessed_at option lets tests inject a fixed DateTime. Offsets are converted to UTC.
  • Tests are extended. docs/consumers/rsr-oracle.adoc and 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 --write on a copy of hypatia produces a deed that passes both deed_lint --rsr-scorecard and the plain linter, from the new standards branch.

Merge after metadatastician/standards#1586.


Generated by Claude Code

…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
@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 59 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

  • 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: 9bf1ce43-4ed9-4b72-b494-3e0c10672a9e
Commits

Reviewing files that changed from the base of the PR and between fdf7df7 and 29a0aa9.

Files selected for processing: 4

  • docs/consumers/rsr-oracle.adoc
  • lib/mix/tasks/hypatia.rsr_score.ex
  • lib/rules/rsr_conformance.ex
  • test/rules/rsr_conformance_test.exs
  • 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:12:26.285841Z 29a0aa9 New commits
🔒 Security Review ✅ Completed 2026-11-14T20:12:17.140232Z 29a0aa9 New commits
ℹ️ 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.

Copy link
Copy Markdown
Owner Author

hypatia / Hypatia Neurosymbolic Analysis fails here for the same reason as on #1125. The reusable scan builds the scanner at hypatia main (6033a7825f4c…), which doesn't compile until #1125 lands. It does not build this PR's head. The check should go green once #1125 merges.


Generated by Claude Code

Signed-off-by: Jonathan D.A. Jewell <6759885+hyperpolymath@users.noreply.github.com>
@hyperpolymath
hyperpolymath merged commit 1d1e279 into main Nov 14, 2026
28 of 48 checks passed
@hyperpolymath
hyperpolymath deleted the rsr/scorecard-assessor branch November 14, 2026 20:10
@sonarqubecloud

Copy link
Copy Markdown

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