@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/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 = [...extractSectionItems(sections.packageChoices?.content), ...techStackItems];
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, monetizationItems, packageItems, platformItems]
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 (monetizationItems.length > 0 && !isPlaceholderSection(sections.monetizationStrategy?.content)) {
371
- addTask('phase-3', `Translate the monetization or business model into product work: ${formatTaskList(pickDistinct(monetizationItems, 2))}.`, 'monetization');
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
- const remainingPlatforms = extractPlatformTargets(platformItems);
374
- if (remainingPlatforms.length > 1) {
375
- addTask('phase-3', `Adapt the completed flows for the remaining target platforms: ${formatTaskList(remainingPlatforms)}.`, 'platform');
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(sections.releaseStrategy?.content, 'release')) {
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(/[;,:-]+$/u, '')
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
  }
@@ -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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"}