Security Overview
GSD’s workflows read files to understand your project during:- Codebase mapping (
/gsd:map-codebase) — Analyzes existing code - Planning (
/gsd:plan-phase) — Discovers patterns and conventions - Execution (
/gsd:execute-phase) — Reads source files for context - Verification (
/gsd:verify-work) — Checks implementation against goals
- Deny list (first line of defense) — Prevent Claude from reading sensitive files
- Built-in protections (second line) — GSD prevents committing common secret patterns
- Manual review (third line) — Check commits before pushing
Protecting Sensitive Files
Claude Code Deny List
The deny list prevents Claude from reading specified files, regardless of what commands you run. Configuration location:- Global:
~/.claude/settings.json(affects all projects) - Project:
.claude/settings.json(affects current project only)
Pattern syntax:
Read(pattern) where pattern uses glob syntax:*matches any characters except/**matches any characters including/- Examples:
**/.envmatches.envin any directory
Common Secret File Patterns
| Pattern | Description |
|---|---|
.env, .env.* | Environment variables (API keys, database URLs) |
secrets/, credentials/ | Dedicated secret directories |
*.pem, *.key | Private keys (SSL, SSH, API) |
*.p12, *.pfx | Certificate files |
id_rsa, id_dsa, etc. | SSH private keys |
master.key | Rails master key |
serviceAccountKey.json | Firebase/GCP service accounts |
database.yml | Database credentials |
*.jks, *.keystore | Java keystores |
Project-Specific Secrets
Add patterns for your project’s secret storage: Example: AWS credentialsBuilt-In Protections
GSD includes safeguards to prevent committing secrets:Commit-Time Checks
Before creating git commits, executors check for: Common secret patterns:- API keys (
AKIA...,sk_live_...,ghp_...) - Tokens (
token=...,Bearer ...) - Passwords (
password=...,passwd=...) - Private keys (
-----BEGIN PRIVATE KEY-----) - Connection strings (database URLs with credentials)
Gitignore Respect
GSD honors.gitignore patterns:
Example .gitignore:
.gitignore patterns are:
- Not staged by executors
- Not committed in atomic commits
- Not included in codebase analysis (unless
planning.search_gitignored: true)
Set
planning.search_gitignored: false (default) to exclude .gitignore files from broad searches during planning.File Extension Filtering
Certain file types are automatically excluded from commits: Binary files:.key,.pem,.p12,.pfx,.jks.exe,.dll,.so,.dylib- Images (unless explicitly part of task)
- Files in
secrets/orcredentials/directories - Files matching
*credential*,*secret*patterns
Security Best Practices
1. Configure Deny List Before First Run
2. Use .env.example for Templates
Don’t:
.env.example to understand config structure without exposing secrets.
3. Separate Secrets from Code
Recommended structure:4. Review Commits Before Pushing
After phase execution:5. Audit Codebase Mapping Output
After/gsd:map-codebase, check generated files:
- API keys listed in STACK.md
- Database credentials in ARCHITECTURE.md
- Secret paths in file references
6. Use GSD in Trusted Environments
GSD spawns agents that:- Read your codebase
- Execute bash commands (install deps, run tests, git commit)
- Modify files
Reporting Security Issues
Do NOT report security vulnerabilities through public GitHub issues. Instead, report via email: [email protected] Include:- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (optional)
- Acknowledgment: Within 48 hours
- Initial assessment: Within 1 week
- Fix timeline:
- Critical: 24-48 hours
- High: 1 week
- Medium/Low: Next release
Security Scope
Security issues in the GSD codebase that could:- Execute arbitrary code on user machines
- Expose sensitive data (API keys, credentials)
- Compromise the integrity of generated plans/code
- Bypass deny list protections
- Claude AI model behavior (report to Anthropic)
- Third-party dependencies (report to maintainers)
- User misconfiguration (see troubleshooting docs)
Recognition
We appreciate responsible disclosure and will credit reporters in release notes (unless you prefer to remain anonymous).Quick Reference
Minimal Deny List
Comprehensive Deny List
Check for Secrets in Commits
Next Steps
Architecture
How security fits into overall system design
State Management
Protecting STATE.md and planning artifacts