Skip to content

docs: allow minor annotations on accepted ADRs - #1966

Merged
ralphbean merged 2 commits into
mainfrom
docs/adr-minor-updates-policy
Jun 8, 2026
Merged

docs: allow minor annotations on accepted ADRs#1966
ralphbean merged 2 commits into
mainfrom
docs/adr-minor-updates-policy

Conversation

@ralphbean

Copy link
Copy Markdown
Member

Summary

  • Replaces the strict "immutable once accepted" ADR policy with a nuanced one
  • Cross-references, short notes linking to newer ADRs, and typo fixes are now explicitly welcome on accepted ADRs
  • Substantial rewrites still require a new superseding ADR
  • Directs agents to use docs/architecture.md for evolving design narrative

Agents were getting confused when we'd add notes to old ADRs linking to newer related decisions. The old policy told them ADRs are frozen, so they'd resist adding navigational links. This update draws the line at the right place: annotations that help readers navigate are good, turning old ADRs into living documents is not.

🤖 Generated with Claude Code

Replace the strict "immutable once accepted" policy with a nuanced one:
cross-references, short notes linking to newer ADRs, and typo fixes are
welcome on accepted ADRs. Substantial rewrites still require a new
superseding ADR. This stops agents from refusing to add navigational
links between related ADRs while still preventing old ADRs from becoming
evolving design documents (that role belongs to docs/architecture.md).

Updates both the ADR template and the writing-adrs skill.

Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Ralph Bean <rbean@redhat.com>
@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown

Site preview

Preview: https://3f228212-site.fullsend-ai.workers.dev

Commit: cb18f319a215698aed74de7b8910d7b18ec2c4f3

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 5, 2026

Copy link
Copy Markdown

Review

Findings

Medium

  • [missing-authorization] AGENTS.md — This PR modifies ADR governance policy across 6 files without a linked issue. The change relaxes the strict "frozen/immutable" ADR policy to explicitly allow minor annotations. While the change codifies existing practice (ADR 0026 and ADR 0038 already contain post-acceptance annotations), non-trivial policy modifications benefit from a linked issue that captures the rationale and any discussion about the scope of allowable annotations.

  • [stale-doc] docs/problems/architectural-invariants.md:112 — The supersession description says "its content remains unchanged (ADRs are point-in-time records)", which contradicts the new policy that explicitly allows minor annotations. This doc was not updated in the PR.
    Remediation: Update to clarify that minor annotations are allowed while substantial rewrites are not, e.g., "but its content is not substantially rewritten (ADRs are point-in-time records that may receive minor annotations)."

Low

  • [ambiguous-phrasing] skills/renumber-adr/SKILL.md:131 — "Substantial ADR content is not rewritten once accepted" is ambiguous — "Substantial" reads as modifying the noun "content" (i.e., only important content is protected) rather than the verb "rewritten." Every other file in this PR uses the clearer "do not substantially rewrite" construction.
    Remediation: Rephrase to "ADR content is not substantially rewritten once accepted; this skill only fixes numbering."

  • [scope-definition] skills/writing-adrs/SKILL.md — The new policy introduces "substantial rewrites" vs. "minor annotations" but the boundary between them is left to judgment. The examples (cross-references, short notes, typo fixes) are helpful but edge cases remain (e.g., is adding a full paragraph linking to a related ADR "minor"?). Consider adding a couple of boundary examples to the "Stop if" section.

Info

  • [stale-doc] docs/ADRs/0018-scripted-pipeline-for-multi-agent-orchestration.md:21, docs/ADRs/0029-central-token-mint-secretless-fullsend.md:23 — These accepted ADRs still carry the old HTML comment saying "content is frozen." Updating them to match the new template comment would itself be a minor annotation permitted under the new policy. Only 2 of 42 ADRs are affected.
Previous run

Review

Findings

High

  • [incomplete-scope] AGENTS.md:33 — The PR updates ADR policy in the template and writing-adrs skill but does not update AGENTS.md, which still states: "its Context, Decision, and Consequences sections are frozen. Do not add post-decision notes, rewrite rationale, or edit consequences in place." This directly contradicts the new policy that explicitly welcomes "short notes that connect the ADR to newer decisions or clarifications." Since AGENTS.md is the primary instruction file for agents working with ADRs, this creates conflicting directives — agents following AGENTS.md will reject the very annotations the new policy encourages.
    Remediation: Update the AGENTS.md "Immutability" section (lines 33–37) to distinguish between prohibited substantial rewrites and acceptable minor annotations (cross-references, short notes, typo fixes), consistent with the updated template and skill.

Medium

  • [stale-doc] CONTRIBUTING.md:84 — States "Once accepted, their content is frozen — do not edit the Context, Decision, or Consequences sections" which contradicts the new policy allowing minor annotations.
    Remediation: Update to reflect the nuanced policy: point-in-time records that can receive minor annotations but should not be substantially rewritten.

  • [stale-doc] docs/architecture.md:6 — States "ADRs are point-in-time records and are not modified after acceptance" which is now inaccurate. The new policy allows minor modifications while prohibiting substantial rewrites.
    Remediation: Update to: "ADRs are point-in-time records that can receive minor annotations but are not substantially rewritten after acceptance."

  • [stale-doc] skills/renumber-adr/SKILL.md:131 — States "ADR content is immutable once accepted" which contradicts the new policy.
    Remediation: Update to clarify that substantial modifications are prohibited but minor annotations are acceptable.

Low

  • [stale-doc] docs/ADRs/0018-scripted-pipeline-for-multi-agent-orchestration.md:21 — Contains the old HTML template comment ("content is frozen") which now contradicts the updated template. The same applies to docs/ADRs/0029-central-token-mint-secretless-fullsend.md:23. Under the new policy, updating these comments would itself be an acceptable minor annotation.

  • [table-formatting] skills/writing-adrs/SKILL.md:219 — New table entries "Not adding cross-references to related ADRs" and "Using old ADRs as evolving design docs" use a different phrasing pattern than existing mistake entries. Consider "Omitting cross-references" and "Treating old ADRs as evolving design docs" for parallel structure.

  • [missing-authorization] docs/ADRs/0000-adr-template.md — Non-trivial policy change (106 changed lines across 2 files) has no linked issue. The PR body provides clear rationale, but a linked issue would document the decision trail for this policy shift.

@fullsend-ai-review fullsend-ai-review Bot 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.

See the review comment for full details.

| Skipping linters | Run `make lint` before committing |
| Wrong ADR number | Check existing files in `docs/ADRs/` first |
| Editing an accepted ADR's content | Write a new ADR that supersedes it |
| Substantially rewriting an accepted ADR | Write a new ADR that supersedes it |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] table-formatting

New table entries 'Not adding cross-references to related ADRs' and 'Using old ADRs as evolving design docs' use a different phrasing pattern than existing mistake entries. Consider 'Omitting cross-references' and 'Treating old ADRs as evolving design docs' for parallel structure.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Fixed in cb18f31 — "Omitting" and "Treating" now.

Update AGENTS.md, CONTRIBUTING.md, docs/architecture.md,
skills/renumber-adr/SKILL.md, and skills/writing-adrs/SKILL.md to
distinguish minor annotations from substantial rewrites on accepted
ADRs, consistent with the updated template and writing-adrs skill.

Fix parallel structure in writing-adrs mistake table entries.

Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Ralph Bean <rbean@redhat.com>
@ralphbean

Copy link
Copy Markdown
Member Author

Pushed cb18f31. The original PR only updated the template and the writing-adrs skill but left the old strict-immutability language in AGENTS.md, CONTRIBUTING.md, architecture.md, and the renumber-adr skill — so agents would've gotten contradictory instructions depending on which file they read first.

All five files now use the same "minor annotations welcome, substantial rewrites prohibited" framing. Also fixed the table entry phrasing for parallel structure.

Skipped the old HTML comments in ADRs 0018/0029 — those are cosmetic and can be cleaned up whenever someone's in the neighborhood.

@ralphbean
ralphbean added this pull request to the merge queue Jun 8, 2026
Merged via the queue into main with commit f69b992 Jun 8, 2026
11 checks passed
@ralphbean
ralphbean deleted the docs/adr-minor-updates-policy branch June 8, 2026 15:37
@fullsend-ai-retro

Copy link
Copy Markdown

🤖 Retro · Started 3:38 PM UTC
Commit: d0ac11b · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #1966 — docs: allow minor annotations on accepted ADRs

Workflow went well — no new proposals.

This was a human-authored PR (ralphbean) that relaxed the ADR immutability policy to allow minor annotations like cross-references and typo fixes. The review agent delivered genuine value:

  1. Review caught a real issue. The initial commit only updated 2 of 6 files that reference ADR immutability, leaving contradictory instructions in AGENTS.md, CONTRIBUTING.md, architecture.md, and the renumber-adr skill. The review agent flagged this as High severity ([incomplete-scope]) and requested changes.
  2. Human acted on feedback. A follow-up commit aligned the language across all remaining files.
  3. Second review run acknowledged fixes. The High and Medium scope findings were resolved; only lower-severity items remained (missing linked issue, stale HTML comments).
  4. Human approved and merged. The requires-manual-review label was appropriately applied since the PR touched agent configuration files (AGENTS.md, skills/).

Minor edge cases already tracked by existing issues:

No new proposals needed — the pipeline worked as designed.

@fullsend-ai-retro

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 3:38 PM UTC · Completed 3:44 PM UTC
Commit: d0ac11b · View workflow run →

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires-manual-review Review requires human judgment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants