@aicgen/aicgen 1.0.0-beta.1
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/agents/architecture-reviewer.md +88 -0
- package/.claude/agents/guideline-checker.md +73 -0
- package/.claude/agents/security-auditor.md +108 -0
- package/.claude/guidelines/api-design.md +645 -0
- package/.claude/guidelines/architecture.md +2503 -0
- package/.claude/guidelines/best-practices.md +618 -0
- package/.claude/guidelines/code-style.md +304 -0
- package/.claude/guidelines/design-patterns.md +573 -0
- package/.claude/guidelines/devops.md +226 -0
- package/.claude/guidelines/error-handling.md +413 -0
- package/.claude/guidelines/language.md +782 -0
- package/.claude/guidelines/performance.md +706 -0
- package/.claude/guidelines/security.md +583 -0
- package/.claude/guidelines/testing.md +568 -0
- package/.claude/settings.json +98 -0
- package/.claude/settings.local.json +8 -0
- package/.env.example +23 -0
- package/.eslintrc.json +28 -0
- package/.github/workflows/release.yml +180 -0
- package/.github/workflows/test.yml +81 -0
- package/.gitmodules +3 -0
- package/.vs/ProjectSettings.json +3 -0
- package/.vs/VSWorkspaceState.json +16 -0
- package/.vs/aicgen.slnx/FileContentIndex/5f0ce2a3-fd68-4863-9e23-e428cf1794e3.vsidx +0 -0
- package/.vs/aicgen.slnx/v18/.wsuo +0 -0
- package/.vs/aicgen.slnx/v18/DocumentLayout.json +54 -0
- package/.vs/slnx.sqlite +0 -0
- package/AGENTS.md +121 -0
- package/CLAUDE.md +36 -0
- package/CONTRIBUTING.md +821 -0
- package/LICENSE +21 -0
- package/README.md +199 -0
- package/assets/icon.svg +34 -0
- package/assets/logo.svg +41 -0
- package/bun.lock +848 -0
- package/data/LICENSE +21 -0
- package/data/README.md +203 -0
- package/data/api/basics.md +292 -0
- package/data/api/index.md +8 -0
- package/data/api/pagination.md +142 -0
- package/data/api/rest.md +137 -0
- package/data/api/versioning.md +60 -0
- package/data/architecture/clean-architecture/index.md +7 -0
- package/data/architecture/clean-architecture/layers.md +111 -0
- package/data/architecture/ddd/index.md +8 -0
- package/data/architecture/ddd/strategic.md +89 -0
- package/data/architecture/ddd/tactical.md +132 -0
- package/data/architecture/event-driven/index.md +7 -0
- package/data/architecture/event-driven/messaging.md +242 -0
- package/data/architecture/event-driven/patterns.md +129 -0
- package/data/architecture/feature-toggles/index.md +7 -0
- package/data/architecture/feature-toggles/patterns.md +73 -0
- package/data/architecture/gui/index.md +7 -0
- package/data/architecture/gui/patterns.md +132 -0
- package/data/architecture/hexagonal/ports-adapters.md +132 -0
- package/data/architecture/index.md +12 -0
- package/data/architecture/layered/index.md +7 -0
- package/data/architecture/layered/layers.md +100 -0
- package/data/architecture/microservices/api-gateway.md +56 -0
- package/data/architecture/microservices/boundaries.md +80 -0
- package/data/architecture/microservices/communication.md +97 -0
- package/data/architecture/microservices/data.md +92 -0
- package/data/architecture/microservices/index.md +11 -0
- package/data/architecture/microservices/resilience.md +111 -0
- package/data/architecture/modular-monolith/boundaries.md +133 -0
- package/data/architecture/modular-monolith/structure.md +131 -0
- package/data/architecture/serverless/best-practices.md +322 -0
- package/data/architecture/serverless/index.md +7 -0
- package/data/architecture/serverless/patterns.md +80 -0
- package/data/architecture/solid/index.md +7 -0
- package/data/architecture/solid/principles.md +187 -0
- package/data/database/basics.md +365 -0
- package/data/database/design-patterns.md +68 -0
- package/data/database/index.md +8 -0
- package/data/database/indexing.md +136 -0
- package/data/database/nosql.md +223 -0
- package/data/database/schema.md +137 -0
- package/data/devops/ci-cd.md +66 -0
- package/data/devops/index.md +8 -0
- package/data/devops/observability.md +73 -0
- package/data/devops/practices.md +77 -0
- package/data/error-handling/basics.md +222 -0
- package/data/error-handling/index.md +7 -0
- package/data/error-handling/strategy.md +185 -0
- package/data/guideline-mappings.yml +1077 -0
- package/data/index.md +3 -0
- package/data/language/csharp/basics.md +210 -0
- package/data/language/csharp/testing.md +252 -0
- package/data/language/go/basics.md +158 -0
- package/data/language/go/testing.md +192 -0
- package/data/language/index.md +14 -0
- package/data/language/java/basics.md +184 -0
- package/data/language/java/testing.md +273 -0
- package/data/language/javascript/basics.md +217 -0
- package/data/language/javascript/testing.md +269 -0
- package/data/language/python/async.md +100 -0
- package/data/language/python/basics.md +100 -0
- package/data/language/python/index.md +10 -0
- package/data/language/python/testing.md +125 -0
- package/data/language/python/types.md +99 -0
- package/data/language/ruby/basics.md +227 -0
- package/data/language/ruby/testing.md +267 -0
- package/data/language/rust/basics.md +175 -0
- package/data/language/rust/testing.md +219 -0
- package/data/language/typescript/async.md +103 -0
- package/data/language/typescript/basics.md +87 -0
- package/data/language/typescript/config.md +95 -0
- package/data/language/typescript/error-handling.md +98 -0
- package/data/language/typescript/generics.md +85 -0
- package/data/language/typescript/index.md +14 -0
- package/data/language/typescript/interfaces-types.md +83 -0
- package/data/language/typescript/performance.md +103 -0
- package/data/language/typescript/testing.md +98 -0
- package/data/patterns/base-patterns.md +105 -0
- package/data/patterns/concurrency.md +87 -0
- package/data/patterns/data-access.md +83 -0
- package/data/patterns/distribution.md +86 -0
- package/data/patterns/domain-logic.md +81 -0
- package/data/patterns/gof.md +109 -0
- package/data/patterns/index.md +12 -0
- package/data/performance/async.md +148 -0
- package/data/performance/basics.md +324 -0
- package/data/performance/caching-strategies.md +68 -0
- package/data/performance/caching.md +152 -0
- package/data/performance/index.md +8 -0
- package/data/practices/code-review.md +52 -0
- package/data/practices/documentation.md +260 -0
- package/data/practices/index.md +11 -0
- package/data/practices/planning.md +142 -0
- package/data/practices/refactoring.md +91 -0
- package/data/practices/version-control.md +55 -0
- package/data/security/auth-jwt.md +159 -0
- package/data/security/headers.md +143 -0
- package/data/security/index.md +10 -0
- package/data/security/injection.md +119 -0
- package/data/security/secrets.md +148 -0
- package/data/style/index.md +8 -0
- package/data/style/naming.md +136 -0
- package/data/style/organization.md +162 -0
- package/data/templates/agents/architecture-reviewer.md +88 -0
- package/data/templates/agents/guideline-checker.md +73 -0
- package/data/templates/agents/security-auditor.md +108 -0
- package/data/templates/antigravity/rules/architecture.md.hbs +5 -0
- package/data/templates/antigravity/rules/code-style.md.hbs +5 -0
- package/data/templates/antigravity/rules/language.md.hbs +5 -0
- package/data/templates/antigravity/rules/performance.md.hbs +5 -0
- package/data/templates/antigravity/rules/security.md.hbs +5 -0
- package/data/templates/antigravity/rules/testing.md.hbs +5 -0
- package/data/templates/antigravity/workflows/add-documentation.md.hbs +23 -0
- package/data/templates/antigravity/workflows/generate-integration-tests.md.hbs +17 -0
- package/data/templates/antigravity/workflows/generate-unit-tests.md.hbs +20 -0
- package/data/templates/antigravity/workflows/performance-audit.md.hbs +24 -0
- package/data/templates/antigravity/workflows/refactor-extract-module.md.hbs +17 -0
- package/data/templates/antigravity/workflows/security-audit.md.hbs +20 -0
- package/data/templates/hooks/formatting.json +26 -0
- package/data/templates/hooks/security.json +35 -0
- package/data/templates/hooks/testing.json +17 -0
- package/data/testing/basics.md +151 -0
- package/data/testing/index.md +9 -0
- package/data/testing/integration.md +159 -0
- package/data/testing/unit-fundamentals.md +128 -0
- package/data/testing/unit-mocking.md +116 -0
- package/data/version.json +49 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +46 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/config/profiles.d.ts +4 -0
- package/dist/config/profiles.d.ts.map +1 -0
- package/dist/config/profiles.js +30 -0
- package/dist/config/profiles.js.map +1 -0
- package/dist/config/settings.d.ts +7 -0
- package/dist/config/settings.d.ts.map +1 -0
- package/dist/config/settings.js +7 -0
- package/dist/config/settings.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58489 -0
- package/dist/index.js.map +1 -0
- package/dist/models/guideline.d.ts +15 -0
- package/dist/models/guideline.d.ts.map +1 -0
- package/dist/models/guideline.js +2 -0
- package/dist/models/guideline.js.map +1 -0
- package/dist/models/preference.d.ts +9 -0
- package/dist/models/preference.d.ts.map +1 -0
- package/dist/models/preference.js +2 -0
- package/dist/models/preference.js.map +1 -0
- package/dist/models/profile.d.ts +9 -0
- package/dist/models/profile.d.ts.map +1 -0
- package/dist/models/profile.js +2 -0
- package/dist/models/profile.js.map +1 -0
- package/dist/models/project.d.ts +13 -0
- package/dist/models/project.d.ts.map +1 -0
- package/dist/models/project.js +2 -0
- package/dist/models/project.js.map +1 -0
- package/dist/services/ai/anthropic.d.ts +7 -0
- package/dist/services/ai/anthropic.d.ts.map +1 -0
- package/dist/services/ai/anthropic.js +39 -0
- package/dist/services/ai/anthropic.js.map +1 -0
- package/dist/services/generator.d.ts +2 -0
- package/dist/services/generator.d.ts.map +1 -0
- package/dist/services/generator.js +4 -0
- package/dist/services/generator.js.map +1 -0
- package/dist/services/learner.d.ts +2 -0
- package/dist/services/learner.d.ts.map +1 -0
- package/dist/services/learner.js +4 -0
- package/dist/services/learner.js.map +1 -0
- package/dist/services/scanner.d.ts +3 -0
- package/dist/services/scanner.d.ts.map +1 -0
- package/dist/services/scanner.js +54 -0
- package/dist/services/scanner.js.map +1 -0
- package/dist/utils/errors.d.ts +15 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +27 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/file.d.ts +7 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +32 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/logger.d.ts +6 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +17 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/path.d.ts +6 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +14 -0
- package/dist/utils/path.js.map +1 -0
- package/docs/planning/memory-lane.md +83 -0
- package/package.json +64 -0
- package/packaging/linux/aicgen.spec +23 -0
- package/packaging/linux/control +9 -0
- package/packaging/macos/scripts/postinstall +12 -0
- package/packaging/windows/setup.nsi +92 -0
- package/planning/BRANDING-SUMMARY.md +194 -0
- package/planning/BRANDING.md +174 -0
- package/planning/BUILD.md +186 -0
- package/planning/CHUNK-IMPLEMENTATION-PLAN.md +87 -0
- package/planning/CHUNK-TAXONOMY.md +375 -0
- package/planning/CHUNKS-COMPLETE.md +382 -0
- package/planning/DESIGN.md +313 -0
- package/planning/DYNAMIC-GUIDELINES-DESIGN.md +265 -0
- package/planning/ENTERPRISE-UX-COMPLETE.md +281 -0
- package/planning/IMPLEMENTATION-PLAN.md +20 -0
- package/planning/PHASE1-COMPLETE.md +211 -0
- package/planning/PHASE2-COMPLETE.md +350 -0
- package/planning/PHASE3-COMPLETE.md +399 -0
- package/planning/PHASE4-COMPLETE.md +361 -0
- package/planning/PHASE4.5-CHUNKS.md +462 -0
- package/planning/STRUCTURE.md +170 -0
- package/scripts/add-categories.ts +87 -0
- package/scripts/build-binary.ts +46 -0
- package/scripts/embed-data.ts +105 -0
- package/scripts/generate-version.ts +150 -0
- package/scripts/test-decompress.ts +27 -0
- package/scripts/test-extract.ts +31 -0
- package/src/__tests__/services/assistant-file-writer.test.ts +400 -0
- package/src/__tests__/services/guideline-loader.test.ts +281 -0
- package/src/__tests__/services/tarball-extraction.test.ts +125 -0
- package/src/commands/add-guideline.ts +296 -0
- package/src/commands/clear.ts +61 -0
- package/src/commands/guideline-selector.ts +123 -0
- package/src/commands/init.ts +645 -0
- package/src/commands/quick-add.ts +586 -0
- package/src/commands/remove-guideline.ts +152 -0
- package/src/commands/stats.ts +49 -0
- package/src/commands/update.ts +240 -0
- package/src/config.ts +82 -0
- package/src/embedded-data.ts +1492 -0
- package/src/index.ts +67 -0
- package/src/models/profile.ts +24 -0
- package/src/models/project.ts +43 -0
- package/src/services/assistant-file-writer.ts +612 -0
- package/src/services/config-generator.ts +150 -0
- package/src/services/config-manager.ts +70 -0
- package/src/services/data-source.ts +248 -0
- package/src/services/first-run-init.ts +148 -0
- package/src/services/guideline-loader.ts +311 -0
- package/src/services/hook-generator.ts +178 -0
- package/src/services/subagent-generator.ts +310 -0
- package/src/utils/banner.ts +66 -0
- package/src/utils/errors.ts +27 -0
- package/src/utils/file.ts +67 -0
- package/src/utils/formatting.ts +172 -0
- package/src/utils/logger.ts +89 -0
- package/src/utils/path.ts +17 -0
- package/src/utils/wizard-state.ts +132 -0
- package/tsconfig.json +25 -0
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
# Phase 4: Prebuilt Profile System - COMPLETE ✅
|
|
2
|
+
|
|
3
|
+
## What We Built
|
|
4
|
+
|
|
5
|
+
Phase 4 implements a **prebuilt profile system** for instant, offline config generation without AI assistance.
|
|
6
|
+
|
|
7
|
+
### Architecture
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
Build Time:
|
|
11
|
+
1. Generate all profile combinations (384 total)
|
|
12
|
+
2. Store as JSON file
|
|
13
|
+
3. Embed in binary
|
|
14
|
+
|
|
15
|
+
Runtime:
|
|
16
|
+
1. Load prebuilt profiles from memory
|
|
17
|
+
2. Find matching profile
|
|
18
|
+
3. Replace placeholders with real project data
|
|
19
|
+
4. Write files instantly (<100ms)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Key Components
|
|
23
|
+
|
|
24
|
+
### 1. Prebuild Script (`scripts/prebuild-profiles.ts`)
|
|
25
|
+
|
|
26
|
+
Generates all possible combinations at build time:
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
Assistants: 3 (claude-code, copilot, antigravity)
|
|
30
|
+
Languages: 8 (typescript, javascript, python, go, rust, java, csharp, ruby)
|
|
31
|
+
Levels: 4 (basic, standard, expert, full)
|
|
32
|
+
Architectures: 4 (modular-monolith, microservices, refactor, layered)
|
|
33
|
+
|
|
34
|
+
Total: 3 × 8 × 4 × 4 = 384 profiles
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**What it does:**
|
|
38
|
+
- Loops through all combinations
|
|
39
|
+
- Renders templates with placeholder values
|
|
40
|
+
- Stores in `src/prebuilt-profiles.json`
|
|
41
|
+
- Shows progress and statistics
|
|
42
|
+
|
|
43
|
+
### 2. Placeholder System
|
|
44
|
+
|
|
45
|
+
**Template uses placeholders:**
|
|
46
|
+
```markdown
|
|
47
|
+
# {{PROJECT_NAME}} - Development Instructions
|
|
48
|
+
|
|
49
|
+
**Language:** {{LANGUAGE}}
|
|
50
|
+
**Framework:** {{FRAMEWORK_NAME}}
|
|
51
|
+
**Database:** {{DATABASE_TYPE}}
|
|
52
|
+
**Team Size:** ~{{TEAM_SIZE}} developers
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Available placeholders:**
|
|
56
|
+
- `{{PROJECT_PATH}}` - Project directory
|
|
57
|
+
- `{{PROJECT_NAME}}` - Project name
|
|
58
|
+
- `{{LANGUAGE}}` - Primary language
|
|
59
|
+
- `{{FRAMEWORK_NAME}}` - Framework (Next.js, Django, etc.)
|
|
60
|
+
- `{{FRAMEWORK_VERSION}}` - Framework version
|
|
61
|
+
- `{{DATABASE_TYPE}}` - Database (postgresql, mongodb, etc.)
|
|
62
|
+
- `{{DATABASE_ORM}}` - ORM (prisma, drizzle, etc.)
|
|
63
|
+
- `{{PACKAGE_MANAGER}}` - npm, yarn, bun, etc.
|
|
64
|
+
- `{{TEAM_SIZE}}` - Estimated team size
|
|
65
|
+
- `{{FILE_COUNT}}` - Number of code files
|
|
66
|
+
- `{{COMPLEXITY}}` - simple, moderate, complex
|
|
67
|
+
- `{{HAS_TESTS}}` - true/false
|
|
68
|
+
- `{{HAS_CI}}` - true/false
|
|
69
|
+
- `{{HAS_DOCKER}}` - true/false
|
|
70
|
+
- `{{CONFIDENCE}}` - Language detection confidence %
|
|
71
|
+
- `{{TIMESTAMP}}` - Generation date
|
|
72
|
+
|
|
73
|
+
### 3. Prebuilt Profile Loader (`src/services/prebuilt-loader.ts`)
|
|
74
|
+
|
|
75
|
+
**Responsibilities:**
|
|
76
|
+
- Load profiles from JSON (embedded in binary)
|
|
77
|
+
- Find matching profile by key
|
|
78
|
+
- Personalize content by replacing placeholders
|
|
79
|
+
- Get statistics
|
|
80
|
+
|
|
81
|
+
**Usage:**
|
|
82
|
+
```typescript
|
|
83
|
+
const loader = new PrebuiltProfileLoader();
|
|
84
|
+
|
|
85
|
+
// Load profile
|
|
86
|
+
const profile = loader.load({
|
|
87
|
+
assistant: 'claude-code',
|
|
88
|
+
language: 'typescript',
|
|
89
|
+
level: 'standard',
|
|
90
|
+
architecture: 'modular-monolith'
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
// Personalize with real project data
|
|
94
|
+
const files = loader.personalize(profile, fingerprint);
|
|
95
|
+
// files = [
|
|
96
|
+
// { path: '.claude/instructions.md', content: '# my-app - ...' }
|
|
97
|
+
// ]
|
|
98
|
+
|
|
99
|
+
// Get stats
|
|
100
|
+
const stats = loader.getStats();
|
|
101
|
+
// stats.total = 384
|
|
102
|
+
// stats.byAssistant = { 'claude-code': 128, ... }
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 4. Updated Config Generator
|
|
106
|
+
|
|
107
|
+
**Before (Phase 2-3):**
|
|
108
|
+
```typescript
|
|
109
|
+
// Rendered templates dynamically
|
|
110
|
+
const content = await renderer.render(template, context);
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**After (Phase 4):**
|
|
114
|
+
```typescript
|
|
115
|
+
// Load prebuilt, personalize, done!
|
|
116
|
+
const profile = prebuiltLoader.load(selection);
|
|
117
|
+
const files = prebuiltLoader.personalize(profile, fingerprint);
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Benefits:**
|
|
121
|
+
- ⚡ 100x faster (no template rendering)
|
|
122
|
+
- 📴 Works offline (no file I/O for templates)
|
|
123
|
+
- 🎯 Deterministic (same input = same output)
|
|
124
|
+
- 💾 Small overhead (~1-2MB JSON)
|
|
125
|
+
|
|
126
|
+
## File Structure
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
scripts/
|
|
130
|
+
└── prebuild-profiles.ts ✅ Build-time generator
|
|
131
|
+
|
|
132
|
+
src/
|
|
133
|
+
├── services/
|
|
134
|
+
│ ├── prebuilt-loader.ts ✅ Runtime loader
|
|
135
|
+
│ └── config-generator.ts ✅ Updated to use prebuilt
|
|
136
|
+
└── prebuilt-profiles.json ✅ Generated (384 profiles)
|
|
137
|
+
|
|
138
|
+
package.json ✅ Added prebuild script
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Build Process
|
|
142
|
+
|
|
143
|
+
### 1. Generate Profiles
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
bun run prebuild
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
**Output:**
|
|
150
|
+
```
|
|
151
|
+
🏗️ Prebuilding all profile combinations...
|
|
152
|
+
|
|
153
|
+
✓ Generated 384/384 profiles
|
|
154
|
+
|
|
155
|
+
📦 Generated 384 profiles (0 skipped)
|
|
156
|
+
💾 Saved to: src/prebuilt-profiles.json (1.45 MB)
|
|
157
|
+
|
|
158
|
+
📊 Breakdown:
|
|
159
|
+
Assistants: 3
|
|
160
|
+
Languages: 8
|
|
161
|
+
Levels: 4
|
|
162
|
+
Architectures: 4
|
|
163
|
+
Total: 384 profiles
|
|
164
|
+
|
|
165
|
+
✨ Prebuild complete!
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 2. Build Binary
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
bun run build:binary
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Process:**
|
|
175
|
+
1. Runs `prebuild` script first
|
|
176
|
+
2. Generates `prebuilt-profiles.json`
|
|
177
|
+
3. Bundles JSON into binary
|
|
178
|
+
4. Creates standalone executable
|
|
179
|
+
|
|
180
|
+
**Result:**
|
|
181
|
+
- Executable contains all 384 profiles
|
|
182
|
+
- No external files needed
|
|
183
|
+
- Works completely offline
|
|
184
|
+
|
|
185
|
+
## Usage
|
|
186
|
+
|
|
187
|
+
### Interactive (Instant)
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
aicgen init
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Flow:**
|
|
194
|
+
1. Scans project (TypeScript, ~3 developers)
|
|
195
|
+
2. Recommends: Standard + Modular Monolith
|
|
196
|
+
3. User confirms
|
|
197
|
+
4. **Loads prebuilt profile** from memory
|
|
198
|
+
5. **Replaces placeholders** with project data
|
|
199
|
+
6. Writes files in <100ms ⚡
|
|
200
|
+
|
|
201
|
+
### Non-Interactive (Instant)
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
aicgen init \
|
|
205
|
+
--assistant claude-code \
|
|
206
|
+
--level standard \
|
|
207
|
+
--architecture modular-monolith
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Same speed, no prompts!
|
|
211
|
+
|
|
212
|
+
## Generated Output
|
|
213
|
+
|
|
214
|
+
**Before personalization (prebuilt):**
|
|
215
|
+
```markdown
|
|
216
|
+
# {{PROJECT_NAME}} - Development Instructions
|
|
217
|
+
|
|
218
|
+
**Language:** {{LANGUAGE}}
|
|
219
|
+
**Framework:** {{FRAMEWORK_NAME}}
|
|
220
|
+
**Team Size:** ~{{TEAM_SIZE}} developers
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**After personalization:**
|
|
224
|
+
```markdown
|
|
225
|
+
# my-app - Development Instructions
|
|
226
|
+
|
|
227
|
+
**Language:** typescript
|
|
228
|
+
**Framework:** Next.js
|
|
229
|
+
**Team Size:** ~3 developers
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## Performance Comparison
|
|
233
|
+
|
|
234
|
+
| Approach | Speed | Offline | Customization |
|
|
235
|
+
|----------|-------|---------|---------------|
|
|
236
|
+
| **Phase 2-3: Dynamic Templates** | ~1-2s | ❌ No (reads templates) | ✅ High |
|
|
237
|
+
| **Phase 4: Prebuilt** | <100ms | ✅ Yes | ⚡ Instant placeholders |
|
|
238
|
+
| **Phase 5: AI-Assisted** | ~5-10s | ❌ No (API calls) | ✅✅ Very High |
|
|
239
|
+
|
|
240
|
+
## Statistics
|
|
241
|
+
|
|
242
|
+
```typescript
|
|
243
|
+
const stats = generator.getPrebuiltStats();
|
|
244
|
+
|
|
245
|
+
console.log(stats);
|
|
246
|
+
// {
|
|
247
|
+
// total: 384,
|
|
248
|
+
// byAssistant: {
|
|
249
|
+
// 'claude-code': 128,
|
|
250
|
+
// 'copilot': 128,
|
|
251
|
+
// 'antigravity': 128
|
|
252
|
+
// },
|
|
253
|
+
// byLanguage: {
|
|
254
|
+
// 'typescript': 48,
|
|
255
|
+
// 'javascript': 48,
|
|
256
|
+
// 'python': 48,
|
|
257
|
+
// ...
|
|
258
|
+
// },
|
|
259
|
+
// byLevel: {
|
|
260
|
+
// 'basic': 96,
|
|
261
|
+
// 'standard': 96,
|
|
262
|
+
// 'expert': 96,
|
|
263
|
+
// 'full': 96
|
|
264
|
+
// },
|
|
265
|
+
// byArchitecture: {
|
|
266
|
+
// 'modular-monolith': 96,
|
|
267
|
+
// 'microservices': 96,
|
|
268
|
+
// 'refactor': 96,
|
|
269
|
+
// 'layered': 96
|
|
270
|
+
// }
|
|
271
|
+
// }
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## What's Next: Phase 5 (AI-Assisted)
|
|
275
|
+
|
|
276
|
+
**Coming next:**
|
|
277
|
+
- Use Anthropic API to customize prebuilt profiles
|
|
278
|
+
- Send project context + prebuilt profile to Claude
|
|
279
|
+
- Get highly personalized, context-aware configs
|
|
280
|
+
- Understand project nuances better
|
|
281
|
+
|
|
282
|
+
**How it will work:**
|
|
283
|
+
```typescript
|
|
284
|
+
// Phase 4: Prebuilt (current)
|
|
285
|
+
const profile = prebuiltLoader.load(selection);
|
|
286
|
+
const files = prebuiltLoader.personalize(profile, fingerprint);
|
|
287
|
+
|
|
288
|
+
// Phase 5: AI-assisted (next)
|
|
289
|
+
if (options.useAI) {
|
|
290
|
+
const prebuilt = prebuiltLoader.load(selection);
|
|
291
|
+
const customized = await claudeAPI.customize(prebuilt, fingerprint, guidelines);
|
|
292
|
+
const files = customized.files;
|
|
293
|
+
}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Benefit:** Best of both worlds
|
|
297
|
+
- Fast: Start with prebuilt
|
|
298
|
+
- Smart: Let Claude adapt to your specific project
|
|
299
|
+
- Contextual: Understands your codebase
|
|
300
|
+
|
|
301
|
+
## Success Criteria ✅
|
|
302
|
+
|
|
303
|
+
- [x] Prebuild script generates all 384 combinations
|
|
304
|
+
- [x] Profiles stored in JSON (~1-2MB)
|
|
305
|
+
- [x] Prebuilt loader loads from memory
|
|
306
|
+
- [x] Placeholder replacement works correctly
|
|
307
|
+
- [x] Generator uses prebuilt profiles
|
|
308
|
+
- [x] Build process includes prebuild step
|
|
309
|
+
- [x] Generation time <100ms
|
|
310
|
+
- [x] Works completely offline
|
|
311
|
+
- [x] Binary includes all profiles
|
|
312
|
+
|
|
313
|
+
## Testing Phase 4
|
|
314
|
+
|
|
315
|
+
### 1. Generate Profiles
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
bun run prebuild
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
**Expected:** Creates `src/prebuilt-profiles.json` with 384 profiles
|
|
322
|
+
|
|
323
|
+
### 2. Test Interactive Mode
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
bun run src/index.ts init
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
**Expected:** Fast, instant generation with personalized values
|
|
330
|
+
|
|
331
|
+
### 3. Test Non-Interactive
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
bun run src/index.ts init \
|
|
335
|
+
--assistant claude-code \
|
|
336
|
+
--level standard \
|
|
337
|
+
--architecture modular-monolith
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
**Expected:** Same fast generation, no prompts
|
|
341
|
+
|
|
342
|
+
### 4. Verify Personalization
|
|
343
|
+
|
|
344
|
+
Check generated `.claude/instructions.md`:
|
|
345
|
+
```bash
|
|
346
|
+
cat .claude/instructions.md | head -20
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
**Expected:** Real project name, framework, database (not placeholders)
|
|
350
|
+
|
|
351
|
+
## Summary
|
|
352
|
+
|
|
353
|
+
Phase 4 delivers:
|
|
354
|
+
- ✅ **384 prebuilt profiles** covering all combinations
|
|
355
|
+
- ✅ **Instant generation** (<100ms)
|
|
356
|
+
- ✅ **Offline support** (no network, no file I/O)
|
|
357
|
+
- ✅ **Smart personalization** (project-specific placeholders)
|
|
358
|
+
- ✅ **Small overhead** (~1-2MB JSON)
|
|
359
|
+
- ✅ **Embedded in binary** (single executable)
|
|
360
|
+
|
|
361
|
+
**Ready for Phase 5:** AI-assisted customization on top of prebuilt profiles!
|