| name | new-app |
| description | Use when the user wants to create a new Rayfin (Microsoft Fabric Data App), start a new app's spec, or scaffold requirements for a Fabric data app from scratch. Trigger phrases — "create a new Rayfin app", "new Fabric data app", "scaffold a new app spec", "I want to build a new data app on Fabric". Produces a Draft requirements.md + user-stories skeleton; does not run any Rayfin CLI commands or write code. |
New Rayfin app
Turn "build a new Rayfin app" into a properly located, two-layer spec (specs/requirements.md +
specs/user-stories/) before any code exists — the same pattern this plugin's sibling skills and
the build skill all expect to find.
Boundaries
- Creates the spec skeleton and fills the User story / Personas sections through a short Q&A. Does
not fill in Screens/visuals or the Data contracts itself — those are
plan-frontend's and
plan-data-source's sections; offer to hand off to them, don't do their work here.
- Does not run
npm create @microsoft/rayfin@latest or any other CLI command. Spec first,
build later, gated on Status: Ready to Build — that gate belongs to build.
- Never promotes Status past
Draft itself.
Workflow
- Resolve where this app belongs. Follow
../common/spec-location.md steps 4–5: check for a
documented apps-root convention in the project's CLAUDE.md files first; ask once if none
exists.
- Get the app's name and one-line purpose from the user, and derive a kebab-case folder slug
from the name (confirm it if it's not obvious). Check the resolved apps-root for a same-named
folder first — if one already exists, stop and hand off to
update-app instead of creating a
duplicate.
- Scaffold the folder:
<app>/README.md — short summary, mirroring the shape of sibling app READMEs if any exist in
this project (status/pinned-version log line, contents table) — otherwise a plain one.
<app>/specs/requirements.md — copy references/requirements-template.md, fill in App Title,
Subproject path, and set **Status:** Draft.
<app>/specs/README.md and <app>/specs/user-stories/README.md — from
references/specs-readme-template.md.
- Interview for the User story section. Ask: who opens this app and what do they do in it
(persona, concrete action, what they get or leave behind), and roughly how many of that persona
exist. Write the answer into
requirements.md in the user-story-first shape the template shows
— not a feature list.
- Offer, don't force, the next two steps: "Screens/visuals and the data source(s) still need
planning — run
plan-frontend and plan-data-source now, or later?" If the user wants to
continue immediately, invoke them in this turn; otherwise stop here and say the spec is a
Draft waiting on those two sections.
- Update the project's app index if one exists (e.g. an
app_ideas.md cataloging apps by
status) — add this app, moving it from whatever backlog status it had to "specced."
- Confirm the created file paths back to the user in one short list.
Templates
references/requirements-template.md
references/user-story-template.md
references/specs-readme-template.md