create-universal-ai-context 2.0.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/LICENSE +21 -0
- package/README.md +171 -0
- package/bin/create-ai-context.js +337 -0
- package/lib/adapters/antigravity.js +160 -0
- package/lib/adapters/claude.js +122 -0
- package/lib/adapters/cline.js +111 -0
- package/lib/adapters/copilot.js +117 -0
- package/lib/adapters/index.js +69 -0
- package/lib/ai-context-generator.js +234 -0
- package/lib/ai-orchestrator.js +431 -0
- package/lib/call-tracer.js +444 -0
- package/lib/detector.js +726 -0
- package/lib/environment-detector.js +239 -0
- package/lib/index.js +310 -0
- package/lib/installer.js +418 -0
- package/lib/migrate.js +319 -0
- package/lib/placeholder.js +541 -0
- package/lib/prompts.js +287 -0
- package/lib/spinner.js +60 -0
- package/lib/static-analyzer.js +729 -0
- package/lib/template-populator.js +843 -0
- package/lib/template-renderer.js +382 -0
- package/lib/validate.js +155 -0
- package/package.json +70 -0
- package/templates/AI_CONTEXT.md.template +245 -0
- package/templates/base/README.md +257 -0
- package/templates/base/RPI_WORKFLOW_PLAN.md +320 -0
- package/templates/base/agents/api-developer.md +76 -0
- package/templates/base/agents/context-engineer.md +525 -0
- package/templates/base/agents/core-architect.md +76 -0
- package/templates/base/agents/database-ops.md +76 -0
- package/templates/base/agents/deployment-ops.md +76 -0
- package/templates/base/agents/integration-hub.md +76 -0
- package/templates/base/analytics/README.md +114 -0
- package/templates/base/automation/config.json +58 -0
- package/templates/base/automation/generators/code-mapper.js +308 -0
- package/templates/base/automation/generators/index-builder.js +321 -0
- package/templates/base/automation/hooks/post-commit.sh +83 -0
- package/templates/base/automation/hooks/pre-commit.sh +103 -0
- package/templates/base/ci-templates/README.md +108 -0
- package/templates/base/ci-templates/github-actions/context-check.yml +144 -0
- package/templates/base/ci-templates/github-actions/validate-docs.yml +105 -0
- package/templates/base/commands/analytics.md +238 -0
- package/templates/base/commands/auto-sync.md +172 -0
- package/templates/base/commands/collab.md +194 -0
- package/templates/base/commands/help.md +450 -0
- package/templates/base/commands/rpi-implement.md +115 -0
- package/templates/base/commands/rpi-plan.md +93 -0
- package/templates/base/commands/rpi-research.md +88 -0
- package/templates/base/commands/session-resume.md +144 -0
- package/templates/base/commands/session-save.md +112 -0
- package/templates/base/commands/validate-all.md +77 -0
- package/templates/base/commands/verify-docs-current.md +86 -0
- package/templates/base/config/base.json +57 -0
- package/templates/base/config/environments/development.json +13 -0
- package/templates/base/config/environments/production.json +17 -0
- package/templates/base/config/environments/staging.json +13 -0
- package/templates/base/config/local.json.example +21 -0
- package/templates/base/context/.meta/generated-at.json +18 -0
- package/templates/base/context/ARCHITECTURE_SNAPSHOT.md +156 -0
- package/templates/base/context/CODE_TO_WORKFLOW_MAP.md +94 -0
- package/templates/base/context/FILE_OWNERSHIP.md +57 -0
- package/templates/base/context/INTEGRATION_POINTS.md +92 -0
- package/templates/base/context/KNOWN_GOTCHAS.md +195 -0
- package/templates/base/context/TESTING_MAP.md +95 -0
- package/templates/base/context/WORKFLOW_INDEX.md +129 -0
- package/templates/base/context/workflows/WORKFLOW_TEMPLATE.md +294 -0
- package/templates/base/indexes/agents/CAPABILITY_MATRIX.md +255 -0
- package/templates/base/indexes/agents/CATEGORY_INDEX.md +44 -0
- package/templates/base/indexes/code/CATEGORY_INDEX.md +38 -0
- package/templates/base/indexes/routing/CATEGORY_INDEX.md +39 -0
- package/templates/base/indexes/search/CATEGORY_INDEX.md +39 -0
- package/templates/base/indexes/workflows/CATEGORY_INDEX.md +38 -0
- package/templates/base/knowledge/README.md +98 -0
- package/templates/base/knowledge/sessions/README.md +88 -0
- package/templates/base/knowledge/sessions/TEMPLATE.md +150 -0
- package/templates/base/knowledge/shared/decisions/0001-adopt-context-engineering.md +144 -0
- package/templates/base/knowledge/shared/decisions/README.md +49 -0
- package/templates/base/knowledge/shared/decisions/TEMPLATE.md +123 -0
- package/templates/base/knowledge/shared/patterns/README.md +62 -0
- package/templates/base/knowledge/shared/patterns/TEMPLATE.md +120 -0
- package/templates/base/plans/PLAN_TEMPLATE.md +250 -0
- package/templates/base/plans/active/.gitkeep +0 -0
- package/templates/base/plans/completed/.gitkeep +0 -0
- package/templates/base/research/RESEARCH_TEMPLATE.md +153 -0
- package/templates/base/research/active/.gitkeep +0 -0
- package/templates/base/research/completed/.gitkeep +0 -0
- package/templates/base/schemas/agent.schema.json +141 -0
- package/templates/base/schemas/anchors.schema.json +54 -0
- package/templates/base/schemas/automation.schema.json +93 -0
- package/templates/base/schemas/command.schema.json +134 -0
- package/templates/base/schemas/hashes.schema.json +40 -0
- package/templates/base/schemas/manifest.schema.json +117 -0
- package/templates/base/schemas/plan.schema.json +136 -0
- package/templates/base/schemas/research.schema.json +115 -0
- package/templates/base/schemas/roles.schema.json +34 -0
- package/templates/base/schemas/session.schema.json +77 -0
- package/templates/base/schemas/settings.schema.json +244 -0
- package/templates/base/schemas/staleness.schema.json +53 -0
- package/templates/base/schemas/team-config.schema.json +42 -0
- package/templates/base/schemas/workflow.schema.json +126 -0
- package/templates/base/session/checkpoints/.gitkeep +2 -0
- package/templates/base/session/current/state.json +20 -0
- package/templates/base/session/history/.gitkeep +2 -0
- package/templates/base/settings.json +3 -0
- package/templates/base/standards/COMPATIBILITY.md +219 -0
- package/templates/base/standards/EXTENSION_GUIDELINES.md +280 -0
- package/templates/base/standards/QUALITY_CHECKLIST.md +211 -0
- package/templates/base/standards/README.md +66 -0
- package/templates/base/sync/anchors.json +6 -0
- package/templates/base/sync/hashes.json +6 -0
- package/templates/base/sync/staleness.json +10 -0
- package/templates/base/team/README.md +168 -0
- package/templates/base/team/config.json +79 -0
- package/templates/base/team/roles.json +145 -0
- package/templates/base/tools/bin/claude-context.js +151 -0
- package/templates/base/tools/lib/anchor-resolver.js +276 -0
- package/templates/base/tools/lib/config-loader.js +363 -0
- package/templates/base/tools/lib/detector.js +350 -0
- package/templates/base/tools/lib/diagnose.js +206 -0
- package/templates/base/tools/lib/drift-detector.js +373 -0
- package/templates/base/tools/lib/errors.js +199 -0
- package/templates/base/tools/lib/index.js +36 -0
- package/templates/base/tools/lib/init.js +192 -0
- package/templates/base/tools/lib/logger.js +230 -0
- package/templates/base/tools/lib/placeholder.js +201 -0
- package/templates/base/tools/lib/session-manager.js +354 -0
- package/templates/base/tools/lib/validate.js +521 -0
- package/templates/base/tools/package.json +49 -0
- package/templates/handlebars/antigravity.hbs +337 -0
- package/templates/handlebars/claude.hbs +184 -0
- package/templates/handlebars/cline.hbs +63 -0
- package/templates/handlebars/copilot.hbs +131 -0
- package/templates/handlebars/partials/gotcha-list.hbs +11 -0
- package/templates/handlebars/partials/header.hbs +3 -0
- package/templates/handlebars/partials/workflow-summary.hbs +16 -0
package/lib/installer.js
ADDED
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Context Engineering - File Installer
|
|
3
|
+
*
|
|
4
|
+
* Handles copying template files and creating directory structure.
|
|
5
|
+
* Supports multiple AI tools: Claude, Copilot, Cline, Antigravity.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
const fs = require('fs');
|
|
9
|
+
const path = require('path');
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Context directory name (universal)
|
|
13
|
+
*/
|
|
14
|
+
const AI_CONTEXT_DIR = '.ai-context';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Root context file name (universal)
|
|
18
|
+
*/
|
|
19
|
+
const AI_CONTEXT_FILE = 'AI_CONTEXT.md';
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Directory structure for .ai-context/
|
|
23
|
+
*/
|
|
24
|
+
const DIRECTORY_STRUCTURE = [
|
|
25
|
+
'agents',
|
|
26
|
+
'automation',
|
|
27
|
+
'automation/generators',
|
|
28
|
+
'automation/hooks',
|
|
29
|
+
'commands',
|
|
30
|
+
'config',
|
|
31
|
+
'config/environments',
|
|
32
|
+
'context',
|
|
33
|
+
'context/workflows',
|
|
34
|
+
'context/.meta',
|
|
35
|
+
'federation',
|
|
36
|
+
'federation/registry',
|
|
37
|
+
'indexes',
|
|
38
|
+
'indexes/agents',
|
|
39
|
+
'indexes/code',
|
|
40
|
+
'indexes/routing',
|
|
41
|
+
'indexes/search',
|
|
42
|
+
'indexes/workflows',
|
|
43
|
+
'knowledge',
|
|
44
|
+
'knowledge/sessions',
|
|
45
|
+
'knowledge/shared',
|
|
46
|
+
'knowledge/shared/decisions',
|
|
47
|
+
'knowledge/shared/patterns',
|
|
48
|
+
'plans',
|
|
49
|
+
'plans/active',
|
|
50
|
+
'plans/completed',
|
|
51
|
+
'research',
|
|
52
|
+
'research/active',
|
|
53
|
+
'research/completed',
|
|
54
|
+
'schemas',
|
|
55
|
+
'session',
|
|
56
|
+
'session/current',
|
|
57
|
+
'session/history',
|
|
58
|
+
'session/checkpoints',
|
|
59
|
+
'standards',
|
|
60
|
+
'sync',
|
|
61
|
+
'team',
|
|
62
|
+
'ci-templates',
|
|
63
|
+
'ci-templates/github-actions',
|
|
64
|
+
'tools',
|
|
65
|
+
'tools/bin',
|
|
66
|
+
'tools/lib',
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Create the .ai-context directory structure
|
|
71
|
+
*/
|
|
72
|
+
async function createDirectoryStructure(targetDir, config = {}) {
|
|
73
|
+
const contextDir = path.join(targetDir, AI_CONTEXT_DIR);
|
|
74
|
+
|
|
75
|
+
// Create main .ai-context directory
|
|
76
|
+
if (!fs.existsSync(contextDir)) {
|
|
77
|
+
fs.mkdirSync(contextDir, { recursive: true });
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
let dirsCreated = 0;
|
|
81
|
+
|
|
82
|
+
// Filter directories based on features
|
|
83
|
+
let dirsToCreate = [...DIRECTORY_STRUCTURE];
|
|
84
|
+
|
|
85
|
+
if (!config.features?.ci) {
|
|
86
|
+
dirsToCreate = dirsToCreate.filter(d => !d.startsWith('ci-templates'));
|
|
87
|
+
}
|
|
88
|
+
if (!config.features?.team) {
|
|
89
|
+
dirsToCreate = dirsToCreate.filter(d => !d.startsWith('team') && !d.includes('knowledge'));
|
|
90
|
+
}
|
|
91
|
+
if (!config.features?.analytics) {
|
|
92
|
+
dirsToCreate = dirsToCreate.filter(d => !d.startsWith('analytics'));
|
|
93
|
+
}
|
|
94
|
+
if (!config.monorepo) {
|
|
95
|
+
// Keep federation directory but it won't be heavily populated
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Create each directory
|
|
99
|
+
for (const dir of dirsToCreate) {
|
|
100
|
+
const fullPath = path.join(contextDir, dir);
|
|
101
|
+
if (!fs.existsSync(fullPath)) {
|
|
102
|
+
fs.mkdirSync(fullPath, { recursive: true });
|
|
103
|
+
dirsCreated++;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return dirsCreated;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Copy template files from the bundled templates
|
|
112
|
+
*/
|
|
113
|
+
async function copyTemplates(targetDir, config = {}) {
|
|
114
|
+
const contextDir = path.join(targetDir, AI_CONTEXT_DIR);
|
|
115
|
+
const templatesDir = path.join(__dirname, '..', 'templates', 'base');
|
|
116
|
+
|
|
117
|
+
let filesCopied = 0;
|
|
118
|
+
|
|
119
|
+
// Check if templates exist
|
|
120
|
+
if (!fs.existsSync(templatesDir)) {
|
|
121
|
+
// If no bundled templates, create minimal files
|
|
122
|
+
filesCopied = await createMinimalFiles(contextDir, config);
|
|
123
|
+
return filesCopied;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Copy all files from templates
|
|
127
|
+
filesCopied = await copyDirectory(templatesDir, contextDir);
|
|
128
|
+
|
|
129
|
+
return filesCopied;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Recursively copy a directory
|
|
134
|
+
*/
|
|
135
|
+
async function copyDirectory(src, dest) {
|
|
136
|
+
let count = 0;
|
|
137
|
+
|
|
138
|
+
if (!fs.existsSync(src)) {
|
|
139
|
+
return count;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
const entries = fs.readdirSync(src, { withFileTypes: true });
|
|
143
|
+
|
|
144
|
+
for (const entry of entries) {
|
|
145
|
+
const srcPath = path.join(src, entry.name);
|
|
146
|
+
const destPath = path.join(dest, entry.name);
|
|
147
|
+
|
|
148
|
+
if (entry.isDirectory()) {
|
|
149
|
+
if (!fs.existsSync(destPath)) {
|
|
150
|
+
fs.mkdirSync(destPath, { recursive: true });
|
|
151
|
+
}
|
|
152
|
+
count += await copyDirectory(srcPath, destPath);
|
|
153
|
+
} else {
|
|
154
|
+
// Copy file
|
|
155
|
+
fs.copyFileSync(srcPath, destPath);
|
|
156
|
+
count++;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return count;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Create minimal files when no templates are bundled
|
|
165
|
+
*/
|
|
166
|
+
async function createMinimalFiles(contextDir, config = {}) {
|
|
167
|
+
let count = 0;
|
|
168
|
+
|
|
169
|
+
// README.md
|
|
170
|
+
const readmeContent = `# .ai-context Configuration - ${config.projectName || 'Project'}
|
|
171
|
+
|
|
172
|
+
This directory contains the AI Context Engineering system.
|
|
173
|
+
|
|
174
|
+
## Supported AI Tools
|
|
175
|
+
|
|
176
|
+
- **Claude Code** - Full context in AI_CONTEXT.md
|
|
177
|
+
- **GitHub Copilot** - .github/copilot-instructions.md
|
|
178
|
+
- **Cline** - .clinerules
|
|
179
|
+
- **Antigravity** - .agent/ directory
|
|
180
|
+
|
|
181
|
+
## Quick Start
|
|
182
|
+
|
|
183
|
+
1. Load workflow index: Read \`.ai-context/context/WORKFLOW_INDEX.md\`
|
|
184
|
+
2. Use RPI workflow: /rpi-research → /rpi-plan → /rpi-implement
|
|
185
|
+
3. Validate changes: /verify-docs-current
|
|
186
|
+
|
|
187
|
+
## Configuration
|
|
188
|
+
|
|
189
|
+
- **Agents**: ${config.features?.agents ? '6 specialized agents' : 'disabled'}
|
|
190
|
+
- **Commands**: ${config.features?.rpi ? 'RPI workflow + validation' : 'basic'}
|
|
191
|
+
- **Context Budget**: 200k tokens max, target <40%
|
|
192
|
+
|
|
193
|
+
*Generated by create-ai-context v2.0*
|
|
194
|
+
`;
|
|
195
|
+
fs.writeFileSync(path.join(contextDir, 'README.md'), readmeContent);
|
|
196
|
+
count++;
|
|
197
|
+
|
|
198
|
+
// settings.json
|
|
199
|
+
const settingsContent = {
|
|
200
|
+
'$schema': './schemas/settings.schema.json',
|
|
201
|
+
version: '2.0.0',
|
|
202
|
+
project: {
|
|
203
|
+
name: config.projectName || 'my-project',
|
|
204
|
+
status: 'development'
|
|
205
|
+
},
|
|
206
|
+
context: {
|
|
207
|
+
maxTokens: 200000,
|
|
208
|
+
targetUtilization: 0.4
|
|
209
|
+
},
|
|
210
|
+
aiTools: {
|
|
211
|
+
claude: { enabled: true },
|
|
212
|
+
copilot: { enabled: true },
|
|
213
|
+
cline: { enabled: true },
|
|
214
|
+
antigravity: { enabled: false }
|
|
215
|
+
},
|
|
216
|
+
validation: {
|
|
217
|
+
lineAccuracyThreshold: 60,
|
|
218
|
+
onCommit: true
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
fs.writeFileSync(
|
|
222
|
+
path.join(contextDir, 'settings.json'),
|
|
223
|
+
JSON.stringify(settingsContent, null, 2)
|
|
224
|
+
);
|
|
225
|
+
count++;
|
|
226
|
+
|
|
227
|
+
// WORKFLOW_INDEX.md
|
|
228
|
+
const workflowIndexContent = `# Workflow Index
|
|
229
|
+
|
|
230
|
+
## Primary Workflows
|
|
231
|
+
|
|
232
|
+
| Workflow | Entry Point | Description |
|
|
233
|
+
|----------|-------------|-------------|
|
|
234
|
+
| *To be discovered* | - | Run static analysis or AI to populate |
|
|
235
|
+
|
|
236
|
+
## Quick Reference
|
|
237
|
+
|
|
238
|
+
- Use \`/rpi-research\` to discover workflows
|
|
239
|
+
- Use \`@context-engineer\` for Claude-enhanced setup
|
|
240
|
+
|
|
241
|
+
*Run analysis to populate this index.*
|
|
242
|
+
`;
|
|
243
|
+
fs.writeFileSync(
|
|
244
|
+
path.join(contextDir, 'context', 'WORKFLOW_INDEX.md'),
|
|
245
|
+
workflowIndexContent
|
|
246
|
+
);
|
|
247
|
+
count++;
|
|
248
|
+
|
|
249
|
+
// RPI_WORKFLOW_PLAN.md
|
|
250
|
+
const rpiContent = `# RPI (Research, Plan, Implement) Workflow
|
|
251
|
+
|
|
252
|
+
## Phase 1: RESEARCH (/rpi-research)
|
|
253
|
+
- Explore codebase using parallel agents
|
|
254
|
+
- Output: Research document in \`.ai-context/research/active/\`
|
|
255
|
+
|
|
256
|
+
## Phase 2: PLAN (/rpi-plan)
|
|
257
|
+
- Create implementation blueprint with file:line precision
|
|
258
|
+
- Output: Plan document in \`.ai-context/plans/active/\`
|
|
259
|
+
|
|
260
|
+
## Phase 3: IMPLEMENT (/rpi-implement)
|
|
261
|
+
- Execute with atomic changes
|
|
262
|
+
- ONE CHANGE → ONE TEST → ONE COMMIT
|
|
263
|
+
|
|
264
|
+
## Context Budget
|
|
265
|
+
- Research: 25-30%
|
|
266
|
+
- Plan: 20-25%
|
|
267
|
+
- Implement: 30-40%
|
|
268
|
+
`;
|
|
269
|
+
fs.writeFileSync(path.join(contextDir, 'RPI_WORKFLOW_PLAN.md'), rpiContent);
|
|
270
|
+
count++;
|
|
271
|
+
|
|
272
|
+
// Create placeholder files for research and plans
|
|
273
|
+
const researchTemplate = `# Research Template
|
|
274
|
+
|
|
275
|
+
Use this template for RPI Research phase.
|
|
276
|
+
|
|
277
|
+
## Objective
|
|
278
|
+
[What you're researching]
|
|
279
|
+
|
|
280
|
+
## Files Explored
|
|
281
|
+
| File | Lines | Findings |
|
|
282
|
+
|------|-------|----------|
|
|
283
|
+
|
|
284
|
+
## Summary
|
|
285
|
+
[150 words max]
|
|
286
|
+
`;
|
|
287
|
+
fs.writeFileSync(
|
|
288
|
+
path.join(contextDir, 'research', 'RESEARCH_TEMPLATE.md'),
|
|
289
|
+
researchTemplate
|
|
290
|
+
);
|
|
291
|
+
count++;
|
|
292
|
+
|
|
293
|
+
const planTemplate = `# Plan Template
|
|
294
|
+
|
|
295
|
+
Use this template for RPI Plan phase.
|
|
296
|
+
|
|
297
|
+
## Research Summary
|
|
298
|
+
[From Phase 1]
|
|
299
|
+
|
|
300
|
+
## Files to Modify
|
|
301
|
+
| File | Lines | Change | Risk |
|
|
302
|
+
|------|-------|--------|------|
|
|
303
|
+
|
|
304
|
+
## Steps
|
|
305
|
+
1. Step 1
|
|
306
|
+
2. Step 2
|
|
307
|
+
|
|
308
|
+
## Rollback Plan
|
|
309
|
+
- Revert: \`git revert HEAD\`
|
|
310
|
+
`;
|
|
311
|
+
fs.writeFileSync(
|
|
312
|
+
path.join(contextDir, 'plans', 'PLAN_TEMPLATE.md'),
|
|
313
|
+
planTemplate
|
|
314
|
+
);
|
|
315
|
+
count++;
|
|
316
|
+
|
|
317
|
+
return count;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Create AI_CONTEXT.md at project root
|
|
322
|
+
*/
|
|
323
|
+
async function createAiContextMd(targetDir, config = {}, techStack = {}) {
|
|
324
|
+
const aiContextPath = path.join(targetDir, AI_CONTEXT_FILE);
|
|
325
|
+
|
|
326
|
+
// Check for template
|
|
327
|
+
const templatePath = path.join(__dirname, '..', 'templates', 'AI_CONTEXT.md.template');
|
|
328
|
+
|
|
329
|
+
let content;
|
|
330
|
+
|
|
331
|
+
if (fs.existsSync(templatePath)) {
|
|
332
|
+
content = fs.readFileSync(templatePath, 'utf8');
|
|
333
|
+
} else {
|
|
334
|
+
// Create minimal AI_CONTEXT.md
|
|
335
|
+
content = `# AI_CONTEXT.md - ${config.projectName || 'Project'}
|
|
336
|
+
|
|
337
|
+
This file provides guidance to AI coding assistants when working with this repository.
|
|
338
|
+
|
|
339
|
+
---
|
|
340
|
+
|
|
341
|
+
## Project Identity
|
|
342
|
+
|
|
343
|
+
**Platform:** ${config.projectName || 'Project'} application
|
|
344
|
+
**Tech Stack:** ${techStack.summary || techStack.stack || 'Not detected'}
|
|
345
|
+
**Status:** Development
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## Essential Commands
|
|
350
|
+
|
|
351
|
+
### Development
|
|
352
|
+
\`\`\`bash
|
|
353
|
+
${techStack.commands?.install || 'npm install'}
|
|
354
|
+
${techStack.commands?.dev || 'npm run dev'}
|
|
355
|
+
\`\`\`
|
|
356
|
+
|
|
357
|
+
### Testing
|
|
358
|
+
\`\`\`bash
|
|
359
|
+
${techStack.commands?.test || 'npm test'}
|
|
360
|
+
\`\`\`
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## Navigation Rules
|
|
365
|
+
|
|
366
|
+
### High-Level Task
|
|
367
|
+
1. Start: [.ai-context/context/WORKFLOW_INDEX.md](./.ai-context/context/WORKFLOW_INDEX.md)
|
|
368
|
+
2. Load relevant workflow
|
|
369
|
+
3. Implement with context
|
|
370
|
+
|
|
371
|
+
### Feature Development
|
|
372
|
+
1. /rpi-research - Explore codebase
|
|
373
|
+
2. /rpi-plan - Create blueprint
|
|
374
|
+
3. /rpi-implement - Execute with tests
|
|
375
|
+
|
|
376
|
+
---
|
|
377
|
+
|
|
378
|
+
## Documentation System
|
|
379
|
+
|
|
380
|
+
**Navigation:** 3-level chain (AI_CONTEXT.md → Category → Domain → Detail)
|
|
381
|
+
**Validation:** Run /verify-docs-current after modifications
|
|
382
|
+
**RPI Workflow:** /rpi-research → /rpi-plan → /rpi-implement
|
|
383
|
+
|
|
384
|
+
See: [.ai-context/RPI_WORKFLOW_PLAN.md](./.ai-context/RPI_WORKFLOW_PLAN.md)
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## AI Tools Configuration
|
|
389
|
+
|
|
390
|
+
This context is optimized for:
|
|
391
|
+
- **Claude Code** - Full context reading
|
|
392
|
+
- **GitHub Copilot** - See \`.github/copilot-instructions.md\`
|
|
393
|
+
- **Cline** - See \`.clinerules\`
|
|
394
|
+
- **Antigravity** - See \`.agent/\` directory
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
*Generated by create-ai-context v2.0*
|
|
399
|
+
`;
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
fs.writeFileSync(aiContextPath, content);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Legacy alias for backward compatibility
|
|
407
|
+
*/
|
|
408
|
+
const createClaudeMd = createAiContextMd;
|
|
409
|
+
|
|
410
|
+
module.exports = {
|
|
411
|
+
createDirectoryStructure,
|
|
412
|
+
copyTemplates,
|
|
413
|
+
createAiContextMd,
|
|
414
|
+
createClaudeMd, // Legacy alias
|
|
415
|
+
DIRECTORY_STRUCTURE,
|
|
416
|
+
AI_CONTEXT_DIR,
|
|
417
|
+
AI_CONTEXT_FILE,
|
|
418
|
+
};
|