From 6e83a75843f417b17bde9b30b5aec26af1b66847 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Tue, 17 Mar 2026 22:18:56 -0700 Subject: [PATCH] fix: /ship discovers test commands from any Testing section variant MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- ship/SKILL.md | 11 ++++++----- ship/SKILL.md.tmpl | 11 ++++++----- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/ship/SKILL.md b/ship/SKILL.md index ce61d03f..56c4a197 100644 --- a/ship/SKILL.md +++ b/ship/SKILL.md @@ -406,9 +406,9 @@ Only commit if there are changes. Stage all bootstrap files (config, test direct ## Step 3: Run tests (on merged code) -Read CLAUDE.md. Look for a `## Testing` section or test commands in `## Commands`. -Extract all test commands (lines in bash code blocks that run tests — e.g., `bun test`, -`npm test`, `pytest`, `go test ./...`, `cargo test`, `bin/rails test`). +Read CLAUDE.md. Look for a section about testing — `## Testing`, `## Test Commands`, +`## Tests`, or test commands in `## Commands`. Extract all test commands (lines in +bash code blocks or command tables that run tests — e.g., `bun test`, `npm test`, `pytest`, `go test ./...`, `cargo test`, `bin/rails test`). Run all discovered test commands in parallel, each piped to a unique /tmp file: @@ -448,8 +448,9 @@ If C: Skip tests with warning. Continue to Step 3.25. ## Step 3.25: Eval Suites (conditional) -Read CLAUDE.md. Look for a `## Evals` section, or eval-related commands in `## Testing` -or `## Commands` (identified by keywords: "eval", "evals", "judge", "llm-judge"). +Read CLAUDE.md. Look for a `## Evals` section, or eval-related commands in `## Testing`, +`## Test Commands`, `## Tests`, or `## Commands` (identified by keywords: "eval", "evals", +"judge", "llm-judge"). If an eval command is found: Run it. The project's eval system handles diff-based file selection internally. diff --git a/ship/SKILL.md.tmpl b/ship/SKILL.md.tmpl index f7247b2c..5540ee2c 100644 --- a/ship/SKILL.md.tmpl +++ b/ship/SKILL.md.tmpl @@ -101,9 +101,9 @@ git fetch origin && git merge origin/ --no-edit ## Step 3: Run tests (on merged code) -Read CLAUDE.md. Look for a `## Testing` section or test commands in `## Commands`. -Extract all test commands (lines in bash code blocks that run tests — e.g., `bun test`, -`npm test`, `pytest`, `go test ./...`, `cargo test`, `bin/rails test`). +Read CLAUDE.md. Look for a section about testing — `## Testing`, `## Test Commands`, +`## Tests`, or test commands in `## Commands`. Extract all test commands (lines in +bash code blocks or command tables that run tests — e.g., `bun test`, `npm test`, `pytest`, `go test ./...`, `cargo test`, `bin/rails test`). Run all discovered test commands in parallel, each piped to a unique /tmp file: @@ -143,8 +143,9 @@ If C: Skip tests with warning. Continue to Step 3.25. ## Step 3.25: Eval Suites (conditional) -Read CLAUDE.md. Look for a `## Evals` section, or eval-related commands in `## Testing` -or `## Commands` (identified by keywords: "eval", "evals", "judge", "llm-judge"). +Read CLAUDE.md. Look for a `## Evals` section, or eval-related commands in `## Testing`, +`## Test Commands`, `## Tests`, or `## Commands` (identified by keywords: "eval", "evals", +"judge", "llm-judge"). If an eval command is found: Run it. The project's eval system handles diff-based file selection internally.