بنقرة واحدة
smoke-test-triage
// Triage and fix panache smoke-test regressions (idempotency, losslessness, parse/format checks) from CI debug-format reports and linked issues.
// Triage and fix panache smoke-test regressions (idempotency, losslessness, parse/format checks) from CI debug-format reports and linked issues.
| name | smoke-test-triage |
| description | Triage and fix panache smoke-test regressions (idempotency, losslessness, parse/format checks) from CI debug-format reports and linked issues. |
Use this skill when asked to investigate failures reported by smoke-test scans
or debug format CI issues (especially idempotency/losslessness regressions).
Read the issue/report details first:
idempotency, losslessness, parse, etc.)Reproduce in a local clone of the target repository:
panache debug format --checks all --report <sample-file>panache debug format --checks all --dump-dir <dir> --dump-passes <file>Minimize:
Classify the failure before fixing — and verify against pandoc-native before any formatter-side fix:
pandoc <repro>.md -f markdown -t native
and compare to panache's CST (cargo run -- parse < <repro>.md).
Pandoc-native is the behavioral reference (per .claude/rules/parser.md).
If panache's CST differs structurally from pandoc — different block
types (e.g. BulletList where pandoc has CodeBlock), missing/extra
nesting, wrong attribute attachment — the bug is parser-side, no
matter which pass shows the symptom. Idempotency is a downstream
symptom of upstream shape divergence.--dump-passes) to compare:
crates/panache-parser/tests/fixtures/pandoc-conformance/corpus/
so the regression is guarded by the pandoc conformance harness.Add regression fixture(s):
tests/fixtures/cases/<case-name>/input.{md,qmd,Rmd}tests/fixtures/cases/<case-name>/expected.{md,qmd,Rmd}tests/golden_cases.rscrates/panache-parser/tests/fixtures/cases/<case-name>/Fix implementation at root cause:
Validate:
cargo test --test golden_cases <case-name>panache debug format --checks all --report <fixture-input>cargo check --workspacecargo test --workspacecargo clippy --workspace --all-targets --all-features -- -D warningscargo fmt -- --check.qmd smoke regressions, ensure tests run with correct flavor context
(Quarto detection matters for hashpipe/chunk behavior).When done, report:
Drive the staged in-tree YAML formatter rollout — implement the rule-based style spec, cross-validate against pretty_yaml, joint parser+formatter cutover, then hashpipe extension. Sibling to yaml-shadow-expand (parser-coverage); invoke when the work is formatter-side or the joint cutover gate.
Guard Panache's YAML shadow parser coverage — yaml-test-suite parity, allowlist nibbling, triage regen, and parser-side cluster fixes. Sibling to yaml-formatter-cutover (which owns the in-tree formatter rollout and joint cutover); invoke this one when the work is parser-coverage or test-suite triage.
Incrementally make Panache's CST shape for HTML-block /
Incrementally migrate Panache's Pandoc-dialect inline parsing onto the unified inline IR (currently CommonMark-only) one bounded sub-task at a time, verifying every CST divergence against pandoc-native before fixing or deferring.
Profile-driven performance work on the panache parser or formatter. Measure first with perf + the right harness; classify hotspots into one of a small set of buckets; apply the matching cheap fix; verify median wall-time moved before committing.
Add a new built-in lint rule to the Panache linter — wire it into the registry, gate it on the right extension/flavor, add a regression fixture with focused assertions, and document it.