Create a company org chart and responsibility map
Turn a team roster into a verified reporting structure, role directory and responsibility map. Make gaps and shared responsibilities visible without inventing reporting lines.
How this works
An org chart answers who reports to whom; a responsibility map answers who owns a decision or outcome. Build both from the same verified position register, but do not confuse a manager, a project lead and a process owner. Preserve those relationships as separate types so the chart does not imply authority that has not been agreed.
Start with a dated snapshot for a defined entity or team. Use stable position IDs even when a position is vacant or a person covers several roles. The AI helps normalize role descriptions, locate contradictory evidence and prepare diagrams. The organization owner resolves reporting disputes; the agent does not infer hierarchy from senior-sounding titles, email frequency or salary.
Before you start
Scope and audience
Confirm which entity, departments, contractors and vacant positions belong in the snapshot. Decide whether the shared version uses role labels or approved employee display names.
Relationship authority
Identify the owner of reporting-line decisions and the current authoritative roster. Keep informal interview notes as corroboration until confirmed.
Diagram destination
Use an available diagram or document tool. If none exists, deliver a Mermaid source file and a CSV position register that can be opened independently.
Prepare the inputs
- snapshot_date
- Required
ISO date
Use one effective date across the roster and diagram; flag future changes separately.
- positions
- Required
Rows: position_id, role, team_id, occupied_or_vacant, effective_from, effective_to
Position IDs are unique; vacancies are explicit; effective dates do not conflict.
- assignment
- Optional / conditional
position_id, optional person_id, allocation if known
Never invent a person or allocation. Multiple roles for one person remain separate positions.
- reporting_edges
- Required
child_position_id, parent_position_id, relationship_type, source_ref
Both endpoints exist. Primary reporting edges have at most one parent unless an approved alternative governance model is documented.
- responsibilities
- Optional / conditional
process_or_decision, accountable_position_id, supporting_position_ids
Distinguish accountable ownership from contribution; unresolved accountability stays unassigned.
- evidence
- Required
source ID, version or date, confirming owner role
Each confirmed reporting edge can be traced to an authorized record or owner confirmation.
Implementation, step by step
Fix the snapshot boundary
- Record the effective date, entity and audience in a short scope note. Keep proposed future structures in a separate view.
- Inspect available files and tools. Work from authorized exports if a live HR connector is unavailable; do not request broad access just to draw the chart.
Checkpoint: A scope note identifies the population, exclusions and confirming owner.
Build the position register
- Normalize department and role spellings while preserving source labels and stable IDs. Store occupant details separately from the position structure.
- Identify duplicate rows, vacancies, temporary coverage and people holding multiple roles. Keep ambiguous matches in an exception table instead of merging by name alone.
Checkpoint: Every included position has one row, a status and a source reference.
Validate reporting relationships
- Separate primary reporting, dotted-line functional relationships and project coordination. Check self-links, missing parents, loops and disconnected components programmatically when possible.
- For each position with conflicting parents, retain both claims and their dates. Present a focused question to the organization owner; do not choose whichever source was found first.
Checkpoint: The primary hierarchy has no unexplained cycles or duplicate parents; unresolved links are explicitly excluded from confirmed edges.
Map responsibility owners
- Summarize each role's purpose, recurring decisions, outputs and interfaces from approved descriptions. Keep descriptive responsibilities separate from proposed improvements.
- For each critical process, identify its accountable role and supporting roles. Flag no owner or multiple competing owners; do not allocate accountability solely to fill a blank.
Checkpoint: A responsibility table links processes to positions and preserves open ownership questions.
Render and inspect the chart
- Render stable position IDs as nodes and role labels as display text. Use a legend for primary, dotted-line and vacancy styling; keep dense departmental views separate when needed.
- Compare rendered nodes and edges with the register. Check that labels are readable, no team disappeared and the export matches the snapshot date. Escape labels before generating diagram syntax.
Checkpoint: The diagram and its editable source agree with the validated position and edge tables.
Review and maintain the snapshot
- Give the owner a diff of disputed lines, vacant roles and changed responsibilities. Apply confirmed corrections and preserve the previous version.
- Deliver the approved or explicitly draft snapshot with its owner, last review date and update trigger. Share externally only within the user's existing authorization; preparation alone is not permission to distribute employee information.
Checkpoint: The output is labeled draft or approved, has an update owner and lists remaining exceptions.
Decisions along the way
A project lead coordinates someone but is not their line manager
Add a separate coordination relationship; keep the primary reporting line unchanged.
One employee fills two positions
Retain two position nodes linked to the same internal occupant ID. Avoid double-counting that person in any optional headcount total.
The organization has legitimate multiple top-level leaders
Use an explicitly labeled multi-root view or a non-person entity node; never invent a chief executive to force a tree.
An edge creates a cycle
Isolate the conflicting edge and request an owner decision. Do not silently delete the relationship to produce a prettier diagram.
What you will produce
positions.csv
CSVEditable position directory; occupant fields can be omitted from the broadly shared version.
Include: position_id · role · team_id · status · occupant_id_if_authorized · effective_date · source_ref
org-chart.mmd
Mermaid plus rendered diagram if supportedHuman-readable chart with a maintained source. Rendered export is optional when no renderer is available.
Include: stable nodes · typed edges · legend · snapshot date
responsibility-map.csv
CSVA process ownership view that complements reporting lines.
Include: process · accountable_position · supporting_positions · decision_boundary · confirmation_status
structure-review.md
MarkdownReview note and change record, including any assumptions that remain unconfirmed.
Include: scope · unresolved relationships · owner questions · review status · maintenance owner
Check the result
- Reconcile included position count to the filtered source roster, explaining every excluded or duplicated row.
- Check every edge endpoint, detect self-reporting and cycles, and confirm any intentional multiple-root structure.
- Verify the diagram's vacancy and dotted-line legend against actual edge types; do not use one line style for different authority relationships.
- Check each critical responsibility against a confirmed owner or an explicit unresolved flag.
- Inspect the actual rendered diagram for clipped labels and missing nodes; validate the source file even if rendering is unavailable.
- Review the intended audience against the displayed personal fields and remove unneeded private attributes.
When something goes wrong
The roster and manager interview disagree
Show both dated claims in the review note and retain the last confirmed relationship, labeled with its date, until resolved.
Two teams reuse a role label
Use separate stable position IDs and include the team in display labels. Do not merge on the role title.
A diagram renderer fails on a label
Escape syntax characters, validate a small affected subgraph and retain the editable tables. Report an unavailable rendered export rather than claiming success.
A worked example
SYNTHETIC EXAMPLE · NOT A REPORTED BUSINESS RESULT
Request
Create a role-based chart for a small delivery team and show who owns client onboarding.
Inputs
Synthetic snapshot: P01 company lead; P02 delivery lead reports to P01; P03 consultant reports to P02; P04 vacant coordinator reports to P02. P03 supports onboarding, but no approved accountable owner is supplied.
Expected result
Render four position nodes and three primary edges: P02→P01, P03→P02 and P04→P02. Mark P04 vacant. In the responsibility map, onboarding support is P03, accountable owner is unresolved, and the question goes to P02 for confirmation. Do not promote P03 to accountable owner by inference.
Run a small pilot
Start small
Build one department's current snapshot before combining the entire organization.
Record the baseline
Record how long it takes today to identify a reporting line and the owner of several recurring decisions.
Agree success criteria
Agree on acceptable unresolved-edge and responsibility-coverage levels with the owner; compare lookup and update effort after review.
Stop or revise
Pause wider sharing if disputed authority is shown as confirmed or restricted employee fields appear in the intended public view.
Keep the scope clear
- This skill documents confirmed structure; it does not decide promotions, staffing reductions or changes to reporting authority.
- Use role labels in synthetic or public examples. Handle actual employee identifiers only within the user's authorized workspace and audience.
- Do not send the chart or update an HR system unless that action and destination are within the user's request.
Check before using
The organization owner confirms reporting lines and access before the chart is shared.
Business activities
- Review business performance
- Support and develop employees
- Maintain shared company knowledge
FROM A RECIPE TO YOUR WORKFLOW
Bring the company context together.
This workflow needs reliable inputs before it needs a better prompt. Moat8 Vault brings working information into a readable archive for the AI tools you use.
For this recipe: Current team roster · Confirmed reporting relationships · Role responsibilities · Snapshot date and audience
Start with one recurring task, agree which sources to use, and review the first result with your team.
Discuss this workflow