# External Integrations **Analysis Date:** 2026-03-27 ## APIs & External Services **Web Search:** - Brave Search - Web search integration for research and discovery phases - SDK/Client: Native `fetch` API (Node.js built-in) - Auth: `BRAVE_API_KEY` environment variable or `~/.gsd/brave_api_key` file - Endpoint: `https://api.search.brave.com/res/v1/web/search` - Implementation: `cmdWebSearch()` in `/home/ys/family-repo/AgenticCode/.claude/get-shit-done/bin/lib/commands.cjs` **Web Scraping (Optional):** - Firecrawl - Web content extraction - Auth: `FIRECRAWL_API_KEY` environment variable or `~/.gsd/firecrawl_api_key` file - Status: Configuration detected, not actively used in codebase **Search Alternative (Optional):** - Exa Search - Alternative search API - Auth: `~/.gsd/exa_api_key` file - Status: Configuration detected, not actively used in codebase ## Data Storage **Repositories:** - Git - Primary version control system for all planning documents - Client: Git CLI via `child_process.execSync()` and `execFileSync()` - Operations: Commit, status, log, diff, tag management - Integration points: `execGit()` in `core.cjs`, phase operations in `phase.cjs` **File Storage:** - Local filesystem only - `.planning/` directory tree - All state, roadmaps, phases, requirements - `~/.gsd/` directory - User-level API key storage - Multi-workspace support via `.planning/config.json` sub_repos configuration **Caching:** - None detected ## Authentication & Identity **Auth Provider:** - Custom/API Key based - No centralized identity provider - Individual API keys per external service stored in files or environment variables - Git authentication via system SSH/credentials configured externally ## Monitoring & Observability **Error Tracking:** - None detected - errors handled via console output **Logs:** - Console output via `output()` and `error()` functions in `/home/ys/family-repo/AgenticCode/.claude/get-shit-done/bin/lib/core.cjs` - Support for structured JSON output via `--raw` flag - Context monitoring hooks in `.claude/hooks/gsd-context-monitor.js` ## CI/CD & Deployment **Hosting:** - Self-hosted Node.js CLI - IDE integration via Claude, Gemini, Agent, Cursor, OpenCode, Windsurf editors - Editor-specific hooks and commands in `./.[editor]/.claude/hooks/` **CI Pipeline:** - Git hooks integration via Claude settings - Post-tool-use monitoring: `gsd-context-monitor.js` - Pre-write guards: `gsd-prompt-guard.js` - Update checking: `gsd-check-update.js` ## Environment Configuration **Required env vars:** - `HOME` - User home directory (for API key storage and config) - `BRAVE_API_KEY` - (optional) Brave Search API key for web search functionality **Optional env vars:** - `FIRECRAWL_API_KEY` - Web scraping capability - `EXA_API_KEY` - Alternative search provider **Secrets location:** - Environment variables: `.env` or shell environment - File-based: `~/.gsd/brave_api_key`, `~/.gsd/firecrawl_api_key`, `~/.gsd/exa_api_key` - Git-ignored configuration: Not applicable (no local .env files in codebase) ## Webhooks & Callbacks **Incoming:** - None detected **Outgoing:** - Git commits via `execGit()` - Triggers CI/CD if configured - Status updates via stdio - Display progress to Claude/editor interface ## Git Integration **Operations Supported:** - `git status` - Check working tree state - `git add` - Stage files - `git commit` - Create planning commits with auto-generated messages - `git log` - Query commit history - `git diff` - Compare changes - `git tag` - Version marking for phases and milestones - Commit routing for multi-repo workspaces **Key Implementation:** - Location: `execGit()` in `/home/ys/family-repo/AgenticCode/.claude/get-shit-done/bin/lib/core.cjs` - Supports sub-repo commit routing via `commit-to-subrepo` command - Automatic message generation with structured frontmatter --- *Integration audit: 2026-03-27*