mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-08 13:39:45 +08:00
fix: atomic review log helpers + platform-agnostic templates (v0.8.5) (#209)
* fix: add gstack-review-log and gstack-review-read atomic helpers Branch names with `/` break review log filepaths when Claude Code runs multi-line bash blocks as separate shell invocations. These two scripts encapsulate the full operation in a single command. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: replace multi-line eval+mkdir+echo blocks with atomic helpers - Review log writes now use gstack-review-log (single command) - Review dashboard reads now use gstack-review-read (single command) - Remaining source+mkdir blocks use && chaining for variable persistence - Regenerated all SKILL.md files Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: remove Rails-isms — platform-agnostic templates and checklist - review/checklist.md: multi-framework examples (Rails/Node/Python/Django) - plan-ceo-review: framework-agnostic grep + generic error table - plan-eng-review: "corresponding test" not "JS or Rails test" - CLAUDE.md: Platform-agnostic design principle + Testing section Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test: update tests for gstack-review-log/read helpers - codex review log test: check for gstack-review-log instead of reviews.jsonl - dashboard resolver tests: check for gstack-review instead of reviews.jsonl Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: bump version and changelog (v0.8.5) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
23
CLAUDE.md
23
CLAUDE.md
@@ -30,6 +30,17 @@ on `git diff` against the base branch. Each test declares its file dependencies
|
||||
llm-judge, gen-skill-docs) trigger all tests. Use `EVALS_ALL=1` or the `:all` script
|
||||
variants to force all tests. Run `eval:select` to preview which tests would run.
|
||||
|
||||
## Testing
|
||||
|
||||
```bash
|
||||
bun test # run before every commit — free, <2s
|
||||
bun run test:evals # run before shipping — paid, diff-based (~$4/run max)
|
||||
```
|
||||
|
||||
`bun test` runs skill validation, gen-skill-docs quality checks, and browse
|
||||
integration tests. `bun run test:evals` runs LLM-judge quality evals and E2E
|
||||
tests via `claude -p`. Both must pass before creating a PR.
|
||||
|
||||
## Project structure
|
||||
|
||||
```
|
||||
@@ -79,6 +90,18 @@ SKILL.md files are **generated** from `.tmpl` templates. To update docs:
|
||||
To add a new browse command: add it to `browse/src/commands.ts` and rebuild.
|
||||
To add a snapshot flag: add it to `SNAPSHOT_FLAGS` in `browse/src/snapshot.ts` and rebuild.
|
||||
|
||||
## Platform-agnostic design
|
||||
|
||||
Skills must NEVER hardcode framework-specific commands, file patterns, or directory
|
||||
structures. Instead:
|
||||
|
||||
1. **Read CLAUDE.md** for project-specific config (test commands, eval commands, etc.)
|
||||
2. **If missing, AskUserQuestion** — let the user tell you or let gstack search the repo
|
||||
3. **Persist the answer to CLAUDE.md** so we never have to ask again
|
||||
|
||||
This applies to test commands, eval commands, deploy commands, and any other
|
||||
project-specific behavior. The project owns its config; gstack reads it.
|
||||
|
||||
## Writing SKILL templates
|
||||
|
||||
SKILL.md.tmpl files are **prompt templates read by Claude**, not bash scripts.
|
||||
|
||||
Reference in New Issue
Block a user