Dogfood harness: run CommiTea's engine on its own backlog (#31)

scripts/dogfood-report.ts drives the real @commitea/core engine (schedule +
capacity-aware Monte Carlo forecast + per-milestone runway) against the live
christian/commitea backlog and prints the project report each screen derives.
Read-only; `yarn tsx scripts/dogfood-report.ts`. Adds tsx as a devDependency.

First run surfaced two real gaps the fixtures hid: every open issue was
unassigned (so capacity load-balanced work onto the slow half-time lane and the
standup plan-per-person was empty) and no milestone had a due date (so Runway
couldn't judge on-track/at-risk). Both were fixed as PM actions on the repo via
the write path — all open issues assigned, milestone due dates synthesized from
the forecast — so the app's own numbers are now honest.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Croissant Le Doux
2026-07-09 10:53:00 -04:00
parent 87a0ba4ba1
commit 63f0ea1735
3 changed files with 159 additions and 1 deletions

View File

@@ -261,6 +261,7 @@ __metadata:
react: "npm:^18.3.1"
react-dom: "npm:^18.3.1"
tailwindcss: "npm:^3.4.17"
tsx: "npm:^4"
typescript: "npm:^5.7.3"
vite: "npm:^6.1.0"
languageName: unknown
@@ -2687,7 +2688,7 @@ __metadata:
languageName: node
linkType: hard
"esbuild@npm:^0.27.0 || ^0.28.0":
"esbuild@npm:^0.27.0 || ^0.28.0, esbuild@npm:~0.28.0":
version: 0.28.1
resolution: "esbuild@npm:0.28.1"
dependencies:
@@ -5330,6 +5331,21 @@ __metadata:
languageName: node
linkType: hard
"tsx@npm:^4":
version: 4.23.0
resolution: "tsx@npm:4.23.0"
dependencies:
esbuild: "npm:~0.28.0"
fsevents: "npm:~2.3.3"
dependenciesMeta:
fsevents:
optional: true
bin:
tsx: dist/cli.mjs
checksum: 10c0/e4fade6bf8a4447424652da3a68f5ab7b927d1cbe5f697dba876c626c5fb7bf7663c4f71777992c9cbbdc8148c63ee1ddcf15536ff9d1863f9fbea25247ee0a9
languageName: node
linkType: hard
"type-fest@npm:^0.13.1":
version: 0.13.1
resolution: "type-fest@npm:0.13.1"