Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 12 additions & 9 deletions .claude/rules/pr-body-contract.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
# PR body contract

The `pr-contract` step inside `ci-status` fails a pull request only on a
non-Conventional-Commits title or a `do-not-merge` label. The body contract is
advisory, reported by comment and the `needs-issue-linkage` label, but
expected: open with `Closes #<issue>` (or `Fixes`/`Resolves`), a
`Refs: #<issue>` line to link without closing (never "does not close", which
still closes), or `No related issue: <reason>`, then fill `## Summary`,
`## Fix`, `## Verification`, and `## Related`. Draft from the repo's PR
template (else the `melodic-software/.github` default); canonical record:
`components/pr-convention-policy/policy.json` in `melodic-software/standards`.
The `pr-contract` step inside `ci-status` fails a pull request on a
non-Conventional-Commits title or a `do-not-merge` label, and, in repositories
that enable it, on a body line that would start with the word `committer` after
the 72-column squash wrap, which breaks the squash commit's signature: reword
that line. The body contract is advisory, reported by comment and the
`needs-issue-linkage` label, but expected: open with `Closes #<issue>` (or
`Fixes`/`Resolves`), a `Refs: #<issue>` line to link without closing (never
"does not close", which still closes), or `No related issue: <reason>`, then
fill `## Summary`, `## Fix`, `## Verification`, and `## Related`. Draft from
the repo's PR template (else the `melodic-software/.github` default);
canonical record: `components/pr-convention-policy/policy.json` in
`melodic-software/standards`.
4 changes: 2 additions & 2 deletions docs/standards/deterministic-work-execution.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ prove that the inputs were complete, that the operation answered the intended
question, or that a later judgment is sound. The National Academies report
defines computational reproducibility around the same inputs, computational
steps, methods, code, and conditions of analysis
([*Reproducibility and Replicability in Science*](https://nap.nationalacademies.org/catalog/25303/reproducibility-and-replicability-in-science)).
([*Reproducibility and Replicability in Science*](https://doi.org/10.17226/25303)).
The UK Government Analysis Function likewise recommends minimizing manual steps
while retaining quality assurance and an audit trail
([RAP strategy](https://analysisfunction.civilservice.gov.uk/policy-store/reproducible-analytical-pipelines-strategy/)).
Expand Down Expand Up @@ -105,4 +105,4 @@ plain:
- Chen et al., ["Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks"](https://openreview.net/forum?id=YfZ4ZPt8zd) (TMLR 2023).
- Schick et al., ["Toolformer: Language Models Can Teach Themselves to Use Tools"](https://proceedings.neurips.cc/paper_files/paper/2023/hash/d842425e4bf79ba039352da0f658a906-Abstract-Conference.html) (NeurIPS 2023).
- UK Government Analysis Function, ["Reproducible Analytical Pipelines (RAP) strategy"](https://analysisfunction.civilservice.gov.uk/policy-store/reproducible-analytical-pipelines-strategy/).
- National Academies of Sciences, Engineering, and Medicine, [*Reproducibility and Replicability in Science*](https://nap.nationalacademies.org/catalog/25303/reproducibility-and-replicability-in-science) (2019).
- National Academies of Sciences, Engineering, and Medicine, [*Reproducibility and Replicability in Science*](https://doi.org/10.17226/25303) (2019).
18 changes: 12 additions & 6 deletions lychee.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,18 @@ include_fragments = "full"
# whole trees of markdown, are excluded by path below.
hidden = true

# No `accept` key: lychee's default status set applies, so a 429 fails the link.
# Accepting 429 would count a throttled response as OK on the first reply, which
# skips lychee's retry with per-host backoff (`max_retries`, default 3) and
# never checks the page's fragment. lychee's rate-limit docs name accepting 429
# a last resort. A host that still throttles after the retries is a per-host
# pacing problem, not a reason to stop checking every link on every host.
# Transient failures do not fail an online run: a throttled (429) or erroring
# (5xx) host, or a timeout, says nothing about whether the link is dead. A dead
# link (404, 410 and every other 4xx) still fails. Setting `accept` replaces
# lychee's default set, so the default 100..=103 and 200..=299 are restated.
# Cost: an accepted 429 or 5xx counts as OK on the first reply, so it is not
# retried and its #fragment is not checked. The online run's job summary lists
# accepted 429 and 5xx links and timeouts so a host that stays down is noticed.
# lychee 0.24.2 never retries a rejected 5xx; revisit accepting 5xx when
# https://github.com/lycheeverse/lychee/pull/2324 ships in a release.
# The offline lane makes no HTTP requests, so neither key changes it.
accept = ["100..=103", "200..=299", "429", "500..=599"]
accept_timeouts = true

# Rewrite JavaScript-rendered fragments to the same URL without the fragment.
# These anchors exist only after the page's scripts run, so lychee, which reads
Expand Down
Loading