microsoft/org-chart
Display a beautifully formatted ASCII org chart for any person in the organization — showing their manager, peers, and direct reports in a visual tree.
npx skills add https://github.com/microsoft/work-iq --skill org-chart
Render a visual ASCII org chart for any person in the organization. Shows the target person in context — their manager above, their peers alongside, and their direct reports below — in a clear tree layout that fits the terminal.
workiq-ask (
question: "What is my profile information including display name, email, job title, and department?"
)
Extract displayName, email, and jobTitle.
If the user says "my org chart" or "me", the target is the current user from Step 1.
Otherwise, look up the named person:
workiq-ask (
question: "Look up the person named <name or email> in the company directory. Return their display name, email, job title, department, and office location."
)
If the response indicates multiple matches, present the options and ask the user to pick.
3a. Get the target's manager and direct reports:
workiq-ask (
question: "Who is <target name>'s manager? Include their display name, email, job title, and department."
)
workiq-ask (
question: "Who are <target name>'s direct reports? For each person include their display name, email, job title, and department."
)
3b. Walk the full management chain to the root:
After getting the target's manager, recursively ask about each manager's manager until you reach the top of the org:
workiq-ask (
question: "Who is <current manager name>'s manager? Include their display name, email, job title, and department."
)
Continue until ask indicates there is no manager (meaning you've reached the org root).
Store the entire chain as an ordered list: [target, manager, manager's manager, …, org root].
Important performance note: Each iteration depends on the previous result, so these calls must be sequential. However, the first manager call (3a) and the direct reports call can run in parallel.
Alternative — full chain in one call: You can attempt to retrieve the entire chain at once:
workiq-ask (
question: "What is the full management chain for <target name> all the way up to the CEO? List each person in order from their direct manager to the top, including name, title, and email for each."
)
If the response is complete, skip the recursive loop. If it is truncated or incomplete, fall back to the step-by-step approach above.
Filter out non‑primary accounts from the direct reports list:
Categorize each direct report by role type for grouping:
| Pattern in jobTitle | Category | Icon |
|---|---|---|
| Contains "Manager" or "Lead" | 👔 Manager | Shown with count of their reports if known |
| Contains "Principal" or "Senior" or "Staff" | 🔧 Senior IC | |
| Everything else | 💻 IC | |
Use these abbreviations to keep boxes compact:
| Full Title | Short |
|---|---|
| Principal Software Engineer | Prin SWE |
| Senior Software Engineer | Sr SWE |
| Software Engineer | SWE |
| Software Engineering Manager | SW Eng Mgr |
| Principal Software Engineering Manager | Prin SW Eng Mgr |
| Partner Group Software Engineering Manager | Partner Grp SW Eng Mgr |
| Vice President of Engineering | VP Eng |
| Group Engineering Manager | Grp Eng Mgr |
| Program Manager | PM |
| Senior Program Manager | Sr PM |
| Principal Program Manager | Prin PM |
For titles not in this list, abbreviate by removing common words ("of", "the") and shortening ("Software" → "SW", "Engineering" → "Eng", "Manager" → "Mgr").
🏛️ ORG CHART
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
👤 Firstname1 Lastname1 (CEO)
│
👤 Firstname2 Lastname2 (EVP, Products)
│
👤 Firstname3 Lastname3 (CVP, Collaboration)
│
┌──────────────────────────────┐
│ Firstname4 Lastname4 │
│ VP Eng │
│ [email protected] │
└──────────────┬───────────────┘
│
┌──────────────┴──────────────┐
│ ⭐ Firstname5 Lastname5 │
│ Engineering Manager │
│ [email protected] │
└──────────────┬──────────────┘
│
┌────────────┬────────────┼────────────┐
│ │ │ │
┌────┴────┐ ┌────┴────┐ ┌────┴────┐ ┌────┴────┐
│ First6 │ │ First7 │ │ First8 │ │ First9 │
│ Sr SWE │ │ SWE II │ │ SWE │ │ QA Eng │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
👔 Managers (0) · 🔧 Senior ICs (1) · 💻 ICs (3)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Firstname5 Lastname5 has 4 direct reports
Chain: CEO → Firstname2 Lastname2 → Firstname3 Lastname3 → Firstname4 Lastname4 → ⭐ Firstname5 Lastname5
📧 [email protected]
The ancestors above the direct manager use a compact single‑line format: 👤 Name (Abbreviated Title) connected by │ lines. This keeps the chart readable even with deep hierarchies. Only the direct manager and the target get full box treatment.
When there are more than 6 direct reports, switch to a compact list layout below the tree:
🏛️ ORG CHART
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
👤 Firstname1 Lastname1 (CEO)
│
👤 Firstname2 Lastname2 (EVP)
│
┌─────────────────────────────┐
│ Firstname7 Lastname7 │
│ VP Eng │
└──────────────┬──────────────┘
│
┌──────────────┴──────────────┐
│ ⭐ Firstname8 Lastname8 │
│ Partner Grp SW Eng Mgr │
└──────────────┬──────────────┘
│
┌──────┬──────┬────┴────┬──────┬──────┬──────┐
│ │ │ │ │ │ │
👔 MANAGERS (3)
# Name Title Email
1 Firstname10 Lastname10 Prin SW Eng Mgr [email protected]
2 Firstname11 Lastname11 Prin SW Eng Mgr [email protected]
3 Firstname12 Lastname12 SW Eng Mgr [email protected]
🔧 SENIOR ICs (4)
# Name Title Email
4 Firstname13 Lastname13 Prin SWE [email protected]
5 Firstname14 Lastname14 Prin SWE [email protected]
6 Firstname15 Lastname15 Prin SWE [email protected]
7 Firstname16 Lastname16 Prin SW Eng Mgr [email protected]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Firstname8 Lastname8 has 7 direct reports
Chain: CEO → Firstname2 Lastname2 → Firstname7 Lastname7 → ⭐ Firstname8 Lastname8
📧 [email protected]
Always end with a summary that includes the full reporting chain:
📊 {Name} reports to {Manager Name} ({Manager Title}) and has {N} direct reports — {M} managers, {K} ICs.
Chain: {Org Root} → … → {Manager} → ⭐ {Name}
| Parameter | Required | Default | Description |
|-----------|----------|---------|-------------|
| Person | No | Current user ("me") | Name, email, or "me" for the target person |
| Depth Down | No | 1 level | How many levels of direct reports to show below the target |
Note: The upward chain always walks to the org root — there is no depth limit going up.
| MCP Server | Tool | Purpose |
|---|---|---|
| workiq (Local WorkIQ CLI) | ask | User identity, person lookup, manager chain traversal, and direct reports retrieval |
User: Show me my org chart
Result: Fetches your identity via ask, walks the full management chain to the CEO, and renders a tree with your manager above and all your direct reports below — grouped by managers, senior ICs, and ICs.
User: Draw the org chart for Firstname8 Lastname8
Result: Resolves Firstname8 via ask, fetches their manager and direct reports in parallel, walks the chain up to the org root, and renders a wide org chart with a compact list layout (since they have 7 direct reports).
User: Show the org chart for Firstname5
Result: ask returns multiple matches (e.g., Firstname5 Lastname5, Firstname5 Lastname17, Firstname5 Lastname18). Claude prompts:
I found multiple people named Firstname5. Which one did you mean?
1. Firstname5 Lastname5 — Engineering Manager, Platform Team
2. Firstname5 Lastname17 — Senior Software Engineer, Security
3. Firstname5 Lastname18 — Program Manager, Growth
Once the user selects, the full org chart is rendered for the chosen person.
If ask returns no result for the given name or email:
When ask indicates there is no manager for a person, treat that person as the org root — this is expected behavior and not an error. Render them at the top of the chain without a manager box.
If ask indicates the person has no direct reports, render the chart without the branch lines below the target. Include a note:
📊 Firstname5 Lastname5 has 0 direct reports.
If ask returns multiple matches for a name, narrow the prompt:
If ask is not accessible or returns a connection error:
If the management chain exceeds 10 levels, stop recursing and display a truncation indicator at the top:
👤 … (chain truncated above 10 levels)
│
👤 {deepest fetched ancestor}
This prevents excessive sequential ask calls for unusually deep org structures.
Take microsoft/org-chart from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.