Spaces:
Runtime error
Runtime error
Aryan Mishra
feat: initial commit - Multilingual ABSA project setup with 6 phases, 36 requirements
a6b96c2 | # User Setup Template | |
| Template for `.planning/phases/XX-name/{phase}-USER-SETUP.md` - human-required configuration that the agent cannot automate. | |
| **Purpose:** Document setup tasks that literally require human action - account creation, dashboard configuration, secret retrieval. the agent automates everything possible; this file captures only what remains. | |
| --- | |
| ## File Template | |
| ```markdown | |
| # Phase {X}: User Setup Required | |
| **Generated:** [YYYY-MM-DD] | |
| **Phase:** {phase-name} | |
| **Status:** Incomplete | |
| Complete these items for the integration to function. the agent automated everything possible; these items require human access to external dashboards/accounts. | |
| ## Environment Variables | |
| | Status | Variable | Source | Add to | | |
| |--------|----------|--------|--------| | |
| | [ ] | `ENV_VAR_NAME` | [Service Dashboard β Path β To β Value] | `.env.local` | | |
| | [ ] | `ANOTHER_VAR` | [Service Dashboard β Path β To β Value] | `.env.local` | | |
| ## Account Setup | |
| [Only if new account creation is required] | |
| - [ ] **Create [Service] account** | |
| - URL: [signup URL] | |
| - Skip if: Already have account | |
| ## Dashboard Configuration | |
| [Only if dashboard configuration is required] | |
| - [ ] **[Configuration task]** | |
| - Location: [Service Dashboard β Path β To β Setting] | |
| - Set to: [Required value or configuration] | |
| - Notes: [Any important details] | |
| ## Verification | |
| After completing setup, verify with: | |
| ```bash | |
| # [Verification commands] | |
| ``` | |
| Expected results: | |
| - [What success looks like] | |
| --- | |
| **Once all items complete:** Mark status as "Complete" at top of file. | |
| ``` | |
| --- | |
| ## When to Generate | |
| Generate `{phase}-USER-SETUP.md` when plan frontmatter contains `user_setup` field. | |
| **Trigger:** `user_setup` exists in PLAN.md frontmatter and has items. | |
| **Location:** Same directory as PLAN.md and SUMMARY.md. | |
| **Timing:** Generated during execute-plan.md after tasks complete, before SUMMARY.md creation. | |
| --- | |
| ## Frontmatter Schema | |
| In PLAN.md, `user_setup` declares human-required configuration: | |
| ```yaml | |
| user_setup: | |
| - service: stripe | |
| why: "Payment processing requires API keys" | |
| env_vars: | |
| - name: STRIPE_SECRET_KEY | |
| source: "Stripe Dashboard β Developers β API keys β Secret key" | |
| - name: STRIPE_WEBHOOK_SECRET | |
| source: "Stripe Dashboard β Developers β Webhooks β Signing secret" | |
| dashboard_config: | |
| - task: "Create webhook endpoint" | |
| location: "Stripe Dashboard β Developers β Webhooks β Add endpoint" | |
| details: "URL: https://[your-domain]/api/webhooks/stripe, Events: checkout.session.completed, customer.subscription.*" | |
| local_dev: | |
| - "Run: stripe listen --forward-to localhost:3000/api/webhooks/stripe" | |
| - "Use the webhook secret from CLI output for local testing" | |
| ``` | |
| --- | |
| ## The Automation-First Rule | |
| **USER-SETUP.md contains ONLY what the agent literally cannot do.** | |
| | the agent CAN Do (not in USER-SETUP) | the agent CANNOT Do (β USER-SETUP) | | |
| |-----------------------------------|--------------------------------| | |
| | `npm install stripe` | Create Stripe account | | |
| | Write webhook handler code | Get API keys from dashboard | | |
| | Create `.env.local` file structure | Copy actual secret values | | |
| | Run `stripe listen` | Authenticate Stripe CLI (browser OAuth) | | |
| | Configure package.json | Access external service dashboards | | |
| | Write any code | Retrieve secrets from third-party systems | | |
| **The test:** "Does this require a human in a browser, accessing an account the agent doesn't have credentials for?" | |
| - Yes β USER-SETUP.md | |
| - No β the agent does it automatically | |
| --- | |
| ## Service-Specific Examples | |
| <stripe_example> | |
| ```markdown | |
| # Phase 10: User Setup Required | |
| **Generated:** 2025-01-14 | |
| **Phase:** 10-monetization | |
| **Status:** Incomplete | |
| Complete these items for Stripe integration to function. | |
| ## Environment Variables | |
| | Status | Variable | Source | Add to | | |
| |--------|----------|--------|--------| | |
| | [ ] | `STRIPE_SECRET_KEY` | Stripe Dashboard β Developers β API keys β Secret key | `.env.local` | | |
| | [ ] | `NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY` | Stripe Dashboard β Developers β API keys β Publishable key | `.env.local` | | |
| | [ ] | `STRIPE_WEBHOOK_SECRET` | Stripe Dashboard β Developers β Webhooks β [endpoint] β Signing secret | `.env.local` | | |
| ## Account Setup | |
| - [ ] **Create Stripe account** (if needed) | |
| - URL: https://dashboard.stripe.com/register | |
| - Skip if: Already have Stripe account | |
| ## Dashboard Configuration | |
| - [ ] **Create webhook endpoint** | |
| - Location: Stripe Dashboard β Developers β Webhooks β Add endpoint | |
| - Endpoint URL: `https://[your-domain]/api/webhooks/stripe` | |
| - Events to send: | |
| - `checkout.session.completed` | |
| - `customer.subscription.created` | |
| - `customer.subscription.updated` | |
| - `customer.subscription.deleted` | |
| - [ ] **Create products and prices** (if using subscription tiers) | |
| - Location: Stripe Dashboard β Products β Add product | |
| - Create each subscription tier | |
| - Copy Price IDs to: | |
| - `STRIPE_STARTER_PRICE_ID` | |
| - `STRIPE_PRO_PRICE_ID` | |
| ## Local Development | |
| For local webhook testing: | |
| ```bash | |
| stripe listen --forward-to localhost:3000/api/webhooks/stripe | |
| ``` | |
| Use the webhook signing secret from CLI output (starts with `whsec_`). | |
| ## Verification | |
| After completing setup: | |
| ```bash | |
| # Check env vars are set | |
| grep STRIPE .env.local | |
| # Verify build passes | |
| npm run build | |
| # Test webhook endpoint (should return 400 bad signature, not 500 crash) | |
| curl -X POST http://localhost:3000/api/webhooks/stripe \ | |
| -H "Content-Type: application/json" \ | |
| -d '{}' | |
| ``` | |
| Expected: Build passes, webhook returns 400 (signature validation working). | |
| --- | |
| **Once all items complete:** Mark status as "Complete" at top of file. | |
| ``` | |
| </stripe_example> | |
| <supabase_example> | |
| ```markdown | |
| # Phase 2: User Setup Required | |
| **Generated:** 2025-01-14 | |
| **Phase:** 02-authentication | |
| **Status:** Incomplete | |
| Complete these items for Supabase Auth to function. | |
| ## Environment Variables | |
| | Status | Variable | Source | Add to | | |
| |--------|----------|--------|--------| | |
| | [ ] | `NEXT_PUBLIC_SUPABASE_URL` | Supabase Dashboard β Settings β API β Project URL | `.env.local` | | |
| | [ ] | `NEXT_PUBLIC_SUPABASE_ANON_KEY` | Supabase Dashboard β Settings β API β anon public | `.env.local` | | |
| | [ ] | `SUPABASE_SERVICE_ROLE_KEY` | Supabase Dashboard β Settings β API β service_role | `.env.local` | | |
| ## Account Setup | |
| - [ ] **Create Supabase project** | |
| - URL: https://supabase.com/dashboard/new | |
| - Skip if: Already have project for this app | |
| ## Dashboard Configuration | |
| - [ ] **Enable Email Auth** | |
| - Location: Supabase Dashboard β Authentication β Providers | |
| - Enable: Email provider | |
| - Configure: Confirm email (on/off based on preference) | |
| - [ ] **Configure OAuth providers** (if using social login) | |
| - Location: Supabase Dashboard β Authentication β Providers | |
| - For Google: Add Client ID and Secret from Google Cloud Console | |
| - For GitHub: Add Client ID and Secret from GitHub OAuth Apps | |
| ## Verification | |
| After completing setup: | |
| ```bash | |
| # Check env vars | |
| grep SUPABASE .env.local | |
| # Verify connection (run in project directory) | |
| npx supabase status | |
| ``` | |
| --- | |
| **Once all items complete:** Mark status as "Complete" at top of file. | |
| ``` | |
| </supabase_example> | |
| <sendgrid_example> | |
| ```markdown | |
| # Phase 5: User Setup Required | |
| **Generated:** 2025-01-14 | |
| **Phase:** 05-notifications | |
| **Status:** Incomplete | |
| Complete these items for SendGrid email to function. | |
| ## Environment Variables | |
| | Status | Variable | Source | Add to | | |
| |--------|----------|--------|--------| | |
| | [ ] | `SENDGRID_API_KEY` | SendGrid Dashboard β Settings β API Keys β Create API Key | `.env.local` | | |
| | [ ] | `SENDGRID_FROM_EMAIL` | Your verified sender email address | `.env.local` | | |
| ## Account Setup | |
| - [ ] **Create SendGrid account** | |
| - URL: https://signup.sendgrid.com/ | |
| - Skip if: Already have account | |
| ## Dashboard Configuration | |
| - [ ] **Verify sender identity** | |
| - Location: SendGrid Dashboard β Settings β Sender Authentication | |
| - Option 1: Single Sender Verification (quick, for dev) | |
| - Option 2: Domain Authentication (production) | |
| - [ ] **Create API Key** | |
| - Location: SendGrid Dashboard β Settings β API Keys β Create API Key | |
| - Permission: Restricted Access β Mail Send (Full Access) | |
| - Copy key immediately (shown only once) | |
| ## Verification | |
| After completing setup: | |
| ```bash | |
| # Check env var | |
| grep SENDGRID .env.local | |
| # Test email sending (replace with your test email) | |
| curl -X POST http://localhost:3000/api/test-email \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"to": "your@email.com"}' | |
| ``` | |
| --- | |
| **Once all items complete:** Mark status as "Complete" at top of file. | |
| ``` | |
| </sendgrid_example> | |
| --- | |
| ## Guidelines | |
| **Never include:** Actual secret values. Steps the agent can automate (package installs, code changes). | |
| **Naming:** `{phase}-USER-SETUP.md` matches the phase number pattern. | |
| **Status tracking:** User marks checkboxes and updates status line when complete. | |
| **Searchability:** `grep -r "USER-SETUP" .planning/` finds all phases with user requirements. | |