Skip to content

fix(parser): two diagnostic gaps that silently dropped symbol-based dependencies - #61

Merged
bacsystem merged 3 commits into
developfrom
fix/parser-diagnostics
Jul 22, 2026
Merged

fix(parser): two diagnostic gaps that silently dropped symbol-based dependencies#61
bacsystem merged 3 commits into
developfrom
fix/parser-diagnostics

Conversation

@bacsystem

Copy link
Copy Markdown
Owner

Summary

Two diagnostic gaps in src/plan-parser.js found by an external review with empirical reproduction: a symbol-based dependency can vanish from the plan's DAG without a useful warning, so a task that should have been serialized instead runs in parallel with its producer (fails/BLOCKED, or implements against stale code). Neither fix changes the graph a well-formed plan produces — both only make the diagnostics honest.

Type of change

  • fix — bug fix

Main changes

  • Single-character symbols between backticks (e.g. `x`) got the generic "no backtick-quoted symbols" warning — false, the line has one. The warning now names the real cause and cites the dropped symbol.
  • A task missing the **Interfaces:** section entirely (typically a header typo) silently produced empty consumes/produces with no warning — the single most destructive parse miss and, until now, the only silent one. Now warns and suggests writing None explicitly.
  • skills/plan/SKILL.md: documents that the **Interfaces:** header itself must always be present.
  • Verified plan-parser.js is not inlined into the generated workflow (npm run build + git diff --exit-code workflows/parallel-plan-executor.js — no change).

Version

  • Bump: patch (diagnostics-only, no API or graph change)
  • New version: v0.6.22

Checklist

  • Code reviewed (bugs, conventions, simplifications)
  • CHANGELOG.md updated
  • Version updated in the relevant file(s) (package.json, .claude-plugin/plugin.json, .cursor-plugin/plugin.json, gemini-extension.json)
  • README updated (if applicable) — no user-facing behavior/API change
  • Tests pass (161/161, npm test), TDD (RED confirmed for each fix before GREEN)

`- Consumes: \`x\`` hit the length>1 anti-prose filter and got the generic
"no backtick-quoted symbols" warning — false, the line has one. The warning
now names the real cause and cites the dropped symbol, so a user who named
a symbol `x` knows to rename it instead of hunting a phantom formatting bug.
A header typo (**Interface:**, **Interfaz:**) silently erased every
symbol-based dependency of the task — the single most destructive parse
miss and the only silent one: an empty value warns, a prose-only line
warns, an orphan consumer warns. extractSection flattened no-match and
empty-match into '', which is the root cause; parseInterfaces now
distinguishes them via extractOptionalSection and warns, suggesting an
explicit "None". Also documents the header-must-be-present rule in
skills/plan/SKILL.md.
@bacsystem bacsystem self-assigned this Jul 22, 2026
@bacsystem bacsystem added the bug Something isn't working label Jul 22, 2026
@bacsystem
bacsystem merged commit 1eab2d1 into develop Jul 22, 2026
1 check failed
@bacsystem
bacsystem deleted the fix/parser-diagnostics branch July 22, 2026 06:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant