From 471d3b7a7d076391412ea9760761591244ea2b43 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Fri, 14 Aug 2026 19:31:58 -0700 Subject: [PATCH] fix(retro,ship): count tracked files for the test-file metric, not the working tree MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The test-file count ran find over the working tree, sweeping untracked build output — a Rails repo reported 623 test files when git tracks 17 (37x), skewing retro narratives and ship dashboards. Count via git ls-files instead; includes the one-line Python-glob widening so non-JS repos stop undercounting. Fixes #2307, #1999. Contributed by @joshRpowell (PR #2308). Co-Authored-By: Claude Fable 5 --- openclaw/skills/gstack-openclaw-retro/SKILL.md | 2 +- retro/SKILL.md | 2 +- retro/SKILL.md.tmpl | 2 +- scripts/resolvers/testing.ts | 4 ++-- ship/sections/test-coverage.md | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/openclaw/skills/gstack-openclaw-retro/SKILL.md b/openclaw/skills/gstack-openclaw-retro/SKILL.md index eefc98181..1e823b3f0 100644 --- a/openclaw/skills/gstack-openclaw-retro/SKILL.md +++ b/openclaw/skills/gstack-openclaw-retro/SKILL.md @@ -60,7 +60,7 @@ git log origin/main --since="" --format="AUTHOR:%aN" --name-only git shortlog origin/main --since="" -sn --no-merges # Test file count -find . -name '*.test.*' -o -name '*.spec.*' -o -name '*_test.*' -o -name '*_spec.*' 2>/dev/null | grep -v node_modules | wc -l +git ls-files 2>/dev/null | grep -E '(\.test\.|\.spec\.|_test\.|_spec\.)' | wc -l # Test files changed in window git log origin/main --since="" --format="" --name-only | grep -E '\.(test|spec)\.' | sort -u | wc -l diff --git a/retro/SKILL.md b/retro/SKILL.md index 822a05e10..e93c1513e 100644 --- a/retro/SKILL.md +++ b/retro/SKILL.md @@ -1030,7 +1030,7 @@ cat ~/.gstack/greptile-history.md 2>/dev/null || true cat TODOS.md 2>/dev/null || true # 10. Test file count -find . -name '*.test.*' -o -name '*.spec.*' -o -name '*_test.*' -o -name '*_spec.*' 2>/dev/null | grep -v node_modules | wc -l +git ls-files 2>/dev/null | grep -E '(\.test\.|\.spec\.|_test\.|_spec\.)' | wc -l # 11. Regression test commits in window git log origin/ --since="" --oneline --grep="test(qa):" --grep="test(design):" --grep="test: coverage" diff --git a/retro/SKILL.md.tmpl b/retro/SKILL.md.tmpl index b0819c8a6..b60e0c3f3 100644 --- a/retro/SKILL.md.tmpl +++ b/retro/SKILL.md.tmpl @@ -197,7 +197,7 @@ cat ~/.gstack/greptile-history.md 2>/dev/null || true cat TODOS.md 2>/dev/null || true # 10. Test file count -find . -name '*.test.*' -o -name '*.spec.*' -o -name '*_test.*' -o -name '*_spec.*' 2>/dev/null | grep -v node_modules | wc -l +git ls-files 2>/dev/null | grep -E '(\.test\.|\.spec\.|_test\.|_spec\.)' | wc -l # 11. Regression test commits in window git log origin/ --since="" --oneline --grep="test(qa):" --grep="test(design):" --grep="test: coverage" diff --git a/scripts/resolvers/testing.ts b/scripts/resolvers/testing.ts index 592382bdd..1c167722c 100644 --- a/scripts/resolvers/testing.ts +++ b/scripts/resolvers/testing.ts @@ -222,7 +222,7 @@ ls -d test/ tests/ spec/ __tests__/ cypress/ e2e/ 2>/dev/null \`\`\`bash # Count test files before any generation -find . -name '*.test.*' -o -name '*.spec.*' -o -name '*_test.*' -o -name '*_spec.*' | grep -v node_modules | wc -l +git ls-files 2>/dev/null | grep -E '(\\.test\\.|\\.spec\\.|_test\\.|_spec\\.)' | wc -l \`\`\` Store this number for the PR body.`); @@ -430,7 +430,7 @@ If no test framework AND user declined bootstrap → diagram only, no generation \`\`\`bash # Count test files after generation -find . -name '*.test.*' -o -name '*.spec.*' -o -name '*_test.*' -o -name '*_spec.*' | grep -v node_modules | wc -l +git ls-files 2>/dev/null | grep -E '(\\.test\\.|\\.spec\\.|_test\\.|_spec\\.)' | wc -l \`\`\` For PR body: \`Tests: {before} → {after} (+{delta} new)\` diff --git a/ship/sections/test-coverage.md b/ship/sections/test-coverage.md index 6c916a7f0..60fea89d5 100644 --- a/ship/sections/test-coverage.md +++ b/ship/sections/test-coverage.md @@ -36,7 +36,7 @@ ls -d test/ tests/ spec/ __tests__/ cypress/ e2e/ 2>/dev/null ```bash # Count test files before any generation -find . -name '*.test.*' -o -name '*.spec.*' -o -name '*_test.*' -o -name '*_spec.*' | grep -v node_modules | wc -l +git ls-files 2>/dev/null | grep -E '(\.test\.|\.spec\.|_test\.|_spec\.)' | wc -l ``` Store this number for the PR body. @@ -174,7 +174,7 @@ If no test framework AND user declined bootstrap → diagram only, no generation ```bash # Count test files after generation -find . -name '*.test.*' -o -name '*.spec.*' -o -name '*_test.*' -o -name '*_spec.*' | grep -v node_modules | wc -l +git ls-files 2>/dev/null | grep -E '(\.test\.|\.spec\.|_test\.|_spec\.)' | wc -l ``` For PR body: `Tests: {before} → {after} (+{delta} new)`