Documentation site
24 issues in the path · 24 closed
- Done 24
- In review 0
- Waiting 0
Path
The first phase lays the plumbing and the skeleton: the plan skill records the order of work in the issues themselves, the milestone skill reads it, and the site renders the ADRs and the shape of a milestone page from a fixture. The second phase makes it real: the sync script and skill, the bucket and hostname in tofu, the hardening of the GitLab projects, and the pipeline that publishes. The third phase backfills the milestones that predate all this, proves the whole path once end to end, and writes the runbook.Phase 1
Phase 2
- 04agents!2 merged
- 05agents!2 merged
- 06agents!2 merged
- 12agents!2 merged
- 13agents!2 merged
- 18platform!1 merged
- 19docs!2 merged
- 23platform!1 merged
Phase 3
Open questions
Whether the sync should also refresh a closed milestone on demand, or only the ones whose file still says active. Counters from the old setup (services still on the previous host) were left out; they can join the narrative frontmatter later as declared commands.Deviations and noise
GitLab Free has no blocking issue links, found on the first run of the plan script. The order of work moved to the “Depends on” section of each issue as references, and the ADR was amended in the same milestone. The three milestones that existed had prose dependencies; every section was rewritten by hand during the backfill. The lint milestone’s docs pipeline issue is not in yet, so the pipeline here carries the workflow rules itself, the same way platform does. The shell scripts of the first five agents issues were replaced by the Python package before they reached main.
The first publish needed four fixes that were not planned, each one an issue and a merged MR of its own. Two in the publish job: the rclone image’s entrypoint swallowed the script, and the scheme of the endpoint URL split rclone’s connection string, so the remote moved to environment variables. One in platform: R2 answered 404 on directory paths, so a transform rule in Cloudflare resolves them to index.html. One in the site: Cloudflare caches CSS at the edge in front of the bucket but not HTML, so a publish served new pages with the previous stylesheet until the stylesheet got a fingerprinted URL.
Found on the way
- 07agents!3 merged
- 08agents!4 merged
- 15docs!3 merged
- 16docs!4 merged
- 17docs!6 merged
- 22docs!7 merged
- 24platform!2 merged