template-jj/cmd/planctl
Sid 1a29ff50b2
Some checks failed
planctl / build-test (1.22, macos-latest) (push) Has been cancelled
planctl / build-test (1.22, ubuntu-latest) (push) Has been cancelled
planctl / build-test (1.22, windows-latest) (push) Has been cancelled
planctl / build-test (stable, macos-latest) (push) Has been cancelled
planctl / build-test (stable, ubuntu-latest) (push) Has been cancelled
planctl / build-test (stable, windows-latest) (push) Has been cancelled
planctl / bench (push) Has been cancelled
fix(planctl): paren-aware tag extraction and splitting
Pre-PR codex review found a gap in the R1.1 annotation grammar handling:

* scanTagAfterOpener treated the first '_' after an opener as the
  closing delimiter regardless of paren nesting, so a legitimate
  tag like `_Requirements: R1.1 (foo_bar)_` would incorrectly
  close at the underscore inside the annotation.
* parseTagBody split on every ', ' regardless of paren context, so
  `_Requirements: R1.1 (note, with comma), R2.1_` split into
  three bogus refs.

Both are per-spec: PRD R1.1 defines annotation body as 'arbitrary
non-) characters', which includes _ and ,. The state machine and
the ref-splitter are now paren-depth-aware; regression tests added
for both cases.
2026-04-21 20:42:08 -06:00
..
testdata feat(planctl): end-to-end fixtures + golden-file test harness 2026-04-21 20:06:26 -06:00
bench_test.go feat(planctl): CI workflow + perf benchmark 2026-04-21 20:14:06 -06:00
emit.go feat(planctl): emit — text and JSON formatters 2026-04-21 19:36:16 -06:00
emit_test.go feat(planctl): emit — text and JSON formatters 2026-04-21 19:36:16 -06:00
index.go fix(planctl): paren-aware tag extraction and splitting 2026-04-21 20:42:08 -06:00
index_test.go fix(planctl): paren-aware tag extraction and splitting 2026-04-21 20:42:08 -06:00
lint.go feat(planctl): lint rules — tag-syntax, cross-reference, file-presence, EARS 2026-04-21 19:11:29 -06:00
lint_test.go feat(planctl): lint rules — tag-syntax, cross-reference, file-presence, EARS 2026-04-21 19:11:29 -06:00
main.go feat(planctl): emit — text and JSON formatters 2026-04-21 19:36:16 -06:00
main_test.go feat(planctl): end-to-end fixtures + golden-file test harness 2026-04-21 20:06:26 -06:00
scan.go feat(planctl): scanner — goldmark-backed InCode + LineMask classification 2026-04-21 17:02:59 -06:00
scan_test.go feat(planctl): scanner — goldmark-backed InCode + LineMask classification 2026-04-21 17:02:59 -06:00