Skip to content

T-DN76-pr-check-schema-promote

Status: closed/done · Impact: medium · Complexity: small

Auto-generated from a /sdlc:task-work post-mortem. Review and promote to open/ready before picking up.

plugin/scripts/run_quality_checks.py validates sdlc.yaml against plugin/schemas/sdlc-yaml.schema.json before reading any schema-owned key. This project’s sdlc.yaml carries a pr_check: block (consumed by /sdlc:pr-check), but the bundled schema doesn’t declare it and uses additionalProperties: false. The validator rejects the file with Additional properties are not allowed ('pr_check' was unexpected), which trips every /sdlc:task-work run at Step 4 (worktree_init) and Step 7 (quality_checks). Promoting pr_check into the schema closes the gap once for every consuming project, not just this repo.

  • plugin/schemas/sdlc-yaml.schema.json declares quality_checks, worktree_init, and orchestrator. Top-level additionalProperties is false.
  • plugin/scripts/run_quality_checks.py:128-145 routes any schema-owned-key request through _validate_against_schema, which shells plugin/validators/validate_sdlc_yaml.py --quiet.
  • The project’s sdlc.yaml at /Users/sksizer/Developer/dev/sdlc.yaml declares pr_check.author_comments: actionable (consumed by /sdlc:pr-check).
  • The originating post-mortem flagged the symptom: sdlc.yaml schema violation in <path>: at <root>: Additional properties are not allowed ('pr_check' was unexpected).

plugin/schemas/sdlc-yaml.schema.json declares a pr_check object property with the documented sub-keys (today: author_comments with enum actionable / ignored). The shared validator accepts sdlc.yaml files that declare pr_check, and run_quality_checks.py no longer trips on it at Step 4 / Step 7.

  1. Read plugin/skills/pr-check/SKILL.md and any plugin/conventions/sdlc-yaml.md text on pr_check: to recover the canonical sub-key shape.
  2. Add a pr_check property to the schema, mirroring the orchestrator block’s style (object, additionalProperties false, per-sub-key descriptions). Default behavior when missing must match whatever /sdlc:pr-check does today with no config.
  3. Update plugin/conventions/sdlc-yaml.md if the prose doesn’t already document pr_check:.
  4. Verify by running plugin/validators/validate_sdlc_yaml.py <project-root>/sdlc.yaml in this repo (which carries pr_check:) and confirming exit 0.
  5. Run the existing validate_sdlc_yaml.py eval suite (if present) and plugin/skills/orchestrate/tests/run_evals.py for regression coverage of the orchestrator wiring.
  • plugin/schemas/sdlc-yaml.schema.json — add pr_check property block.
  • plugin/conventions/sdlc-yaml.md — document pr_check: if not already covered.
  • plugin/validators/tests/... (maybe) — extend whatever fixtures exist for validate_sdlc_yaml to cover pr_check accept/reject.
  • AC-1: plugin/validators/validate_sdlc_yaml.py /Users/sksizer/Developer/dev/sdlc.yaml exits 0 (and the file is left unchanged).
  • AC-2: plugin/scripts/run_quality_checks.py --config /Users/sksizer/Developer/dev/sdlc.yaml --key quality_checks --line no longer reports sdlc.yaml schema violation.
  • AC-3: A new schema fixture (or unit test) asserts that pr_check.author_comments: actionable is accepted and an unknown pr_check.<bogus>: key is rejected.
  • Refactoring /sdlc:pr-check’s own consumption of the key.
  • Promoting any other ad-hoc keys that may exist in downstream projects’ sdlc.yaml files.
  • none

Spawned by /sdlc:task-work post-mortem of T-6ZNY-headless-bases-syntax-parser-for-eval on 2026-05-21.


← Back to Tasks