# The growth loop

> Pull a briefing, do the work elsewhere, write back what happened. Three optional tools keep follow-up state between sessions.

URL: https://mcp-docs.opennomos.com/docs/growth-loop

Growth work is long-running: you reply to a post today, it answers on Thursday, and the agent that replied is a different session by then. The growth loop is the small amount of server-side state that lets *any* session pick up where the last one stopped.

```text
        ┌──────────────┐   what is due today?    ┌──────────────┐
        │ get_briefing │ ──────────────────────▶ │  your agent  │
        └──────────────┘                         └──────┬───────┘
               ▲                                        │ researches, drafts, acts
               │ later                                  │ (elsewhere: you or the agent post)
        ┌──────┴───────┐   what happened?        ┌──────▼───────┐
        │ track        │ ◀────────────────────── │  log_action  │
        │ (what to     │                         │ (write back) │
        │  follow)     │                         └──────────────┘
        └──────────────┘
```

| Step | Tool | Purpose |
| --- | --- | --- |
| **Pull** | [`get_briefing`](https://mcp-docs.opennomos.com/docs/tools/growth/get_briefing.md) | Start of a session: ranked follow-ups, experiments waiting for a decision, pipeline counts, attribution. |
| **Register** | [`track`](https://mcp-docs.opennomos.com/docs/tools/growth/track.md) | Save opportunities, create or update experiments, make short links. Up to 20 items per call. |
| **Write back** | [`log_action`](https://mcp-docs.opennomos.com/docs/tools/growth/log_action.md) | After something was done: one sentence, plus a stage, a follow-up time or an outcome if you know them. |

None of the three needs another to be called first, and none is required. A note in [memory](https://mcp-docs.opennomos.com/docs/tools/memory/memory_add.md) is enough when you do not need follow-ups.

## A typical day

<Steps>
<Step>
### Pull

The agent calls `get_briefing` with the project. It sees `today` (ranked opportunities with a plain reason each), `experiments` (any with `decision_needed: true`), and the attribution summary.
</Step>
<Step>
### Work

The agent searches ([`search_signals`](https://mcp-docs.opennomos.com/docs/tools/research/search_signals.md), [`creator_lookup`](https://mcp-docs.opennomos.com/docs/tools/research/creator_lookup.md)), drafts replies, and the user or the agent posts them **outside** OpenNomos.
</Step>
<Step>
### Write back

For each thing done, `log_action` with the post `url`, a one-line `summary`, and `stage: "contacted"` if that is true. New people and posts found along the way go in with `track` (several per call).
</Step>
<Step>
### Decide

When an experiment's deadline passes, the next briefing puts it in `experiments` with `decision_needed: true` and a question. The agent records `stop`, `scale`, `extend` or `keep` with `track`.
</Step>
</Steps>

## Example: reply to a post and schedule the follow-up

```json title="log_action"
{
  "url": "https://www.reddit.com/r/SaaS/comments/1abc23/looking_for_a_lightweight_crm",
  "action": { "kind": "comment", "summary": "Replied with a comparison table", "channel": "reddit" },
  "stage": "contacted"
}
```

The URL is unknown, so it is tracked automatically. The stage changed to `contacted`, so the follow-up is set to three days from now. Next session the opportunity appears in `today` once that time passes. See [log_action defaults](https://mcp-docs.opennomos.com/docs/growth-loop/log-action.md) for the exact rules.

## Where to go next

- [Briefing and ranking](https://mcp-docs.opennomos.com/docs/growth-loop/briefing.md): what `today` contains and why items are ordered the way they are.
- [Memory vs opportunity](https://mcp-docs.opennomos.com/docs/growth-loop/memory-vs-opportunity.md): what goes where.
- [log_action defaults](https://mcp-docs.opennomos.com/docs/growth-loop/log-action.md): what happens to the stage and the follow-up time.
- [Experiments](https://mcp-docs.opennomos.com/docs/growth-loop/experiments.md): metrics, stop rules, due and decision.
- [Attribution](https://mcp-docs.opennomos.com/docs/growth-loop/attribution.md): short links, outcomes and `unknown`.

<Callout type="info" title="Not available yet">
Weekly reviews and watching for new replies on posts you replied to are not available yet. The briefing's `signals` list is currently always empty, and OpenNomos does not push notifications. The agent has to ask.
</Callout>
