@tgoodington/intuition 11.0.1 → 11.2.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/producers/ui-writer/ui-writer.producer.md +116 -0
- package/scripts/install-skills.js +1 -0
- package/skills/intuition-enuncia-compose/SKILL.md +35 -15
- package/skills/intuition-enuncia-design/SKILL.md +42 -51
- package/skills/intuition-enuncia-execute/SKILL.md +42 -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,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
|
|
@@ -21,13 +21,13 @@ The discovery brief's North Star is the ultimate test: does the running system d
|
|
|
21
21
|
## CRITICAL RULES
|
|
22
22
|
|
|
23
23
|
1. You MUST read `.project-memory-state.json` and resolve context_path before anything else.
|
|
24
|
-
2. You MUST read `{context_path}/discovery_brief.md`, `{context_path}/
|
|
24
|
+
2. You MUST read `{context_path}/discovery_brief.md`, `{context_path}/tasks.json`, `{context_path}/build_output.json`, and `docs/project_notes/project_map.md`.
|
|
25
25
|
3. You MUST integrate before testing. Code that isn't wired in can't be meaningfully tested.
|
|
26
26
|
4. You MUST NOT write unit tests that test implementation internals. Tests exercise the system from the outside — smoke tests and experience-slice tests only.
|
|
27
27
|
5. You MUST NOT fix failures that violate user decisions from the specs. Escalate immediately.
|
|
28
28
|
6. You MUST delegate integration tasks and test writing to subagents. Do not write code yourself.
|
|
29
29
|
7. You MUST verify against the discovery brief after all tests pass — does the system deliver the North Star?
|
|
30
|
-
8. You MUST update `
|
|
30
|
+
8. You MUST update `docs/project_notes/project_map.md` if integration reveals new information.
|
|
31
31
|
|
|
32
32
|
## CONTEXT PATH RESOLUTION
|
|
33
33
|
|
|
@@ -58,14 +58,13 @@ Step 8: Exit
|
|
|
58
58
|
|
|
59
59
|
Read these files:
|
|
60
60
|
1. `{context_path}/discovery_brief.md` — North Star, stakeholders, constraints
|
|
61
|
-
2. `{context_path}/
|
|
61
|
+
2. `{context_path}/tasks.json` — experience slices, tasks with design enrichment, acceptance criteria
|
|
62
62
|
3. `{context_path}/build_output.json` — what was built, files created/modified, any deviations
|
|
63
|
-
4. `
|
|
64
|
-
5. `{context_path}/project_map.md` — component landscape, interactions
|
|
63
|
+
4. `docs/project_notes/project_map.md` — component landscape, interactions
|
|
65
64
|
|
|
66
65
|
From build_output.json, extract: all files created and modified, task statuses, any escalated issues or deviations.
|
|
67
66
|
|
|
68
|
-
From
|
|
67
|
+
From tasks.json, extract: experience slices (these become the basis for experience-slice tests).
|
|
69
68
|
|
|
70
69
|
### Gate Check
|
|
71
70
|
|
|
@@ -162,7 +161,7 @@ These are the highest-value tests in the system. They walk through each stakehol
|
|
|
162
161
|
|
|
163
162
|
### Deriving Tests from Experience Slices
|
|
164
163
|
|
|
165
|
-
Read `
|
|
164
|
+
Read `tasks.json` and extract the experience slices. For each slice that involves code behavior:
|
|
166
165
|
|
|
167
166
|
- **What triggers it**: The test setup
|
|
168
167
|
- **What the stakeholder does**: The test actions
|
|
@@ -185,7 +184,7 @@ Test conventions: [from existing tests]
|
|
|
185
184
|
### ES-[N]: [Title]
|
|
186
185
|
Stakeholder: [who]
|
|
187
186
|
Journey: [trigger → action → expected outcome]
|
|
188
|
-
Acceptance criteria: [from
|
|
187
|
+
Acceptance criteria: [from tasks.json]
|
|
189
188
|
|
|
190
189
|
## Rules
|
|
191
190
|
- Test the journey from the stakeholder's perspective
|
|
@@ -198,8 +197,7 @@ Acceptance criteria: [from outline.json]
|
|
|
198
197
|
|
|
199
198
|
## Spec Sources (read these for expected behavior)
|
|
200
199
|
- Discovery brief: {context_path}/discovery_brief.md
|
|
201
|
-
-
|
|
202
|
-
- Specs: {context_path}/specs/*.md
|
|
200
|
+
- Tasks: {context_path}/tasks.json
|
|
203
201
|
```
|
|
204
202
|
|
|
205
203
|
Run the experience slice tests. Classify and fix failures (Step 6).
|
|
@@ -237,7 +235,7 @@ After all tests pass, check the running system against the discovery brief:
|
|
|
237
235
|
|
|
238
236
|
If something drifts, flag it to the user: "Tests pass, but [specific concern about North Star alignment]."
|
|
239
237
|
|
|
240
|
-
**Update
|
|
238
|
+
**Update `docs/project_notes/project_map.md`** if integration or testing revealed anything new about how components connect.
|
|
241
239
|
|
|
242
240
|
## STEP 8: EXIT
|
|
243
241
|
|
|
@@ -275,7 +273,7 @@ If committing: stage files from build output + integration changes + tests, comm
|
|
|
275
273
|
When verifying on a branch:
|
|
276
274
|
- Run the FULL test suite (parent + branch tests) to catch compatibility issues
|
|
277
275
|
- Integration must be compatible with parent architecture
|
|
278
|
-
- Update
|
|
276
|
+
- Update `docs/project_notes/project_map.md`
|
|
279
277
|
|
|
280
278
|
## RESUME LOGIC
|
|
281
279
|
|