Skip to content

Add a rule: date a claim that can change - #632

Merged
d-morrison merged 4 commits into
mainfrom
claude/project-thread-0nc1dx
Nov 13, 2026
Merged

d-morrison merged 4 commits into
mainfrom
claude/project-thread-0nc1dx

Conversation

@d-morrison

@d-morrison d-morrison commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

Requested by Ezra · project thread

Part of #39 (one slice; the issue stays open).

Why

ai-config's shared/writing/timestamp-volatile-claims.md says to give a claim about something that can change the date on which it was true. psw already says, in word-choice.qmd ("Give a date or a version instead of a time-relative word", psw#418), not to write "now" or "currently". It does not say to date a claim that holds only for a while, even one that has no time-relative word in it, such as "the package is not on CRAN".

What

  • chapters/citations-evidence.qmd: a new section, Date a claim that can change (#date-volatile-claims), placed after "Name the source of every attribution". It covers:
    • which claims can change;
    • why an undated one gets repeated after it stops being true;
    • a link to the existing word-choice rule for writing the date itself;
    • which claims need no date, including the caveat about a vendor's own feature taxonomy;
    • a worked ❌/✅ example (#exm-date-volatile-claims).
  • chapters/summary.qmd: one bullet linking the new section.

This ports only the core rule for writers. The fragment's agent-workflow subsections (re-checking before merge, pinning commit SHAs, self-invalidating counts) are about PR and corpus practice, so they stay in ai-config.

Checks

  • quarto render chapters/citations-evidence.qmd --to html gives no warnings. Both new anchors exist, and the link to word-choice.html#give-a-date-or-a-version-instead-of-a-time-relative-word resolves.
  • The new three-item lists have serial commas. "CRAN" is already in inst/WORDLIST.

🤖 Generated with Claude Code

https://claude.ai/code/session_019xfc9onjCNCanko9MNLQzW

Ports the core of ai-config's shared/writing/timestamp-volatile-claims.md,
which psw did not state, as a slice of #39. An undated claim about software,
versions, counts or prices reads as a lasting fact and gets repeated after it
stops being true.

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

This comment has been minimized.

@github-actions

This comment has been minimized.

Addresses the Claude review of 559f13d.

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

Copy link
Copy Markdown
Collaborator Author

Addressing the Claude review of 559f13d in commit d68b903 (pushing next):

  • Line 29 (blocking): broken before "as soon as".
  • Line 46 (suggestion): broken before "whether it is still true".
  • Same shape, not flagged: also broke "so readers repeat it / long after it has stopped being true."
  • Term links for CRAN and GitHub: no change, as the review suggests. The example only mentions them.

Posted by Claude Code (AI agent) --- not written by a human.


Generated by Claude Code

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

word-choice.qmd already says to write a date instead of "now" or "currently";
the new section now points there, which also clears the check-avoided-words
warning on the quoted word.

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

Copy link
Copy Markdown
Collaborator Author

Commit 6f2523b (pushing next) fixes the one non-runner annotation on d68b903. It was a check-avoided-words warning on "currently" in chapters/citations-evidence.qmd.

The warning pointed to an existing rule, word-choice.qmd's "Give a date or a version instead of a time-relative word" (psw#418). It already says not to write "now" or "currently". So the new section no longer restates that list of words. It links that section instead, which also removes the quoted word. I updated the PR body to name the existing rule and to say what this section adds: dating a claim that holds only for a while, even with no time-relative word in it.


Posted by Claude Code (AI agent) --- not written by a human.


Generated by Claude Code

@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

Copy link
Copy Markdown
Collaborator Author

Annotation dispositions for head 6f2523b:

  • warning, check-chars, Spellcheck, lint-changed-files, lint-project: "Node.js 20 is deprecated ... actions/checkout@v4" (check-chars also names setup-python@v5). False positive for this PR: these come from the runner and the pinned action versions in the workflows, which this PR does not touch.
  • notice (34 runs, one per check): "The ubuntu-latest label will migrate to Ubuntu 26 ...". False positive for this PR: GitHub posts it on every ubuntu-latest job.
  • notice, review / claude-review: "SUBMODULES_TOKEN is empty; cloning submodules anonymously". False positive for this PR: the submodules are public, and the review ran and posted a CLEAN verdict.

The check-avoided-words warning on d68b903 is gone on this head (fixed in 6f2523b). No failure annotations. All 36 check runs on 6f2523b are completed: 35 succeeded, and review / find-fallback-verdict was skipped.


Posted by Claude Code (AI agent) --- not written by a human.


Generated by Claude Code

@d-morrison

Copy link
Copy Markdown
Collaborator Author

Cross-cutting review (agy, Gemini 3.8 Flash, cross-harness) of head 6f2523b: NOT CLEAN. check-pr-fully-clean.py reports FULLY CLEAN on this head; the review checked the diff only.

  1. The comma after the link in the new summary.qmd entry: not a defect. The reviewer wanted a colon, but 14 entries on main in chapters/summary.qmd use the comma form (for example "...), and keep the pairing the same everywhere." and "...), such as the limits of a sum."), against 10 that use a colon.
  2. "the fixed rules of a programming language" among claims that need no date: open. The reviewer says language rules change across versions and editions, so a statement about them can become false, which is the kind of claim this section says to date. The word "fixed" may be meant to exclude those. The sentence does not say so, and the section's own first bullet covers what software "does, supports, or sets by default". I have not overridden the verdict. It needs the author's rebuttal or a rewording (for example, pinning the claim to a language version), then a fresh review.

Posted by Claude Code (AI agent) --- not written by a human.

Addresses the cross-harness review of 6f2523b: a language's rules change
across versions, so only a statement tied to a named version cannot change.

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

Copy link
Copy Markdown
Collaborator Author

Addressing the cross-harness review of 6f2523b in commit 49af8d6 (pushing next):

  1. Comma after the link in summary.qmd: no change. As the review measured, that form matches 14 entries on main.
  2. "the fixed rules of a programming language": reworded. A language's rules do change between versions, which the section's first bullet already treats as something to date. The list of claims that need no date now reads "a statement about a named version of a language or package". A claim tied to a named version cannot change, because the version itself is fixed.

Posted by Claude Code (AI agent) --- not written by a human.


Generated by Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

Claude finished review — View run


The only change since the last round is commit 49af8d6, which edits three lines in chapters/citations-evidence.qmd (around line 873). I read the diff but did not render the page.

  • Content: the commit replaces "the fixed rules of a programming language" with "a statement about a named version of a language or package". That fits the unchanged next lines, which say a vendor's feature distinctions can change in any release. A statement pinned to a named version does stay true, so the exemption now matches the section's argument.
  • Line breaks: the new line break falls after the comma that ends the list's first two items. The list is a short phrase series, not a set of clauses, so no line holds two clauses.
  • Scope and checks: the commit adds no math, no citations and no new capitalized terms for inst/WORDLIST. It adds no links.

The prior review (comment on 6f2523b) gave a CLEAN verdict. It still stands, because this commit only narrows one exemption and introduces nothing new to check.

Verdict

Ready for merge.

Structured Review Data (JSON)
{
  "schema_version": "1.1",
  "reviewer": "claude",
  "commit_sha": "49af8d66c5b05f64953082fbe503df0da494c0f0",
  "verdict": "CLEAN",
  "findings": [],
  "detailed_assessment": "Commit 49af8d6 rewords the unchanging-claims list in chapters/citations-evidence.qmd to exempt version-pinned statements, and the new line breaks hold no multi-clause lines.",
  "holistic_assessment": "The change stays scoped to one sentence, is consistent with the adjacent vendor-feature caveat, adds no math, links or spelling words, and the prior CLEAN verdict still applies."
}

Reviewed commit: 49af8d6

@github-actions

Copy link
Copy Markdown
Contributor

💰 Cost: $0.1777 (review) — run

@github-actions

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.2
🚀 Preview available at: https://Morrison-Lab.github.io/psw/pr-preview/pr-632/

Built to branch gh-pages at 2026-11-13 20:33 UTC.

Copy link
Copy Markdown
Collaborator Author

Annotation dispositions for head 49af8d6:

  • warning, check-chars, Spellcheck, lint-changed-files, lint-project: "Node.js 20 is deprecated ... actions/checkout@v4" (check-chars also names setup-python@v5). False positive for this PR: these come from the runner and the pinned action versions in the workflows, which this PR does not touch.
  • notice (34 runs, one per check): "The ubuntu-latest label will migrate to Ubuntu 26 ...". False positive for this PR: GitHub posts it on every ubuntu-latest job.
  • notice, review / claude-review: "SUBMODULES_TOKEN is empty; cloning submodules anonymously". False positive for this PR: the submodules are public, and the review ran and posted a CLEAN verdict.

There are no failure annotations. All 36 check runs on 49af8d6 have completed: 35 succeeded, and review / find-fallback-verdict was skipped.


Posted by Claude Code (AI agent) --- not written by a human.


Generated by Claude Code

@d-morrison

Copy link
Copy Markdown
Collaborator Author

Cross-cutting review (agy, Gemini 3.8 Flash, cross-harness) of head 49af8d6: CLEAN on the second pass. check-pr-fully-clean.py also reports FULLY CLEAN on this head.
Facts I gave the reviewer to check: the summary comma form matches 14 entries on main (10 use a colon); the reworded list now says "a statement about a named version of a language or package", which answers the finding about language rules; the exm- title convention and the word-choice.qmd anchor hold. It checked the diff only.

Posted by Claude Code (AI agent) --- not written by a human.

@d-morrison
d-morrison merged commit 684ab73 into main Nov 13, 2026
36 checks passed
@d-morrison
d-morrison deleted the claude/project-thread-0nc1dx branch November 13, 2026 20:39
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