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.
Files changed (136) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +171 -0
  3. package/bin/create-ai-context.js +337 -0
  4. package/lib/adapters/antigravity.js +160 -0
  5. package/lib/adapters/claude.js +122 -0
  6. package/lib/adapters/cline.js +111 -0
  7. package/lib/adapters/copilot.js +117 -0
  8. package/lib/adapters/index.js +69 -0
  9. package/lib/ai-context-generator.js +234 -0
  10. package/lib/ai-orchestrator.js +431 -0
  11. package/lib/call-tracer.js +444 -0
  12. package/lib/detector.js +726 -0
  13. package/lib/environment-detector.js +239 -0
  14. package/lib/index.js +310 -0
  15. package/lib/installer.js +418 -0
  16. package/lib/migrate.js +319 -0
  17. package/lib/placeholder.js +541 -0
  18. package/lib/prompts.js +287 -0
  19. package/lib/spinner.js +60 -0
  20. package/lib/static-analyzer.js +729 -0
  21. package/lib/template-populator.js +843 -0
  22. package/lib/template-renderer.js +382 -0
  23. package/lib/validate.js +155 -0
  24. package/package.json +70 -0
  25. package/templates/AI_CONTEXT.md.template +245 -0
  26. package/templates/base/README.md +257 -0
  27. package/templates/base/RPI_WORKFLOW_PLAN.md +320 -0
  28. package/templates/base/agents/api-developer.md +76 -0
  29. package/templates/base/agents/context-engineer.md +525 -0
  30. package/templates/base/agents/core-architect.md +76 -0
  31. package/templates/base/agents/database-ops.md +76 -0
  32. package/templates/base/agents/deployment-ops.md +76 -0
  33. package/templates/base/agents/integration-hub.md +76 -0
  34. package/templates/base/analytics/README.md +114 -0
  35. package/templates/base/automation/config.json +58 -0
  36. package/templates/base/automation/generators/code-mapper.js +308 -0
  37. package/templates/base/automation/generators/index-builder.js +321 -0
  38. package/templates/base/automation/hooks/post-commit.sh +83 -0
  39. package/templates/base/automation/hooks/pre-commit.sh +103 -0
  40. package/templates/base/ci-templates/README.md +108 -0
  41. package/templates/base/ci-templates/github-actions/context-check.yml +144 -0
  42. package/templates/base/ci-templates/github-actions/validate-docs.yml +105 -0
  43. package/templates/base/commands/analytics.md +238 -0
  44. package/templates/base/commands/auto-sync.md +172 -0
  45. package/templates/base/commands/collab.md +194 -0
  46. package/templates/base/commands/help.md +450 -0
  47. package/templates/base/commands/rpi-implement.md +115 -0
  48. package/templates/base/commands/rpi-plan.md +93 -0
  49. package/templates/base/commands/rpi-research.md +88 -0
  50. package/templates/base/commands/session-resume.md +144 -0
  51. package/templates/base/commands/session-save.md +112 -0
  52. package/templates/base/commands/validate-all.md +77 -0
  53. package/templates/base/commands/verify-docs-current.md +86 -0
  54. package/templates/base/config/base.json +57 -0
  55. package/templates/base/config/environments/development.json +13 -0
  56. package/templates/base/config/environments/production.json +17 -0
  57. package/templates/base/config/environments/staging.json +13 -0
  58. package/templates/base/config/local.json.example +21 -0
  59. package/templates/base/context/.meta/generated-at.json +18 -0
  60. package/templates/base/context/ARCHITECTURE_SNAPSHOT.md +156 -0
  61. package/templates/base/context/CODE_TO_WORKFLOW_MAP.md +94 -0
  62. package/templates/base/context/FILE_OWNERSHIP.md +57 -0
  63. package/templates/base/context/INTEGRATION_POINTS.md +92 -0
  64. package/templates/base/context/KNOWN_GOTCHAS.md +195 -0
  65. package/templates/base/context/TESTING_MAP.md +95 -0
  66. package/templates/base/context/WORKFLOW_INDEX.md +129 -0
  67. package/templates/base/context/workflows/WORKFLOW_TEMPLATE.md +294 -0
  68. package/templates/base/indexes/agents/CAPABILITY_MATRIX.md +255 -0
  69. package/templates/base/indexes/agents/CATEGORY_INDEX.md +44 -0
  70. package/templates/base/indexes/code/CATEGORY_INDEX.md +38 -0
  71. package/templates/base/indexes/routing/CATEGORY_INDEX.md +39 -0
  72. package/templates/base/indexes/search/CATEGORY_INDEX.md +39 -0
  73. package/templates/base/indexes/workflows/CATEGORY_INDEX.md +38 -0
  74. package/templates/base/knowledge/README.md +98 -0
  75. package/templates/base/knowledge/sessions/README.md +88 -0
  76. package/templates/base/knowledge/sessions/TEMPLATE.md +150 -0
  77. package/templates/base/knowledge/shared/decisions/0001-adopt-context-engineering.md +144 -0
  78. package/templates/base/knowledge/shared/decisions/README.md +49 -0
  79. package/templates/base/knowledge/shared/decisions/TEMPLATE.md +123 -0
  80. package/templates/base/knowledge/shared/patterns/README.md +62 -0
  81. package/templates/base/knowledge/shared/patterns/TEMPLATE.md +120 -0
  82. package/templates/base/plans/PLAN_TEMPLATE.md +250 -0
  83. package/templates/base/plans/active/.gitkeep +0 -0
  84. package/templates/base/plans/completed/.gitkeep +0 -0
  85. package/templates/base/research/RESEARCH_TEMPLATE.md +153 -0
  86. package/templates/base/research/active/.gitkeep +0 -0
  87. package/templates/base/research/completed/.gitkeep +0 -0
  88. package/templates/base/schemas/agent.schema.json +141 -0
  89. package/templates/base/schemas/anchors.schema.json +54 -0
  90. package/templates/base/schemas/automation.schema.json +93 -0
  91. package/templates/base/schemas/command.schema.json +134 -0
  92. package/templates/base/schemas/hashes.schema.json +40 -0
  93. package/templates/base/schemas/manifest.schema.json +117 -0
  94. package/templates/base/schemas/plan.schema.json +136 -0
  95. package/templates/base/schemas/research.schema.json +115 -0
  96. package/templates/base/schemas/roles.schema.json +34 -0
  97. package/templates/base/schemas/session.schema.json +77 -0
  98. package/templates/base/schemas/settings.schema.json +244 -0
  99. package/templates/base/schemas/staleness.schema.json +53 -0
  100. package/templates/base/schemas/team-config.schema.json +42 -0
  101. package/templates/base/schemas/workflow.schema.json +126 -0
  102. package/templates/base/session/checkpoints/.gitkeep +2 -0
  103. package/templates/base/session/current/state.json +20 -0
  104. package/templates/base/session/history/.gitkeep +2 -0
  105. package/templates/base/settings.json +3 -0
  106. package/templates/base/standards/COMPATIBILITY.md +219 -0
  107. package/templates/base/standards/EXTENSION_GUIDELINES.md +280 -0
  108. package/templates/base/standards/QUALITY_CHECKLIST.md +211 -0
  109. package/templates/base/standards/README.md +66 -0
  110. package/templates/base/sync/anchors.json +6 -0
  111. package/templates/base/sync/hashes.json +6 -0
  112. package/templates/base/sync/staleness.json +10 -0
  113. package/templates/base/team/README.md +168 -0
  114. package/templates/base/team/config.json +79 -0
  115. package/templates/base/team/roles.json +145 -0
  116. package/templates/base/tools/bin/claude-context.js +151 -0
  117. package/templates/base/tools/lib/anchor-resolver.js +276 -0
  118. package/templates/base/tools/lib/config-loader.js +363 -0
  119. package/templates/base/tools/lib/detector.js +350 -0
  120. package/templates/base/tools/lib/diagnose.js +206 -0
  121. package/templates/base/tools/lib/drift-detector.js +373 -0
  122. package/templates/base/tools/lib/errors.js +199 -0
  123. package/templates/base/tools/lib/index.js +36 -0
  124. package/templates/base/tools/lib/init.js +192 -0
  125. package/templates/base/tools/lib/logger.js +230 -0
  126. package/templates/base/tools/lib/placeholder.js +201 -0
  127. package/templates/base/tools/lib/session-manager.js +354 -0
  128. package/templates/base/tools/lib/validate.js +521 -0
  129. package/templates/base/tools/package.json +49 -0
  130. package/templates/handlebars/antigravity.hbs +337 -0
  131. package/templates/handlebars/claude.hbs +184 -0
  132. package/templates/handlebars/cline.hbs +63 -0
  133. package/templates/handlebars/copilot.hbs +131 -0
  134. package/templates/handlebars/partials/gotcha-list.hbs +11 -0
  135. package/templates/handlebars/partials/header.hbs +3 -0
  136. package/templates/handlebars/partials/workflow-summary.hbs +16 -0
@@ -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
+ };