Product App
Features & Capabilities
Product App - Features & Capabilities Report
Template Version: 1.0.0 Generated: 2026-01-22 Package:
@epicdm/flowstate-app-productApp ID:product
Table of Contents
- Overview
- App Identity
- Feature Categories
- Capabilities
- Data Models
- User Workflows
- Integration Points
- Commands & Keybindings
- Architecture Summary
- Quality & Compliance
Overview
Purpose
The Product App provides comprehensive product management capabilities for FlowState, enabling product managers and teams to manage product portfolios, define strategic goals (OKRs), plan roadmaps with initiatives, coordinate teams with RACI matrices, and track product lifecycle phases.
Target Users
| User Type | Description | Primary Use Cases |
|---|---|---|
| Product Managers | Responsible for product strategy and execution | Define products, set goals, plan roadmaps, manage team assignments |
| Product Owners | Own product backlog and prioritization | Link projects to products, track initiative progress |
| Team Leads | Manage team members and responsibilities | Assign RACI roles, manage team composition |
| Executives | Strategic oversight of product portfolio | Portfolio view, health monitoring, goal tracking |
Value Proposition
- Centralized Product Management: Single source of truth for all product information
- Strategic Goal Alignment: OKR framework with hierarchical goals and metrics
- Visual Roadmap Planning: Timeline and Kanban views for initiative management
- Clear Accountability: RACI matrix for defining responsibilities
- Portfolio Health Monitoring: Aggregated views with health indicators
- Activity Tracking: Comprehensive audit trail of all product changes
App Identity
| Property | Value |
|---|---|
| ID | product |
| Display Name | Product |
| Package Name | @epicdm/flowstate-app-product |
| Version | 1.0.0 |
| Category | technical |
| Icon | package |
| Color | #6366f1 |
| Base Path | /product |
| Permissions | None required |
Entry Points
| Entry Point | Path | Description |
|---|---|---|
| Main Export | src/index.ts | Primary package export with all components, hooks, services |
| Standalone | src/standalone.tsx | Standalone app entry |
| App Component | src/App.tsx | Main React component with routing |
| Plugin | src/plugin.ts | FlowState plugin registration |
Feature Categories
Category 1: Product Management
Core product lifecycle management from concept to maturity
Feature: Product CRUD Operations
| Property | Details |
|---|---|
| ID | product-crud |
| Status | Implemented |
| Priority | High |
Description: Create, view, edit, and delete products with comprehensive metadata including name, description, type, phase, and visual customization (icon, color).
User Story: As a product manager, I want to manage product records so that I can track all products in our portfolio.
Acceptance Criteria:
- [x] Create products with name, description, type, icon, color
- [x] View products in list/grid layouts with filtering
- [x] Edit product details via modal
- [x] Soft-delete products with confirmation dialog
- [x] Filter by product type and lifecycle phase
Implementation:
| Component | Path | Purpose |
|---|---|---|
| ProductListPage | src/pages/ProductListPage.tsx | Main product listing |
| ProductDetailPage | src/pages/ProductDetailPage.tsx | Product detail view |
| EditProductModal | src/components/detail/EditProductModal.tsx | Edit product info |
| DeleteConfirm | src/components/detail/DeleteConfirm.tsx | Delete confirmation |
| useProducts | src/hooks/useProducts.ts | Product CRUD operations |
Routes:
/products- Product list view/products/:productId- Product detail view
Feature: Product Creation Wizard
| Property | Details |
|---|---|
| ID | product-wizard |
| Status | Implemented |
| Priority | High |
Description: 6-step guided wizard for comprehensive product creation covering type selection, identity, problem/value proposition, target market, competitive analysis, and review.
User Story: As a product manager, I want a guided product creation process so that I capture all essential product information upfront.
Acceptance Criteria:
- [x] Step 1: Select product type (software, physical, service, content, custom)
- [x] Step 2: Define identity (name, description, icon, color)
- [x] Step 3: Define problem statement and value proposition
- [x] Step 4: Define target market and customer persona
- [x] Step 5: Analyze competitive landscape
- [x] Step 6: Review and confirm creation
- [x] Progress persistence in session storage
- [x] Skip and navigate between steps
Implementation:
| Component | Path | Purpose |
|---|---|---|
| WizardModal | src/components/wizard/WizardModal.tsx | Wizard container |
| WizardProgress | src/components/wizard/WizardProgress.tsx | Progress indicator |
| Step1TypeSelect | src/components/wizard/Step1TypeSelect.tsx | Type selection |
| Step2Identity | src/components/wizard/Step2Identity.tsx | Basic info |
| Step3ProblemValue | src/components/wizard/Step3ProblemValue.tsx | Problem/value |
| Step4TargetMarket | src/components/wizard/Step4TargetMarket.tsx | Target market |
| Step5Competition | src/components/wizard/Step5Competition.tsx | Competition |
| Step6Review | src/components/wizard/Step6Review.tsx | Review/confirm |
| productStore | src/stores/productStore.ts | Wizard state management |
Feature: Product Lifecycle Phases
| Property | Details |
|---|---|
| ID | product-phases |
| Status | Implemented |
| Priority | High |
Description: Track product through lifecycle phases (Ideation, Development, Launch, Growth, Maturity, Decline) with transition history and optional notes.
User Story: As a product manager, I want to track my product's lifecycle phase so that I can apply appropriate strategies for each stage.
Acceptance Criteria:
- [x] Visual phase indicator showing current phase
- [x] Phase transition modal with optional notes
- [x] Historical timeline of phase transitions
- [x] Phase-based filtering in product list
Implementation:
| Component | Path | Purpose |
|---|---|---|
| PhaseIndicator | src/components/detail/PhaseIndicator.tsx | Current phase display |
| PhaseTimeline | src/components/detail/PhaseTimeline.tsx | Transition history |
| PhaseTransitionModal | src/components/detail/PhaseTransitionModal.tsx | Phase change dialog |
Feature: Product Strategy Definition
| Property | Details |
|---|---|
| ID | product-strategy |
| Status | Implemented |
| Priority | Medium |
Description: Define and edit strategic elements including problem statement, value proposition, target market, customer persona, competitive landscape, and KPIs.
User Story: As a product manager, I want to document my product strategy so that the team understands the product's direction and positioning.
Acceptance Criteria:
- [x] Strategy tab with editable sections
- [x] Problem statement and value proposition fields
- [x] Target market and customer persona sections
- [x] Competitive landscape documentation
- [x] KPI definition and tracking
Implementation:
| Component | Path | Purpose |
|---|---|---|
| StrategyTab | src/components/detail/StrategyTab.tsx | Strategy overview |
| KpisSection | src/components/detail/KpisSection.tsx | KPI management |
| KpiCard | src/components/detail/KpiCard.tsx | Individual KPI display |
| CompetitionSection | src/components/detail/CompetitionSection.tsx | Competition info |
Category 2: Goal/OKR Management
Strategic goal setting and tracking with hierarchical structure
Feature: Goal CRUD Operations
| Property | Details |
|---|---|
| ID | goal-crud |
| Status | Implemented |
| Priority | High |
Description: Create, view, edit, and delete goals with support for hierarchical parent-child relationships, categories, status tracking, and progress modes.
User Story: As a product manager, I want to manage strategic goals so that I can align team efforts with business objectives.
Acceptance Criteria:
- [x] Create goals with title, description, category, priority
- [x] Support hierarchical goals (parent/child)
- [x] Track status (Not Started, In Progress, At Risk, On Track, Complete)
- [x] Support manual and automatic progress tracking
- [x] Due date and target date management
Implementation:
| Component | Path | Purpose |
|---|---|---|
| GoalModal | src/components/goals/GoalModal.tsx | Create/edit goal |
| GoalCard | src/components/goals/GoalCard.tsx | Goal card display |
| GoalList | src/components/goals/GoalList.tsx | Goal list view |
| ParentGoalSelect | src/components/goals/ParentGoalSelect.tsx | Parent selection |
| useProductGoals | src/hooks/useProductGoals.ts | Goal operations |
Feature: Goal Views
| Property | Details |
|---|---|
| ID | goal-views |
| Status | Implemented |
| Priority | Medium |
Description: Multiple visualization options for goals including list view, dashboard view with charts, and hierarchical tree view.
User Story: As a product manager, I want different ways to view my goals so that I can understand progress from multiple perspectives.
Acceptance Criteria:
- [x] List view with filtering and sorting
- [x] Dashboard view with summary statistics
- [x] Tree view showing goal hierarchy
- [x] View toggle controls
Implementation:
| Component | Path | Purpose |
|---|---|---|
| GoalDashboard | src/components/goals/GoalDashboard.tsx | Dashboard view |
| GoalTree | src/components/goals/GoalTree.tsx | Hierarchical view |
| GoalViewToggle | src/components/goals/GoalViewToggle.tsx | View switcher |
| GoalFilters | src/components/goals/GoalFilters.tsx | Filter controls |
Feature: Goal Metrics/KPIs
| Property | Details |
|---|---|
| ID | goal-metrics |
| Status | Implemented |
| Priority | Medium |
Description: Attach measurable metrics to goals with support for different types (percentage, currency, count, custom), target values, current values, and trend indicators.
User Story: As a product manager, I want to attach metrics to my goals so that I can measure progress objectively.
Acceptance Criteria:
- [x] Add multiple metrics per goal
- [x] Support metric types (percentage, currency, count, custom)
- [x] Track target, current, and start values
- [x] Display trend indicators (up, down, stable)
- [x] Visual progress representation
Implementation:
| Component | Path | Purpose |
|---|---|---|
| MetricCard | src/components/goals/MetricCard.tsx | Metric display |
| MetricForm | src/components/goals/MetricForm.tsx | Metric editor |
| GoalProgressBar | src/components/goals/GoalProgressBar.tsx | Progress visual |
| useGoalProgress | src/hooks/useGoalProgress.ts | Progress calculations |
Feature: Goal Charts & Analytics
| Property | Details |
|---|---|
| ID | goal-charts |
| Status | Implemented |
| Priority | Low |
Description: Visual analytics for goals including category distribution charts, progress distribution, and overall progress gauge.
User Story: As a product manager, I want visual analytics for my goals so that I can quickly understand overall goal health.
Acceptance Criteria:
- [x] Goals by category chart
- [x] Progress distribution chart
- [x] Overall progress gauge
- [x] Summary statistics display
Implementation:
| Component | Path | Purpose |
|---|---|---|
| GoalsByCategoryChart | src/components/goals/charts/GoalsByCategoryChart.tsx | Category chart |
| ProgressDistributionChart | src/components/goals/charts/ProgressDistributionChart.tsx | Distribution chart |
| OverallProgressGauge | src/components/goals/charts/OverallProgressGauge.tsx | Progress gauge |
| GoalSummaryStats | src/components/goals/GoalSummaryStats.tsx | Statistics summary |
Category 3: Roadmap & Initiative Management
Strategic planning with timeline and status-based views
Feature: Roadmap Management
| Property | Details |
|---|---|
| ID | roadmap-management |
| Status | Implemented |
| Priority | High |
Description: Product roadmaps with support for quarterly planning, two visualization modes (timeline and kanban), and year navigation.
User Story: As a product manager, I want to create and manage roadmaps so that I can plan and communicate product strategy.
Acceptance Criteria:
- [x] Auto-create roadmap on first access
- [x] Timeline view organized by quarters
- [x] Kanban view organized by status
- [x] Year navigation for multi-year planning
- [x] Quarter filtering in kanban view
Implementation:
| Component | Path | Purpose |
|---|---|---|
| RoadmapTab | src/components/roadmap/RoadmapTab.tsx | Main container |
| TimelineView | src/components/roadmap/TimelineView.tsx | Timeline display |
| KanbanView | src/components/roadmap/KanbanView.tsx | Kanban display |
| YearNavigator | src/components/roadmap/YearNavigator.tsx | Year selector |
| QuarterFilter | src/components/roadmap/QuarterFilter.tsx | Quarter filter |
| useRoadmap | src/hooks/useRoadmap.ts | Roadmap operations |
| roadmapStore | src/stores/roadmapStore.ts | View state |
Feature: Initiative Management
| Property | Details |
|---|---|
| ID | initiative-management |
| Status | Implemented |
| Priority | High |
Description: Create and manage initiatives within roadmaps with status tracking, priority levels, color coding, and project linking.
User Story: As a product manager, I want to manage initiatives so that I can track strategic work items on my roadmap.
Acceptance Criteria:
- [x] Create initiatives with name, description, quarter, status, priority
- [x] Color coding for visual differentiation
- [x] Link projects to initiatives
- [x] Status tracking (Backlog, Planned, In Progress, Done)
- [x] Priority levels (High, Medium, Low)
Implementation:
| Component | Path | Purpose |
|---|---|---|
| InitiativeCard | src/components/roadmap/InitiativeCard.tsx | Initiative display |
| InitiativeForm | src/components/roadmap/InitiativeForm.tsx | Create/edit form |
| InitiativeModal | src/components/roadmap/InitiativeModal.tsx | Modal wrapper |
| ProjectLinkSelector | src/components/roadmap/ProjectLinkSelector.tsx | Project linking |
| initiativeService | src/services/initiativeService.ts | Initiative logic |
Feature: Drag-and-Drop Roadmap
| Property | Details |
|---|---|
| ID | roadmap-dnd |
| Status | Implemented |
| Priority | Medium |
Description: Drag-and-drop support for moving initiatives between quarters (timeline) or status columns (kanban).
User Story: As a product manager, I want to drag initiatives to reschedule them so that I can quickly adjust my roadmap.
Acceptance Criteria:
- [x] Drag initiatives between quarters in timeline view
- [x] Drag initiatives between status columns in kanban view
- [x] Visual feedback during drag operations
- [x] Automatic data persistence on drop
Implementation:
| Component | Path | Purpose |
|---|---|---|
| DraggableInitiativeCard | src/components/roadmap/DraggableInitiativeCard.tsx | Draggable card |
| DroppableQuarterColumn | src/components/roadmap/DroppableQuarterColumn.tsx | Quarter drop zone |
| DroppableStatusColumn | src/components/roadmap/DroppableStatusColumn.tsx | Status drop zone |
| QuarterColumn | src/components/roadmap/QuarterColumn.tsx | Quarter container |
| StatusColumn | src/components/roadmap/StatusColumn.tsx | Status container |
Category 4: Team & RACI Management
Team composition and responsibility assignment
Feature: Team Member Management
| Property | Details |
|---|---|
| ID | team-management |
| Status | Implemented |
| Priority | High |
Description: Manage product team members with role assignments (Owner, Contributor, Viewer), user search, and RACI role assignments.
User Story: As a product manager, I want to manage my product team so that I can track who is working on my product.
Acceptance Criteria:
- [x] Add team members by searching users
- [x] Assign roles (Owner, Contributor, Viewer)
- [x] Edit team member roles
- [x] Remove team members with confirmation
- [x] View team member list
Implementation:
| Component | Path | Purpose |
|---|---|---|
| TeamTab | src/components/team/TeamTab.tsx | Team container |
| TeamMemberList | src/components/team/TeamMemberList.tsx | Member list |
| TeamMemberCard | src/components/team/TeamMemberCard.tsx | Member card |
| AddMemberModal | src/components/team/AddMemberModal.tsx | Add member |
| EditMemberModal | src/components/team/EditMemberModal.tsx | Edit member |
| RemoveMemberDialog | src/components/team/RemoveMemberDialog.tsx | Remove confirm |
| useTeamMembers | src/hooks/useTeamMembers.ts | Team operations |
| teamService | src/services/teamService.ts | Team logic |
Feature: RACI Matrix
| Property | Details |
|---|---|
| ID | raci-matrix |
| Status | Implemented |
| Priority | Medium |
Description: Interactive RACI (Responsible, Accountable, Consulted, Informed) matrix for defining clear accountability across responsibility areas.
User Story: As a product manager, I want to define a RACI matrix so that everyone knows their responsibilities.
Acceptance Criteria:
- [x] Interactive matrix with team members vs areas
- [x] Click to cycle through R/A/C/I roles
- [x] Add/manage RACI areas
- [x] Validation warnings (missing Accountable/Responsible)
- [x] Legend explaining RACI abbreviations
Implementation:
| Component | Path | Purpose |
|---|---|---|
| RaciMatrixView | src/components/raci/RaciMatrixView.tsx | Matrix grid |
| RaciCell | src/components/raci/RaciCell.tsx | Interactive cell |
| RaciLegend | src/components/raci/RaciLegend.tsx | Role legend |
| RaciAreaManager | src/components/raci/RaciAreaManager.tsx | Area management |
| RaciWarnings | src/components/raci/RaciWarnings.tsx | Validation warnings |
Category 5: Project Integration
Linking projects to products for execution tracking
Feature: Project Linking
| Property | Details |
|---|---|
| ID | project-linking |
| Status | Implemented |
| Priority | High |
Description: Link external projects to products with relationship types (Supports, Implements, Depends On) and track project progress.
User Story: As a product manager, I want to link projects to my product so that I can track execution progress.
Acceptance Criteria:
- [x] Link projects to products via modal
- [x] Define relationship type (supports, implements, depends_on)
- [x] View linked projects with status and completion
- [x] Unlink projects with confirmation
- [x] Grid and list view options
Implementation:
| Component | Path | Purpose |
|---|---|---|
| ProjectsTab | src/components/projects/ProjectsTab.tsx | Projects container |
| ProjectList | src/components/projects/ProjectList.tsx | Project list |
| ProjectCard | src/components/projects/ProjectCard.tsx | Project card |
| LinkProjectModal | src/components/projects/LinkProjectModal.tsx | Link modal |
| UnlinkConfirmDialog | src/components/projects/UnlinkConfirmDialog.tsx | Unlink confirm |
| useProductProjects | src/hooks/useProductProjects.ts | Project operations |
| productProjectService | src/services/productProjectService.ts | Service logic |
Category 6: Portfolio Management
Aggregated portfolio views and health monitoring
Feature: Portfolio Dashboard
| Property | Details |
|---|---|
| ID | portfolio-dashboard |
| Status | Implemented |
| Priority | Medium |
Description: Portfolio-level view showing all products with health indicators, filtering, sorting, and aggregated statistics.
User Story: As an executive, I want a portfolio view so that I can monitor the health of all products at once.
Acceptance Criteria:
- [x] Grid view of all products
- [x] Health status indicators (green/yellow/red)
- [x] Filter by phase, type, health, owner
- [x] Sort by name, phase, health, created date
- [x] Portfolio statistics summary
Implementation:
| Component | Path | Purpose |
|---|---|---|
| PortfolioHeader | src/components/portfolio/PortfolioHeader.tsx | Header controls |
| PortfolioGrid | src/components/portfolio/PortfolioGrid.tsx | Product grid |
| PortfolioFilters | src/components/portfolio/PortfolioFilters.tsx | Filter controls |
| PortfolioProductCard | src/components/portfolio/PortfolioProductCard.tsx | Enhanced card |
| PortfolioStats | src/components/portfolio/PortfolioStats.tsx | Statistics |
| portfolioService | src/services/portfolioService.ts | Portfolio logic |
Category 7: Activity Tracking
Comprehensive audit trail and activity monitoring
Feature: Activity Feed
| Property | Details |
|---|---|
| ID | activity-feed |
| Status | Implemented |
| Priority | Medium |
Description: Chronological feed of all product-related activities with filtering by entity type and action.
User Story: As a product manager, I want to see an activity log so that I can track all changes to my product.
Acceptance Criteria:
- [x] Chronological activity display
- [x] Filter by entity type (product, goal, project, team)
- [x] Filter by action type
- [x] Display user info and change details
- [x] Pagination support
Implementation:
| Component | Path | Purpose |
|---|---|---|
| ActivityFeed | src/components/activity/ActivityFeed.tsx | Activity container |
| ActivityList | src/components/activity/ActivityList.tsx | Activity list |
| ActivityItem | src/components/activity/ActivityItem.tsx | Single activity |
| ActivityFilters | src/components/activity/ActivityFilters.tsx | Filter controls |
| useActivities | src/hooks/useActivities.ts | Activity queries |
| activityService | src/services/activityService.ts | Activity logic |
Capabilities
Core Capabilities
| Capability | Description | Implementation |
|---|---|---|
| Product Lifecycle Management | Full product lifecycle from concept to decline | Phase tracking, transitions, history |
| Strategic Goal Framework | OKR-style goals with metrics and hierarchy | Goal model with parent-child relationships |
| Visual Roadmap Planning | Timeline and kanban views for initiatives | Drag-drop with quarter/status organization |
| Team Accountability | RACI matrix for clear role definition | Interactive matrix with validation |
| Portfolio Health Monitoring | Aggregated product health indicators | Health calculation from goal status |
Technical Capabilities
| Capability | Status | Notes |
|---|---|---|
| CRUD Operations | Yes | Full CRUD for products, goals, initiatives, team members |
| Real-time Updates | Yes | RxDB reactive subscriptions |
| Offline Support | Yes | RxDB local-first architecture |
| Search & Filter | Yes | Multi-field filtering on all list views |
| Sorting | Yes | Configurable sort fields and directions |
| Pagination | Yes | Activity feed pagination |
| Export | No | Not currently implemented |
| Notifications | No | Not currently implemented |
Integration Capabilities
| Integration | Type | Description |
|---|---|---|
| Projects | internal | Link projects from flowstate-app-projects |
| Goals Collection | internal | Goals stored in shared RxDB collection |
| Users | internal | User data from FlowState framework |
| Organizations | internal | Multi-org support via orgId |
Data Models
Collections Used
| Collection | Description | Operations | Primary Hook |
|---|---|---|---|
products | Product records with metadata | CRUD, Query | useProducts |
goals | Strategic goals with metrics | CRUD, Query | useProductGoals |
roadmaps | Product roadmaps | CRUD, Query | useRoadmap |
initiatives | Roadmap initiatives | CRUD, Query | useRoadmap |
productProjects | Product-project links | CRUD, Query | useProductProjects |
teamMembers | Product team members | CRUD, Query | useTeamMembers |
activities | Activity log entries | Create, Query | useActivities |
productGoals | Product-goal links | CRUD, Query | useProductGoals |
Entity Relationships
Product
|
+-- Goals (hasMany via productGoals)
| |
| +-- Child Goals (hasMany via parentGoalId)
| |
| +-- Metrics (embedded array)
|
+-- Roadmap (hasOne)
| |
| +-- Initiatives (hasMany)
| |
| +-- Projects (manyToMany via projectIds)
|
+-- TeamMembers (hasMany)
| |
| +-- RACI Assignments (embedded array)
|
+-- ProductProjects (hasMany)
| |
| +-- Project (belongsTo)
|
+-- Activities (hasMany)
Key Data Flows
User Action --> Component --> Hook --> Service (pure functions) --> RxDB Collection --> UI Update
|
+--> Zustand Store (UI state)
User Workflows
Workflow 1: Product Creation
Complete guided product creation process
Trigger: Click "New Product" button
Steps:
| Step | Action | Component | Outcome |
|---|---|---|---|
| 1 | Select product type | Step1TypeSelect | Type stored in wizard data |
| 2 | Enter identity info | Step2Identity | Name, description, icon, color set |
| 3 | Define problem/value | Step3ProblemValue | Problem statement and value prop set |
| 4 | Define target market | Step4TargetMarket | Market and persona defined |
| 5 | Analyze competition | Step5Competition | Competitive landscape documented |
| 6 | Review and confirm | Step6Review | Product created in database |
Success Outcome: Product created in "Concept" phase, user redirected to product detail Failure Handling: Validation errors shown inline, wizard data persisted in session
Workflow 2: Goal Management
Create and track strategic goals with metrics
Trigger: Navigate to Goals tab, click "Add Goal"
Steps:
| Step | Action | Component | Outcome |
|---|---|---|---|
| 1 | Open goal modal | GoalModal | Modal displayed |
| 2 | Enter goal details | GoalModal | Title, description, category, priority set |
| 3 | Set dates | GoalModal | Due date and target date set |
| 4 | Select parent goal | ParentGoalSelect | Hierarchy established |
| 5 | Add metrics | MetricForm | KPIs attached to goal |
| 6 | Save goal | GoalModal | Goal created and linked to product |
Success Outcome: Goal appears in goal list with status badge Failure Handling: Validation errors displayed, form state preserved
Workflow 3: Roadmap Planning
Plan product strategy with initiatives
Trigger: Navigate to Roadmap tab
Steps:
| Step | Action | Component | Outcome |
|---|---|---|---|
| 1 | View roadmap | RoadmapTab | Timeline or kanban view displayed |
| 2 | Create initiative | InitiativeModal | Initiative form shown |
| 3 | Set quarter and status | InitiativeForm | Initiative scheduled |
| 4 | Link projects | ProjectLinkSelector | Execution tracked |
| 5 | Drag to reschedule | DraggableInitiativeCard | Initiative moved to new quarter/status |
Success Outcome: Initiatives organized by quarter with linked projects Failure Handling: Drag operations cancelable, data persisted on drop
Workflow 4: RACI Assignment
Define team responsibilities
Trigger: Navigate to Team tab, select RACI view
Steps:
| Step | Action | Component | Outcome |
|---|---|---|---|
| 1 | Add team member | AddMemberModal | Member added with role |
| 2 | Create RACI areas | RaciAreaManager | Responsibility areas defined |
| 3 | Assign RACI roles | RaciCell | Click cells to assign R/A/C/I |
| 4 | Review warnings | RaciWarnings | Address missing assignments |
Success Outcome: Complete RACI matrix with all areas covered Failure Handling: Warnings highlight missing accountable/responsible roles
State Transitions
Product Phase States
+----------+ +-------------+ +--------+ +--------+ +----------+ +---------+
| Ideation |-->| Development |-->| Launch |-->| Growth |-->| Maturity |-->| Decline |
+----------+ +-------------+ +--------+ +--------+ +----------+ +---------+
| From State | To State | Trigger | Side Effects |
|---|---|---|---|
| Any | Any | PhaseTransitionModal confirmation | Phase history entry created, activity logged |
Goal Status States
+-------------+ +-------------+ +----------+
| Not Started |-->| In Progress |-->| Complete |
+-------------+ +-------------+ +----------+
| |
v v
+---------+ +----------+
| At Risk | <-->| On Track |
+---------+ +----------+
Initiative Status States
+---------+ +---------+ +-------------+ +------+
| Backlog |-->| Planned |-->| In Progress |-->| Done |
+---------+ +---------+ +-------------+ +------+
Integration Points
Internal Integrations
| Integration | Package | Purpose |
|---|---|---|
| FlowState Framework | @epicdm/flowstate-app-framework | App container, auth, org/workspace context |
| Collections | @epicdm/flowstate-collections | Data models and ID generation |
| RxDB React | @epicdm/flowstate-rxdb-react | Reactive data subscriptions |
External Integrations
| Integration | Type | Configuration |
|---|---|---|
| None | - | No external integrations currently |
MCP Integration
| Tool | Purpose | Example Usage |
|---|---|---|
collection-query | Query products, goals, initiatives | {"collection": "products", "selector": {"orgId": "..."}} |
collection-create | Create products, goals | {"collection": "products", "data": {...}} |
collection-update | Update product phase, goal status | {"collection": "products", "id": "...", "data": {...}} |
Commands & Keybindings
Registered Commands
| Command ID | Title | Icon | Category |
|---|---|---|---|
| None registered | - | - | - |
Note: Commands and keybindings are not currently registered in flowstate.json
Menu Contributions
| Menu Location | Commands |
|---|---|
| None | No menu contributions |
Architecture Summary
Directory Structure
src/
+-- components/ # UI components
| +-- activity/ # Activity feed components
| +-- detail/ # Product detail components
| +-- goals/ # Goal management components
| | +-- charts/ # Goal visualization charts
| +-- portfolio/ # Portfolio view components
| +-- products/ # Product list components
| +-- projects/ # Project linking components
| +-- raci/ # RACI matrix components
| +-- roadmap/ # Roadmap/initiative components
| +-- shared/ # Shared utility components
| +-- team/ # Team management components
| +-- wizard/ # Product creation wizard
+-- hooks/ # Custom React hooks (10 hooks)
+-- services/ # Business logic services (6 services)
+-- pages/ # Page components (6 pages)
+-- types/ # TypeScript definitions
+-- schemas/ # Zod validation schemas
+-- stores/ # Zustand stores (4 stores)
+-- utils/ # Utility functions
Key Architectural Patterns
| Pattern | Usage | Example |
|---|---|---|
| State Management | RxDB + Zustand | Collections for persistence, Zustand for UI state |
| Data Flow | Reactive subscriptions | RxDB observables through hooks |
| Component Architecture | Feature-based organization | Components grouped by domain |
| Routing | React Router v6 | Nested routes for product details |
| Validation | Zod schemas | Form validation and data integrity |
Services Overview
| Service | Responsibility | Key Methods |
|---|---|---|
productGoalService | Product-goal link operations | createProductGoalData(), calculateProductGoalProgress() |
initiativeService | Initiative/roadmap operations | buildInitiative(), buildRoadmap() |
teamService | Team member operations | createTeamMemberData(), validateRaciAssignments(), getRaciWarnings() |
portfolioService | Portfolio calculations | calculateProductHealth(), filterPortfolioProducts() |
activityService | Activity log operations | Activity creation and filtering |
goalService | Goal operations | Goal-related utilities |
Hooks Overview
| Hook | Purpose | Returns |
|---|---|---|
useProducts | Product CRUD and queries | { products, create, update, delete, archive } |
useProductGoals | Product-goal linking | { goals, link, unlink, reorder } |
useGoalProgress | Goal progress calculations | Progress metrics and status |
useRoadmap | Roadmap and initiative operations | { roadmap, initiatives, create, update } |
useTeamMembers | Team member operations | { members, add, edit, remove, updateRaci } |
useProductProjects | Product-project linking | { projects, link, unlink } |
useActivities | Activity queries | { activities, filters } |
useInitiativeProgress | Initiative progress | Progress from linked projects |
useProjectResolver | Project resolution | Resolve project references |
Stores Overview
| Store | Purpose | Key State |
|---|---|---|
productStore | Product list/wizard state | viewMode, filters, wizardData, wizardStep |
goalStore | Goal view state | viewMode, filters, selectedGoalId, modalOpen |
roadmapStore | Roadmap view state | viewMode, selectedYear, quarterFilter |
integrationStore | Cross-feature UI state | projectsTab, activityFilters, teamTab, portfolio |
Quality & Compliance
Test Coverage
| Test Type | Location | Coverage Target |
|---|---|---|
| Unit Tests | src/**/__tests__/ | >= 80% |
| Hook Tests | src/hooks/__tests__/ | >= 80% |
| Service Tests | src/services/__tests__/ | >= 80% |
| Store Tests | src/stores/__tests__/ | >= 80% |
| E2E Tests | e2e/ | Critical paths |
Accessibility
| Requirement | Status | Notes |
|---|---|---|
| WCAG 2.1 AA | In Progress | Roadmap components have ACCESSIBILITY.md |
| Keyboard Navigation | Yes | Tab navigation supported |
| Screen Reader Support | Partial | Aria labels on key elements |
| Focus Management | Yes | Modal focus trapping |
Security Considerations
| Consideration | Implementation |
|---|---|
| Input Validation | Zod schemas for all forms |
| Authorization | Org/workspace isolation via IDs |
| Data Protection | RxDB encryption support |
FlowState Alignment
Spec-Driven Development
This app follows the FlowState Standard for spec-driven development:
- Requirements:
.flowstate/specs/{{feature-name}}/requirements.md - Design:
.flowstate/specs/{{feature-name}}/design.md - Wireframes:
.flowstate/specs/{{feature-name}}/wireframes.html - Tasks:
.flowstate/specs/{{feature-name}}/tasks.md
Quality Gates
| Gate | Requirement | Status |
|---|---|---|
| Test Coverage | >= 80% statements | In Progress |
| TypeScript Strict | No any without justification | Pass |
| Accessibility | WCAG 2.1 AA | In Progress |
| Documentation | 100% TSDoc on public APIs | In Progress |
| Security | No critical vulnerabilities | Pass |
Appendix
Related Documentation
| Document | Location | Purpose |
|---|---|---|
| FLOWSTATE.md | .flowstate/docs/FLOWSTATE.md | Development workflow |
| PROCESS.md | .flowstate/docs/PROCESS.md | Development process |
| TDD.md | .flowstate/steering/TDD.md | Testing standards |
| QUALITY.md | .flowstate/steering/QUALITY.md | Code quality |
| ACCESSIBILITY.md | src/components/roadmap/ACCESSIBILITY.md | Roadmap accessibility |
Version History
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0.0 | 2026-01-22 | Claude | Initial documentation |