Clarify verification ownership in the implementation plan

This commit is contained in:
2026-10-07 21:34:28 +00:00
parent 9086306498
commit 89981abbe5

View File

@@ -52,13 +52,21 @@ this implementation.
[testing policy](../policy/testing.md). Use local Git repositories, Go [testing policy](../policy/testing.md). Use local Git repositories, Go
packages, controlled command doubles, and HTTP fixtures. Default tests remain packages, controlled command doubles, and HTTP fixtures. Default tests remain
offline and independent of real credentials or sibling checkouts. offline and independent of real credentials or sibling checkouts.
- Verification lists describe required evidence, including existing tests.
Give each behavior a test owner: parser/checker tests cover syntax and rules;
candidate-tree and Git tests cover file access and resolution; conversion
tests cover each API/profile selection; shared orchestration tests cover
ordering, failure stopping, cancellation, and callback execution. Use
representative integration cases to verify these boundaries work together.
Add coverage where the change introduces a risk or leaves an evidence gap.
- Prepare newly selected development dependencies before offline validation. - Prepare newly selected development dependencies before offline validation.
Apply the [OSS policy](../policy/oss.md) when adding dependencies or adapting Apply the [OSS policy](../policy/oss.md) when adding dependencies or adapting
third-party material, including any required attribution and license texts. third-party material, including any required attribution and license texts.
- Verify the focused outcome, stage its relevant changes, review the diff, and - Verify the focused outcome, stage its relevant changes, review the diff, and
create a nonempty commit with a short plain English message. Preserve unrelated create a nonempty commit with a short plain English message. Preserve unrelated
work and continue to the next stage. These stages require local work and work, report the stage's outcome and verification, and stop until the next
automated checks; consumer changes in Stage 14 are committed in that repository. stage is requested. These stages require local work and automated checks;
consumer changes in Stage 14 are committed in that repository.
## Design carried through the stages ## Design carried through the stages
@@ -389,9 +397,12 @@ Undefined references and HTML prose remain governed by parser interpretation.
**Verification:** Valid/missing files and anchors, same-document/empty fragments, **Verification:** Valid/missing files and anchors, same-document/empty fragments,
percent-escaped paths and fragments, query strings, directories and non-Markdown percent-escaped paths and fragments, query strings, directories and non-Markdown
files, absolute in-checkout paths, symlink-parent traversal and cycles, outside files, outside links with both settings, and submodule observations. Check how
links with both settings, submodule observations, neighboring files present/absent, resolver results and inspection errors become Markdown findings, preserving
missing local Git objects, cancellation, and unchanged candidate/worktree bytes. causes and cancellation. Use representative committed-tree integration cases
and verify unchanged candidate/worktree bytes. Existing candidate-tree and Git
tests own detailed absolute-path, symlink-parent, cycle, neighboring-file,
missing-object, and traversal-cancellation cases.
## Stage 11: Expose Markdown selection and complete validation integration ## Stage 11: Expose Markdown selection and complete validation integration
@@ -401,8 +412,9 @@ missing local Git objects, cancellation, and unchanged candidate/worktree bytes.
Enable on a non-nil group/empty object and map the boundary boolean explicitly. Enable on a non-nil group/empty object and map the boundary boolean explicitly.
2. Wire the checker and nonfailure observations into the shared executor/output 2. Wire the checker and nonfailure observations into the shared executor/output
writer. Reuse existing facade/CLI diagnostic formatting and exit classification. writer. Reuse existing facade/CLI diagnostic formatting and exit classification.
3. Update GoDoc, configuration, check/publish guides, CLI reference, internal 3. Document the newly operational Markdown selection in its canonical owners.
inventory, and maintained validation examples for all operational selections. Review earlier stages' GoDoc, configuration, check/publish guides, CLI reference,
internal inventory, and examples for consistency across combined selections.
4. Use self-contained fixtures representing Audita defaults/artifacts, ConfigKit's 4. Use self-contained fixtures representing Audita defaults/artifacts, ConfigKit's
race/vet/compilation, and PromptKit's shared settings plus example assertions. race/vet/compilation, and PromptKit's shared settings plus example assertions.
Document how consumers remove duplicate generic commands when adopting settings. Document how consumers remove duplicate generic commands when adopting settings.
@@ -444,14 +456,17 @@ fixture and instrument Go/transport operations. Prove wrong tag/commit stops
before module resolution/build, a dirty module cannot select a different tool, before module resolution/build, a dirty module cannot select a different tool,
the verified checkout selects the tool, module metadata and source remain the verified checkout selects the tool, module metadata and source remain
unchanged, and the executable/temporary files are cleaned up. Tool metadata unchanged, and the executable/temporary files are cleaned up. Tool metadata
preparation is separate from offline candidate checks. preparation is separate from offline candidate checks. Include a representative
case that verifies invocation of the selected executable with the event arguments
and propagation of its exit status. Existing delivery tests own hosted behavior.
## Stage 13: Verify upgrades, retries, and bootstrap variants ## Stage 13: Verify upgrades, retries, and bootstrap variants
**Outcome:** Tool selection follows the triggering release across supported uses. **Outcome:** Tool selection follows the triggering release across supported uses.
1. Add local module-proxy fixtures for two tool versions and tagged consumer 1. Extend Stage 12's bootstrap fixtures with a local module proxy for two tool
module configurations. Execute the maintained workflow body against both. versions and tagged consumer module configurations. Execute the maintained
workflow body against both.
Keep live infrastructure outside the default test suite. Keep live infrastructure outside the default test suite.
2. Verify a retry of an older tag still selects that tag's module configuration 2. Verify a retry of an older tag still selects that tag's module configuration
when the default branch has upgraded. Include missing tool-only checksums and when the default branch has upgraded. Include missing tool-only checksums and
@@ -464,10 +479,11 @@ preparation is separate from offline candidate checks.
retries, and the distinct tool/app artifact preparation steps. retries, and the distinct tool/app artifact preparation steps.
**Verification:** Two dependency versions, older-source retries, self bootstrap, **Verification:** Two dependency versions, older-source retries, self bootstrap,
separately installed tool, source-only page delivery, binary delivery using a and separately installed tool, using the shared bootstrap fixtures. Existing
local HTTP fixture, and preserved tag/commit/destination/state behavior. An delivery and publication tests retain ownership of source-only pages, binary
application without a declared ReleaseKit dependency uses the installed-tool delivery, destination handling, and publication states. Add integration coverage
integration. for any new interaction introduced by bootstrap changes. An application without
a declared ReleaseKit dependency uses the installed-tool integration.
## Stage 14: Migrate Audita's local CI integration ## Stage 14: Migrate Audita's local CI integration
@@ -477,12 +493,15 @@ integration.
Adapt `.woodpecker/release.yml` to the maintained module-based template, Adapt `.woodpecker/release.yml` to the maintained module-based template,
preserving its Go image, Gitea secret name, and release profile. preserving its Go image, Gitea secret name, and release profile.
2. Retain its existing released ReleaseKit module selection for this migration; 2. Retain its existing released ReleaseKit module selection for this migration;
that version already supplies `ci-deliver`. Align `scripts/release.sh` with that version already supplies `ci-deliver`. Make any necessary adjustments to
the selected bootstrap metadata approach and preserve native executable exit `scripts/release.sh` for the selected bootstrap metadata approach, preserving
behavior. Keep generated tool output outside the candidate source where needed. arguments and native executable exit behavior. Keep generated tool output
outside the candidate source where needed.
3. Verify the consumer's actual wrapper/workflow using local tagged fixtures and 3. Verify the consumer's actual wrapper/workflow using local tagged fixtures and
prepared module caches. Confirm matching selection and unchanged profiles, prepared module caches. Confirm matching tool selection, preserved arguments
source validation, binary targets, hosted page behavior, and source files. and exit status, and unchanged source files. Review the diff for preservation
of the release profile and binary targets. Existing consumer and ReleaseKit
tests retain ownership of source validation and hosted delivery behavior.
4. Commit the focused migration in Audita with a plain English message. Record 4. Commit the focused migration in Audita with a plain English message. Record
its commit and local verification in this plan's implementation status. its commit and local verification in this plan's implementation status.