flowstate-epic-flowstate-apps-epicdm-flowstate-app-chat
Package-local agent skill for @epicdm/flowstate-app-chat.
Tags
Publisher
Versions
1 version published — latest: 1.0.0
- 1.0.0publishedInvalid Date
Skill
flowstate-app-chat Package Skill
Package: @epicdm/flowstate-app-chat
Repository: epic-flowstate-apps
Path: packages/flowstate-app-chat
Version: 1.0.0
Use this published Dojo skill as the package-level entrypoint. For detailed workflows, use the package-local skills listed below.
Primary Package Workflow
Chat Attachments
Status: Active
Purpose: Keep chat attachment handling validated, memory-safe, and compatible with message workflows.
Scope: FileUploadService, useFileUpload, attachment types, and file preview components.
Trigger: A task changes accepted file types, upload size limits, image base64 handling, previews, or attachment cleanup.
Input: Desired attachment behavior and validation constraints.
Output: Updated attachment behavior with validation and cleanup preserved.
Workflow
- Start in
src/types/attachment.tsforAttachmentModel,FileUploadConfig,DEFAULT_UPLOAD_CONFIG, and the Zod config schema. - Update
src/services/FileUploadService.tsfor validation or processing behavior. The constructor merges defaults and validates config before use. - Preserve blob URL lifecycle.
processFilecreates object URLs; callers must callrevokeUrlswhen attachments are no longer displayed or sent. - Use
includeBase64only for image files.FileUploadService.isImagegates base64 reads. - Check
src/hooks/useFileUpload.tsandsrc/components/FilePreview.tsxfor UI behavior and cleanup expectations.
Example
When adding a new allowed MIME type, update DEFAULT_UPLOAD_CONFIG, ensure validateFile returns a useful error for disallowed files, and verify FilePreview can render or gracefully label that file type.
Verification
yarn workspace @epicdm/flowstate-app-chat typecheck
yarn workspace @epicdm/flowstate-app-chat build
For cleanup changes, manually inspect all preview removal paths and confirm revokeUrls is still reachable.
Package Skill Inventory
Skill Inventory: @epicdm/flowstate-app-chat
| Skill | Type | Use when |
|---|---|---|
flowstate-app-chat | Orchestrator | Working on the chat package entry points, app shell integration, or deciding which chat subskill to load. |
flowstate-app-chat-conversation-runtime | Workflow | Changing conversations, messages, streaming, MCP tools, memory status, or scoped conversation behavior. |
flowstate-app-chat-attachments | Workflow | Changing upload validation, attachment previews, base64 image handling, or blob URL cleanup. |
Composition
Start with flowstate-app-chat for package orientation. Load flowstate-app-chat-conversation-runtime for runtime behavior and flowstate-app-chat-attachments for file workflows. For UI-only changes, inspect the component named by the route or export after loading the orchestrator.
Review Gate
Review: @epicdm/flowstate-app-chat Skills
Status: Passed for local package use
Reviewed: 2026-06-30
Checks
| Check | Result |
|---|---|
| Source-backed | Passed. Each skill references concrete files in src/ and package commands. |
| Not a generated feature list | Passed. Skills describe runtime workflows, decision points, and failure modes. |
| Composable | Passed. Orchestrator routes to conversation runtime and attachment workflows. |
| Verification included | Passed. Commands and source-review caveats are documented. |
Residual Risk
Package automated tests are minimal, so future runtime changes should add focused tests around ChatService, ChatProvider, or FileUploadService when behavior changes.
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/flowstate-app-chat/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-apps-epicdm-flowstate-app-chat --target <target> --out ./skillsReplace <target> with your agent target identifier. See the CLI docs for details.