Intent: a harness can read how work moves through a repository and how the crew is doing, through OpenAPI alone.
Done:
[ ] src/contract/openapi.ts has a row for GET {REPO}/flow and GET /api/v1/crew/scorecard, each with auth, the body and query fields its handler reads, its success status when not 200, and the refusals it answers by stable error code
[ ] each summary says the answer's shape exactly as the handler answers it today
[ ] test/openapi.test.ts still passes, and a new test asserts each new path and method is in the served document (GET /contract/openapi.json)
Files: src/contract/openapi.ts, one new test. Other issues add OpenAPI rows in parallel: add these as one block after the last ${REPO} row and before /mcp, and change no other row. Do not change any route.
Intent: a harness can read how work moves through a repository and how the crew is doing, through OpenAPI alone.
Done:
{REPO}/flowand GET/api/v1/crew/scorecard, each withauth, thebodyandqueryfields its handler reads, its successstatuswhen not 200, and therefusalsit answers by stableerrorcodetest/openapi.test.tsstill passes, and a new test asserts each new path and method is in the served document (GET /contract/openapi.json)Files: src/contract/openapi.ts, one new test. Other issues add OpenAPI rows in parallel: add these as one block after the last
${REPO}row and before/mcp, and change no other row. Do not change any route.