# Run a company through DutyGraph

This guide is for a new advisor or forward-deployed engineer (FDE). It follows 1 company from its website to an agent with governed access, in 9 steps. You can do most of it from a phone. Each step has 3 parts: **What you do**, **What happens behind the scenes** and **On your phone**. A "Where it stands today" note ends each step. It says what works now and what is Planned.

Status, October 14, 2026: written against `matt/dev`, and updated the same day for governance setup, the agent plan page, the hours ranges and AI-fit proposals, phone notifications and **Share…**. "Planned" means not built. Do not show a Planned item to a client as available.

## At a glance

| Step | Where in the app | Status today |
| --- | --- | --- |
| 1. Add the company and research it | Home › **Add a company** (Companies › Add account) › **Research <company> now** › Overview and Repo | Works |
| 2. Build the sponsor packet | Overview or Discovery › **Prepare first touch** › the composer (`#discovery/compose/first-touch`) | Works |
| 3. Send it and get the answers back | Composer › **Send batch** or **Create a private link** › **Share…** › Inbox › the returned package | Works. The notice to you is email (Resend) and, when the server has push keys, a phone notification |
| 4. Plan and schedule the kickoff | **Prepare meeting agenda** › **Approve agenda** › **Schedule and invite** | Works. Schedule means a calendar file (.ics). A calendar connection is Planned |
| 5. Bring the kickoff transcript in | Discovery › **Understand the business, together** › **Transcript or additional notes** | Partial: paste only. Needs OpenAI |
| 6. Send asks to each person | **Make team questions** › Discovery › Asks › **Review and send** (or **Create links for all**) | Works. The loose map needs an approved AI |
| 7. Find AI opportunities | Opportunities › **Your team** and **Proposed agents**; Repo › **To review** for the proposals | Partial: hours and proposals need no AI; you accept each proposal. Predicted hours only on the samples |
| 8. Turn an opportunity into a governed agent | Agents › Rules › **Set up governance** (once) › **Open draft** › Agents builder › **Governed access** › Agents › Requests, Review queue, Issued agents, Audit | Works for any company after Set up. The Wesco sample is ready to run |
| 9. Show the person their agent plan | Agents builder › **Share the plan with <person>** › the private plan page (`/plan/<token>`) | Works, private link only |

## Before you start

1. Open **Settings › Research & AI keys**. Save the keys you have: OpenAI, Anthropic (Claude), Exa and Resend. Select **Test** on each key.
2. Research needs a research source: an Exa key, or a source that your operator set up on the server. Home shows **Connect research** until one exists.
3. Email needs Resend. Without it, DutyGraph gives you a private link to send from your own mailbox. Home shows **Set up email** until it is set up.
4. A saved key does not apply to a company by itself. For each company, open **Settings › Connections** and select **Approve firm key for this company**. Do this right after step 1.
5. Optional, on your phone: open **Settings › Workspace › Phone notifications** and select **Turn on notifications on this phone**. On an iPhone, first add DutyGraph to your Home Screen (iOS 16.4 or later) and open it from there. The server operator must set the push keys first; without them the panel says "Not set up on the server".

Why the company approval matters: without an approved AI, the answer pages do not polish what people say, the Repo does not read answers into facts and hours, and the Copilot does not answer. Company Research, the first touch, the kickoff and the team questions work without AI.

## Step 1. Add the company and research it

### What you do

1. On **Home**, select **Add a company**. It opens **Companies › Add account**. The **Add a company** item in the company switcher opens the same dialog.
2. Choose a tab. For a company you already work with, choose **Already engaged in DutyGraph**. Choose the activation method and write 1 line in **Why is it active?**. For a prospect, choose **From your book of business**.
3. Enter the company name, the website, the contact's name and title, and the contact's work email. Select **Add account**.
4. Select **Research <company> now**. If you closed the dialog, open the account in **Companies** and select **Run company research** on its Research tab.
5. When the run ends, select **Open company workspace**. Read the Overview (the Company Snapshot), then open **Repo**.

A prospect's sidebar shows only Overview, Repo and Reports. Discovery and the Work Map open when the engagement is active. Record the commitment in **Settings › Company account**.

### What happens behind the scenes

- DutyGraph creates an account, a contact and an engagement for the company.
- The research run reads public sources about the company. Each finding keeps its source and its state. A finding from research is **Inferred** until a person at the company confirms it.
- From the findings, code proposes a **company shape**: the kind of business, the departments and the main processes.
- The Repo is built from the stored records each time you open it. It uses the same folders for every company (company, departments, roles, people, duties, tasks, flows, systems, policies and more). Department files from the shape show as **Proposed** until you accept the structure.
- If research finds nothing, the Overview says "Research ran but found no facts". DutyGraph does not invent a value.
- A run with the simulated provider says "Simulated (not real data)". It is not real research.

### On your phone

The dialog, the account drawer, the Overview and the Repo all work on a phone. The Overview opens on a row of quick actions: **Ask Copilot**, the section jumps, **Work Map**, **Opportunities** and **Send an ask**. In the Repo, Files is a list. A file opens full screen with a back bar.

> **Where it stands today.** Works. The Repo folders are the same for every company. Only the department and process files change with the company shape, and they stay Proposed until you accept them. A single "add and research" button for an FDE engagement is Planned.

## Step 2. Build the sponsor packet

### What you do

1. On the Overview or on Discovery › Plan, select **Prepare first touch for <name>**. If it opens the Plan, select it again on the current step to open the composer (`#discovery/compose/first-touch`).
2. Read the sponsor packet: what the sponsor is asked to do. They check the company picture, answer the research gaps, upload the team list, choose the kickoff attendees, confirm the scope and add documents.
3. Edit the questions and the email wording. Remove a question that does not apply.
4. Select **Save draft**. The preview opens: the email and the answer page, on desktop and on mobile.

### What happens behind the scenes

- DutyGraph saves the ask as a draft. Nothing is sent until you send it.
- The sponsor's answer page is a private link. It opens without an account.

What the sponsor sees on the private page, 1 screen at a time:

1. **Start with voice** or **Type instead**.
2. **Is this right?**: the role, the headcount, the goals and the company facts from research. The sponsor corrects them.
3. The questions, 1 for each screen. The sponsor can say **I do not know yet** or **Someone else should answer**.
4. **Who works here?**: upload a CSV, paste a list or add people by hand. The CSV columns are `name,email,role,department,manager_email`. A template is on the page. Each person has an **Executive kickoff** tick and a **Pilot discovery** tick. The sponsor is ticked for the kickoff.
5. **Anything else?**, then **Here's what we heard**, then the consent tick and **Send to <advisor>**.

The page saves a draft as the sponsor goes. If they close it, the answers and the team list stay.

**Here's what we heard** polishes the sponsor's words only when the company has an approved AI. Without one, the page shows the answers as the sponsor gave them. DutyGraph always keeps the sponsor's own words. The polished text is the version the sponsor confirms.

### On your phone

The composer and the preview work on a phone. The sponsor's page is built for a phone first.

> **Where it stands today.** Works. A second way to prepare the same packet is the workbench card further down Discovery. Use the composer.

## Step 3. Send it and get the answers back

### What you do

1. In the composer, select **Send batch** when email is set up.
2. Without email, select **Create a private link** for the sponsor. DutyGraph shows the link once. Select **Share…** to send it from your phone's share sheet (Messages, WhatsApp, Mail and others), or **Copy** and send it from your own mail. Where the browser has no share sheet, **Share…** offers **Copy link**, **Email** and **Text message**.
3. When the sponsor sends the packet back, the **Inbox** shows "<name> sent the answers back". Select it. The returned package opens in Discovery (`#discovery/kickoff/<id>`).
4. Read the answers and the corrections. Select **Confirm roster & populate org chart** to import the team list. The people then show in **Work Map › People**.

If a link is lost, open Discovery › **Asks**, open the ask and select **Create a new private link**. The old link stops working.

### What happens behind the scenes

- The send records the ask and the private link. A private link works only for its own ask.
- The sponsor's answers are stored as 1 answer record, with the team list, the attendee and pilot choices, and the documents.
- When the answer arrives, DutyGraph writes an advisor notification in the same step. It sends an email to you through the workspace Resend settings, or through the operator's fallback sender. The email links to the signed-in app, never to the private link.
- If you turned on phone notifications, each of your devices also gets a notification such as "<company>: sponsor package returned". It shows the company and what happened, never the answers or a link to send. Tapping it opens your Inbox. A team answer and an answer to an agent plan (step 9) notify you the same way.
- **Share…** sends nothing itself. You choose where the link goes.
- The roster import shows a preview first: missing values, bad addresses, duplicates, unknown managers and reporting loops.

### On your phone

The first time you open Home or the Inbox on a phone, a card offers **Get notified on this phone**: select **Turn on**, or **Not now**. You can change it later in **Settings › Workspace**. The Inbox groups items as cards: **Review**, **Decide** and **Send / Chase**, each with 1 action. The returned package page is long on a phone. Scroll to **Confirm roster & populate org chart**.

> **Where it stands today.** Works. Your notice is an email when Resend is set up, and a phone notification when the server has its push keys (`VAPID_PUBLIC_KEY`, `VAPID_PRIVATE_KEY`, `VAPID_SUBJECT`) and you turned notifications on. Without either, the notice is stored and not sent: check the Inbox. On an iPhone, notifications need the Home Screen app (iOS 16.4 or later). **Share…** is on each private link in the Discovery composer (first touch and team questions), on the kickoff pre-read links and in the Companies outreach composer.

## Step 4. Plan and schedule the kickoff

### What you do

1. In the returned package, select **Prepare meeting agenda**. The composer opens on the kickoff (`#discovery/compose/kickoff`): the brief, a standard 2-hour agenda and the attendees.
2. Select **Approve agenda**. DutyGraph records who approved it and when.
3. Optional: select **Prepare meeting guide** for an AI guide with 8 topics.
4. Select **Schedule and invite**. Under **Invite the executives**, set the date, the time, the time zone and the place. The attendees are the people the sponsor ticked.
5. Select **Send kickoff invitations** to send email with a calendar file and the pre-read. Without email, select **Create links without email**. Send each pre-read link with **Share…** (or copy it) and select **Download calendar file (.ics)**.

### What happens behind the scenes

- Code builds the standard agenda. No AI writes it.
- The approval is stored with the plan it approved.
- Each executive gets a private pre-read page: the date, the place, the agenda, a Yes or Can't attend reply, and optional pre-work questions.

### On your phone

It works. The time zone is a text field with a name such as `America/Chicago`. Check it: it starts as your phone's time zone.

> **Where it stands today.** Works. The approval and the schedule are on 2 different screens, and you can schedule before you approve. "Schedule" means a calendar file. DutyGraph does not read calendars or find a time that suits all executives. A calendar connection is Planned.

## Step 5. Bring the kickoff transcript in

### What you do

1. After the meeting, open the kickoff step in Discovery. The section **Understand the business, together** has 8 topics with notes.
2. Open **Transcript or additional notes**. Paste the transcript or your notes, up to 20,000 characters.
3. Optional: under **Kickoff notes**, record who said what, and pick the speaker for each statement.
4. Select **Save outcomes & review team**. Step 3, **Review people & duties**, opens.

### What happens behind the scenes

- DutyGraph saves the transcript as evidence from the leadership meeting and marks the kickoff as held.
- An AI job (OpenAI) reads the transcript. It drafts each person's role, department, manager and duties. These are proposals for you to review. They are not facts until a person confirms them.
- Attributed notes become proposed research updates. Code does this, not AI.
- If the AI job fails, the page says so. Your existing records do not change. The team list from the CSV keeps the departments.

### On your phone

You can paste on a phone, but a long transcript is easier on a computer.

> **Where it stands today.** Partial. Paste only. The screen does not record or transcribe audio, and it does not take a file (.txt, .vtt or .docx). It does not find the speakers in the transcript. It does not group the output by department. The people and duty drafts need an OpenAI key. Transcript file upload, speaker lines and audio are Planned.

## Step 6. Send asks to each person

### What you do

1. In Discovery, select **Make team questions**. The composer opens on **Team question sets** (`#discovery/compose/team`).
2. Pick the people. The executives come first. Select a name to add a person.
3. Select **Save drafts**. DutyGraph makes 1 draft for each person.
4. Open Discovery › **Asks**. Select **Review and send**. With email, select **Send batch**. Without email, select **Create links for all (N)** under **Send to everyone at once**. DutyGraph creates each person's private link and lists them, each with **Share…** and **Copy**, plus **Copy all** (1 line per person: name and link). Save or undo your changes first: the links open the saved drafts. You can still select **Create a private link** for 1 person at a time.
5. When a person answers, the Inbox says "<name> answered". In Discovery, read the returned answer. Select **Accept answer**, then **Draft task cards** to draft that person's Task Cards. You can also select **Create task card from this answer** and write the card yourself.
6. Open **Work Map › Task Cards** and **Repo › To review** to see the map form.

What the person sees on their phone: **Start with voice** or **Type instead**, then 1 question for each screen, **Anything else?**, **Here's what we heard** and **Send to <advisor>**. Question 3 of each role template is "About how many hours a week does this take?". The person taps a range (Less than 1 hour, 1–2, 2–5, 5–10, 10–20, More than 20 hours) or **Not sure**. See [Answer a work request from your private link](25-participant-review.md).

### What happens behind the scenes

- DutyGraph keeps the person's own words as evidence, marked as proposed. It also keeps, for each question, the version the person confirmed on **Here's what we heard**.
- The fill loop reads answers into facts, such as hours a week. It stores a pointer to the person's words, not a copy of the quote. It runs only when the company has an approved Claude or OpenAI connection. Without one, it waits.
- **Draft task cards** uses OpenAI. Each drafted card is **Proposed** and **Inferred**. An owner or a role can be missing. The card says so.
- Reminders, with email, go at most once a day and at most 3 times.
- The hours range needs no AI to read. It becomes a **Reported** hours-a-week reading for the Task Card (step 7).
- **Create links for all** sends no email. Each link is shown once and opens only that person's questions.

### On your phone

The answer pages are built for phones. On your side, Asks starts with **Send an ask**, and the team composer shows people as chips over a searchable list.

> **Where it stands today.** Works. Without email, **Create links for all** makes every person's link at once. The role templates ask for hours as ranges. Drafted cards often have no owner; the AI-fit pass in step 7 proposes the person's manager as the owner for you to accept.

## Step 7. Find AI opportunities

### What you do

1. Open **Opportunities**. **Your team** shows each person's Task Cards as bars, in hours a week.
2. Open **Repo › To review**. The group **AI modes, owners and hours for Task Cards** holds what code proposed for each Task Card: an AI mode with a plain reason, the person who does the work, an owner, or which Task Card an hours answer is for. Select **Accept the mode**, **Accept the owner** or **Accept**, or **Not now**. For an hours answer, select the Task Card it is about. Nothing changes until you accept.
3. A Task Card with no hours shows **time not captured**. The hours question is "How many hours a week do you spend on <task>, as a low and a high number?". It goes to the person who does the work, who answers with a range. Select **Open the asks**, then **Send an ask** to that person.
4. Open **Proposed agents**. Each proposed agent acts for 1 named person, inside that person's access.
5. If no agent is proposed, the page says what is missing, for example "2 Task Cards need an AI mode and 1 needs an owner — review the proposals in Repo › To review." Select **Open To review**. Also read **Not proposed**: each item has 1 reason, such as "No accountable owner". Select **Draft the ask** to ask the right person.
6. You can still set a proposed AI mode by hand: in **Work Map › Task Cards**, select the card, then **Open Task Card** and **Edit record**. Set **Proposed operating mode**. "People only" and "AI not allowed" do not give an agent.

See [Opportunities](32-opportunities.md).

### What happens behind the scenes

- Code builds this page. No AI call makes a proposal.
- Hours come from the person's answer (**Reported**), or from runs a month × minutes per run. A card with neither is never shown as 0. A range the person tapped is read by code, with no AI.
- The AI-fit pass is code. It runs after Task Cards are drafted or changed. It reads each card's steps and proposes an AI mode for a card still on "People only", with the reason (for example, a step that moves money means a person decides). It proposes the person whose answer the card came from as the performer, and that person's manager in the roster as the owner. It leaves each proposal in Repo › To review as a `task_proposal` record. It does not run on the sample companies.
- An hours range from a role template is about work that has no Task Card yet. When 1 Task Card is drafted from that answer, the reading goes to that card. When several are drafted, To review asks which card it is for.
- Code proposes an agent when a Task Card has an owner and a proposed AI mode, or when an accepted possible constraint cites it.
- The hours with an agent are a prediction (**Predicted**). Only the sample companies have predictions. A real company shows "Not predicted yet" until one is recorded.

### On your phone

The page leads with 1 line of numbers, a **Today** or **With agents** switch, and a card for each person. The tabs are short on a phone: Team, Agents, Constraints, Changes. The proposals in To review are cards with 1 tap to accept.

> **Where it stands today.** Partial. Hours and the AI-fit proposals need no AI, but you accept each proposal; nothing is applied by itself. Task Cards still come from **Draft task cards** (OpenAI) or from you. The time with an agent is predicted only on the Cobalt and Wesco samples, whose hours and predictions are authored sample values.

## Step 8. Turn an opportunity into a governed agent

### What you do: set up governance once for the company

Skip this on the Wesco sample: its packs are already loaded and fixed.

1. Open **Agents › Rules**. A company without governance shows "Governance is not set up for this company yet". Select **Set up governance** (`#gov/setup`). Later, **Change packs** on the Rules tab opens the same screen.
2. Load the 6 packs below, in order. Each one says **Not loaded** until you load it. Select **Set up** on a pack to open it.

- **Agent rules**: select **Use the default agent rules** (14 neutral rules: an agent never goes beyond its owner's access, every agent has an end date, and AGT-12 "No agent approves work: approvals stay with people"), or upload your own JSON pack.
- **Segregation of duties**: select **Use the default SoD pairs** (12 generic pairs, such as create a vendor and pay it, or enter and approve the same invoice), or upload your own.
- **Mitigating controls**: add the controls a reviewer may cite (id, name, owner role, **Agent-eligible** Yes or No), then save. It can stay empty.
- **System catalog**: select **Use the catalog built from Task Cards** (the systems the Task Cards name, with their scopes written `system/action:object`). Add systems and scopes by hand if needed, then **Save this catalog**.
- **Who holds which access**: select **Choose a CSV file** or paste the access export (a person column, a system column and an entitlement or scope column), then **Preview**. The preview lists the matched people, the people not found in this company and the access that maps to no catalog scope; those rows are not loaded. Select **Load this export**.
- **Approval chain**: for each step (Manager, Role owner, Internal Controls, IAM) choose a person from the company, or **Requester's manager** for the manager step. Select **Save the approval chain**.
When all 6 are loaded, the screen says "Governance is on for this company."

### What you do: request access for an agent

1. In **Opportunities › Proposed agents**, select **Open draft** (or **Open template**). The Agents builder opens (`#agents/build/<key>`).
2. Read **Before it can run**: the readiness checks and the gaps. A gap does not block the draft.
3. Fill what you can, then select **Save draft**. A draft gives no access.
4. Read **Governed access**, under **Before it can run**. On your own company, only the Task Card's owner can start the request, from their own DutyGraph sign-in: they select **Start the access request**. Everyone else reads "Only <owner> can request access for an agent that acts for them." On the Wesco sample, select **Start the access request as Aisha Bello (sample persona)**.
5. The request opens in **Agents › Requests** (`#gov/requests/<id>`). Answer the 1 question. Read the proposal: each line is inherited, escalated or removed, with its rule. Select **Submit to the approval chain**.
6. Each approver in the chain decides in **Agents › Review queue** and selects **Record the decision**. On your own company each approver does this from their own sign-in. On the Wesco sample you switch the persona with **Acting as**.
7. On the issue screen, record the issuance with **Record the issuance**. The gateway token shows once.
8. In **Agents › Issued agents**, select **Try an action**: an allowed call passes, a call outside the rules is blocked.
9. In **Agents › Audit**, open the Register, the Ledger (**Verify chain**) and the Auditor workspace.

The Agents tabs are **Workspace**, **Saved agents**, **Requests**, **Review queue**, **Issued agents**, **Rules**, **Audit** and **Business review**. See [Agents](30-agents-and-manifests.md).

### What happens behind the scenes

- The builder fills each field from the Repo, by code, with a chip that names its source file. You can make a marker or a policy tighter. You cannot make it looser.
- The export writes files for the client's own AI tool, with `GAPS.md` for what is missing. DutyGraph does not run the agent.
- Each pack load is a new version of that pack. It is sealed on the hash-linked ledger in the same step. Each load also gives each person a PER- id and each Task Card with an AI mode a TSK- id. An id never changes once given.
- DutyGraph reads the access export as of the day it was exported. It does not connect to the company's identity or access system.
- Governance: code compares the agent's scopes to the owner's access and to the rule packs. The approval chain records each decision. Each record goes into the ledger. The gateway checks each call that goes through it.
- On the Wesco sample, Okta, Entra, Saviynt, ServiceNow and Oracle are simulated. The approvers are sample personas that you operate. Each decision says "operated by" you.

### On your phone

Set up works on a phone; the packs are a list with 1 open at a time. A long access export is easier to load on a computer. The builder puts the agent first, with **Before it can run** and **Governed access** above the fields. **Save draft** and **Download .zip** sit at the bottom. The governance queues, issued agents, register and ledger are cards. The request channel switches between Conversation and Proposal. When governance is set up, the Overview has an **Agent requests** quick action.

> **Where it stands today.** Works for any company after **Set up governance**. The Wesco sample is ready to run with illustrative packs. On your own company the owner starts the request and the approvers decide from their own sign-ins; there are no personas outside the samples. DutyGraph reads the access export you upload; it does not connect to Okta, Entra, Saviynt or any other identity system, and it does not provision the agent. Single sign-on for reviewers is Planned. The manifest builder and its exports work for every company, with or without governance.

## Step 9. Show the person their agent plan

### What you do

1. Open the saved agent in the Agents builder. Under **Before it can run**, find **Share the plan with <person>**. Save the draft first: the plan is built from the saved version.
2. Select **Create a private link for <first name>**. The link is shown once. Select **Copy link**, **Share** (the phone's share sheet) or **Preview**. When the company's email (Resend) is set up, **Send by email** sends it for you.
3. Wait for the answer. The Inbox shows "<person>: the agent plan looks right" or "<person>: something's off in the agent plan". Select **Read the answer**. It opens the agent.
4. Read the answer in the list of shared plans under the panel. Select **Mark reviewed**. To stop a link, select **Revoke link**.
5. If something is off, correct the Task Card or the agent, save a new draft and share the new version.

What the person sees on the private page (`/plan/<token>`), labelled "Proposed plan · not deployed":

1. **What we found**: their Task Cards, how often, the time today and the agent's part.
2. **The plan**: what the agent does, where it stops for them, what it never does and where it would run.
3. **Your process today and with the agent**: each step today and with the agent.
4. **How you would operate it**: how it starts, how approvals reach them, how to stop it and who to ask.
5. **What happens next**: the governed access status, read only. "You cannot approve or change anything on this page."

At the end the person selects **This looks right** or **Something's off**, can choose what is off and add a short note, and selects **Send to <advisor>**.

### What happens behind the scenes

- Code builds the plan from the saved agent, its Task Cards and the Opportunities hours when you create the link. No AI call. The plan is kept exactly as shared; a later edit of the agent does not change it.
- The link works for 30 days and opens only this plan. DutyGraph stores only a hash of it.
- The answer is stored as understood: the verdict, the parts flagged and the note the person confirmed. Code removes contact details, links and anything like a password from the note before the person sends it.
- The answer makes an Inbox **Review** item and an advisor notification ("agent plan answered"), by email and on your phone when those are set up.
- DutyGraph does not run agents. The page says so.

### On your phone

The panel and the plan page work on a phone. The person's page is built for a phone first.

> **Where it stands today.** Works, by private link only. The person cannot yet open the plan from their own DutyGraph sign-in. The time with the agent shows only where it is predicted (the samples); a real company's plan leaves it out. Do not describe an agent as built or deployed for a person. Say "proposed" or "planned".

## Try it on a sample

### Wesco sample (governed agents)

Open `/app?sample=wesco` while signed in. The first visit creates the Wesco sample and opens its Overview. All people, access and approvals are illustrative. Public facts link to their sources.

1. **Overview**, **Discovery**, **Repo** and **Work Map**: the path from research to 17 Task Cards, already done.
2. **Opportunities › Your team**: hours a week, marked **Reported · sample**. Switch to With agents.
3. **Opportunities › Proposed agents**: select the ship-and-debit claim agent for Aisha Bello, then **Open draft**.
4. In the builder, **Governed access** › **Start the access request as Aisha Bello (sample persona)**. Then follow step 8 above.

To start the sample again, register a new advisor account, or ask an operator to reset it.

### Cobalt sample (the discovery path, no governance)

On Home, select **Open the sample**, or open **Settings › Workspace › Explore a fictional company › Open my sample company**. Cobalt Industrial Supply is fictional. It shows the path from research to Task Cards, Opportunities and the manifest builder. It sends no messages and makes no AI calls. Its governance tabs say governance is not set up, and **Set up governance** does not change a sample: use it on your own company. See [Explore the Cobalt guided example](19-cobalt-guided-examples.md).

## When something does not work

| What you see | Why | What to do |
| --- | --- | --- |
| "Research ran but found no facts" | The sources had nothing for this website | Check the website address and run research again. Or add facts in Discovery |
| "Simulated (not real data)" | No research source is set up | Add a research source (Before you start) |
| Answers are not polished, or the Repo waits on To review | The company has no approved AI | **Settings › Connections** › **Approve firm key for this company** |
| "The AI response did not finish" | The AI provider stopped early | Try again. Your records did not change |
| No email went out | Resend is not set up | Use **Create a private link**, or set up Resend |
| "No hours captured yet" | Nobody gave hours yet | Select **Open the asks** and ask the person who does the work |
| No proposed agent | No owner or no proposed AI mode | Accept the proposals in Repo › **To review**, or read **Not proposed**, then **Draft the ask** or set the mode |
| "Governance is not set up for this company yet" | The company's 6 packs are not all loaded | Agents › Rules › **Set up governance** (step 8), or use the Wesco sample |
| "Only <owner> can request access for an agent that acts for them." | On your own company only the Task Card's owner starts the request | Ask the owner to sign in and select **Start the access request** |
| No phone notification | The server has no push keys, notifications are off on this device, or the iPhone app is not on the Home Screen | **Settings › Workspace › Phone notifications** says which |

## Related guides

- [Hosted pilot: start here](00-hosted-quickstart.md)
- [From Company Research to confirmed work](23-discovery-to-confirmed-work.md)
- [The Company Repo and the Copilot](29-company-repo-and-copilot.md)
- [Opportunities](32-opportunities.md)
- [Agents](30-agents-and-manifests.md)
