offplan · online
Session · conv-37

Session CONV-37

Donesessionconv-37

Resume Prompt

Stage 1 launch plan теперь живёт в 15 редактируемых фрагментах под docs/rendered/stage-1-parts/ (00-overview … 14-open-questions). Master (все 4 стадии в одном файле) и stage-1.html — авто-генерируемые артефакты с GENERATED-баннером, не редактировать вручную. Build pipeline: scripts/build-launch-plan-master.py собирает оба выхода из 15 фрагментов + 4 launch-plan-*.html партов (v3-full, future, appendices, changelog). GitHub Action .github/workflows/build-launch-plan-master.yml пересобирает их на каждом push'е, который трогает фрагменты или парты. Известный лаг: bot-коммит ребилда НЕ триггерит deploy (GITHUB_TOKEN limitation) — preview обновится со следующим обычным push'ем, либо вручную через gh workflow run "Deploy rendered HTML to preview.offplan.online". PAT skip'ut. Preview: https://preview.offplan.online/launch-plan-master.html

Summary

Built a fragment-based build pipeline for the launch plan. Stage 1 split into 15 editable HTML fragments in docs/rendered/stage-1-parts/ (overview + intro + foundational + 11 phases + open questions), with scripts/build-launch-plan-master.py assembling both launch-plan-stage-1.html (Stage 1 в сборе) and launch-plan-master.html (all 4 stages + appendices + changelog in one). GitHub Action .github/workflows/build-launch-plan-master.yml auto-rebuilds both outputs on any push that touches a fragment or one of the 4 remaining source parts (v3-full, future, appendices, changelog). End-to-end loop verified working: pushed initial commit → action ran in 15s → bot committed regenerated outputs as e91cf1f. Hit a race condition mid-rebase with a parallel Claude session that was actively committing admin-panel files; resolved via merge strategy plus manual conflict fix on the meta-tag head. Manually triggered the deploy workflow (gh workflow run) to confirm preview.offplan.online serves the new master URL.

Changes

Decisions

Fragment granularity = phases (15 files), not per-task. Offered the user 3 options (keep crude 5-parts / split only Stage 1 / fine-grain everywhere). Chose middle path because Stage 1 is the active surface that needs frequent editing while Stages 2-4 + appendices are stable. Per-task would be ~150 files — too granular, harder to navigate.

Fragments are standalone HTMLs with sentinel comments, not raw partials. Each fragment has head + hero + footer so it opens in browser as its own styled mini-page (useful for previewing single-phase changes). Builder strips boilerplate and keeps only content between <!-- ══ FRAGMENT CONTENT START ══ --> and <!-- ══ FRAGMENT CONTENT END ══ -->. Raw partials rejected because users can't preview them visually without context.

Skip PAT for bot auto-commits. Default GITHUB_TOKEN means bot commits don't trigger downstream actions, so deploy lags by 1 push behind the bot's regenerated outputs. Accepted because: (a) parallel Claude session commits frequently so preview catches up quickly, (b) manual gh workflow run is 5 seconds when immediate refresh is needed, (c) PAT setup is 10 min if lag becomes annoying. Rejected: setting up PAT now (premature optimisation for current usage).

Used merge (not rebase) when remote diverged because of race condition with parallel Claude session actively editing files. The rebase attempted 13 commits worth of replay and kept hitting conflicts on stage-1.html due to the moving target. Switched to merge → single 5-line conflict on meta-tag head → manually combined remote's meta tags with my new title. Rebase would have been cleaner history but unworkable given the race.

Next Steps

  1. Try editing a fragment (e.g. docs/rendered/stage-1-parts/05-phase-1-3.html between the FRAGMENT CONTENT sentinels) to verify the full loop end-to-end from a real content edit — push → action rebuilds → bot commits → preview catches up.
  2. If preview deploy lag becomes annoying, set up PAT (10-min job): GitHub Settings → Developer settings → Fine-grained PAT → repo scope offplan-online/os, permissions Contents Read+Write → store as BOT_PAT secret → update workflow's persist-credentials to use it.
  3. Optionally apply the same fragment pattern to other big plans (e.g. plans/permission-and-tenancy-model.md) if they grow unwieldy.

Open Questions

Context for next session