feat: multi-stack portability for Node.js, TypeScript, and Python projects (v0.5.1)#126
Open
brahmasky wants to merge 2 commits intogarrytan:mainfrom
Open
feat: multi-stack portability for Node.js, TypeScript, and Python projects (v0.5.1)#126brahmasky wants to merge 2 commits intogarrytan:mainfrom
brahmasky wants to merge 2 commits intogarrytan:mainfrom
Conversation
…jects
- Add {{PROJECT_DETECT}} resolver: auto-detects test runner (vitest/jest/pytest/
make/bin/test-lane), VERSION format (3 vs 4-digit semver), project languages,
and eval suite availability. Replaces all Rails-hardcoded assumptions in /ship.
- /ship Step 3: generic test runner — detects and runs vitest, jest, pytest, or
make test instead of hardcoding bin/test-lane + npm run test. Supports parallel
runs when multiple test suites coexist (e.g. Node.js + Python monorepo).
- /ship Step 3.25: eval suites are now explicitly Rails-only (gated on EVAL_SUITE=yes).
Non-Rails projects skip this step entirely with a clear message instead of failing.
- /ship Step 4: VERSION bump handles both 3-digit semver (MAJOR.MINOR.PATCH) and
4-digit extended format. No-VERSION-file projects skip the step gracefully.
- /plan-ceo-review: system audit grep now covers .rb/.py/.ts/.tsx/.js/.jsx/.go/.rs.
Recently-touched-files detection uses lock file anchor auto-detected per stack
(Gemfile.lock → pnpm-lock.yaml → poetry.lock → pyproject.toml → go.sum → package.json).
- /retro: replace hardcoded TZ=America/Los_Angeles with local timezone auto-detection
(macOS + Linux compatible). Retro output now displays in the committer's local time.
- /qa: dirty working tree is now a recoverable condition. Instead of hard-erroring,
Claude offers to git stash and restore automatically after Phase 10 completes.
- {{QA_METHODOLOGY}} and {{DESIGN_METHODOLOGY}}: replace hardcoded `main` in
diff-aware mode with <base> (uses base branch detected by {{BASE_BRANCH_DETECT}}).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
e578b4c to
3088ed5
Compare
2 tasks
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
gstack's core workflow skills (
/ship,/plan-ceo-review,/retro,/qa) had several hardcoded assumptions tied to the Rails stack. This PR makes them work correctly on Node.js, TypeScript, and Python projects without any configuration./shipauto-detects the test runner — vitest, jest, pytest, make, or bin/test-lane. Supports parallel runs for multi-language monorepos. Falls back gracefully if none found./shiphandles both 3-digit semver and 4-digit VERSION formats — standard1.2.3projects no longer get confused by the extended format. No VERSION file = silently skip./shipare now explicitly Rails-only — gated onEVAL_SUITE=yes(detected viatest/evals/+ Gemfile). TS/Python projects skip with a one-liner instead of failing./plan-ceo-reviewsystem audit works on any stack — grep covers.py/.ts/.tsx/.go/.rsalongside.rb. Lock file anchor auto-detected (pnpm-lock → poetry.lock → go.sum → package.json)./retroshows local time instead of hardcoded Pacific — timezone auto-detected from system on macOS + Linux./qaoffers git stash instead of hard-failing on dirty working tree — stash/restore is handled automatically around the QA session.{{QA_METHODOLOGY}}and{{DESIGN_METHODOLOGY}}were hardcoded tomain; now use the<base>detected by{{BASE_BRANCH_DETECT}}.Implementation
Added a new
{{PROJECT_DETECT}}resolver togen-skill-docs.ts— a stack detection block that printsTEST_CMD,VERSIONformat,LANGUAGES, andEVAL_SUITEto stdout. Follows the existing{{QA_METHODOLOGY}}/{{DESIGN_METHODOLOGY}}pattern. All SKILL.md files are regenerated and fresh.Test plan
bun scripts/gen-skill-docs.ts --dry-run→ all 15 files FRESH🤖 Generated with Claude Code