fix: v0.15.4 — logcat-on ISSUES-LOG return (F-164/F-165/F-166) - #71
Merged
Conversation
…, YAML emit safety, title length
Three contained fixes from the logcat-on issue log (2026-05-11 / -13):
- F-164: sync's bulk archive step refused to run because render had
just dirtied derived outputs. `workingTreeDirty` now accepts a
whitelist of paths sync wrote this invocation; real user edits
still block archive.
- F-165: feature-author template + SKILL.md and spec-conversion
SKILL.md now mandate `|-` block scalar (or quoted scalar) for
multi-line free-text fields. Plain scalars wrap and trip the YAML
parser when continuation lines start with `{` or carry `: `. A
round-trip test fills the template with risky multi-line content
and asserts parser-clean round-trip.
- F-166: `collectWarnings(spec)` emits the soft warning
`feature.name_too_long` for names over 80 Unicode code points.
Non-blocking — layered below the F-130 100-char hard cap. CLI
surfaces warnings on `harness validate`.
Issue 2 (perf measurable improvement) was already closed by F-129.
Issues 1 / 3 / 5 queued for separate cycles.
complete()'s auto-archive moved F-164's body to spec.archive.yaml. Mirror the change into the docs/samples lockstep pair manually since the auto-archive doesn't touch the mirrors (separate issue).
Patch bump for the logcat-on ISSUES-LOG return (F-164 / F-165 / F-166).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three contained bug fixes from logcat-on's freshest issue log (2026-05-11 / -13). Issue 2 was already closed by F-129; issues 1 / 3 / 5 queued for separate cycles (architectural scope).
harness sync's bulk archive step blocked on the derived outputs render just wrote (domain.md·harness.yaml).workingTreeDirtynow accepts a whitelist of paths sync rendered this invocation; real user edits elsewhere still gate the archive.feature-authortemplate + SKILL.md andspec-conversionSKILL.md now mandate|-block scalar (or"..."double-quoted) for multi-line free-text fields. Plain scalars wrap and a continuation starting with{or carrying:tripped the YAML parser. PARSE failure happens before validation, so the fix lives at the emitter; the regression net is a round-trip test that fills the template with risky content ({Math.round(...)}, CSS{...},transform: translateY(...),`${tpl}`).collectWarnings(spec)emits soft warningfeature.name_too_longfor names over 80 Unicode code points. Non-blocking, layered below F-130's 100-char hard cap.harness validateprints warnings on stderr. Real spec surfaces ~18 candidates without breaking validate.(Branch name says
v0.15.5but the bump isv0.15.4— typo, not a release decision change.)Test plan
npx vitest run— 822/822 (previously 814; +8 new tests acrosssync.test.ts,skill-feature-author.test.ts,validate.test.ts)npx tsc --noEmitcleannode bin/harness validate .harness/spec.yamlsucceeds with 18feature.name_too_longwarnings shown on stderr (real-world surface)bash self_check.sh5/5 OKnode bin/harness worklifecycle (5 evidence each, gates 0/1/2/5 pass, auto-archive lockstep maintained)🤖 Generated with Claude Code