Mechanics for ONE section, by its role
suggest_mechanicsMatches a planned section's role and described need to ranked component options, and clearly reports when the catalog has no suitable match.
Instructions
Given a section role from plan_page and what that section has to do, returns ranked candidate components — filtered first by the catalog facets that actually correspond to the role, then ranked by the free-text need. Prefer this over search_components when building a planned page. Crucially, it can answer that the catalog has NOTHING for a role (counters, progress bars, pricing tables, FAQ accordions, data tables) instead of returning the least-bad hit dressed up as an answer — search_components cannot tell you that, and its top result for 'accordion' is a horizontal image gallery. When the verdict is none, write the section from the motion system tokens; that is a legitimate outcome, not a failure.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| need | No | What this section must do, in prose. e.g. 'the roast curve draws itself as you scroll'. | |
| role | Yes | Section role from plan_page. One of: entry, chrome, hero, proof, thesis, feature, collection, process, signature, context, explainer, people, cta, footer, data, pricing, testimonial, faq, reference | |
| avoid | No | Slugs to exclude — pass everything you already used on OTHER pages. Wide roles offer 100+ candidates whose top scores are statistically tied, so without this you will keep adopting the same handful. NOTE: `avoid` is for not repeating yourself, NOT for animating less — if you drop the #1 because it is taken, take the #2; never leave the section still. | |
| limit | No | Max candidates (default 5). | |
| adopted | No | What you have ALREADY adopted on THIS page. Candidates that would invalidate the page alongside them come back with `composes_with_adopted: false`, the reason in `collision`, and sorted last. Without this the tool is blind to the page you are building and the clash only surfaces at get_integration_contract, after you wrote the code. | |
| motion_system | No | The page's system; ranks compatible components first and is echoed back when there is nothing to adopt. |