systematic-qa
Systematic Project QA
Procedures
Step 1: Discover the Repository QA Contract
- Read root instructions, repository docs, and CI/build files before running commands.
- Execute
python3 scripts/discover-project-contract.py --root .to surface candidate install, verify, build, test, lint, and start commands. - Prefer repository-defined umbrella commands such as
make verify,just verify, or CI entrypoints over language-default commands. - Read
references/project-signals.mdwhen command ownership is ambiguous or when multiple ecosystems are present. - Identify the changed surface and the regression-critical surface before choosing scenarios.
- Choose a QA artifact location using repository conventions. If the repository has no QA artifact convention, store scratch artifacts under
/tmp/codex-qa-<slug>.
Step 2: Define the QA Scope
- Build a short execution matrix covering baseline verification, changed workflows, and unchanged business-critical workflows.
- Read
references/checklist.mdand ensure every required category has a planned validation. - Prefer public entry points such as CLI commands, HTTP endpoints, browser flows, worker jobs, and documented setup commands over internal test helpers.
- Create the smallest realistic fixture or fake project needed to exercise the workflow when the repository does not already include one.
- Treat mocks as a local unit-test boundary only. Do not use mocks or stubs as final proof that a user flow works.
Step 3: Establish the Baseline
- Install dependencies with the repository-preferred command before testing runtime flows.
- Run the canonical verification gate once before scenario testing to establish baseline health.
- If the baseline fails, read the first failing output carefully and determine whether it is pre-existing or introduced by current work before moving on.
- Start services in the closest supported production-like mode and confirm readiness through observable signals such as health checks, startup logs, or successful handshakes.
Step 4: Execute User-Like Flows
- Drive workflows through the same interfaces a real operator or user would use.
- Capture the exact command, input, and observable result for each scenario.
- Validate changed features first, then validate at least one regression-critical flow outside the changed surface.
- Exercise live integrations when credentials and local prerequisites exist. When they do not, validate every reachable local boundary and record the blocked live step explicitly.
- Re-run the scenario from a clean state when the first attempt leaves the environment ambiguous.
Step 5: Diagnose and Fix Regressions
- Reproduce each failure consistently before proposing a fix.
- Activate companion debugging and test-hygiene skills when available, especially root-cause debugging and anti-workaround guidance.
- Add or update the narrowest regression test that proves the bug when the repository supports automated coverage for that surface.
- Fix production code or real configuration at the source of the failure. Do not weaken tests to match broken behavior.
- Re-run the narrow reproduction, the impacted scenario, and the baseline gate after each fix.
- Use
assets/issue-template.mdwhen the user wants persisted issue files or when the repository already has a QA issue convention.
Step 6: Verify the Final State
- Re-run the full repository verification gate from scratch after the last code change.
- Re-run the most important user-like scenarios after the full gate passes.
- Summarize the evidence using
assets/verification-report-template.md. - Report blocked scenarios, missing credentials, or environment gaps with the exact command or prerequisite that stopped execution.
- Do not claim completion without fresh verification evidence from the current state of the repository.
Error Handling
- If command discovery returns multiple plausible gates, prefer the broadest repository-defined command and explain the tie-breaker.
- If no canonical verify command exists, read
references/project-signals.md, choose the broadest safe install, lint, test, and build commands for the detected ecosystem, and state that assumption explicitly. - If a required live dependency is unavailable, validate every local boundary that does not require the missing dependency and report the blocked live validation separately.
- If a workflow requires data or services absent from the repository, create the smallest realistic fixture outside the main source tree unless the repository has its own fixture convention.
- If a failure appears unrelated to the requested change, prove that with a clean reproduction before excluding it from the QA scope.
More from compozy/kb
kb
Comprehensive skill for the `kb` CLI and the Karpathy Knowledge Base pattern. Covers the full KB lifecycle — topic scaffolding, multi-source ingestion (URLs, files, YouTube, bookmarks, codebases), wiki article compilation, cross-article querying with file-back, lint-and-heal passes, QMD indexing, and hybrid search. Also covers codebase-specific analysis via inspect commands for complexity, coupling, blast radius, dead code, circular dependencies, symbol/file lookups, backlinks, and code smells. Use when working with kb CLI commands, knowledge base workflows, code vault generation, code graph analysis, code metrics inspection, wiki compilation, or the ingest-compile-query-lint cycle. Do not use for general code review, linting, formatting, building Go projects, or writing application code.
14cy-create-tasks
Decomposes PRDs and TechSpecs into detailed, independently implementable task files with enrichment from codebase exploration. Use when a PRD or TechSpec exists and needs to be broken down into executable tasks, or when task files need enrichment with implementation context. Do not use for PRD creation, TechSpec generation, or direct task execution.
1find-skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
1lesson-learned
Analyze recent code changes via git history and extract software engineering lessons. Use when the user asks 'what is the lesson here?', 'what can I learn from this?', 'engineering takeaway', 'what did I just learn?', 'reflect on this code', or wants to extract principles from recent work.
1git-rebase
Intelligently handle git rebase operations and resolve merge conflicts while preserving features and maintaining code quality. Use when rebasing feature branches, resolving conflicts across commits, and ensuring clean linear history without losing changes.
1cy-final-verify
Enforces fresh verification evidence before any completion, fix, or passing claim, and before commits or PR creation. Use when an agent is about to report success, hand off work, or commit code. Do not use for early planning, brainstorming, or tasks that have not yet reached a concrete verification step.
1