chore(cardshed): bootstrap @lab/ll-CARDSHED stack contract#145
Conversation
The hook regex in .claude/hooks/check-commit-format.sh was missing 'reliquary' and 'cardshed' — both added to .claude/rules/commit-format.md in #135 and #139 respectively, but the corresponding PRs landed via GitHub squash-merge, which bypasses local hooks. Drift went undetected until a local commit on either scope was attempted. One-line fix: extend SCOPE_ALLOW with both scopes. Smoke-tested locally with a stub JSON payload — the hook now ALLOWs 'chore(cardshed): ...' and 'feat(reliquary): ...' messages.
The CARD SHED deterministic core (PRP 2) landed in #139/#140 at apps/core/, but the stack lacked a W7-Base contract root: no .w7-meta, compose.yml, README, CLAUDE.md, AGENTS.md, BLUEPRINT.md, .claude/rules/, or .stitch/DESIGN.md placeholder. This commit scaffolds the stack root modelled on @lab/ll-RELIQUARY/: - .w7-meta + compose.yml (alpine stub, replaced at PRP 3 M1) + .env.example - README.md / CLAUDE.md / AGENTS.md / BLUEPRINT.md - .claude/rules/ui-design-pipeline.md (mandatory Stitch + agent-browser) - .claude/rules/core-determinism.md (encodes apps/core/ purity guarantees) - .stitch/DESIGN.md placeholder (real generation deferred to PRP 3 M1) - data/, dogfood-output/, docs/SCREENS/, docs/DECISIONS/ with .gitkeep Force-added .w7-meta / .claude/ / data/ / dogfood-output/ since root .gitignore blanket-ignores those paths (same convention as ll-RELIQUARY). Compose config validates; all three policy scripts (prod-privileged, prod-no-root-mount, zone-ingress-naming) exit 0. apps/core/ tests remain 82/82 green (no changes to PRP 2 surface).
Reviewer's GuideBootstraps the @lab/ll-CARDSHED stack root to mirror the ll-RELIQUARY contract (docs, rules, Stitch placeholder, compose stub, metadata, dirs) while tightening local AI/UX workflows and core determinism guarantees, and updates the commit-format hook to allow the new File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (16)
✨ 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 |
Captures the cardshed stack-bootstrap session (PR #145 merged) plus the PRP 3 §A MVP umbrella decomposition (#146 + 8 sub-issues #147–#154). Mirrors @lab/ll-RELIQUARY/HANDOFF.md placement convention — stack-local, force-added past the root .gitignore HANDOFF.md rule. Next Step #1 in the handoff is actionable (names branch, file, exact package.json dep deltas, and references sub-issue #148) so the next session can resume cleanly without re-reading the rest of the document. The prior session's handoff (CARD SHED PRP-02 merged) was archived to the local-only repo-root .handoffs/ directory before this file took over the active slot.
Summary
@lab/ll-CARDSHED/stack root that was missing after PRP 2's core landed in feat(cardshed): bootstrap CARD SHED deterministic core rules engine #139/feat(cardshed): bootstrap deterministic core rules engine (#139) #140 — mirrors@lab/ll-RELIQUARY/'s shape, adapted for a sealed-core / pre-MVP card game..claude/hooks/check-commit-format.shwhoseSCOPE_ALLOWregex never picked up thereliquary(feat(reliquary): bootstrap ll-RELIQUARY stack + add card shed PRP bundle #135) andcardshed(feat(cardshed): bootstrap CARD SHED deterministic core rules engine #139) scopes — both PRs squash-merged on GitHub, bypassing the local hook.Closes #143, closes #144.
What's in the stack root
.w7-metaw7 statcompose.ymlcardshed-ui.env.example/.gitignoreREADME.md/CLAUDE.md/AGENTS.md/BLUEPRINT.md.claude/rules/ui-design-pipeline.md.claude/rules/core-determinism.mdapps/core/purity guarantees from PRP 2.stitch/DESIGN.mdstitch-designat PRP 3 M1data/dogfood-output/docs/{SCREENS,DECISIONS}/.gitkeepWhat's deliberately not in this PR
apps/ui/,apps/server/scaffolding — PRP 3 M1+apps/core/— PRP 2 is sealed (82/82 tests green)README.mdactive-stacks table — same gap exists for RELIQUARY; deserves its own PRWhy split into two commits
chore(repo): sync commit-format hook scope allow-list (#144)— one-line fix to.claude/hooks/check-commit-format.shaddingreliquary|cardshedto the regex. Atomic and easy to revert if it surfaces an unexpected interaction.chore(cardshed): bootstrap @lab/ll-CARDSHED stack contract (#143)— the stack-root scaffold itself. Depends on commit T1 — Working-tree triage & atomic baseline #1 to pass the local pre-commit hook.Validation
Test plan
gh pr checksgreenw7 up @lab/ll-CARDSHEDbootscardshed-placeholdercontainer without errorsSummary by Sourcery
Bootstrap the ll-CARDSHED stack root with metadata, documentation, and design/purity guardrails, and update commit-format validation to recognize the new stack scopes.
Bug Fixes:
reliquaryandcardshedpass local validation.Enhancements:
Build: