root-apparatus-cleanup: remove pre-split apparatus leftovers at repo root#30
Conversation
…root
Delete drifted root floor/check-ship.*, duplicate features/ship-{loop,gated}/ traces, and the stale ship.md command so all build apparatus lives under .dev/ or pharn-dev-/pharn- prefixes.
Co-authored-by: Cursor <cursoragent@cursor.com>
|
Warning Review limit reached
Next review available in: 52 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThis PR performs a deletion-only cleanup of duplicate root-level ship orchestration artifacts ( ChangesRoot apparatus cleanup
Estimated code review effort: 2 (Simple) | ~15 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Align table columns in SHIP/VERIFY and fix markdown emphasis/indent in REVIEW after verify pass. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
.dev/features/root-apparatus-cleanup/PLAN.md (1)
71-76: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAdd an explicit live-reference check to verification.
The audit proves the duplicate by discovery, but the verification section still only re-runs
validateandnpm test. A post-deleterg/grepover the live command surface would make the “no live invoker remains” invariant machine-checked after the cleanup.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.dev/features/root-apparatus-cleanup/PLAN.md around lines 71 - 76, Add an explicit live-reference verification step to the cleanup plan so the “no live invoker remains” invariant is machine-checked after deletion. Update the verification section in PLAN.md to include a post-delete `rg`/`grep` check over the live command surface, alongside the existing `validate` and `npm test` reruns, using the existing verification bullets in the root-apparatus cleanup plan as the place to anchor the new check.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.dev/features/root-apparatus-cleanup/REVIEW.md:
- Around line 65-76: The REVIEW.md bullets use nested backticks and underscore
emphasis that markdownlint flags, so rewrite the two “Candidate L-DEL-*” items
to use plain markdown syntax without inline code inside other code spans or
emphasis. Update the affected bullet text in the root-apparatus-cleanup review
section so the same meaning is preserved while avoiding mixed delimiter
patterns, and keep the formatting consistent with the surrounding markdown.
In @.dev/features/root-apparatus-cleanup/SHIP.md:
- Around line 7-16: The stage table in SHIP.md uses excessive column padding
that violates the repo’s compact markdown table style and triggers MD060.
Reformat the table to match the existing markdown-table convention used
elsewhere in the docs by tightening the spacing around the headers and cells in
the “Stages run, in order” table, while keeping the same content and order.
In @.dev/features/root-apparatus-cleanup/VERIFY.md:
- Around line 9-16: The markdown table in the VERIFY documentation needs to be
reformatted to match the repository’s table style and satisfy markdownlint.
Normalize the pipe alignment and cell spacing in the gate status table under the
VERIFY summary so the rendered table uses consistent column widths and
separators; keep the same content, just adjust the table formatting in the stage
summary section.
---
Nitpick comments:
In @.dev/features/root-apparatus-cleanup/PLAN.md:
- Around line 71-76: Add an explicit live-reference verification step to the
cleanup plan so the “no live invoker remains” invariant is machine-checked after
deletion. Update the verification section in PLAN.md to include a post-delete
`rg`/`grep` check over the live command surface, alongside the existing
`validate` and `npm test` reruns, using the existing verification bullets in the
root-apparatus cleanup plan as the place to anchor the new check.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: ed38a583-2d31-4003-9ed1-601352ce7669
📒 Files selected for processing (23)
.claude/commands/ship.md.dev/features/root-apparatus-cleanup/GRILL.md.dev/features/root-apparatus-cleanup/PLAN.md.dev/features/root-apparatus-cleanup/REGRESSION.md.dev/features/root-apparatus-cleanup/REVIEW.md.dev/features/root-apparatus-cleanup/SHIP.md.dev/features/root-apparatus-cleanup/VERIFY.md.dev/features/root-apparatus-cleanup/regression-report.json.dev/features/root-apparatus-cleanup/verify-report.jsonfeatures/ship-gated/PLAN.mdfeatures/ship-gated/REGRESSION.mdfeatures/ship-gated/REVIEW.mdfeatures/ship-gated/VERIFY.mdfeatures/ship-gated/regression-report.jsonfeatures/ship-gated/verify-report.jsonfeatures/ship-loop/PLAN.mdfeatures/ship-loop/REGRESSION.mdfeatures/ship-loop/REVIEW.mdfeatures/ship-loop/VERIFY.mdfeatures/ship-loop/regression-report.jsonfeatures/ship-loop/verify-report.jsonfloor/check-ship.mjsfloor/check-ship.test.mjs
💤 Files with no reviewable changes (15)
- features/ship-gated/REGRESSION.md
- features/ship-loop/VERIFY.md
- features/ship-gated/verify-report.json
- features/ship-loop/PLAN.md
- features/ship-loop/regression-report.json
- features/ship-loop/REVIEW.md
- features/ship-gated/regression-report.json
- features/ship-loop/REGRESSION.md
- features/ship-gated/REVIEW.md
- floor/check-ship.test.mjs
- features/ship-gated/PLAN.md
- features/ship-loop/verify-report.json
- features/ship-gated/VERIFY.md
- .claude/commands/ship.md
- floor/check-ship.mjs
| - **Candidate L-DEL-1 — the writes-scope setter can't scope a deletion-only plan.** | ||
| `set-writes-scope.cjs --from-plan` errored `no back-tick paths under `## Files`` because the bullets | ||
| are `**DELETE** \`path\``-prefixed (path not the first token). Harmless here (deletions go via `git rm`, | ||
| which the `Write|Edit|MultiEdit` hook does not gate), but a future deletion/rename increment that | ||
| *also writes* would hit fail-closed. **Lesson:** deletion-only increments either (a) list plain | ||
| back-tick paths the setter can parse, or (b) the setter learns a `DELETE:`-aware parse. | ||
| _Provenance: this increment (root-apparatus-cleanup), build Step 0._ | ||
| - **Candidate L-DEL-2 — zsh does not word-split unquoted `$list`; `node --test $FILES` collapses to one | ||
| arg → false exit 1** ("Could not find '<joined>'"), which would masquerade as a regress/verify | ||
| failure. **Lesson:** the regress/verify test-gate must pass the file list as a shell **array** | ||
| (`"${TESTS[@]}"`), and use `--test-concurrency=1` for a deterministic exit on partial sets. | ||
| _Provenance: this increment, regress Step 2 / verify Step 1._ |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Normalize the markdown syntax in this section.
The nested code span and underscore emphasis are what CI is flagging here. Reword these bullets so the file passes markdownlint.
♻️ Proposed fix
- `set-writes-scope.cjs --from-plan` errored `no back-tick paths under `## Files`` because the bullets
- are `**DELETE** \`path\``-prefixed (path not the first token). Harmless here (deletions go via `git rm`,
+ `set-writes-scope.cjs --from-plan` errored "no back-tick paths under the ## Files section" because the bullets
+ are `**DELETE** \`path\``-prefixed (path not the first token). Harmless here (deletions go via `git rm`,
@@
- _Provenance: this increment (root-apparatus-cleanup), build Step 0._
+ *Provenance: this increment (root-apparatus-cleanup), build Step 0.*
@@
- _Provenance: this increment, regress Step 2 / verify Step 1._
+ *Provenance: this increment, regress Step 2 / verify Step 1.*📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| - **Candidate L-DEL-1 — the writes-scope setter can't scope a deletion-only plan.** | |
| `set-writes-scope.cjs --from-plan` errored `no back-tick paths under `## Files`` because the bullets | |
| are `**DELETE** \`path\``-prefixed (path not the first token). Harmless here (deletions go via `git rm`, | |
| which the `Write|Edit|MultiEdit` hook does not gate), but a future deletion/rename increment that | |
| *also writes* would hit fail-closed. **Lesson:** deletion-only increments either (a) list plain | |
| back-tick paths the setter can parse, or (b) the setter learns a `DELETE:`-aware parse. | |
| _Provenance: this increment (root-apparatus-cleanup), build Step 0._ | |
| - **Candidate L-DEL-2 — zsh does not word-split unquoted `$list`; `node --test $FILES` collapses to one | |
| arg → false exit 1** ("Could not find '<joined>'"), which would masquerade as a regress/verify | |
| failure. **Lesson:** the regress/verify test-gate must pass the file list as a shell **array** | |
| (`"${TESTS[@]}"`), and use `--test-concurrency=1` for a deterministic exit on partial sets. | |
| _Provenance: this increment, regress Step 2 / verify Step 1._ | |
| - **Candidate L-DEL-1 — the writes-scope setter can't scope a deletion-only plan.** | |
| `set-writes-scope.cjs --from-plan` errored "no back-tick paths under the ## Files section" because the bullets | |
| are `**DELETE** \`path\``-prefixed (path not the first token). Harmless here (deletions go via `git rm`, | |
| which the `Write|Edit|MultiEdit` hook does not gate), but a future deletion/rename increment that | |
| *also writes* would hit fail-closed. **Lesson:** deletion-only increments either (a) list plain | |
| back-tick paths the setter can parse, or (b) the setter learns a `DELETE:`-aware parse. | |
| *Provenance: this increment (root-apparatus-cleanup), build Step 0.* | |
| - **Candidate L-DEL-2 — zsh does not word-split unquoted `$list`; `node --test $FILES` collapses to one | |
| arg → false exit 1** ("Could not find '<joined>'"), which would masquerade as a regress/verify | |
| failure. **Lesson:** the regress/verify test-gate must pass the file list as a shell **array** | |
| (`"${TESTS[@]}"`), and use `--test-concurrency=1` for a deterministic exit on partial sets. | |
| *Provenance: this increment, regress Step 2 / verify Step 1.* |
🧰 Tools
🪛 GitHub Actions: ci / check
[error] 66-66: markdownlint (MD038/no-space-in-code): Spaces inside code span elements [Context: "no back-tick paths under "].
[error] 66-66: markdownlint (MD038/no-space-in-code): Spaces inside code span elements [Context: "`` because the bullets are `..."].
[error] 71-71: markdownlint (MD049/emphasis-style): Emphasis style mismatch [Expected: asterisk; Actual: underscore].
[error] 71-71: markdownlint (MD049/emphasis-style): Emphasis style mismatch [Expected: asterisk; Actual: underscore].
[error] 76-76: markdownlint (MD049/emphasis-style): Emphasis style mismatch [Expected: asterisk; Actual: underscore].
[error] 76-76: markdownlint (MD049/emphasis-style): Emphasis style mismatch [Expected: asterisk; Actual: underscore].
🪛 markdownlint-cli2 (0.22.1)
[warning] 66-66: Spaces inside code span elements
(MD038, no-space-in-code)
[warning] 66-66: Spaces inside code span elements
(MD038, no-space-in-code)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.dev/features/root-apparatus-cleanup/REVIEW.md around lines 65 - 76, The
REVIEW.md bullets use nested backticks and underscore emphasis that markdownlint
flags, so rewrite the two “Candidate L-DEL-*” items to use plain markdown syntax
without inline code inside other code spans or emphasis. Update the affected
bullet text in the root-apparatus-cleanup review section so the same meaning is
preserved while avoiding mixed delimiter patterns, and keep the formatting
consistent with the surrounding markdown.
Sources: Linters/SAST tools, Pipeline failures
Summary
floor/check-ship.*, byte-identicalfeatures/ship-{loop,gated}/build-trace duplicates, and the stale un-prefixed.claude/commands/ship.md(the only live invoker of the root floor copy)..dev/(pharn-dev-ship.md,.dev/floor/check-ship.*,.dev/features/ship-{gated,loop}/) are untouched..dev/features/root-apparatus-cleanup/pipeline audit trail (plan through ship).Test plan
node .dev/floor/validate.mjs .→ GREENnpm test→ all pass (rootfloor/check-ship.test.mjsremoved;.dev/floor/superset remains)node .dev/floor/check-verify.mjs .dev/features/root-apparatus-cleanup/→ PASSfloor/check-shipremain outside frozen.dev/features/*/tracesMade with Cursor
Summary by CodeRabbit
Chores
.devfeature records.Documentation