Skip to content

T-FNUT-quality-noun-ports

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

The quality trio are standalone scripts; task-work Step 7 gates on run_quality_checks --log (stderr routing, distinct exit), and find-quality-checks probes via the detector. Port them as the quality noun — run, detect, and the depth-3 baseline {capture, diff, prune} group — preserving the text contracts callers parse.

LocationRole today
plugin/scripts/run_quality_checks.tsruns sdlc.yaml quality_checks:; --line/--log text modes; FAIL lines to stderr; gating exit
plugin/scripts/detect_quality_runners.tsprobes the project for test/quality runners; JSON for the find-quality-checks skill
plugin/scripts/quality_baseline.tscapture/diff/prune baselines behind mode flags

services/quality/ops/run.ts, ops/detect.ts, and ops/baseline/{capture,diff,prune}.ts — five leaves, all visible; each baseline mode a real op with its own zod contract (resolved design question b). Under the D-H7FS §4 output contract, run is a streaming op (per-check lines as they complete, deterministic terminal summary): its descriptor declares streaming, its text projection reproduces --line/--log including stderr-on-FAIL and exit semantics, and --output json buffers to the terminal result object. detect and the baseline leaves are sync (json-default for detect; text where the legacy contract says so). Config read through lib/config.

  1. Golden-snapshot run --line, run --log (pass + fail), detect, and a baseline capture→diff→prune round-trip.
  2. Port run as a streaming op with its text projection; parity against goldens; verify --output json emits the buffered terminal object.
  3. Port detect (JSON output unchanged).
  4. Split baseline into the three depth-3 leaves; map the old mode flags 1:1.
  5. CLI-spawned parity tests for all five; sdlc quality --help snapshot.
LocationKindChange
plugin/lib/services/quality/ops/run.tsnewstreaming run op + text projection
plugin/lib/services/quality/ops/detect.tsnewdetect op
plugin/lib/services/quality/ops/baseline/capture.tsnewdepth-3 leaf
plugin/lib/services/quality/ops/baseline/diff.tsnewdepth-3 leaf
plugin/lib/services/quality/ops/baseline/prune.tsnewdepth-3 leaf
plugin/scripts/run_quality_checks.tsmodifythins to forwarder until T-QL5F-skill-prose-codemod/T-YBKU-shim-deletion-guard
plugin/scripts/detect_quality_runners.tsmodifysame
plugin/scripts/quality_baseline.tsmodifysame
  • AC-1: sdlc quality run --log byte-matches the golden on pass and fail, including stderr routing and exit code.
  • AC-2: sdlc quality detect JSON matches the golden.
  • AC-3: baseline capture → diff → prune round-trips on a tmp project; each leaf has its own input/output schema visible via --json.
  • AC-4: sdlc quality --help lists run, detect, and the baseline group; all five leaves dispatch.
  • Caller codemod (T-QL5F-skill-prose-codemod).
  • New quality-check kinds or detector heuristics.
  • The find-quality-checks skill beyond what the codemod later touches.
  • docs/plans/op-substrate-full-sweep.md §1a; resolved design question (b) — baseline as depth-3 leaves; refutation finding that run’s text modes are load-bearing for task-work Step 7.

T-NV49-op-path-substrate


← Back to Tasks