@tgoodington/intuition 11.0.1 → 11.1.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/package.json +1 -1
- package/scripts/install-skills.js +1 -0
- package/skills/intuition-enuncia-compose/SKILL.md +14 -14
- package/skills/intuition-enuncia-design/SKILL.md +35 -58
- package/skills/intuition-enuncia-execute/SKILL.md +41 -20
- package/skills/intuition-enuncia-initialize/SKILL.md +251 -0
- package/skills/intuition-enuncia-initialize/references/bugs_template.md +41 -0
- package/skills/intuition-enuncia-initialize/references/claude_template.md +33 -0
- package/skills/intuition-enuncia-initialize/references/decisions_template.md +92 -0
- package/skills/intuition-enuncia-initialize/references/intuition_readme_template.md +50 -0
- package/skills/intuition-enuncia-initialize/references/issues_template.md +76 -0
- package/skills/intuition-enuncia-initialize/references/key_facts_template.md +158 -0
- package/skills/intuition-enuncia-initialize/references/project_map_template.md +17 -0
- package/skills/intuition-enuncia-initialize/references/settings_template.json +19 -0
- package/skills/intuition-enuncia-initialize/references/state_template.json +39 -0
- package/skills/intuition-enuncia-initialize/references/user_profile_template.json +70 -0
- package/skills/intuition-enuncia-start/SKILL.md +1 -1
- package/skills/intuition-enuncia-verify/SKILL.md +10 -12
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Bug Log Template
|
|
2
|
+
|
|
3
|
+
This file demonstrates the format for logging bugs and their solutions. Keep entries brief and chronological.
|
|
4
|
+
|
|
5
|
+
## Format
|
|
6
|
+
|
|
7
|
+
Each bug entry should include:
|
|
8
|
+
- Date (YYYY-MM-DD)
|
|
9
|
+
- Brief description of the bug/issue
|
|
10
|
+
- Solution or fix applied
|
|
11
|
+
- Any prevention notes (optional)
|
|
12
|
+
|
|
13
|
+
Use bullet lists for simplicity. Older entries can be manually removed when they become irrelevant.
|
|
14
|
+
|
|
15
|
+
## Example Entries
|
|
16
|
+
|
|
17
|
+
### 2025-01-15 - Docker Architecture Mismatch
|
|
18
|
+
- **Issue**: Container failing to start with "exec format error"
|
|
19
|
+
- **Root Cause**: Built on ARM64 Mac but deploying to AMD64 Cloud Run
|
|
20
|
+
- **Solution**: Added `--platform linux/amd64` to docker build command
|
|
21
|
+
- **Prevention**: Always specify platform in Dockerfile and build scripts
|
|
22
|
+
|
|
23
|
+
### 2025-01-20 - Cloud Scheduler HTTPS Requirement
|
|
24
|
+
- **Issue**: Cloud Scheduler jobs failing with "URL must use HTTPS"
|
|
25
|
+
- **Root Cause**: Forgot Cloud Run URLs require HTTPS by default
|
|
26
|
+
- **Solution**: Updated all scheduler job URLs from http:// to https://
|
|
27
|
+
- **Prevention**: Remember GCP services enforce HTTPS; check URLs in infrastructure code
|
|
28
|
+
|
|
29
|
+
### 2025-01-22 - Database Connection Pool Exhaustion
|
|
30
|
+
- **Issue**: API returning 500 errors under load
|
|
31
|
+
- **Root Cause**: Connection pool size too small (default 5)
|
|
32
|
+
- **Solution**: Increased pool_size to 20 and max_overflow to 10 in SQLAlchemy config
|
|
33
|
+
- **Prevention**: Load test APIs before production deployment
|
|
34
|
+
|
|
35
|
+
## Tips
|
|
36
|
+
|
|
37
|
+
- Keep descriptions under 2-3 lines
|
|
38
|
+
- Focus on what was learned, not exhaustive details
|
|
39
|
+
- Include enough context for future reference
|
|
40
|
+
- Date entries so you know how recent the issue is
|
|
41
|
+
- Periodically clean out very old entries (6+ months)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
## Project Workflow and Memory System
|
|
2
|
+
|
|
3
|
+
This project uses the Enuncia pipeline (`@tgoodington/intuition`). Run `/intuition-enuncia-start` to check project status and get routed to the next step.
|
|
4
|
+
|
|
5
|
+
### Memory Files
|
|
6
|
+
|
|
7
|
+
Project memory is maintained in `docs/project_notes/` for consistency across sessions:
|
|
8
|
+
|
|
9
|
+
- **bugs.md** — Bug log with dates, solutions, and prevention notes
|
|
10
|
+
- **decisions.md** — Architectural Decision Records (ADRs) with context and trade-offs
|
|
11
|
+
- **key_facts.md** — Project configuration, credentials, ports, important URLs
|
|
12
|
+
- **issues.md** — Work log with ticket IDs, descriptions, and URLs
|
|
13
|
+
- **project_map.md** — Living architecture document, updated as the project evolves
|
|
14
|
+
|
|
15
|
+
### Memory-Aware Protocols
|
|
16
|
+
|
|
17
|
+
**Before proposing architectural changes:**
|
|
18
|
+
- Check `docs/project_notes/decisions.md` for existing decisions
|
|
19
|
+
- Verify the proposed approach doesn't conflict with past choices
|
|
20
|
+
- If it does conflict, acknowledge the existing decision and explain why a change is warranted
|
|
21
|
+
|
|
22
|
+
**When encountering errors or bugs:**
|
|
23
|
+
- Search `docs/project_notes/bugs.md` for similar issues
|
|
24
|
+
- Apply known solutions if found
|
|
25
|
+
- Document new bugs and solutions when resolved
|
|
26
|
+
|
|
27
|
+
**When looking up project configuration:**
|
|
28
|
+
- Check `docs/project_notes/key_facts.md` for credentials, ports, URLs, service accounts
|
|
29
|
+
- Prefer documented facts over assumptions
|
|
30
|
+
|
|
31
|
+
**When completing work on tickets:**
|
|
32
|
+
- Log completed work in `docs/project_notes/issues.md`
|
|
33
|
+
- Include ticket ID, date, brief description, and URL
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Architectural Decisions Template
|
|
2
|
+
|
|
3
|
+
This file demonstrates the format for logging architectural decisions (ADRs). Use bullet lists for clarity.
|
|
4
|
+
|
|
5
|
+
## Format
|
|
6
|
+
|
|
7
|
+
Each decision should include:
|
|
8
|
+
- Date and ADR number
|
|
9
|
+
- Context (why the decision was needed)
|
|
10
|
+
- Decision (what was chosen)
|
|
11
|
+
- Alternatives considered
|
|
12
|
+
- Consequences (trade-offs, implications)
|
|
13
|
+
|
|
14
|
+
## Example Entries
|
|
15
|
+
|
|
16
|
+
### ADR-001: Use Workload Identity Federation for GitHub Actions (2025-01-10)
|
|
17
|
+
|
|
18
|
+
**Context:**
|
|
19
|
+
- Need secure authentication from GitHub Actions to GCP
|
|
20
|
+
- Service account keys are deprecated and considered insecure
|
|
21
|
+
- Want to avoid managing long-lived credentials
|
|
22
|
+
|
|
23
|
+
**Decision:**
|
|
24
|
+
- Use Workload Identity Federation (WIF) for GitHub Actions authentication
|
|
25
|
+
- Configure via `WIF_PROVIDER` and `WIF_SERVICE_ACCOUNT` secrets
|
|
26
|
+
|
|
27
|
+
**Alternatives Considered:**
|
|
28
|
+
- Service account JSON keys → Rejected: security risk, manual rotation required
|
|
29
|
+
- Environment-specific credentials → Rejected: harder to manage across repos
|
|
30
|
+
|
|
31
|
+
**Consequences:**
|
|
32
|
+
- ✅ More secure (no long-lived credentials)
|
|
33
|
+
- ✅ Automatic credential rotation
|
|
34
|
+
- ✅ Better audit trail
|
|
35
|
+
- ❌ Slightly more complex initial setup
|
|
36
|
+
- ❌ Requires GitHub OIDC support
|
|
37
|
+
|
|
38
|
+
### ADR-002: Use Alembic for Database Migrations (2025-01-12)
|
|
39
|
+
|
|
40
|
+
**Context:**
|
|
41
|
+
- Need version control for database schema changes
|
|
42
|
+
- Multiple developers working on database schema
|
|
43
|
+
- Want to avoid manual SQL scripts and migration conflicts
|
|
44
|
+
|
|
45
|
+
**Decision:**
|
|
46
|
+
- Use Alembic as the database migration tool
|
|
47
|
+
- Store migrations in `alembic/versions/` directory
|
|
48
|
+
- Use auto-generate feature for model changes
|
|
49
|
+
|
|
50
|
+
**Alternatives Considered:**
|
|
51
|
+
- Raw SQL scripts → Rejected: no versioning, error-prone
|
|
52
|
+
- Flask-Migrate → Rejected: too tied to Flask framework
|
|
53
|
+
- Django migrations → Rejected: using FastAPI, not Django
|
|
54
|
+
|
|
55
|
+
**Consequences:**
|
|
56
|
+
- ✅ Version-controlled schema changes
|
|
57
|
+
- ✅ Automatic migration generation from models
|
|
58
|
+
- ✅ Easy rollback capability
|
|
59
|
+
- ❌ Learning curve for team
|
|
60
|
+
- ❌ Must remember to generate migrations after model changes
|
|
61
|
+
|
|
62
|
+
### ADR-003: Use AlloyDB Instead of Cloud SQL (2025-01-15)
|
|
63
|
+
|
|
64
|
+
**Context:**
|
|
65
|
+
- Need PostgreSQL-compatible database in GCP
|
|
66
|
+
- Require high availability and automatic backups
|
|
67
|
+
- Performance-critical application with complex queries
|
|
68
|
+
|
|
69
|
+
**Decision:**
|
|
70
|
+
- Use AlloyDB for PostgreSQL instead of Cloud SQL
|
|
71
|
+
- Configure with automated backups and point-in-time recovery
|
|
72
|
+
|
|
73
|
+
**Alternatives Considered:**
|
|
74
|
+
- Cloud SQL PostgreSQL → Rejected: slower query performance
|
|
75
|
+
- Self-managed PostgreSQL on GCE → Rejected: high operational overhead
|
|
76
|
+
- Firestore → Rejected: need relational data model and SQL
|
|
77
|
+
|
|
78
|
+
**Consequences:**
|
|
79
|
+
- ✅ Better query performance (2-4x faster than Cloud SQL)
|
|
80
|
+
- ✅ PostgreSQL compatibility
|
|
81
|
+
- ✅ Managed service (automated backups, HA)
|
|
82
|
+
- ❌ Higher cost than Cloud SQL
|
|
83
|
+
- ❌ Newer service, less community documentation
|
|
84
|
+
|
|
85
|
+
## Tips
|
|
86
|
+
|
|
87
|
+
- Number decisions sequentially (ADR-001, ADR-002, etc.)
|
|
88
|
+
- Always include date for context
|
|
89
|
+
- Be honest about trade-offs (use ✅ and ❌)
|
|
90
|
+
- Keep alternatives brief but clear
|
|
91
|
+
- Update decisions if they're revisited/changed
|
|
92
|
+
- Focus on "why" not "how" (implementation details go elsewhere)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Intuition (Enuncia Pipeline)
|
|
2
|
+
|
|
3
|
+
A discovery-driven workflow system for Claude Code. Transforms project visions into structured deliverables through foundational discovery, experience-slice decomposition, technical design, and verified implementation.
|
|
4
|
+
|
|
5
|
+
## Workflow
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
/intuition-enuncia-discovery → /intuition-enuncia-compose → /intuition-enuncia-design →
|
|
9
|
+
/intuition-enuncia-execute → /intuition-enuncia-verify → complete
|
|
10
|
+
↓
|
|
11
|
+
/intuition-enuncia-start → create branch or /intuition-debugger
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Run `/clear` before each phase skill to keep context clean.
|
|
15
|
+
|
|
16
|
+
The first cycle is the **trunk**. After trunk completes, create **branches** for new features or changes.
|
|
17
|
+
|
|
18
|
+
## Skills
|
|
19
|
+
|
|
20
|
+
| Skill | What it does |
|
|
21
|
+
|-------|-------------|
|
|
22
|
+
| `/intuition-enuncia-start` | Detects where you left off, routes to next step |
|
|
23
|
+
| `/intuition-enuncia-discovery` | Foundational project discovery — Who, Where, What, Why |
|
|
24
|
+
| `/intuition-enuncia-compose` | Maps experience slices, decomposes into buildable tasks |
|
|
25
|
+
| `/intuition-enuncia-design` | Technical design — enriches tasks with specs, updates project map |
|
|
26
|
+
| `/intuition-enuncia-execute` | Delegates production to subagents, verifies outputs |
|
|
27
|
+
| `/intuition-enuncia-verify` | Wires code into project, runs toolchain and tests |
|
|
28
|
+
| `/intuition-enuncia-handoff` | Branch creation and context management |
|
|
29
|
+
| `/intuition-initialize` | Sets up project memory (you already ran this) |
|
|
30
|
+
| `/intuition-meander` | Thought partner — reason through problems collaboratively |
|
|
31
|
+
| `/intuition-think-tank` | Rapid expert-panel analysis |
|
|
32
|
+
| `/intuition-debugger` | Expert diagnostic and resolution service |
|
|
33
|
+
|
|
34
|
+
## Quick Start
|
|
35
|
+
|
|
36
|
+
### First cycle (trunk)
|
|
37
|
+
|
|
38
|
+
1. `/intuition-enuncia-start` — see where you are
|
|
39
|
+
2. `/intuition-enuncia-discovery` — articulate what you're building and why
|
|
40
|
+
3. `/intuition-enuncia-compose` — decompose into experience slices and tasks
|
|
41
|
+
4. `/intuition-enuncia-design` — technical design for each task group
|
|
42
|
+
5. `/intuition-enuncia-execute` — build from specs
|
|
43
|
+
6. `/intuition-enuncia-verify` — wire in, test, prove it works (code projects)
|
|
44
|
+
|
|
45
|
+
Run `/clear` before each phase skill.
|
|
46
|
+
|
|
47
|
+
### After trunk completes
|
|
48
|
+
|
|
49
|
+
- `/intuition-enuncia-start` — see project status, create a branch, or start fresh
|
|
50
|
+
- `/intuition-debugger` — investigate hard problems
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Issues/Work Log Template
|
|
2
|
+
|
|
3
|
+
This file demonstrates the format for logging work completed on tickets. Keep it simple - just enough to remember what was done. Full details live in Jira/GitHub.
|
|
4
|
+
|
|
5
|
+
## Format
|
|
6
|
+
|
|
7
|
+
Each entry should include:
|
|
8
|
+
- Date (YYYY-MM-DD)
|
|
9
|
+
- Ticket ID
|
|
10
|
+
- Brief description (1-2 lines)
|
|
11
|
+
- URL to ticket (if available)
|
|
12
|
+
- Status (optional: completed, in-progress, blocked)
|
|
13
|
+
|
|
14
|
+
Use bullet lists for simplicity. This is NOT a replacement for your ticket system - it's a quick reference log.
|
|
15
|
+
|
|
16
|
+
## Example Entries
|
|
17
|
+
|
|
18
|
+
### 2025-01-15 - PROJ-123: Implement Contact API
|
|
19
|
+
- **Status**: Completed
|
|
20
|
+
- **Description**: Created FastAPI endpoints for contact CRUD operations with validation
|
|
21
|
+
- **URL**: https://jira.company.com/browse/PROJ-123
|
|
22
|
+
- **Notes**: Added unit tests, coverage at 85%
|
|
23
|
+
|
|
24
|
+
### 2025-01-16 - PROJ-124: Fix Docker Build Issues
|
|
25
|
+
- **Status**: Completed
|
|
26
|
+
- **Description**: Fixed architecture mismatch for Cloud Run deployment
|
|
27
|
+
- **URL**: https://jira.company.com/browse/PROJ-124
|
|
28
|
+
- **Notes**: See bugs.md for details on the fix
|
|
29
|
+
|
|
30
|
+
### 2025-01-18 - PROJ-125: Database Migration to AlloyDB
|
|
31
|
+
- **Status**: Completed
|
|
32
|
+
- **Description**: Migrated from Cloud SQL to AlloyDB with Pulumi infrastructure code
|
|
33
|
+
- **URL**: https://jira.company.com/browse/PROJ-125
|
|
34
|
+
- **Notes**: Multi-phase migration completed over 3 days
|
|
35
|
+
|
|
36
|
+
### 2025-01-20 - GH-45: Add OAuth2 Authentication
|
|
37
|
+
- **Status**: In Progress
|
|
38
|
+
- **Description**: Implementing OAuth2 flow with Google provider
|
|
39
|
+
- **URL**: https://github.com/company/repo/issues/45
|
|
40
|
+
- **Notes**: Backend complete, frontend integration pending
|
|
41
|
+
|
|
42
|
+
### 2025-01-22 - PROJ-130: Performance Optimization
|
|
43
|
+
- **Status**: Blocked
|
|
44
|
+
- **Description**: Optimize slow queries in contact search endpoint
|
|
45
|
+
- **URL**: https://jira.company.com/browse/PROJ-130
|
|
46
|
+
- **Notes**: Waiting for DBA review of proposed indexes
|
|
47
|
+
|
|
48
|
+
## Alternative Format (Grouped by Week)
|
|
49
|
+
|
|
50
|
+
### Week of 2025-01-15
|
|
51
|
+
|
|
52
|
+
**Completed:**
|
|
53
|
+
- PROJ-123: Contact API implementation → https://jira.company.com/browse/PROJ-123
|
|
54
|
+
- PROJ-124: Docker build fix → https://jira.company.com/browse/PROJ-124
|
|
55
|
+
|
|
56
|
+
**In Progress:**
|
|
57
|
+
- PROJ-125: AlloyDB migration (phase 2 of 3)
|
|
58
|
+
|
|
59
|
+
### Week of 2025-01-22
|
|
60
|
+
|
|
61
|
+
**Completed:**
|
|
62
|
+
- PROJ-125: AlloyDB migration completed → https://jira.company.com/browse/PROJ-125
|
|
63
|
+
- GH-45: OAuth2 backend done → https://github.com/company/repo/issues/45
|
|
64
|
+
|
|
65
|
+
**Blocked:**
|
|
66
|
+
- PROJ-130: Query optimization (waiting on DBA) → https://jira.company.com/browse/PROJ-130
|
|
67
|
+
|
|
68
|
+
## Tips
|
|
69
|
+
|
|
70
|
+
- Keep descriptions brief (1-2 lines max)
|
|
71
|
+
- Always include ticket URL for easy reference
|
|
72
|
+
- Update status if work gets blocked or resumed
|
|
73
|
+
- Optional: Group by week or sprint for better organization
|
|
74
|
+
- Don't duplicate ticket details - link to source of truth
|
|
75
|
+
- Clean out very old entries periodically (3+ months)
|
|
76
|
+
- Include both Jira and GitHub tickets as appropriate
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Key Facts Template
|
|
2
|
+
|
|
3
|
+
This file demonstrates the format for storing project constants, configuration, and frequently-needed **non-sensitive** information. Organize by category using bullet lists.
|
|
4
|
+
|
|
5
|
+
## ⚠️ SECURITY WARNING: What NOT to Store Here
|
|
6
|
+
|
|
7
|
+
**NEVER store passwords, API keys, or sensitive credentials in this file.** This file is typically committed to version control and should only contain non-sensitive reference information.
|
|
8
|
+
|
|
9
|
+
**❌ NEVER store:**
|
|
10
|
+
- Passwords or passphrases
|
|
11
|
+
- API keys or authentication tokens
|
|
12
|
+
- Service account JSON keys or credentials
|
|
13
|
+
- Database passwords
|
|
14
|
+
- OAuth client secrets
|
|
15
|
+
- Private keys or certificates
|
|
16
|
+
- Session tokens
|
|
17
|
+
- Any secret values from environment variables
|
|
18
|
+
|
|
19
|
+
**✅ SAFE to store:**
|
|
20
|
+
- Database hostnames, ports, and cluster names
|
|
21
|
+
- Client names and project identifiers
|
|
22
|
+
- JIRA project keys and Confluence space names
|
|
23
|
+
- AWS/GCP account names and profile names
|
|
24
|
+
- API endpoint URLs (public URLs only)
|
|
25
|
+
- Service account email addresses (not the keys!)
|
|
26
|
+
- GCP project IDs and region names
|
|
27
|
+
- Docker registry names
|
|
28
|
+
- Environment names and deployment targets
|
|
29
|
+
|
|
30
|
+
**Where to store secrets:**
|
|
31
|
+
- `.env` files (excluded via `.gitignore`)
|
|
32
|
+
- Password managers (1Password, LastPass, Bitwarden)
|
|
33
|
+
- Secrets managers (AWS Secrets Manager, GCP Secret Manager, HashiCorp Vault)
|
|
34
|
+
- CI/CD environment variables (GitHub Secrets, GitLab Variables)
|
|
35
|
+
- Platform credential stores (Kubernetes Secrets, Cloud Run)
|
|
36
|
+
|
|
37
|
+
## Format
|
|
38
|
+
|
|
39
|
+
Organize information into logical categories:
|
|
40
|
+
- GCP/Cloud configuration
|
|
41
|
+
- Database connection details (hostnames, ports, cluster names)
|
|
42
|
+
- API endpoints (URLs only, not credentials)
|
|
43
|
+
- Local development setup (ports, service names)
|
|
44
|
+
- Important URLs
|
|
45
|
+
- Service accounts and permissions (emails and roles, not keys)
|
|
46
|
+
|
|
47
|
+
Use bullet lists for simplicity and easy scanning.
|
|
48
|
+
|
|
49
|
+
## Example Structure
|
|
50
|
+
|
|
51
|
+
### GCP Project Information
|
|
52
|
+
|
|
53
|
+
**Current Project:**
|
|
54
|
+
- Project ID: `my-company-prod`
|
|
55
|
+
- Project Number: `123456789012`
|
|
56
|
+
- Region: `us-central1`
|
|
57
|
+
- Zone: `us-central1-a`
|
|
58
|
+
|
|
59
|
+
**Old Project (Deprecated):**
|
|
60
|
+
- Project ID: `my-company-dev-old`
|
|
61
|
+
- Migration Date: 2025-01-10
|
|
62
|
+
- Status: Archived, do not use
|
|
63
|
+
|
|
64
|
+
### Database Configuration
|
|
65
|
+
|
|
66
|
+
**AlloyDB Cluster:**
|
|
67
|
+
- Cluster Name: `prod-cluster`
|
|
68
|
+
- Instance Name: `prod-primary`
|
|
69
|
+
- Region: `us-central1`
|
|
70
|
+
- Private IP: `10.0.0.5`
|
|
71
|
+
- Port: `5432`
|
|
72
|
+
- Database Name: `contacts`
|
|
73
|
+
|
|
74
|
+
**Connection:**
|
|
75
|
+
- Use AlloyDB Auth Proxy for local development
|
|
76
|
+
- Proxy command: `./alloydb-auth-proxy "projects/my-company-prod/locations/us-central1/clusters/prod-cluster/instances/prod-primary"`
|
|
77
|
+
- Local port: `5432`
|
|
78
|
+
|
|
79
|
+
**Authentication:**
|
|
80
|
+
- Service Account (email only): `alloydb-client@my-company-prod.iam.gserviceaccount.com`
|
|
81
|
+
- Service Account Key: Stored in `.env` as `GOOGLE_APPLICATION_CREDENTIALS` (not in git!)
|
|
82
|
+
- Connection String Template: `postgresql://user:${DB_PASSWORD}@localhost:5432/contacts`
|
|
83
|
+
- Password Location: Stored in `.env` file (excluded via `.gitignore`)
|
|
84
|
+
|
|
85
|
+
### API Configuration
|
|
86
|
+
|
|
87
|
+
**Backend API:**
|
|
88
|
+
- Production URL: `https://api.mycompany.com`
|
|
89
|
+
- Staging URL: `https://api-staging.mycompany.com`
|
|
90
|
+
- Local Development: `http://localhost:8000`
|
|
91
|
+
|
|
92
|
+
**Authentication:**
|
|
93
|
+
- OAuth Client ID (public): `123456789-abcdefg.apps.googleusercontent.com`
|
|
94
|
+
- OAuth Client Secret: Stored in GCP Secret Manager as `oauth-client-secret` (not in git!)
|
|
95
|
+
- Local Development Secret: Stored in `.env` as `OAUTH_CLIENT_SECRET` (not in git!)
|
|
96
|
+
- Scopes: `openid email profile`
|
|
97
|
+
|
|
98
|
+
### Local Development Ports
|
|
99
|
+
|
|
100
|
+
**Services:**
|
|
101
|
+
- Backend API: `8000`
|
|
102
|
+
- Frontend: `3000`
|
|
103
|
+
- AlloyDB Proxy: `5432`
|
|
104
|
+
- Redis: `6379`
|
|
105
|
+
- Prometheus: `9090`
|
|
106
|
+
|
|
107
|
+
### Service Accounts
|
|
108
|
+
|
|
109
|
+
**GitHub Actions:**
|
|
110
|
+
- Service Account: `github-actions@my-company-prod.iam.gserviceaccount.com`
|
|
111
|
+
- Roles: `roles/run.admin`, `roles/secretmanager.secretAccessor`
|
|
112
|
+
- WIF Pool: `projects/123456789012/locations/global/workloadIdentityPools/github-pool`
|
|
113
|
+
|
|
114
|
+
**Cloud Run Service:**
|
|
115
|
+
- Service Account: `cloud-run-sa@my-company-prod.iam.gserviceaccount.com`
|
|
116
|
+
- Roles: `roles/alloydb.client`, `roles/secretmanager.secretAccessor`
|
|
117
|
+
|
|
118
|
+
### Important URLs
|
|
119
|
+
|
|
120
|
+
**Documentation:**
|
|
121
|
+
- API Docs: `https://docs.mycompany.com/api`
|
|
122
|
+
- Internal Wiki: `https://wiki.mycompany.com`
|
|
123
|
+
- Runbook: `https://wiki.mycompany.com/runbook`
|
|
124
|
+
|
|
125
|
+
**Monitoring:**
|
|
126
|
+
- Cloud Console: `https://console.cloud.google.com/home/dashboard?project=my-company-prod`
|
|
127
|
+
- Logs: `https://console.cloud.google.com/logs?project=my-company-prod`
|
|
128
|
+
- Monitoring: `https://console.cloud.google.com/monitoring?project=my-company-prod`
|
|
129
|
+
|
|
130
|
+
**Deployment:**
|
|
131
|
+
- Cloud Run Service: `https://console.cloud.google.com/run?project=my-company-prod`
|
|
132
|
+
- Cloud Build: `https://console.cloud.google.com/cloud-build?project=my-company-prod`
|
|
133
|
+
- Artifact Registry: `https://console.cloud.google.com/artifacts?project=my-company-prod`
|
|
134
|
+
|
|
135
|
+
### Infrastructure as Code
|
|
136
|
+
|
|
137
|
+
**Pulumi:**
|
|
138
|
+
- Stack: `prod`
|
|
139
|
+
- Backend: `gs://my-company-pulumi-state`
|
|
140
|
+
- Config Passphrase: Stored in team password manager (1Password vault: "Infrastructure")
|
|
141
|
+
- State: Stored in GCS bucket with versioning enabled
|
|
142
|
+
- Note: Never commit `Pulumi.prod.yaml` with unencrypted secrets
|
|
143
|
+
|
|
144
|
+
**Configuration:**
|
|
145
|
+
- Cloud Run Image: `us-central1-docker.pkg.dev/my-company-prod/app/backend:latest`
|
|
146
|
+
- VPC Connector: `prod-vpc-connector`
|
|
147
|
+
- Max Instances: `10`
|
|
148
|
+
- Min Instances: `1`
|
|
149
|
+
|
|
150
|
+
## Tips
|
|
151
|
+
|
|
152
|
+
- Keep entries current (update when things change)
|
|
153
|
+
- Remove deprecated information after migration is complete
|
|
154
|
+
- Include both production and development details
|
|
155
|
+
- Add URLs to make navigation easier
|
|
156
|
+
- Use consistent formatting (same structure for similar items)
|
|
157
|
+
- Group related information together
|
|
158
|
+
- Mark deprecated items clearly with dates
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Project Map
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
[Filled by compose — what this project is, who it's for, how it's delivered]
|
|
5
|
+
|
|
6
|
+
## Components
|
|
7
|
+
[Filled by compose — components identified during task decomposition]
|
|
8
|
+
|
|
9
|
+
## Component Interactions
|
|
10
|
+
[Filled by compose — how components connect]
|
|
11
|
+
|
|
12
|
+
## What Exists vs What's New
|
|
13
|
+
[Filled by compose — existing, new, and modified items]
|
|
14
|
+
|
|
15
|
+
## Map History
|
|
16
|
+
| Date | Phase | Change | Reason |
|
|
17
|
+
|------|-------|--------|--------|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"WebSearch",
|
|
5
|
+
"WebFetch",
|
|
6
|
+
"Task",
|
|
7
|
+
"Read",
|
|
8
|
+
"Glob",
|
|
9
|
+
"Grep",
|
|
10
|
+
"Bash(grep:*)",
|
|
11
|
+
"Bash(git status)",
|
|
12
|
+
"Bash(git diff:*)",
|
|
13
|
+
"Bash(git add:*)",
|
|
14
|
+
"Bash(git commit:*)",
|
|
15
|
+
"Bash(git push:*)",
|
|
16
|
+
"Bash(git log:*)"
|
|
17
|
+
]
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"initialized": true,
|
|
3
|
+
"version": "11.0",
|
|
4
|
+
"pipeline": "enuncia",
|
|
5
|
+
"active_context": "trunk",
|
|
6
|
+
"trunk": {
|
|
7
|
+
"status": "none",
|
|
8
|
+
"workflow": {
|
|
9
|
+
"discovery": {
|
|
10
|
+
"started": false,
|
|
11
|
+
"completed": false,
|
|
12
|
+
"completed_at": null
|
|
13
|
+
},
|
|
14
|
+
"compose": {
|
|
15
|
+
"started": false,
|
|
16
|
+
"completed": false,
|
|
17
|
+
"completed_at": null
|
|
18
|
+
},
|
|
19
|
+
"design": {
|
|
20
|
+
"started": false,
|
|
21
|
+
"completed": false,
|
|
22
|
+
"completed_at": null
|
|
23
|
+
},
|
|
24
|
+
"execute": {
|
|
25
|
+
"started": false,
|
|
26
|
+
"completed": false,
|
|
27
|
+
"completed_at": null
|
|
28
|
+
},
|
|
29
|
+
"verify": {
|
|
30
|
+
"started": false,
|
|
31
|
+
"completed": false,
|
|
32
|
+
"completed_at": null
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"branches": {},
|
|
37
|
+
"last_handoff": null,
|
|
38
|
+
"last_handoff_transition": null
|
|
39
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "This file is created in .claude/USER_PROFILE.json and persists across all projects for this user. It captures personal/professional context that follows the user, not project-specific information. Agents naturally discover and update this through conversation. This is NOT project memory—it's user memory.",
|
|
3
|
+
|
|
4
|
+
"user": {
|
|
5
|
+
"name": null,
|
|
6
|
+
"role": null,
|
|
7
|
+
"seniority_level": null,
|
|
8
|
+
"years_experience": null,
|
|
9
|
+
"organization": {
|
|
10
|
+
"name": null,
|
|
11
|
+
"type": null,
|
|
12
|
+
"industry": null,
|
|
13
|
+
"location": null
|
|
14
|
+
},
|
|
15
|
+
"reports_to": null,
|
|
16
|
+
"discovery_notes": []
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
"expertise": {
|
|
20
|
+
"primary_skills": [],
|
|
21
|
+
"expertise_areas": [],
|
|
22
|
+
"learning_style": null,
|
|
23
|
+
"learning_goals": []
|
|
24
|
+
},
|
|
25
|
+
|
|
26
|
+
"communication": {
|
|
27
|
+
"style": null,
|
|
28
|
+
"pace": null,
|
|
29
|
+
"detail_level": null,
|
|
30
|
+
"decision_making": null
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
"constraints": {
|
|
34
|
+
"authority_level": null,
|
|
35
|
+
"typical_availability": null,
|
|
36
|
+
"team_size": null,
|
|
37
|
+
"time_zone": null,
|
|
38
|
+
"technical_environment": {
|
|
39
|
+
"cloud_providers": [],
|
|
40
|
+
"preferred_databases": [],
|
|
41
|
+
"deployment_patterns": []
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
"motivation": {
|
|
46
|
+
"primary_drives": [],
|
|
47
|
+
"cares_about": [],
|
|
48
|
+
"professional_goals": []
|
|
49
|
+
},
|
|
50
|
+
|
|
51
|
+
"preferences": {
|
|
52
|
+
"tools_and_frameworks": [],
|
|
53
|
+
"methodologies": [],
|
|
54
|
+
"collaboration_tools": []
|
|
55
|
+
},
|
|
56
|
+
|
|
57
|
+
"metadata": {
|
|
58
|
+
"created_at": "2025-02-04T00:00:00Z",
|
|
59
|
+
"last_updated": null,
|
|
60
|
+
"profile_completeness": 0,
|
|
61
|
+
"source": "Discovered through agent conversations",
|
|
62
|
+
"projects_contributed_to": [],
|
|
63
|
+
"confidence_scores": {
|
|
64
|
+
"role": 0.0,
|
|
65
|
+
"expertise_areas": 0.0,
|
|
66
|
+
"communication_style": 0.0,
|
|
67
|
+
"motivation": 0.0
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -143,7 +143,7 @@ Use AskUserQuestion:
|
|
|
143
143
|
## EDGE CASES
|
|
144
144
|
|
|
145
145
|
- **State exists but active_context references missing branch**: Report inconsistency, suggest `/intuition-enuncia-handoff`.
|
|
146
|
-
- **Workflow fields missing** (partial state): Infer from files — discovery_brief.md means discovery done,
|
|
146
|
+
- **Workflow fields missing** (partial state): Infer from files — discovery_brief.md means discovery done, tasks.json without design fields means compose done, tasks.json with design fields means design done, build_output.json means execute done.
|
|
147
147
|
- **Legacy v8/v9/v10 project**: Detect by checking `state.pipeline` or absence of enuncia workflow fields. Route to `/intuition-start` for the classic pipeline.
|
|
148
148
|
|
|
149
149
|
## VOICE
|