Skip to content

root-apparatus-cleanup: remove pre-split apparatus leftovers at repo root#30

Merged
PrzemekGalarowicz merged 2 commits into
mainfrom
root-apparatus-cleanup
Jul 1, 2026
Merged

root-apparatus-cleanup: remove pre-split apparatus leftovers at repo root#30
PrzemekGalarowicz merged 2 commits into
mainfrom
root-apparatus-cleanup

Conversation

@PrzemekGalarowicz

@PrzemekGalarowicz PrzemekGalarowicz commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Deletes pre-split apparatus originals that PR ship-gated, ship-loop, dev-product-boundary: orchestrator, loop mode, and .dev/ split #19 left at the repo root: drifted floor/check-ship.*, byte-identical features/ship-{loop,gated}/ build-trace duplicates, and the stale un-prefixed .claude/commands/ship.md (the only live invoker of the root floor copy).
  • Canonical successors under .dev/ (pharn-dev-ship.md, .dev/floor/check-ship.*, .dev/features/ship-{gated,loop}/) are untouched.
  • Adds the .dev/features/root-apparatus-cleanup/ pipeline audit trail (plan through ship).

Test plan

  • node .dev/floor/validate.mjs . → GREEN
  • npm test → all pass (root floor/check-ship.test.mjs removed; .dev/floor/ superset remains)
  • node .dev/floor/check-verify.mjs .dev/features/root-apparatus-cleanup/ → PASS
  • Confirm no live references to root floor/check-ship remain outside frozen .dev/features/*/ traces

Made with Cursor

Summary by CodeRabbit

  • Chores

    • Removed outdated ship/loop/gated planning and report files.
    • Cleaned up old root-level helper artifacts and replaced them with updated .dev feature records.
  • Documentation

    • Added fresh cleanup, verification, regression, and review notes for the current state.
    • Preserved audit-style records for traceability while removing obsolete content.

…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>
@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@PrzemekGalarowicz, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 52 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c2ac3915-cf2a-441c-a76c-1d4c754f3ac2

📥 Commits

Reviewing files that changed from the base of the PR and between 6958549 and a5d4ba4.

📒 Files selected for processing (3)
  • .dev/features/root-apparatus-cleanup/REVIEW.md
  • .dev/features/root-apparatus-cleanup/SHIP.md
  • .dev/features/root-apparatus-cleanup/VERIFY.md
📝 Walkthrough

Walkthrough

This PR performs a deletion-only cleanup of duplicate root-level ship orchestration artifacts (floor/check-ship.mjs, floor/check-ship.test.mjs, features/ship-loop/*, features/ship-gated/*, .claude/commands/ship.md) previously left over from prior PRs, and adds trace documents under .dev/features/root-apparatus-cleanup/ recording plan, grill, review, regression, verify, and ship results for the cleanup.

Changes

Root apparatus cleanup

Layer / File(s) Summary
Cleanup plan and provenance
.dev/features/root-apparatus-cleanup/PLAN.md
Documents discovery of duplicate root vs. .dev/ artifacts, scope of deletion-only changes, files to delete, guarantee/trust/determinism audits, and resolved open questions.
Advisory grill report
.dev/features/root-apparatus-cleanup/GRILL.md
Records spec-hash match, deterministic discovery, two advisory findings, and a non-blocking advisory verdict.
Deletion of stale ship artifacts
floor/check-ship.mjs, floor/check-ship.test.mjs, features/ship-loop/..., features/ship-gated/..., .claude/commands/ship.md
Removes root-level duplicate ship/ship-loop/ship-gated orchestration scripts, tests, docs, and JSON reports.
Regression, review, verify, and ship trace records
.dev/features/root-apparatus-cleanup/REGRESSION.md, REVIEW.md, VERIFY.md, SHIP.md, regression-report.json, verify-report.json
Adds outcome records showing no regressions, GREEN floor gates, PASS verification, and advisory orchestration ship roll-up for the cleanup.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

  • pharn-dev/pharn-oss#18: Introduced the .claude/commands/ship.md and features/ship-gated/ artifacts that this PR deletes.
  • pharn-dev/pharn-oss#19: Introduced the .dev/ boundary pipeline and .dev/floor/check-ship.mjs that made the root-level duplicates removed here obsolete.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: removing leftover pre-split apparatus files from the repo root.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch root-apparatus-cleanup

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Align table columns in SHIP/VERIFY and fix markdown emphasis/indent in REVIEW after verify pass.

Co-authored-by: Cursor <cursoragent@cursor.com>
@PrzemekGalarowicz PrzemekGalarowicz merged commit 31689ca into main Jul 1, 2026
3 of 5 checks passed
@PrzemekGalarowicz PrzemekGalarowicz deleted the root-apparatus-cleanup branch July 1, 2026 15:34

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
.dev/features/root-apparatus-cleanup/PLAN.md (1)

71-76: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Add an explicit live-reference check to verification.

The audit proves the duplicate by discovery, but the verification section still only re-runs validate and npm test. A post-delete rg/grep over 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

📥 Commits

Reviewing files that changed from the base of the PR and between cbda487 and 6958549.

📒 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.json
  • features/ship-gated/PLAN.md
  • features/ship-gated/REGRESSION.md
  • features/ship-gated/REVIEW.md
  • features/ship-gated/VERIFY.md
  • features/ship-gated/regression-report.json
  • features/ship-gated/verify-report.json
  • features/ship-loop/PLAN.md
  • features/ship-loop/REGRESSION.md
  • features/ship-loop/REVIEW.md
  • features/ship-loop/VERIFY.md
  • features/ship-loop/regression-report.json
  • features/ship-loop/verify-report.json
  • floor/check-ship.mjs
  • floor/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

Comment on lines +65 to +76
- **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._

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 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.

Suggested change
- **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

Comment thread .dev/features/root-apparatus-cleanup/SHIP.md Outdated
Comment thread .dev/features/root-apparatus-cleanup/VERIFY.md Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant