docs(skills): record CI gating and worktree failure modes - #994
Merged
Conversation
Captures patterns found while reviewing the open PR queue, each of which cost investigation time before being understood. ci: fork PRs report zero checks until a maintainer approves the run, which is indistinguishable from queued. String-typed workflow inputs are truthy in an `if:` even when set to "false", so gating on the bare input fails open. Reusable-workflow calls reject `continue-on-error`, so such a job either gates or is absent. A `needs:` entry without `always()` makes dependents skip rather than fail. release-artifacts: a stream tag is a claim that a digest passed its gate, not proof. Resolve the digest and trace it to a passing run. A promotion job reported as skipped while its stream tag still advances means something outside the gate is publishing it. worktrees: tooling that excludes `.worktrees` by absolute path component matches everything when run from inside a worktree, so a validator can report success having checked zero files. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Aug 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Captures patterns discovered while reviewing and merging the open PR queue. Each cost real investigation time, so each is written back as a timeless rule rather than a session note.
citype: stringinput is truthy in anif:even when its value is"false", so gating on the bare input fails open. Compare== 'true'explicitly.continue-on-error, so such a job either gates or is absent — it cannot be made advisory.needs:entry withoutalways()makes dependentsskippedrather than failed; the two look identical in the UI and have different fixes.release-artifactsskippedwhile its stream tag still advances means something outside the gate is publishing it — build-time tag computation is the usual source.worktrees.worktreesby absolute path component matches everything when run from inside a worktree. A validator passing with a zero-file count is failing, not succeeding. This actually happened once chore: enforce isolated worktrees for feature work #980 mandated worktrees.## Red Flagsand## Verificationsections the skill was missing.Validation
just check,validate-docs.py(13 skills, 39 Markdown files),pre-commit run --all-filesall pass. Line budgets: ci 149/180, release-artifacts 95/180, worktrees 127/180, AGENTS.md unchanged at 128/150.Docs-only; no image build.