name: pkg-ship description: Implement a roadmap package end-to-end — read spec, branch in a worktree, implement with tests, sweep for stale call sites, open PR, fix CI, resolve conflicts. invocation: /pkg-ship <pkg-name>
/pkg-ship <pkg-name>
End-to-end package implementation skill. Codifies the spec → branch → implement → test → PR sequence that has shipped pkg42, pkg43, pkg54a-d, pkg55-A.0/A.1, pkg63, pkg67, pkg70, pkg72, pkg74, pkg82, pkg83, pkg84, pkg85-B, pkg85-C this project.
When to use
When the owner says "implement pkg88" or "start on pkg43" or hands you a spec to land. NOT for: research-only sessions (use /architect instead), spec-filing without implementation (use /file-followup), or hardware-verification of an already-merged PR (use /verify).
Step 0 — Worktree & pyd hygiene preamble (MANDATORY)
Before any code:
cd <repo-root>(or the active repo path the owner referenced — never silently switch worktrees per CLAUDE.md §Build & Verification).pwd && git rev-parse --show-toplevelto confirm location.- Scan for shadow
.pydfiles that could mask fresh builds:
Should produce no output. If shadows exist, DELETE them before proceeding. See memoryGet-ChildItem -Path . -Filter "astroray*.pyd" -Recurse -Force | Where-Object { $_.FullName -notmatch "(\\build_cuda\\|\\build_tcnn\\|\\\.claude\\worktrees\\)" } | ForEach-Object { $_.FullName }stale_pyd_locationsfor the failure mode. - Confirm main is current:
git fetch origin && git log -1 --oneline origin/main.
Step 1 — Read the spec
Read .astroray_plan/packages/<pkg-name>*.md end-to-end. Specifically capture:
- Frontmatter:
Track,Status,Depends on,Estimated effort - Goal section (before/after)
- Specification phases — your scope is the first non-done phase
- Acceptance criteria — write them down; each must trace to a measured number in the final PR body
- Non-goals — they bound what NOT to widen into
- Open design questions — STOP and ask the owner if any are blocking; do not silently pick
If the spec frontmatter says Status: research signed off — not yet ready to implement or similar, abort the skill and surface that the spec needs promotion or owner answers first.
Step 2 — Create worktree
git worktree add "<repo-root>\.claude\worktrees\<pkg-name>" -b <pkg-name> main
Then enter it:
EnterWorktree path="C:\\Users\\hgcom\\OneDrive\\Astroray\\Astroray_repo\\Astroray\\.claude\\worktrees\\<pkg-name>"
Verify with pwd + git rev-parse --show-toplevel per CLAUDE.md §Build & Verification. ABORT if either is wrong.
Step 3 — Implement with tests
Standard implementation discipline:
- Follow the spec's "Files to create" + "Files to modify" lists literally; don't widen scope.
- Cite every non-trivial algorithm per CLAUDE.md §6 (paper + permissively-licensed reference).
- Match existing code style (CLAUDE.md §3 — surgical changes).
- For multi-week packages, the spec defines phases. Implement only the phase(s) you were dispatched for. Don't try to land all phases in one session.
- Write tests alongside implementation (per the spec's acceptance criteria). Don't defer tests "for later".
Step 4 — Pre-push call-site sweep (CRITICAL — captures pkg63 / motion-vectors / OptiX-denoiser CI failure pattern)
Before opening a PR, audit for stale call sites of every signature you changed:
# List every public function/class signature you changed
git diff origin/main --name-only -- '*.h' '*.hpp' '*.py' | ForEach-Object {
git diff origin/main -- $_ | Select-String "^[-+].*\b(class|struct|def|void|int|float|auto)\b" | Out-Host
}
Then for each changed signature, Grep the entire repo to find call sites. Treat tests, mocks, stubs, and Python bindings as first-class call sites. If any call site uses the old signature, update it in the same commit as the signature change — NOT in a follow-up CI fix.
This is the cheapest 30-second check that has caught a recurring failure mode (per /insights analysis: 25+ buggy first-pass implementations across the project history).
Step 5 — Run the full local test suite
cmake --build build_cuda --config Release -j 8
pytest tests/ --ignore=tests/test_wavefront_parity.py -v --tb=short -x
The --ignore=tests/test_wavefront_parity.py is current (pkg55-B Phase B' is mid-flight); drop it once Phase B' lands. The -x halts at the first failure so you can fix it before continuing.
Address any failures BEFORE pushing. CI will run the same tests; a green local run usually means green CI.
Note: the chronic test_disney_clearcoat_adds_gloss flake (issue #276) and the ReSTIR test_spatial_reduces_mse flake (pkg79 territory) are known-flaky; don't block on them but DO note them in the PR body so reviewers know.
Step 6 — Commit, push, open PR
git add <files-changed>
git commit -m "feat(<pkg-name>): <one-line headline>"
git push -u origin <pkg-name>
gh pr create --base main --head <pkg-name> --title "feat(<pkg-name>): <headline>" --body "<body>"
PR body must include:
- Each acceptance criterion from the spec marked ✓ with measured number
- A "Verification" section listing the tests run + their results
- Citations of the references used per CLAUDE.md §6
- Any known flakes encountered (with a note that they're pre-existing per issue #N)
Step 7 — Wait for CI, fix failures
gh pr checks <pr-number> --watch
If CI fails:
- Identify the failure (build error, test failure, lint error)
- Re-run the call-site sweep from Step 4 — most CI fails are stale callers
- Fix in a follow-up commit with message
fix(<pkg-name>): <what failed> - Push; repeat until green.
Step 8 — Resolve merge conflicts if any
If gh pr view <pr-number> shows "Behind" or there are merge conflicts:
- Rebase against current main:
git fetch origin && git rebase origin/main - State the conflict resolution explicitly before committing (per CLAUDE.md §PR & Git Workflow): "Conflict in
<file>between my change (X) and the new main change (Y). Resolution: <one-line>." - Resolve,
git add -pto confirm only the intended change is staged,git rebase --continue,git push --force-with-lease.
Step 9 — Hand off for owner review
When CI is green:
- Mark the PR ready for review.
- Surface the PR number + headline numbers in your final response.
- Do NOT auto-merge unless the owner explicitly authorized it. Implementation packages with C++/CUDA changes go through owner review.
Out of scope for this skill
- Hardware-verification gates on RTX (use
/verifyafterward) - Multi-package coordination (use
/dispatch-nextor/close-round) - Spec-filing without code (use
/file-followup) - Cross-package architecture review (use
/architect)
Failure modes / when to STOP
- Spec has unresolved owner-preference questions → STOP, surface them, wait
- Acceptance criterion requires hardware you don't have (RTX) → STOP, hand off to
/verifyinstead - Implementation would require a non-trivial algorithm with no cited reference → STOP, file research note per CLAUDE.md §6, hand back
- A 5th+ ambiguity surfaces mid-implementation → STOP, surface it; CLAUDE.md §1 over silent decisions
Expert Next.js App Router
Developpement
Un skill qui transforme Claude en expert Next.js App Router.
Générateur de README
Developpement
Crée des README.md professionnels et complets pour vos projets.
Rédacteur de Documentation API
Developpement
Génère de la documentation API complète au format OpenAPI/Swagger.