fix: atomic review log helpers + platform-agnostic skill templates (v0.6.5)#150
Open
fix: atomic review log helpers + platform-agnostic skill templates (v0.6.5)#150
Conversation
Branch names with `/` (e.g. garrytan/design-system) break review log filepaths when Claude Code runs multi-line bash blocks as separate shell invocations — eval sets $SLUG/$BRANCH in shell 1, but they're gone by the time mkdir and echo run in shells 2+3. These two scripts encapsulate the full operation (slug detection + mkdir + file I/O) in a single command, eliminating the variable persistence problem. Both support GSTACK_HOME env var override for testability. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Review log writes now use `gstack-review-log` (single command) - Review dashboard reads now use `gstack-review-read` (single command) - Remaining eval+mkdir blocks use && chaining for variable persistence - Regenerated all 15 SKILL.md files Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Full temp-dir integration tests via GSTACK_HOME env var override - Tests: file creation, append behavior, slash sanitization, NO_REVIEWS fallback, review content read, CONFIG separator - Regression tests: generated SKILL.md files use new helpers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…instead Step 3 now reads CLAUDE.md for test commands instead of hardcoding bin/test-lane and npm run test. If no test commands found, AskUserQuestion with option to search the repo and persist to CLAUDE.md. Step 3.25 now reads CLAUDE.md for eval commands instead of hardcoding Rails-specific file patterns. Project's eval system handles diff-based selection internally. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace Rails-only patterns with universal examples showing equivalents across Rails, Node/Prisma, Python/Django, Go, React, and Vue. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CEO review: replace --include="*.rb" grep with --exclude-dir pattern, replace find -newer Gemfile.lock with git log --since, genericize Error & Rescue Map example table - Eng review: "JS or Rails test" → "corresponding test" Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- retro: app/services/ → src/services/ in examples and JSON schema - review: app/models/post.rb → src/models/post.ts in example output Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Codifies the "Learn Your Project" rule: skills must never hardcode framework-specific commands. Read CLAUDE.md, ask if missing, persist the answer. Prevents Rails-isms from recurring. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Greps all generated SKILL.md files and templates for a blocklist of Rails-specific patterns (bin/test-lane, RAILS_ENV, _prompt_builder.rb, --include="*.rb"). Verifies review checklist mentions multiple frameworks. Prevents re-introduction of framework-specific hardcoding. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Dedicated section with the two commands /ship needs: bun test (free, every commit) and bun run test:evals (paid, before shipping). This is the section /ship Step 3 reads to discover what tests to run. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Step 3 and 3.25 now match ## Testing, ## Test Commands, ## Tests, and ## Commands — covering both gstack's own CLAUDE.md (## Testing) and projects like garryslist (## Test Commands). Added dedicated ## Testing section to gstack's CLAUDE.md so /ship finds bun test and bun run test:evals without ambiguity. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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
Bug fix: slash in branch names
/(e.g.garrytan/design-system). Newgstack-review-logandgstack-review-readatomic helpers encapsulate slug detection + mkdir + file I/O in a single command.Platform-agnostic: remove Rails-isms
/shipStep 3 now reads CLAUDE.md for test commands instead of hardcodingbin/test-laneandnpm run test. If CLAUDE.md has no test commands, asks the user and persists the answer./shipStep 3.25 now reads CLAUDE.md for eval commands instead of hardcodingapp/services/*_prompt_builder.rbpatterns. Project's eval system handles diff-based selection.review/checklist.mdexamples now show equivalents across Rails, React, Django, Prisma, Vue, SQLAlchemy, Go.Test Coverage
263 tests pass, 0 failures. New tests:
bin/test-lane,RAILS_ENV,_prompt_builder.rb,--include="*.rb"— zero matchesgstack-review-logandgstack-review-readPre-Landing Review
No issues found. Template-only changes (skill prompts + review checklist text).
Test plan
🤖 Generated with Claude Code