@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.
@@ -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"}