# Web Product Phase 1 Skeleton ## Status - `completed` ## Owner - Codex ## Started At - `2026-03-20` ## Goal - Implement the first web-product milestone slice described in `docs/web-product-monorepo.md` by creating the monorepo skeleton, a minimal `orchd` HTTP service, and the first read-oriented backend boundaries. ## Scope - add an active execution trace for this web implementation workstream - add the initial monorepo workspace files and `apps/web` scaffold - add `cmd/orchd`, `internal/httpapi`, `internal/app`, and `internal/query` - expose a small read-only HTTP API for health, runs, run detail, blocked tasks, and thread detail - add initial API contract docs under `api/` - keep `docs/implementation-roadmap.md` synchronized with the new implementation state ## Checklist - [x] create the active execution roadmap for the Phase 1 web skeleton workstream - [x] scaffold the monorepo workspace files and `apps/web` - [x] add `cmd/orchd` with a minimal `chi`-based HTTP server - [x] introduce initial shared app/query boundaries for read-only web endpoints - [x] add initial API contract documents under `api/` - [x] validate the new slice with builds or targeted tests - [x] update `docs/implementation-roadmap.md` - [x] archive this execution roadmap with a completion summary if the slice is fully complete ## Files - `docs/roadmaps/active/web-product-phase1-skeleton.md` - `docs/implementation-roadmap.md` - `docs/web-product-monorepo.md` - `cmd/orchd/main.go` - `internal/httpapi/` - `internal/app/` - `internal/query/` - `internal/store/` - `api/openapi.yaml` - `api/events.md` - `apps/web/` - `package.json` - `pnpm-workspace.yaml` ## Decisions - implement a narrow read-only backend slice first instead of starting with frontend pages - keep the first HTTP layer thin and let query/app packages own the web-facing backend boundary - preserve the existing CLI entrypoints while introducing the new service ## Blockers - none ## Next Step - start Phase 2 on top of the new `apps/web` and `orchd` skeleton by wiring real runs, run-detail, blocked-queue, and thread-detail screens to the read-only API ## Completion Summary - added the first web-product skeleton described in `docs/web-product-monorepo.md`, including root `pnpm` workspace files, a standalone React frontend shell under `apps/web`, initial API contract documents under `api/`, and a new `cmd/orchd` HTTP service - introduced `internal/app`, `internal/query`, and `internal/httpapi` so the web backend has an explicit read-oriented boundary instead of letting handlers query storage ad hoc - implemented and validated the first read-only HTTP endpoints for health, runs, run detail, run tasks, blocked tasks, and thread detail - verified the slice with `go test ./...` and `pnpm run web:build`, then synchronized `docs/implementation-roadmap.md`