Skip to main content

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
Critical: If your project contains secrets (API keys, credentials, private keys), GSD agents may read them unless you configure protection.
Defense-in-depth approach:
  1. Deny list (first line of defense) — Prevent Claude from reading sensitive files
  2. Built-in protections (second line) — GSD prevents committing common secret patterns
  3. 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)
Recommended configuration:
Pattern syntax: Read(pattern) where pattern uses glob syntax:
  • * matches any characters except /
  • ** matches any characters including /
  • Examples: **/.env matches .env in any directory

Common Secret File Patterns

Project-Specific Secrets

Add patterns for your project’s secret storage: Example: AWS credentials
Example: Docker secrets
Example: Kubernetes secrets
Example: API keys in config

Built-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)
If detected:

Gitignore Respect

GSD honors .gitignore patterns: Example .gitignore:
Files matching .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)
Sensitive configs:
  • Files in secrets/ or credentials/ directories
  • Files matching *credential*, *secret* patterns

Security Best Practices

1. Configure Deny List Before First Run

2. Use .env.example for Templates

Don’t:
Do:
GSD can read .env.example to understand config structure without exposing secrets.

3. Separate Secrets from Code

Recommended structure:
config.js (safe):

4. Review Commits Before Pushing

After phase execution:

5. Audit Codebase Mapping Output

After /gsd:map-codebase, check generated files:
Red flags:
  • API keys listed in STACK.md
  • Database credentials in ARCHITECTURE.md
  • Secret paths in file references
If found, add deny patterns and re-run:

6. Use GSD in Trusted Environments

GSD spawns agents that:
  • Read your codebase
  • Execute bash commands (install deps, run tests, git commit)
  • Modify files
Only run GSD in environments where you trust the AI’s actions. Use deny lists and manual review for production/sensitive projects.

Reporting Security Issues

Do NOT report security vulnerabilities through public GitHub issues. Instead, report via email: security@gsd.build Include:
  • Description of the vulnerability
  • Steps to reproduce
  • Potential impact
  • Suggested fix (optional)
Response timeline:
  • 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
Out of scope:
  • 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