[E00-S01-T06] Document local non-container developer path #159

Closed
opened 2026-08-27 00:06:32 +00:00 by kpcto · 8 comments
Owner

Parent story: [E00-S01] Workspace bootstrap (#58)

Intent

Document the local non-container developer path so an engineer can run EPPP without Docker.

Acceptance criteria

  • a local non-container developer path is documented
  • the document covers install, build and run steps

Explicitly out of scope

  • root build/test scripts (E00-S01-T05)
  • Docker Compose baseline (E00-S02)

Test plan

  • follow the documented path from a clean clone and reach a running app

Rollback note

  • revert or edit the documentation file; no runtime data affected

Owning stream

platform

Risk quadrant

agent-full

> Parent story: [E00-S01] Workspace bootstrap (#58) ## Intent Document the local non-container developer path so an engineer can run EPPP without Docker. ## Acceptance criteria - a local non-container developer path is documented - the document covers install, build and run steps ## Explicitly out of scope - root build/test scripts (E00-S01-T05) - Docker Compose baseline (E00-S02) ## Test plan - follow the documented path from a clean clone and reach a running app ## Rollback note - revert or edit the documentation file; no runtime data affected ### Owning stream platform ### Risk quadrant agent-full
kpcto added this to the Sprint 0 milestone 2026-08-27 00:06:32 +00:00
kpcto added the
status
ready
kind
task
labels 2026-08-27 00:06:32 +00:00
bot-dispatcher added
status
proposed
and removed
status
ready
kind
task
labels 2026-08-27 00:06:34 +00:00
Member

Auto-reverted by dispatcher: DoR lint: required section "Intent" is empty; required section "Acceptance criteria" is empty; required section "Explicitly out of scope" is empty; required section "Test plan" is empty; required section "Rollback note" is empty; acceptance criteria: no bullet assertions found

status/ready may only be applied by a human maintainer.

> Auto-reverted by dispatcher: DoR lint: required section "Intent" is empty; required section "Acceptance criteria" is empty; required section "Explicitly out of scope" is empty; required section "Test plan" is empty; required section "Rollback note" is empty; acceptance criteria: no bullet assertions found `status/ready` may only be applied by a human maintainer.
kpcto added the
kind
task
label 2026-08-27 21:23:37 +00:00
kpcto added
status
ready
and removed
status
proposed
labels 2026-08-28 08:48:18 +00:00
bot-dispatcher added
loop
1
status
in-progress
and removed
status
ready
labels 2026-08-28 08:48:19 +00:00
Member
agent: dispatcher
phase: complete
plan_summary: Dispatch #159: [E00-S01-T06] Document local non-container developer path (platform)
```yaml agent: dispatcher phase: complete plan_summary: Dispatch #159: [E00-S01-T06] Document local non-container developer path (platform) ```
Member
agent: implementer
phase: start
issue: 159
objective: "[E00-S01-T06] Document local non-container developer path"
plan_summary: Add a developer guide documenting the local non-container path (install, build, run) for the EPPP workspace: prerequisites (Node 24.x, pnpm 11.23.0 via corepack), clean-clone install with pnpm install --frozen-lockfile, pnpm build / pnpm typecheck, and a run step for the apps/server entrypoint (minimal per-package start script so run is a first-class pnpm command; the Fastify 5 app shell itself is a later story). Verify every documented command from a clean state locally, open a PR with a criterion-to-test table, and keep CI green (frozen lockfile install unchanged, no dependency changes).
out_of_scope:
  - E00-S01-T05 root build/test scripts (not touched)
  - E00-S02 Docker Compose baseline / container path (not touched)
```yaml agent: implementer phase: start issue: 159 objective: "[E00-S01-T06] Document local non-container developer path" plan_summary: Add a developer guide documenting the local non-container path (install, build, run) for the EPPP workspace: prerequisites (Node 24.x, pnpm 11.23.0 via corepack), clean-clone install with pnpm install --frozen-lockfile, pnpm build / pnpm typecheck, and a run step for the apps/server entrypoint (minimal per-package start script so run is a first-class pnpm command; the Fastify 5 app shell itself is a later story). Verify every documented command from a clean state locally, open a PR with a criterion-to-test table, and keep CI green (frozen lockfile install unchanged, no dependency changes). out_of_scope: - E00-S01-T05 root build/test scripts (not touched) - E00-S02 Docker Compose baseline / container path (not touched) ```
Member
agent: implementer
phase: complete
issue: 159
objective: "[E00-S01-T06] Document local non-container developer path"
result_summary: Local non-container developer path documented in docs/development/non-container.md (install, build, run, test) and verified end-to-end from a clean clone. PR #373 open against main, CI green (Frozen lockfile install, success in 48s).
what_changed:
  - docs/development/non-container.md (new): prerequisites (Node 24.x, pnpm 11.23.0 via corepack), install (clone, corepack enable, pnpm install --frozen-lockfile), build (pnpm build / pnpm typecheck), run (pnpm --filter @personal-blog/server start), test (pnpm test), smoke-check sequence, troubleshooting, out-of-scope note (Docker path is E00-S02)
  - apps/server/package.json: added minimal start script (node dist/index.js) so the documented run step is a first-class pnpm command; entrypoint source untouched (Fastify 5 shell is a later story); no new dependencies, pnpm-lock.yaml unchanged
verification:
  - clean clone (no node_modules/, no dist/): pnpm install --frozen-lockfile exit 0, lockfile untouched
  - pnpm build: 3/3 packages emit dist/, exit 0
  - pnpm typecheck: 3/3 packages pass --noEmit, exit 0
  - pnpm test: architecture-import.test.mjs 10/10 pass, exit 0
  - pnpm --filter @personal-blog/server start: loads compiled entrypoint, exit 0
  - CI parity: pnpm -r list --depth -1 lists 4/4 workspace projects; apps/server/package.json valid JSON
pr: "https://git.stevanovic.co.uk/Fabrika/PersonalBlog/pulls/373"
out_of_scope_respected:
  - E00-S01-T05 root build/test scripts (not touched; usage only documented)
  - E00-S02 Docker Compose baseline / container path (not touched)
```yaml agent: implementer phase: complete issue: 159 objective: "[E00-S01-T06] Document local non-container developer path" result_summary: Local non-container developer path documented in docs/development/non-container.md (install, build, run, test) and verified end-to-end from a clean clone. PR #373 open against main, CI green (Frozen lockfile install, success in 48s). what_changed: - docs/development/non-container.md (new): prerequisites (Node 24.x, pnpm 11.23.0 via corepack), install (clone, corepack enable, pnpm install --frozen-lockfile), build (pnpm build / pnpm typecheck), run (pnpm --filter @personal-blog/server start), test (pnpm test), smoke-check sequence, troubleshooting, out-of-scope note (Docker path is E00-S02) - apps/server/package.json: added minimal start script (node dist/index.js) so the documented run step is a first-class pnpm command; entrypoint source untouched (Fastify 5 shell is a later story); no new dependencies, pnpm-lock.yaml unchanged verification: - clean clone (no node_modules/, no dist/): pnpm install --frozen-lockfile exit 0, lockfile untouched - pnpm build: 3/3 packages emit dist/, exit 0 - pnpm typecheck: 3/3 packages pass --noEmit, exit 0 - pnpm test: architecture-import.test.mjs 10/10 pass, exit 0 - pnpm --filter @personal-blog/server start: loads compiled entrypoint, exit 0 - CI parity: pnpm -r list --depth -1 lists 4/4 workspace projects; apps/server/package.json valid JSON pr: "https://git.stevanovic.co.uk/Fabrika/PersonalBlog/pulls/373" out_of_scope_respected: - E00-S01-T05 root build/test scripts (not touched; usage only documented) - E00-S02 Docker Compose baseline / container path (not touched) ```
Member
agent: reviewer
verdict: approve
```yaml agent: reviewer verdict: approve ```
bot-dispatcher added
status
review
and removed
status
in-progress
loop
1
kind
task
labels 2026-08-28 08:53:40 +00:00
Member
agent: reviewer
verdict: approve

findings:
  - file: docs/development/non-container.md:1
    severity: nit
    description: Consider adding a brief mention of the pnpm workspace structure for better context
  - file: docs/development/non-container.md:1
    severity: nit
    description: The troubleshooting section could include guidance on verifying the pnpm installation
```yaml agent: reviewer verdict: approve findings: - file: docs/development/non-container.md:1 severity: nit description: Consider adding a brief mention of the pnpm workspace structure for better context - file: docs/development/non-container.md:1 severity: nit description: The troubleshooting section could include guidance on verifying the pnpm installation ```
bot-dispatcher added
status
review
and removed
status
review
labels 2026-08-28 08:53:49 +00:00
Member
agent: tester
phase: start
issue: 159
objective: "Independently probe PR #373 for [E00-S01-T06] Document local non-container developer path"
plan_summary: Verify the documented local non-container developer path (install, build, run) by following it from a clean clone, confirm the acceptance criteria are met, and post evidence with CI links.
constraints:
  - never edit the implementer's tests
acceptance:
  - a local non-container developer path is documented
  - the document covers install, build and run steps
```yaml agent: tester phase: start issue: 159 objective: "Independently probe PR #373 for [E00-S01-T06] Document local non-container developer path" plan_summary: Verify the documented local non-container developer path (install, build, run) by following it from a clean clone, confirm the acceptance criteria are met, and post evidence with CI links. constraints: - never edit the implementer's tests acceptance: - a local non-container developer path is documented - the document covers install, build and run steps ```
Member
agent: tester
phase: complete
issue: 159
verdict: pass
objective: "Independently probe PR #373 for [E00-S01-T06] Document local non-container developer path"
result_summary: PR #373 satisfies both acceptance criteria. I followed the documented non-container path from a clean clone of feature/159 (21485ae) and reached a built, tested, runnable workspace. CI on the PR is green.

acceptance:
  - criterion: a local non-container developer path is documented
    result: pass
    evidence: docs/development/non-container.md (new, 141 lines) documents the Docker-free path; container path explicitly deferred to E00-S02.
  - criterion: the document covers install, build and run steps
    result: pass
    evidence: |
      Install — clone, `corepack enable`, `pnpm install --frozen-lockfile` (exit 0, pnpm 11.23.0 resolved via pinned `packageManager`).
      Build — `pnpm build` (3/3 packages emit dist/, exit 0), `pnpm typecheck` (3/3 pass --noEmit, exit 0).
      Run — `pnpm --filter @personal-blog/server start` (exit 0; placeholder entrypoint loads and exits cleanly as documented), plus `node apps/server/dist/index.js` (exit 0).

verification:
  - clean clone (no node_modules/, no dist/): `pnpm install --frozen-lockfile` exit 0; lockfile untouched (`git status` clean)
  - `pnpm build`: apps/server, packages/core, extensions/example all Done; dist/ emitted with index.js + index.d.ts + index.js.map; exit 0
  - `pnpm typecheck`: 3/3 packages Done; exit 0
  - `pnpm test`: tests/architecture-import.test.mjs 10/10 pass; exit 0
  - `pnpm --filter @personal-blog/server start`: exit 0 (compiled entrypoint loads, exits cleanly as documented)
  - Node 22.23.2 used locally — matches the doc's "any Node >= 22 is enough" note

findings: []

constraints_respected:
  - no edits made to the implementer's tests or any repo files (read-only probing; verification ran in an ephemeral /tmp clone)

ci_links:
  - run: http://gitea:3000/Fabrika/PersonalBlog/actions/runs/43
  - job: http://gitea:3000/Fabrika/PersonalBlog/actions/runs/43/jobs/55
  - conclusion: success (pull_request, head 21485aed4402222a54f6e1988cc4ee33f5bd597f)
```yaml agent: tester phase: complete issue: 159 verdict: pass objective: "Independently probe PR #373 for [E00-S01-T06] Document local non-container developer path" result_summary: PR #373 satisfies both acceptance criteria. I followed the documented non-container path from a clean clone of feature/159 (21485ae) and reached a built, tested, runnable workspace. CI on the PR is green. acceptance: - criterion: a local non-container developer path is documented result: pass evidence: docs/development/non-container.md (new, 141 lines) documents the Docker-free path; container path explicitly deferred to E00-S02. - criterion: the document covers install, build and run steps result: pass evidence: | Install — clone, `corepack enable`, `pnpm install --frozen-lockfile` (exit 0, pnpm 11.23.0 resolved via pinned `packageManager`). Build — `pnpm build` (3/3 packages emit dist/, exit 0), `pnpm typecheck` (3/3 pass --noEmit, exit 0). Run — `pnpm --filter @personal-blog/server start` (exit 0; placeholder entrypoint loads and exits cleanly as documented), plus `node apps/server/dist/index.js` (exit 0). verification: - clean clone (no node_modules/, no dist/): `pnpm install --frozen-lockfile` exit 0; lockfile untouched (`git status` clean) - `pnpm build`: apps/server, packages/core, extensions/example all Done; dist/ emitted with index.js + index.d.ts + index.js.map; exit 0 - `pnpm typecheck`: 3/3 packages Done; exit 0 - `pnpm test`: tests/architecture-import.test.mjs 10/10 pass; exit 0 - `pnpm --filter @personal-blog/server start`: exit 0 (compiled entrypoint loads, exits cleanly as documented) - Node 22.23.2 used locally — matches the doc's "any Node >= 22 is enough" note findings: [] constraints_respected: - no edits made to the implementer's tests or any repo files (read-only probing; verification ran in an ephemeral /tmp clone) ci_links: - run: http://gitea:3000/Fabrika/PersonalBlog/actions/runs/43 - job: http://gitea:3000/Fabrika/PersonalBlog/actions/runs/43/jobs/55 - conclusion: success (pull_request, head 21485aed4402222a54f6e1988cc4ee33f5bd597f) ```
kpcto closed this issue 2026-08-28 08:59:03 +00:00
kpcto added
kind
task
status
done
and removed
status
review
labels 2026-08-28 08:59:09 +00:00
Sign in to join this conversation.