H1Milestones
This area holds the milestone-level planning docs plus the current support-surface spec for milestones already ingested from Markdown or structured planning inputs.
last_updated: 2026-04-27
H2Canonical files
H2Related hubs
H2Folder rule
- Keep broad phases here.
- Use the micro-goal folder for atomic checkpoints.
H2Execution surface
- Ingestion authority stays in
app/md/[[...path]]/actions/milestoneScan.ts. - The scan now filters H1 out, keeps H2 as the default milestone source, applies a light H3 filter, and extracts section body, description, and prompt starter guidance into milestone
data. - Ingestion still uses occurrence-based
sourceKey, project-scoped upserts, batched writes, and manual-row protection. - Control surface is
app/(milestones)/milestones. /milestonesresolves the active project from the query param, then the first available project, with a safe constant fallback.- The milestones module edits existing rows by
projectId, can reassign milestones between projects, can bulk change or remove selected rows, and does not scan Markdown. - Milestones are planning metadata and execution guidance for Trips, Offers, Orders, LineItems, and Projection, not canonical business truth.
- The current UI is card-based, status-colored, and supports local hide/show-all behavior for quick focus passes.
- Prompt starter blocks are surfaced as a quick-glance chip/snippet in both the MD milestone tracker and the
/milestonesboard. - The MD milestone panel now stays hidden unless opened from the main page, so the content surface remains primary and the control layer stays optional.
🟥 Deploy note:
- If
app/md/[[...path]]works locally but fails in Docker or Cloud Run, first verifynpx prisma generateruns during the image build and thatnpx prisma migrate deployhas been applied to the production database. - The most common cause is Prisma Client/schema mismatch inside the container, not the milestone scan logic itself.
- Rebuild the image and redeploy after syncing client generation and migrations.
Prompt starter:
Audit Milestones as a support layer only. Keep MD H1-H3 ingestion, occurrence-based sourceKey, project-scoped control, prompt-starter syncing, status-colored board behavior, and bulk actions. Do not turn Milestones into business truth or a replacement for Trips, Offers, Orders, LineItems, or Projection.
🟡 Note:
- The current board supports local hide/show-all focus behavior and project reassignment, so preserve those flows when adding new controls.
H2Session Note - 2026-04-27
- The milestones board is now mirrored inside the markdown browser as an optional hidden panel, while
/milestonesremains the project-aware editing surface. - Keep milestone rows as planning metadata only, not as canonical business truth.