project-standalo-note-to-app/.workflow/versions/v001/dependency_graph.yml

713 lines
15 KiB
YAML

dependency_graph:
design_version: 1
workflow_version: v001
generated_at: '2025-12-19T06:08:12.130212'
generator: validate_design.py
stats:
total_entities: 41
total_layers: 5
max_parallelism: 14
critical_path_length: 5
external_dependencies: 0
external_dependencies: {}
layers:
- layer: 1
name: Data Layer
description: Database models - no external dependencies
items:
- id: api_logout_user
type: api
name: Logout user
depends_on: []
task_id: task_create_api_logout_user
agent: backend
complexity: medium
- id: component_app_card
type: component
name: AppCard
depends_on: []
task_id: task_create_component_app_card
agent: frontend
complexity: medium
- id: component_app_iframe_viewer
type: component
name: AppIframeViewer
depends_on: []
task_id: task_create_component_app_iframe_viewer
agent: frontend
complexity: medium
- id: component_audio_player
type: component
name: AudioPlayer
depends_on: []
task_id: task_create_component_audio_player
agent: frontend
complexity: medium
- id: component_features
type: component
name: Features
depends_on: []
task_id: task_create_component_features
agent: frontend
complexity: medium
- id: component_header
type: component
name: Header
depends_on: []
task_id: task_create_component_header
agent: frontend
complexity: medium
- id: component_hero
type: component
name: Hero
depends_on: []
task_id: task_create_component_hero
agent: frontend
complexity: medium
- id: component_record_button
type: component
name: RecordButton
depends_on: []
task_id: task_create_component_record_button
agent: frontend
complexity: medium
- id: component_recording_card
type: component
name: RecordingCard
depends_on: []
task_id: task_create_component_recording_card
agent: frontend
complexity: medium
- id: component_sidebar
type: component
name: Sidebar
depends_on: []
task_id: task_create_component_sidebar
agent: frontend
complexity: medium
- id: component_summary_display
type: component
name: SummaryDisplay
depends_on: []
task_id: task_create_component_summary_display
agent: frontend
complexity: medium
- id: component_transcript_viewer
type: component
name: TranscriptViewer
depends_on: []
task_id: task_create_component_transcript_viewer
agent: frontend
complexity: medium
- id: component_wake_word_indicator
type: component
name: WakeWordIndicator
depends_on: []
task_id: task_create_component_wake_word_indicator
agent: frontend
complexity: medium
- id: model_user
type: model
name: User
depends_on: []
task_id: task_create_model_user
agent: backend
complexity: medium
requires_layers: []
parallel_count: 14
- layer: 2
name: API Layer
description: REST endpoints - depend on models
items:
- id: api_get_current_user
type: api
name: Get current user
depends_on:
- model_user
task_id: task_create_api_get_current_user
agent: backend
complexity: medium
- id: api_login_user
type: api
name: Login user
depends_on:
- model_user
task_id: task_create_api_login_user
agent: backend
complexity: medium
- id: api_register_user
type: api
name: Register a new user
depends_on:
- model_user
task_id: task_create_api_register_user
agent: backend
complexity: medium
- id: component_app_gallery
type: component
name: AppGallery
depends_on:
- component_app_card
task_id: task_create_component_app_gallery
agent: frontend
complexity: medium
- id: component_recording_list
type: component
name: RecordingList
depends_on:
- component_recording_card
task_id: task_create_component_recording_list
agent: frontend
complexity: medium
- id: model_recording
type: model
name: Recording
depends_on:
- model_user
task_id: task_create_model_recording
agent: backend
complexity: medium
- id: page_home
type: page
name: Home
depends_on:
- component_features
- component_header
- component_hero
task_id: task_create_page_home
agent: frontend
complexity: medium
requires_layers:
- 1
parallel_count: 7
- layer: 3
name: UI Layer
description: Pages and components - depend on APIs
items:
- id: api_create_recording
type: api
name: Create new recording
depends_on:
- model_recording
task_id: task_create_api_create_recording
agent: backend
complexity: medium
- id: api_delete_recording
type: api
name: Delete recording
depends_on:
- model_recording
task_id: task_create_api_delete_recording
agent: backend
complexity: medium
- id: api_get_recording
type: api
name: Get single recording
depends_on:
- model_recording
task_id: task_create_api_get_recording
agent: backend
complexity: medium
- id: api_list_recordings
type: api
name: List user recordings
depends_on:
- model_recording
task_id: task_create_api_list_recordings
agent: backend
complexity: medium
- id: api_transcribe_recording
type: api
name: Transcribe recording
depends_on:
- model_recording
task_id: task_create_api_transcribe_recording
agent: backend
complexity: medium
- id: component_login_form
type: component
name: LoginForm
depends_on:
- api_login_user
task_id: task_create_component_login_form
agent: frontend
complexity: medium
- id: component_register_form
type: component
name: RegisterForm
depends_on:
- api_register_user
task_id: task_create_component_register_form
agent: frontend
complexity: medium
- id: model_generated_app
type: model
name: GeneratedApp
depends_on:
- model_user
- model_recording
task_id: task_create_model_generated_app
agent: backend
complexity: medium
requires_layers:
- 1
- 2
parallel_count: 8
- layer: 4
name: Layer 4
description: Entities with 3 levels of dependencies
items:
- id: api_delete_app
type: api
name: Delete generated app
depends_on:
- model_generated_app
task_id: task_create_api_delete_app
agent: backend
complexity: medium
- id: api_get_app
type: api
name: Get single generated app
depends_on:
- model_generated_app
task_id: task_create_api_get_app
agent: backend
complexity: medium
- id: api_list_apps
type: api
name: List generated apps
depends_on:
- model_generated_app
task_id: task_create_api_list_apps
agent: backend
complexity: medium
- id: api_summarize_recording
type: api
name: Summarize recording
depends_on:
- api_transcribe_recording
- model_recording
task_id: task_create_api_summarize_recording
agent: backend
complexity: medium
- id: page_dashboard
type: page
name: Dashboard
depends_on:
- component_recording_list
- api_list_recordings
- component_record_button
- api_get_current_user
- component_wake_word_indicator
- component_header
- component_sidebar
task_id: task_create_page_dashboard
agent: frontend
complexity: medium
- id: page_login
type: page
name: Login
depends_on:
- component_login_form
task_id: task_create_page_login
agent: frontend
complexity: medium
- id: page_recording_detail
type: page
name: Recording Detail
depends_on:
- component_transcript_viewer
- component_summary_display
- api_get_recording
- component_audio_player
- component_header
- component_sidebar
task_id: task_create_page_recording_detail
agent: frontend
complexity: medium
- id: page_recordings
type: page
name: Recordings
depends_on:
- api_list_recordings
- component_header
- component_recording_list
- component_recording_card
- component_sidebar
task_id: task_create_page_recordings
agent: frontend
complexity: medium
- id: page_register
type: page
name: Register
depends_on:
- component_register_form
task_id: task_create_page_register
agent: frontend
complexity: medium
requires_layers:
- 1
- 2
- 3
parallel_count: 9
- layer: 5
name: Layer 5
description: Entities with 4 levels of dependencies
items:
- id: api_generate_app
type: api
name: Generate app from recording
depends_on:
- api_summarize_recording
- model_generated_app
- model_recording
task_id: task_create_api_generate_app
agent: backend
complexity: medium
- id: page_app_detail
type: page
name: App Preview
depends_on:
- component_header
- component_app_iframe_viewer
- api_get_app
- component_sidebar
task_id: task_create_page_app_detail
agent: frontend
complexity: medium
- id: page_apps
type: page
name: Generated Apps
depends_on:
- api_list_apps
- component_app_card
- component_app_gallery
- component_header
- component_sidebar
task_id: task_create_page_apps
agent: frontend
complexity: medium
requires_layers:
- 1
- 2
- 3
- 4
parallel_count: 3
dependency_map:
model_user:
type: model
layer: 1
depends_on: []
depended_by:
- model_recording
- api_get_current_user
- model_generated_app
- api_login_user
- api_register_user
model_recording:
type: model
layer: 2
depends_on:
- model_user
depended_by:
- api_list_recordings
- api_create_recording
- api_transcribe_recording
- api_summarize_recording
- model_generated_app
- api_get_recording
- api_generate_app
- api_delete_recording
model_generated_app:
type: model
layer: 3
depends_on:
- model_user
- model_recording
depended_by:
- api_delete_app
- api_get_app
- api_list_apps
- api_generate_app
api_register_user:
type: api
layer: 2
depends_on:
- model_user
depended_by:
- component_register_form
api_login_user:
type: api
layer: 2
depends_on:
- model_user
depended_by:
- component_login_form
api_logout_user:
type: api
layer: 1
depends_on: []
depended_by: []
api_get_current_user:
type: api
layer: 2
depends_on:
- model_user
depended_by:
- page_dashboard
api_list_recordings:
type: api
layer: 3
depends_on:
- model_recording
depended_by:
- page_dashboard
- page_recordings
api_create_recording:
type: api
layer: 3
depends_on:
- model_recording
depended_by: []
api_get_recording:
type: api
layer: 3
depends_on:
- model_recording
depended_by:
- page_recording_detail
api_delete_recording:
type: api
layer: 3
depends_on:
- model_recording
depended_by: []
api_transcribe_recording:
type: api
layer: 3
depends_on:
- model_recording
depended_by:
- api_summarize_recording
api_summarize_recording:
type: api
layer: 4
depends_on:
- api_transcribe_recording
- model_recording
depended_by:
- api_generate_app
api_list_apps:
type: api
layer: 4
depends_on:
- model_generated_app
depended_by:
- page_apps
api_generate_app:
type: api
layer: 5
depends_on:
- api_summarize_recording
- model_generated_app
- model_recording
depended_by: []
api_get_app:
type: api
layer: 4
depends_on:
- model_generated_app
depended_by:
- page_app_detail
api_delete_app:
type: api
layer: 4
depends_on:
- model_generated_app
depended_by: []
page_home:
type: page
layer: 2
depends_on:
- component_features
- component_header
- component_hero
depended_by: []
page_login:
type: page
layer: 4
depends_on:
- component_login_form
depended_by: []
page_register:
type: page
layer: 4
depends_on:
- component_register_form
depended_by: []
page_dashboard:
type: page
layer: 4
depends_on:
- component_recording_list
- api_list_recordings
- component_record_button
- api_get_current_user
- component_wake_word_indicator
- component_header
- component_sidebar
depended_by: []
page_recordings:
type: page
layer: 4
depends_on:
- api_list_recordings
- component_header
- component_recording_list
- component_recording_card
- component_sidebar
depended_by: []
page_recording_detail:
type: page
layer: 4
depends_on:
- component_transcript_viewer
- component_summary_display
- api_get_recording
- component_audio_player
- component_header
- component_sidebar
depended_by: []
page_apps:
type: page
layer: 5
depends_on:
- api_list_apps
- component_app_card
- component_app_gallery
- component_header
- component_sidebar
depended_by: []
page_app_detail:
type: page
layer: 5
depends_on:
- component_header
- component_app_iframe_viewer
- api_get_app
- component_sidebar
depended_by: []
component_header:
type: component
layer: 1
depends_on: []
depended_by:
- page_app_detail
- page_home
- page_apps
- page_recordings
- page_recording_detail
- page_dashboard
component_sidebar:
type: component
layer: 1
depends_on: []
depended_by:
- page_app_detail
- page_apps
- page_recordings
- page_recording_detail
- page_dashboard
component_hero:
type: component
layer: 1
depends_on: []
depended_by:
- page_home
component_features:
type: component
layer: 1
depends_on: []
depended_by:
- page_home
component_login_form:
type: component
layer: 3
depends_on:
- api_login_user
depended_by:
- page_login
component_register_form:
type: component
layer: 3
depends_on:
- api_register_user
depended_by:
- page_register
component_record_button:
type: component
layer: 1
depends_on: []
depended_by:
- page_dashboard
component_wake_word_indicator:
type: component
layer: 1
depends_on: []
depended_by:
- page_dashboard
component_recording_list:
type: component
layer: 2
depends_on:
- component_recording_card
depended_by:
- page_dashboard
- page_recordings
component_recording_card:
type: component
layer: 1
depends_on: []
depended_by:
- component_recording_list
- page_recordings
component_audio_player:
type: component
layer: 1
depends_on: []
depended_by:
- page_recording_detail
component_transcript_viewer:
type: component
layer: 1
depends_on: []
depended_by:
- page_recording_detail
component_summary_display:
type: component
layer: 1
depends_on: []
depended_by:
- page_recording_detail
component_app_gallery:
type: component
layer: 2
depends_on:
- component_app_card
depended_by:
- page_apps
component_app_card:
type: component
layer: 1
depends_on: []
depended_by:
- page_apps
- component_app_gallery
component_app_iframe_viewer:
type: component
layer: 1
depends_on: []
depended_by:
- page_app_detail
task_map: []