Skip to content

docs(append-only): state the rule, not the incident that produced it - #351

Merged
thedavidmeister merged 1 commit into
mainfrom
2026-08-21-append-only-comment
Aug 21, 2026
Merged

docs(append-only): state the rule, not the incident that produced it#351
thedavidmeister merged 1 commit into
mainfrom
2026-08-21-append-only-comment

Conversation

@thedavidmeister

Copy link
Copy Markdown
Contributor

The frozen-snapshots-append-only comment narrated a specific repo's file names, a
specific commit, the date it landed and what CI reported at the time. None of that tells a
reader what the predicate does or why it is shaped that way — git carries it, and
#341 and #343 carry the argument.

What survives is the reasoning that still constrains the code:

  • why the test is on the directory, not a filename inside it — asserting a filename
    makes the gate skip wherever the generator's naming differs from the assertion, and a
    skip is indistinguishable from a pass.
  • why the delete-everything hole is left open — the test reads the HEAD tree, so
    removing every snapshot switches off the check that would catch the removal. Closing it
    needs the base branch, which would mean fetching in every sol repo in the org, including
    the ones whose default branch is not main.

21 lines removed, 16 added. Comment only.

QA

  • Discriminating tests: n/a - the diff changes only # comment lines inside a composite
    action's run: block. No shell statement, no condition and no command is touched, so
    there is no behaviour for a test to discriminate. Verified by inspection of the diff:
    every changed line begins with # after its indentation, and the surrounding
    if [ ! -d src/generated ] guard, the fetch block and the nix run invocation are
    byte-identical.
  • Mutations applied: n/a - no executable line in the diff to mutate. The predicate this
    comment describes was mutation-covered when it was written (fix(tag-release): determinism check that never removes the frozen record #343).
  • Oracle: the org rule that a migration carries the current shape forward only, and that
    consumers have git. A comment's job is to say what the code does and why it is shaped
    that way, not to record how it came to be that way.
  • Category check: the ask is "remove historicals from the comment". Covered exactly — the
    file names, the commit hash, the date and the CI-reported-success anecdote are gone; both
    live constraints are kept and stated as rules rather than as consequences of an incident.

🤖 Generated with Claude Code

The comment narrated a specific repo's file names, a specific commit, the date
it landed and what CI reported at the time. None of that tells a reader what
the predicate does or why it is shaped that way; git carries it, and the issue
and PR carry the argument.

What survives is the reasoning that still constrains the code: why the test is
on the directory rather than a filename inside it (a naming mismatch makes the
gate skip, and a skip is indistinguishable from a pass), and why the
delete-everything hole is left open (closing it needs the base branch, which
would mean fetching in every sol repo in the org).

Comment only; no behaviour change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@thedavidmeister, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 51 minutes

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

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

How can I continue?

Wait for the limit to reset, then comment @coderabbitai review or push new commits to the PR.

An organization admin can change what happens after included review limits in Billing.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 2c6d5069-c2be-4960-812e-a2fc6ef2ce8d

📥 Commits

Reviewing files that changed from the base of the PR and between c4cf22d and 7bfe66e.

📒 Files selected for processing (1)
  • .github/actions/frozen-snapshots-append-only/action.yml

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

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

@thedavidmeister
thedavidmeister merged commit 9b9594e into main Aug 21, 2026
17 checks passed
@github-actions

Copy link
Copy Markdown

@coderabbitai assess this PR size classification for the totality of the PR with the following criterias and report it in your comment:

S/M/L PR Classification Guidelines:

This guide helps classify merged pull requests by effort and complexity rather than just line count. The goal is to assess the difficulty and scope of changes after they have been completed.

Small (S)

Characteristics:

  • Simple bug fixes, typos, or minor refactoring
  • Single-purpose changes affecting 1-2 files
  • Documentation updates
  • Configuration tweaks
  • Changes that require minimal context to review

Review Effort: Would have taken 5-10 minutes

Examples:

  • Fix typo in variable name
  • Update README with new instructions
  • Adjust configuration values
  • Simple one-line bug fixes
  • Import statement cleanup

Medium (M)

Characteristics:

  • Feature additions or enhancements
  • Refactoring that touches multiple files but maintains existing behavior
  • Breaking changes with backward compatibility
  • Changes requiring some domain knowledge to review

Review Effort: Would have taken 15-30 minutes

Examples:

  • Add new feature or component
  • Refactor common utility functions
  • Update dependencies with minor breaking changes
  • Add new component with tests
  • Performance optimizations
  • More complex bug fixes

Large (L)

Characteristics:

  • Major feature implementations
  • Breaking changes or API redesigns
  • Complex refactoring across multiple modules
  • New architectural patterns or significant design changes
  • Changes requiring deep context and multiple review rounds

Review Effort: Would have taken 45+ minutes

Examples:

  • Complete new feature with frontend/backend changes
  • Protocol upgrades or breaking changes
  • Major architectural refactoring
  • Framework or technology upgrades

Additional Factors to Consider

When deciding between sizes, also consider:

  • Test coverage impact: More comprehensive test changes lean toward larger classification
  • Risk level: Changes to critical systems bump up a size category
  • Team familiarity: Novel patterns or technologies increase complexity

Notes:

  • the assessment must be for the totality of the PR, that means comparing the base branch to the last commit of the PR
  • the assessment output must be exactly one of: S, M or L (single-line comment) in format of: SIZE={S/M/L}
  • do not include any additional text, only the size classification
  • your assessment comment must not include tips or additional sections
  • do NOT tag me or anyone else on your comment

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.

1 participant