Files
ConfigKit/docs/roadmap/remediation.md

83 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ReleaseKit adoption review findings
Reviewed commits `1917dcf` through `f887fac` against the
[adoption roadmap](releasekit.md) and [implementation plan](implementation.md).
The selected module, profile, validation sequence, and tag-only publication
match the intended architecture. Address the following documentation findings.
## 1. Preserve the captured endpoint during manual recovery (P2)
Status: Complete. The runbook uses the captured endpoint and checks Git's URL
resolution before querying refs. Its documented command returned the exact tag
in a temporary fixture and rejected a rewritten endpoint before querying refs.
Affected: [release procedure](../release.md#5-recover-from-a-failed-or-uncertain-tag-push),
lines 180–199.
The manual recovery command queries a literal URL without checking whether Git
rewrites it. ReleaseKit v0.2.0's own recovery procedure verifies that the captured
endpoint still resolves to itself before querying it. Without that check, the
documented query can inspect a different repository and falsely establish that
the published tag is absent. The runbook then permits deletion of the retained
local tag and a retry based on that incorrect conclusion.
Review reproduced this with two temporary bare repositories: the actual endpoint
contained the published annotated tag; an `insteadOf` rewrite sent the runbook's
query to a repository with the same `main` commit but no tag. The query succeeded
and reported only `main`.
Use the endpoint captured in the publication report and follow ReleaseKit's
existing URL-resolution check before querying its refs, for example:
```sh
authoritative='COPY_CAPTURED_ENDPOINT'
release_version='vMAJOR.MINOR.PATCH'
test "$(git ls-remote --get-url -- "$authoritative")" = "$authoritative" &&
git ls-remote --refs -- "$authoritative" refs/heads/main "refs/tags/$release_version"
```
A failed equality check or query leaves the result unresolved. Retain the
existing bounded recovery and confirmed-absence requirements. Verify this
correction with a temporary URL-rewrite fixture; it adds no recurring release
gate or ConfigKit-owned recovery implementation.
## 2. Remove the unsupported prohibition on `go tool` (P3)
Status: Complete. The runbook retains the built-executable workflow and limits
its exit-status explanation to `go run`. A fresh `go tool` check preserved
ReleaseKit's status 2 and publication diagnostics.
Affected: [release procedure](../release.md#1-select-go-and-prepare-the-tool),
lines 84–86.
The runbook prohibits both `go run` and `go tool` on an exit-status rationale.
That rationale applies to `go run`, but the review's Go 1.26.8 invocation
`GOTOOLCHAIN=local GOPROXY=off go tool releasekit publish invalid` returned
ReleaseKit's status 2 and its publication diagnostics unchanged. The blanket
`go tool` prohibition unnecessarily extends the selected native-executable
workflow into an unsupported restriction.
Keep the documented temporary executable build and publication commands.
Remove `go tool` from the prohibition and explain the exit-status limitation
specifically for `go run`. No additional execution mode or test matrix is needed.
## 3. Reconcile completed implementation status (P3)
Status: Complete. The roadmap and implementation plan now identify the migration
as complete, and the roadmap describes fixture verification as completed.
Completed documents remain available for retirement during release preparation.
Affected: the adoption roadmap's opening status and final migration-verification
bullet, and the implementation plan's opening status.
All seven stage headings are marked complete, but the plan still says
"Status: Planned" and the roadmap says isolated fixture verification remains
unfinished. The final two commits identify that verification as completed;
this review also reproduced validation failure without a tag, successful
annotated-tag publication with each selected gate once, and wrong-endpoint
rejection before any Go validation or tag creation.
Mark the documents complete and describe the verification as completed.
Keep retirement during release preparation under the existing release policy.
Do not add a permanent migration-verification gate.