Tasks: documentation site for the-loop
Phase 3 of 3 (requirements → design → tasks). Derived from the approved design.
Retroactive note: reconstructed during PR #71 to document the work actually done (and the mid-PR restructure). "Test" for a docs/site work item is a build/render/lint verification, not a unit test — there is no runtime product code here.
Task list
- [x] 1. Scaffold VitePress under
docs/as the site rootdocs/package.json(vitepress devDep +docs:sync|dev|build|preview),docs/.vitepress/config.mts(base/the-loop/, default theme, local search).- Depends on: none
- Requirements: R1, R2
- Test:
bun run docs:buildsucceeds.
- [x] 2. Author the hand-written site pages (Markdown)
docs/index.md(home hero),docs/guide/*(what-is/installation/quickstart/ how-it-works),docs/reference/*(commands/configuration),docs/operating-model/index.md,docs/contributing.md.- Depends on: 1
- Requirements: R1, R2
- Test: pages render in
dist; internal links resolve indocs:preview.
- [x] 3. Build-time sync of the two non-relocatable sources
docs/scripts/sync-content.mtscopiescli/README.md→docs/cli.mdandskills/the-loop/reference/*.md→docs/operating-model/reference/, rewriting relative links; wired intodocs:sync(prepended to dev/build).- Depends on: 1
- Requirements: R3.2
- Test: after
docs:sync, both destinations exist and render; git status shows them ignored.
- [x] 4. Render the existing
docs/tree in place (no duplication)- Nav + sidebar point at
docs/architecture/,docs/capabilities/,docs/decisions/directly. - Depends on: 1
- Requirements: R3.1, R3.3
- Test: architecture/decisions/capabilities pages exist in
dist.
- Nav + sidebar point at
- [x] 5. GitHub Pages deploy workflow
.github/workflows/docs.yml: on push tomain(docs paths) +workflow_dispatch,setup-bun+bun install --frozen-lockfile+docs:build, first-party Pages actions, single-flight concurrency, OIDC scopes.- Depends on: 1
- Requirements: R4
- Test: workflow validates (
actionlint/CI parse); job graph build → deploy.
- [x] 6. Fit the existing quality gates
.gitignore(ignorenode_modules/,.vitepress/cache, synced files),.markdownlint-cli2.jsonc(ignore dist/cache + synced copies), rootREADME.mdlinks to the site.- Depends on: 2, 3, 4
- Requirements: R5
- Test:
pre-commit run --all-filesgreen;docs:buildclean.
- [x] 7. Restructure from
docs-site/→docs/(PR #71 review)- First revision put the site in a
docs-site/folder that synced all ofdocs/into itself; owner rejected the duplication. Moved the site intodocs/, reduced the sync to the two non-relocatable sources, updated workflow/gitignore/ markdownlint/links accordingly. - Depends on: 1–6
- Requirements: R3.1, R3.3
- Test:
docs:buildclean;pre-commit run --all-filesgreen; nodocs-sitereferences remain.
- First revision put the site in a
- [x] 8. Backfill this spec (requirements/design/tasks/execution-log)
- Document the work retroactively per the-loop's own dogfooding rule (PR #71 review).
- Depends on: 7
- Requirements: process conformance
- Test: four artifacts present under
docs/specs/issue-70/; markdownlint green.
- [x] 9. Include specs & reports; remove stale roadmap (PR #71 review round 2)
- Drop
srcExclude; generate thedocs/specs/sidebar from the filesystem (specSidebarGroups()); adddocs/specs/index.md+docs/reports/index.mdoverview pages and Developer-nav entries. Deletedocs/roadmap.md(owner: stale/misleading) and update the few active references (guide, architecture, contributing, sync script, this spec). - Depends on: 8
- Requirements: R3.1, R3.4
- Test: every spec artifact + report renders in
dist; specs sidebar lists all work items; no/roadmaproute;docs:buildclean;pre-commit run --all-filesgreen.
- Drop
- [x] 10. Move the toolchain to bun + TypeScript (PR #71 review round 3)
- Owner: "NO JS. Only TS." and "use bun … as the package manager and to run the scripts." Convert
sync-content.mjs→sync-content.mts(typed), switchpackage.jsonscripts tobun run, replacepackage-lock.jsonwithbun.lock, switchdocs.ymltooven-sh/setup-bun+bun install --frozen-lockfile, and update references (contributing, decision-033, this spec). - Depends on: 9
- Requirements: R4, R5.4
- Test:
bun install+bun run docs:buildclean; no.mjs/package-lock.json/npmremain in the docs toolchain;pre-commit run --all-filesgreen.
- Owner: "NO JS. Only TS." and "use bun … as the package manager and to run the scripts." Convert
Dependency graph (DAG)
1 → {2, 3, 4, 5} → 6 → 7 → 8 → 9 → 10
Checkpoints
- After tasks 1–6:
bun run docs:build+pre-commit run --all-files(initial PR #71). - After task 7: same gates re-run post-restructure.
- After task 8: markdownlint over the new spec; final
docs:build. - After task 9:
docs:buildrenders specs/reports, no/roadmap; gates green. - After task 10:
bun install+bun run docs:buildclean; toolchain is bun +.mtsonly. - No security-review escalation: risk tier is low (public static site, no secrets, no runtime surface);
security.reviewsatisfied by the Security design section ofdesign.md.