adr check: resolve cross-repo record links, so an impacts pair cannot go one-way or dangle #530
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
Reference
sixfold-space/madtea#530
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What happens
adr checkresolves links inside one tree. A link to a record in ANOTHER repository is prose to it.That is the normal shape once a decision spans repositories. A record in the top-level repo lists the repositories it constrains in
impacts, and each of those repositories carries a record that implements it. The pair is meant to link both ways, so a reader in either tree reaches the other. Today:other-repo/0007resolves against nothing, so a renumber or a delete leaves a dead citation and the check stays green;impactsthat carries no implementing record is not reported;Ask
Extend the link rule to cross-repo citations, reading the other repository through the forge.
<repo>/NNNNor<owner>/<repo>/NNNN, and a full forge URL into another repository'sdocs/decisions/.impactscarries no record linking back to this one.--skip-remote-issuesskips it. The flag name no longer says only issues; either widen its meaning in the help or rename it, and say which in the fix.Not in scope
impactsis absent. A record with noimpactsand no cross-repo citation is unaffected, and a single-repository project sees no change.Acceptance criteria
other-repo/0007passes when that record exists and links back, and fails when it does not exist.other-repoinimpactswith no linking record there fails, naming the repository.--skip-remote-issuesskips every cross-repo rule, and the skip line says so.impactsand no cross-repo citations behaves exactly as today.Related: #496 (the tooling guides the author), #528 (assent from a second account), and the
impactskey from #483.Decided: the flag is
--skip-forge-checks, and the MCP parameter isskip_forge_checks. It replaces--skip-remote-issues, with no alias. I did not pick--offline. Onadr new,--offlinedoes the full job from local data. Onadr check, the flag removes checks, and the name must say that.When the flag is set,
adr checkprints a warning that names each check that did not run. For example:"Decision issues" are the issues in a record's
Decision issues:list (#634). The warning names only the checks that exist at the time. It does not change the exit code. The finalOK:line must not say that the forge checks ran (#492).The v0.20.0 breaking set is complete and green on main. The code landed across the v0.20.0 branches, the full local gate passes, and the forge suite is green on both forges at both pinned versions on current main (
31693766). Closing as done.