{"product_id":"optimize-cratis-react-apps-ai-powered-specification-writing","title":"Optimize Cratis React Apps: AI-Powered Specification Writing","description":"\u003ch3\u003eOptimize Cratis React Apps: AI-Powered Specification Writing\u003c\/h3\u003e\n\n\u003cp\u003e\nThis skill provides a methodical approach to writing specifications for the React and TypeScript surface of a Cratis application slice. It focuses on view models, helpers, command orchestration, and narrow component behavior, leveraging Vitest, Sinon, and Chai. This skill supports adding or changing frontend behavior in applications that consume Cratis while maintaining consistency with backend slice specifications.\n\u003c\/p\u003e\n\n\u003ch3\u003eWhat this skill does\u003c\/h3\u003e\n\u003cul\u003e\n    \u003cli\u003eWrites specifications using the Vitest runner with Mocha-style `describe`, `beforeEach`, and `it` syntax.\u003c\/li\u003e\n    \u003cli\u003eEmploys Sinon for creating stubs and fakes with `sinon.stub()` and `sinon.createStubInstance()`.\u003c\/li\u003e\n    \u003cli\u003eUses the Chai `.should` fluent interface for assertions, providing a readable sentence structure.\u003c\/li\u003e\n    \u003cli\u003ePlaces specifications alongside the units they specify, using a `for_ \/ when_ \/ and_` naming convention in snake_case.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eWho it is for\u003c\/h3\u003e\n\u003cul\u003e\n    \u003cli\u003eFrontend developers working on Cratis-based React applications.\u003c\/li\u003e\n    \u003cli\u003eDevelopment teams using AI coding agents like Claude Code, Cursor, and Codex for application enhancements.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n    \u003cli\u003eDevelopers specifying frontend behavior for Cratis-consuming applications, ensuring alignment with backend specifications.\u003c\/li\u003e\n    \u003cli\u003eTeams updating or adding view models and component interactions in React applications while maintaining documentation clarity and precision.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n    \u003cli\u003eUtilizes Vitest as the test runner, compatible with Mocha-style setups.\u003c\/li\u003e\n    \u003cli\u003eIncorporates Sinon for method and object stubbing to simulate scenarios and interactions.\u003c\/li\u003e\n    \u003cli\u003eRelies on the Chai library's `.should` syntax to structure specifications as readable sentences.\u003c\/li\u003e\n    \u003cli\u003eSpecifications are specifically for frontend development in Cratis consumer applications, not within Cratis framework packages or backend contexts.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c!-- mcpcart:static-blocks:start --\u003e\n\u003chr\u003e\n\u003ch3\u003eSource \u0026amp; Licence\u003c\/h3\u003e\n\u003cp\u003eThis package is built on open-source work published by \u003cstrong\u003eCratis\u003c\/strong\u003e (\u003ca href=\"https:\/\/github.com\/Cratis\/AI\" rel=\"nofollow noopener\" target=\"_blank\"\u003eCratis\/AI\u003c\/a\u003e) and distributed under \u003cstrong\u003eMIT\u003c\/strong\u003e. The original licence text and copyright notice are included in your download.\u003c\/p\u003e\n\u003cp\u003ePersonal and commercial use, modification and redistribution are permitted, provided the original copyright and licence notice are retained.\u003c\/p\u003e\n\u003cp\u003eYour purchase covers curation, licence verification, packaging, documentation and instant delivery. It does not grant exclusive rights to the underlying open-source code, which remains available under its original licence.\u003c\/p\u003e\n\u003ch3\u003eDelivery \u0026amp; Support\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eDelivery:\u003c\/strong\u003e instant — a secure download link is emailed to you as soon as payment is confirmed.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat:\u003c\/strong\u003e ZIP archive containing the skill files, documentation and the original licence.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSupport:\u003c\/strong\u003e \u003ca href=\"mailto:support@mcpcart.com\"\u003esupport@mcpcart.com\u003c\/a\u003e — we aim to reply within 2 business days.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUpdates:\u003c\/strong\u003e updates are included only where stated on this page.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eRefunds\u003c\/h3\u003e\n\u003cp\u003eThis is a digital product delivered immediately after purchase. By completing your order you request immediate delivery and acknowledge that, once the download has been accessed, the statutory right to cancel no longer applies to the extent permitted by law. Refund requests are handled in accordance with our published Refund Policy.\u003c\/p\u003e\n\u003cp style=\"font-size:0.85em;color:#666;\"\u003eClaude, Codex, Gemini and Cursor are trademarks of their respective owners. MCP Cart is an independent marketplace and is not affiliated with, endorsed by, or sponsored by any of them. Compatibility references describe interoperability only.\u003c\/p\u003e\n\u003c!-- mcpcart:static-blocks:end --\u003e","brand":"MCP Cart","offers":[{"title":"Default Title","offer_id":53076558446903,"sku":"MCP-CRATIS-AI-CRATIS-APPLICATION-REACT-SPECIFICATIONS","price":41.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0981\/3950\/4951\/files\/TnZWybOfR7GHe0VYTX_1a_31f7624762c540228266542b8289cb6c.jpg?v=1790852645","url":"https:\/\/mcpcart.com\/products\/optimize-cratis-react-apps-ai-powered-specification-writing","provider":"SPF PRO","version":"1.0","type":"link"}