atomic

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.0
    publishedInvalid 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

  1. Start in src/types/attachment.ts for AttachmentModel, FileUploadConfig, DEFAULT_UPLOAD_CONFIG, and the Zod config schema.
  2. Update src/services/FileUploadService.ts for validation or processing behavior. The constructor merges defaults and validates config before use.
  3. Preserve blob URL lifecycle. processFile creates object URLs; callers must call revokeUrls when attachments are no longer displayed or sent.
  4. Use includeBase64 only for image files. FileUploadService.isImage gates base64 reads.
  5. Check src/hooks/useFileUpload.ts and src/components/FilePreview.tsx for 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

SkillTypeUse when
flowstate-app-chatOrchestratorWorking on the chat package entry points, app shell integration, or deciding which chat subskill to load.
flowstate-app-chat-conversation-runtimeWorkflowChanging conversations, messages, streaming, MCP tools, memory status, or scoped conversation behavior.
flowstate-app-chat-attachmentsWorkflowChanging 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

CheckResult
Source-backedPassed. Each skill references concrete files in src/ and package commands.
Not a generated feature listPassed. Skills describe runtime workflows, decision points, and failure modes.
ComposablePassed. Orchestrator routes to conversation runtime and attachment workflows.
Verification includedPassed. 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 ./skills

Replace <target> with your agent target identifier. See the CLI docs for details.