| semantic-links |
|
|---|
Source: pull-request reviews and inline review threads for <PR_URL>.
The PR author owns this tracked audit record. Reviewers, including repository review agents, deliver findings through GitHub and have no repository-artifact obligation.
- Post-merge workflow approval: <DURABLE_GITHUB_COMMENT_URL_OR_NA>
- Relationship:
ORIGINAL,RE_RAISE_OF:<FindingId> - Disposition:
FIXED,NO_ACTION,SUPERSEDED,FOLLOW_UP - Thread state:
OPEN,RESOLVED,NON_RESOLVABLE,SUPERSEDED.OPENapplies prospectively to audits created or updated for approved follow-up work; historical audits remain valid without bulk migration. - Severity:
Blocker,Major,Minor,Nit,Suggestion; append(inferred)when derived from free prose. - Author class:
Copilot,Human,Unknown - Category:
link-integrity,formatting,metadata,testing,correctness,documentation,maintainability,security,other - An outdated thread whose concern was fixed is
FIXED/RESOLVED, even when GitHub marks the original thread outdated after the push. For in-PR feedback, useNO_ACTION/SUPERSEDEDonly for a duplicate, superseded, or no-change concern. A post-mergeNO_ACTIONrequires maintainer approval to decline the follow-up work.
Create one row for every independent concern. Split a review body into separate rows for separate
actionable assertions. Assign a reviewer-provided finding ID when available; otherwise assign
F<ordinal> in source-review and source-order order. Before action, map a later request for the
same current-tree change to RE_RAISE_OF:<FindingId>.
Every re-raise has its own tracking row and matching detail entry; never collapse it into the
original finding.
For an independently actionable review-body finding without an inline thread, use the submitted
review URL as Source URL and Thread state=NON_RESOLVABLE.
For every new audit row, record the source author's derived Author class and exactly one primary
Category. Classify the category from the concern, not the proposed fix; use other only when no
listed category fits. These fields make future audit records suitable for deterministic aggregation.
Historical records predate this schema and remain unchanged.
Assign each new row an immutable repository reference in the form
review-finding:pr-<PR_NUMBER>-<FINDING_ID>, with the finding ID lowercased. For example, audit
finding F1 for PR #2230 is review-finding:pr-2230-f1. Use this reference to link the finding
from ADRs, issue specifications, and other repository artifacts. GitHub identifiers remain source
metadata, not the canonical finding reference. Never change a reference after assigning it.
This convention applies to new audits only. Historical audit records remain unchanged and do not need review-finding references.
Record each finding in two coordinated places: one compact tracking row below, and one matching
entry in ## Finding Details for the narrative fields. The pair shares the finding ID and
together records every field in the canonical roster.
| Finding ID | Review finding reference | Author class | Severity | Category | Relationship | Disposition | Thread state |
|---|---|---|---|---|---|---|---|
| <FINDING_ID> | <REVIEW_FINDING_REFERENCE> | <AUTHOR_CLASS> | <THREAD_STATE> |
Create one entry per tracking row, in the same order. Keep the concern and the applied solution readable as prose; this section carries the source metadata and verification evidence.
- PR number: <PR_NUMBER>
- Source review ID: <REVIEW_ID>
- Reviewer finding ID: <OPTIONAL_ORIGINAL_FINDING_ID_WHEN_REASSIGNED>
- Source URL: <SOURCE_URL>
- Concern: <WHAT_THE_REVIEWER_REPORTED>
- Solution: <WHAT_WAS_DONE_AND_WHY_OR_WHY_NOT>
- Current-tree verification: <COMMAND_OR_INSPECTION_AND_RESULT>
- Resolution reference: <UNIQUE_COMMIT_SUBJECT_OR_REPLY_URL>
- Follow-up PR URL: <DURABLE_FOLLOW_UP_PR_URL_OR_NA>
- Reply URL: <REPLY_URL_OR_NA>
Use a unique Conventional Commit subject as the Resolution reference for FIXED; for a fix outside
the repository tree (for example a PR or issue body edit), use the durable URL of the PR
conversation response that states it. Use a durable
reply URL for NO_ACTION, SUPERSEDED, or FOLLOW_UP; record a follow-up pull request only in
the separate Follow-up PR URL field.
- - Started audit.
Append entries only. If an entry was rewritten in place, restore the prior entries, then append a correction that names the rewritten content; do not rewrite the record again.
- Re-derive the reply claim against the current tree before replying or resolving a thread.
- Reply on every resolvable thread before resolving it.
- For an outdated thread whose concern was fixed, record
Disposition=FIXEDandThread state=RESOLVED, even if GitHub marks the thread outdated after the push. For a duplicate, superseded, or no-change in-PR thread, reply exactlySuperseded by <FindingId>: <reason>., recordDisposition=NO_ACTIONandThread state=SUPERSEDED, then resolve it. A post-mergeNO_ACTIONrequires maintainer approval to decline the follow-up work. - A consolidated PR conversation response may cover multiple review rounds only when it names every review ID and every finding ID with its disposition and resolution reference. Record its durable URL in each related row.
- Cite a fix by its unique Conventional Commit subject or durable reply URL, never by a branch SHA that can change after a rebase.
- Refresh review threads using GraphQL and confirm that no unresolved actionable thread remains.