capability-router
Skill646 starsChanged 36 days agoMITView on GitHub
Start here for build and feature requests. Resolve the intended data source, select only the required Universal App capabilities, and hand the implementation to one owning skill per capability.
- Installs packages
4 other projects use a version of this.
Adopted by
Most recently taken up by
- qimen039-code/agent-cognitive-continuity-frameworktheir own version, first seen Oct 17, 2026
- qimen039-code/claim-boundary-harnesstheir own version, first seen Oct 13, 2026
- Gaurav890/everything-agentic-engineeringtheir own version, first seen Sep 13, 2026
- microsoft/awesome-rayfintheir own version, first seen May 30, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- microsoft/awesome-rayfin★ 108same 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 repository76 other files it gives its agents.
- common/config/typedoc/AGENTS.mdAGENTS.md
- docs/site/AGENTS.mdAGENTS.md
- .github/skills/react-best-practices/AGENTS.mdAGENTS.md
- packages/docgen/AGENTS.mdAGENTS.md
- packages/guide/AGENTS.mdAGENTS.md
- packages/host-docs/AGENTS.mdAGENTS.md
- packages/tools/AGENTS.mdAGENTS.md
- packages/tools/cli/AGENTS.mdAGENTS.md
- packages/tools/cli/assets/agent-files/AGENTS.mdAGENTS.md
- packages/tools/common/AGENTS.mdAGENTS.md
- packages/tools/docs-lib/AGENTS.mdAGENTS.md
- packages/tools/mcp/AGENTS.mdAGENTS.md
- packages/tools/vscode/AGENTS.mdAGENTS.md
- packages/typescript-sdk/AGENTS.mdAGENTS.md
- packages/typescript-sdk/auth/AGENTS.mdAGENTS.md
- packages/typescript-sdk/core/AGENTS.mdAGENTS.md
- packages/typescript-sdk/data/AGENTS.mdAGENTS.md
- packages/typescript-sdk/storage/AGENTS.mdAGENTS.md
- packages/udf/udf-worker-extension/AGENTS.mdAGENTS.md
- samples/data-app/AGENTS.mdAGENTS.md
- samples/getting-started-auth/AGENTS.mdAGENTS.md
- samples/notes-app/AGENTS.mdAGENTS.md
- samples/todo-app/AGENTS.mdAGENTS.md
- samples/universal-app/template/AGENTS.mdAGENTS.md
- samples/welcome-app-react-auth/AGENTS.mdAGENTS.md
- samples/welcome-app-react-no-auth/AGENTS.mdAGENTS.md
- samples/welcome-app-typescript/AGENTS.mdAGENTS.md
- hotfix-releaseSkill
- launch-vscode-extensionSkill
- openspec-apply-changeSkill
- openspec-archive-changeSkill
- openspec-bulk-archive-changeSkill
- openspec-continue-changeSkill
- openspec-exploreSkill
- openspec-ff-changeSkill
- openspec-new-changeSkill
- openspec-onboardSkill
- openspec-sync-specsSkill
- openspec-verify-changeSkill
- privacy-dfdSkill
- rayfin-cli-uxSkill
- vercel-react-best-practicesSkill
- react-clean-architectureSkill
- run-cli-e2e-locallySkill
- vscode-react-webview-architectureSkill
- vscode-webview-trpc-messagingSkill
- rayfin-connectorsSkill
- rayfin-functionsSkill
- rayfinSkill
- rayfin-storageSkill
- rayfin-getting-startedSkill
- app-designSkill
- app-validationSkill
- dax-authoringSkill
- fabric-cliSkill
- fabric-sdkSkill
- playwright-cliSkill
- query-designSkill
- schema-discoverySkill
- visualsSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. 0 are common, 14 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
14
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Do not select a pack from words such as "dashboard" or "workflow" alone.
- Distinctive: line 29
Never fabricate identifiers, schemas, query output, or business values.
- Distinctive: line 30
Do not ask the user to describe a discoverable schema.
- Distinctive: line 31
Use the installed tools and version-matched docs to inspect it.
- Distinctive: line 54
Run pack commands serially because they mutate workspace manifests, root scripts, and service configuration.
- Very specific: line 56
Use data-modeling for records the app owns.
- Very specific: line 57
Use connectors for records that already exist in a supported Fabric source.
- Very specific: line 58
Use visuals for rendering, regardless of whether rows come from sample data, Rayfin data, or analytics.
- Very specific: line 59
Use functions only for trusted code, secrets, app identity connections, or server-side calls.
- Distinctive: line 66
When several packs are selected, you may avoid a separate install after each pack without inventing a multi-pack command:
- Very specific: line 69
Run each selected npm run pack:add -- <name> --no-install command serially.
- Distinctive: line 72
After all packs apply cleanly, run one install from the workspace root:
- Distinctive: line 84
Run pack and lifecycle commands from the workspace root.
- Distinctive: line 91
Do not create nested lockfiles or install dependencies separately inside workspace packages.
- Distinctive: line 92
Do not import decorated entity classes into frontend code.
- Very specific: line 97
If a pack preserves an existing file, report it and stop instead of assuming the pack's contract is installed.
- Very specific: line 98
Use --force-seeds only with explicit user approval.
- Distinctive: line 102
Read the owning skill for each selected capability.
- Distinctive: line 103
Read the relevant seed files and exact installed package documentation in parallel where independent.
- Distinctive: line 105
Verify real query or operation output before writing code that consumes its fields.
- Distinctive: line 109
Do not fan out a tiny app or tightly coupled flow merely because parallel agents are available.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Capability Router
The base workspace contains dynamic authentication, theming, an error boundary, an authenticated welcome view, and three packages: frontend, data, and shared. It has no live data source, persistence, charting, or trusted server-side logic until a capability pack adds it.
Decide the source first
Preserve what the user asked to use. Do not select a pack from words such as "dashboard" or "workflow" alone.
| User intent or evidence | Decision |
| A named semantic model, dataset, or report matches one verified source | Use that source with analytics |
| A supplied Fabric or Power BI URL or explicit IDs | Extract the workspace and item IDs, verify them, and use them |
| Several sources could match | Ask the user to select the intended source |
| A named source cannot be found | Ask which source they meant; do not substitute sample data or another model |
| No source is named | Search a relevant catalog when available, then ask a focused source-or-sample question if still unresolved |
| The user requested sample data or a mock-up | Use visuals and label the sample data visibly |
| The user supplied a static file for bundling | Review it and emit typed rows; do not imply that the file is a live source |
Never fabricate identifiers, schemas, query output, or business values. Do not ask the user to describe a discoverable schema. Use the installed tools and version-matched docs to inspect it.
A declared semantic-model app needs its intended model. Sample data is a separate, user-confirmed route, not a fallback for a missing model.
Select the capabilities
| Need | Pack command | Seed or implementation anchor | Owning skill |
| Read an existing Power BI semantic model | npm run pack:add -- connectors, then npm run pack:add -- analytics | packages/frontend/src/lib/connectors.ts, packages/frontend/src/hooks/use-semantic-model-query.ts, packages/frontend/src/queries/ | analytics |
| Chart semantic-model results | npm run pack:add -- visuals after analytics | frontend visuals kit and typed visual specifications | visuals |
| Chart sample data or app-owned records | npm run pack:add -- visuals | frontend visuals kit and typed visual specifications | visuals |
| Create and own records | npm run pack:add -- data-modeling | packages/data/src/Item.ts, packages/data/src/index.ts, packages/shared/src/index.ts | data-modeling |
| Read an existing warehouse, SQL database, or Lakehouse SQL endpoint | npm run pack:add -- connectors | rayfin/rayfin.yml, rayfin/connectors/<alias>/ | connectors |
| Call an external API, webhook, or custom model endpoint | npm run pack:add -- functions | packages/functions/src/function_app.ts | functions-capability |
| Use a secret or trusted operation | npm run pack:add -- functions | packages/functions/src/function_app.ts | functions-capability |
| Call a published Fabric data agent | npm run pack:add -- functions | packages/functions/src/function_app.ts | functions-capability |
| Bundle a supplied CSV or spreadsheet | no pack | a typed module in the owning workspace package | this skill |
| Use Kusto or KQL | unavailable in this release | none | connectors |
Capabilities compose. An app that stores records, reads a semantic model, charts results, and calls a trusted API needs four separate pack invocations. The current scaffolder accepts one pack per invocation. Run pack commands serially because they mutate workspace manifests, root scripts, and service configuration.
Use data-modeling for records the app owns.
Use connectors for records that already exist in a supported Fabric source.
Use visuals for rendering, regardless of whether rows come from sample data, Rayfin data, or analytics.
Use functions only for trusted code, secrets, app identity connections, or server-side calls.
Kusto and KQL are not supported in this release. Say so and stop rather than swapping in another source.
Optional consolidated install
When several packs are selected, you may avoid a separate install after each pack without inventing a multi-pack command:
- Run each selected
npm run pack:add -- <name> --no-installcommand serially. - Inspect every result for preserved files and stop if any pack reports one.
- After all packs apply cleanly, run one install from the workspace root:
npm install --ignore-scripts --no-audit --no-fundThis is a manual authoring optimization, not durable pack caching. The consolidated install does not write the per-pack success markers, so a later ordinary pack reapply may install again.
Preserve workspace ownership
Run pack and lifecycle commands from the workspace root. The pack manifest selects the package manifest that owns its dependencies:
- Frontend and connector dependencies belong in
packages/frontend/package.json. - Decorated entities belong in
packages/data, while browser-safe record contracts belong inpackages/shared. - The functions pack creates
packages/functionsand composes it into the root build and typecheck scripts.
Do not create nested lockfiles or install dependencies separately inside workspace packages. Do not import decorated entity classes into frontend code.
Apply and hand off
Apply selected packs before editing files they seed.
If a pack preserves an existing file, report it and stop instead of assuming the pack's contract is installed.
Use --force-seeds only with explicit user approval.
After routing:
- Read the owning skill for each selected capability.
- Read the relevant seed files and exact installed package documentation in parallel where independent.
- Establish a runnable shell in
packages/frontendwith honest loading states, preserving protected hosting and the dynamic auth gate. - Verify real query or operation output before writing code that consumes its fields.
- Integrate data, interactions, and polish, then follow
AGENTS.mdfor final validation and deployment.
Substantial independent discovery or implementation may be delegated behind a clear interface. Do not fan out a tiny app or tightly coupled flow merely because parallel agents are available.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

