mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-08-14 19:13:35 +00:00
* refactor: extract inline hook commands to TypeScript scripts in .claude/scripts/ Replace long inline `bash -c '...'` one-liners in .claude/settings.json with standalone TypeScript scripts that are easier to read, debug, and maintain: - enforce-worktree.ts: PreToolUse hook ensuring edits happen in worktrees - validate-file.ts: PostToolUse hook for .sh/.ts file validation - pre-merge-check.ts: PreToolUse hook running biome + tests before merge Add .claude/scripts as a bun workspace package (@spawn/hooks). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: replace manual typeguards with valibot schemas in hook scripts - Extract shared schemas (FilePathInput, CommandInput, parseStdin) to schemas.ts - Replace inline multi-level typeof/in checks with v.safeParse() calls - Add valibot dependency to @spawn/hooks package - Add CLAUDE.md rule: always prefer valibot over manual typeguards, share schemas Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor: split CLAUDE.md into modular .claude/rules/ files Split the 437-line monolithic CLAUDE.md into a lean 89-line project overview plus 9 focused rules files in .claude/rules/ (auto-loaded by Claude Code): - culture.md — embrace bold changes, parallelize, verify exhaustively - shell-scripts.md — curl|bash compat, macOS bash 3.x, ESM only, bun not python - type-safety.md — no `as` assertions, ALWAYS use valibot (never manual typeguards) - testing.md — bun:test only, no vitest, no subprocess spawning - git-workflow.md — worktree-first mandatory workflow - autonomous-loops.md — discovery/refactor service architecture - discovery.md — how to fill matrix gaps, add clouds/agents - documentation.md — never commit docs, use .docs/ - cli-version.md — bump version on every CLI change The type-safety rule now explicitly mandates valibot schemas over manual typeguard chains in all cases beyond single-primitive narrowing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(lint): run biome check across all packages in CI The lint workflow only checked packages/cli/src/. Now it checks all TypeScript locations in a single biome check command: - packages/cli/src/ (with GritQL plugins) - packages/shared/src/ (new biome.json) - .claude/scripts/ (new biome.json) - .claude/skills/setup-spa/ Fixed all pre-existing lint/format errors: - node: protocol on all Node.js built-in imports in hook scripts - useBlockStatements in packages/shared/src/type-guards.ts - expand formatting in .claude/skills/setup-spa/main.ts and spa.test.ts Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: lab <6723574+louisgv@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
689 B
689 B
Documentation Policy
NEVER commit documentation files to the repository. All documentation, testing guides, implementation notes, security audits, and similar files MUST be stored in .docs/ directory (git-ignored).
Examples of files that should NOT be committed:
TESTING_*.mdSECURITY_AUDIT.mdIMPLEMENTATION_NOTES.mdTODO.md- Any other internal documentation files
The only documentation files allowed in the repository are:
README.md(user-facing)CLAUDE.md(contributor guide)- Cloud-specific
README.mdfiles insh/{cloud}/README.md
If you need to create documentation during development, write it to .docs/ and add .docs/ to .gitignore.