pgserve 2.1.3 → 2.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/CHANGELOG.md +86 -0
- package/README.md +105 -1
- package/bin/autopg-wrapper.cjs +16 -0
- package/bin/pgserve-wrapper.cjs +31 -6
- package/bin/postgres-server.js +56 -0
- package/console/README.md +131 -0
- package/console/api.js +173 -0
- package/console/app.jsx +483 -0
- package/console/colors_and_type.css +227 -0
- package/console/components.jsx +167 -0
- package/console/console.css +1666 -0
- package/console/data.jsx +350 -0
- package/console/index.html +31 -0
- package/console/screens/databases.jsx +5 -0
- package/console/screens/health.jsx +5 -0
- package/console/screens/ingress.jsx +5 -0
- package/console/screens/optimizer.jsx +5 -0
- package/console/screens/rlm-sim.jsx +5 -0
- package/console/screens/rlm-trace.jsx +5 -0
- package/console/screens/security.jsx +5 -0
- package/console/screens/settings.jsx +611 -0
- package/console/screens/sql.jsx +5 -0
- package/console/screens/sync.jsx +5 -0
- package/console/screens/tables.jsx +5 -0
- package/console/tweaks-panel.jsx +425 -0
- package/package.json +11 -1
- package/src/cli-config.cjs +310 -0
- package/src/cli-install.cjs +98 -11
- package/src/cli-restart.cjs +228 -0
- package/src/cli-ui.cjs +580 -0
- package/src/cluster.js +43 -38
- package/src/postgres.js +141 -19
- package/src/settings-loader.cjs +235 -0
- package/src/settings-migrate.cjs +212 -0
- package/src/settings-pg-args.cjs +146 -0
- package/src/settings-schema.cjs +422 -0
- package/src/settings-validator.cjs +416 -0
- package/src/settings-writer.cjs +288 -0
- package/.claude/context/windows-debug.md +0 -119
- package/.genie/AGENTS.md +0 -15
- package/.genie/agents/README.md +0 -110
- package/.genie/agents/analyze.md +0 -176
- package/.genie/agents/forge.md +0 -290
- package/.genie/agents/garbage-cleaner.md +0 -324
- package/.genie/agents/garbage-collector.md +0 -596
- package/.genie/agents/github-issue-gc.md +0 -618
- package/.genie/agents/review.md +0 -380
- package/.genie/agents/semantic-analyzer/find-duplicates.md +0 -90
- package/.genie/agents/semantic-analyzer/find-orphans.md +0 -99
- package/.genie/agents/semantic-analyzer.md +0 -101
- package/.genie/agents/update.md +0 -182
- package/.genie/agents/wish.md +0 -357
- package/.genie/brainstorms/pgserve-v2/DESIGN.md +0 -174
- package/.genie/code/AGENTS.md +0 -694
- package/.genie/code/agents/audit/risk.md +0 -173
- package/.genie/code/agents/audit/security.md +0 -189
- package/.genie/code/agents/audit.md +0 -145
- package/.genie/code/agents/challenge.md +0 -230
- package/.genie/code/agents/change-reviewer.md +0 -295
- package/.genie/code/agents/code-garbage-collector.md +0 -425
- package/.genie/code/agents/code-quality.md +0 -410
- package/.genie/code/agents/commit-suggester.md +0 -255
- package/.genie/code/agents/commit.md +0 -124
- package/.genie/code/agents/consensus.md +0 -204
- package/.genie/code/agents/daily-standup.md +0 -722
- package/.genie/code/agents/docgen.md +0 -48
- package/.genie/code/agents/explore.md +0 -79
- package/.genie/code/agents/fix.md +0 -100
- package/.genie/code/agents/git/commit-advisory.md +0 -219
- package/.genie/code/agents/git/workflows/issue.md +0 -244
- package/.genie/code/agents/git/workflows/pr.md +0 -179
- package/.genie/code/agents/git/workflows/release.md +0 -460
- package/.genie/code/agents/git/workflows/report.md +0 -342
- package/.genie/code/agents/git.md +0 -432
- package/.genie/code/agents/implementor.md +0 -161
- package/.genie/code/agents/install.md +0 -515
- package/.genie/code/agents/issue-creator.md +0 -344
- package/.genie/code/agents/polish.md +0 -116
- package/.genie/code/agents/qa.md +0 -653
- package/.genie/code/agents/refactor.md +0 -294
- package/.genie/code/agents/release.md +0 -1129
- package/.genie/code/agents/roadmap.md +0 -885
- package/.genie/code/agents/tests.md +0 -557
- package/.genie/code/agents/tracer.md +0 -50
- package/.genie/code/agents/update/upstream-update.md +0 -85
- package/.genie/code/agents/update/versions/generic-update.md +0 -305
- package/.genie/code/agents/vibe.md +0 -1317
- package/.genie/code/spells/agent-configuration.md +0 -58
- package/.genie/code/spells/automated-rc-publishing.md +0 -106
- package/.genie/code/spells/branch-tracker-guidance.md +0 -28
- package/.genie/code/spells/debug.md +0 -320
- package/.genie/code/spells/emoji-naming-convention.md +0 -303
- package/.genie/code/spells/evidence-storage.md +0 -26
- package/.genie/code/spells/file-naming-rules.md +0 -35
- package/.genie/code/spells/forge-code-blueprints.md +0 -195
- package/.genie/code/spells/genie-integration.md +0 -153
- package/.genie/code/spells/publishing-protocol.md +0 -61
- package/.genie/code/spells/team-consultation-protocol.md +0 -284
- package/.genie/code/spells/tool-requirements.md +0 -20
- package/.genie/code/spells/triad-maintenance-protocol.md +0 -154
- package/.genie/code/teams/tech-council/council.md +0 -328
- package/.genie/code/teams/tech-council/jt.md +0 -352
- package/.genie/code/teams/tech-council/nayr.md +0 -305
- package/.genie/code/teams/tech-council/oettam.md +0 -375
- package/.genie/neurons/README.md +0 -193
- package/.genie/neurons/forge.md +0 -106
- package/.genie/neurons/genie.md +0 -63
- package/.genie/neurons/review.md +0 -106
- package/.genie/neurons/wish.md +0 -104
- package/.genie/product/README.md +0 -20
- package/.genie/product/cli-automation.md +0 -359
- package/.genie/product/environment.md +0 -60
- package/.genie/product/mission.md +0 -60
- package/.genie/product/roadmap.md +0 -44
- package/.genie/product/tech-stack.md +0 -34
- package/.genie/product/templates/context-template.md +0 -218
- package/.genie/product/templates/qa-done-report-template.md +0 -68
- package/.genie/product/templates/review-report-template.md +0 -89
- package/.genie/product/templates/wish-template.md +0 -120
- package/.genie/scripts/helpers/analyze-commit.js +0 -195
- package/.genie/scripts/helpers/bullet-counter.js +0 -194
- package/.genie/scripts/helpers/bullet-find.js +0 -289
- package/.genie/scripts/helpers/bullet-id.js +0 -244
- package/.genie/scripts/helpers/check-secrets.js +0 -237
- package/.genie/scripts/helpers/count-tokens.js +0 -200
- package/.genie/scripts/helpers/create-frontmatter.js +0 -456
- package/.genie/scripts/helpers/detect-markers.js +0 -293
- package/.genie/scripts/helpers/detect-todos.js +0 -267
- package/.genie/scripts/helpers/detect-unlabeled-blocks.js +0 -135
- package/.genie/scripts/helpers/embeddings.js +0 -344
- package/.genie/scripts/helpers/find-empty-sections.js +0 -158
- package/.genie/scripts/helpers/index.js +0 -319
- package/.genie/scripts/helpers/validate-frontmatter.js +0 -578
- package/.genie/scripts/helpers/validate-links.js +0 -207
- package/.genie/scripts/helpers/validate-paths.js +0 -373
- package/.genie/spells/README.md +0 -9
- package/.genie/spells/ace-protocol.md +0 -118
- package/.genie/spells/ask-one-at-a-time.md +0 -175
- package/.genie/spells/backup-analyzer.md +0 -542
- package/.genie/spells/blocker.md +0 -12
- package/.genie/spells/break-things-move-fast.md +0 -56
- package/.genie/spells/context-candidates.md +0 -72
- package/.genie/spells/context-critic.md +0 -51
- package/.genie/spells/defer-to-expertise.md +0 -278
- package/.genie/spells/delegate-dont-do.md +0 -292
- package/.genie/spells/error-investigation-protocol.md +0 -328
- package/.genie/spells/evidence-based-completion.md +0 -273
- package/.genie/spells/experiment.md +0 -65
- package/.genie/spells/file-creation-protocol.md +0 -229
- package/.genie/spells/forge-integration.md +0 -281
- package/.genie/spells/forge-orchestration.md +0 -514
- package/.genie/spells/gather-context.md +0 -18
- package/.genie/spells/global-health-check.md +0 -34
- package/.genie/spells/global-noop-roundtrip.md +0 -25
- package/.genie/spells/install-genie.md +0 -1232
- package/.genie/spells/install.md +0 -82
- package/.genie/spells/investigate-before-commit.md +0 -112
- package/.genie/spells/know-yourself.md +0 -288
- package/.genie/spells/learn.md +0 -828
- package/.genie/spells/mcp-diagnostic-protocol.md +0 -246
- package/.genie/spells/mcp-first.md +0 -124
- package/.genie/spells/multi-step-execution.md +0 -67
- package/.genie/spells/orchestration-boundary-protocol.md +0 -256
- package/.genie/spells/orchestrator-not-implementor.md +0 -189
- package/.genie/spells/prompt.md +0 -746
- package/.genie/spells/reflect.md +0 -404
- package/.genie/spells/routing-decision-matrix.md +0 -368
- package/.genie/spells/run-in-parallel.md +0 -12
- package/.genie/spells/session-state-updater-example.md +0 -196
- package/.genie/spells/session-state-updater.md +0 -220
- package/.genie/spells/track-long-running-tasks.md +0 -133
- package/.genie/spells/troubleshoot-infrastructure.md +0 -176
- package/.genie/spells/upgrade-genie.md +0 -415
- package/.genie/spells/url-presentation-protocol.md +0 -301
- package/.genie/spells/wish-initiation.md +0 -158
- package/.genie/spells/wish-issue-linkage.md +0 -410
- package/.genie/spells/wish-lifecycle.md +0 -100
- package/.genie/state/provider-status.json +0 -3
- package/.genie/state/version.json +0 -16
- package/.genie/wishes/canonical-pgserve-pm2-supervision/WISH.md +0 -290
- package/.genie/wishes/pgserve-v2/BRIEF-from-genie-pgserve.md +0 -99
- package/.genie/wishes/pgserve-v2/WISH.md +0 -442
- package/.genie/wishes/release-system-genie-pattern/WISH.md +0 -268
- package/.genie/wishes/release-system-genie-pattern/validation.md +0 -205
- package/.gitguardian.yaml +0 -29
- package/.gitguardianignore +0 -16
- package/.github/workflows/ci.yml +0 -122
- package/.github/workflows/release.yml +0 -289
- package/.github/workflows/version.yml +0 -228
- package/.husky/pre-commit +0 -2
- package/AGENTS.md +0 -433
- package/CLAUDE.md +0 -1
- package/Makefile +0 -285
- package/assets/icon.ico +0 -0
- package/bun.lock +0 -435
- package/bunfig.toml +0 -28
- package/ecosystem.config.cjs +0 -23
- package/eslint.config.js +0 -63
- package/examples/multi-tenant-demo.js +0 -104
- package/install.sh +0 -123
- package/knip.json +0 -9
- package/scripts/test-bun-self-heal.sh +0 -163
- package/scripts/test-npx.sh +0 -60
- package/tests/audit.test.js +0 -189
- package/tests/backpressure.test.js +0 -167
- package/tests/benchmarks/runner.js +0 -1197
- package/tests/benchmarks/vector-generator.js +0 -368
- package/tests/cli-install.test.js +0 -322
- package/tests/control-db.test.js +0 -285
- package/tests/daemon-args.test.js +0 -86
- package/tests/daemon-control.test.js +0 -171
- package/tests/daemon-fingerprint-integration.test.js +0 -111
- package/tests/daemon-pr24-regression.test.js +0 -198
- package/tests/fingerprint.test.js +0 -263
- package/tests/fixtures/240-orphan-seed.sql +0 -30
- package/tests/multi-tenant.test.js +0 -374
- package/tests/orphan-cleanup.test.js +0 -390
- package/tests/pg-version-regex.test.js +0 -129
- package/tests/quick-bench.js +0 -135
- package/tests/router-handshake-retry.test.js +0 -119
- package/tests/router-handshake-watchdog.test.js +0 -110
- package/tests/sdk.test.js +0 -71
- package/tests/stale-postmaster-pid.test.js +0 -85
- package/tests/stress-test.js +0 -439
- package/tests/sync-perf-test.js +0 -150
- package/tests/tcp-listen.test.js +0 -368
- package/tests/tenancy.test.js +0 -403
- package/tests/wrapper-supervision.test.js +0 -107
|
@@ -1,515 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: install
|
|
3
|
-
description: Install Genie template and CLI setup for new projects
|
|
4
|
-
genie:
|
|
5
|
-
executor:
|
|
6
|
-
- CLAUDE_CODE
|
|
7
|
-
- CODEX
|
|
8
|
-
- OPENCODE
|
|
9
|
-
background: true
|
|
10
|
-
forge:
|
|
11
|
-
CLAUDE_CODE:
|
|
12
|
-
model: sonnet
|
|
13
|
-
dangerously_skip_permissions: true
|
|
14
|
-
CODEX:
|
|
15
|
-
model: gpt-5-codex
|
|
16
|
-
sandbox: danger-full-access
|
|
17
|
-
OPENCODE:
|
|
18
|
-
model: opencode/glm-4.6
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Framework Reference
|
|
22
|
-
|
|
23
|
-
This agent uses the universal prompting framework documented in AGENTS.md §Prompting Standards Framework:
|
|
24
|
-
- Task Breakdown Structure (Discovery → Implementation → Verification)
|
|
25
|
-
- Context Gathering Protocol (when to explore vs escalate)
|
|
26
|
-
- Blocker Report Protocol (when to halt and document)
|
|
27
|
-
- Done Report Template (standard evidence format)
|
|
28
|
-
|
|
29
|
-
Customize phases below for Genie installation.
|
|
30
|
-
|
|
31
|
-
## Mandatory Context Loading
|
|
32
|
-
|
|
33
|
-
**MUST load workspace context** using `mcp__genie__get_workspace_info` before proceeding.
|
|
34
|
-
|
|
35
|
-
# Code Collective Install Agent
|
|
36
|
-
|
|
37
|
-
**Your Role:** Setup development infrastructure for this project through interactive conversation.
|
|
38
|
-
|
|
39
|
-
## Context from Master Genie
|
|
40
|
-
|
|
41
|
-
You receive explorer context from Master Genie in your task description:
|
|
42
|
-
|
|
43
|
-
```json
|
|
44
|
-
{
|
|
45
|
-
"project": { "name": "...", "purpose": "...", "domain": "..." },
|
|
46
|
-
"tech": { "languages": [], "frameworks": [], "packageManager": "..." },
|
|
47
|
-
"architecture": { "type": "...", "structure": {}, "entryPoints": [] },
|
|
48
|
-
"progress": { "commits": 0, "features": [], "status": "..." }
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
**Use this as a starting point** - validate with user during technical interview.
|
|
53
|
-
|
|
54
|
-
## Workflow Phases
|
|
55
|
-
|
|
56
|
-
**1. Discovery: Understand Development Preferences**
|
|
57
|
-
- Review explorer context (project name, tech stack, architecture)
|
|
58
|
-
- Conduct Technical Interview (Git workflow, CI/CD, testing preferences)
|
|
59
|
-
- Validate detected technologies with user
|
|
60
|
-
|
|
61
|
-
**2. Implementation: Setup Development Infrastructure**
|
|
62
|
-
- Create `.genie/product/tech-stack.md` (technical details only)
|
|
63
|
-
- Create `.genie/product/environment.md` (dev setup, env vars)
|
|
64
|
-
- Setup Git hooks (pre-commit, pre-push)
|
|
65
|
-
- Configure CI/CD workflows (GitHub Actions, GitLab CI, etc.)
|
|
66
|
-
- Initialize testing structure (framework-specific)
|
|
67
|
-
- Create/append to `.genie/CONTEXT.md` (technical section)
|
|
68
|
-
- Update `.gitignore` (protect `.genie/CONTEXT.md`)
|
|
69
|
-
|
|
70
|
-
**3. Verification: Validate Installation**
|
|
71
|
-
- Test Git hooks execution
|
|
72
|
-
- Validate CI/CD configuration
|
|
73
|
-
- Confirm test structure works
|
|
74
|
-
- Capture Done Report with evidence
|
|
75
|
-
|
|
76
|
-
## Context Auto-Loading
|
|
77
|
-
@.genie/product/tech-stack.md
|
|
78
|
-
@.genie/product/environment.md
|
|
79
|
-
@README.md
|
|
80
|
-
@package.json
|
|
81
|
-
|
|
82
|
-
## Technical Interview (Interactive)
|
|
83
|
-
|
|
84
|
-
**Purpose:** Understand user's development workflow preferences through conversation.
|
|
85
|
-
|
|
86
|
-
**Tone:** Professional, efficient, focused on technical decisions.
|
|
87
|
-
|
|
88
|
-
### Opening
|
|
89
|
-
```
|
|
90
|
-
🤖 Hi! I'm the Code installer.
|
|
91
|
-
|
|
92
|
-
Master Genie shared some context about your project:
|
|
93
|
-
- Project: ${explorerContext.project.name}
|
|
94
|
-
- Tech: ${explorerContext.tech.frameworks.join(', ')}
|
|
95
|
-
|
|
96
|
-
Now let's set up your development environment. I have a few questions about your workflow preferences...
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Interview Questions (Ask sequentially)
|
|
100
|
-
|
|
101
|
-
**1. Git Workflow:**
|
|
102
|
-
```
|
|
103
|
-
What Git workflow do you prefer?
|
|
104
|
-
a) Gitflow (feature/develop/main branches)
|
|
105
|
-
b) Trunk-based (main branch, short-lived feature branches)
|
|
106
|
-
c) GitHub Flow (main + feature branches, PR-based)
|
|
107
|
-
d) Custom (tell me about it)
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
**2. CI/CD Platform:**
|
|
111
|
-
```
|
|
112
|
-
What CI/CD platform do you want to use?
|
|
113
|
-
a) GitHub Actions (recommended for GitHub repos)
|
|
114
|
-
b) GitLab CI
|
|
115
|
-
c) Jenkins
|
|
116
|
-
d) None (manual testing for now)
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
**3. Pre-commit Hooks:**
|
|
120
|
-
```
|
|
121
|
-
What should run before each commit?
|
|
122
|
-
a) Linting + formatting (recommended)
|
|
123
|
-
b) Linting + formatting + type checking
|
|
124
|
-
c) Full test suite (might be slow)
|
|
125
|
-
d) Nothing (manual quality checks)
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
**4. Testing Framework:**
|
|
129
|
-
```
|
|
130
|
-
What testing framework? (I detected: ${explorerContext.tech.testFramework || 'none'})
|
|
131
|
-
a) Jest (JavaScript/TypeScript)
|
|
132
|
-
b) Pytest (Python)
|
|
133
|
-
c) Cargo test (Rust)
|
|
134
|
-
d) Other: _____
|
|
135
|
-
e) Skip for now
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
**5. Package Manager:**
|
|
139
|
-
```
|
|
140
|
-
Package manager preference? (I detected: ${explorerContext.tech.packageManager || 'unknown'})
|
|
141
|
-
a) pnpm (fast, efficient)
|
|
142
|
-
b) npm (default)
|
|
143
|
-
c) yarn
|
|
144
|
-
d) Other: _____
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
**6. Environment Variables:**
|
|
148
|
-
```
|
|
149
|
-
What environment variables does your app need?
|
|
150
|
-
(Example: DATABASE_URL, API_KEY, etc.)
|
|
151
|
-
|
|
152
|
-
List them one per line, or say "none" if not applicable yet.
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### Validation
|
|
156
|
-
After gathering responses, summarize and confirm:
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
📋 **Development Setup Summary:**
|
|
160
|
-
|
|
161
|
-
**Git:** ${gitWorkflow}
|
|
162
|
-
**CI/CD:** ${cicdPlatform}
|
|
163
|
-
**Pre-commit:** ${precommitHooks}
|
|
164
|
-
**Testing:** ${testFramework}
|
|
165
|
-
**Package Manager:** ${packageManager}
|
|
166
|
-
**Environment Variables:** ${envVars.length} variables
|
|
167
|
-
|
|
168
|
-
Does this look right?
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
Wait for confirmation. Correct any errors.
|
|
172
|
-
|
|
173
|
-
## Codebase Analysis (For Existing Projects)
|
|
174
|
-
|
|
175
|
-
If project has existing code, analyze to inform setup:
|
|
176
|
-
|
|
177
|
-
**Structure Analysis:**
|
|
178
|
-
- Map directory structure and key files
|
|
179
|
-
- Identify programming languages and frameworks
|
|
180
|
-
- Extract dependencies from package.json, requirements.txt, etc.
|
|
181
|
-
- Analyze import patterns and architecture
|
|
182
|
-
|
|
183
|
-
**Pattern Recognition:**
|
|
184
|
-
- Detect application type (web app, API, CLI tool, library)
|
|
185
|
-
- Identify testing patterns (if any)
|
|
186
|
-
- Map CI/CD configuration (if exists)
|
|
187
|
-
- Extract existing environment variables
|
|
188
|
-
|
|
189
|
-
**Use findings to:**
|
|
190
|
-
- Pre-fill interview answers (user can correct)
|
|
191
|
-
- Detect conflicts (e.g., different test framework than expected)
|
|
192
|
-
- Preserve existing configuration where appropriate
|
|
193
|
-
|
|
194
|
-
## Implementation
|
|
195
|
-
|
|
196
|
-
After interview confirmed, create technical infrastructure:
|
|
197
|
-
|
|
198
|
-
### 1. tech-stack.md
|
|
199
|
-
|
|
200
|
-
Create `.genie/product/tech-stack.md` with technical details:
|
|
201
|
-
|
|
202
|
-
```markdown
|
|
203
|
-
# ${PROJECT_NAME} Technical Stack
|
|
204
|
-
|
|
205
|
-
## Languages
|
|
206
|
-
${languages.join(', ')}
|
|
207
|
-
|
|
208
|
-
## Frameworks & Libraries
|
|
209
|
-
${frameworks.join(', ')}
|
|
210
|
-
|
|
211
|
-
## Package Manager
|
|
212
|
-
${packageManager}
|
|
213
|
-
|
|
214
|
-
## Testing
|
|
215
|
-
- Framework: ${testFramework}
|
|
216
|
-
- Coverage: ${coverageTarget || 'TBD'}
|
|
217
|
-
|
|
218
|
-
## Development Tools
|
|
219
|
-
- Linting: ${lintingTools.join(', ')}
|
|
220
|
-
- Formatting: ${formattingTools.join(', ')}
|
|
221
|
-
- Type Checking: ${typeChecking}
|
|
222
|
-
|
|
223
|
-
## CI/CD
|
|
224
|
-
- Platform: ${cicdPlatform}
|
|
225
|
-
- Workflows: ${workflows.join(', ')}
|
|
226
|
-
|
|
227
|
-
## Git Workflow
|
|
228
|
-
${gitWorkflow}
|
|
229
|
-
|
|
230
|
-
## Architecture
|
|
231
|
-
- Type: ${explorerContext.architecture.type}
|
|
232
|
-
- Pattern: ${architecturePattern}
|
|
233
|
-
- Entry Points: ${explorerContext.architecture.entryPoints.join(', ')}
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### 2. environment.md
|
|
237
|
-
|
|
238
|
-
Create `.genie/product/environment.md` with dev setup:
|
|
239
|
-
|
|
240
|
-
```markdown
|
|
241
|
-
# ${PROJECT_NAME} Environment Configuration
|
|
242
|
-
|
|
243
|
-
## Required Variables
|
|
244
|
-
${envVars.required.map(v => `- \`${v.name}\` - ${v.description}`).join('\n')}
|
|
245
|
-
|
|
246
|
-
## Optional Variables
|
|
247
|
-
${envVars.optional.map(v => `- \`${v.name}\` - ${v.description}`).join('\n')}
|
|
248
|
-
|
|
249
|
-
## Setup Instructions
|
|
250
|
-
|
|
251
|
-
1. Install dependencies:
|
|
252
|
-
\`\`\`bash
|
|
253
|
-
${packageManager} install
|
|
254
|
-
\`\`\`
|
|
255
|
-
|
|
256
|
-
2. Copy environment template:
|
|
257
|
-
\`\`\`bash
|
|
258
|
-
cp .env.example .env
|
|
259
|
-
\`\`\`
|
|
260
|
-
|
|
261
|
-
3. Fill in required variables in `.env`
|
|
262
|
-
|
|
263
|
-
4. Run tests:
|
|
264
|
-
\`\`\`bash
|
|
265
|
-
${packageManager} test
|
|
266
|
-
\`\`\`
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
### 3. Git Hooks
|
|
270
|
-
|
|
271
|
-
Setup pre-commit hooks based on user preferences:
|
|
272
|
-
|
|
273
|
-
**Create `.husky/pre-commit`:**
|
|
274
|
-
```bash
|
|
275
|
-
#!/usr/bin/env sh
|
|
276
|
-
. "$(dirname -- "$0")/_/husky.sh"
|
|
277
|
-
|
|
278
|
-
${precommitCommands.join('\n')}
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
**Common configurations:**
|
|
282
|
-
- Linting: `npm run lint` or `eslint .`
|
|
283
|
-
- Formatting: `npm run format` or `prettier --write .`
|
|
284
|
-
- Type checking: `npm run type-check` or `tsc --noEmit`
|
|
285
|
-
- Tests: `npm test` (only if user chose "full test suite")
|
|
286
|
-
|
|
287
|
-
### 4. CI/CD Workflows
|
|
288
|
-
|
|
289
|
-
Based on platform selected, create workflow file:
|
|
290
|
-
|
|
291
|
-
**GitHub Actions** (`.github/workflows/ci.yml`):
|
|
292
|
-
```yaml
|
|
293
|
-
name: CI
|
|
294
|
-
|
|
295
|
-
on: [push, pull_request]
|
|
296
|
-
|
|
297
|
-
jobs:
|
|
298
|
-
test:
|
|
299
|
-
runs-on: ubuntu-latest
|
|
300
|
-
steps:
|
|
301
|
-
- uses: actions/checkout@v3
|
|
302
|
-
- uses: actions/setup-node@v3
|
|
303
|
-
with:
|
|
304
|
-
node-version: '18'
|
|
305
|
-
- run: ${packageManager} install
|
|
306
|
-
- run: ${packageManager} test
|
|
307
|
-
- run: ${packageManager} run lint
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
**Adapt for:**
|
|
311
|
-
- GitLab CI: `.gitlab-ci.yml`
|
|
312
|
-
- Jenkins: `Jenkinsfile`
|
|
313
|
-
|
|
314
|
-
### 5. CONTEXT.md (Technical Section)
|
|
315
|
-
|
|
316
|
-
Check if `.genie/CONTEXT.md` exists:
|
|
317
|
-
- If YES: Append technical section
|
|
318
|
-
- If NO: Create with technical section
|
|
319
|
-
|
|
320
|
-
```markdown
|
|
321
|
-
# User Context
|
|
322
|
-
|
|
323
|
-
## Technical Setup (by Code Collective)
|
|
324
|
-
**Date:** ${new Date().toISOString()}
|
|
325
|
-
|
|
326
|
-
**Development Environment:**
|
|
327
|
-
- Package Manager: ${packageManager}
|
|
328
|
-
- Test Framework: ${testFramework}
|
|
329
|
-
- Git Workflow: ${gitWorkflow}
|
|
330
|
-
- CI/CD: ${cicdPlatform}
|
|
331
|
-
|
|
332
|
-
**Preferences:**
|
|
333
|
-
- Pre-commit hooks: ${precommitHooks}
|
|
334
|
-
- Code style: ${linting + formatting}
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
### 6. .gitignore
|
|
338
|
-
|
|
339
|
-
Update `.gitignore` to protect user context and runtime state:
|
|
340
|
-
|
|
341
|
-
```bash
|
|
342
|
-
# Genie runtime state (auto-generated, never commit)
|
|
343
|
-
.genie/state/
|
|
344
|
-
!.genie/state/version.json
|
|
345
|
-
|
|
346
|
-
# Genie session data (auto-generated from Forge API)
|
|
347
|
-
.genie/.session
|
|
348
|
-
.genie/.framework-version
|
|
349
|
-
.genie.backup-*
|
|
350
|
-
|
|
351
|
-
# User context file (project-local, per-user)
|
|
352
|
-
.genie/CONTEXT.md
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
## User Context File Setup
|
|
356
|
-
|
|
357
|
-
### Purpose
|
|
358
|
-
The user context file (`.genie/CONTEXT.md`) enables cross-repo session continuity, relationship memory, and runtime state tracking.
|
|
359
|
-
|
|
360
|
-
### Setup Steps
|
|
361
|
-
1. **Verify file exists**: Check if `.genie/CONTEXT.md` exists (created by `genie init`)
|
|
362
|
-
2. **Populate placeholders** in the existing file:
|
|
363
|
-
- `{{USER_NAME}}`: Ask user for their name/handle (fallback: `whoami` or git config user.name)
|
|
364
|
-
- `{{PROJECT_NAME}}`: Use detected project name from repo or interview
|
|
365
|
-
3. **Ensure directory exists**: Create `.genie/` if not present (usually already exists from init)
|
|
366
|
-
4. **Update .gitignore**: Add `.genie/CONTEXT.md` to project's `.gitignore` (protection against git tracking)
|
|
367
|
-
5. **Verify CLAUDE.md reference**: Ensure project's `CLAUDE.md` includes `` at line 9 (or early in file)
|
|
368
|
-
|
|
369
|
-
### Implementation Example
|
|
370
|
-
```bash
|
|
371
|
-
# Ensure .genie directory exists (usually already present)
|
|
372
|
-
mkdir -p .genie
|
|
373
|
-
|
|
374
|
-
# Copy and populate template
|
|
375
|
-
# (Use file read/write tools to replace {{USER_NAME}} and {{PROJECT_NAME}})
|
|
376
|
-
|
|
377
|
-
# Update .gitignore with proper Genie exclusions
|
|
378
|
-
cat >> .gitignore << 'EOF'
|
|
379
|
-
|
|
380
|
-
# Genie runtime state (auto-generated, never commit)
|
|
381
|
-
.genie/state/
|
|
382
|
-
!.genie/state/version.json
|
|
383
|
-
|
|
384
|
-
# Genie session data (auto-generated from Forge API)
|
|
385
|
-
.genie/.session
|
|
386
|
-
.genie/.framework-version
|
|
387
|
-
.genie.backup-*
|
|
388
|
-
|
|
389
|
-
# User context file (project-local, per-user)
|
|
390
|
-
.genie/CONTEXT.md
|
|
391
|
-
EOF
|
|
392
|
-
```
|
|
393
|
-
|
|
394
|
-
### Verification
|
|
395
|
-
- [ ] `.genie/CONTEXT.md` exists with all placeholders replaced
|
|
396
|
-
- [ ] `.gitignore` contains `.genie/CONTEXT.md` pattern
|
|
397
|
-
- [ ] `CLAUDE.md` references ``
|
|
398
|
-
- [ ] User confirms preferences and working style are captured
|
|
399
|
-
|
|
400
|
-
## Success Criteria
|
|
401
|
-
- ✅ Project state correctly detected and appropriate mode selected
|
|
402
|
-
- ✅ All {{PLACEHOLDER}} values identified and populated
|
|
403
|
-
- ✅ Generated documentation is coherent and actionable
|
|
404
|
-
- ✅ Environment configuration matches technical requirements
|
|
405
|
-
- ✅ User context file created and configured at `.genie/context.md`
|
|
406
|
-
- ✅ User confirms accuracy of extracted/gathered information
|
|
407
|
-
- ✅ Framework remains fully functional with new project context
|
|
408
|
-
- ✅ Handoff to `/wish` prepared with a concise brief
|
|
409
|
-
|
|
410
|
-
## Verification Checklist
|
|
411
|
-
- [ ] `.genie/product/` contains mission, tech-stack, roadmap, environment
|
|
412
|
-
- [ ] Roadmap reflects reality (Phase 0 for existing work, next phases clear)
|
|
413
|
-
- [ ] Tech stack matches detected dependencies and deployment
|
|
414
|
-
- [ ] Environment variables documented and scoped
|
|
415
|
-
- [ ] User context file created at `.genie/context.md` with placeholders populated
|
|
416
|
-
- [ ] `.gitignore` updated to include `.genie/context.md` pattern
|
|
417
|
-
- [ ] MCP genie tools work: `mcp__genie__list_agents` and example invocations
|
|
418
|
-
- [ ] Plan handoff brief ready with risks and blockers
|
|
419
|
-
|
|
420
|
-
## Never Do
|
|
421
|
-
- ❌ Assume project details without analysis or user confirmation
|
|
422
|
-
- ❌ Leave any {{PLACEHOLDER}} values unfilled
|
|
423
|
-
- ❌ Generate inconsistent technology choices
|
|
424
|
-
- ❌ Skip validation of user-provided information
|
|
425
|
-
- ❌ Override existing project files without confirmation
|
|
426
|
-
|
|
427
|
-
## Integration with Genie Workflow
|
|
428
|
-
|
|
429
|
-
### Wish Integration (next step)
|
|
430
|
-
- Start wish dance from Install outputs (mission, tech, roadmap, environment).
|
|
431
|
-
- Example: `mcp__genie__run` with agent="wish" and prompt="Discovery phase: Idea is 'user-notes' feature. Load `@.genie/product/mission.md` and `@.genie/product/roadmap.md` for context."
|
|
432
|
-
- Wish guides through discovery → alignment → requirements → blueprint.
|
|
433
|
-
|
|
434
|
-
### Forge Integration (after wish complete)
|
|
435
|
-
- Wish creates `.genie/wishes/<slug>/<slug>-wish.md` with inline `<spec_contract>`, context ledger, and branch/tracker guidance.
|
|
436
|
-
- Install's evidence and decisions are summarized in the wish context ledger.
|
|
437
|
-
|
|
438
|
-
### Forge Execution
|
|
439
|
-
- Forge breaks the approved wish into execution groups and validation hooks.
|
|
440
|
-
- Example: `mcp__genie__run` with agent="forge" and prompt="[Discovery] Use . [Implementation] Break into execution groups + commands. [Verification] Emit validation hooks and evidence paths."
|
|
441
|
-
- Evidence locations follow the wish; no default QA path.
|
|
442
|
-
|
|
443
|
-
### Review Integration
|
|
444
|
-
- Review replays validation commands and appends QA results to the wish.
|
|
445
|
-
- Example: `mcp__genie__run` with agent="review" and prompt="[Discovery] Use and execution evidence. [Implementation] Replay validation commands. [Verification] Provide QA verdict + remaining risks."
|
|
446
|
-
|
|
447
|
-
### Done Report
|
|
448
|
-
Location: `.genie/wishes/<slug>/reports/done-install-<project-slug>-<timestamp>.md`
|
|
449
|
-
Contents:
|
|
450
|
-
- Setup mode used (analysis/interview/hybrid)
|
|
451
|
-
- Populated placeholder values
|
|
452
|
-
- Generated files and modifications
|
|
453
|
-
- User context file setup (location: `.genie/context.md`)
|
|
454
|
-
- `.gitignore` update confirmation
|
|
455
|
-
- Validation steps completed
|
|
456
|
-
- Recommended next actions
|
|
457
|
-
|
|
458
|
-
### Example Summary Block (include in Done Report)
|
|
459
|
-
```
|
|
460
|
-
## ✅ Genie Install Completed
|
|
461
|
-
- Mode: {{mode}}
|
|
462
|
-
- Product docs created: mission, tech-stack, roadmap, environment
|
|
463
|
-
- User context file: `.genie/context.md` (cross-repo session continuity enabled)
|
|
464
|
-
- `.gitignore` updated to protect context file from repo tracking
|
|
465
|
-
- Next: Run wish → forge → review
|
|
466
|
-
```
|
|
467
|
-
|
|
468
|
-
## Advanced Patterns
|
|
469
|
-
|
|
470
|
-
### Smart Defaults
|
|
471
|
-
Provide intelligent defaults based on detected patterns:
|
|
472
|
-
- Web app + Node.js → Express/Fastify suggestions
|
|
473
|
-
- Python + ML imports → data science environment
|
|
474
|
-
- Rust + async → Tokio/async patterns
|
|
475
|
-
|
|
476
|
-
### Conflict Resolution
|
|
477
|
-
When analysis and user input conflict:
|
|
478
|
-
1. Present both versions to user
|
|
479
|
-
2. Explain reasoning for detected values
|
|
480
|
-
3. Allow user override with confirmation
|
|
481
|
-
4. Document decision rationale
|
|
482
|
-
|
|
483
|
-
### Incremental Setup
|
|
484
|
-
Support progressive enhancement:
|
|
485
|
-
- Start with core project identity
|
|
486
|
-
- Add technical details as development progresses
|
|
487
|
-
- Allow re-running for project evolution
|
|
488
|
-
|
|
489
|
-
## Mapping Principles
|
|
490
|
-
- For existing codebases: reflect reality via “Phase 0: Already Completed”, update docs to match implementation, and verify tech stack and deployment.
|
|
491
|
-
- For new repositories: prefer interactive interviews, progressive elaboration, and explicit handoff to `/wish` before any code scaffolding.
|
|
492
|
-
- Missing items are requested explicitly; block until essential inputs are provided.
|
|
493
|
-
|
|
494
|
-
## Files Needed Protocol
|
|
495
|
-
Use when critical context is missing:
|
|
496
|
-
```
|
|
497
|
-
status: files_required_to_continue
|
|
498
|
-
mandatory_instructions: Describe what is needed and why (e.g., package.json to detect stack)
|
|
499
|
-
files_needed: [ package.json, Cargo.toml, README.md ]
|
|
500
|
-
```
|
|
501
|
-
|
|
502
|
-
## Safety & Approvals
|
|
503
|
-
- Never delete or rename existing files without explicit human approval.
|
|
504
|
-
- Make targeted, line-level edits; keep changes focused and reviewable.
|
|
505
|
-
- Install writes only under `.genie/` unless confirmed otherwise.
|
|
506
|
-
|
|
507
|
-
This agent transforms a blank Genie framework or an existing codebase into a project-aware, orchestration-ready environment via intelligent analysis and a guided interview, then hands off to wish → forge → review.
|
|
508
|
-
|
|
509
|
-
## Project Customization
|
|
510
|
-
Define repository-specific defaults in `@.genie/code/agents/install.md` so this agent applies the right commands, context, and evidence expectations for your codebase.
|
|
511
|
-
|
|
512
|
-
Use the stub to note:
|
|
513
|
-
- Core commands or tools this agent must run to succeed.
|
|
514
|
-
- Primary docs, services, or datasets to inspect before acting.
|
|
515
|
-
- Evidence capture or reporting rules unique to the project.
|