> ## Documentation Index
> Fetch the complete documentation index at: https://cofounder.appeeky.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Modes & Analysis Depth

> Read vs write, and how analysis depth controls cost and quality.

## Agent mode

Set via `agentMode` in preferences. Two modes:

### Read (default)

The agent **analyzes** and **notifies** but never modifies anything outside the cofounder tables.

Allowed action types:

* `slack_summary` — Slack messages
* `webhook_post` — outbound webhook events
* `notion_page` — Notion DB rows

Blocked action types:

* `asc_metadata_update`, `asc_review_reply`, `asc_version_create` — App Store Connect writes
* `linear_issue`, `github_issue` — issue tracker writes

This is the safe default. Use it when onboarding or whenever you want zero risk of unintended side effects.

### Write

All action types are allowed, but each one still requires either:

* Being in `autoApproveTypes` → executes immediately
* Or human approval via the API or Slack approval buttons

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
PUT /v1/cofounder/preferences
{
  "agentMode": "write",
  "autoApproveTypes": ["asc_review_reply"]
}
```

The example above means: the agent can propose any action, replies to user reviews are auto-applied, everything else waits for your approval.

***

## Analysis depth

Set via `analysisDepth` in preferences. Controls how much investigation the agent does per run — **not** which model runs (that's your [LLM settings](./llm-settings)).

| Depth      | Research phase | Tool-step budget | Self-critique | Relative cost\*        |
| ---------- | -------------- | ---------------- | ------------- | ---------------------- |
| `quick`    | Skipped        | 3                | No            | Lowest                 |
| `standard` | Yes            | Moderate         | Yes           | Default — best balance |
| `deep`     | Yes            | 12               | Yes           | Highest                |

\* Actual cost depends on your chosen model and how much data the collector pulled. With default models, a standard run is on the order of a cent.

### When to use each

* **`quick`** — frequent runs to catch fast-moving signals (rank drops, review spikes). The data delta between runs is small, so a shallow pass is enough.
* **`standard`** — default twice-daily runs. Research phase plus a self-critique pass over the draft briefing.
* **`deep`** — weekly retros, decision-heavy moments (pre-launch, post-pivot). The bigger tool budget lets the agent chain multiple keyword/competitor drills before writing.

### Per-run override

You can override the depth on a one-off run without changing your default:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
POST /v1/cofounder/runs
{ "appId": "6479581124", "analysisDepth": "deep" }
```

Useful for "I want a deep weekly retro right now" without flipping your default schedule.

***

## Auto-approve

`autoApproveTypes` is an array of action types that bypass the review queue and execute immediately when proposed.

```jsonc theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "autoApproveTypes": [
    "asc_review_reply",   // safe — replying to user reviews is reversible
    "linear_issue",       // safe — opening tickets is reversible
    "webhook_post",       // safe — outbound events
    "notion_page"         // safe — write to your own DB
  ]
}
```

Generally avoid auto-approving:

* `asc_metadata_update` — irreversible without a review cycle
* `asc_version_create` — can affect your app's store listing
