@mr.dj2u/cli 0.1.16 → 0.1.17

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,17 @@ 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
+ 'review project files for accuracy and planning adjustments',
8
+ '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',
9
+ 'refresh the agent derived roadmap from project info md and review it for accuracy before implementation',
10
+ 'establish the app shell and first implementation ready route for the mvp',
11
+ 'implement the first concrete product flow from project info md and the roadmap',
12
+ 'implement the initial data layer and service boundaries needed for the mvp',
13
+ 'complete the remaining product flows needed for the mvp',
14
+ 'run mds doctor ci and address errors before release',
15
+ 'prepare store distribution packaging review notes and release validation for the chosen delivery path',
16
+ ]);
6
17
  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
18
  export const ROADMAP_CLARIFICATION_WARNING = 'Roadmap generation needs clarification because `project/info.md` still reads as too generic for high-confidence product planning.';
8
19
  const PHASE_SPECS = [
@@ -178,6 +189,7 @@ export async function generateProjectRoadmap(projectPathInput = '.', options = {
178
189
  const existingTodo = (await pathExists(todoPath))
179
190
  ? await readFile(todoPath, 'utf8')
180
191
  : renderTodoSkeleton(extractProjectName(infoRaw));
192
+ const roadmapContext = await inspectRoadmapProjectContext(projectPath);
181
193
  const markerHits = await scanProjectTodoForContextMarkers(projectPath, { scope: 'info' });
182
194
  if (markerHits.length > 0) {
183
195
  return {
@@ -222,7 +234,7 @@ export async function generateProjectRoadmap(projectPathInput = '.', options = {
222
234
  };
223
235
  }
224
236
  const warnings = [];
225
- const derivedPhases = deriveRoadmapPhases(sections, warnings);
237
+ const derivedPhases = deriveRoadmapPhases(sections, warnings, roadmapContext);
226
238
  const previousState = (await readRoadmapState(roadmapStatePath)) ?? inferLegacyRoadmapState(existingTodo);
227
239
  const nextState = buildRoadmapState(derivedPhases);
228
240
  const merged = mergeRoadmapIntoTodo(existingTodo, derivedPhases, previousState, preserveStatus);
@@ -297,7 +309,11 @@ export function parseInfoSections(infoRaw) {
297
309
  flush();
298
310
  return map;
299
311
  }
300
- export function deriveRoadmapPhases(sections, warnings = []) {
312
+ export function deriveRoadmapPhases(sections, warnings = [], context = {
313
+ appDirectory: null,
314
+ hasExposition: false,
315
+ hasStylist: false,
316
+ }) {
301
317
  const phaseTasks = new Map(PHASE_SPECS.map((phase) => [phase.id, []]));
302
318
  const seen = new Map(PHASE_SPECS.map((phase) => [phase.id, new Set()]));
303
319
  const addTask = (phaseId, text, source) => {
@@ -322,12 +338,70 @@ export function deriveRoadmapPhases(sections, warnings = []) {
322
338
  const featureItems = extractSectionItems(sections.coreFeatures?.content);
323
339
  const screenItems = extractSectionItems(sections.mustIncludeScreensOrFlows?.content);
324
340
  const techStackItems = extractSectionItems(sections.techStack?.content);
325
- const dataItems = [...extractSectionItems(sections.dataAndBackend?.content), ...techStackItems];
326
- const releaseItems = [...extractSectionItems(sections.releaseStrategy?.content), ...techStackItems];
327
341
  const monetizationItems = extractSectionItems(sections.monetizationStrategy?.content);
328
342
  const questionItems = extractSectionItems(sections.questionsToRevisit?.content);
329
343
  const platformItems = extractSectionItems(sections.platforms?.content);
330
- const packageItems = [...extractSectionItems(sections.packageChoices?.content), ...techStackItems];
344
+ const packageItems = buildMeaningfulItemList([
345
+ ...extractSectionItems(sections.packageChoices?.content),
346
+ getLabeledSectionValue(sections.techStack?.content, 'Navigation'),
347
+ getLabeledSectionValue(sections.techStack?.content, 'Style Library'),
348
+ parseYesNoValue(getLabeledSectionValue(sections.techStack?.content, 'Expo UI')) === true
349
+ ? 'Expo UI'
350
+ : null,
351
+ parseYesNoValue(getLabeledSectionValue(sections.techStack?.content, 'Expo Native Tabs')) === true
352
+ ? 'Expo Native Tabs'
353
+ : null,
354
+ ...techStackItems.filter((item) => /software mansion/i.test(item)),
355
+ ]);
356
+ const techStackContent = sections.techStack?.content;
357
+ const startingDataMode = getLabeledSectionValue(techStackContent, 'Starting Data mode');
358
+ const easEnabled = parseYesNoValue(getLabeledSectionValue(techStackContent, 'EAS'));
359
+ const easUses = splitChoiceList(getLabeledSectionValue(techStackContent, 'EAS Usage'));
360
+ const testToMainSafeguards = parseYesNoValue(getLabeledSectionValue(techStackContent, 'Use test-to-main safeguards'));
361
+ const deployedServer = getLabeledSectionValue(techStackContent, 'Deployed server');
362
+ const webOutput = getLabeledSectionValue(techStackContent, 'Web output');
363
+ const routeDirectory = extractRouteDirectory(sections, context);
364
+ const firstTargetPlatform = getLabeledSectionValue(sections.platforms?.content, 'First MVP platform') ??
365
+ getLabeledSectionValue(techStackContent, 'First MVP platform');
366
+ const dataItems = buildMeaningfulItemList([
367
+ ...extractSectionItems(sections.dataAndBackend?.content),
368
+ getLabeledSectionValue(techStackContent, 'Data Categories'),
369
+ startingDataMode,
370
+ toEnabledLabel(getLabeledSectionValue(techStackContent, 'Auth'), 'Auth'),
371
+ toEnabledLabel(getLabeledSectionValue(techStackContent, 'State management library'), 'State management'),
372
+ ]);
373
+ const releaseItems = buildMeaningfulItemList([
374
+ ...extractSectionItems(sections.releaseStrategy?.content),
375
+ getLabeledSectionValue(techStackContent, 'Initial Deployment plan'),
376
+ testToMainSafeguards === true ? 'test-to-main safeguards' : null,
377
+ shouldSkipServerReleaseTask(deployedServer, webOutput) ? null : deployedServer,
378
+ webOutput && normalizeTaskKey(webOutput) !== 'none' ? `web output: ${webOutput}` : null,
379
+ ]);
380
+ const effectiveMonetizationItems = isNoMonetizationPlan(sections.monetizationStrategy?.content)
381
+ ? []
382
+ : monetizationItems;
383
+ addTask('phase-0', 'Review `project/` files for accuracy and planning adjustments.', 'setup');
384
+ if (context.hasExposition) {
385
+ addTask('phase-0', 'Browse exposition pages to understand the included starter flows, package demos, and MDS scaffolding.', 'setup');
386
+ addTask('phase-0', 'Run `mds eject exposition` and keep only the generated sections you want to retain.', 'setup');
387
+ addTask('phase-0', 'Keep or prune included package examples after reviewing `/exposition`.', 'setup');
388
+ addTask('phase-0', 'Remove exposition pages before production once their lessons are absorbed.', 'setup');
389
+ }
390
+ if (context.hasStylist) {
391
+ addTask('phase-0', "Review styling in the 'Stylist' page and pressure-test the starter theme before building product screens.", 'setup');
392
+ addTask('phase-0', 'Run or defer `eject-stylist`; mark this todo done after ejection or deciding to keep it longer for design iteration.', 'setup');
393
+ }
394
+ addTask('phase-0', context.hasStylist
395
+ ? 'Confirm visual direction in `project/style.md` after reviewing the Stylist page.'
396
+ : 'Confirm the visual direction in `project/style.md` before implementation accelerates.', 'setup');
397
+ if (easEnabled === true || easUses.length > 0) {
398
+ addTask('phase-0', 'Sign in and set up EAS in the terminal.', 'setup');
399
+ }
400
+ addTask('phase-0', 'If `project/info.md` changes materially, rerun `mds roadmap` and review this plan before continuing implementation.', 'setup');
401
+ addTask('phase-1', routeDirectory
402
+ ? `Establish the app shell and first implementation-ready route in ${routeDirectory}.`
403
+ : 'Establish the app shell and first implementation-ready route for the MVP.', 'screen');
404
+ addTask('phase-1', 'Implement the first concrete product flow from `project/info.md` and the roadmap.', 'core-flow');
331
405
  const firstFlow = flowItems[0];
332
406
  if (firstFlow) {
333
407
  addTask('phase-1', `Implement the first core user flow: ${firstFlow}.`, 'core-flow');
@@ -343,20 +417,34 @@ export function deriveRoadmapPhases(sections, warnings = []) {
343
417
  if (firstFeatures.length > 0) {
344
418
  addTask('phase-1', `Scope the first feature modules around: ${formatTaskList(firstFeatures)}.`, 'feature');
345
419
  }
420
+ if (startingDataMode) {
421
+ addTask('phase-2', `Implement the initial data layer using ${startingDataMode}.`, 'data');
422
+ if (/\bsupabase\b/i.test(startingDataMode)) {
423
+ addTask('phase-2', 'Create separate Supabase projects for test/staging and production before shared data work expands.', 'data');
424
+ }
425
+ }
426
+ else {
427
+ addTask('phase-2', 'Implement the initial data layer and service boundaries needed for the MVP.', 'data');
428
+ }
346
429
  if (dataItems.length > 0) {
347
430
  addTask('phase-2', `Design the initial data layer and service boundaries for: ${formatTaskList(pickDistinct(dataItems, 3))}.`, 'data');
348
431
  }
349
432
  else {
350
433
  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
434
  }
352
- const keywordSource = [dataItems, releaseItems, monetizationItems, packageItems, platformItems]
435
+ const keywordSource = [dataItems, releaseItems, effectiveMonetizationItems, packageItems, platformItems]
353
436
  .flat()
354
437
  .join(' ');
355
438
  for (const task of KEYWORD_TASKS) {
439
+ if (task.text === 'Validate the production web/server hosting path, environment ownership, and rollout checklist.' &&
440
+ shouldSkipServerReleaseTask(deployedServer, webOutput)) {
441
+ continue;
442
+ }
356
443
  if (task.patterns.some((pattern) => pattern.test(keywordSource))) {
357
444
  addTask(task.phaseId, task.text, task.source);
358
445
  }
359
446
  }
447
+ addTask('phase-3', 'Build the remaining core flows from `project/info.md` phase by phase.', 'core-flow');
360
448
  const remainingFlows = flowItems.slice(1);
361
449
  if (remainingFlows.length > 0) {
362
450
  addTask('phase-3', `Implement the remaining core flows from ` +
@@ -367,12 +455,34 @@ export function deriveRoadmapPhases(sections, warnings = []) {
367
455
  if (remainingScreens.length > 0) {
368
456
  addTask('phase-3', `Add the remaining must-include screens or workflows: ${formatTaskList(pickDistinct(remainingScreens, 4))}.`, 'screen');
369
457
  }
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');
458
+ if (effectiveMonetizationItems.length > 0 &&
459
+ !isPlaceholderSection(sections.monetizationStrategy?.content) &&
460
+ !isNoMonetizationPlan(sections.monetizationStrategy?.content)) {
461
+ addTask('phase-3', `Translate the monetization or business model into product work: ${formatTaskList(pickDistinct(effectiveMonetizationItems, 2))}.`, 'monetization');
372
462
  }
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');
463
+ const targetPlatforms = extractPlatformTargets(platformItems);
464
+ const normalizedFirstTargetPlatform = normalizeTaskKey(firstTargetPlatform ?? '');
465
+ const remainingPlatforms = targetPlatforms.filter((platform) => normalizeTaskKey(platform) !== normalizedFirstTargetPlatform);
466
+ if (remainingPlatforms.length > 0) {
467
+ addTask('phase-3', `Adapt the working MVP flow for the remaining target platforms after the primary flow is stable: ${formatTaskList(remainingPlatforms)}.`, 'platform');
468
+ }
469
+ for (const easUse of easUses) {
470
+ addTask('phase-3', `Configure EAS for ${easUse}.`, 'integration');
471
+ }
472
+ addTask('phase-4', 'Run `mds doctor --ci` and address errors.', 'release');
473
+ if (testToMainSafeguards === true) {
474
+ addTask('phase-4', 'Follow `project/release-flow.md` for test-to-main development.', 'release');
475
+ addTask('phase-4', 'Complete the one-time GitHub repo setup from `project/release-flow.md` so `test` and `main` are protected correctly.', 'release');
476
+ addTask('phase-4', 'Add GitHub branch protection so PR checks pass before merging into `test` or `main`.', 'release');
477
+ }
478
+ else if (testToMainSafeguards === false) {
479
+ addTask('phase-4', 'Decide on release safeguards before production work begins.', 'release');
480
+ }
481
+ if (webOutput && normalizeTaskKey(webOutput) !== 'none') {
482
+ addTask('phase-4', `Confirm Expo web output mode: ${webOutput}.`, 'release');
483
+ }
484
+ if (deployedServer && !shouldSkipServerReleaseTask(deployedServer, webOutput)) {
485
+ addTask('phase-4', `Plan deployed server work: ${deployedServer}.`, 'release');
376
486
  }
377
487
  if (releaseItems.length > 0) {
378
488
  addTask('phase-4', `Prepare the release flow for: ${formatTaskList(pickDistinct(releaseItems, 3))}.`, 'release');
@@ -424,6 +534,13 @@ export async function scanProjectTodoForContextMarkers(projectPathInput = '.', o
424
534
  }
425
535
  function detectRoadmapClarificationNeeds(sections) {
426
536
  const checks = [];
537
+ const releaseSignal = [
538
+ sections.releaseStrategy?.content,
539
+ getLabeledSectionValue(sections.techStack?.content, 'Initial Deployment plan'),
540
+ getLabeledSectionValue(sections.techStack?.content, 'EAS Usage'),
541
+ ]
542
+ .filter((value) => Boolean(value))
543
+ .join('\n\n');
427
544
  if (isMissingOrLowConfidenceSection(sections.targetUsers?.content, 'audience')) {
428
545
  checks.push({
429
546
  warning: '`project/info.md` still has a generic target audience, so roadmap generation cannot tell who the first experience is really for.',
@@ -457,7 +574,7 @@ function detectRoadmapClarificationNeeds(sections) {
457
574
  },
458
575
  });
459
576
  }
460
- if (isMissingOrLowConfidenceSection(sections.releaseStrategy?.content, 'release')) {
577
+ if (isMissingOrLowConfidenceSection(releaseSignal || undefined, 'release')) {
461
578
  checks.push({
462
579
  warning: '`project/info.md` still has a generic release/distribution plan, so release-phase tasks would be mostly filler.',
463
580
  question: {
@@ -512,6 +629,9 @@ function rebuildPhaseSection(existingSectionLines, derivedTasks, previousDerived
512
629
  if (!checkbox) {
513
630
  return true;
514
631
  }
632
+ if (LEGACY_SCAFFOLD_TASK_KEYS.has(normalizeTaskKey(checkbox.text))) {
633
+ return false;
634
+ }
515
635
  return !previousDerivedKeys.has(normalizeTaskKey(checkbox.text));
516
636
  }));
517
637
  const nextDerivedLines = derivedTasks.map((task) => {
@@ -720,6 +840,96 @@ function extractPlatformTargets(platformItems) {
720
840
  });
721
841
  return uniqueItems(values);
722
842
  }
843
+ function getLabeledSectionValue(content, ...labels) {
844
+ if (!content) {
845
+ return null;
846
+ }
847
+ const lines = normalizeLineEndings(content).split('\n');
848
+ for (const rawLine of lines) {
849
+ const line = rawLine.replace(/^\s*[-*]\s+/u, '').trim();
850
+ for (const label of labels) {
851
+ const match = new RegExp(`^${escapeRegExp(label)}\\s*:\\s*(.+)$`, 'i').exec(line);
852
+ if (match?.[1]) {
853
+ return cleanTaskText(match[1]);
854
+ }
855
+ }
856
+ }
857
+ return null;
858
+ }
859
+ function extractRouteDirectory(sections, context) {
860
+ const labeled = getLabeledSectionValue(sections.techStack?.content, 'Expo Router app directory') ??
861
+ getLabeledSectionValue(sections.platforms?.content, 'Expo Router app directory');
862
+ if (labeled) {
863
+ const normalized = normalizeTaskKey(labeled);
864
+ if (normalized === 'src app') {
865
+ return 'src/app';
866
+ }
867
+ if (normalized === 'app') {
868
+ return 'app';
869
+ }
870
+ }
871
+ const platformContent = normalizeLineEndings(sections.platforms?.content ?? '');
872
+ const routeMatch = /routes live under\s+`?(src\/app|app)`?/iu.exec(platformContent);
873
+ if (routeMatch?.[1]) {
874
+ return routeMatch[1] === 'src/app' ? 'src/app' : 'app';
875
+ }
876
+ return context.appDirectory;
877
+ }
878
+ function parseYesNoValue(value) {
879
+ if (!value) {
880
+ return null;
881
+ }
882
+ const normalized = normalizeTaskKey(value);
883
+ if (normalized === 'yes') {
884
+ return true;
885
+ }
886
+ if (normalized === 'no') {
887
+ return false;
888
+ }
889
+ return null;
890
+ }
891
+ function splitChoiceList(value) {
892
+ if (!value) {
893
+ return [];
894
+ }
895
+ return uniqueItems(value
896
+ .split(/,|\band\b/iu)
897
+ .map((item) => cleanTaskText(item))
898
+ .filter(Boolean));
899
+ }
900
+ function buildMeaningfulItemList(items) {
901
+ return uniqueItems(items
902
+ .map((item) => cleanTaskText(item ?? ''))
903
+ .filter(Boolean)
904
+ .filter((item) => !isNoneLikeValue(item)));
905
+ }
906
+ function toEnabledLabel(value, label) {
907
+ if (!value || isNoneLikeValue(value)) {
908
+ return null;
909
+ }
910
+ return `${label}: ${value}`;
911
+ }
912
+ function shouldSkipServerReleaseTask(deployedServer, webOutput) {
913
+ const normalizedServer = normalizeTaskKey(deployedServer ?? '');
914
+ const normalizedWebOutput = normalizeTaskKey(webOutput ?? '');
915
+ const hasExplicitNoServer = normalizedServer === 'no deployed server planned' || normalizedServer === 'none';
916
+ const hasExplicitNoWeb = normalizedWebOutput === 'none';
917
+ return hasExplicitNoServer && hasExplicitNoWeb;
918
+ }
919
+ function isNoMonetizationPlan(content) {
920
+ if (!content) {
921
+ return false;
922
+ }
923
+ return /\bno monetization\b/i.test(content) || /\bnot moneti[sz]ing\b/i.test(content);
924
+ }
925
+ function isNoneLikeValue(value) {
926
+ const normalized = normalizeTaskKey(value);
927
+ return (normalized === 'none' ||
928
+ normalized === 'no' ||
929
+ normalized === 'not planned yet' ||
930
+ normalized === 'no auth planned yet' ||
931
+ normalized === 'no deployed server planned');
932
+ }
723
933
  function formatTaskList(items) {
724
934
  const picked = pickDistinct(items, 4);
725
935
  if (picked.length === 0) {
@@ -759,7 +969,7 @@ function cleanTaskText(value) {
759
969
  .replace(/\s+/g, ' ')
760
970
  .replace(/\s+\.$/, '.')
761
971
  .trim()
762
- .replace(/[;,:-]+$/u, '')
972
+ .replace(/[;,:.-]+$/u, '')
763
973
  .trim();
764
974
  }
765
975
  function normalizeTaskKey(value) {
@@ -770,6 +980,9 @@ function normalizeTaskKey(value) {
770
980
  .replace(/\s+/g, ' ')
771
981
  .trim();
772
982
  }
983
+ function escapeRegExp(value) {
984
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
985
+ }
773
986
  function isMissingOrLowConfidenceSection(content, kind) {
774
987
  if (!content || isPlaceholderSection(content)) {
775
988
  return true;
@@ -804,29 +1017,33 @@ function renderTodoSkeleton(appName) {
804
1017
  '',
805
1018
  '## Phase 0: Orientation And Planning',
806
1019
  '',
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
1020
  '## Phase 1: App Shell And First Flow',
812
1021
  '',
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
1022
  '## Phase 2: Data Layer',
817
1023
  '',
818
- '- [ ] Implement the initial data layer and service boundaries needed for the MVP.',
819
- '',
820
1024
  '## Phase 3: Complete Product Flows',
821
1025
  '',
822
- '- [ ] Complete the remaining product flows needed for the MVP.',
823
- '',
824
1026
  '## Phase 4: Polish, Safeguards, And Release',
825
1027
  '',
826
- '- [ ] Run `mds doctor --ci` and address errors before release.',
827
- '',
828
1028
  ].join('\n');
829
1029
  }
1030
+ async function inspectRoadmapProjectContext(projectPath) {
1031
+ const srcAppDir = path.join(projectPath, 'src', 'app');
1032
+ const rootAppDir = path.join(projectPath, 'app');
1033
+ const srcExpositionDir = path.join(srcAppDir, 'exposition');
1034
+ const rootExpositionDir = path.join(rootAppDir, 'exposition');
1035
+ const srcStylistPath = path.join(srcExpositionDir, 'stylist.tsx');
1036
+ const rootStylistPath = path.join(rootExpositionDir, 'stylist.tsx');
1037
+ const hasSrcApp = await pathExists(srcAppDir);
1038
+ const hasRootApp = await pathExists(rootAppDir);
1039
+ const hasExposition = (await pathExists(srcExpositionDir)) || (await pathExists(rootExpositionDir));
1040
+ const hasStylist = (await pathExists(srcStylistPath)) || (await pathExists(rootStylistPath));
1041
+ return {
1042
+ appDirectory: hasSrcApp ? 'src/app' : hasRootApp ? 'app' : null,
1043
+ hasExposition,
1044
+ hasStylist,
1045
+ };
1046
+ }
830
1047
  function ensureTrailingNewline(value) {
831
1048
  return `${normalizeLineEndings(value).trimEnd()}\n`;
832
1049
  }
@@ -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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"}