@prductr/carlos 1.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 +165 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +157 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +21 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +43 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/market-fit/index.d.ts +13 -0
- package/dist/market-fit/index.d.ts.map +1 -0
- package/dist/market-fit/index.js +325 -0
- package/dist/market-fit/index.js.map +1 -0
- package/dist/product/index.d.ts +28 -0
- package/dist/product/index.d.ts.map +1 -0
- package/dist/product/index.js +258 -0
- package/dist/product/index.js.map +1 -0
- package/dist/roadmap/index.d.ts +13 -0
- package/dist/roadmap/index.d.ts.map +1 -0
- package/dist/roadmap/index.js +368 -0
- package/dist/roadmap/index.js.map +1 -0
- package/dist/technical/index.d.ts +13 -0
- package/dist/technical/index.d.ts.map +1 -0
- package/dist/technical/index.js +417 -0
- package/dist/technical/index.js.map +1 -0
- package/dist/types.d.ts +503 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +169 -0
- package/dist/types.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Roadmap - Generate comprehensive product roadmap
|
|
3
|
+
* Creates phased roadmap with epics, stories, and milestones
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync, existsSync, writeFileSync, mkdirSync } from "fs";
|
|
6
|
+
import { join } from "path";
|
|
7
|
+
/**
|
|
8
|
+
* Generate comprehensive product roadmap
|
|
9
|
+
*
|
|
10
|
+
* @param config - Carlos configuration
|
|
11
|
+
* @returns Complete roadmap with phases and epics
|
|
12
|
+
*/
|
|
13
|
+
export async function generateRoadmap(config) {
|
|
14
|
+
console.log("πΊοΈ Generating product roadmap...");
|
|
15
|
+
// Analyze project to determine stage
|
|
16
|
+
const currentStage = inferProductStage(config.projectRoot);
|
|
17
|
+
const targetStage = getNextStage(currentStage);
|
|
18
|
+
// Read existing docs if available
|
|
19
|
+
const vision = extractVision(config);
|
|
20
|
+
const northStarMetric = determineNorthStarMetric(config, currentStage);
|
|
21
|
+
// Generate epics based on stage progression
|
|
22
|
+
const epics = generateEpics(currentStage, targetStage, config);
|
|
23
|
+
// Create phased roadmap
|
|
24
|
+
const phases = createPhases(currentStage, targetStage, epics);
|
|
25
|
+
const roadmap = {
|
|
26
|
+
vision,
|
|
27
|
+
currentStage,
|
|
28
|
+
targetStage,
|
|
29
|
+
northStarMetric,
|
|
30
|
+
phases,
|
|
31
|
+
epics,
|
|
32
|
+
timeline: estimateTimeline(phases),
|
|
33
|
+
lastUpdated: new Date().toISOString(),
|
|
34
|
+
};
|
|
35
|
+
// Write scopecraft files
|
|
36
|
+
writeRoadmapFiles(config, roadmap);
|
|
37
|
+
return roadmap;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Infer product stage from project state
|
|
41
|
+
*/
|
|
42
|
+
function inferProductStage(projectRoot) {
|
|
43
|
+
// Check for package.json and version
|
|
44
|
+
const pkgPath = join(projectRoot, "package.json");
|
|
45
|
+
if (existsSync(pkgPath)) {
|
|
46
|
+
try {
|
|
47
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
48
|
+
const version = pkg.version || "0.0.0";
|
|
49
|
+
if (version.startsWith("0.0"))
|
|
50
|
+
return "prototype";
|
|
51
|
+
if (version.startsWith("0."))
|
|
52
|
+
return "mvp";
|
|
53
|
+
if (version.startsWith("1.0"))
|
|
54
|
+
return "beta";
|
|
55
|
+
if (parseInt(version.split(".")[0], 10) >= 2)
|
|
56
|
+
return "growth";
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// malformed package.json β fall through to README check
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Check for README
|
|
63
|
+
if (!existsSync(join(projectRoot, "README.md")))
|
|
64
|
+
return "idea";
|
|
65
|
+
return "mvp";
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get next stage in progression
|
|
69
|
+
*/
|
|
70
|
+
function getNextStage(current) {
|
|
71
|
+
const progression = [
|
|
72
|
+
"idea",
|
|
73
|
+
"prototype",
|
|
74
|
+
"mvp",
|
|
75
|
+
"alpha",
|
|
76
|
+
"beta",
|
|
77
|
+
"early-release",
|
|
78
|
+
"growth",
|
|
79
|
+
"mature",
|
|
80
|
+
"enterprise",
|
|
81
|
+
];
|
|
82
|
+
const idx = progression.indexOf(current);
|
|
83
|
+
if (idx === -1 || idx >= progression.length - 1)
|
|
84
|
+
return "mature";
|
|
85
|
+
return progression[idx + 1];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Extract vision from existing docs
|
|
89
|
+
*/
|
|
90
|
+
function extractVision(config) {
|
|
91
|
+
const visionFile = join(config.projectRoot, config.outputDir, "VISION_AND_STAGE_DEFINITION.md");
|
|
92
|
+
if (existsSync(visionFile)) {
|
|
93
|
+
const content = readFileSync(visionFile, "utf8");
|
|
94
|
+
const match = content.match(/## Project Vision\n(.+?)(?:\n\n|\n#)/s);
|
|
95
|
+
if (match)
|
|
96
|
+
return match[1].trim();
|
|
97
|
+
}
|
|
98
|
+
// Fallback to package.json description
|
|
99
|
+
const pkgPath = join(config.projectRoot, "package.json");
|
|
100
|
+
if (existsSync(pkgPath)) {
|
|
101
|
+
try {
|
|
102
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
|
|
103
|
+
if (pkg.description)
|
|
104
|
+
return pkg.description;
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
// malformed package.json β use default vision
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return "Build a successful product that delights users and achieves product-market fit";
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Determine north star metric
|
|
114
|
+
*/
|
|
115
|
+
function determineNorthStarMetric(config, stage) {
|
|
116
|
+
// Read existing metric if available
|
|
117
|
+
const metricsFile = join(config.projectRoot, config.outputDir, "METRICS_AND_PMF.md");
|
|
118
|
+
if (existsSync(metricsFile)) {
|
|
119
|
+
const content = readFileSync(metricsFile, "utf8");
|
|
120
|
+
const match = content.match(/## North Star Metric\n(.+?)(?:\n\n|\n#)/s);
|
|
121
|
+
if (match)
|
|
122
|
+
return match[1].trim();
|
|
123
|
+
}
|
|
124
|
+
// Default metrics by stage
|
|
125
|
+
const defaultMetrics = {
|
|
126
|
+
idea: "Validated problem-solution fit",
|
|
127
|
+
prototype: "User feedback quality score",
|
|
128
|
+
mvp: "Weekly Active Users",
|
|
129
|
+
alpha: "User retention rate (7-day)",
|
|
130
|
+
beta: "Monthly Active Users",
|
|
131
|
+
"early-release": "User growth rate",
|
|
132
|
+
growth: "Revenue growth rate",
|
|
133
|
+
mature: "Net Revenue Retention",
|
|
134
|
+
enterprise: "Enterprise customer count",
|
|
135
|
+
};
|
|
136
|
+
return defaultMetrics[stage];
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Generate epics for stage transition
|
|
140
|
+
*/
|
|
141
|
+
function generateEpics(current, target, config) {
|
|
142
|
+
const epics = [];
|
|
143
|
+
// Core epics based on stage
|
|
144
|
+
if (current === "idea" || current === "prototype") {
|
|
145
|
+
epics.push({
|
|
146
|
+
id: "epic-001",
|
|
147
|
+
title: "MVP Development",
|
|
148
|
+
description: "Build minimum viable product with core features",
|
|
149
|
+
businessValue: "Validate product-market fit with real users",
|
|
150
|
+
userStories: ["user-001", "user-002", "user-003"],
|
|
151
|
+
acceptanceCriteria: [
|
|
152
|
+
"Core user flow is functional",
|
|
153
|
+
"Users can complete primary use case",
|
|
154
|
+
"Basic metrics tracking in place",
|
|
155
|
+
],
|
|
156
|
+
dependencies: [],
|
|
157
|
+
effort: "large",
|
|
158
|
+
priority: "critical",
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
if (current === "mvp" || current === "alpha") {
|
|
162
|
+
epics.push({
|
|
163
|
+
id: "epic-002",
|
|
164
|
+
title: "User Onboarding",
|
|
165
|
+
description: "Streamlined onboarding experience for new users",
|
|
166
|
+
businessValue: "Reduce time-to-value and improve activation rate",
|
|
167
|
+
userStories: ["user-004", "user-005"],
|
|
168
|
+
acceptanceCriteria: [
|
|
169
|
+
"Onboarding flow is < 2 minutes",
|
|
170
|
+
"90% of users complete onboarding",
|
|
171
|
+
"Clear value demonstration",
|
|
172
|
+
],
|
|
173
|
+
dependencies: ["epic-001"],
|
|
174
|
+
effort: "medium",
|
|
175
|
+
priority: "high",
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
// Testing & Quality epic
|
|
179
|
+
epics.push({
|
|
180
|
+
id: "epic-003",
|
|
181
|
+
title: "Testing & Quality Assurance",
|
|
182
|
+
description: "Comprehensive test coverage and quality infrastructure",
|
|
183
|
+
businessValue: "Reduce bugs and increase user confidence",
|
|
184
|
+
userStories: ["user-006", "user-007"],
|
|
185
|
+
acceptanceCriteria: [
|
|
186
|
+
"80%+ test coverage",
|
|
187
|
+
"CI/CD pipeline functional",
|
|
188
|
+
"Automated quality checks",
|
|
189
|
+
],
|
|
190
|
+
dependencies: [],
|
|
191
|
+
effort: "medium",
|
|
192
|
+
priority: "high",
|
|
193
|
+
});
|
|
194
|
+
// Documentation epic
|
|
195
|
+
epics.push({
|
|
196
|
+
id: "epic-004",
|
|
197
|
+
title: "Documentation & Developer Experience",
|
|
198
|
+
description: "Complete documentation for users and developers",
|
|
199
|
+
businessValue: "Enable self-service and reduce support burden",
|
|
200
|
+
userStories: ["user-008"],
|
|
201
|
+
acceptanceCriteria: [
|
|
202
|
+
"README is comprehensive",
|
|
203
|
+
"API documentation complete",
|
|
204
|
+
"Getting started guide exists",
|
|
205
|
+
],
|
|
206
|
+
dependencies: [],
|
|
207
|
+
effort: "small",
|
|
208
|
+
priority: "medium",
|
|
209
|
+
});
|
|
210
|
+
return epics;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Create roadmap phases from epics
|
|
214
|
+
*/
|
|
215
|
+
function createPhases(current, target, epics) {
|
|
216
|
+
const phases = [];
|
|
217
|
+
// Phase 1: Foundation
|
|
218
|
+
phases.push({
|
|
219
|
+
id: "phase-1",
|
|
220
|
+
name: "Foundation & Core Features",
|
|
221
|
+
duration: "4-6 weeks",
|
|
222
|
+
objectives: [
|
|
223
|
+
"Establish core product functionality",
|
|
224
|
+
"Set up quality infrastructure",
|
|
225
|
+
"Create initial documentation",
|
|
226
|
+
],
|
|
227
|
+
epics: epics.filter((e) => e.priority === "critical").map((e) => e.id),
|
|
228
|
+
milestones: [
|
|
229
|
+
"MVP feature complete",
|
|
230
|
+
"Basic test coverage achieved",
|
|
231
|
+
"README published",
|
|
232
|
+
],
|
|
233
|
+
successMetrics: [
|
|
234
|
+
"Core user flow functional",
|
|
235
|
+
"First 10 users onboarded",
|
|
236
|
+
"Zero critical bugs",
|
|
237
|
+
],
|
|
238
|
+
});
|
|
239
|
+
// Phase 2: Growth
|
|
240
|
+
phases.push({
|
|
241
|
+
id: "phase-2",
|
|
242
|
+
name: "Growth & Optimization",
|
|
243
|
+
duration: "6-8 weeks",
|
|
244
|
+
objectives: [
|
|
245
|
+
"Improve user experience",
|
|
246
|
+
"Expand feature set",
|
|
247
|
+
"Increase quality metrics",
|
|
248
|
+
],
|
|
249
|
+
epics: epics.filter((e) => e.priority === "high").map((e) => e.id),
|
|
250
|
+
milestones: [
|
|
251
|
+
"Onboarding optimized",
|
|
252
|
+
"80% test coverage",
|
|
253
|
+
"Documentation complete",
|
|
254
|
+
],
|
|
255
|
+
successMetrics: [
|
|
256
|
+
"User activation rate > 50%",
|
|
257
|
+
"Test coverage > 80%",
|
|
258
|
+
"Support tickets < 5/week",
|
|
259
|
+
],
|
|
260
|
+
});
|
|
261
|
+
// Phase 3: Scale
|
|
262
|
+
phases.push({
|
|
263
|
+
id: "phase-3",
|
|
264
|
+
name: "Scale & Polish",
|
|
265
|
+
duration: "4-6 weeks",
|
|
266
|
+
objectives: [
|
|
267
|
+
"Production-ready infrastructure",
|
|
268
|
+
"Performance optimization",
|
|
269
|
+
"Advanced features",
|
|
270
|
+
],
|
|
271
|
+
epics: epics.filter((e) => e.priority === "medium").map((e) => e.id),
|
|
272
|
+
milestones: [
|
|
273
|
+
"Production deployment",
|
|
274
|
+
"Performance benchmarks met",
|
|
275
|
+
"Advanced features shipped",
|
|
276
|
+
],
|
|
277
|
+
successMetrics: [
|
|
278
|
+
"100+ active users",
|
|
279
|
+
"99.9% uptime",
|
|
280
|
+
"NPS > 50",
|
|
281
|
+
],
|
|
282
|
+
});
|
|
283
|
+
return phases;
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Estimate total timeline
|
|
287
|
+
*/
|
|
288
|
+
function estimateTimeline(phases) {
|
|
289
|
+
let totalWeeks = 0;
|
|
290
|
+
for (const phase of phases) {
|
|
291
|
+
const match = phase.duration.match(/(\d+)-(\d+)\s+weeks/);
|
|
292
|
+
if (match) {
|
|
293
|
+
const avg = (parseInt(match[1]) + parseInt(match[2])) / 2;
|
|
294
|
+
totalWeeks += avg;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return `${Math.ceil(totalWeeks)} weeks (${Math.ceil(totalWeeks / 4)} months)`;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Write roadmap files to scopecraft directory
|
|
301
|
+
*/
|
|
302
|
+
function writeRoadmapFiles(config, roadmap) {
|
|
303
|
+
const outputDir = join(config.projectRoot, config.outputDir);
|
|
304
|
+
// Ensure directory exists
|
|
305
|
+
if (!existsSync(outputDir)) {
|
|
306
|
+
mkdirSync(outputDir, { recursive: true });
|
|
307
|
+
}
|
|
308
|
+
// Write ROADMAP.md
|
|
309
|
+
const roadmapContent = `# Product Roadmap
|
|
310
|
+
|
|
311
|
+
## Vision
|
|
312
|
+
${roadmap.vision}
|
|
313
|
+
|
|
314
|
+
## Current State
|
|
315
|
+
**${roadmap.currentStage}** β **${roadmap.targetStage}**
|
|
316
|
+
|
|
317
|
+
## North Star Metric
|
|
318
|
+
${roadmap.northStarMetric}
|
|
319
|
+
|
|
320
|
+
## Timeline
|
|
321
|
+
${roadmap.timeline}
|
|
322
|
+
|
|
323
|
+
## Roadmap Phases
|
|
324
|
+
|
|
325
|
+
${roadmap.phases
|
|
326
|
+
.map((phase, i) => `### Phase ${i + 1}: ${phase.name}
|
|
327
|
+
**Duration:** ${phase.duration}
|
|
328
|
+
|
|
329
|
+
**Objectives:**
|
|
330
|
+
${phase.objectives.map((o) => `- ${o}`).join("\n")}
|
|
331
|
+
|
|
332
|
+
**Epics:**
|
|
333
|
+
${phase.epics.map((epicId) => {
|
|
334
|
+
const epic = roadmap.epics.find((e) => e.id === epicId);
|
|
335
|
+
return epic ? `- **${epic.title}** (${epic.effort}, ${epic.priority})` : "";
|
|
336
|
+
}).join("\n")}
|
|
337
|
+
|
|
338
|
+
**Milestones:**
|
|
339
|
+
${phase.milestones.map((m) => `- ${m}`).join("\n")}
|
|
340
|
+
|
|
341
|
+
**Success Metrics:**
|
|
342
|
+
${phase.successMetrics.map((s) => `- ${s}`).join("\n")}
|
|
343
|
+
`)
|
|
344
|
+
.join("\n")}
|
|
345
|
+
|
|
346
|
+
## Epics Detail
|
|
347
|
+
|
|
348
|
+
${roadmap.epics
|
|
349
|
+
.map((epic) => `### ${epic.title}
|
|
350
|
+
**ID:** ${epic.id}
|
|
351
|
+
**Priority:** ${epic.priority} | **Effort:** ${epic.effort}
|
|
352
|
+
|
|
353
|
+
${epic.description}
|
|
354
|
+
|
|
355
|
+
**Business Value:** ${epic.businessValue}
|
|
356
|
+
|
|
357
|
+
**Acceptance Criteria:**
|
|
358
|
+
${epic.acceptanceCriteria.map((ac) => `- [ ] ${ac}`).join("\n")}
|
|
359
|
+
`)
|
|
360
|
+
.join("\n")}
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
Last updated: ${new Date(roadmap.lastUpdated).toLocaleDateString()}
|
|
364
|
+
`;
|
|
365
|
+
writeFileSync(join(outputDir, "ROADMAP.md"), roadmapContent);
|
|
366
|
+
console.log(`β
Wrote roadmap to ${outputDir}/ROADMAP.md`);
|
|
367
|
+
}
|
|
368
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/roadmap/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Technical - Technical debt audit and infrastructure assessment
|
|
3
|
+
* Evaluates code quality, architecture, testing, and security
|
|
4
|
+
*/
|
|
5
|
+
import type { CarlosConfig, TechnicalAudit } from "../types.js";
|
|
6
|
+
/**
|
|
7
|
+
* Perform technical audit
|
|
8
|
+
*
|
|
9
|
+
* @param config - Carlos configuration
|
|
10
|
+
* @returns Technical audit with scores and debt items
|
|
11
|
+
*/
|
|
12
|
+
export declare function auditTechnical(config: CarlosConfig): Promise<TechnicalAudit>;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/technical/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EAEf,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,cAAc,CAAC,CA8CzB"}
|