371 lines
8.6 KiB
YAML
371 lines
8.6 KiB
YAML
dependency_graph:
|
|
design_version: 2
|
|
workflow_version: v003
|
|
generated_at: '2025-12-18T17:43:33.701270'
|
|
generator: validate_design.py
|
|
stats:
|
|
total_entities: 21
|
|
total_layers: 4
|
|
max_parallelism: 9
|
|
critical_path_length: 4
|
|
layers:
|
|
- layer: 1
|
|
name: Data Layer
|
|
description: Database models - no external dependencies
|
|
items:
|
|
- id: api_get_label_stats
|
|
type: api
|
|
name: Get label statistics
|
|
depends_on: []
|
|
task_id: task_create_api_get_label_stats
|
|
agent: backend
|
|
complexity: medium
|
|
- id: api_remove_artist_from_label
|
|
type: api
|
|
name: Remove artist from label
|
|
depends_on: []
|
|
task_id: task_create_api_remove_artist_from_label
|
|
agent: backend
|
|
complexity: medium
|
|
- id: api_update_label
|
|
type: api
|
|
name: Update label profile
|
|
depends_on: []
|
|
task_id: task_create_api_update_label
|
|
agent: backend
|
|
complexity: medium
|
|
- id: component_artist_roster
|
|
type: component
|
|
name: ArtistRoster
|
|
depends_on: []
|
|
task_id: task_create_component_artist_roster
|
|
agent: frontend
|
|
complexity: medium
|
|
- id: component_invitation_card
|
|
type: component
|
|
name: InvitationCard
|
|
depends_on: []
|
|
task_id: task_create_component_invitation_card
|
|
agent: frontend
|
|
complexity: medium
|
|
- id: component_label_card
|
|
type: component
|
|
name: LabelCard
|
|
depends_on: []
|
|
task_id: task_create_component_label_card
|
|
agent: frontend
|
|
complexity: medium
|
|
- id: component_label_header
|
|
type: component
|
|
name: LabelHeader
|
|
depends_on: []
|
|
task_id: task_create_component_label_header
|
|
agent: frontend
|
|
complexity: medium
|
|
- id: component_label_stats
|
|
type: component
|
|
name: LabelStats
|
|
depends_on: []
|
|
task_id: task_create_component_label_stats
|
|
agent: frontend
|
|
complexity: medium
|
|
- id: model_label_invitation
|
|
type: model
|
|
name: LabelInvitation
|
|
depends_on: []
|
|
task_id: task_create_model_label_invitation
|
|
agent: backend
|
|
complexity: medium
|
|
requires_layers: []
|
|
parallel_count: 9
|
|
- layer: 2
|
|
name: API Layer
|
|
description: REST endpoints - depend on models
|
|
items:
|
|
- id: api_create_label_invitation
|
|
type: api
|
|
name: Create artist invitation
|
|
depends_on:
|
|
- model_label_invitation
|
|
task_id: task_create_api_create_label_invitation
|
|
agent: backend
|
|
complexity: medium
|
|
- id: api_delete_label_invitation
|
|
type: api
|
|
name: Cancel invitation
|
|
depends_on:
|
|
- model_label_invitation
|
|
task_id: task_create_api_delete_label_invitation
|
|
agent: backend
|
|
complexity: medium
|
|
- id: api_get_label
|
|
type: api
|
|
name: Get label details
|
|
depends_on:
|
|
- model_label_invitation
|
|
task_id: task_create_api_get_label
|
|
agent: backend
|
|
complexity: medium
|
|
- id: api_list_artist_invitations
|
|
type: api
|
|
name: List artist invitations
|
|
depends_on:
|
|
- model_label_invitation
|
|
task_id: task_create_api_list_artist_invitations
|
|
agent: backend
|
|
complexity: medium
|
|
- id: api_list_label_invitations
|
|
type: api
|
|
name: List label invitations
|
|
depends_on:
|
|
- model_label_invitation
|
|
task_id: task_create_api_list_label_invitations
|
|
agent: backend
|
|
complexity: medium
|
|
- id: api_respond_to_invitation
|
|
type: api
|
|
name: Respond to invitation
|
|
depends_on:
|
|
- model_label_invitation
|
|
task_id: task_create_api_respond_to_invitation
|
|
agent: backend
|
|
complexity: medium
|
|
- id: component_label_profile_form
|
|
type: component
|
|
name: LabelProfileForm
|
|
depends_on:
|
|
- api_update_label
|
|
task_id: task_create_component_label_profile_form
|
|
agent: frontend
|
|
complexity: medium
|
|
requires_layers:
|
|
- 1
|
|
parallel_count: 7
|
|
- layer: 3
|
|
name: UI Layer
|
|
description: Pages and components - depend on APIs
|
|
items:
|
|
- id: component_invite_artist_modal
|
|
type: component
|
|
name: InviteArtistModal
|
|
depends_on:
|
|
- api_create_label_invitation
|
|
task_id: task_create_component_invite_artist_modal
|
|
agent: frontend
|
|
complexity: medium
|
|
- id: page_label_profile
|
|
type: page
|
|
name: Label Profile
|
|
depends_on:
|
|
- api_get_label
|
|
- component_label_stats
|
|
- component_label_header
|
|
- api_get_label_stats
|
|
- component_artist_roster
|
|
task_id: task_create_page_label_profile
|
|
agent: frontend
|
|
complexity: medium
|
|
- id: page_label_settings
|
|
type: page
|
|
name: Label Settings
|
|
depends_on:
|
|
- component_label_profile_form
|
|
- api_get_label
|
|
task_id: task_create_page_label_settings
|
|
agent: frontend
|
|
complexity: medium
|
|
requires_layers:
|
|
- 1
|
|
- 2
|
|
parallel_count: 3
|
|
- layer: 4
|
|
name: Layer 4
|
|
description: Entities with 3 levels of dependencies
|
|
items:
|
|
- id: page_label_dashboard
|
|
type: page
|
|
name: Label Dashboard
|
|
depends_on:
|
|
- api_get_label
|
|
- component_invitation_card
|
|
- component_label_stats
|
|
- api_list_label_invitations
|
|
- component_invite_artist_modal
|
|
- api_get_label_stats
|
|
- component_artist_roster
|
|
task_id: task_create_page_label_dashboard
|
|
agent: frontend
|
|
complexity: medium
|
|
- id: page_label_invitations
|
|
type: page
|
|
name: Label Invitations
|
|
depends_on:
|
|
- component_invitation_card
|
|
- api_list_label_invitations
|
|
- component_invite_artist_modal
|
|
task_id: task_create_page_label_invitations
|
|
agent: frontend
|
|
complexity: medium
|
|
requires_layers:
|
|
- 1
|
|
- 2
|
|
- 3
|
|
parallel_count: 2
|
|
dependency_map:
|
|
model_label_invitation:
|
|
type: model
|
|
layer: 1
|
|
depends_on: []
|
|
depended_by:
|
|
- api_get_label
|
|
- api_create_label_invitation
|
|
- api_delete_label_invitation
|
|
- api_respond_to_invitation
|
|
- api_list_artist_invitations
|
|
- api_list_label_invitations
|
|
api_get_label:
|
|
type: api
|
|
layer: 2
|
|
depends_on:
|
|
- model_label_invitation
|
|
depended_by:
|
|
- page_label_profile
|
|
- page_label_settings
|
|
- page_label_dashboard
|
|
api_update_label:
|
|
type: api
|
|
layer: 1
|
|
depends_on: []
|
|
depended_by:
|
|
- component_label_profile_form
|
|
api_get_label_stats:
|
|
type: api
|
|
layer: 1
|
|
depends_on: []
|
|
depended_by:
|
|
- page_label_profile
|
|
- page_label_dashboard
|
|
api_list_label_invitations:
|
|
type: api
|
|
layer: 2
|
|
depends_on:
|
|
- model_label_invitation
|
|
depended_by:
|
|
- page_label_invitations
|
|
- page_label_dashboard
|
|
api_create_label_invitation:
|
|
type: api
|
|
layer: 2
|
|
depends_on:
|
|
- model_label_invitation
|
|
depended_by:
|
|
- component_invite_artist_modal
|
|
api_delete_label_invitation:
|
|
type: api
|
|
layer: 2
|
|
depends_on:
|
|
- model_label_invitation
|
|
depended_by: []
|
|
api_list_artist_invitations:
|
|
type: api
|
|
layer: 2
|
|
depends_on:
|
|
- model_label_invitation
|
|
depended_by: []
|
|
api_respond_to_invitation:
|
|
type: api
|
|
layer: 2
|
|
depends_on:
|
|
- model_label_invitation
|
|
depended_by: []
|
|
api_remove_artist_from_label:
|
|
type: api
|
|
layer: 1
|
|
depends_on: []
|
|
depended_by: []
|
|
page_label_profile:
|
|
type: page
|
|
layer: 3
|
|
depends_on:
|
|
- api_get_label
|
|
- component_label_stats
|
|
- component_label_header
|
|
- api_get_label_stats
|
|
- component_artist_roster
|
|
depended_by: []
|
|
page_label_dashboard:
|
|
type: page
|
|
layer: 4
|
|
depends_on:
|
|
- api_get_label
|
|
- component_invitation_card
|
|
- component_label_stats
|
|
- api_list_label_invitations
|
|
- component_invite_artist_modal
|
|
- api_get_label_stats
|
|
- component_artist_roster
|
|
depended_by: []
|
|
page_label_settings:
|
|
type: page
|
|
layer: 3
|
|
depends_on:
|
|
- component_label_profile_form
|
|
- api_get_label
|
|
depended_by: []
|
|
page_label_invitations:
|
|
type: page
|
|
layer: 4
|
|
depends_on:
|
|
- component_invitation_card
|
|
- api_list_label_invitations
|
|
- component_invite_artist_modal
|
|
depended_by: []
|
|
component_label_card:
|
|
type: component
|
|
layer: 1
|
|
depends_on: []
|
|
depended_by: []
|
|
component_label_header:
|
|
type: component
|
|
layer: 1
|
|
depends_on: []
|
|
depended_by:
|
|
- page_label_profile
|
|
component_label_stats:
|
|
type: component
|
|
layer: 1
|
|
depends_on: []
|
|
depended_by:
|
|
- page_label_profile
|
|
- page_label_dashboard
|
|
component_artist_roster:
|
|
type: component
|
|
layer: 1
|
|
depends_on: []
|
|
depended_by:
|
|
- page_label_profile
|
|
- page_label_dashboard
|
|
component_invitation_card:
|
|
type: component
|
|
layer: 1
|
|
depends_on: []
|
|
depended_by:
|
|
- page_label_invitations
|
|
- page_label_dashboard
|
|
component_invite_artist_modal:
|
|
type: component
|
|
layer: 3
|
|
depends_on:
|
|
- api_create_label_invitation
|
|
depended_by:
|
|
- page_label_invitations
|
|
- page_label_dashboard
|
|
component_label_profile_form:
|
|
type: component
|
|
layer: 2
|
|
depends_on:
|
|
- api_update_label
|
|
depended_by:
|
|
- page_label_settings
|
|
task_map: []
|