Skip to content

feat: interactive org chart with department/team CRUD and detail pages #674

@Aureliolo

Description

@Aureliolo

Summary

Make the org chart a fully interactive management interface for the company's organizational structure. Currently the org chart is read-only and renders an empty canvas when no departments exist (fix in progress on fix/fix-org-chart). This issue covers the full interactive experience.

Scope

Backend -- Department/Team CRUD endpoints

The DepartmentController is currently read-only (list_departments, get_department). Add:

  • POST /departments -- create department
  • PUT /departments/{name} -- update department (rename, change head, budget_percent, policies)
  • DELETE /departments/{name} -- delete department (with validation: no orphaned agents)
  • POST /departments/{name}/teams -- add team to department
  • PUT /departments/{name}/teams/{team_name} -- update team (rename, change lead)
  • DELETE /departments/{name}/teams/{team_name} -- remove team (with member reassignment)

Frontend -- Detail pages

  • Department detail page (/org-chart/departments/:name) -- shows department info, teams, head, budget allocation, reporting lines, policies
  • Team detail page (/org-chart/departments/:deptName/teams/:teamName) -- shows team info, lead, members with status

Frontend -- Org chart interactivity

  • Context menu on right-click for all node types (department: edit/delete/add team; team: edit/delete/add member; agent: view profile/reassign)
  • Double-click to open detail page
  • Click navigates to detail page (department detail, team detail, or agent profile)
  • "Add Department" button in PageHeader actions slot
  • Drag-and-drop to reassign agents between teams (stretch goal)

Frontend -- Agents page department filtering

  • Add department filter to AgentProfilesPage (query param ?department=engineering)
  • Org chart department/team click navigates to filtered agents view until detail pages exist

Related

Design Spec Reference

  • Organization page: docs/design/organization.md
  • Operations page (dashboard): docs/design/operations.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    prio:mediumShould do, but not blockingscope:large3+ days of workspec:human-interactionDESIGN_SPEC Section 13 - Human Interaction Layertype:featureNew feature implementationv0.5Minor version v0.5v0.5.1Patch release v0.5.1

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions