flowstate-epic-flowstate-community-epicdm-flowstate-extension-ui
Package-local agent skill for @epicdm/flowstate-extension-ui.
Tags
Publisher
Versions
1 version published — latest: 1.0.7
- 1.0.7publishedInvalid Date
Skill
flowstate-extension-ui Package Skill
Package: @epicdm/flowstate-extension-ui
Repository: epic-flowstate-community
Path: packages/extension-ui
Version: 1.0.7
Use this published Dojo skill as the package-level entrypoint. For detailed workflows, use the package-local skills listed below.
Primary Package Workflow
FlowState Extension UI Catalog
Status: Active
Purpose: Teach agents how to compose extension catalog, list, detail, and panel UI.
Scope: Extension catalog components in packages/extension-ui/src/components.
Trigger: A task needs extension marketplace cards, searchable lists, detail pages, action buttons, metadata, or selected-extension panels.
Input: ExtensionInfo[], optional ExtensionDetailInfo, action callbacks, pending ID, categories, selected ID.
Output: Correct catalog UI composition with controlled or uncontrolled state.
Source Paths
src/components/ExtensionList.tsxsrc/components/ExtensionCard.tsxsrc/components/ExtensionCardSkeleton.tsxsrc/components/ExtensionDetail.tsxsrc/components/ExtensionDetailHeader.tsxsrc/components/ExtensionMetadata.tsxsrc/components/ExtensionActionBar.tsxsrc/components/ExtensionPanel.tsxsrc/types/extension-types.ts
Data Contracts
Use ExtensionInfo for list/card surfaces. Use ExtensionDetailInfo for full detail surfaces.
Required ExtensionInfo fields include:
iddisplayNamedescriptionpublisherversionstatuscompatibilitycontributionscategories
ExtensionDetailInfo adds optional readme, license, fileSize, dependencies, changelog, and tags.
Extension List Example
import {
ExtensionList,
type ExtensionActionName,
type ExtensionInfo,
} from '@epicdm/flowstate-extension-ui';
export function Marketplace({
extensions,
pendingId,
runAction,
}: {
extensions: ExtensionInfo[];
pendingId: string | null;
runAction: (action: ExtensionActionName, id: string) => void;
}) {
return (
<ExtensionList
extensions={extensions}
layout="grid"
categories={['Themes', 'Tools']}
pendingId={pendingId}
loading={extensions.length === 0}
onAction={runAction}
/>
);
}
ExtensionList internally uses useExtensionSearch for text search, category filters, and sort selection.
Extension Panel Example
import {
ExtensionPanel,
type ExtensionDetailInfo,
type ExtensionInfo,
} from '@epicdm/flowstate-extension-ui';
export function ExtensionManager({
extensions,
detailsById,
}: {
extensions: ExtensionInfo[];
detailsById: Record<string, ExtensionDetailInfo>;
}) {
return (
<ExtensionPanel
extensions={extensions}
getExtensionDetail={(id) => detailsById[id]}
onAction={(action, id) => console.log(action, id)}
categories={['Themes', 'Productivity']}
/>
);
}
ExtensionPanel supports controlled selection with selectedId and onSelectionChange; otherwise it maintains internal selection.
Status-To-Action Behavior
Cards and detail headers use internal helpers:
| Status | Primary Card/Header Action |
|---|---|
not-installed | install |
installed | disable |
enabled | disable |
disabled | enable |
updating | disabled button |
error | retry via install |
ExtensionActionBar exposes multiple actions for installed/enabled/disabled states and no actions for updating or error.
Detail Tabs
ExtensionDetail has tabs:
overviewcontributionssettingschangelog
Use activeTab and onTabChange for controlled tabs. Without them, it manages internal tab state.
The settings tab currently renders a placeholder; use flowstate-extension-ui-settings for real settings editor composition.
Styling And Testing Hooks
Catalog components emit:
data-componentdata-partdata-statusdata-compatibilitydata-layout
Tests rely on these markers. Host styling should too.
Red Flags
| Red Flag | Corrective Action |
|---|---|
ExtensionPanel action click unexpectedly selects the extension | Source intentionally selects on list action before running action. Account for that in UX. |
| Detail data missing | Provide getExtensionDetail or accept fallback from ExtensionInfo. |
| Custom list needs controlled search state | Use useExtensionSearch directly instead of ExtensionList. |
| Installing/enabling needs async pending/error state | Compose with useExtensionActions. |
Verification
yarn workspace @epicdm/flowstate-extension-ui test --runInBand src/__tests__/ExtensionList.test.tsx src/__tests__/ExtensionPanel.test.tsx src/__tests__/ExtensionDetail.test.tsx
yarn workspace @epicdm/flowstate-extension-ui typecheck
Composition Notes
- Use
flowstate-extension-ui-hooks-actionsfor async action state. - Use
flowstate-extension-ui-contributions-themesfor rich contribution and compatibility displays. - Use
flowstate-extension-ui-primitivesfor host styling conventions.
Created: 2026-06-29
Package Skill Inventory
@epicdm/flowstate-extension-ui Skill Inventory
Repository: epic-flowstate-community
Package path: packages/extension-ui
Skill Map
| Skill | Type | Use When | Source Evidence |
|---|---|---|---|
flowstate-extension-ui | Orchestrator | An agent needs to choose how to use or maintain this package. | src/index.ts, package.json, README, feature inventory |
flowstate-extension-ui-primitives | Reference/workflow | An agent needs base UI primitives or styling hooks. | Text, View, Button, Badge, Icon, Panel, Card |
flowstate-extension-ui-catalog | Workflow | An agent needs marketplace/list/detail/panel extension UI. | ExtensionList, ExtensionCard, ExtensionDetail, ExtensionPanel |
flowstate-extension-ui-settings | Workflow/reference | An agent needs JSON-schema-backed extension settings UI. | ExtensionSettingsEditor, SettingsControl, SettingsGroup, SettingSchema |
flowstate-extension-ui-contributions-themes | Workflow/reference | An agent needs contribution, compatibility, platform, or theme preview UI. | ContributionBrowser, CompatibilityBadge, ThemePreview |
flowstate-extension-ui-hooks-actions | Workflow/reference | An agent needs extension search/filter/sort or async action handling. | useExtensionSearch, useExtensionActions, action helper behavior |
flowstate-extension-ui-native-maintenance | Maintenance/reference | An agent edits package exports, native subpath, docs, tests, or build config. | src/native.ts, tsup.config.ts, tests, README, CHANGELOG |
Composition Guidance
Use flowstate-extension-ui first for broad package tasks, then route to:
flowstate-extension-ui-primitivesfor small reusable building blocks.flowstate-extension-ui-catalogfor extension list/detail/panel workflows.flowstate-extension-ui-settingsfor configuration editors.flowstate-extension-ui-contributions-themesfor contribution or theme-preview views.flowstate-extension-ui-hooks-actionsfor search and action state management.flowstate-extension-ui-native-maintenancefor package maintenance and export drift.
Baseline Failure Cases Addressed
| Failure | Skill Coverage |
|---|---|
| Generated Dojo content created one skill per export. | This inventory groups by agent workflows. |
| README examples do not teach actual usage. | Skills include concrete import and component examples. |
| Native subpath described as full native UI. | Maintenance skill records current native placeholder behavior. |
| Internal helpers treated as root exports. | Hook/action and maintenance skills flag helper export status. |
| Settings editor treated as full JSON Schema. | Settings skill documents supported subset and key propagation. |
Review Gate
The local skillset is publish-ready only after:
- YAML frontmatter exists in each
SKILL.md. - Skills teach usage and maintenance workflows, not component lists.
- Verification results are recorded in
REVIEW.md. - Dojo publication is rebuilt from these reviewed skills, not from generated placeholders.
Review Gate
@epicdm/flowstate-extension-ui Skill Review
Review Summary
Created package-local operating skills for @epicdm/flowstate-extension-ui under packages/extension-ui/.flowstate/skills.
The skillset replaces generated one-export-per-skilllet material with composable guidance for:
- Package workflow routing.
- Primitive UI and host-app styling hooks.
- Extension catalog/list/detail/panel UI.
- JSON-schema settings editor behavior.
- Contribution, compatibility, platform, and theme preview UI.
- Search and async action hooks.
- Native subpath, build, docs, and export maintenance.
Evidence Reviewed
package.jsonREADME.mdCHANGELOG.md.flowstate/feature-matrix/inventory.md.flowstate/dojo/agent-skillset.mdsrc/index.tssrc/native.tssrc/types/extension-types.tssrc/hooks/useExtensionSearch.tssrc/hooks/useExtensionActions.tssrc/utils/extension-helpers.tssrc/components/*.tsxsrc/__tests__/*.test.tsxjest.config.cjstsup.config.tstsconfig.json
Quality Notes
The skills intentionally group UI components by how agents use them:
- primitives and styling hooks
- catalog/detail workflows
- settings workflows
- contribution/theme preview workflows
- hooks/action state
- native/export maintenance
This package has broad component coverage, but the useful learning shape is composition and data contracts.
Known Drift Preserved
- README examples are placeholders rather than real import examples.
- README implies identical native rendering, while
src/native.tssays full native implementations are future work. - CHANGELOG stops at
1.0.3, while package version is1.0.7. - Feature inventory lists
getActionLabel,getActionName, andformatCountas features, butsrc/index.tsdoes not export them. - No package-local lint script exists.
- No direct in-repo consumers were found outside this package.
Verification Status
Completed after authoring:
- ASCII scan: passed.
yarn workspace @epicdm/flowstate-extension-ui typecheck: passed.yarn workspace @epicdm/flowstate-extension-ui test --runInBand: passed, 28 suites and 279 tests.yarn workspace @epicdm/flowstate-extension-ui build: passed, building root andnativeentries.yarn nx build @epicdm/flowstate-extension-ui: passed; Nx Cloud reported the existing unconnected-workspace 401/setup notice.- Package has no
lintscript.
Dojo publication remains deferred until local skills pass verification and review.
Usage
Start with this skill to understand the package purpose, then use the package-local focused skills for specific workflows. Keep this Dojo version aligned with packages/extension-ui/package.json. Do not treat generated feature lists as lessons; use workflow evidence from CODE-REVIEW.md, SKILL-INVENTORY.md, and REVIEW.md.
Install
Run this in your project to install via CLI:
fscloud dojo skill install flowstate-epic-flowstate-community-epicdm-flowstate-extension-ui --target <target> --out ./skillsReplace <target> with your agent target identifier. See the CLI docs for details.