@opengsd/gsd-core 1.13.0 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/agents/gsd-advisor-researcher.compact.md +85 -0
- package/agents/gsd-ai-researcher.compact.md +96 -0
- package/agents/gsd-assumptions-analyzer.compact.md +81 -0
- package/agents/gsd-code-fixer.compact.md +458 -0
- package/agents/gsd-code-fixer.md +5 -5
- package/agents/gsd-code-reviewer.compact.md +269 -0
- package/agents/gsd-code-reviewer.md +15 -3
- package/agents/gsd-codebase-mapper.compact.md +760 -0
- package/agents/gsd-debug-session-manager.compact.md +345 -0
- package/agents/gsd-doc-classifier.compact.md +192 -0
- package/agents/gsd-doc-synthesizer.compact.md +200 -0
- package/agents/gsd-doc-verifier.compact.md +143 -0
- package/agents/gsd-doc-writer.compact.md +440 -0
- package/agents/gsd-dom-verifier.compact.md +138 -0
- package/agents/gsd-domain-researcher.compact.md +141 -0
- package/agents/gsd-eval-auditor.compact.md +160 -0
- package/agents/gsd-eval-planner.compact.md +137 -0
- package/agents/gsd-framework-selector.compact.md +82 -0
- package/agents/gsd-integration-checker.compact.md +245 -0
- package/agents/gsd-intel-updater.compact.md +226 -0
- package/agents/gsd-mempalace-curator.compact.md +45 -0
- package/agents/gsd-nyquist-auditor.compact.md +179 -0
- package/agents/gsd-pattern-mapper.compact.md +275 -0
- package/agents/gsd-project-researcher.compact.md +587 -0
- package/agents/gsd-research-synthesizer.compact.md +212 -0
- package/agents/gsd-roadmapper.compact.md +454 -0
- package/agents/gsd-roadmapper.md +13 -0
- package/agents/gsd-security-auditor.compact.md +162 -0
- package/agents/gsd-ui-auditor.compact.md +404 -0
- package/agents/gsd-ui-checker.compact.md +277 -0
- package/agents/gsd-ui-researcher.compact.md +282 -0
- package/agents/gsd-user-profiler.compact.md +108 -0
- package/bin/install.js +206 -68
- package/commands/gsd/cleanup.md +1 -0
- package/commands/gsd/code-review.md +2 -1
- package/commands/gsd/complete-milestone.md +1 -0
- package/commands/gsd/config.md +1 -0
- package/commands/gsd/debug.md +1 -0
- package/commands/gsd/graphify.md +1 -0
- package/commands/gsd/health.md +1 -0
- package/commands/gsd/mempalace-capture.md +1 -0
- package/commands/gsd/mempalace-recall.md +1 -0
- package/commands/gsd/new-milestone.md +1 -0
- package/commands/gsd/new-project.md +1 -0
- package/commands/gsd/next.md +1 -0
- package/commands/gsd/pause-work.md +1 -0
- package/commands/gsd/phase.md +1 -0
- package/commands/gsd/pr-branch.md +1 -0
- package/commands/gsd/resume-work.md +1 -0
- package/commands/gsd/review-backlog.md +1 -0
- package/commands/gsd/settings.md +2 -1
- package/commands/gsd/stats.md +1 -0
- package/commands/gsd/thread.md +1 -0
- package/commands/gsd/workspace.md +1 -0
- package/commands/gsd/workstreams.md +1 -0
- package/gsd-core/bin/check-latest-version.cjs +8 -3
- package/gsd-core/bin/gsd-tools.cjs +338 -125
- package/gsd-core/bin/lib/adr-parser.cjs +1 -1
- package/gsd-core/bin/lib/artifacts.cjs +2 -1
- package/gsd-core/bin/lib/audit.cjs +39 -22
- package/gsd-core/bin/lib/broken-windows.cjs +168 -49
- package/gsd-core/bin/lib/capability-lifecycle.cjs +10 -6
- package/gsd-core/bin/lib/capability-loader.cjs +135 -1
- package/gsd-core/bin/lib/capability-registry.cjs +79 -67
- package/gsd-core/bin/lib/capability-source.cjs +19 -2
- package/gsd-core/bin/lib/capability-validator.cjs +14 -1
- package/gsd-core/bin/lib/check-command-router.cjs +113 -36
- package/gsd-core/bin/lib/code-review-depth.cjs +2 -2
- package/gsd-core/bin/lib/commands.cjs +650 -72
- package/gsd-core/bin/lib/config-loader.cjs +1 -0
- package/gsd-core/bin/lib/config.cjs +153 -38
- package/gsd-core/bin/lib/coverage.cjs +1 -1
- package/gsd-core/bin/lib/decisions.cjs +137 -34
- package/gsd-core/bin/lib/external-descriptor-trust.cjs +29 -14
- package/gsd-core/bin/lib/gsd2-import.cjs +1 -2
- package/gsd-core/bin/lib/health-diagnostic-rules/state-consistency.cjs +12 -1
- package/gsd-core/bin/lib/health-diagnostic-rules/worktree-health.cjs +1 -1
- package/gsd-core/bin/lib/init.cjs +409 -47
- package/gsd-core/bin/lib/install-engine.cjs +16 -3
- package/gsd-core/bin/lib/install-profiles.cjs +14 -0
- package/gsd-core/bin/lib/installer-migrations.cjs +33 -4
- package/gsd-core/bin/lib/loop-resolver.cjs +50 -31
- package/gsd-core/bin/lib/mcp-catalog.cjs +2 -2
- package/gsd-core/bin/lib/milestone.cjs +19 -8
- package/gsd-core/bin/lib/model-resolver.cjs +101 -10
- package/gsd-core/bin/lib/phase-command-router.cjs +7 -1
- package/gsd-core/bin/lib/phase-id.cjs +161 -22
- package/gsd-core/bin/lib/phase-lifecycle.cjs +61 -0
- package/gsd-core/bin/lib/phase.cjs +167 -63
- package/gsd-core/bin/lib/planning-inspect.cjs +34 -18
- package/gsd-core/bin/lib/planning-snapshot.cjs +61 -12
- package/gsd-core/bin/lib/planning-workspace.cjs +50 -1
- package/gsd-core/bin/lib/pristine-baseline.cjs +182 -0
- package/gsd-core/bin/lib/prohibition-enforcement.cjs +91 -4
- package/gsd-core/bin/lib/quick-batch.cjs +1 -1
- package/gsd-core/bin/lib/refactor-trigger-command-router.cjs +61 -2
- package/gsd-core/bin/lib/research-store.cjs +11 -12
- package/gsd-core/bin/lib/review-lane-invocation.cjs +23 -0
- package/gsd-core/bin/lib/reviewer-step-dispatch.cjs +337 -0
- package/gsd-core/bin/lib/roadmap-parser.cjs +56 -15
- package/gsd-core/bin/lib/roadmap.cjs +108 -14
- package/gsd-core/bin/lib/runtime-artifact-conversion.cjs +27 -10
- package/gsd-core/bin/lib/runtime-artifact-install-plan.cjs +12 -3
- package/gsd-core/bin/lib/runtime-artifact-layout.cjs +13 -5
- package/gsd-core/bin/lib/runtime-hooks-surface.cjs +193 -4
- package/gsd-core/bin/lib/security.cjs +126 -7
- package/gsd-core/bin/lib/state-document.cjs +130 -28
- package/gsd-core/bin/lib/state-md-schema.cjs +21 -14
- package/gsd-core/bin/lib/state-transition.cjs +142 -28
- package/gsd-core/bin/lib/state.cjs +223 -27
- package/gsd-core/bin/lib/surface.cjs +60 -2
- package/gsd-core/bin/lib/task-command-router.cjs +12 -6
- package/gsd-core/bin/lib/uat.cjs +1 -1
- package/gsd-core/bin/lib/update-context.cjs +30 -24
- package/gsd-core/bin/lib/vendor/js-yaml.cjs +11 -3
- package/gsd-core/bin/lib/verification.cjs +47 -15
- package/gsd-core/bin/lib/verify-command-grounding.cjs +1 -1
- package/gsd-core/bin/lib/verify.cjs +188 -23
- package/gsd-core/bin/lib/workstream-inventory.cjs +1 -0
- package/gsd-core/bin/lib/worktree-safety.cjs +13 -7
- package/gsd-core/bin/shared/config-defaults.manifest.json +1 -0
- package/gsd-core/bin/shared/config-schema.manifest.json +5 -0
- package/gsd-core/bin/verify-reapply-patches.cjs +439 -80
- package/gsd-core/references/compact-content-gate.md +66 -0
- package/gsd-core/references/loop-hook-dispatch.md +18 -0
- package/gsd-core/references/model-profiles.md +12 -3
- package/gsd-core/references/planning-config.md +3 -0
- package/gsd-core/references/tdd.md +5 -2
- package/gsd-core/references/thinking-models-planning.md +18 -2
- package/gsd-core/references/verification-patterns.md +17 -4
- package/gsd-core/references/worktree-path-safety.md +112 -2
- package/gsd-core/templates/README.md +7 -1
- package/gsd-core/templates/state.md +6 -3
- package/gsd-core/templates/summary.compact.md +212 -0
- package/gsd-core/templates/user-setup.compact.md +199 -0
- package/gsd-core/templates/user-setup.md +0 -9
- package/gsd-core/workflows/add-todo.md +3 -2
- package/gsd-core/workflows/autonomous.md +13 -10
- package/gsd-core/workflows/check-todos.md +4 -2
- package/gsd-core/workflows/cleanup.md +3 -1
- package/gsd-core/workflows/code-review/steps/structural-pre-pass.md +7 -0
- package/gsd-core/workflows/code-review-fix.md +3 -3
- package/gsd-core/workflows/code-review.md +156 -30
- package/gsd-core/workflows/complete-milestone/detail/elaboration.md +274 -0
- package/gsd-core/workflows/complete-milestone.md +39 -262
- package/gsd-core/workflows/docs-update/detail/elaboration.md +179 -0
- package/gsd-core/workflows/docs-update.md +14 -155
- package/gsd-core/workflows/execute-phase/detail/elaboration.md +124 -0
- package/gsd-core/workflows/execute-phase/steps/codebase-drift-gate.md +18 -3
- package/gsd-core/workflows/execute-phase/steps/completion-reconciliation.md +56 -0
- package/gsd-core/workflows/execute-phase/steps/executor-isolation-dispatch.md +7 -2
- package/gsd-core/workflows/execute-phase/steps/executor-progress-policy.md +43 -0
- package/gsd-core/workflows/execute-phase/steps/sequential-root-pin.md +35 -0
- package/gsd-core/workflows/execute-phase.md +53 -152
- package/gsd-core/workflows/execute-plan.md +20 -7
- package/gsd-core/workflows/help/modes/full.compact.md +398 -0
- package/gsd-core/workflows/help.md +1 -1
- package/gsd-core/workflows/map-codebase.md +50 -3
- package/gsd-core/workflows/new-milestone.md +54 -12
- package/gsd-core/workflows/new-project/detail/elaboration.md +216 -0
- package/gsd-core/workflows/new-project.md +32 -202
- package/gsd-core/workflows/plan-phase/detail/elaboration.md +209 -0
- package/gsd-core/workflows/plan-phase.md +22 -181
- package/gsd-core/workflows/pr-branch.md +19 -7
- package/gsd-core/workflows/quick.md +8 -1
- package/gsd-core/workflows/reapply-patches.md +77 -3
- package/gsd-core/workflows/settings.md +18 -5
- package/gsd-core/workflows/update.md +7 -5
- package/gsd-core/workflows/verify-work/detail/elaboration.md +230 -0
- package/gsd-core/workflows/verify-work.md +20 -180
- package/hooks/dist/gsd-agent-isolation-guard.js +42 -16
- package/hooks/dist/gsd-context-monitor.js +88 -15
- package/hooks/dist/gsd-cursor-subagent-start.js +34 -14
- package/hooks/dist/gsd-secret-read-guard.js +44 -18
- package/hooks/dist/gsd-statusline.js +11 -7
- package/hooks/dist/gsd-validate-commit.sh +34 -4
- package/hooks/dist/gsd-worktree-path-guard.js +25 -14
- package/hooks/dist/gsd-write-guard.js +46 -1
- package/hooks/dist/lib/dispatch-identity.js +187 -0
- package/hooks/dist/lib/filename-classification.js +64 -0
- package/hooks/dist/lib/isolation-deny-reason.js +53 -1
- package/hooks/dist/lib/isolation-sentinel.js +58 -19
- package/hooks/gsd-agent-isolation-guard.js +42 -16
- package/hooks/gsd-context-monitor.js +88 -15
- package/hooks/gsd-cursor-subagent-start.js +34 -14
- package/hooks/gsd-secret-read-guard.js +44 -18
- package/hooks/gsd-statusline.js +11 -7
- package/hooks/gsd-validate-commit.sh +34 -4
- package/hooks/gsd-worktree-path-guard.js +25 -14
- package/hooks/gsd-write-guard.js +46 -1
- package/hooks/lib/dispatch-identity.js +187 -0
- package/hooks/lib/filename-classification.js +64 -0
- package/hooks/lib/isolation-deny-reason.js +53 -1
- package/hooks/lib/isolation-sentinel.js +58 -19
- package/package.json +10 -6
- package/scripts/benchmark-compact-content-variants.cjs +298 -0
- package/scripts/benchmark-compact-content.cjs +368 -0
- package/scripts/check-contract-drift.cjs +4 -1
- package/scripts/check-env.cjs +36 -8
- package/scripts/check-glossary-refs.cjs +25 -21
- package/scripts/ci-next-health.cjs +271 -0
- package/scripts/ci-prepare-test-scope.cjs +7 -7
- package/scripts/ci-test-scope.cjs +126 -20
- package/scripts/ci-timeout-report.cjs +1 -1
- package/scripts/diff-touches-shipped-paths.cjs +1 -1
- package/scripts/docs-guard-registry.cjs +7 -2
- package/scripts/gen-adr-index.cjs +8 -2
- package/scripts/gen-inventory-manifest.cjs +12 -0
- package/scripts/gen-platform-conformance-tier.cjs +557 -0
- package/scripts/lib/drift-scan.cjs +1 -1
- package/scripts/lib/macos-conformance-tier.generated.cjs +210 -0
- package/scripts/lib/npm-version-check-diagnosis.cjs +59 -0
- package/scripts/lib/platform-conformance-tier.generated.cjs +276 -0
- package/scripts/lib/suite-detection.cjs +32 -0
- package/scripts/lint-allowed-tools-parity.cjs +221 -0
- package/scripts/lint-docs-guard-registration.exempt-baseline.cjs +19 -2
- package/scripts/lint-phase-id-drift.cjs +338 -13
- package/scripts/lint-response-language-coverage.cjs +9 -3
- package/scripts/lint-source-test-name-collision.cjs +1 -1
- package/scripts/lint-test-file-count.allowlist.json +1 -0
- package/scripts/lint-vendored-deps.cjs +128 -17
- package/scripts/lint-workflow-shellcheck-baseline.json +85 -0
- package/scripts/prompt-injection-scan.sh +14 -0
- package/scripts/workflow-size.cjs +139 -0
- package/skills/gsd-cleanup/SKILL.md +1 -0
- package/skills/gsd-code-review/SKILL.md +2 -1
- package/skills/gsd-complete-milestone/SKILL.md +1 -0
- package/skills/gsd-config/SKILL.md +1 -0
- package/skills/gsd-debug/SKILL.md +1 -0
- package/skills/gsd-graphify/SKILL.md +1 -0
- package/skills/gsd-health/SKILL.md +1 -0
- package/skills/gsd-mempalace-capture/SKILL.md +1 -0
- package/skills/gsd-mempalace-recall/SKILL.md +1 -0
- package/skills/gsd-new-milestone/SKILL.md +1 -0
- package/skills/gsd-new-project/SKILL.md +1 -0
- package/skills/gsd-next/SKILL.md +1 -0
- package/skills/gsd-pause-work/SKILL.md +1 -0
- package/skills/gsd-phase/SKILL.md +1 -0
- package/skills/gsd-pr-branch/SKILL.md +1 -0
- package/skills/gsd-resume-work/SKILL.md +1 -0
- package/skills/gsd-review-backlog/SKILL.md +1 -0
- package/skills/gsd-settings/SKILL.md +2 -1
- package/skills/gsd-stats/SKILL.md +1 -0
- package/skills/gsd-thread/SKILL.md +1 -0
- package/skills/gsd-workspace/SKILL.md +1 -0
- package/skills/gsd-workstreams/SKILL.md +1 -0
- package/vscode/package.json +1 -1
- package/gsd-core/templates/claude-md.md +0 -145
- package/gsd-core/templates/codebase/concerns.md +0 -310
- package/gsd-core/templates/codebase/conventions.md +0 -307
- package/gsd-core/templates/codebase/integrations.md +0 -280
- package/gsd-core/templates/codebase/structure.md +0 -285
- package/gsd-core/templates/codebase/testing.md +0 -480
- package/gsd-core/templates/debug-subagent-prompt.md +0 -91
- package/gsd-core/templates/discovery.md +0 -146
|
@@ -1,280 +0,0 @@
|
|
|
1
|
-
# External Integrations Template
|
|
2
|
-
|
|
3
|
-
Template for `.planning/codebase/INTEGRATIONS.md` - captures external service dependencies.
|
|
4
|
-
|
|
5
|
-
**Purpose:** Document what external systems this codebase communicates with. Focused on "what lives outside our code that we depend on."
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## File Template
|
|
10
|
-
|
|
11
|
-
```markdown
|
|
12
|
-
# External Integrations
|
|
13
|
-
|
|
14
|
-
**Analysis Date:** [YYYY-MM-DD]
|
|
15
|
-
|
|
16
|
-
## APIs & External Services
|
|
17
|
-
|
|
18
|
-
**Payment Processing:**
|
|
19
|
-
- [Service] - [What it's used for: e.g., "subscription billing, one-time payments"]
|
|
20
|
-
- SDK/Client: [e.g., "stripe npm package v14.x"]
|
|
21
|
-
- Auth: [e.g., "API key in STRIPE_SECRET_KEY env var"]
|
|
22
|
-
- Endpoints used: [e.g., "checkout sessions, webhooks"]
|
|
23
|
-
|
|
24
|
-
**Email/SMS:**
|
|
25
|
-
- [Service] - [What it's used for: e.g., "transactional emails"]
|
|
26
|
-
- SDK/Client: [e.g., "sendgrid/mail v8.x"]
|
|
27
|
-
- Auth: [e.g., "API key in SENDGRID_API_KEY env var"]
|
|
28
|
-
- Templates: [e.g., "managed in SendGrid dashboard"]
|
|
29
|
-
|
|
30
|
-
**External APIs:**
|
|
31
|
-
- [Service] - [What it's used for]
|
|
32
|
-
- Integration method: [e.g., "REST API via fetch", "GraphQL client"]
|
|
33
|
-
- Auth: [e.g., "OAuth2 token in AUTH_TOKEN env var"]
|
|
34
|
-
- Rate limits: [if applicable]
|
|
35
|
-
|
|
36
|
-
## Data Storage
|
|
37
|
-
|
|
38
|
-
**Databases:**
|
|
39
|
-
- [Type/Provider] - [e.g., "PostgreSQL on Supabase"]
|
|
40
|
-
- Connection: [e.g., "via DATABASE_URL env var"]
|
|
41
|
-
- Client: [e.g., "Prisma ORM v5.x"]
|
|
42
|
-
- Migrations: [e.g., "prisma migrate in migrations/"]
|
|
43
|
-
|
|
44
|
-
**File Storage:**
|
|
45
|
-
- [Service] - [e.g., "AWS S3 for user uploads"]
|
|
46
|
-
- SDK/Client: [e.g., "@aws-sdk/client-s3"]
|
|
47
|
-
- Auth: [e.g., "IAM credentials in AWS_* env vars"]
|
|
48
|
-
- Buckets: [e.g., "prod-uploads, dev-uploads"]
|
|
49
|
-
|
|
50
|
-
**Caching:**
|
|
51
|
-
- [Service] - [e.g., "Redis for session storage"]
|
|
52
|
-
- Connection: [e.g., "REDIS_URL env var"]
|
|
53
|
-
- Client: [e.g., "ioredis v5.x"]
|
|
54
|
-
|
|
55
|
-
## Authentication & Identity
|
|
56
|
-
|
|
57
|
-
**Auth Provider:**
|
|
58
|
-
- [Service] - [e.g., "Supabase Auth", "Auth0", "custom JWT"]
|
|
59
|
-
- Implementation: [e.g., "Supabase client SDK"]
|
|
60
|
-
- Token storage: [e.g., "httpOnly cookies", "localStorage"]
|
|
61
|
-
- Session management: [e.g., "JWT refresh tokens"]
|
|
62
|
-
|
|
63
|
-
**OAuth Integrations:**
|
|
64
|
-
- [Provider] - [e.g., "Google OAuth for sign-in"]
|
|
65
|
-
- Credentials: [e.g., "GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET"]
|
|
66
|
-
- Scopes: [e.g., "email, profile"]
|
|
67
|
-
|
|
68
|
-
## Monitoring & Observability
|
|
69
|
-
|
|
70
|
-
**Error Tracking:**
|
|
71
|
-
- [Service] - [e.g., "Sentry"]
|
|
72
|
-
- DSN: [e.g., "SENTRY_DSN env var"]
|
|
73
|
-
- Release tracking: [e.g., "via SENTRY_RELEASE"]
|
|
74
|
-
|
|
75
|
-
**Analytics:**
|
|
76
|
-
- [Service] - [e.g., "Mixpanel for product analytics"]
|
|
77
|
-
- Token: [e.g., "MIXPANEL_TOKEN env var"]
|
|
78
|
-
- Events tracked: [e.g., "user actions, page views"]
|
|
79
|
-
|
|
80
|
-
**Logs:**
|
|
81
|
-
- [Service] - [e.g., "CloudWatch", "Datadog", "none (stdout only)"]
|
|
82
|
-
- Integration: [e.g., "AWS Lambda built-in"]
|
|
83
|
-
|
|
84
|
-
## CI/CD & Deployment
|
|
85
|
-
|
|
86
|
-
**Hosting:**
|
|
87
|
-
- [Platform] - [e.g., "Vercel", "AWS Lambda", "Docker on ECS"]
|
|
88
|
-
- Deployment: [e.g., "automatic on main branch push"]
|
|
89
|
-
- Environment vars: [e.g., "configured in Vercel dashboard"]
|
|
90
|
-
|
|
91
|
-
**CI Pipeline:**
|
|
92
|
-
- [Service] - [e.g., "GitHub Actions"]
|
|
93
|
-
- Workflows: [e.g., "test.yml, deploy.yml"]
|
|
94
|
-
- Secrets: [e.g., "stored in GitHub repo secrets"]
|
|
95
|
-
|
|
96
|
-
## Environment Configuration
|
|
97
|
-
|
|
98
|
-
**Development:**
|
|
99
|
-
- Required env vars: [List critical vars]
|
|
100
|
-
- Secrets location: [e.g., ".env.local (gitignored)", "1Password vault"]
|
|
101
|
-
- Mock/stub services: [e.g., "Stripe test mode", "local PostgreSQL"]
|
|
102
|
-
|
|
103
|
-
**Staging:**
|
|
104
|
-
- Environment-specific differences: [e.g., "uses staging Stripe account"]
|
|
105
|
-
- Data: [e.g., "separate staging database"]
|
|
106
|
-
|
|
107
|
-
**Production:**
|
|
108
|
-
- Secrets management: [e.g., "Vercel environment variables"]
|
|
109
|
-
- Failover/redundancy: [e.g., "multi-region DB replication"]
|
|
110
|
-
|
|
111
|
-
## Webhooks & Callbacks
|
|
112
|
-
|
|
113
|
-
**Incoming:**
|
|
114
|
-
- [Service] - [Endpoint: e.g., "/api/webhooks/stripe"]
|
|
115
|
-
- Verification: [e.g., "signature validation via stripe.webhooks.constructEvent"]
|
|
116
|
-
- Events: [e.g., "payment_intent.succeeded, customer.subscription.updated"]
|
|
117
|
-
|
|
118
|
-
**Outgoing:**
|
|
119
|
-
- [Service] - [What triggers it]
|
|
120
|
-
- Endpoint: [e.g., "external CRM webhook on user signup"]
|
|
121
|
-
- Retry logic: [if applicable]
|
|
122
|
-
|
|
123
|
-
---
|
|
124
|
-
|
|
125
|
-
*Integration audit: [date]*
|
|
126
|
-
*Update when adding/removing external services*
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
<good_examples>
|
|
130
|
-
```markdown
|
|
131
|
-
# External Integrations
|
|
132
|
-
|
|
133
|
-
**Analysis Date:** 2025-01-20
|
|
134
|
-
|
|
135
|
-
## APIs & External Services
|
|
136
|
-
|
|
137
|
-
**Payment Processing:**
|
|
138
|
-
- Stripe - Subscription billing and one-time course payments
|
|
139
|
-
- SDK/Client: stripe npm package v14.8
|
|
140
|
-
- Auth: API key in STRIPE_SECRET_KEY env var
|
|
141
|
-
- Endpoints used: checkout sessions, customer portal, webhooks
|
|
142
|
-
|
|
143
|
-
**Email/SMS:**
|
|
144
|
-
- SendGrid - Transactional emails (receipts, password resets)
|
|
145
|
-
- SDK/Client: @sendgrid/mail v8.1
|
|
146
|
-
- Auth: API key in SENDGRID_API_KEY env var
|
|
147
|
-
- Templates: Managed in SendGrid dashboard (template IDs in code)
|
|
148
|
-
|
|
149
|
-
**External APIs:**
|
|
150
|
-
- OpenAI API - Course content generation
|
|
151
|
-
- Integration method: REST API via openai npm package v4.x
|
|
152
|
-
- Auth: Bearer token in OPENAI_API_KEY env var
|
|
153
|
-
- Rate limits: 3500 requests/min (tier 3)
|
|
154
|
-
|
|
155
|
-
## Data Storage
|
|
156
|
-
|
|
157
|
-
**Databases:**
|
|
158
|
-
- PostgreSQL on Supabase - Primary data store
|
|
159
|
-
- Connection: via DATABASE_URL env var
|
|
160
|
-
- Client: Prisma ORM v5.8
|
|
161
|
-
- Migrations: prisma migrate in prisma/migrations/
|
|
162
|
-
|
|
163
|
-
**File Storage:**
|
|
164
|
-
- Supabase Storage - User uploads (profile images, course materials)
|
|
165
|
-
- SDK/Client: @supabase/supabase-js v2.x
|
|
166
|
-
- Auth: Service role key in SUPABASE_SERVICE_ROLE_KEY
|
|
167
|
-
- Buckets: avatars (public), course-materials (private)
|
|
168
|
-
|
|
169
|
-
**Caching:**
|
|
170
|
-
- None currently (all database queries, no Redis)
|
|
171
|
-
|
|
172
|
-
## Authentication & Identity
|
|
173
|
-
|
|
174
|
-
**Auth Provider:**
|
|
175
|
-
- Supabase Auth - Email/password + OAuth
|
|
176
|
-
- Implementation: Supabase client SDK with server-side session management
|
|
177
|
-
- Token storage: httpOnly cookies via @supabase/ssr
|
|
178
|
-
- Session management: JWT refresh tokens handled by Supabase
|
|
179
|
-
|
|
180
|
-
**OAuth Integrations:**
|
|
181
|
-
- Google OAuth - Social sign-in
|
|
182
|
-
- Credentials: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET (Supabase dashboard)
|
|
183
|
-
- Scopes: email, profile
|
|
184
|
-
|
|
185
|
-
## Monitoring & Observability
|
|
186
|
-
|
|
187
|
-
**Error Tracking:**
|
|
188
|
-
- Sentry - Server and client errors
|
|
189
|
-
- DSN: SENTRY_DSN env var
|
|
190
|
-
- Release tracking: Git commit SHA via SENTRY_RELEASE
|
|
191
|
-
|
|
192
|
-
**Analytics:**
|
|
193
|
-
- None (planned: Mixpanel)
|
|
194
|
-
|
|
195
|
-
**Logs:**
|
|
196
|
-
- Vercel logs - stdout/stderr only
|
|
197
|
-
- Retention: 7 days on Pro plan
|
|
198
|
-
|
|
199
|
-
## CI/CD & Deployment
|
|
200
|
-
|
|
201
|
-
**Hosting:**
|
|
202
|
-
- Vercel - Next.js app hosting
|
|
203
|
-
- Deployment: Automatic on main branch push
|
|
204
|
-
- Environment vars: Configured in Vercel dashboard (synced to .env.example)
|
|
205
|
-
|
|
206
|
-
**CI Pipeline:**
|
|
207
|
-
- GitHub Actions - Tests and type checking
|
|
208
|
-
- Workflows: .github/workflows/ci.yml
|
|
209
|
-
- Secrets: None needed (public repo tests only)
|
|
210
|
-
|
|
211
|
-
## Environment Configuration
|
|
212
|
-
|
|
213
|
-
**Development:**
|
|
214
|
-
- Required env vars: DATABASE_URL, NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY
|
|
215
|
-
- Secrets location: .env.local (gitignored), team shared via 1Password vault
|
|
216
|
-
- Mock/stub services: Stripe test mode, Supabase local dev project
|
|
217
|
-
|
|
218
|
-
**Staging:**
|
|
219
|
-
- Uses separate Supabase staging project
|
|
220
|
-
- Stripe test mode
|
|
221
|
-
- Same Vercel account, different environment
|
|
222
|
-
|
|
223
|
-
**Production:**
|
|
224
|
-
- Secrets management: Vercel environment variables
|
|
225
|
-
- Database: Supabase production project with daily backups
|
|
226
|
-
|
|
227
|
-
## Webhooks & Callbacks
|
|
228
|
-
|
|
229
|
-
**Incoming:**
|
|
230
|
-
- Stripe - /api/webhooks/stripe
|
|
231
|
-
- Verification: Signature validation via stripe.webhooks.constructEvent
|
|
232
|
-
- Events: payment_intent.succeeded, customer.subscription.updated, customer.subscription.deleted
|
|
233
|
-
|
|
234
|
-
**Outgoing:**
|
|
235
|
-
- None
|
|
236
|
-
|
|
237
|
-
---
|
|
238
|
-
|
|
239
|
-
*Integration audit: 2025-01-20*
|
|
240
|
-
*Update when adding/removing external services*
|
|
241
|
-
```
|
|
242
|
-
</good_examples>
|
|
243
|
-
|
|
244
|
-
<guidelines>
|
|
245
|
-
**What belongs in INTEGRATIONS.md:**
|
|
246
|
-
- External services the code communicates with
|
|
247
|
-
- Authentication patterns (where secrets live, not the secrets themselves)
|
|
248
|
-
- SDKs and client libraries used
|
|
249
|
-
- Environment variable names (not values)
|
|
250
|
-
- Webhook endpoints and verification methods
|
|
251
|
-
- Database connection patterns
|
|
252
|
-
- File storage locations
|
|
253
|
-
- Monitoring and logging services
|
|
254
|
-
|
|
255
|
-
**What does NOT belong here:**
|
|
256
|
-
- Actual API keys or secrets (NEVER write these)
|
|
257
|
-
- Internal architecture (that's ARCHITECTURE.md)
|
|
258
|
-
- Code patterns (that's PATTERNS.md)
|
|
259
|
-
- Technology choices (that's STACK.md)
|
|
260
|
-
- Performance issues (that's CONCERNS.md)
|
|
261
|
-
|
|
262
|
-
**When filling this template:**
|
|
263
|
-
- Check .env.example or .env.template for required env vars
|
|
264
|
-
- Look for SDK imports (stripe, @sendgrid/mail, etc.)
|
|
265
|
-
- Check for webhook handlers in routes/endpoints
|
|
266
|
-
- Note where secrets are managed (not the secrets)
|
|
267
|
-
- Document environment-specific differences (dev/staging/prod)
|
|
268
|
-
- Include auth patterns for each service
|
|
269
|
-
|
|
270
|
-
**Useful for phase planning when:**
|
|
271
|
-
- Adding new external service integrations
|
|
272
|
-
- Debugging authentication issues
|
|
273
|
-
- Understanding data flow outside the application
|
|
274
|
-
- Setting up new environments
|
|
275
|
-
- Auditing third-party dependencies
|
|
276
|
-
- Planning for service outages or migrations
|
|
277
|
-
|
|
278
|
-
**Security note:**
|
|
279
|
-
Document WHERE secrets live (env vars, Vercel dashboard, 1Password), never WHAT the secrets are.
|
|
280
|
-
</guidelines>
|
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
# Structure Template
|
|
2
|
-
|
|
3
|
-
Template for `.planning/codebase/STRUCTURE.md` - captures physical file organization.
|
|
4
|
-
|
|
5
|
-
**Purpose:** Document where things physically live in the codebase. Answers "where do I put X?"
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## File Template
|
|
10
|
-
|
|
11
|
-
```markdown
|
|
12
|
-
# Codebase Structure
|
|
13
|
-
|
|
14
|
-
**Analysis Date:** [YYYY-MM-DD]
|
|
15
|
-
|
|
16
|
-
## Directory Layout
|
|
17
|
-
|
|
18
|
-
[ASCII box-drawing tree of top-level directories with purpose - use ├── └── │ characters for tree structure only]
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
[project-root]/
|
|
22
|
-
├── [dir]/ # [Purpose]
|
|
23
|
-
├── [dir]/ # [Purpose]
|
|
24
|
-
├── [dir]/ # [Purpose]
|
|
25
|
-
└── [file] # [Purpose]
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Directory Purposes
|
|
29
|
-
|
|
30
|
-
**[Directory Name]:**
|
|
31
|
-
- Purpose: [What lives here]
|
|
32
|
-
- Contains: [Types of files: e.g., "*.ts source files", "component directories"]
|
|
33
|
-
- Key files: [Important files in this directory]
|
|
34
|
-
- Subdirectories: [If nested, describe structure]
|
|
35
|
-
|
|
36
|
-
**[Directory Name]:**
|
|
37
|
-
- Purpose: [What lives here]
|
|
38
|
-
- Contains: [Types of files]
|
|
39
|
-
- Key files: [Important files]
|
|
40
|
-
- Subdirectories: [Structure]
|
|
41
|
-
|
|
42
|
-
## Key File Locations
|
|
43
|
-
|
|
44
|
-
**Entry Points:**
|
|
45
|
-
- [Path]: [Purpose: e.g., "CLI entry point"]
|
|
46
|
-
- [Path]: [Purpose: e.g., "Server startup"]
|
|
47
|
-
|
|
48
|
-
**Configuration:**
|
|
49
|
-
- [Path]: [Purpose: e.g., "TypeScript config"]
|
|
50
|
-
- [Path]: [Purpose: e.g., "Build configuration"]
|
|
51
|
-
- [Path]: [Purpose: e.g., "Environment variables"]
|
|
52
|
-
|
|
53
|
-
**Core Logic:**
|
|
54
|
-
- [Path]: [Purpose: e.g., "Business services"]
|
|
55
|
-
- [Path]: [Purpose: e.g., "Database models"]
|
|
56
|
-
- [Path]: [Purpose: e.g., "API routes"]
|
|
57
|
-
|
|
58
|
-
**Testing:**
|
|
59
|
-
- [Path]: [Purpose: e.g., "Unit tests"]
|
|
60
|
-
- [Path]: [Purpose: e.g., "Test fixtures"]
|
|
61
|
-
|
|
62
|
-
**Documentation:**
|
|
63
|
-
- [Path]: [Purpose: e.g., "User-facing docs"]
|
|
64
|
-
- [Path]: [Purpose: e.g., "Developer guide"]
|
|
65
|
-
|
|
66
|
-
## Naming Conventions
|
|
67
|
-
|
|
68
|
-
**Files:**
|
|
69
|
-
- [Pattern]: [Example: e.g., "kebab-case.ts for modules"]
|
|
70
|
-
- [Pattern]: [Example: e.g., "PascalCase.tsx for React components"]
|
|
71
|
-
- [Pattern]: [Example: e.g., "*.test.ts for test files"]
|
|
72
|
-
|
|
73
|
-
**Directories:**
|
|
74
|
-
- [Pattern]: [Example: e.g., "kebab-case for feature directories"]
|
|
75
|
-
- [Pattern]: [Example: e.g., "plural names for collections"]
|
|
76
|
-
|
|
77
|
-
**Special Patterns:**
|
|
78
|
-
- [Pattern]: [Example: e.g., "index.ts for directory exports"]
|
|
79
|
-
- [Pattern]: [Example: e.g., "__tests__ for test directories"]
|
|
80
|
-
|
|
81
|
-
## Where to Add New Code
|
|
82
|
-
|
|
83
|
-
**New Feature:**
|
|
84
|
-
- Primary code: [Directory path]
|
|
85
|
-
- Tests: [Directory path]
|
|
86
|
-
- Config if needed: [Directory path]
|
|
87
|
-
|
|
88
|
-
**New Component/Module:**
|
|
89
|
-
- Implementation: [Directory path]
|
|
90
|
-
- Types: [Directory path]
|
|
91
|
-
- Tests: [Directory path]
|
|
92
|
-
|
|
93
|
-
**New Route/Command:**
|
|
94
|
-
- Definition: [Directory path]
|
|
95
|
-
- Handler: [Directory path]
|
|
96
|
-
- Tests: [Directory path]
|
|
97
|
-
|
|
98
|
-
**Utilities:**
|
|
99
|
-
- Shared helpers: [Directory path]
|
|
100
|
-
- Type definitions: [Directory path]
|
|
101
|
-
|
|
102
|
-
## Special Directories
|
|
103
|
-
|
|
104
|
-
[Any directories with special meaning or generation]
|
|
105
|
-
|
|
106
|
-
**[Directory]:**
|
|
107
|
-
- Purpose: [e.g., "Generated code", "Build output"]
|
|
108
|
-
- Source: [e.g., "Auto-generated by X", "Build artifacts"]
|
|
109
|
-
- Committed: [Yes/No - in .gitignore?]
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
*Structure analysis: [date]*
|
|
114
|
-
*Update when directory structure changes*
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
<good_examples>
|
|
118
|
-
```markdown
|
|
119
|
-
# Codebase Structure
|
|
120
|
-
|
|
121
|
-
**Analysis Date:** 2025-01-20
|
|
122
|
-
|
|
123
|
-
## Directory Layout
|
|
124
|
-
|
|
125
|
-
```
|
|
126
|
-
gsd-core/
|
|
127
|
-
├── bin/ # Executable entry points
|
|
128
|
-
├── commands/ # Slash command definitions
|
|
129
|
-
│ └── gsd/ # GSD-specific commands
|
|
130
|
-
├── gsd-core/ # Skill resources
|
|
131
|
-
│ ├── references/ # Principle documents
|
|
132
|
-
│ ├── templates/ # File templates
|
|
133
|
-
│ └── workflows/ # Multi-step procedures
|
|
134
|
-
├── src/ # Source code (if applicable)
|
|
135
|
-
├── tests/ # Test files
|
|
136
|
-
├── package.json # Project manifest
|
|
137
|
-
└── README.md # User documentation
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
## Directory Purposes
|
|
141
|
-
|
|
142
|
-
**bin/**
|
|
143
|
-
- Purpose: CLI entry points
|
|
144
|
-
- Contains: install.js (installer script)
|
|
145
|
-
- Key files: install.js - handles npx installation
|
|
146
|
-
- Subdirectories: None
|
|
147
|
-
|
|
148
|
-
**commands/gsd/**
|
|
149
|
-
- Purpose: Slash command definitions for Claude Code
|
|
150
|
-
- Contains: *.md files (one per command)
|
|
151
|
-
- Key files: new-project.md, plan-phase.md, execute-plan.md
|
|
152
|
-
- Subdirectories: None (flat structure)
|
|
153
|
-
|
|
154
|
-
**gsd-core/references/**
|
|
155
|
-
- Purpose: Core philosophy and guidance documents
|
|
156
|
-
- Contains: principles.md, questioning.md, plan-format.md
|
|
157
|
-
- Key files: principles.md - system philosophy
|
|
158
|
-
- Subdirectories: None
|
|
159
|
-
|
|
160
|
-
**gsd-core/templates/**
|
|
161
|
-
- Purpose: Document templates for .planning/ files
|
|
162
|
-
- Contains: Template definitions with frontmatter
|
|
163
|
-
- Key files: project.md, roadmap.md, plan.md, summary.md
|
|
164
|
-
- Subdirectories: codebase/ (new - for stack/architecture/structure templates)
|
|
165
|
-
|
|
166
|
-
**gsd-core/workflows/**
|
|
167
|
-
- Purpose: Reusable multi-step procedures
|
|
168
|
-
- Contains: Workflow definitions called by commands
|
|
169
|
-
- Key files: execute-plan.md, research-phase.md
|
|
170
|
-
- Subdirectories: None
|
|
171
|
-
|
|
172
|
-
## Key File Locations
|
|
173
|
-
|
|
174
|
-
**Entry Points:**
|
|
175
|
-
- `bin/install.js` - Installation script (npx entry)
|
|
176
|
-
|
|
177
|
-
**Configuration:**
|
|
178
|
-
- `package.json` - Project metadata, dependencies, bin entry
|
|
179
|
-
- `.gitignore` - Excluded files
|
|
180
|
-
|
|
181
|
-
**Core Logic:**
|
|
182
|
-
- `bin/install.js` - All installation logic (file copying, path replacement)
|
|
183
|
-
|
|
184
|
-
**Testing:**
|
|
185
|
-
- `tests/` - Test files (if present)
|
|
186
|
-
|
|
187
|
-
**Documentation:**
|
|
188
|
-
- `README.md` - User-facing installation and usage guide
|
|
189
|
-
- `CLAUDE.md` - Instructions for Claude Code when working in this repo
|
|
190
|
-
|
|
191
|
-
## Naming Conventions
|
|
192
|
-
|
|
193
|
-
**Files:**
|
|
194
|
-
- kebab-case.md: Markdown documents
|
|
195
|
-
- kebab-case.js: JavaScript source files
|
|
196
|
-
- UPPERCASE.md: Important project files (README, CLAUDE, CHANGELOG)
|
|
197
|
-
|
|
198
|
-
**Directories:**
|
|
199
|
-
- kebab-case: All directories
|
|
200
|
-
- Plural for collections: templates/, commands/, workflows/
|
|
201
|
-
|
|
202
|
-
**Special Patterns:**
|
|
203
|
-
- {command-name}.md: Slash command definition
|
|
204
|
-
- *-template.md: Could be used but templates/ directory preferred
|
|
205
|
-
|
|
206
|
-
## Where to Add New Code
|
|
207
|
-
|
|
208
|
-
**New Slash Command:**
|
|
209
|
-
- Primary code: `commands/gsd/{command-name}.md`
|
|
210
|
-
- Tests: `tests/commands/{command-name}.test.js` (if testing implemented)
|
|
211
|
-
- Documentation: Update `README.md` with new command
|
|
212
|
-
|
|
213
|
-
**New Template:**
|
|
214
|
-
- Implementation: `gsd-core/templates/{name}.md`
|
|
215
|
-
- Documentation: Template is self-documenting (includes guidelines)
|
|
216
|
-
|
|
217
|
-
**New Workflow:**
|
|
218
|
-
- Implementation: `gsd-core/workflows/{name}.md`
|
|
219
|
-
- Usage: Reference from command with `@~/.claude/gsd-core/workflows/{name}.md`
|
|
220
|
-
|
|
221
|
-
**New Reference Document:**
|
|
222
|
-
- Implementation: `gsd-core/references/{name}.md`
|
|
223
|
-
- Usage: Reference from commands/workflows as needed
|
|
224
|
-
|
|
225
|
-
**Utilities:**
|
|
226
|
-
- No utilities yet (`install.js` is monolithic)
|
|
227
|
-
- If extracted: `src/utils/`
|
|
228
|
-
|
|
229
|
-
## Special Directories
|
|
230
|
-
|
|
231
|
-
**gsd-core/**
|
|
232
|
-
- Purpose: Resources installed to ~/.claude/
|
|
233
|
-
- Source: Copied by bin/install.js during installation
|
|
234
|
-
- Committed: Yes (source of truth)
|
|
235
|
-
|
|
236
|
-
**commands/**
|
|
237
|
-
- Purpose: Slash commands installed to ~/.claude/commands/
|
|
238
|
-
- Source: Copied by bin/install.js during installation
|
|
239
|
-
- Committed: Yes (source of truth)
|
|
240
|
-
|
|
241
|
-
---
|
|
242
|
-
|
|
243
|
-
*Structure analysis: 2025-01-20*
|
|
244
|
-
*Update when directory structure changes*
|
|
245
|
-
```
|
|
246
|
-
</good_examples>
|
|
247
|
-
|
|
248
|
-
<guidelines>
|
|
249
|
-
**What belongs in STRUCTURE.md:**
|
|
250
|
-
- Directory layout (ASCII box-drawing tree for structure visualization)
|
|
251
|
-
- Purpose of each directory
|
|
252
|
-
- Key file locations (entry points, configs, core logic)
|
|
253
|
-
- Naming conventions
|
|
254
|
-
- Where to add new code (by type)
|
|
255
|
-
- Special/generated directories
|
|
256
|
-
|
|
257
|
-
**What does NOT belong here:**
|
|
258
|
-
- Conceptual architecture (that's ARCHITECTURE.md)
|
|
259
|
-
- Technology stack (that's STACK.md)
|
|
260
|
-
- Code implementation details (defer to code reading)
|
|
261
|
-
- Every single file (focus on directories and key files)
|
|
262
|
-
|
|
263
|
-
**When filling this template:**
|
|
264
|
-
- Use `tree -L 2` or similar to visualize structure
|
|
265
|
-
- Identify top-level directories and their purposes
|
|
266
|
-
- Note naming patterns by observing existing files
|
|
267
|
-
- Locate entry points, configs, and main logic areas
|
|
268
|
-
- Keep directory tree concise (max 2-3 levels)
|
|
269
|
-
|
|
270
|
-
**Tree format (ASCII box-drawing characters for structure only):**
|
|
271
|
-
```
|
|
272
|
-
root/
|
|
273
|
-
├── dir1/ # Purpose
|
|
274
|
-
│ ├── subdir/ # Purpose
|
|
275
|
-
│ └── file.ts # Purpose
|
|
276
|
-
├── dir2/ # Purpose
|
|
277
|
-
└── file.ts # Purpose
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
**Useful for phase planning when:**
|
|
281
|
-
- Adding new features (where should files go?)
|
|
282
|
-
- Understanding project organization
|
|
283
|
-
- Finding where specific logic lives
|
|
284
|
-
- Following existing conventions
|
|
285
|
-
</guidelines>
|