fusion-developer-app
Skill2 starsChanged 2 months agoMITView on GitHub
Guides feature development in Fusion Framework React apps, including app-scoped framework research, test authoring, and test-time mocking needed to choose and verify the right integration patterns. USE FOR: building features, components, pages, hooks, services, API integrations, module configuration, and their tests. DO NOT USE FOR: issue authoring, skill authoring, CI/CD configuration, backend service changes, or general Fusion documentation unrelated to app implementation.
In this repository31 other files it gives its agents.
- AGENTS.mdAGENTS.md
- .github/copilot-instructions.mdCopilot instructions
- caveman-compressSkill
- fusion-core-servicesSkill
- fusion-dependency-reviewSkill
- fusion-designSkill
- fusion-framework-mockingSkill
- fusion-framework-testingSkill
- fusion-github-review-resolutionSkill
- fusion-issue-solvingSkill
- fusion-issue-task-planningSkill
- fusion-mcpSkill
- fusion-package-scribeSkill
- fusion-pm-mcpSkill
- fusion-backend-devSkill
- fusion-developer-portalSkill
- fusion-devtoolsSkill
- fusion-help-apiSkill
- fusion-help-docsSkill
- fusion-help-integrationSkill
- fusion-infra-cliSkill
- fusion-issue-authoringSkill
- fusion-roles-cliSkill
- fusion-rulesSkill
- fusion-skill-authoringSkill
- fusionSkill
- fusion-skillsSkill
- equinor-design-systemSkill
- fusion-code-conventionsSkill
- fusion-researchSkill
- fusion-rule-authorSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
28 rules. About 0 are common, 13 are distinctive, and 15 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈13
Distinctive · estimate
This author's own choices. Worth a look.
15
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 36
Use this skill when developing features, components, hooks, services, or types for a Fusion Framework React application.
- Distinctive: line 61
Do not use this skill for:
- Very specific: line 94
Read package.json — package manager (bun/pnpm/npm), scripts, dependencies.
- Very specific: line 95
Read tsconfig.json — TypeScript settings, path aliases.
- Very specific: line 97
Check docs/adr/ or contribute/ for project-specific code standards.
- Very specific: line 98
Check formatter/linter config (biome.json, .eslintrc, prettier).
- Very specific: line 99
Read app.config.ts and app.manifest.ts — endpoints, environment setup.
- Very specific: line 123
Follow project code standards from Step 1.
- Very specific: line 129
Follow references/styled-components.md, references/styling-with-eds.md, references/using-fusion-react-components.md:
- Very specific: line 131
Use styled-components for custom styling (Fusion convention).
- Distinctive: line 132
No CSS Modules, global CSS, Tailwind, or alternative CSS-in-JS unless project uses them.
- Very specific: line 133
Use Styled object pattern for co-located styled components.
- Very specific: line 134
Prefer EDS (@equinor/eds-core-react) for standard UI.
- Very specific: line 135
Use EDS design tokens (@equinor/eds-tokens) for colors, spacing, typography.
- Very specific: line 137
Use @equinor/fusion-react-* for domain needs not in EDS (person display/selection, side sheets, progress).
- Distinctive: line 150
Keep client UI state in React state/context, not server-state libs.
- Very specific: line 183
Follow references/testing.md.
- Very specific: line 189
Use assets/review-checklist.md as post-generation checklist.
- Very specific: line 191
Run typecheck (bun run typecheck or pnpm typecheck) — zero errors.
- Distinctive: line 192
Run lint/format check — zero violations.
- Distinctive: line 193
Every new exported symbol has TSDoc.
- Distinctive: line 195
No new dependencies unless justified/approved.
- Distinctive: line 200
All files pass typecheck + lint.
- Distinctive: line 201
Every exported function, component, hook, and type has TSDoc.
- Distinctive: line 227
No new dependencies without explicit approval.
- Distinctive: line 228
No direct DOM manipulation — use React patterns.
- Distinctive: line 230
No secrets or credentials in source files.
- Distinctive: line 232
No infrastructure files (docker-compose, CI config) unless explicitly asked.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Fusion App Development
When to use
Use this skill when developing features, components, hooks, services, or types for a Fusion Framework React application.
Typical triggers:
- "Add a component / hook / service / page for ..."
- "Wire up the API"
- "Configure a Fusion module"
- "Which Fusion Framework hook / package should this app use?"
- "Persist this preference as an app setting"
- "Add bookmark / analytics / feature flag support"
- "Add a chart / people picker / person column to AG Grid"
- "How do I write a custom Fusion Framework module?"
- "Should this be a Fusion module or a React context?"
- "Write tests for this Fusion component / hook / route"
- "Mock auth, context, feature flags, or HTTP in this test"
Implicit triggers:
- Building in
src/ - References Fusion Framework modules, EDS,
@equinor/fusion-react-*, or styled-components - References app settings, bookmarks, analytics,
app.config.ts - Adding route, page, or data-fetching layer
- Adding or updating
*.test.ts/*.test.tsx,vitest.config.ts, or Fusion test fixtures - References charting:
@equinor/fusion-framework-react-ag-charts,chart.js,react-chartjs-2
When not to use
Do not use this skill for:
- Issue authoring/triage →
fusion-issue-authoring - Skill authoring →
fusion-skill-authoring - Backend/service changes (separate repo)
- CI/CD or deployment config
- Architecture docs (use ADR template)
For Fusion Framework package ownership, hook behavior, or example discovery → use fusion-research first.
Required inputs
Mandatory
- What to build: feature, component, hook, or service description
- Where it fits: layer (component, hook, service, type) and parent/sibling context
For ambiguous requests, consult assets/follow-up-questions.md before implementing.
Conditional
- API endpoint details when the feature involves data fetching
- Design/layout specifics when building visual components
- Fusion module name when extending module configuration
- Whether state should persist per-user, be shareable via bookmark, or stay runtime-only
- Expected test layer: pure logic, hook, component, route, complete app, or module graph
- External boundaries tests must seed: auth, context, services, feature flags, bookmarks, or HTTP
Instructions
Step 1 — Discover project conventions
Inspect target repo before writing code:
- Read
package.json— package manager (bun/pnpm/npm), scripts, dependencies. - Read
tsconfig.json— TypeScript settings, path aliases. - Scan
src/— directory layout, layer structure. - Check
docs/adr/orcontribute/for project-specific code standards. - Check formatter/linter config (
biome.json,.eslintrc,prettier). - Read
app.config.tsandapp.manifest.ts— endpoints, environment setup. - Delegate uncertain Fusion Framework behavior, package ownership, or cookbook examples to
fusion-researchbefore writing code.
Adapt to discovered conventions. references/ patterns are defaults — defer to project-specific rules when they differ.
Step 2 — Plan the implementation
New app from scratch → use assets/new-app-checklist.md.
- Break into discrete files/changes.
- Map to correct directory. Typical Fusion app:
src/components/— React components (presentation layer)src/hooks/— Custom React hooks (state and side-effect logic)src/api/— API clients, data transforms, business logicsrc/types/— TypeScript interfaces, type aliases, enumssrc/routes.ts— Route definitions (when using Fusion Router)src/config.ts— Fusion module configurationsrc/App.tsx— Root component, layout shell
- Identify shared types early — define before referencing.
- Project uses routing → follow
references/using-router.mdfor DSL + page patterns. - Different structure → follow it.
Step 3 — Implement following code conventions
Follow project code standards from Step 1. For naming, TSDoc, inline comments, type patterns, code style, error handling → defer to fusion-code-conventions.
For convention questions during implementation, invoke fusion-code-conventions directly.
Step 4 — Style with styled-components, EDS, and Fusion React components
Follow references/styled-components.md, references/styling-with-eds.md, references/using-fusion-react-components.md:
- Use
styled-componentsfor custom styling (Fusion convention). - No CSS Modules, global CSS, Tailwind, or alternative CSS-in-JS unless project uses them.
- Use
Styledobject pattern for co-located styled components. - Prefer EDS (
@equinor/eds-core-react) for standard UI. - Use EDS design tokens (
@equinor/eds-tokens) for colors, spacing, typography. - Extend EDS with
styled()for customization. - Use
@equinor/fusion-react-*for domain needs not in EDS (person display/selection, side sheets, progress). - Inline
styleprops: one-off tweaks only. - For page/view structure (shell composition, layout zones, empty/loading states), invoke
agents/design.md. For component-level EDS styling, invokeagents/styling.md.
Step 5 — Wire up data fetching (when applicable)
Follow references/configure-services.md, references/using-react-query.md, references/configure-mocking.md:
- Register HTTP clients via
configureHttpClientinconfig.tsorapp.config.ts. - Access clients with
useHttpClient(name)from@equinor/fusion-framework-react-app/http. - Prefer
@equinor/fusion-framework-react-app/*hooks over direct module access. Reserveframework.modules.*for non-React contexts. - React Query: wrap
useQueryin thin custom hooks. - Query keys: derived from API path + parameters.
- Keep client UI state in React state/context, not server-state libs.
Step 6 — Configure Fusion modules (when applicable)
Identify which module the user needs, then read only the matching reference:
| Need | Reference |
| HTTP clients / API integration | references/configure-services.md |
| Context module | references/using-context.md |
| Router and pages | references/using-router.md |
| AG Grid | references/using-ag-grid.md |
| AG Charts (standalone) | references/using-ag-charts.md |
| AG Grid integrated charts | references/using-ag-grid-charts.md |
| EDS + Fusion React components | references/using-fusion-react-components.md |
| People service (search, display, pick) | references/using-people-service.md |
| Settings | references/using-settings.md |
| Bookmarks | references/using-bookmarks.md |
| Analytics | references/using-analytics.md |
| Runtime config / environment | references/using-assets-and-environment.md |
| Feature flags | references/using-feature-flags.md |
| General framework modules | references/using-framework-modules.md |
| Custom module authoring | references/using-custom-modules.md |
- Module setup in
config.tsviaAppModuleInitiatorcallback. - Access modules via hooks:
useAppModule,useHttpClient,useCurrentContext. - Register HTTP endpoints in
app.config.tsfor new API integrations. - Enable navigation with
enableNavigationinconfig.tswhen app uses routing. - Define routes via Fusion Router DSL (
layout,index,route,prefix) for auto code splitting. - Unclear framework API → use
fusion-researchbefore choosing implementation pattern.
Step 7 — Add or update tests
Follow references/testing.md. Use agents/testing.md for focused test creation, maintenance, and
execution. It routes framework setup/rendering to fusion-framework-testing and module/HTTP state
to fusion-framework-mocking.
Step 8 — Validate
Use assets/review-checklist.md as post-generation checklist.
- Run typecheck (
bun run typecheckorpnpm typecheck) — zero errors. - Run lint/format check — zero violations.
- Every new exported symbol has TSDoc.
- Styling follows project conventions.
- No new dependencies unless justified/approved.
Expected output
- New/modified
src/files following project layer structure. - All files pass typecheck + lint.
- Every exported function, component, hook, and type has TSDoc.
- Styling follows project conventions.
- Tests cover changed behavior using
fusion-framework-testing; test-time Fusion state usesfusion-framework-mockingwhere needed. - Brief summary of what changed and why.
Helper agents
Optional helpers in agents/. Use for focused review or mid-implementation guidance. Runtimes without skill-local agents apply criteria inline.
Companion skills:
fusion-researchfor source-backed Fusion ecosystem research when implementation is blocked by uncertainty.fusion-framework-testingfor Fusion Framework React test setup, fixtures, rendering, and troubleshooting.fusion-framework-mockingfor deterministic module state and HTTP/OpenAPI boundaries in tests.agents/testing.md— creates, maintains, and executes app tests; routes to testing/mocking companion skills. Use for changed behavior, test files, fixtures, config, or failures.agents/framework.md— Fusion Framework integration: modules, HTTP clients, bootstrap, runtime config, settings, bookmarks, analytics. Prefersmcp_fusion_search_framework; falls back tomcp_fusion_search_docs. Consult when wiringconfig.ts,app.config.ts, or framework module access.agents/styling.md— EDS component selection, styled-components, design tokens, accessibility. Prefersmcp_fusion_search_eds. Consult when building/modifying visual components.agents/design.md— page/view structure: Fusion Portal shell composition, layout zones, side panel usage, empty/loading state patterns. Referencesequinor-design-systemfor layout ground truth. Delegates component-level checks toagents/styling.md. Consult when scaffolding new pages or layout wrappers.agents/data-display.md— AG Grid vs AG Charts, module setup, column defs, chart options, integrated charting. Prefersmcp_fusion_search_framework. Consult for grids, charts, dashboards. Useassets/charts-decision-matrix.mdfor library selection.agents/person-components.md—@equinor/fusion-react-person:PersonAvatar,PersonCard,PersonListItem,PersonPicker,PeoplePicker,PeopleViewer,PersonCell(AG Grid). DOM event pattern, valueGetter setup, pitfalls. Consult for any person display, search, or selection UI.agents/code-quality.md— delegates convention checks (naming, TSDoc, TS strictness, intent comments) tofusion-code-conventions, aggregates findings. Run on every new/modified file before finalizing.
Safety & constraints
- No new dependencies without explicit approval.
- No direct DOM manipulation — use React patterns.
- No
anytypes — TypeScript strict mode standard. - No secrets or credentials in source files.
- Conventional commits (
feat:,fix:,refactor:, etc.). - No infrastructure files (docker-compose, CI config) unless explicitly asked.
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.

