docs(sdlc): name the QA and design skills the lifecycle already runs - #112
Merged
Merged
Conversation
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.
🎯 Goal
SDLC.mdnames a skill for every lifecycle stage, including QA and design — so the document describes the collection that actually ships rather than a subset of it.🔍 Problem
The ticket lifecycle table drives every stage with a named skill except one. The QA row's Driven by column reads
QA reviewer (manual), and grepping the whole document forom-auto-qa-pr,om-prepare-test-env,om-integration-tests, or anyom-ux-*name returns nothing.Those skills are not aspirational.
om-prepare-test-env,om-auto-qa-pr, andom-integration-testsship inskills/, anddocs/roles/qa.mdis a five-row page built entirely around them. The same holds for design:om-ux-shapeandom-ux-review-prship and have a role page, and neither appears inSDLC.md.The gap matters because of what
SDLC.mdis for. It is the process document a human reads and an agent loads before acting, andom-setup-agent-pipelinegenerates it into every repository that installs the pipeline. A reader who has only this file concludes that QA is the one stage the collection offers no help with, and that design is not part of the process at all. Anyone deriving a role-to-skill map from it reproduces that conclusion faithfully — the document is the source, so the error propagates rather than being caught.The QA gate itself was never wrong:
qa-approvedis human-owned, and that is deliberate. What went missing is the difference between a person decides and a person works unaided. The old phrasing, "manually exercises user-facing changes," collapsed the two.What Changed
SDLC.mdandskills/om-setup-agent-pipeline/references/sdlc-template.md, edited in lockstep as the Amending this process section requires:om-prepare-test-env(boot the app once),om-auto-qa-pr(walk it in a browser; screenshots and a pass/fail report, no labels touched by default), andom-integration-tests(keep the flow as coverage). Done when now reads "qa-approvedapplied by a person", making the human ownership explicit rather than implied by the absence of a skill.om-ux-shapeor a human designer, scoped to user-facing changes and explicitly skipped by tickets that touch no UI. Done when is the flow and its states being decided, not an artifact, so a ticket cannot be blocked on a deliverable nobody asked for.om-ux-review-prdesign pass, stated as advisory: it informs the review, it does not hold the merge. That is the behavior the skill already had; the row now says so.om-ux-setupnamed next toom-setup-agent-pipelineas one-time setup, because a design contract is repository configuration, not a per-ticket stage.UPGRADE_NOTES.md— an entry with the copy-by-hand migration, since a generatedSDLC.mdis never regenerated for an existing install.Only skills present on
mainare referenced, so the lint name-reference gate holds.om-mockup-prototype(#106) andom-ux-style(#107) are deliberately left out until they land.🧪 Tests
bash scripts/lint.sh— Lint OK, including the name-reference gate and the discovery-contract check that renders the template and verifies its tablesnode scripts/test-browser-providers.mjs,test-tracker-providers.mjs,test-classify-runs.mjs,test-close-keywords.mjs,test-discovery-contracts.mjs— 5/5 PASSSDLC.mdandsdlc-template.mdauto-merge cleanly; the only conflict is the adjacent-insert inUPGRADE_NOTES.md, where both branches add an entry at the top. Whichever merges second resolves it by keeping both entries.💥 Breaking Changes
📋 Decisions touched
qa-approvedremains human-owned, and this PR does not restate the self-QA exception — feat: pre-intake skills, Definition of Ready, and QA gate hardening #107 rewrites that section, and duplicating it here would conflict.