epic: v0.20.0 - breaking: clearer ADR tooling and the write guard on every surface #675
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.
Depends on
#492 adr check: say what is wrong and how to fix it, in plain words, with no rule codes
sixfold-space/madtea
#508 adr: add rebuild to regenerate the README index from the records
sixfold-space/madtea
#530 adr check: resolve cross-repo record links, so an impacts pair cannot go one-way or dangle
sixfold-space/madtea
#632 adr check: C11 drops the host from an issue URL and reads the link on the record's own forge
sixfold-space/madtea
#639 adr: remove the legacy docs/adr/ layout, because its folder name lets a record skip every rule
sixfold-space/madtea
#642 feat(adr)!: adr check reads only the Decision issues list
sixfold-space/madtea
#658 adr check: verify every file reference in a record
sixfold-space/madtea
#670 epic: one guard enforces the recorded limits on every surface
sixfold-space/madtea
#710 security: git tag create does not guard the tag name against a leading dash
sixfold-space/madtea
#711 security: repo-flags endpoints build API paths with raw, unescaped segments
sixfold-space/madtea
#712 security: remove the legacy OAuth client-id fallback (it reads the merged git config)
sixfold-space/madtea
#715 security: a credential resolver returns a token without the cleartext-http check
sixfold-space/madtea
#717 security: the gosec gate excludes 7 rule classes with no ADR
sixfold-space/madtea
#740 bug(mcp): tool results omit resultType required by protocol revision 2026-07-28
sixfold-space/madtea
Reference
sixfold-space/madtea#675
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?
v0.20.0 carries the breaking changes to the ADR tooling - clearer output,
multi-repo records, and the removal of the legacy layout - and lands the one
write guard on every surface. A v0.19.0 user takes these together. A breaking
change bumps the minor version in 0.x (ADR 0028).
Breaking changes are fine across more than one release, as long as each release
stands on its own. So the second-contributor sign-off work and the fake-to-real
test migration move to their own later breaking releases.
There is no release until every child below is closed.
Children:
rule codes.
Moved to their own later breaking releases:
credential-boundary ruling per tool, not a mechanical change
(status/needs-decision on the issue).
accepted; its enforcement ships in a later release).
Internal, no user-facing change; the harness (#677) already exists, so a new
forge feature in this release uses it.
Every forge test in this release follows ADR 0017.
Done when every child above is closed. Then scripts/release.sh cuts v0.20.0, and
the release notes list each break and what a user does about it.
madt_adrand other MCP tools cannot target a nested repo, because they take nodir=epic: v0.20.0, the one release that breaks the ADR toolingto epic: v0.20.0 - breaking: clearer ADR tooling and the write guard on every surfacemadt_adrand other MCP tools cannot target a nested repo, because they take nodir=Shipped in v0.20.0: https://git.cheshirecube.cloud/sixfold-space/madtea/releases/tag/v0.20.0
This release carries the breaking changes to the ADR tooling (clearer output, cross-repo record links, the file-reference check, and the removal of the legacy layout) and the one write guard on every surface. The acceptance ran green on both forges at both pinned versions on main.
Two items moved to a later release: the live refresh of the vendored API specs (#538), and the release-notes breaking-change tooling (#719). The write guard ships against the current vendored specs, so a passthrough write to an endpoint that no vendored spec declares is refused until that refresh lands.