Skip to content

fix: what a day-one QA found on a fresh create-project - #109

Merged
rodrigoteamx merged 1 commit into
mainfrom
fix/what-a-day-one-qa-found
Sep 8, 2026
Merged

fix: what a day-one QA found on a fresh create-project#109
rodrigoteamx merged 1 commit into
mainfrom
fix/what-a-day-one-qa-found

Conversation

@rodrigoteamx

Copy link
Copy Markdown
Contributor

Four findings on a stock create-project app, verified on fresh cattle (greenhouse evidence/0565):

  • bin/mcp-server.php sent the reader to composer require milpa/tool-runtime milpa/mcp-server (tool-runtime already ships) and coa agent:enable (no such command). Now: capabilities:enable milpa/mcp-server.
  • phpstan red on install: config/operations.php pre-listed DevToolsOperations. The skeleton lists only what it ships; milpa/devtools 0.28 declares its provider and capabilities:enable writes it.
  • Placeholders («Your Name» / example.com) visible in plugins:list → the skeleton's own identity.
  • README: what «OK, but some tests were skipped!» means.

Tests adapted to the declared-provider rule (control + measurement). CI opt-in devtools >= 0.28 (release in flight — rerun CI once it lands).

Four findings on a stock `composer create-project milpa/framework` app, each verified on fresh cattle (greenhouse evidence/0565):

- `bin/mcp-server.php` lied: it sent the reader to `composer require milpa/tool-runtime milpa/mcp-server` (tool-runtime already ships) and to `coa agent:enable` (no such command). It now names the one command that switches the surface on: `capabilities:enable milpa/mcp-server`; its comment says which package is opt-in and which is not.
- phpstan was red on install: config/operations.php pre-listed `DevToolsOperations`, a class this app does not ship. The skeleton now lists only what it ships; milpa/devtools 0.28 declares its provider in its manifest and `capabilities:enable milpa/devtools` writes it here (app-runtime's registerOperations). The header says so, in English.
- HelloPlugin and OperationsHttpPlugin carried «Your Name» / example.com into `plugins:list`; they carry the skeleton's own identity, with the note to make it yours.
- The README says what «OK, but some tests were skipped!» means on a fresh app: the skipped tests measure opt-in capabilities and each skip names its package.

Tests: the two that expected `make` from the pre-listed class now measure the new rule — installed but not declared, absent (control); declared as the enable writes it, offered. CI opt-in: devtools >= 0.28.
@rodrigoteamx rodrigoteamx reopened this Sep 8, 2026
@rodrigoteamx rodrigoteamx reopened this Sep 8, 2026
@rodrigoteamx
rodrigoteamx merged commit d47790d into main Sep 8, 2026
4 of 6 checks passed
@rodrigoteamx
rodrigoteamx deleted the fix/what-a-day-one-qa-found branch September 8, 2026 06:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant