choo121600 opened a new pull request, #137:
URL: https://github.com/apache/airflow-steward/pull/137

   ## Summary
   
   Follow-up to #118: adds five SOFT principle-compliance heuristics plus a 
separate git-aware trigger-preservation diff to `skill-validate`
   
   SOFT checks **do not fail** the run (exit 0) by default — they surface as 
grouped per-file warnings on stderr. Promote to hard failures with `--strict`, 
or silence categories with `--skip-categories`.
   
   ## Checks added
   
   | Category | Detects |
   |---|---|
   | `action-inventory` | description sentence with ≥ 5 commas (verb 
enumeration) |
   | `distinct-from` | `Unlike` / `Distinct from` / `Counterpart to` / `rather 
than` |
   | `chain-handoff` | `Finishes by handing off` / `Hands off to` / `ready for 
X to take over` |
   | `parenthetical-rationale` | parens containing `typically` / `implies` / 
`because` / `since` / `is required first` / `needs to` / `requires` |
   | `criteria-source` | `process step N` / `Step Na` / `` `docs/X.md` `` / 
`documented in …` |
   | `trigger_preservation` | quoted phrases in `when_to_use` dropped vs base 
ref (default `origin/main`, override via `$SKILL_VALIDATOR_BASE_REF`); silent 
no-op if base ref unavailable |
   
   Each violation is tagged with `[rule-name]` and grouped per file. A per-rule 
summary count is printed at the end.
   
   ## Example output
   
   <img width="1571" height="1145" alt="image" 
src="https://github.com/user-attachments/assets/19fb63e1-3dd9-42ca-87ea-64caa590d3be";
 />
   
   ## Design notes
   
   - **SOFT by default** — heuristics are inherently imprecise; hard failures 
on heuristic matches would likely create alert fatigue and reduce reviewer 
trust in validator output. Reviewers retain final judgment on every match.
   - **Compatible with `add-progressive-disclosure-rule`** — 
`Violation.category` and `--skip-categories` mirror that branch's design, so 
either PR can land first without conflict in category dispatch logic.
   - **Trigger preservation: literal phrases only** — quoted strings in 
`when_to_use` are treated as the strongest signal of user-typed routing 
surface. Broader over-trim detection (for example, percentage-based shrink 
heuristics) is intentionally deferred until real-world false-positive rates are 
better understood.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to