Skip to content

fix: describe service interface generation as a boolean flag - #84

Merged
rodrigoteamx merged 1 commit into
mainfrom
rodrigoteamx/service-interface-contract
Sep 13, 2026
Merged

rodrigoteamx merged 1 commit into
mainfrom
rodrigoteamx/service-interface-contract

Conversation

@rodrigoteamx

Copy link
Copy Markdown
Contributor

The make operation advertised interface as a string naming the interface a service implements, but the generator treats it as a flag that creates a local <Name>Interface. MCP consequently rejected JSON booleans and accepted a misleading FQCN string.

Declare the optional input as boolean and explain the companion semantics in its description and README. Existing generation code is unchanged: omit/false produces a plain class; true creates its companion. Implement an existing SDK contract when implementing the class.

Validation: a red→green schema regression; 434 tests / 1,935 assertions, 92.43% coverage; PHPStan, style, Composer, docblocks and attribution pass. Fresh greenhouse cattle exercise actual CLI and native MCP projection/dispatch: baseline 4/9, candidate 9/9, 46 protected files and five rejecting auditor mutants per run. MCP evidence comes from its isolated trial copy, with host preservation verified.

Governed by greenhouse decisions/0353 and evidence/0670. A fresh Packagist replay is required after release; no claim of completed resident UI authorship.

Greenhouse decisions/0353 and evidence/0670: the published string schema implied an existing contract, while the generator creates a local companion. Native CLI/MCP cattle pass 9/9 with the corrected schema (baseline 4/9).
@rodrigoteamx
rodrigoteamx merged commit adb045e into main Sep 13, 2026
2 checks passed
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