Skip to content

chore(issues): archive closed issue #2521 spec - #2532

Merged
josecelano merged 5 commits into
torrust:developfrom
josecelano:chore/2521-archive-spec
Oct 14, 2026
Merged

josecelano merged 5 commits into
torrust:developfrom
josecelano:chore/2521-archive-spec

Conversation

@josecelano

@josecelano josecelano commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

Archives the spec for issue #2521 (closed on GitHub when PR #2529 merged) from docs/issues/open/ to docs/issues/closed/.

  • Verified issue Remove the unused UDP statistics traits and services #2521 is CLOSED on GitHub
  • Moved docs/issues/open/2521-1669-remove-unused-udp-stats-traits/ (spec, manual-verification evidence, and captured responses) to docs/issues/closed/
  • Updated the spec's frontmatter (status: done, spec-path, last-updated-utc), ticked the reviewer, committer, and closure checkpoints, and added an archive progress-log entry; the independent-reviewer-reports checkpoint stays open because no review agent received the folder-style spec
  • Updated the evidence file's issue-spec path and the related-artifacts path in docs/pr-reviews/pr-2529-review/PR-REVIEW.md
  • EPIC Overhaul: Packages #1669: ticked the Remove the unused UDP statistics traits and services #2521 sub-issue, set its table row to DONE with the closed path, updated the spec link list, and added a progress-log entry
  • Pre-commit and pre-push hooks passed

Retained references to the old path: two Current-tree verification commands in the PR #2529 audit, which record the commands as run during that review.

The Out of Scope pointer in the archived #2517 spec now names the closed path (Copilot review finding F1; audit in docs/pr-reviews/pr-2532-review/PR-REVIEW.md).

Overlap with PR #2530 (archive #2517): it merged first, so this branch was rebased onto it. The EPIC #1669 conflicts were resolved by keeping both archive edits: the #2517 and #2521 checkboxes, table rows, and spec links all point at docs/issues/closed/, and both progress-log entries are kept in time order. The pre-commit gate passed on the rebased branch.

Related to #2521 and #1669.

Copilot AI balanced review requested due to automatic review settings October 14, 2026 16:30
@josecelano josecelano self-assigned this Oct 14, 2026
@josecelano
josecelano requested a review from da2ce7 October 14, 2026 16:34
@josecelano
josecelano force-pushed the chore/2521-archive-spec branch from 55a414e to 2328de9 Compare October 14, 2026 16:36
…closed

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

One live cross-reference in the archived #2517 specification still points to the removed open path.

0 open findings

What changed in this PR

Archives issue #2521’s completed specification after PR #2529 merged.

Changes:

  • Moves the specification and verification evidence to docs/issues/closed/.
  • Updates lifecycle metadata, EPIC status, checkpoints, and references.
  • Preserves baseline and post-change REST evidence.
File Description
docs/​pr-reviews/​pr-2529-review/​PR-REVIEW.md Updates the issue-spec reference.
docs/​issues/​open/​1669-overhaul-packages/​EPIC.md Marks #2521 complete and updates links.
docs/​issues/​closed/​2521-1669-remove-unused-udp-stats-traits/​ISSUE.md Finalizes and archives the specification.
.../​manual-verification-evidence.md Updates archive metadata.
.../​evidence/​baseline/​announce.json Preserves baseline announce output.
.../​evidence/​baseline/​stats.json Preserves baseline JSON statistics.
.../​evidence/​baseline/​stats.prometheus Preserves baseline Prometheus statistics.
.../​evidence/​baseline/​metrics.json Preserves baseline JSON metrics.
.../​evidence/​baseline/​metrics.prometheus Preserves baseline Prometheus metrics.
.../​evidence/​after/​announce.json Preserves post-change announce output.
.../​evidence/​after/​stats.json Preserves post-change JSON statistics.
.../​evidence/​after/​stats.prometheus Preserves post-change Prometheus statistics.
.../​evidence/​after/​metrics.json Preserves post-change JSON metrics.
.../​evidence/​after/​metrics.prometheus Preserves post-change Prometheus metrics.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@josecelano

Copy link
Copy Markdown
Member Author

ACK 71730ad

…the closed torrust#2521 spec

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@josecelano

Copy link
Copy Markdown
Member Author

Response to Copilot review 5521450385 (audit docs/pr-reviews/pr-2532-review/PR-REVIEW.md):

  • F1 (review body: "One live cross-reference in the archived Make the statistics repositories' metrics lock private #2517 specification still points to the removed open path"): FIXED in docs(issues): [#2521] point the archived #2517 spec at the closed #2521 spec. The Out of Scope pointer at line 133 of docs/issues/closed/2517-1669-encapsulate-statistics-repository-state/ISSUE.md now names docs/issues/closed/2521-1669-remove-unused-udp-stats-traits/ISSUE.md; the spec's last-updated-utc and progress log record the change. I had kept it as a historical record, but it is a navigational "tracked by" pointer, so it now follows the move. The two remaining mentions of the old path are Current-tree verification commands in the PR refactor: [#2521] remove the unused UDP statistics traits and services #2529 audit, which record the commands as they were run.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
da2ce7
da2ce7 previously approved these changes Oct 14, 2026

@da2ce7 da2ce7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 5d0d92e35fc081de1c180319b9fece599ff2a2a1. Recomputed from the bytes at this head, against the merge base e2e21f20c; develop is 48c4d3013 and the merge is clean.

The move. git diff -M e2e21f20c gives 16 files, +119/-15. The whole twelve-file folder moved and nothing is left under the open path: the ten evidence files at 100% similarity, manual-verification-evidence.md at 98%, ISSUE.md at 97%. The spec reads status: done with the closed spec-path, and the evidence file's issue-spec names the closed path. The issue capture shows the issue closed as completed at 16:22:33 UTC. The 90e8daf75 merge on develop carries the implementation, and the spec's archive entry says the same. Stamps: the spec and the evidence file read 16:25, and 71730ad57 has a 16:26:14 UTC author time. The EPIC also reads 16:25. Its rebase resolution (committer time 16:37 UTC) only joined two edits that were already stamped, and Step 4 asks for the current date, which still holds. The three ticked checkpoints are true at this head. For the reviewer checkpoint, the PR #2529 audit at this head logs review 5520537884 as APPROVED. The open independent-reviewer-reports box is allowed. Neither the skill nor the template requires ticking it. Step 3 says "tick any checkboxes that reflect completed work". The template's checkpoint is conditional ("when reviewers received this folder-style specification"), and its completion-review note says "Do not create that artifact ... when no folder-style specification was supplied". The folder has no agent-review-reports.md, the 16:25 progress-log entry says why, and seven other closed specs leave the same box open.

References. At this head, git grep finds 14 hits for the folder name. These are live and point at the closed path: the #2517 spec line 133, the spec's spec-path, the evidence file's issue-spec, three EPIC lines (736, 759, 1019), and the frontmatter of both the PR #2529 and PR #2532 audits. These name the branch, not the path: branch: (line 10) and progress-log line 289. These are historical: lines 132 and 145 of the PR #2529 audit, and lines 63 and 65 of the new audit. Lines 132 and 145 are Current-tree verification records of commands as they ran while the open path existed, in the audit of a merged PR. Step 4's "Do not rewrite immutable historical records ... merely because they accurately record the path that existed at the time" covers them, so keeping them is correct. Lines 63 and 65 quote the finding. docs/issues/open/2521 appears only on those historical lines. All 107 relative links and frontmatter paths in the six changed Markdown files resolve. The commits develop gained after the merge base add no reference to the old path.

The EPIC after the rebase. Against e2e21f20c, the head changes only the stamp and the three #2521 lines: the ticked checkbox, the table row set to DONE with ../../closed/..., and the spec-link line. It also appends the 16:25 progress entry after the 15:06 one. The PR #2530 merge b24550171 added five content lines to the EPIC (checkbox, row, link, two-line log entry), and all five are present verbatim. Only its 15:06 stamp is superseded. b24550171..e2e21f20c touches only the PR #2527 audit, so nothing from the #2517 archive was lost.

The archived #2517 spec edit (0c07b2771). Line 133 now names docs/issues/closed/2521-1669-remove-unused-udp-stats-traits/ISSUE.md, which resolves. The stamp is 16:55, against a commit time of 16:55:24 UTC, with a 16:55 progress-log entry after the 16:00 one. status: done is kept.

The audit. Ownership, Status Values and Completion Rules match the template text verbatim. The headings, the tracking header and the ten detail fields follow the template order. The bot's review is body-only, and F1 normalizes its one assertion. The severity Nit (inferred) is marked as inferred, which a stale text pointer supports. It has category link-integrity and FIXED/NON_RESOLVABLE, the template's state for a review-body finding. Source URL is the review URL. The Reply URL (issuecomment-6173714194, 16:58:06 UTC) is in the capture and names the review, F1, the disposition and the fixing subject. The Resolution reference is 0c07b2771's exact subject. The Processing Log entries (16:48, 16:55, 16:58, 16:58) match the review submission at 16:48:10, the commit at 16:55:24, the push and response at 16:58, and the audit commit at 16:58:43. None is later than the commit that carries it. One prose claim is contradicted by the bytes: F2.

Hygiene. The subject of 71730ad57 is Step 6's untagged form verbatim, and 0c07b2771 and 5d0d92e35 carry [#2521]. None has a body (the commit skill makes the body optional). Each has exactly one trailer line in name-address form. Author equals committer on all three. 71730ad57 keeps its 16:26 author time, with a committer time of 16:37:24 UTC, after e2e21f20c (16:36:43 UTC). The other two have equal author and committer times. git diff --check and git log --check are clean. Every PR-body claim about the tree matches the diff. Related to #2521 and #1669 is the open-pull-request form for a docs-only change, and the title is Conventional Commits with the issue reference.

The review bot. It left one review (5521450385, COMMENTED on 71730ad57) and no inline comments. Its single assertion, that a live cross-reference in the archived #2517 spec still names the open path, was correct at 71730ad57 (line 133). 0c07b2771 fixes it at this head, and the author's F1 records it. The rest of the body is a change summary with no request.

Findings. F2 [Nit]: the audit's Current-tree verification grep claim is contradicted at this head by the audit's own lines (inline).

Checked, no finding. The EPIC stamp predates the rebase resolution, but the resolution added no new content and the date is current. The open conditional checkpoint is ruled above. The #2517 checkbox line carries — **DONE** (2026-10-14, PR #2527) and the #2521 line does not, but the EPIC's ticked lines split 23 with the suffix and 25 without, so there is no convention to follow. The #2521 table row keeps the old cell padding; that is cosmetic. The PR title is shorter than Step 7's example and matches the sibling archive's title. "Merged ... at 16:22 UTC" fits the issue's 16:22:33 closure; 90e8daf75's 16:19:52 committer time is when the merge commit was made, not when it was pushed.

Checks

On the loop's compute hub at this head, merge base e2e21f20c (git merge-tree clean against develop 48c4d3013; receipt server-gates-krkavec-292): pre-commit profile gate exit 0 (79 s); linter markdown, linter cspell, linter lychee exit 0; frontmatter-validator --all: 19 errors / 4 warnings at this head and 19 / 4 at e2e21f20c re-measured, none in the files this PR moves or edits; validate-audit-record.py --pr-number 2532 exit 0 against this head's audit record (1 row, 4 log entries, 0 failures). GitHub checks at this head at posting time: "Publish (Development): completed/skipped; Publish (Release): completed/skipped; Context: completed/success; Test (Docker) (release): completed/success; Docker E2E: completed/skipped; Layer Boundary Bans: completed/success; Documented Clippy Allows: completed/success; Unit (stable): completed/success; Unit (nightly): completed/success; Package Coverage (${{ matrix.package }}): completed/skipped; Package Coverage Regression: completed/success; Build on windows-latest (nightly): completed/success; Build on windows-latest (stable): completed/success; Build on macos-latest (stable): completed/success; Build on macos-latest (nightly): completed/success; Build on ubuntu-latest (nightly): completed/success; Docs Lint: completed/success; Discover Package Coverage: completed/success; Build on ubuntu-latest (stable): completed/success; Generate Coverage Report: completed/success". At posting, develop is 48c4d3013.

Comment thread docs/pr-reviews/pr-2532-review/PR-REVIEW.md Outdated
@da2ce7

da2ce7 commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

ACK 5d0d92e — verified the whole-folder move of the #2521 spec, every live reference repointed to the closed path, the EPIC #1669 rebase resolution keeping all #2530 archive edits, and the PR #2532 audit at this head

…d-path search to the files outside it

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…iew audit

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@josecelano

Copy link
Copy Markdown
Member Author

ACK 2488cae

@da2ce7 da2ce7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 2488cae4e831bd9143e062a90cb033d5f6dc0def. Recomputed from the bytes at this head, against the merge base e2e21f20c; develop is 48c4d3013 and the merge is clean.

The delta. 5d0d92e35 is an ancestor of the head, and git diff --raw 5d0d92e35 lists one path, docs/pr-reviews/pr-2532-review/PR-REVIEW.md (+28/-2): 700cecf28 +2/-2, 2488cae4e +26. Every other file is byte-identical to 5d0d92e35, so round 1's rulings stand.

F2: fixed. The F1 search at this head matches exactly four lines: 132 and 145 of the PR #2529 audit, and this audit's F1 Concern (71) and F1 verification (73). The new F2 entry adds no match. Both scoped sentences are now true: "Outside this audit, the two remaining mentions of the old path are Current-tree verification commands in the PR #2529 audit" and "outside this audit, whose Concern quotes the old path and whose verification names the search pattern, ... matches only lines 132 and 145".

The audit. The F2 row is Nit (matching the bracket), FIXED/RESOLVED (the thread is resolved in the capture), with Source review 5522263962, which owns comment 4274337998. The Reply URL is reply 4275413496 on that thread, and the Resolution reference is 700cecf28's exact subject. Its verification sentence recomputes. The entries keep the template's field order, and Ownership, Status Values and Completion Rules are still verbatim. The Processing Log is in order: 17:53 (review 17:53:55), 19:37 (700cecf28 19:37:08), 19:39 (reply 19:39:34, dismissal 19:39:36), 19:40 (2488cae4e authored 19:40:16, committed 19:41:32).

Hygiene. Both subjects carry [#2521], neither has a body, each has one trailer line in name-address form, and author equals committer. git diff --check and git log --check are clean. The audit has no last-updated-utc. The inventory paragraph holds against the capture: the dismissal event for 5522263962 names 700cecf28 as its commit, and review 5523636848 has an empty body and owns only the reply.

Findings. None.

Checked, no finding. The reply (19:39:34) came two seconds before the dismissal event (19:39:36). The 19:39 entry lists the push before the reply, but at minute granularity it holds. The F2 category correctness fits a contradicted claim. The PR body is unchanged since round 1.

Checks

On the loop's compute hub at this head, merge base e2e21f20c (git merge-tree clean against develop 48c4d3013; receipt server-gates-krkavec-302): pre-commit profile gate exit 0 (88 s); linter markdown, linter cspell, linter lychee exit 0; frontmatter-validator --all: 19 errors / 4 warnings at this head and 19 / 4 at e2e21f20c re-measured, none in the files this PR touches; validate-audit-record.py --pr-number 2532 exit 0 against this head's audit record (2 rows, 8 log entries, 0 failures). GitHub checks at this head at posting time: "Docker E2E: completed/skipped; Unit (stable): completed/success; Layer Boundary Bans: completed/success; Unit (nightly): completed/success; Documented Clippy Allows: completed/success; Package Coverage (${{ matrix.package }}): completed/skipped; Package Coverage Regression: completed/success; Test (Docker) (release): in_progress/pending; Build on macos-latest (stable): completed/success; Build on ubuntu-latest (nightly): completed/success; Build on ubuntu-latest (stable): completed/success; Build on windows-latest (nightly): completed/success; Build on windows-latest (stable): completed/success; Generate Coverage Report: completed/success; Build on macos-latest (nightly): completed/success; Discover Package Coverage: completed/success; Docs Lint: completed/success". At posting, develop is 48c4d3013.

@da2ce7

da2ce7 commented Oct 14, 2026

Copy link
Copy Markdown
Contributor

ACK 2488cae — verified that the only change since 5d0d92e is the PR #2532 audit, that its scoped F1 claims match the four-line old-path search at this head, and that the new F2 row and log agree with the capture

@josecelano

Copy link
Copy Markdown
Member Author

ACK 2488cae

@josecelano
josecelano merged commit 0775015 into torrust:develop Oct 14, 2026
20 checks passed
@josecelano
josecelano deleted the chore/2521-archive-spec branch October 14, 2026 21:14
josecelano added a commit that referenced this pull request Oct 16, 2026
…and move the measurement to #2547

b2d33e1 docs(pr-reviews): add the reply URL of the eighth review round of PR #2550 (Jose Celano)
514cef3 docs(pr-reviews): record the eighth review round of PR #2550 (Jose Celano)
d1a5498 docs(pr-reviews): add the reply URL of the seventh review round of PR #2550 (Jose Celano)
af0da1a docs(pr-reviews): record the seventh review round of PR #2550 (Jose Celano)
759278c docs(pr-reviews): add the reply URL of the sixth review round of PR #2550 (Jose Celano)
2fb9cb0 docs(pr-reviews): record the sixth review round of PR #2550 (Jose Celano)
d5537ac docs(pr-reviews): add the reply URLs of the fifth review round of PR #2550 (Jose Celano)
c22fc52 docs(issues): [#2507] log the fifth PR #2550 review round (Jose Celano)
db1d2e4 docs(pr-reviews): record the fifth review round of PR #2550 (Jose Celano)
04d82d3 docs(issues): [#2547] state the selection rules as this specification's own (Jose Celano)
36ca2d1 docs(pr-reviews): add the reply URLs of the fourth review round of PR #2550 (Jose Celano)
09792d3 docs(issues): [#2507] log the fourth PR #2550 review round (Jose Celano)
a1bfb60 docs(pr-reviews): record the third dismissal and the fourth review round of PR #2550 (Jose Celano)
91a39a1 docs(issues): [#2547] limit the shared population to the force-push measures (Jose Celano)
b7a547d docs(pr-reviews): add the reply URLs of the third review round of PR #2550 (Jose Celano)
916925c docs(issues): [#2507] log the third PR #2550 review round (Jose Celano)
4b92ec0 docs(pr-reviews): record the second dismissal and the third review round of PR #2550 (Jose Celano)
1aecd2b docs(issues): [#2507] name the contradiction in the second re-review's scope (Jose Celano)
cbf2b8b docs(issues): [#2547] count and classify the force-pushes of the PRs merged in the window (Jose Celano)
7386f69 docs(pr-reviews): record the dismissed approval and the second review round of PR #2550 (Jose Celano)
c20f6cc docs(issues): [#2507] log the second PR #2550 review round (Jose Celano)
3e6f931 docs(issues): [#2547] label the PR #2531 merge time as merged_at (Jose Celano)
014c0e7 docs(issues): [#2507] state what the second re-review did not check (Jose Celano)
1dea064 docs(issues): [#2507] classify the V4 force-pushes by whether the push moved the base (Jose Celano)
e774c1d docs(issues): [#2507] set the evidence stamp to its newest edit (Jose Celano)
0dbe53d docs(issues): [#2547] classify a force-push by whether it moved the base (Jose Celano)
2562247 docs(pr-reviews): add the PR #2550 review audit (Jose Celano)
975501e docs(issues): [#2507] record the Task Reviewer's re-review of the close-out fixes (Jose Celano)
3fa9bca docs(issues): [#2547] log the edits that moved the last-updated stamp (Jose Celano)
c72184d docs(issues): [#2547] use the merge time that GitHub reports for PR #2531 (Jose Celano)
436a91d docs(issues): [#2507] account for every force-push of the 18 merges in V4 (Jose Celano)
a2eb4c1 docs(issues): [#2507] describe M1 as inferred, not proven (Jose Celano)
4b1c567 docs(issues): [#2507] attribute the delivery-sequence log line to the #2525 spec (Jose Celano)
08d1e07 docs(issues): [#2507] label the force-push event commits and record how to fetch them (Jose Celano)
7a3d1cc docs(issues): [#2547] classify force-pushes that are not rebases separately (Jose Celano)
b2bcd00 docs(issues): [#2547] use the merge's target tip as the refresh-path cutoff (Jose Celano)
2733f2e docs(issues): [#2547] limit the rebase-fallout baseline to 1 to 13 October (Jose Celano)
f4d1817 docs(issues): [#2525] record the agreed delivery sequence (Jose Celano)
3cb3548 docs(issues): [#2507] record the close-out verification and move the measurement to #2547 (Jose Celano)
38658d8 docs(issues): add issue specification for #2547 (Jose Celano)

Pull request description:

  Related to #2507

  ## Summary

  Closes out #2507 without waiting two weeks, records the follow-up issue #2547 that takes over its measurement, and records the agreed delivery sequence for #2525. Documentation only: every change is under `docs/issues/open/`.

  ### #2547 specification (`docs(issues)`)

  New `docs/issues/open/2547-measure-effect-of-optional-rebases/`. The maintainer approved the draft and the issue was created on GitHub. It takes over #2507 task T7 and acceptance criterion AC9: compare 2026-10-15 to 2026-10-28 with the #2507 baseline, classify each force-push as required (conflict) or recommended, and count merges through the merge tool's recorded-base refresh. It starts no earlier than 2026-10-29.

  ### #2507 close-out (`docs(issues)`)

  - **Manual verification** from the 18 real merges from PR #2526 to #2543 (`manual-verification-evidence.md`, section "Merges Under the New Policy"):
    - nine pull requests merged while behind `develop` without a rebase at merge time (M2), and every merged head stays reachable from `develop` (M3);
    - six were merged through the recorded-base refresh (M1). This is indirect evidence: the tool output was not captured, so the reasoning from GitHub state is spelled out in section V1;
    - #2532 and #2537 took the conflict rebase path (M4);
    - code and documentation-only merges happened with no ruleset changed (M5, M6), and first-parent history has one merge per pull request (M8).
  - **Acceptance criteria:** AC1 to AC4 and AC6 ticked with evidence. The maintainer accepted AC6 while no check is required, with the required `CI gate` tracked by #2525. AC9 and T7 were reworded as moved to #2547.
  - **New Closure Plan (C1 to C7)** in the spec, so the remaining steps are written down. After this PR merges, #2507 is closed manually on GitHub and its spec is archived with `cleanup-completed-issues`.
  - **New files:** `implementation-retrospective.md` and `agent-review-reports.md`, the latter holding the Task Reviewer report. The Task Reviewer's first verdict was `REVIEW FAILED` (five should-fix and three nit findings, all fixed); a later re-review first failed on residual wording and then passed, and each verdict is its own entry.

  ### #2525 delivery sequence (`docs(issues)`)

  - **Rust first:** pure-Rust tasks T1 to T3, then the sandbox decision gates T4 and T5.
  - **Before-baseline:** recorded before the orchestrator merges.
  - **Gate not required at first (T6):** `CI gate` lands reporting but not required, and is observed on real code and documentation-only pull requests.
  - **Then required (T7):** only with maintainer approval, with the ruleset JSON saved and a rollback documented.
  - **Measurement split (T8):** moved to a follow-up issue created when the gate becomes required, so #2525 can close without a waiting period.

  ## Validation

  - `TORRUST_GIT_HOOKS_LOG_DIR=.tmp ./contrib/dev-tools/git/hooks/pre-commit.sh --format=json`: pass.
  - `TORRUST_GIT_HOOKS_LOG_DIR=.tmp ./contrib/dev-tools/git/hooks/pre-push.sh --format=json` (nightly and stable Rust toolchains): pass, after rebasing onto `develop`.
  - `python3 contrib/dev-tools/git/tests/test-github-merge-symlinks.py` (Python 3.14.4): 51 tests OK. `bash contrib/dev-tools/git/tests/test-merge-pull-request.sh`: passed.
  - Independent Task Reviewer re-derived the evidence from `git` and `gh api`; its reports and two re-reviews are in `agent-review-reports.md`.
  - Review round: the findings of Copilot and da2ce7 are fixed in separate signed commits and recorded in `docs/pr-reviews/pr-2550-review/PR-REVIEW.md`; `validate-audit-record.py --pr-number 2550` reports no failures.

  ## Notes for reviewers

  - The PR-branch commit-id check from the `open-pull-request` skill reports the before and after commits of the #2532 and #2537 force-pushes (for example `55a414e98`) once a clone has fetched them. They are not commits of this branch: V4 cites them as the `beforeCommit` and `afterCommit` values of GitHub's `HeadRefForcePushedEvent`, with the fetch step and the full ids recorded. The skill defines no exception for this case.
  - The evidence cites `develop` at `fd04ac51e`. This branch was then rebased onto `30b368f0f` before opening; the two newer merges (#2500 and #2544) are outside the evidence window.

ACKs for top commit:
  da2ce7:
    ACK b2d33e1 — the round-9 correction entry against the captured times, the audit's twenty-nine rows against the captured reviews, thread, reply and timeline, and the commit-id check were recomputed with no finding
  josecelano:
    ACK b2d33e1

Tree-SHA512: 17030dd5806832cc53121a800b1681b816fb6ea61c560c7c390cee34aa8a95d3f6d59d3fdff78991f463ba1278ae8d37951c8497014f0e4221269974e8dd46eb

This branch was successfully deployed

1 active deployment
coverage — 2488cae4 Deployed Oct 14, 2026 by josecelano via Generate Coverage Report #2544
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