- Add meeting_number field (M-YYYYMMDD-XX format) with auto-generation - Refactor Excel export to use cell coordinates instead of placeholders - Export files saved to backend/record/ directory with meeting number filename - Add database migration for meeting_number column - Add start.sh script for managing frontend/backend/sidecar services - Update OpenSpec documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
62 lines
2.6 KiB
Markdown
62 lines
2.6 KiB
Markdown
# ai-summarization Specification
|
|
|
|
## Purpose
|
|
TBD - created by archiving change add-meeting-assistant-mvp. Update Purpose after archive.
|
|
## Requirements
|
|
### Requirement: Dify Integration
|
|
The middleware server SHALL integrate with Dify LLM at https://dify.theaken.com/v1 for transcript summarization.
|
|
|
|
#### Scenario: Successful summarization
|
|
- **WHEN** user submits POST /api/ai/summarize with transcript text
|
|
- **THEN** the server SHALL call Dify API and return structured JSON with conclusions and action_items
|
|
|
|
#### Scenario: Dify timeout handling
|
|
- **WHEN** Dify API does not respond within timeout period
|
|
- **THEN** the server SHALL return HTTP 504 with timeout error and client can retry
|
|
|
|
#### Scenario: Dify error handling
|
|
- **WHEN** Dify API returns error (500, rate limit, etc.)
|
|
- **THEN** the server SHALL return appropriate HTTP error with details
|
|
|
|
### Requirement: Structured Output Format
|
|
The AI summarization SHALL return structured data with conclusions and action items.
|
|
|
|
#### Scenario: Complete structured response
|
|
- **WHEN** transcript contains clear decisions and assignments
|
|
- **THEN** response SHALL include conclusions array (0 to many items) and action_items array with content, owner, due_date fields
|
|
|
|
#### Scenario: Partial data extraction
|
|
- **WHEN** transcript lacks explicit owner or due_date for action items
|
|
- **THEN** those fields SHALL be empty strings or null allowing manual completion
|
|
|
|
#### Scenario: Variable conclusion count
|
|
- **WHEN** transcript has multiple decisions
|
|
- **THEN** conclusions array SHALL contain all extracted conclusions without artificial limit
|
|
|
|
#### Scenario: No conclusions found
|
|
- **WHEN** transcript has no clear decisions
|
|
- **THEN** conclusions array SHALL be empty []
|
|
|
|
### Requirement: Dify Prompt Configuration
|
|
The Dify workflow SHALL be configured with detailed system prompt for meeting summarization.
|
|
|
|
#### Scenario: System prompt behavior
|
|
- **WHEN** transcript is sent to Dify
|
|
- **THEN** Dify SHALL use configured system prompt to extract conclusions and action_items in JSON format
|
|
|
|
#### Scenario: Flexible output count
|
|
- **WHEN** Dify processes transcript
|
|
- **THEN** it SHALL return variable number of conclusions and action items based on actual content
|
|
|
|
### Requirement: Manual Data Completion
|
|
The Electron client SHALL allow users to manually complete missing AI-extracted data.
|
|
|
|
#### Scenario: Fill missing owner
|
|
- **WHEN** AI returns action item without owner
|
|
- **THEN** user SHALL be able to select or type owner name in the UI
|
|
|
|
#### Scenario: Fill missing due date
|
|
- **WHEN** AI returns action item without due_date
|
|
- **THEN** user SHALL be able to select date using date picker
|
|
|