capability-router
Skill108 starsChanged 5 months agoMITView on GitHub
START HERE at the beginning of essentially every build request in this universal Rayfin app. Use this first whenever the user asks to build, create, add, or make something ("build me an app", "add sign-in", "let users upload files", "show a chart", "build a dashboard", "store todos", "make a Power BI report") and you need to decide WHICH capabilities to turn on. This skill maps the request to capability packs and tells you, for each, which Fabric service to enable, which npm modules to install, which code to scaffold, and which skill to read next. Triggers: build, create, add, make, app, feature, start, scaffold, capability, which service, what should I install, where do I begin.
- Installs packages
Files
Capability router — pick capabilities, enable services, install modules, activate skills
This is a lean universal app that grows on demand. Your first job for any build request is to route: figure out which capabilities the request needs, then turn on only those. Don't build everything; build toward what the user asked for.
The procedure
- Classify the request into one or more capabilities using the matrix below. Most requests need 1–2 packs. When in doubt, start with the smallest set and grow later — you can always route again on the next turn.
- For each chosen pack, in order:
0. If the pack ships a
pack.json, scaffold it in one command —npm run pack:add -- <pack>enables the service, installs the pinned modules, copies the kit, and wires scripts in one idempotent pass (seepack-manifest.md). Todayanalyticsships one, so that whole path is a single command — then jump straight to reading the pack skill. Otherwise, do the manual steps below.- Enable the service — edit
rayfin/rayfin.yml(see the pack's row). Auth + data + static hosting are already on. - Install the modules —
npm install <…>for that pack. Install just what the pack needs; skip modules already inpackage.json. (Manifest packs install their own modules; a manualnpm installis fine for the rest.) - Scaffold the code — create the entities / wiring / files the pack calls for (the pack's row says what; the pack's SKILL.md has the patterns).
- Read the pack skill — open
.agents/skills/<pack>/SKILL.mdand follow it for the real implementation details. Don't duplicate its guidance here.
- Enable the service — edit
- Keep it building, then deploy with
rayfin upwhen you're ready to see it on Fabric (seeAGENTS.md).
Capability matrix
| Pack | Route here when the user wants… | Enable in rayfin.yml | Install | Scaffold | Then read |
| authentication | sign-in, accounts, login, logout, protected pages, "who is the current user", per-user data | auth (already on) | — (scaffolding already present) | Wire AuthProvider + bootstrapAuth() in src/main.tsx; add the route guard in src/App.tsx | authentication |
| data-modeling | records, CRUD, a database, entities, lists, "save/store X", per-user rows, row-level security | data (already on, dialect: mssql) + auth | @microsoft/rayfin-data | Add entity classes under rayfin/data/*.ts; register them in rayfin/data/schema.ts; read/write via the rayfin-client; wire auth (Rayfin data is always authenticated) | data-modeling + authentication |
| graphein-visuals | a chart, graph, plot, KPI, table, or small dashboard over app data | — | graphein (already present) | Author a ChartSpec, drop into <Chart spec={…} /> (src/components/Chart.tsx) | graphein-visuals |
| analytics | a Power BI / semantic-model dashboard, DAX measures, BI reporting over an existing dataset | one command: npm run pack:add -- analytics (sets auth on / data off, installs modules, copies kit/**, seeds a runnable demo) | — (the command installs them) | — (the command copies the kit + seeds App.tsx/main.tsx); then wire the semantic model | analytics (then build-workflow, visuals, dax, fabric-data, app-design, headless-preview) |
Notes on routing
- App-building vs analytics are different shapes. The app-building packs
(
authentication,data-modeling,graphein-visuals) build a normal interactive app over Rayfin data, withdataenabled. Theanalyticspack builds a read-only dashboard over an external Power BI semantic model (datadisabled, its own dashboard kit). If the user wants charts over their own app's data, usegraphein-visuals; if they want a dashboard over an existing Power BI dataset/report, useanalytics. - Charts everywhere.
graphein-visualscomposes with the app-building packs (e.g.data-modelingfor the data +graphein-visualsfor the chart). - Row-level security lives inside
data-modeling— route there when the user says "each user only sees their own …". - Data implies auth. Rayfin data is always accessed as an authenticated user
(no anonymous access on Fabric), so any request that stores or reads app data —
data-modelingespecially — must also wireauthentication; route to both. A static page over public data needs neither. (Analytics is separate: its Power BI model is read through the Fabric embed proxy, which Fabric authenticates — no appAuthProviderneeded.) - Grow incrementally. Ship the core of what was asked, let it deploy, then add the next capability. You don't have to wire every pack up front.
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- microsoft/rayfin★ 646same name
- qimen039-code/agent-cognitive-continuity-framework★ 2same name
- qimen039-code/claim-boundary-harness★ 2same name
- Gaurav890/everything-agentic-engineering★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository33 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/angular-blankapp/AGENTS.mdAGENTS.md
- templates/angular-dashboard/AGENTS.mdAGENTS.md
- templates/campus-scheduler/AGENTS.mdAGENTS.md
- templates/fabric-atlas/AGENTS.mdAGENTS.md
- templates/field-technician/AGENTS.mdAGENTS.md
- templates/finance-analytics/AGENTS.mdAGENTS.md
- templates/ibcs-trainer/AGENTS.mdAGENTS.md
- templates/maritime-insights/AGENTS.mdAGENTS.md
- templates/paragliding-insights/AGENTS.mdAGENTS.md
- templates/slide-deck/AGENTS.mdAGENTS.md
- templates/static-blankapp/AGENTS.mdAGENTS.md
- templates/todo-local-experimental/AGENTS.mdAGENTS.md
- templates/universal-app/AGENTS.mdAGENTS.md
- template-gallerySkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- rayfinSkill
- analyticsSkill
- app-designSkill
- authenticationSkill
- build-workflowSkill
- data-modelingSkill
- daxSkill
- fabric-dataSkill
- graphein-visualsSkill
- headless-previewSkill
- visualsSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

