Repository navigation
Make prototypes API-ready for records-backed vibing
Summary
Adds the API-Ready Prototyping workflow to the Sailwind Starter template. Every prototype built with this template now follows a data layer convention that makes it "transition-ready" — the mock data layer can be swapped for real Appian API calls with minimal friction, and an importable Appian app package can be generated directly from the prototype.
What changed
Data layer convention
- New
src/db/directory with typed async CRUD functions per entity - Steering file (
.kiro/steering/data-layer.md) ensures agents always use this pattern - Example entity modules:
lists.ts,cards.ts,users.ts,types.ts - New
src/db/api-config.tsfor configurable API base URL and auth headers
Pages
- Replaced the old example pages (
task-dashboard,application-status,document-review) with akanban-boardpage that demonstrates thesrc/db/convention - Updated
home.tsxandApp.tsxroutes accordingly
Skills (.kiro/skills/)
Four new skills that form a pipeline from prototype → production Appian app:
| Skill | Purpose |
|---|---|
extract-prototype-contract |
Reads src/db/, produces appian-output/api-contract.json |
generate-appian-app |
Takes contract, produces importable Appian app ZIP + DDL |
deploy-to-appian |
Deploys the package to an Appian environment via Deployment API |
connect-to-appian |
Rewrites src/db/ to use real fetch calls |
All skills have proper YAML frontmatter (name + description) per the agent skills spec. Trigger phrases are in the description field. No example-specific assumptions — works with any app's entity modules.
Contract schema
schemas/api-contract.schema.json— normative JSON Schema for theAPI_Contractstructure shared across skills
How to test
- Build the prototype pages using the
src/db/convention (the kanban board is a working example) - Invoke "extract the API contract" — should produce
appian-output/api-contract.json - Invoke "generate the Appian app" — should produce a ZIP + DDL in
appian-output/ - (Optional) Deploy to an Appian environment and invoke "connect to Appian" to swap mock data for real API calls
Notes
- The
data-layer.mdsteering file is intentionally at the top level (not inside a skill) because it guides all page development, not just the Appian pipeline skills - "Task Dashboard" and "TD" appear in skills only as illustrative examples — nothing assumes specific record types or entity names