pmtl-verify-quality-gate
PMTL_VN verification skill for code quality gates. Use after meaningful changes to run the strongest relevant checks, usually targeted tests, typecheck, lint, and build-oriented validation, instead of
SKILL.md.agents/skills/pmtl-verify-quality-gate/SKILL.md
GitHubPMTL Verify Quality Gate
Purpose
Run the strongest relevant checks after implementation so delivery is backed by evidence instead of confidence.
Use When
- Any meaningful code change is considered done.
- You need a deterministic verification path for web, CMS, or repo-wide edits.
Required Inputs
- touched scope:
web,cms, orall - whether tests may be skipped for a narrowly justified reason
- whether narrower domain verifiers are also required
Expected Output
- Command results that show what passed, what failed, and which runtime was used.
Default order
- For non-trivial work, build a lightweight traceability map before running or adding tests:
- requirement/design source
- touched source files or symbols
- existing or missing tests/checks
- Targeted tests for touched areas.
- Typecheck for the affected package or the monorepo.
- Lint for the affected package or the monorepo.
- Build or smoke verification when contracts changed.
Execution Approach
- Choose the narrowest scope that still proves the change.
- Do not generate broad generic tests until the traceability map shows the real gap.
- Run the quality gate through the repo wrapper instead of ad hoc commands.
- Escalate to smoke or domain-specific verification when contracts changed.
Script
Primary entrypoint: python infra/tools/codex_actions.py quality-gate ...
Compatibility wrapper: scripts/run_quality_gate.py
Example:
python infra/tools/codex_actions.py quality-gate --scope all
python infra/tools/codex_actions.py quality-gate --scope web --skip-tests
Verification
- Treat non-zero exit codes as a failed gate.
- Include the real command output summary in the final report, not only "tests passed".
Quality Criteria
- Verification scope is as narrow as possible without becoming misleading.
- Final reporting includes the actual executed scope and runtime.
- Non-trivial verification reports the requirement-source-test relationship, not only pass/fail totals.
- Quality gate is not used as a substitute for auth/search/domain-specific verification when those lanes changed.
Edge Cases
- Legacy
cmsnaming still exists in the helper even though forward architecture isapps/api; call that out plainly when relevant. - A passing quality gate does not prove runtime health, auth correctness, or search freshness by itself.
- Local environment issues can break a gate independently of the code change; distinguish infra failure from code failure.
References
infra/tools/codex_actions.pyscripts/run_quality_gate.py