Skip to content

Write the README's examples against the e2e fixture application - #15

Merged
lloydwatkin merged 1 commit into
mainfrom
readme-config-e2e-alignment
Sep 19, 2026
Merged

lloydwatkin merged 1 commit into
mainfrom
readme-config-e2e-alignment

Conversation

@lloydwatkin

Copy link
Copy Markdown
Member

The README illustrated every tool with resources that exist nowhere in the repository — a User, a Volunteer with a create_warning action, a suspend batch action — while the end-to-end suite drives a checked-in application of Post, Author, Review and Tag. A reader had no way to hold a documented claim against the thing that proves it, and no way to tell which claims were proven at all.

What changed

  • The query, create, update, describe_form and mcp: action examples are rewritten against spec/e2e/fixture_app/, keeping the names the server actually returns: post_publish rather than volunteer_create_warning, post_set_status rather than the batch suspend.
  • Each write guarantee names the resource that demonstrates it — Author for an action the registration withholds, Tag for a resource with no permit_params, Post's unpermitted slug for an attribute dropped on the way in.
  • describe_form shows both of its paths (Review for a declared form block, Post for the permit_params fallback) rather than only the fallback.
  • The permission: documentation shows the two shapes the fixture exercises: one that takes the record and refuses at call time, one that takes nothing and is resolved when tools are listed.
  • A pointer after the tools table, and another in "Running the tests", so the README and spec/e2e/fixture_app/README.md point at each other.

Two gaps the comparison exposed

  • An action whose body raises comes back as a generic Post#publish failed with the exception's own message withheld — asserted by the suite, never mentioned in the README. Now documented.
  • mount_strategy was documented in the README but missing from the generated initializer, so nobody reading their own initializer would have learnt it exists. Now present there, commented out like the rest.

Coverage claims are hedged deliberately: suggestions:, the batch scope_collection re-check and the authorization adapter itself have no e2e example, and the fixture application configures no adapter.

Documentation, one changelog entry and comments in a generator template — no behaviour changes, so no new specs.

🤖 Generated with Claude Code

The README illustrated every tool with resources that exist nowhere in the
repository - a User, a Volunteer with a create_warning action, a suspend batch
action - while the end-to-end suite drives a checked-in application of Post,
Author, Review and Tag. A reader had no way to hold a documented claim against
the thing that proves it, and no way to tell which claims were proven at all.

Rewrite the examples against that fixture application, keeping the names the
server actually returns: post_publish rather than volunteer_create_warning,
post_set_status rather than the batch suspend. Each write guarantee now names
the resource that demonstrates it - Author for an action the registration
withholds, Tag for a resource with no permit_params, Post's unpermitted slug
for an attribute dropped on the way in. describe_form shows both of its paths
rather than only the permit_params fallback, and the permission: shapes are the
two the fixture exercises: one that takes the record and refuses at call time,
one that takes nothing and is resolved when tools are listed.

Two gaps the comparison exposed, closed here too. An action whose body raises
comes back as a generic "Post#publish failed" with the exception's own message
withheld, which the suite asserts and the README never mentioned. And
mount_strategy was documented in the README but missing from the generated
initializer, so nobody reading their own initializer would have learnt it
exists.

Coverage claims are hedged deliberately: suggestions:, the batch
scope_collection re-check and the authorization adapter itself have no e2e
example, and the fixture application configures no adapter.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@lloydwatkin
lloydwatkin merged commit 210d490 into main Sep 19, 2026
3 checks passed
@lloydwatkin
lloydwatkin deleted the readme-config-e2e-alignment branch September 19, 2026 10:03
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