create-claude-context 1.0.0 → 1.2.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/LICENSE +21 -21
- package/README.md +169 -146
- package/bin/create-claude-context.js +75 -61
- package/lib/ai-orchestrator.js +423 -0
- package/lib/call-tracer.js +444 -0
- package/lib/detector.js +456 -373
- package/lib/environment-detector.js +239 -0
- package/lib/index.js +271 -170
- package/lib/installer.js +371 -362
- package/lib/placeholder.js +269 -208
- package/lib/prompts.js +287 -287
- package/lib/spinner.js +60 -60
- package/lib/static-analyzer.js +729 -0
- package/lib/template-populator.js +835 -0
- package/lib/validate.js +147 -147
- package/package.json +59 -59
- package/templates/CLAUDE.md.template +235 -235
- package/templates/base/README.md +257 -257
- package/templates/base/RPI_WORKFLOW_PLAN.md +320 -320
- package/templates/base/agents/api-developer.md +76 -76
- package/templates/base/agents/context-engineer.md +525 -525
- package/templates/base/agents/core-architect.md +76 -76
- package/templates/base/agents/database-ops.md +76 -76
- package/templates/base/agents/deployment-ops.md +76 -76
- package/templates/base/agents/integration-hub.md +76 -76
- package/templates/base/analytics/README.md +114 -114
- 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 -108
- package/templates/base/ci-templates/github-actions/context-check.yml +144 -144
- package/templates/base/ci-templates/github-actions/validate-docs.yml +105 -105
- package/templates/base/commands/analytics.md +238 -238
- package/templates/base/commands/auto-sync.md +172 -0
- package/templates/base/commands/collab.md +194 -194
- package/templates/base/commands/help.md +450 -450
- package/templates/base/commands/rpi-implement.md +115 -115
- package/templates/base/commands/rpi-plan.md +93 -93
- package/templates/base/commands/rpi-research.md +88 -88
- 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 -77
- package/templates/base/commands/verify-docs-current.md +86 -86
- package/templates/base/config/base.json +57 -57
- package/templates/base/config/environments/development.json +13 -13
- package/templates/base/config/environments/production.json +17 -17
- package/templates/base/config/environments/staging.json +13 -13
- package/templates/base/config/local.json.example +21 -21
- package/templates/base/context/.meta/generated-at.json +18 -0
- package/templates/base/context/ARCHITECTURE_SNAPSHOT.md +156 -156
- package/templates/base/context/CODE_TO_WORKFLOW_MAP.md +94 -94
- 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 -195
- package/templates/base/context/TESTING_MAP.md +95 -0
- package/templates/base/context/WORKFLOW_INDEX.md +129 -129
- package/templates/base/context/workflows/WORKFLOW_TEMPLATE.md +294 -294
- package/templates/base/indexes/agents/CAPABILITY_MATRIX.md +255 -255
- package/templates/base/indexes/agents/CATEGORY_INDEX.md +44 -44
- package/templates/base/indexes/code/CATEGORY_INDEX.md +38 -38
- package/templates/base/indexes/routing/CATEGORY_INDEX.md +39 -39
- package/templates/base/indexes/search/CATEGORY_INDEX.md +39 -39
- package/templates/base/indexes/workflows/CATEGORY_INDEX.md +38 -38
- package/templates/base/knowledge/README.md +98 -98
- package/templates/base/knowledge/sessions/README.md +88 -88
- package/templates/base/knowledge/sessions/TEMPLATE.md +150 -150
- package/templates/base/knowledge/shared/decisions/0001-adopt-context-engineering.md +144 -144
- package/templates/base/knowledge/shared/decisions/README.md +49 -49
- package/templates/base/knowledge/shared/decisions/TEMPLATE.md +123 -123
- package/templates/base/knowledge/shared/patterns/README.md +62 -62
- package/templates/base/knowledge/shared/patterns/TEMPLATE.md +120 -120
- package/templates/base/plans/PLAN_TEMPLATE.md +250 -250
- package/templates/base/research/RESEARCH_TEMPLATE.md +153 -153
- package/templates/base/schemas/agent.schema.json +141 -141
- 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 -134
- package/templates/base/schemas/hashes.schema.json +40 -0
- package/templates/base/schemas/manifest.schema.json +117 -117
- package/templates/base/schemas/plan.schema.json +136 -136
- package/templates/base/schemas/research.schema.json +115 -115
- 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 -244
- 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 -126
- 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 -57
- package/templates/base/standards/COMPATIBILITY.md +219 -219
- package/templates/base/standards/EXTENSION_GUIDELINES.md +280 -280
- package/templates/base/standards/QUALITY_CHECKLIST.md +211 -211
- package/templates/base/standards/README.md +66 -66
- 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 -168
- package/templates/base/team/config.json +79 -79
- package/templates/base/team/roles.json +145 -145
- package/templates/base/tools/bin/claude-context.js +151 -151
- package/templates/base/tools/lib/anchor-resolver.js +276 -0
- package/templates/base/tools/lib/config-loader.js +363 -363
- package/templates/base/tools/lib/detector.js +350 -350
- package/templates/base/tools/lib/diagnose.js +206 -206
- package/templates/base/tools/lib/drift-detector.js +373 -0
- package/templates/base/tools/lib/errors.js +199 -199
- package/templates/base/tools/lib/index.js +36 -24
- package/templates/base/tools/lib/init.js +192 -192
- package/templates/base/tools/lib/logger.js +230 -230
- package/templates/base/tools/lib/placeholder.js +201 -201
- package/templates/base/tools/lib/session-manager.js +354 -0
- package/templates/base/tools/lib/validate.js +521 -521
- package/templates/base/tools/package.json +49 -49
package/lib/index.js
CHANGED
|
@@ -1,170 +1,271 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Main orchestrator for create-claude-context
|
|
3
|
-
*
|
|
4
|
-
* Handles the full installation flow:
|
|
5
|
-
* 1. Interactive prompts (or defaults)
|
|
6
|
-
* 2. Directory structure creation
|
|
7
|
-
* 3. Template copying
|
|
8
|
-
* 4.
|
|
9
|
-
* 5.
|
|
10
|
-
* 6.
|
|
11
|
-
* 7.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
} = require('./
|
|
24
|
-
const {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
spinner.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// Phase
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
`);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Main orchestrator for create-claude-context
|
|
3
|
+
*
|
|
4
|
+
* Handles the full installation flow:
|
|
5
|
+
* 1. Interactive prompts (or defaults)
|
|
6
|
+
* 2. Directory structure creation
|
|
7
|
+
* 3. Template copying
|
|
8
|
+
* 4. Environment detection (Claude Code or standalone)
|
|
9
|
+
* 5. Tech stack detection
|
|
10
|
+
* 6. Deep codebase analysis
|
|
11
|
+
* 7. Template population with real data
|
|
12
|
+
* 8. Placeholder replacement
|
|
13
|
+
* 9. AI orchestration (if in Claude Code)
|
|
14
|
+
* 10. Validation
|
|
15
|
+
* 11. Plugin installation (optional)
|
|
16
|
+
* 12. Git initialization (optional)
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
const path = require('path');
|
|
20
|
+
const fs = require('fs');
|
|
21
|
+
const chalk = require('chalk');
|
|
22
|
+
const { runPrompts, getDefaults } = require('./prompts');
|
|
23
|
+
const { createSpinner } = require('./spinner');
|
|
24
|
+
const {
|
|
25
|
+
createDirectoryStructure,
|
|
26
|
+
copyTemplates,
|
|
27
|
+
createClaudeMd
|
|
28
|
+
} = require('./installer');
|
|
29
|
+
const { detectTechStack } = require('./detector');
|
|
30
|
+
const { replacePlaceholders } = require('./placeholder');
|
|
31
|
+
const { validateInstallation } = require('./validate');
|
|
32
|
+
|
|
33
|
+
// New modules for context engineering initialization
|
|
34
|
+
const { detectEnvironment, forceMode, getEnvironmentDescription } = require('./environment-detector');
|
|
35
|
+
const { analyzeCodebase } = require('./static-analyzer');
|
|
36
|
+
const {
|
|
37
|
+
createInitializationRequest,
|
|
38
|
+
generateAgentInstructions,
|
|
39
|
+
isInitializationPending
|
|
40
|
+
} = require('./ai-orchestrator');
|
|
41
|
+
const { populateAllTemplates } = require('./template-populator');
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Main entry point
|
|
45
|
+
*/
|
|
46
|
+
async function run(options = {}) {
|
|
47
|
+
const {
|
|
48
|
+
projectName,
|
|
49
|
+
skipPrompts = false,
|
|
50
|
+
installPlugin = true,
|
|
51
|
+
template,
|
|
52
|
+
initGit = true,
|
|
53
|
+
dryRun = false,
|
|
54
|
+
verbose = false,
|
|
55
|
+
// New options for context engineering
|
|
56
|
+
forceAi = false,
|
|
57
|
+
forceStatic = false,
|
|
58
|
+
analyzeOnly = false
|
|
59
|
+
} = options;
|
|
60
|
+
|
|
61
|
+
// Determine target directory
|
|
62
|
+
const targetDir = projectName
|
|
63
|
+
? path.resolve(process.cwd(), projectName)
|
|
64
|
+
: process.cwd();
|
|
65
|
+
|
|
66
|
+
const projectNameResolved = projectName || path.basename(targetDir);
|
|
67
|
+
const claudeDir = path.join(targetDir, '.claude');
|
|
68
|
+
|
|
69
|
+
// Get configuration (prompts or defaults)
|
|
70
|
+
let config;
|
|
71
|
+
if (skipPrompts) {
|
|
72
|
+
config = await getDefaults(targetDir, template);
|
|
73
|
+
} else {
|
|
74
|
+
config = await runPrompts(targetDir, template);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
config.projectName = projectNameResolved;
|
|
78
|
+
config.targetDir = targetDir;
|
|
79
|
+
config.installPlugin = installPlugin && config.installPlugin;
|
|
80
|
+
config.initGit = initGit;
|
|
81
|
+
config.dryRun = dryRun;
|
|
82
|
+
config.verbose = verbose;
|
|
83
|
+
|
|
84
|
+
if (dryRun) {
|
|
85
|
+
console.log(chalk.yellow('\n--dry-run mode: No changes will be made\n'));
|
|
86
|
+
console.log('Configuration:', JSON.stringify(config, null, 2));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Phase 1: Create target directory if needed
|
|
91
|
+
const spinner = createSpinner();
|
|
92
|
+
|
|
93
|
+
if (projectName && !fs.existsSync(targetDir)) {
|
|
94
|
+
spinner.start('Creating project directory...');
|
|
95
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
96
|
+
spinner.succeed(`Created project directory: ${projectNameResolved}`);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// Phase 2: Detect execution environment
|
|
100
|
+
spinner.start('Detecting execution environment...');
|
|
101
|
+
let env;
|
|
102
|
+
if (forceAi) {
|
|
103
|
+
env = forceMode('full-ai');
|
|
104
|
+
} else if (forceStatic) {
|
|
105
|
+
env = forceMode('standalone');
|
|
106
|
+
} else {
|
|
107
|
+
env = detectEnvironment();
|
|
108
|
+
}
|
|
109
|
+
spinner.succeed(`Environment: ${getEnvironmentDescription(env)}`);
|
|
110
|
+
|
|
111
|
+
// Phase 3: Create .claude directory structure
|
|
112
|
+
spinner.start('Creating .claude directory structure...');
|
|
113
|
+
const dirsCreated = await createDirectoryStructure(targetDir, config);
|
|
114
|
+
spinner.succeed(`Created .claude directory structure (${dirsCreated} directories)`);
|
|
115
|
+
|
|
116
|
+
// Phase 4: Copy template files
|
|
117
|
+
spinner.start('Copying template files...');
|
|
118
|
+
const filesCopied = await copyTemplates(targetDir, config);
|
|
119
|
+
spinner.succeed(`Copied ${filesCopied} template files`);
|
|
120
|
+
|
|
121
|
+
// Phase 5: Detect technology stack
|
|
122
|
+
spinner.start('Detecting technology stack...');
|
|
123
|
+
const techStack = await detectTechStack(targetDir);
|
|
124
|
+
config.techStack = techStack;
|
|
125
|
+
spinner.succeed(`Detected: ${techStack.summary || 'Generic project'}`);
|
|
126
|
+
|
|
127
|
+
// Phase 6: Deep codebase analysis
|
|
128
|
+
spinner.start('Analyzing codebase...');
|
|
129
|
+
let analysis;
|
|
130
|
+
try {
|
|
131
|
+
analysis = await analyzeCodebase(targetDir, { techStack });
|
|
132
|
+
const summary = analysis.summary || {};
|
|
133
|
+
spinner.succeed(
|
|
134
|
+
`Analyzed: ${summary.totalFiles || 0} files, ` +
|
|
135
|
+
`${summary.entryPointCount || 0} entry points, ` +
|
|
136
|
+
`${summary.workflowCount || 0} workflows`
|
|
137
|
+
);
|
|
138
|
+
} catch (error) {
|
|
139
|
+
spinner.warn(`Analysis partial: ${error.message}`);
|
|
140
|
+
analysis = { workflows: [], entryPoints: [], architecture: {}, techStack };
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// Add tech stack to analysis
|
|
144
|
+
analysis.techStack = techStack;
|
|
145
|
+
|
|
146
|
+
// Phase 7: Create CLAUDE.md at root (before population)
|
|
147
|
+
spinner.start('Creating CLAUDE.md...');
|
|
148
|
+
await createClaudeMd(targetDir, config, techStack);
|
|
149
|
+
spinner.succeed('Created CLAUDE.md at project root');
|
|
150
|
+
|
|
151
|
+
// Phase 8: Populate templates with real data
|
|
152
|
+
spinner.start('Populating templates with analysis results...');
|
|
153
|
+
let populationResults;
|
|
154
|
+
try {
|
|
155
|
+
populationResults = await populateAllTemplates(claudeDir, analysis, config);
|
|
156
|
+
const counts = {
|
|
157
|
+
populated: populationResults.populated?.length || 0,
|
|
158
|
+
created: populationResults.created?.length || 0,
|
|
159
|
+
errors: populationResults.errors?.length || 0
|
|
160
|
+
};
|
|
161
|
+
if (counts.errors > 0) {
|
|
162
|
+
spinner.warn(`Populated ${counts.populated} files, created ${counts.created} workflows (${counts.errors} errors)`);
|
|
163
|
+
} else {
|
|
164
|
+
spinner.succeed(`Populated ${counts.populated} files, created ${counts.created} workflow docs`);
|
|
165
|
+
}
|
|
166
|
+
} catch (error) {
|
|
167
|
+
spinner.warn(`Population partial: ${error.message}`);
|
|
168
|
+
populationResults = { populated: [], created: [], errors: [error.message] };
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Phase 9: Replace remaining placeholders
|
|
172
|
+
spinner.start('Replacing remaining placeholders...');
|
|
173
|
+
const placeholdersReplaced = await replacePlaceholders(targetDir, {
|
|
174
|
+
...config,
|
|
175
|
+
techStack,
|
|
176
|
+
analysis
|
|
177
|
+
});
|
|
178
|
+
spinner.succeed(`Replaced ${placeholdersReplaced} placeholders`);
|
|
179
|
+
|
|
180
|
+
// Phase 10: AI Orchestration (if in Claude Code environment)
|
|
181
|
+
if (env.mode === 'full-ai' || env.mode === 'hybrid') {
|
|
182
|
+
spinner.start('Preparing AI initialization request...');
|
|
183
|
+
try {
|
|
184
|
+
createInitializationRequest(claudeDir, config);
|
|
185
|
+
generateAgentInstructions(claudeDir, analysis, config);
|
|
186
|
+
spinner.succeed('Created INIT_REQUEST.md for @context-engineer');
|
|
187
|
+
} catch (error) {
|
|
188
|
+
spinner.warn(`AI setup skipped: ${error.message}`);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// Phase 11: Validate installation
|
|
193
|
+
spinner.start('Validating installation...');
|
|
194
|
+
const validation = await validateInstallation(targetDir);
|
|
195
|
+
if (validation.passed) {
|
|
196
|
+
spinner.succeed('All validations passed');
|
|
197
|
+
} else {
|
|
198
|
+
spinner.warn(`Validation completed with ${validation.warnings} warnings`);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// Phase 12: Install Claude Code plugin (optional)
|
|
202
|
+
if (config.installPlugin) {
|
|
203
|
+
spinner.start('Installing Claude Code plugin...');
|
|
204
|
+
spinner.succeed('Plugin ready (install with: /plugin install claude-context-engineering)');
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Phase 13: Initialize git (optional)
|
|
208
|
+
if (config.initGit && !fs.existsSync(path.join(targetDir, '.git'))) {
|
|
209
|
+
spinner.start('Initializing git repository...');
|
|
210
|
+
try {
|
|
211
|
+
const { execSync } = require('child_process');
|
|
212
|
+
execSync('git init', { cwd: targetDir, stdio: 'pipe' });
|
|
213
|
+
spinner.succeed('Initialized git repository');
|
|
214
|
+
} catch (e) {
|
|
215
|
+
spinner.warn('Could not initialize git (git may not be installed)');
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Success message (mode-aware)
|
|
220
|
+
showSuccess(config, techStack, env, analysis, populationResults);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Display success message with next steps
|
|
225
|
+
*/
|
|
226
|
+
function showSuccess(config, techStack, env, analysis, populationResults) {
|
|
227
|
+
const boxWidth = 59;
|
|
228
|
+
const isAiMode = env.mode === 'full-ai' || env.mode === 'hybrid';
|
|
229
|
+
const workflowCount = analysis?.workflows?.length || 0;
|
|
230
|
+
const entryPointCount = analysis?.entryPoints?.length || 0;
|
|
231
|
+
|
|
232
|
+
console.log(`
|
|
233
|
+
${chalk.green('╔' + '═'.repeat(boxWidth) + '╗')}
|
|
234
|
+
${chalk.green('║')} ${chalk.bold.white('✓ Context Engineering Initialized Successfully!')} ${chalk.green('║')}
|
|
235
|
+
${chalk.green('╚' + '═'.repeat(boxWidth) + '╝')}
|
|
236
|
+
|
|
237
|
+
${chalk.bold('Analysis Results:')}
|
|
238
|
+
${chalk.cyan('•')} Entry Points: ${chalk.white(entryPointCount)} discovered
|
|
239
|
+
${chalk.cyan('•')} Workflows: ${chalk.white(workflowCount)} documented
|
|
240
|
+
${chalk.cyan('•')} Mode: ${chalk.white(env.mode)}
|
|
241
|
+
|
|
242
|
+
${chalk.bold('Created:')}
|
|
243
|
+
${chalk.cyan('•')} .claude/ ${chalk.gray('(context engineering system)')}
|
|
244
|
+
${chalk.cyan('•')} CLAUDE.md ${chalk.gray('(AI navigation guide)')}
|
|
245
|
+
${workflowCount > 0 ? ` ${chalk.cyan('•')} ${workflowCount} workflow docs ${chalk.gray('(auto-generated)')}` : ''}
|
|
246
|
+
|
|
247
|
+
${chalk.bold('Available Commands:')}
|
|
248
|
+
${chalk.cyan('•')} /rpi-research ${chalk.gray('Research a feature')}
|
|
249
|
+
${chalk.cyan('•')} /rpi-plan ${chalk.gray('Create implementation plan')}
|
|
250
|
+
${chalk.cyan('•')} /rpi-implement ${chalk.gray('Execute with documentation')}
|
|
251
|
+
${chalk.cyan('•')} /validate-all ${chalk.gray('Run validation suite')}
|
|
252
|
+
`);
|
|
253
|
+
|
|
254
|
+
if (isAiMode) {
|
|
255
|
+
console.log(`${chalk.bold.yellow('AI Initialization Pending:')}
|
|
256
|
+
${chalk.white('Run this command in Claude Code to complete:')}
|
|
257
|
+
${chalk.cyan('@context-engineer "Complete initialization using INIT_REQUEST.md"')}
|
|
258
|
+
`);
|
|
259
|
+
} else {
|
|
260
|
+
console.log(`${chalk.bold('Next Steps:')}
|
|
261
|
+
${chalk.white('1.')} Review ${chalk.cyan('CLAUDE.md')} and customize for your project
|
|
262
|
+
${chalk.white('2.')} Review generated workflow docs in ${chalk.cyan('.claude/context/workflows/')}
|
|
263
|
+
${chalk.white('3.')} Run ${chalk.cyan('@context-engineer "Enhance documentation"')} for AI analysis
|
|
264
|
+
`);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
console.log(`${chalk.gray('Documentation: https://github.com/SireJeff/claude-context-engineering-template')}
|
|
268
|
+
`);
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
module.exports = { run };
|