@mr.dj2u/cli 0.1.16 → 0.1.18
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/bundles/claude-code/.claude-plugin/plugin.json +1 -1
- package/bundles/claude-code/.mcp.json +1 -1
- package/bundles/claude-code/commands/create-expo-super-stack.md +30 -3
- package/bundles/claude-code/skills/create-expo-super-stack/SKILL.md +31 -4
- package/bundles/codex/.codex-plugin/plugin.json +1 -1
- package/bundles/codex/.mcp.json +1 -1
- package/bundles/codex/README.md +14 -1
- package/bundles/codex/commands/create-expo-super-stack.md +30 -3
- package/bundles/codex/skills/workflow-create-expo-super-stack/SKILL.md +30 -3
- package/bundles/vscode-copilot/.github/prompts/create-expo-super-stack.prompt.md +30 -3
- package/bundles/vscode-copilot/.vscode/mcp.json +1 -1
- package/bundles/vscode-copilot/README.md +14 -0
- package/bundles/vscode-copilot/user/.copilot/skills/workflow-create-expo-super-stack/SKILL.md +30 -3
- package/dist/cess-intake.d.ts.map +1 -1
- package/dist/cess-intake.js +4 -5
- package/dist/cess-intake.js.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/commands/mcp-install.d.ts +2 -2
- package/dist/commands/mcp-install.js +1 -1
- package/dist/project-memory.d.ts.map +1 -1
- package/dist/project-memory.js +18 -1
- package/dist/project-memory.js.map +1 -1
- package/dist/roadmap.d.ts +7 -2
- package/dist/roadmap.d.ts.map +1 -1
- package/dist/roadmap.js +294 -26
- package/dist/roadmap.js.map +1 -1
- package/package.json +75 -76
package/dist/roadmap.js
CHANGED
|
@@ -3,6 +3,63 @@ import path from 'node:path';
|
|
|
3
3
|
const TODO_FOR_CONTEXT_MARKER = '# TodoForContext(optional):';
|
|
4
4
|
const LEGACY_MARKER_PREFIX = '<!-- MDS_DERIVED_PHASE_';
|
|
5
5
|
const ROADMAP_STATE_FILE = 'roadmap-state.json';
|
|
6
|
+
const LEGACY_SCAFFOLD_TASK_KEYS = new Set([
|
|
7
|
+
'browse exposition pages to understand included base packages',
|
|
8
|
+
'review styling in the stylist page',
|
|
9
|
+
'review project files for accuracy and planning adjustments',
|
|
10
|
+
'run or defer eject stylist mark this todo done after ejection or deciding to defer if you want to keep the stylist around for tinkering',
|
|
11
|
+
'run mds eject exposition and keep only the generated sections you want to retain',
|
|
12
|
+
'sign in and set up eas in the terminal',
|
|
13
|
+
'resolve every todoforcontext optional marker in project info md by filling the section underneath or deleting the marker line to acknowledge no extra context is needed',
|
|
14
|
+
'confirm visual direction in project style md after using the stylist page',
|
|
15
|
+
'after the project info md markers are resolved refresh the agent derived roadmap from project info md and review it for accuracy',
|
|
16
|
+
'refresh the agent derived roadmap from project info md and review it for accuracy before implementation',
|
|
17
|
+
'keep or prune included package examples after reviewing exposition',
|
|
18
|
+
'remove exposition pages before production once their lessons are absorbed',
|
|
19
|
+
'establish the app shell and first implementation ready route in src app',
|
|
20
|
+
'establish the app shell and first implementation ready route for the mvp',
|
|
21
|
+
'implement the first concrete product flow from project info md and the roadmap',
|
|
22
|
+
'implement the initial data layer using local dummy data with expo sqlite',
|
|
23
|
+
'implement the initial data layer and service boundaries needed for the mvp',
|
|
24
|
+
'build the remaining core flows from project info md phase by phase',
|
|
25
|
+
'adapt the working mvp flow for the remaining target platforms after the primary flow is stable',
|
|
26
|
+
'configure eas for building mobile applications',
|
|
27
|
+
'configure eas for publishing mobile applications',
|
|
28
|
+
'complete the remaining product flows needed for the mvp',
|
|
29
|
+
'run mds doctor ci and address errors',
|
|
30
|
+
'run mds doctor ci and address errors before release',
|
|
31
|
+
'follow project release flow md for test to main development',
|
|
32
|
+
'complete the one time github repo setup from project release flow md so test and main are protected correctly',
|
|
33
|
+
'add github branch protection so pr checks pass before merging into test or main',
|
|
34
|
+
'prepare store distribution packaging review notes and release validation for the chosen delivery path',
|
|
35
|
+
]);
|
|
36
|
+
const GENERATED_SCAFFOLD_TASK_PATTERNS = [
|
|
37
|
+
/^browse exposition pages to understand included base packages$/,
|
|
38
|
+
/^review styling in the stylist page$/,
|
|
39
|
+
/^run or defer eject stylist mark this todo done after ejection or deciding to defer/,
|
|
40
|
+
/^run mds eject exposition and keep only the generated sections/,
|
|
41
|
+
/^sign in and set up eas in the terminal$/,
|
|
42
|
+
/^resolve every todoforcontext optional marker/,
|
|
43
|
+
/^confirm visual direction in project style md after using the stylist page$/,
|
|
44
|
+
/^after the project info md markers are resolved refresh/,
|
|
45
|
+
/^refresh the agent derived roadmap from project info md/,
|
|
46
|
+
/^keep or prune included package examples after reviewing exposition$/,
|
|
47
|
+
/^remove exposition pages before production/,
|
|
48
|
+
/^establish the app shell and first implementation ready route in src app$/,
|
|
49
|
+
/^establish the app shell and first implementation ready route for the mvp$/,
|
|
50
|
+
/^implement the first concrete product flow from project info md and the roadmap$/,
|
|
51
|
+
/^implement the initial data layer using local dummy data with expo sqlite$/,
|
|
52
|
+
/^implement the initial data layer and service boundaries needed for the mvp$/,
|
|
53
|
+
/^build the remaining core flows from project info md phase by phase$/,
|
|
54
|
+
/^adapt the working mvp flow for the remaining target platforms after the primary flow is stable$/,
|
|
55
|
+
/^configure eas for building mobile applications$/,
|
|
56
|
+
/^configure eas for publishing mobile applications$/,
|
|
57
|
+
/^run mds doctor ci and address errors$/,
|
|
58
|
+
/^follow project release flow md for test to main development$/,
|
|
59
|
+
/^complete the one time github repo setup from project release flow md/,
|
|
60
|
+
/^add github branch protection so pr checks pass before merging into test or main$/,
|
|
61
|
+
/^prepare store distribution packaging review notes and release validation/,
|
|
62
|
+
];
|
|
6
63
|
export const ROADMAP_BLOCKED_MARKER_WARNING = 'Roadmap generation is blocked until every `# TodoForContext(optional):` marker in `project/` is resolved. Fill the section underneath or delete the marker line first.';
|
|
7
64
|
export const ROADMAP_CLARIFICATION_WARNING = 'Roadmap generation needs clarification because `project/info.md` still reads as too generic for high-confidence product planning.';
|
|
8
65
|
const PHASE_SPECS = [
|
|
@@ -178,6 +235,7 @@ export async function generateProjectRoadmap(projectPathInput = '.', options = {
|
|
|
178
235
|
const existingTodo = (await pathExists(todoPath))
|
|
179
236
|
? await readFile(todoPath, 'utf8')
|
|
180
237
|
: renderTodoSkeleton(extractProjectName(infoRaw));
|
|
238
|
+
const roadmapContext = await inspectRoadmapProjectContext(projectPath);
|
|
181
239
|
const markerHits = await scanProjectTodoForContextMarkers(projectPath, { scope: 'info' });
|
|
182
240
|
if (markerHits.length > 0) {
|
|
183
241
|
return {
|
|
@@ -222,7 +280,7 @@ export async function generateProjectRoadmap(projectPathInput = '.', options = {
|
|
|
222
280
|
};
|
|
223
281
|
}
|
|
224
282
|
const warnings = [];
|
|
225
|
-
const derivedPhases = deriveRoadmapPhases(sections, warnings);
|
|
283
|
+
const derivedPhases = deriveRoadmapPhases(sections, warnings, roadmapContext);
|
|
226
284
|
const previousState = (await readRoadmapState(roadmapStatePath)) ?? inferLegacyRoadmapState(existingTodo);
|
|
227
285
|
const nextState = buildRoadmapState(derivedPhases);
|
|
228
286
|
const merged = mergeRoadmapIntoTodo(existingTodo, derivedPhases, previousState, preserveStatus);
|
|
@@ -297,7 +355,11 @@ export function parseInfoSections(infoRaw) {
|
|
|
297
355
|
flush();
|
|
298
356
|
return map;
|
|
299
357
|
}
|
|
300
|
-
export function deriveRoadmapPhases(sections, warnings = []
|
|
358
|
+
export function deriveRoadmapPhases(sections, warnings = [], context = {
|
|
359
|
+
appDirectory: null,
|
|
360
|
+
hasExposition: false,
|
|
361
|
+
hasStylist: false,
|
|
362
|
+
}) {
|
|
301
363
|
const phaseTasks = new Map(PHASE_SPECS.map((phase) => [phase.id, []]));
|
|
302
364
|
const seen = new Map(PHASE_SPECS.map((phase) => [phase.id, new Set()]));
|
|
303
365
|
const addTask = (phaseId, text, source) => {
|
|
@@ -322,17 +384,75 @@ export function deriveRoadmapPhases(sections, warnings = []) {
|
|
|
322
384
|
const featureItems = extractSectionItems(sections.coreFeatures?.content);
|
|
323
385
|
const screenItems = extractSectionItems(sections.mustIncludeScreensOrFlows?.content);
|
|
324
386
|
const techStackItems = extractSectionItems(sections.techStack?.content);
|
|
325
|
-
const dataItems = [...extractSectionItems(sections.dataAndBackend?.content), ...techStackItems];
|
|
326
|
-
const releaseItems = [...extractSectionItems(sections.releaseStrategy?.content), ...techStackItems];
|
|
327
387
|
const monetizationItems = extractSectionItems(sections.monetizationStrategy?.content);
|
|
328
388
|
const questionItems = extractSectionItems(sections.questionsToRevisit?.content);
|
|
329
389
|
const platformItems = extractSectionItems(sections.platforms?.content);
|
|
330
|
-
const packageItems = [
|
|
390
|
+
const packageItems = buildMeaningfulItemList([
|
|
391
|
+
...extractSectionItems(sections.packageChoices?.content),
|
|
392
|
+
getLabeledSectionValue(sections.techStack?.content, 'Navigation'),
|
|
393
|
+
getLabeledSectionValue(sections.techStack?.content, 'Style Library'),
|
|
394
|
+
parseYesNoValue(getLabeledSectionValue(sections.techStack?.content, 'Expo UI')) === true
|
|
395
|
+
? 'Expo UI'
|
|
396
|
+
: null,
|
|
397
|
+
parseYesNoValue(getLabeledSectionValue(sections.techStack?.content, 'Expo Native Tabs')) === true
|
|
398
|
+
? 'Expo Native Tabs'
|
|
399
|
+
: null,
|
|
400
|
+
...techStackItems.filter((item) => /software mansion/i.test(item)),
|
|
401
|
+
]);
|
|
402
|
+
const techStackContent = sections.techStack?.content;
|
|
403
|
+
const startingDataMode = getLabeledSectionValue(techStackContent, 'Starting Data mode');
|
|
404
|
+
const easEnabled = parseYesNoValue(getLabeledSectionValue(techStackContent, 'EAS'));
|
|
405
|
+
const easUses = splitChoiceList(getLabeledSectionValue(techStackContent, 'EAS Usage'));
|
|
406
|
+
const testToMainSafeguards = parseYesNoValue(getLabeledSectionValue(techStackContent, 'Use test-to-main safeguards'));
|
|
407
|
+
const deployedServer = getLabeledSectionValue(techStackContent, 'Deployed server');
|
|
408
|
+
const webOutput = getLabeledSectionValue(techStackContent, 'Web output');
|
|
409
|
+
const routeDirectory = extractRouteDirectory(sections, context);
|
|
410
|
+
const firstTargetPlatform = getLabeledSectionValue(sections.platforms?.content, 'First MVP platform') ??
|
|
411
|
+
getLabeledSectionValue(techStackContent, 'First MVP platform');
|
|
412
|
+
const dataItems = buildMeaningfulItemList([
|
|
413
|
+
...extractSectionItems(sections.dataAndBackend?.content),
|
|
414
|
+
getLabeledSectionValue(techStackContent, 'Data Categories'),
|
|
415
|
+
startingDataMode,
|
|
416
|
+
toEnabledLabel(getLabeledSectionValue(techStackContent, 'Auth'), 'Auth'),
|
|
417
|
+
toEnabledLabel(getLabeledSectionValue(techStackContent, 'State management library'), 'State management'),
|
|
418
|
+
]);
|
|
419
|
+
const releaseItems = buildMeaningfulItemList([
|
|
420
|
+
...extractSectionItems(sections.releaseStrategy?.content),
|
|
421
|
+
getLabeledSectionValue(techStackContent, 'Initial Deployment plan'),
|
|
422
|
+
testToMainSafeguards === true ? 'test-to-main safeguards' : null,
|
|
423
|
+
shouldSkipServerReleaseTask(deployedServer, webOutput) ? null : deployedServer,
|
|
424
|
+
webOutput && normalizeTaskKey(webOutput) !== 'none' ? `web output: ${webOutput}` : null,
|
|
425
|
+
]);
|
|
426
|
+
const effectiveMonetizationItems = isNoMonetizationPlan(sections.monetizationStrategy?.content)
|
|
427
|
+
? []
|
|
428
|
+
: monetizationItems;
|
|
429
|
+
addTask('phase-0', 'Review `project/` files for accuracy and planning adjustments.', 'setup');
|
|
430
|
+
if (context.hasExposition) {
|
|
431
|
+
addTask('phase-0', 'Browse exposition pages to understand the included starter flows, package demos, and MDS scaffolding.', 'setup');
|
|
432
|
+
addTask('phase-0', 'Run `mds eject exposition` and keep only the generated sections you want to retain.', 'setup');
|
|
433
|
+
addTask('phase-0', 'Keep or prune included package examples after reviewing `/exposition`.', 'setup');
|
|
434
|
+
addTask('phase-0', 'Remove exposition pages before production once their lessons are absorbed.', 'setup');
|
|
435
|
+
}
|
|
436
|
+
if (context.hasStylist) {
|
|
437
|
+
addTask('phase-0', "Review styling in the 'Stylist' page and pressure-test the starter theme before building product screens.", 'setup');
|
|
438
|
+
addTask('phase-0', 'Run or defer `eject-stylist`; mark this todo done after ejection or deciding to keep it longer for design iteration.', 'setup');
|
|
439
|
+
}
|
|
440
|
+
addTask('phase-0', context.hasStylist
|
|
441
|
+
? 'Confirm visual direction in `project/style.md` after reviewing the Stylist page.'
|
|
442
|
+
: 'Confirm the visual direction in `project/style.md` before implementation accelerates.', 'setup');
|
|
443
|
+
if (easEnabled === true || easUses.length > 0) {
|
|
444
|
+
addTask('phase-0', 'Sign in and set up EAS in the terminal.', 'setup');
|
|
445
|
+
}
|
|
446
|
+
addTask('phase-0', 'If `project/info.md` changes materially, rerun `mds roadmap` and review this plan before continuing implementation.', 'setup');
|
|
447
|
+
addTask('phase-1', routeDirectory
|
|
448
|
+
? `Establish the app shell and first implementation-ready route in ${routeDirectory}.`
|
|
449
|
+
: 'Establish the app shell and first implementation-ready route for the MVP.', 'screen');
|
|
331
450
|
const firstFlow = flowItems[0];
|
|
332
451
|
if (firstFlow) {
|
|
333
452
|
addTask('phase-1', `Implement the first core user flow: ${firstFlow}.`, 'core-flow');
|
|
334
453
|
}
|
|
335
454
|
else {
|
|
455
|
+
addTask('phase-1', 'Implement the first concrete product flow from `project/info.md` and the roadmap.', 'core-flow');
|
|
336
456
|
warnings.push('No concrete core flow was found in `project/info.md`; roadmap generation should be rerun after the app intent is clarified.');
|
|
337
457
|
}
|
|
338
458
|
const firstScreens = pickDistinct(screenItems, 3);
|
|
@@ -343,16 +463,29 @@ export function deriveRoadmapPhases(sections, warnings = []) {
|
|
|
343
463
|
if (firstFeatures.length > 0) {
|
|
344
464
|
addTask('phase-1', `Scope the first feature modules around: ${formatTaskList(firstFeatures)}.`, 'feature');
|
|
345
465
|
}
|
|
466
|
+
if (startingDataMode) {
|
|
467
|
+
addTask('phase-2', `Implement the initial data layer using ${startingDataMode}.`, 'data');
|
|
468
|
+
if (/\bsupabase\b/i.test(startingDataMode)) {
|
|
469
|
+
addTask('phase-2', 'Create separate Supabase projects for test/staging and production before shared data work expands.', 'data');
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
else {
|
|
473
|
+
addTask('phase-2', 'Implement the initial data layer and service boundaries needed for the MVP.', 'data');
|
|
474
|
+
}
|
|
346
475
|
if (dataItems.length > 0) {
|
|
347
476
|
addTask('phase-2', `Design the initial data layer and service boundaries for: ${formatTaskList(pickDistinct(dataItems, 3))}.`, 'data');
|
|
348
477
|
}
|
|
349
478
|
else {
|
|
350
479
|
warnings.push('No concrete data/backend notes were found in `project/info.md`; data-layer work will rely on the scaffolded phase anchors until clarified.');
|
|
351
480
|
}
|
|
352
|
-
const keywordSource = [dataItems, releaseItems,
|
|
481
|
+
const keywordSource = [dataItems, releaseItems, effectiveMonetizationItems, packageItems, platformItems]
|
|
353
482
|
.flat()
|
|
354
483
|
.join(' ');
|
|
355
484
|
for (const task of KEYWORD_TASKS) {
|
|
485
|
+
if (task.text === 'Validate the production web/server hosting path, environment ownership, and rollout checklist.' &&
|
|
486
|
+
shouldSkipServerReleaseTask(deployedServer, webOutput)) {
|
|
487
|
+
continue;
|
|
488
|
+
}
|
|
356
489
|
if (task.patterns.some((pattern) => pattern.test(keywordSource))) {
|
|
357
490
|
addTask(task.phaseId, task.text, task.source);
|
|
358
491
|
}
|
|
@@ -363,16 +496,41 @@ export function deriveRoadmapPhases(sections, warnings = []) {
|
|
|
363
496
|
'`project/info.md`' +
|
|
364
497
|
`: ${formatTaskList(pickDistinct(remainingFlows, 4))}.`, 'core-flow');
|
|
365
498
|
}
|
|
499
|
+
else if (flowItems.length === 0) {
|
|
500
|
+
addTask('phase-3', 'Build the remaining core flows from `project/info.md` phase by phase.', 'core-flow');
|
|
501
|
+
}
|
|
366
502
|
const remainingScreens = screenItems.slice(firstScreens.length);
|
|
367
503
|
if (remainingScreens.length > 0) {
|
|
368
504
|
addTask('phase-3', `Add the remaining must-include screens or workflows: ${formatTaskList(pickDistinct(remainingScreens, 4))}.`, 'screen');
|
|
369
505
|
}
|
|
370
|
-
if (
|
|
371
|
-
|
|
506
|
+
if (effectiveMonetizationItems.length > 0 &&
|
|
507
|
+
!isPlaceholderSection(sections.monetizationStrategy?.content) &&
|
|
508
|
+
!isNoMonetizationPlan(sections.monetizationStrategy?.content)) {
|
|
509
|
+
addTask('phase-3', `Translate the monetization or business model into product work: ${formatTaskList(pickDistinct(effectiveMonetizationItems, 2))}.`, 'monetization');
|
|
510
|
+
}
|
|
511
|
+
const targetPlatforms = extractPlatformTargets(platformItems);
|
|
512
|
+
const normalizedFirstTargetPlatform = normalizeTaskKey(firstTargetPlatform ?? '');
|
|
513
|
+
const remainingPlatforms = targetPlatforms.filter((platform) => normalizeTaskKey(platform) !== normalizedFirstTargetPlatform);
|
|
514
|
+
if (remainingPlatforms.length > 0) {
|
|
515
|
+
addTask('phase-3', `Adapt the working MVP flow for the remaining target platforms after the primary flow is stable: ${formatTaskList(remainingPlatforms)}.`, 'platform');
|
|
516
|
+
}
|
|
517
|
+
for (const easUse of easUses) {
|
|
518
|
+
addTask('phase-3', `Configure EAS for ${easUse}.`, 'integration');
|
|
372
519
|
}
|
|
373
|
-
|
|
374
|
-
if (
|
|
375
|
-
addTask('phase-
|
|
520
|
+
addTask('phase-4', 'Run `mds doctor --ci` and address errors.', 'release');
|
|
521
|
+
if (testToMainSafeguards === true) {
|
|
522
|
+
addTask('phase-4', 'Follow `project/release-flow.md` for test-to-main development.', 'release');
|
|
523
|
+
addTask('phase-4', 'Complete the one-time GitHub repo setup from `project/release-flow.md` so `test` and `main` are protected correctly.', 'release');
|
|
524
|
+
addTask('phase-4', 'Add GitHub branch protection so PR checks pass before merging into `test` or `main`.', 'release');
|
|
525
|
+
}
|
|
526
|
+
else if (testToMainSafeguards === false) {
|
|
527
|
+
addTask('phase-4', 'Decide on release safeguards before production work begins.', 'release');
|
|
528
|
+
}
|
|
529
|
+
if (webOutput && normalizeTaskKey(webOutput) !== 'none') {
|
|
530
|
+
addTask('phase-4', `Confirm Expo web output mode: ${webOutput}.`, 'release');
|
|
531
|
+
}
|
|
532
|
+
if (deployedServer && !shouldSkipServerReleaseTask(deployedServer, webOutput)) {
|
|
533
|
+
addTask('phase-4', `Plan deployed server work: ${deployedServer}.`, 'release');
|
|
376
534
|
}
|
|
377
535
|
if (releaseItems.length > 0) {
|
|
378
536
|
addTask('phase-4', `Prepare the release flow for: ${formatTaskList(pickDistinct(releaseItems, 3))}.`, 'release');
|
|
@@ -424,6 +582,13 @@ export async function scanProjectTodoForContextMarkers(projectPathInput = '.', o
|
|
|
424
582
|
}
|
|
425
583
|
function detectRoadmapClarificationNeeds(sections) {
|
|
426
584
|
const checks = [];
|
|
585
|
+
const releaseSignal = [
|
|
586
|
+
sections.releaseStrategy?.content,
|
|
587
|
+
getLabeledSectionValue(sections.techStack?.content, 'Initial Deployment plan'),
|
|
588
|
+
getLabeledSectionValue(sections.techStack?.content, 'EAS Usage'),
|
|
589
|
+
]
|
|
590
|
+
.filter((value) => Boolean(value))
|
|
591
|
+
.join('\n\n');
|
|
427
592
|
if (isMissingOrLowConfidenceSection(sections.targetUsers?.content, 'audience')) {
|
|
428
593
|
checks.push({
|
|
429
594
|
warning: '`project/info.md` still has a generic target audience, so roadmap generation cannot tell who the first experience is really for.',
|
|
@@ -457,7 +622,7 @@ function detectRoadmapClarificationNeeds(sections) {
|
|
|
457
622
|
},
|
|
458
623
|
});
|
|
459
624
|
}
|
|
460
|
-
if (isMissingOrLowConfidenceSection(
|
|
625
|
+
if (isMissingOrLowConfidenceSection(releaseSignal || undefined, 'release')) {
|
|
461
626
|
checks.push({
|
|
462
627
|
warning: '`project/info.md` still has a generic release/distribution plan, so release-phase tasks would be mostly filler.',
|
|
463
628
|
question: {
|
|
@@ -512,6 +677,9 @@ function rebuildPhaseSection(existingSectionLines, derivedTasks, previousDerived
|
|
|
512
677
|
if (!checkbox) {
|
|
513
678
|
return true;
|
|
514
679
|
}
|
|
680
|
+
if (isGeneratedScaffoldTaskKey(normalizeTaskKey(checkbox.text))) {
|
|
681
|
+
return false;
|
|
682
|
+
}
|
|
515
683
|
return !previousDerivedKeys.has(normalizeTaskKey(checkbox.text));
|
|
516
684
|
}));
|
|
517
685
|
const nextDerivedLines = derivedTasks.map((task) => {
|
|
@@ -526,6 +694,9 @@ function rebuildPhaseSection(existingSectionLines, derivedTasks, previousDerived
|
|
|
526
694
|
}
|
|
527
695
|
return [...preservedLines, '', ...nextDerivedLines];
|
|
528
696
|
}
|
|
697
|
+
function isGeneratedScaffoldTaskKey(key) {
|
|
698
|
+
return LEGACY_SCAFFOLD_TASK_KEYS.has(key) || GENERATED_SCAFFOLD_TASK_PATTERNS.some((pattern) => pattern.test(key));
|
|
699
|
+
}
|
|
529
700
|
function buildRoadmapState(phases) {
|
|
530
701
|
return {
|
|
531
702
|
version: 1,
|
|
@@ -720,6 +891,96 @@ function extractPlatformTargets(platformItems) {
|
|
|
720
891
|
});
|
|
721
892
|
return uniqueItems(values);
|
|
722
893
|
}
|
|
894
|
+
function getLabeledSectionValue(content, ...labels) {
|
|
895
|
+
if (!content) {
|
|
896
|
+
return null;
|
|
897
|
+
}
|
|
898
|
+
const lines = normalizeLineEndings(content).split('\n');
|
|
899
|
+
for (const rawLine of lines) {
|
|
900
|
+
const line = rawLine.replace(/^\s*[-*]\s+/u, '').trim();
|
|
901
|
+
for (const label of labels) {
|
|
902
|
+
const match = new RegExp(`^${escapeRegExp(label)}\\s*:\\s*(.+)$`, 'i').exec(line);
|
|
903
|
+
if (match?.[1]) {
|
|
904
|
+
return cleanTaskText(match[1]);
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
}
|
|
908
|
+
return null;
|
|
909
|
+
}
|
|
910
|
+
function extractRouteDirectory(sections, context) {
|
|
911
|
+
const labeled = getLabeledSectionValue(sections.techStack?.content, 'Expo Router app directory') ??
|
|
912
|
+
getLabeledSectionValue(sections.platforms?.content, 'Expo Router app directory');
|
|
913
|
+
if (labeled) {
|
|
914
|
+
const normalized = normalizeTaskKey(labeled);
|
|
915
|
+
if (normalized === 'src app') {
|
|
916
|
+
return 'src/app';
|
|
917
|
+
}
|
|
918
|
+
if (normalized === 'app') {
|
|
919
|
+
return 'app';
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
const platformContent = normalizeLineEndings(sections.platforms?.content ?? '');
|
|
923
|
+
const routeMatch = /routes live under\s+`?(src\/app|app)`?/iu.exec(platformContent);
|
|
924
|
+
if (routeMatch?.[1]) {
|
|
925
|
+
return routeMatch[1] === 'src/app' ? 'src/app' : 'app';
|
|
926
|
+
}
|
|
927
|
+
return context.appDirectory;
|
|
928
|
+
}
|
|
929
|
+
function parseYesNoValue(value) {
|
|
930
|
+
if (!value) {
|
|
931
|
+
return null;
|
|
932
|
+
}
|
|
933
|
+
const normalized = normalizeTaskKey(value);
|
|
934
|
+
if (normalized === 'yes') {
|
|
935
|
+
return true;
|
|
936
|
+
}
|
|
937
|
+
if (normalized === 'no') {
|
|
938
|
+
return false;
|
|
939
|
+
}
|
|
940
|
+
return null;
|
|
941
|
+
}
|
|
942
|
+
function splitChoiceList(value) {
|
|
943
|
+
if (!value) {
|
|
944
|
+
return [];
|
|
945
|
+
}
|
|
946
|
+
return uniqueItems(value
|
|
947
|
+
.split(/,|\band\b/iu)
|
|
948
|
+
.map((item) => cleanTaskText(item))
|
|
949
|
+
.filter(Boolean));
|
|
950
|
+
}
|
|
951
|
+
function buildMeaningfulItemList(items) {
|
|
952
|
+
return uniqueItems(items
|
|
953
|
+
.map((item) => cleanTaskText(item ?? ''))
|
|
954
|
+
.filter(Boolean)
|
|
955
|
+
.filter((item) => !isNoneLikeValue(item)));
|
|
956
|
+
}
|
|
957
|
+
function toEnabledLabel(value, label) {
|
|
958
|
+
if (!value || isNoneLikeValue(value)) {
|
|
959
|
+
return null;
|
|
960
|
+
}
|
|
961
|
+
return `${label}: ${value}`;
|
|
962
|
+
}
|
|
963
|
+
function shouldSkipServerReleaseTask(deployedServer, webOutput) {
|
|
964
|
+
const normalizedServer = normalizeTaskKey(deployedServer ?? '');
|
|
965
|
+
const normalizedWebOutput = normalizeTaskKey(webOutput ?? '');
|
|
966
|
+
const hasExplicitNoServer = normalizedServer === 'no deployed server planned' || normalizedServer === 'none';
|
|
967
|
+
const hasExplicitNoWeb = normalizedWebOutput === 'none';
|
|
968
|
+
return hasExplicitNoServer && hasExplicitNoWeb;
|
|
969
|
+
}
|
|
970
|
+
function isNoMonetizationPlan(content) {
|
|
971
|
+
if (!content) {
|
|
972
|
+
return false;
|
|
973
|
+
}
|
|
974
|
+
return /\bno monetization\b/i.test(content) || /\bnot moneti[sz]ing\b/i.test(content);
|
|
975
|
+
}
|
|
976
|
+
function isNoneLikeValue(value) {
|
|
977
|
+
const normalized = normalizeTaskKey(value);
|
|
978
|
+
return (normalized === 'none' ||
|
|
979
|
+
normalized === 'no' ||
|
|
980
|
+
normalized === 'not planned yet' ||
|
|
981
|
+
normalized === 'no auth planned yet' ||
|
|
982
|
+
normalized === 'no deployed server planned');
|
|
983
|
+
}
|
|
723
984
|
function formatTaskList(items) {
|
|
724
985
|
const picked = pickDistinct(items, 4);
|
|
725
986
|
if (picked.length === 0) {
|
|
@@ -759,7 +1020,7 @@ function cleanTaskText(value) {
|
|
|
759
1020
|
.replace(/\s+/g, ' ')
|
|
760
1021
|
.replace(/\s+\.$/, '.')
|
|
761
1022
|
.trim()
|
|
762
|
-
.replace(/[
|
|
1023
|
+
.replace(/[;,:.-]+$/u, '')
|
|
763
1024
|
.trim();
|
|
764
1025
|
}
|
|
765
1026
|
function normalizeTaskKey(value) {
|
|
@@ -770,6 +1031,9 @@ function normalizeTaskKey(value) {
|
|
|
770
1031
|
.replace(/\s+/g, ' ')
|
|
771
1032
|
.trim();
|
|
772
1033
|
}
|
|
1034
|
+
function escapeRegExp(value) {
|
|
1035
|
+
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
1036
|
+
}
|
|
773
1037
|
function isMissingOrLowConfidenceSection(content, kind) {
|
|
774
1038
|
if (!content || isPlaceholderSection(content)) {
|
|
775
1039
|
return true;
|
|
@@ -804,29 +1068,33 @@ function renderTodoSkeleton(appName) {
|
|
|
804
1068
|
'',
|
|
805
1069
|
'## Phase 0: Orientation And Planning',
|
|
806
1070
|
'',
|
|
807
|
-
'- [ ] Review `project/` files for accuracy and planning adjustments.',
|
|
808
|
-
'- [ ] Resolve every `# TodoForContext(optional):` marker in `project/info.md` by filling the section underneath or deleting the marker line to acknowledge no extra context is needed.',
|
|
809
|
-
'- [ ] Refresh the agent-derived roadmap from `project/info.md` and review it for accuracy before implementation.',
|
|
810
|
-
'',
|
|
811
1071
|
'## Phase 1: App Shell And First Flow',
|
|
812
1072
|
'',
|
|
813
|
-
'- [ ] Establish the app shell and first implementation-ready route for the MVP.',
|
|
814
|
-
'- [ ] Implement the first concrete product flow from `project/info.md` and the roadmap.',
|
|
815
|
-
'',
|
|
816
1073
|
'## Phase 2: Data Layer',
|
|
817
1074
|
'',
|
|
818
|
-
'- [ ] Implement the initial data layer and service boundaries needed for the MVP.',
|
|
819
|
-
'',
|
|
820
1075
|
'## Phase 3: Complete Product Flows',
|
|
821
1076
|
'',
|
|
822
|
-
'- [ ] Complete the remaining product flows needed for the MVP.',
|
|
823
|
-
'',
|
|
824
1077
|
'## Phase 4: Polish, Safeguards, And Release',
|
|
825
1078
|
'',
|
|
826
|
-
'- [ ] Run `mds doctor --ci` and address errors before release.',
|
|
827
|
-
'',
|
|
828
1079
|
].join('\n');
|
|
829
1080
|
}
|
|
1081
|
+
async function inspectRoadmapProjectContext(projectPath) {
|
|
1082
|
+
const srcAppDir = path.join(projectPath, 'src', 'app');
|
|
1083
|
+
const rootAppDir = path.join(projectPath, 'app');
|
|
1084
|
+
const srcExpositionDir = path.join(srcAppDir, 'exposition');
|
|
1085
|
+
const rootExpositionDir = path.join(rootAppDir, 'exposition');
|
|
1086
|
+
const srcStylistPath = path.join(srcExpositionDir, 'stylist.tsx');
|
|
1087
|
+
const rootStylistPath = path.join(rootExpositionDir, 'stylist.tsx');
|
|
1088
|
+
const hasSrcApp = await pathExists(srcAppDir);
|
|
1089
|
+
const hasRootApp = await pathExists(rootAppDir);
|
|
1090
|
+
const hasExposition = (await pathExists(srcExpositionDir)) || (await pathExists(rootExpositionDir));
|
|
1091
|
+
const hasStylist = (await pathExists(srcStylistPath)) || (await pathExists(rootStylistPath));
|
|
1092
|
+
return {
|
|
1093
|
+
appDirectory: hasSrcApp ? 'src/app' : hasRootApp ? 'app' : null,
|
|
1094
|
+
hasExposition,
|
|
1095
|
+
hasStylist,
|
|
1096
|
+
};
|
|
1097
|
+
}
|
|
830
1098
|
function ensureTrailingNewline(value) {
|
|
831
1099
|
return `${normalizeLineEndings(value).trimEnd()}\n`;
|
|
832
1100
|
}
|
package/dist/roadmap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roadmap.js","sourceRoot":"","sources":["../src/roadmap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"roadmap.js","sourceRoot":"","sources":["../src/roadmap.ts"],"names":[],"mappings":"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"}
|