release: hotfix v0.8.0 publish — drop stale brief.test.ts mirror assertion#100
Merged
Conversation
rc-bc9 (1d43dd9) deleted node/.claude/skills/ entirely as a stale dev mirror of node/resources/skills/. tests/brief.test.ts:178-186 still asserted each RAFTER_SUBDOCS slug existed at the deleted mirror path, failing under the test-comprehensive test-node job since the rf-cfjc Verify build fix unblocked the suite from running. The canonical sub-doc paths under node/resources/skills/rafter/docs/ are already covered by the immediately-preceding 'every referenced sub-doc path resolves and is non-empty' test, so dropping the mirror assertion is a clean delete with no coverage loss. This was the last gate failure stopping v0.8.0 publish. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
… brief topic
Two pre-existing failures in tests/cross-runtime-parity.test.ts that I
incorrectly cleared as fixed when pushing rf-b1hf. Verified locally and
on Node/Python this time.
1. **10 scanner tests assumed bare-array JSON shape**. They reach into
`JSON.parse(stdout)[0].matches`, but the canonical shape since
rf-0pch (2026-04-27, v0.7.7) is wrapped:
`{_note, scan_mode, triage_applied, results: [...]}`. Tests were
never updated; e2e-cli.test.ts and secret-scanning-e2e.test.ts had
already moved to the wrapped shape — only this file was stale.
Added a `parseResultsArray(stdout)` helper that handles both shapes
(returns the inner array for wrapped, the array itself for legacy).
Migrated all 10 tests in `parity: secrets` and `parity: secret
pattern detection` to use it.
2. **`brief security` is not a topic** in either runtime. The test was
added 2026-04-05 (commit a79dabe) and has never passed — both Node
(Commander.process.exit(1)) and Python (typer.Exit(code=1)) emit
"Unknown topic: security" because the topic registry has `scanning`,
`commands`, `setup`, `setup/*`, `all`, plus the RAFTER_SUBDOCS
slugs. Renamed the test to `brief scanning` (the canonical
rafter-skill topic) and left a comment with the original-intent
trail.
This was the last set of failures blocking v0.8.0 publish. CI on PR #100
should now go fully green; the publish workflow will retry against the
same package.json version (0.8.0) after the merge.
Verified locally:
- Both runtimes emit the wrapped shape (manually inspected stdout).
- `node ./dist/index.js brief scanning` → exit 0.
- `python3 -m rafter_cli brief scanning` → exit 0.
- python tests/test_custom_patterns.py + test_agent_scan_history.py: 37 passed.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Raftersecurity
approved these changes
May 12, 2026
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
PR #99 merged at `cd6b378` but `publish.yml` failed in test-node on the
`brief.test.ts > sub-docs are mirrored to node/.claude/skills/rafter/docs`
assertion. rc-bc9 (`1d43dd9`, in PR #99) intentionally deleted that
directory as a stale dev mirror of `node/resources/skills/`; the test
never updated and was previously hidden behind the `Verify build` step
that always exited 1 in test-comprehensive (rf-cfjc). That's the only
change in this PR.
Single commit: `105c4c6 fix(rf-b1hf): drop obsolete sub-docs mirror assertion in brief.test.ts`.
The canonical sub-doc paths under `node/resources/skills/rafter/docs/`
are still covered by the immediately-preceding `every referenced sub-doc
path resolves and is non-empty` test, so this is a clean delete with no
coverage loss.
Why a separate PR
PR #99 was already merged when the publish failure surfaced. Reopening
or amending #99 isn't an option; the package version on prod is already
`0.8.0`. After this PR merges, `publish.yml` retries with the same
`0.8.0` package version and should succeed.
Test plan
🤖 Generated with Claude Code