.gsd/ is generated at runtime by sf-run during execution and contains
audit logs, notifications, and metadata. These should never be committed
to the repository. Removing tracked state files and ignoring the directory
going forward.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Final rebrand: rename remaining Rust source file to complete the gsd → forge
transition. All parser references already use forge_parser after earlier commits.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
.gsd/ contains per-worktree project state (milestones, db, decisions)
that should never be committed. Auto-commits were leaking these files
into the repo, causing the no-gsd-dir CI check to fail.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Development planning artifacts (.gsd/) are project-specific state that
lives in worktree branches during active development. Tracking them on
main causes merge conflicts with worktree-isolated auto-mode and leaves
stale snapshots that mislead.
- Remove 157 .gsd/ files from git tracking (kept on disk)
- Replace granular .gsd/ gitignore rules with single .gsd/ entry
- Files remain available locally for reference
Closes#647
* docs(M004): context, requirements, and roadmap
* chore(M004): record integration branch
* chore(M004/S01): auto-commit after research-slice
* docs(S01): add slice plan
* chore(M004/S01/T01): auto-commit after execute-task
* chore(M004/S01/T02): auto-commit after execute-task
* chore(M004/S01): auto-commit after complete-slice
* chore(M004/S01): auto-commit after reassess-roadmap
* chore(M004/S02): auto-commit after research-slice
* docs(S02): add slice plan
* chore(M004/S02/T01): auto-commit after execute-task
* chore(M004/S02/T02): auto-commit after execute-task
* chore(M004/S02): auto-commit after complete-slice
* docs(M004): reassess roadmap after S02
* chore(M004/S03): auto-commit after research-slice
* docs(S03): add slice plan
* chore(M004/S03/T01): auto-commit after execute-task
* chore(M004/S03/T02): auto-commit after execute-task
* chore(M004/S03/T03): auto-commit after execute-task
* chore(M004/S03): auto-commit after complete-slice
* chore(M004): record integration branch
* chore(M004/S04): auto-commit after research-slice
* docs(S04): add slice plan
* chore: update state to executing S04
* chore(M004/S04/T01): auto-commit after execute-task
* chore(M004/S04/T02): auto-commit after execute-task
* chore(M004/S04): auto-commit after complete-slice
* docs(M004): reassess roadmap after S04
* chore(M004/S05): auto-commit after research-slice
* docs(S05): add slice plan
* chore(M004/S05/T01): auto-commit after execute-task
* chore(M004/S05/T02): auto-commit after execute-task
* chore(M004/S05): auto-commit after complete-slice
* chore(M004/S05): auto-commit after reassess-roadmap
* chore(M004/S06): auto-commit after research-slice
* docs(S06): add slice plan
* chore: update STATE.md for S06 execution
* chore(M004/S06/T01): auto-commit after execute-task
* chore(M004/S06/T02): auto-commit after execute-task
* chore(M004/S06): auto-commit after complete-slice
* chore(M004/S06): auto-commit after reassess-roadmap
* chore(M004/S07): auto-commit after research-slice
* docs(S07): add slice plan
* chore(M004/S07/T01): auto-commit after execute-task
* chore(M004/S07): auto-commit after complete-slice
* chore(M004): auto-commit after complete-milestone
* docs(M004): milestone summary and state update
* fix: path traversal guard, ATTACH allowlist, restore deleted export-html
- db-writer.ts: validate saveArtifactToDb path stays within .gsd/ using
resolve() to prevent directory traversal via LLM tool input
- gsd-db.ts: replace single-quote-only ATTACH guard with strict character
allowlist regex for worktree DB path validation
- Restore accidentally deleted pkg/dist/core/export-html/ templates
(removed in b30baeb7 during S04/T01 auto-execution)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore: remove .gsd/ from tracking — private project work docs
.gsd/ contains personal planning artifacts, not public source code.
Replace granular runtime gitignore rules with blanket .gsd/ ignore.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: resolve 4 strict typecheck errors for tsconfig.extensions.json
- gsd-db.ts: cast origEmit.apply return to boolean
- md-importer.ts: double-cast Requirement to Record<string, unknown>
- gsd-inspect.test.ts: remove extraneous arg from report()
- md-importer.test.ts: nullish coalesce on optional chain to boolean
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: update compression test to accept DB-aware helper pattern
The context-compression test checks auto-prompts.ts source for
inlineGsdRootFile calls, but M004 replaces these with DB-aware
helpers (inlineRequirementsFromDb etc). Accept either pattern.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: use single-quote blocklist instead of path allowlist for ATTACH guard
Allowlist regex broke on Windows temp paths containing tildes (RUNNER~1),
parens, and other valid OS path chars. The only actual injection vector
for ATTACH DATABASE '...' is a single quote breaking the SQL literal.
Block that one char instead of trying to enumerate all valid path chars.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* revert: restore .gsd/ tracking and original gitignore rules
The blanket .gsd/ ignore was incorrect — GSD users need planning
files tracked. Restore main's granular runtime-only gitignore and
re-add all .gsd/ planning files from main.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: use double quotes in git commit message for Windows compatibility
Single quotes in shell commands don't work on Windows PowerShell.
The commit message 'add gsd dir' was split into separate pathspecs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tasks:
- chore(M002/S06): auto-commit after complete-slice
- chore(M002/S06): auto-commit after complete-slice
- chore(M002/S06/T02): auto-commit after execute-task
- chore(M002/S06/T02): auto-commit after execute-task
- chore(M002/S06/T01): auto-commit after execute-task
- chore(M002/S06/T01): auto-commit after execute-task
- chore(M002/S06): auto-commit after plan-slice
- chore: update state for S06 execution
- docs(S06): add slice plan
Branch: gsd/M002/S06
Tasks:
- chore(M002/S02): auto-commit after complete-slice
- chore(M002/S02): auto-commit after complete-slice
- chore(M002/S02/T02): auto-commit after execute-task
- chore(M002/S02/T02): auto-commit after execute-task
- chore(M002/S02/T01): auto-commit after execute-task
- fix: expand tool outputs by default and pull main before slice merge
- chore(M002/S02): auto-commit after plan-slice
- docs(S02): add slice plan
Branch: gsd/M002/S02