From df20d1edb476d5b63a7a4ae2d289dd77d0b667e5 Mon Sep 17 00:00:00 2001 From: "melodic-standards-sync[bot]" <300666570+melodic-standards-sync[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2026 03:09:25 +0000 Subject: [PATCH] chore: sync standards components (1ff79efae0cdba258668a12d96897337c5bca86c) --- .claude/rules/pr-body-contract.md | 21 +++++++++++-------- .../standards/deterministic-work-execution.md | 4 ++-- lychee.toml | 18 ++++++++++------ 3 files changed, 26 insertions(+), 17 deletions(-) diff --git a/.claude/rules/pr-body-contract.md b/.claude/rules/pr-body-contract.md index 1fb7884..f913068 100644 --- a/.claude/rules/pr-body-contract.md +++ b/.claude/rules/pr-body-contract.md @@ -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 #` (or `Fixes`/`Resolves`), a -`Refs: #` line to link without closing (never "does not close", which -still closes), or `No related issue: `, 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 #` (or +`Fixes`/`Resolves`), a `Refs: #` line to link without closing (never +"does not close", which still closes), or `No related issue: `, 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`. diff --git a/docs/standards/deterministic-work-execution.md b/docs/standards/deterministic-work-execution.md index 23cc9af..0ed1d6f 100644 --- a/docs/standards/deterministic-work-execution.md +++ b/docs/standards/deterministic-work-execution.md @@ -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/)). @@ -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). diff --git a/lychee.toml b/lychee.toml index 17434b9..60e8247 100644 --- a/lychee.toml +++ b/lychee.toml @@ -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