Loading...
Loading...
Compare original and translation side by side
_UPD=$(~/.claude/skills/gstack/bin/gstack-update-check 2>/dev/null || .claude/skills/gstack/bin/gstack-update-check 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
mkdir -p ~/.gstack/sessions
touch ~/.gstack/sessions/"$PPID"
_SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ')
find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true
_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true)
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
echo "BRANCH: $_BRANCH"UPGRADE_AVAILABLE <old> <new>~/.claude/skills/gstack/gstack-upgrade/SKILL.mdJUST_UPGRADED <from> <to>_UPD=$(~/.claude/skills/gstack/bin/gstack-update-check 2>/dev/null || .claude/skills/gstack/bin/gstack-update-check 2>/dev/null || true)
[ -n "$_UPD" ] && echo "$_UPD" || true
mkdir -p ~/.gstack/sessions
touch ~/.gstack/sessions/"$PPID"
_SESSIONS=$(find ~/.gstack/sessions -mmin -120 -type f 2>/dev/null | wc -l | tr -d ' ')
find ~/.gstack/sessions -mmin +120 -type f -delete 2>/dev/null || true
_CONTRIB=$(~/.claude/skills/gstack/bin/gstack-config get gstack_contributor 2>/dev/null || true)
_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
echo "BRANCH: $_BRANCH"UPGRADE_AVAILABLE <old> <new>~/.claude/skills/gstack/gstack-upgrade/SKILL.mdJUST_UPGRADED <from> <to>_BRANCHRECOMMENDATION: Choose [X] because [one-line reason]A) ... B) ... C) ..._BRANCHRECOMMENDATION: 选择[X],因为[一句话理由]A) ... B) ... C) ..._CONTRIBtrue$B js "await fetch(...)"SyntaxError: await is only valid in async functions~/.gstack/contributor-logs/{slug}.mdundefined_CONTRIBtrue$B js "await fetch(...)"SyntaxError: await is only valid in async functions~/.gstack/contributor-logs/{slug}.mdundefined{paste the actual error or unexpected output here}{paste the actual error or unexpected output here}
Slug: lowercase, hyphens, max 60 chars (e.g. `browse-js-no-await`). Skip if file already exists. Max 3 reports per session. File inline and continue — don't stop the workflow. Tell user: "Filed gstack field report: {title}"
Slug:小写,用连字符连接,最多60个字符(例如`browse-js-no-await`)。如果文件已存在则跳过。每个会话最多提交3份报告。直接在当前流程中编写并继续——不要中断工作流。告知用户:"已提交gstack现场报告:{标题}"gh pr view --json baseRefName -q .baseRefNamegh repo view --json defaultBranchRef -q .defaultBranchRef.namemaingit diffgit loggit fetchgit mergegh pr creategh pr view --json baseRefName -q .baseRefNamegh repo view --json defaultBranchRef -q .defaultBranchRef.namemaingit diffgit loggit fetchgit mergegh pr create/ship/ship/ship/shipgit status-uallgit diff <base>...HEAD --statgit log <base>..HEAD --onelinegit status-uallgit diff <base>...HEAD --statgit log <base>..HEAD --onelinegit fetch origin <base> && git merge origin/<base> --no-editgit fetch origin <base> && git merge origin/<base> --no-editRAILS_ENV=test bin/rails db:migratebin/test-lanedb:test:preparebin/test-lane 2>&1 | tee /tmp/ship_tests.txt &
npm run test 2>&1 | tee /tmp/ship_vitest.txt &
waitRAILS_ENV=test bin/rails db:migratebin/test-lanedb:test:preparebin/test-lane 2>&1 | tee /tmp/ship_tests.txt &
npm run test 2>&1 | tee /tmp/ship_vitest.txt &
waitgit diff origin/<base> --name-onlyapp/services/*_prompt_builder.rbapp/services/*_generation_service.rb*_writer_service.rb*_designer_service.rbapp/services/*_evaluator.rb*_scorer.rb*_classifier_service.rb*_analyzer.rbapp/services/concerns/*voice*.rb*writing*.rb*prompt*.rb*token*.rbapp/services/chat_tools/*.rbapp/services/x_thread_tools/*.rbconfig/system_prompts/*.txttest/evals/**/*test/evals/*_eval_runner.rbPROMPT_SOURCE_FILESgrep -l "changed_file_basename" test/evals/*_eval_runner.rbpost_generation_eval_runner.rbpost_generation_eval_test.rbtest/evals/judges/*.rbtest/evals/support/*.rbtest/evals/fixtures/config/system_prompts/*.txtEVAL_JUDGE_TIER=full/shipEVAL_JUDGE_TIER=full EVAL_VERBOSE=1 bin/test-lane --eval test/evals/<suite>_eval_test.rb 2>&1 | tee /tmp/ship_evals.txtfull| Tier | When | Speed (cached) | Cost |
|---|---|---|---|
| Dev iteration, smoke tests | ~5s (14x faster) | ~$0.07/run |
| Default dev, | ~17s (4x faster) | ~$0.37/run |
| | ~72s (baseline) | ~$1.27/run |
git diff origin/<base> --name-onlyapp/services/*_prompt_builder.rbapp/services/*_generation_service.rb*_writer_service.rb*_designer_service.rbapp/services/*_evaluator.rb*_scorer.rb*_classifier_service.rb*_analyzer.rbapp/services/concerns/*voice*.rb*writing*.rb*prompt*.rb*token*.rbapp/services/chat_tools/*.rbapp/services/x_thread_tools/*.rbconfig/system_prompts/*.txttest/evals/**/*test/evals/*_eval_runner.rbPROMPT_SOURCE_FILESgrep -l "changed_file_basename" test/evals/*_eval_runner.rbpost_generation_eval_runner.rbpost_generation_eval_test.rbtest/evals/judges/*.rbtest/evals/support/*.rbtest/evals/fixtures/config/system_prompts/*.txtEVAL_JUDGE_TIER=full/shipEVAL_JUDGE_TIER=full EVAL_VERBOSE=1 bin/test-lane --eval test/evals/<suite>_eval_test.rb 2>&1 | tee /tmp/ship_evals.txtfull| 级别 | 使用场景 | 速度(缓存后) | 成本 |
|---|---|---|---|
| 开发迭代、冒烟测试 | ~5秒(快14倍) | ~$0.07/次 |
| 默认开发、 | ~17秒(快4倍) | ~$0.37/次 |
| | ~72秒(基准速度) | ~$1.27/次 |
.claude/skills/review/checklist.mdgit diff origin/<base>Pre-Landing Review: N issues (X critical, Y informational)file:lineRECOMMENDATION: Choose A because [one-line reason]git add <fixed-files> && git commit -m "fix: apply pre-landing review fixes"/shipPre-Landing Review: No issues found..claude/skills/review/checklist.mdgit diff origin/<base>预发布审查:共N个问题(X个CRITICAL,Y个INFORMATIONAL)file:lineRECOMMENDATION: 选择A,因为[一句话理由]git add <fixed-files> && git commit -m "fix: apply pre-landing review fixes"/ship预发布审查:未发现问题。.claude/skills/review/greptile-triage.mdgh+ N Greptile comments (X valid, Y fixed, Z FP)RECOMMENDATION: Choose A because [one-line reason]git add <fixed-files> && git commit -m "fix: address Greptile review — <brief description>".claude/skills/review/greptile-triage.mdgh+ N条Greptile评论(X条有效,Y条已修复,Z条误报)file:lineRECOMMENDATION: 选择A,因为[一句话理由]git add <fixed-files> && git commit -m "fix: address Greptile review — <简要描述>"file:lineVERSIONMAJOR.MINOR.PATCH.MICROgit diff origin/<base>...HEAD --stat | tail -10.19.1.00.19.2.0VERSIONVERSIONMAJOR.MINOR.PATCH.MICROgit diff origin/<base>...HEAD --stat | tail -10.19.1.00.19.2.0VERSIONCHANGELOG.mdgit log <base>..HEAD --onelinegit diff <base>...HEAD### Added### Changed### Fixed### Removed## [X.Y.Z.W] - YYYY-MM-DDCHANGELOG.mdgit log <base>..HEAD --onelinegit diff <base>...HEAD### Added### Changed### Fixed### Removed## [X.Y.Z.W] - YYYY-MM-DD.claude/skills/review/TODOS-format.mdTODOS.md## <Skill/Component>**Priority:**## Completedgit diff <base>...HEADgit log <base>..HEAD --oneline## Completed**Completed:** vX.Y.Z (YYYY-MM-DD)TODOS.md: N items marked complete (item1, item2, ...). M items remaining.TODOS.md: No completed items detected. M items remaining.TODOS.md: Created.TODOS.md: Reorganized..claude/skills/review/TODOS-format.mdTODOS.md## <Skill/Component>**Priority:**## Completedgit diff <base>...HEADgit log <base>..HEAD --oneline## Completed**Completed:** vX.Y.Z (YYYY-MM-DD)TODOS.md:已标记N项为已完成(item1, item2, ...)。剩余M项。TODOS.md:未检测到已完成项。剩余M项。TODOS.md:已创建。TODOS.md:已重新组织。git bisect<type>: <summary>git commit -m "$(cat <<'EOF'
chore: bump version and changelog (vX.Y.Z.W)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"git bisect<type>: <summary>git commit -m "$(cat <<'EOF'
chore: bump version and changelog (vX.Y.Z.W)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
EOF
)"git push -u origin <branch-name>git push -u origin <branch-name>ghgh pr create --base <base> --title "<type>: <summary>" --body "$(cat <<'EOF'ghgh pr create --base <base> --title "<type>: <summary>" --body "$(cat <<'EOF'
**Output the PR URL** — this should be the final output the user sees.
---
**输出PR URL**——这应该是用户看到的最终输出。
---git pushYYYY-MM-DD/shipgit pushYYYY-MM-DD/ship