Repository navigation
Validate retired-link guard adoption and retire the rollout flag #269
Description
🤖 Generated by the Agentic Engineer
Evidence and audience
Actions devantler-tech/actions#721 introduces a shared, default-off check for links to explicitly configured retired GitHub repositories. The original repeated drift affected monorepo, agent-plugins, agent-skills, platform-template and dotnet-template documentation. The shared check should replace repeated manual discovery with an early, actionable failure.
Outcome and acceptance
- After devantler-tech/actions#721 ships, adopt the released action by immutable commit in at least two consumers, starting with platform-template and dotnet-template if their current documentation still benefits from the check.
- Keep consumer-specific retired names, documentation roots and justified historical exceptions in each consumer's versioned configuration.
- Verify a clean real consumer run and a disposable PR fixture containing a retired link; the latter must fail with the expected file and repository, not an operational error.
- Observe at least one week of consumer runs for false positives and scope mistakes; correct the shared contract or configuration from evidence.
- Decide whether the temporary
enabledinput can default on and then be removed in separate reviewed changes. Do not broaden scan scope or enable callers silently.
Delivery alone does not prove adoption or improvement in consumer documentation. This issue owns that verification and flag retirement after devantler-tech/actions#721.
Remaining work: deliver the default-on decision in #742 through substantive review, complete current-head CI, protected merge and release verification. Retain the existing explicit-false consumer configuration; input deletion is not selected for this increment.
Implementation decision — 25 October 2026
Select default-on validation after the completed consumer observation and retain enabled: "false" as compatible consumer configuration. This ends the opt-in rollout without forcing an API-removal migration or changing consumer-owned scan scopes. The existing released false/true behavior and its refusal/output controls remain supported. This is the decision requested by the last criterion, not a claim that #742 has merged or that a parameter can never change in a future separately reviewed compatibility change.
The rollout observation and native negative controls above justify the default. Existing explicit-true callers retain their behavior. A consumer can keep a declared step and deliberately disable it without installing Go, reading configuration, scanning files or publishing success/source outputs. Keep those disabled-state tests alongside omitted-input clean and rejection controls. Do not interpret supported present behavior as a promise of indefinite interface stability.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Projects
- StatusShow more project fields✅ Done
Activity
devantler commentedon Oct 2, 2026
Refreshed the adoption inventory on 2026-10-02. The complete indexed workflow search returns two matches, both catalogue CI self-tests, with
incomplete_results=false. Direct reads of the intended consumers at platform-template111b61a17cf739872b088f840766a75a4cde92d7and dotnet-templateb54ea833e3d8a7568c1c7fa5cfa8644485a60afaalso find no retired-link guard caller. This is bounded search and direct-source evidence, not a full portfolio census.Next delivery: adopt the released guard in two reviewed, immutable-pinned consumer changes, with consumer-owned scope and justified historical exceptions. Observe a clean native run and a disposable retired-link failure that identifies the expected file/repository. Start the required one-week observation only once those consumers actually run it.
Blocker: real consumer adoption, negative-path proof and the required observation period are absent. Catalogue fixtures do not authorize a default flip or retirement.
devantler commentedon Oct 3, 2026
Two real consumer adoptions are now merged: .NET template devantler-tech/dotnet-template#466 at main 8b1cb6a126f2d9f6382ca2f46fd88c1d395c1cc1 and platform template devantler-tech/platform-template#219 at main e45925117bc2d626ac75822660c4a716eff3a2c4. Both pin the opt-in validator to immutable canonical v4.9.4, own explicit documentation scopes with no historical exceptions, preserve their configuration through template sync, and require a complete scan in required CI. Generated projects choose their own adoption.
Native PR jobs https://github.com/devantler-tech/dotnet-template/actions/runs/37161080884/job/111314462653 and https://github.com/devantler-tech/platform-template/actions/runs/37161084935/job/111314476169 checked 5 and 35 clean text files, respectively. Each then rejected the seeded README link with failed outcome, empty validated output, and an independent exit-1 diagnostic identifying the expected file and retired repository. The shipped validator body was also rerun against both fetched merged-main commits with the same clean/negative results.
The delivery children #465 and #218 are closed. This experiment remains open: the earliest one-week merged-consumer observation window ends 2026-10-10T23:46:08Z. Default-on or flag removal still needs a separate evidence-based decision after that window; this round makes neither change.
devantler commentedon Oct 15, 2026
Observation window measured — 2026-10-15
Every
Validate retired repository linksjob in the two consumers' CI from 2026-10-03 to 2026-10-15, read from the Actions API:successsuccessREADME.md,devantler-tech/reusable-workflows), as designed. So the zeros above come from scans that looked at files, not from a skipped step.What this does not show: every observed job ran on a pull request (mostly dependency updates). No pull request in the window introduced a real retired link, so a true positive outside the fixture was not observed.
I have ticked the observation criterion and removed
blocked. What is left — whetherenabledcan default on — is our own decision.chore: agent-claim #269 nonce=15510a102b6f90eda55fe5638ce462c5
feat(retired-links): check retired repository links by default (#742)
devantler commentedon Oct 25, 2026
Completed by protected merge of #742 as signed commit
2283be5b2f3f937bb1d01804416711e74f829200, released as v13.2.0. Post-merge main CI 40148705891, Release, CD and both CodeQL workflows have succeeded. The released configuration is independently signature-verified and reconciled at the matching revision.The complete fresh workflow/composite census covers 23 active repositories, 189 workflows and 61 action metadata files. All 28 direct/composite calls across the 12 current external consumers explicitly enable validation; their actual caller files were individually Git-blob-hash verified. Native omitted-input good/bad, explicit-false, malformed-input and source-output controls pass. The actual rendered action guide was read, the final head received a clean independent Bugbot review, and the only earlier finding was explicitly withdrawn.
The recorded decision is default-on validation with the compatible explicit-false setting retained as supported consumer configuration. This completes the rollout decision without breaking existing callers. It makes no promise against a future separately reviewed interface change. Native issue readback confirms Completed and Done.