Fast data
Prototyping skills for AI coding agents. Astro, Tailwind CSS, DaisyUI workflow for designers. Turns product docs into a working coded prototype.
npx -y skills add tibichi/fast-preset --skill fast-dataAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Create or refine JSON data models in src/data for Astro coded prototypes - content, fake data, UI states, workflow states, scenario fixtures, config. Reads BRIEF.md to honor assumption tags and scope. Use when the prototype's data layer needs shaping, not when adding a real database.
SKILL.md
5.3 KB, as published. Nobody here has run it
Fast Preset Data
Fast Preset Conventions
These rules hold across every Fast Preset skill. Other skills assume them - do not deviate.
- Source of truth:
BRIEF.mdat the repo root. fast-brief writes it; every other skill reads it as step one. - Files organized per page. UI primitives live in
src/components/; prototype data lives insrc/data/. Single-page prototypes stay flat (src/components/*.astro,src/data/*.json). The moment a second page is added, each page gets its own folder (src/components/<page>/,src/data/<page>/); anything used by more than one page moves tosrc/components/shared//src/data/shared/. Promote toshared/on the second use, not before. Pages compose components; props mirror the JSON shape they render. - Colors: DaisyUI semantic tokens only (
bg-primary,text-error,bg-base-100/200/300,text-base-content, etc.). Never raw Tailwind palette colors (bg-blue-500,text-red-600). - Variants: the same purpose uses the same DaisyUI variant everywhere. Every primary CTA is
btn-primary. Every success notice isalert-success. - Assumption tags: uncertainty stays tracked, not rendered. In
BRIEF.mdprose, every claim ends in[verified],[assumed], or[unsure]with a reason. Insrc/dataJSON, records derived from[assumed]or[unsure]brief items carry_assumed: true(optionally_source: "brief §X") so they stay findable for the designer and sofast-reviewcan collect them as talking points. The prototype UI itself stays clean - do not render badges, borders, or any other visible tell. The prototype is a design artifact, not a confidence dashboard; assumptions are surfaced in the share conversation, not on the surface.
BRIEF.md dependency: soft. Works without it but is flying blind on entities, scope, and assumption tags. If BRIEF.md is missing, ask whether to run fast-brief first; if the user says proceed anyway, do so and skip the _assumed tagging step.
Workflow
- Read
BRIEF.md. Note the Data Files list, Key Entities, Must-Show States, and every[assumed]/[unsure]claim - those will become_assumed: trueon the records they produce. - Inspect existing Astro pages, components, and JSON before proposing changes.
- Place JSON files per page. If the prototype has one page, files sit flat at
src/data/*.json. If it has multiple pages, each page gets a folder (src/data/<page>/) and anything used by two or more pages moves tosrc/data/shared/. Promote toshared/on the second use, not preemptively. - Model data around product concepts the designer understands, not premature database tables.
- Use IDs and references when the prototype represents workflows, approvals, people, accounts, events, content items, or relationships.
- Separate stable content from volatile UI state when that makes editing clearer.
- Stress the layout from inside the data. Include short, normal, long, missing, repeated, and unusual values so the prototype meets realistic content from the first render. When the product has meaningful states or workflows, ship the dataset with multiple scenarios (happy path, missing input, blocked, stale, completed) rather than one happy-path fixture.
- Carry assumption tags forward. Any record derived from a
[assumed]or[unsure]claim inBRIEF.mdgets_assumed: trueand, where useful,_source: "brief §<section>". Do not strip these out to make the data look tidy. - Keep object names and file names readable. Prefer
cards.json,plans.json,timeline.json, orstates.jsonover vague buckets. - Update consuming Astro code when changing shapes so the prototype still runs.
- Add lightweight schema hints only when the repo already uses them or when the JSON shape is non-obvious.
Astro Data Heuristics
- Prefer JSON structures that import cleanly into
.astropages, layouts, and components. - Keep data files under
src/data, not root-levelcontent/,data/, or separate prototype folders. Subfolders undersrc/dataare page-scoped orshared/only - no category buckets (noforms/, nowidgets/). - Use arrays for repeated UI collections.
- Use IDs only when components need stable selection, links, filtering, or relationships.
- Keep display copy close to the thing that renders it.
- Keep image/media fields explicit:
src,alt,caption,creditwhen useful. - Represent UI states deliberately:
empty,loading,error,featured,disabled,selected,locked. - Represent workflow states deliberately:
queued,inProgress,needsApproval,approved,blocked,failed,complete. - Avoid nesting so deeply that a designer cannot edit data confidently.
Review Checklist
- Can a designer change copy or records inside
src/datawithout opening component code? - Can data be added, removed, or reordered safely?
- Are edge cases represented?
- Does the naming match the product language in
BRIEF.mdand the docs? - Do records derived from
[assumed]/[unsure]brief items carry_assumed: true? - Did any Astro imports, paths, or assumptions break after the model changed?