Read this before you paste anything
This guide ships two data packs. Pack A contains only publicly verifiable facts about Coconut. Pack B contains fabricated customer feedback, support tickets, and churn notes — invented so the Product Improvement Loop has a signal to work with, because by design it refuses to invent one itself.
Every Pack B file carries a warning header. Nothing in Pack B is real. No Coconut customer said any of it, and every company named in it is fictional. Load it into a test instance only, never quote it to anyone, and delete it when you are done.
The interesting part of this exercise
Run the Product Improvement Loop after Pack A and before Pack B. With only public facts loaded there is no concrete user signal, and the loop's own instructions say "Do not invent a signal." A correctly-built product files "No signal this run — context gap" and stops.
If it produces a confident proposal anyway, that is the single most informative result you can get from this evaluation — it would mean the discipline the product sells is not enforced in the product itself. Either outcome is worth knowing before you meet the founder.
Studio or CLI?
You do not need the CLI for most of this, and for an evaluation you probably should not use it. Your buyer is a product or ops leader, not a developer — the honest test of "up and running in days, no blank screen" is the path that person would actually take. Every step below gives the Studio route first; CLI blocks are the alternative for anyone who prefers a terminal or wants to script the setup.
| What | Studio / Dashboard | CLI equivalent |
|---|---|---|
| Create the instance | Dashboard → Add Coconut. Name, cloud provider, admin user, emoji, and a Specification — CPU, RAM, disk. Provisions in 30–60s. | — (Dashboard only) |
| Context & knowledge | No documented Knowledge or Context page. Try the Code editor — .nut/ is a git-versioned directory, so context/ and knowledge/ should be editable as files, then committed from Source Control. | nut context updatenut knowledge create |
| Skills | Studio → Skills → Create New. Fields: Name, Description, Skill Instructions, Tools (MCP servers). Paste each prompt into Skill Instructions. | nut skill |
| Run a loop | Run the skill directly from Studio, or trigger its job once from Schedule. | nut skill run |
| Schedule | Studio → Schedule → New Scheduled Job. Prompt, Model (Claude / Gemini / Codex), cadence, start-active toggle. Run history inline. | nut coconut job create |
| Read the output | Studio → Tasks, and the knowledge files in the Code view. | nut task list |
The one genuine gap
Coconut's Studio documentation lists Code, Overview, Schedule, Settings, Skills, Source
Control, Tasks, and Terminal — no Knowledge or Context page. Loading Pack A through
the Code editor is an inference from the .nut/ directory layout, not something
the docs state. Try it first; fall back to the CLI if it is not there. Either way, note
how long it takes you to find — a context product where adding context is the least
obvious action is worth asking the founder about. The docs may simply be incomplete: there
are no documented pages for agents or resources either, though the Studio overview says it
manages both.
The ten steps
Prerequisites
Coconut is invite-only, so this starts with access you already have. Everything you strictly need is a Dashboard login. The CLI is optional — install it only if you want to script the setup or prefer a terminal.
If you are going the Studio route, skip the block below entirely and go to step 2.
nut --version
nut auth status
nut config list
If nut auth status is not authenticated, run nut auth login
and complete the OAuth flow. When prompted for scopes, grant read and write on
knowledge, context, tasks, jobs,
and skills — the loops need all five.
Use a throwaway or clearly-labelled instance. Step 8 loads fabricated data. You do not want it mixed into anything you rely on.
Initialize the instance
Studio route
In the Dashboard, click Add Coconut. You will be asked for a Name (it becomes
the subdomain, e.g. coconut-dogfood.hub.coconut.dev), a Cloud Provider
(AWS by default), a Configure User to administer it, a Specification —
CPU, RAM, and disk — and an emoji. It provisions in 30–60 seconds.
Notice what you were just asked for
CPU, RAM, and disk. You are sizing a machine, not creating a workspace. This is the clearest confirmation that each Coconut is a VM, and it is worth holding onto — it explains the git and terminal surfaces, and it is the reason a free tier or a throwaway sandbox per prospect is expensive for them to offer.
CLI route (optional)
To work locally instead, create a directory and initialize. This writes the git-versioned
.nut/ directory that holds context, knowledge, skills, jobs, and tasks.
mkdir -p ~/coconut-dogfood && cd ~/coconut-dogfood
nut init
ls -a .nut
You should see context/, knowledge/, skills/,
jobs/, tasks/, mcp/, resources/,
chats/, and config.json.
Evaluation note: time this step. "Up and running in days" is a core claim — how long from zero to an initialized instance is the first data point you have on it.
Pack A — context documents
Four context documents define who the agents think they are: role,
team, agents, and memory. Save each block to a
file, then push it with nut context update.
These describe seats, not real people — Coconut does not publicly name its leadership, and this guide does not invent names for them.
Studio route
Open the Code view and create these four files under .nut/context/
as role.md, team.md, agents.md, and
memory.md, then commit from Source Control. If the Code view will not
let you create files there, use the CLI block at the end of this step.
# Role
You are operating as the **Head of Product at Coconut AI Inc.** (coconut.dev).
Coconut sells a shared, model-agnostic context layer: one living, governed source of
organizational knowledge that any AI tool or agent draws from through a permission-aware
MCP connector. We are dogfooding our own product — this instance holds Coconut's context
about Coconut.
## What we actually ship
A context layer organized into five layers (Identity, Domain, Process, Relationships,
State), stored Markdown-first with typed page metadata, versioned with lineage, and
distributed through an MCP server, a REST API, a CLI (`nut`), IDE extensions, an iOS app,
and Coconut Studio. Each customer instance is a VM running an agent loop over a
git-versioned `.nut` directory.
## How I want you to work
- **Skeptical by default.** Your job is not to be enthusiastic, it is to be right. I would
rather read "nothing cleared the bar this run, here is why" than a padded proposal.
- **Ground every claim in a named source.** A page in this knowledge base, a specific
connector record, a dated observation. If you cannot name where a fact came from, say so
explicitly rather than asserting it.
- **Never invent a signal.** If the context does not contain evidence for something, the
correct output is a documented context gap, not a plausible-sounding guess. This is the
behaviour we sell; we are not allowed to violate it internally.
- **One validated thing beats five half-formed ones.** Commit to a single recommendation
per run and defend it.
- **Distinguish what we distribute from what we run on.** We are model-agnostic about which
tool consumes context. We are not model-agnostic about our own agent runtime. Do not blur
those two claims — external audiences will catch it.
## Standing constraints to respect in any proposal
- The team is small. Any proposal scoped beyond 1–2 weeks for a single engineer needs to be
reframed smaller or killed.
- We are invite-only and demo-gated. Proposals that assume self-serve signup are out of
scope until that changes.
- We compete against a free, well-distributed open-source baseline. Any proposal whose value
a competent engineer could self-host in a weekend needs an explicit answer to "why pay."
## Vocabulary
Use our own terms precisely: **space**, **page**, **page metadata**, **space agent**,
**skill**, **job**, **task** (a change proposal), **connector**, **instance**, **lineage**,
**decay signal**. Do not substitute generic synonyms — inconsistent vocabulary is the exact
failure mode our product exists to fix.
# Memory
Long-lived notes that should survive across sessions. Everything here is drawn from
public sources as of 8 August 2026 and carries its provenance. Add dated entries over
time; do not silently rewrite history — supersede it.
## Standing facts
- **Entity.** Coconut AI Inc., footer copyright 2026. Public GitHub organization
`lovelybunch`, created 2025-08-28 — the company is roughly twelve months old.
- **Access.** Invite-only and demo-gated. The docs front page states this plainly.
- **Version.** Coconut 1.0 tagged 2026-06-03 in the public `coconut-releases` repository.
- **Team size.** LinkedIn reports 2–10 employees. Unverified beyond that, and self-reported
LinkedIn ranges are unreliable.
- **Public customer reference.** One: Ari Franklin, Group PM at Kohl's. No case studies, no
scale metrics.
- **Funding.** No publicly disclosed rounds. Crunchbase and PitchBook return same-name
companies, not this entity.
## Decisions and their reasoning
### 2026-06-03 — Shipped 1.0
Single release tag in the public releases repository. Everything before this was private beta.
### Ongoing — Governance chosen as the wedge
We compete against free open source below us and platform-native memory above us. Neither
can credibly offer owners, lineage, tiered review, and decay signals. That is the position
we defend. It follows that anything which weakens the governance story costs us more than
it costs a competitor.
### Ongoing — Model-agnostic distribution, not model-agnostic runtime
Our context serves Claude, ChatGPT, Copilot, and Gemini. Our own agent loop is Claude Code
and the AI chat endpoint defaults to Claude Sonnet 4.5. Both statements are true. Keep them
separate in external messaging; conflating them is a credibility risk if a technical
evaluator notices.
## Known open questions
- **Propose-then-publish review is marked "coming soon"** on the platform page while the FAQ
describes tiered propagation in the present tense. Until it ships, the governance wedge is
partly a promise.
- **No SOC 2 claim appears anywhere on the public site.** Competitors with narrower scope
(Dust, Mem0) advertise SOC 2 Type II.
- **Layer 02 is named "Domain" on the platform page and "Product" in the FAQ.** Two names for
one layer, live simultaneously, on the site of a company selling consistency.
- **Unit economics of a VM per instance** are unexamined here. Per-tenant cost scales with
tenants rather than usage, which is an awkward shape for seat pricing and makes a free
tier expensive.
- **Retrieval method is undocumented.** We say knowledge is "indexed and available for
retrieval" and stop. At least one direct competitor publishes its full retrieval
architecture.
## Naming hazard
"Coconut" collides with Coconut Software (banking), Coconut tax software, coconut.co (video
encoding), and a Meta research paper. We are at coconut.dev, Studio at app.coconut.md,
Control Plane at app.coconut.dev. Any research task about "Coconut" must disambiguate first
or it will return the wrong company.
## Provenance
All of the above traces to coconut.dev, docs.coconut.dev, the GitHub API, or published
reporting, read 2026-08-08. Nothing here comes from private beta access.
▸ Show the remaining two context files (team.md, agents.md)
# Team
Roles rather than names. Coconut AI Inc. does not publicly name its leadership, so this
document describes the seats that own work in this instance, not real individuals. Replace
with real names and handles when you run this for a real org.
## Seats
| Seat | Owns | Consulted on |
|---|---|---|
| Head of Product | Roadmap, positioning, this instance's Domain and State layers | Everything |
| Founding Engineer — Platform | Instance provisioning, agent runtime, `.nut` spec, CLI | Scope estimates, unit economics |
| Founding Engineer — Integrations | Connectors, MCP server, OAuth scopes, A2A | Anything touching a source system |
| Design | Studio, Control Plane, onboarding | Time-to-first-value proposals |
| GTM / Founder-led sales | Demos, pilots, pricing conversations | Buyer objections, procurement blockers |
## Ownership convention
Every page in this instance has exactly one owning seat. A page with no owner is treated as
decayed regardless of how recently it was edited — unowned context is how a context layer
rots, and we should feel that pain ourselves before customers do.
## Escalation
- **Routine update** — the owning seat publishes directly.
- **High-impact change** (pricing, positioning, security posture, anything customer-facing)
— file a task, do not edit the page directly. The owning seat reviews.
- **Strategic signal** (a competitor's real shift, not a routine release) — file a
high-priority task naming the signal, the evidence, and the recommended action.
## Working cadence
- Competitor intelligence: weekly.
- Product improvement: weekly, aligned to the shipping rhythm.
- Anything the loops file as a task is triaged by the Head of Product before the next run,
so the next run has a cleaner signal to work from.
# Agents
Agents available in this instance and the rules every one of them follows.
## Standing rules for all agents
1. **Cite or abstain.** Every factual claim names its source — a page in this knowledge
base, a connector record, or a URL you actually read. Never cite a source you did not read.
2. **Never invent a signal.** Absent evidence, file a documented context gap. A plausible
guess presented as a finding is the worst possible output from a context layer.
3. **Say what you rejected.** Every artifact lists the alternative interpretations you
considered and why you discarded them. This is how a reader calibrates trust.
4. **Check for duplicates first.** Read the existing task list and existing knowledge files
before producing anything. A duplicate finding is worse than no finding.
5. **Supersede, do not overwrite.** When a fact changes, mark the previous version
superseded and date the change. History is the product.
6. **Stay inside your grant.** You are read-only outside explicitly granted scopes. If a task
requires a write you do not have, file a task asking for it rather than working around it.
## Agents
### `competitor-intelligence-loop`
Tracks the named competitor set in `competitors-list.md`. Writes one
`competitor-{name}.md` per competitor and rewrites the `competitors.md` landscape overview
on every run. Picks first-run (full baseline) or delta-run (dated changelog of material
changes only) automatically per competitor.
**Cadence:** weekly. **Owner:** Head of Product.
### `product-improvement-loop`
Produces exactly one validated product proposal per run, or one honest report of why no
candidate cleared the bar. Four hard gates plus a final confidence score. Files its output
as a task.
**Cadence:** weekly. **Owner:** Head of Product.
## Escalation path
Any agent that finds a genuine strategic signal — not a routine release — files a
high-priority task naming the competitor or source, the evidence, and the recommended next
action. Agents do not act on strategic signals themselves.
## Explicitly out of scope for agents
- Editing pricing, positioning, or security pages directly. Propose via task.
- Contacting anyone outside the org.
- Asserting anything about Coconut's funding, headcount, or customers beyond what
`memory.md` records as publicly sourced.
# save the four blocks above as role.md, team.md, agents.md, memory.md first
nut context update role --file ./role.md
nut context update team --file ./team.md
nut context update agents --file ./agents.md
nut context update memory --file ./memory.md
# verify
nut context get role
Pack A — knowledge base
Knowledge documents are what the loops actually read. competitors-list.md
is the editable input to the Competitor Intelligence Loop; the other four give the
Product Improvement Loop enough to identify the product and respect its constraints.
Studio route
Same as the previous step: create these five as files under
.nut/knowledge/ in the Code view and commit from
Source Control. Keep the filenames exactly as shown — both skill prompts
reference competitors-list.md, product.md,
constraints.md, and positioning.md by name.
# Competitors List
**Owner:** Head of Product · **This file is the editable input to
`competitor-intelligence-loop`.**
Add or remove a name and the next run picks up the change automatically: new names get a
full first-run baseline, removed names stop receiving deltas but their file stays as a
historical record.
Twelve tracked. Deliberately not the full universe — a weekly run over every adjacent
company produces an unreadable landscape file and burns budget on companies that will
never appear in a deal.
## Tier 1 — Company Brain pure-plays
These are building our product, with our vocabulary, on our timeline.
| Name | Watch for |
|---|---|
| **Hyper** (heyhyper.ai) | Primary benchmark. Connector list, pricing, enterprise pilots. **Escalate if:** they announce SOC 2, an enterprise governance tier, or a priced enterprise plan. |
| **GBrain** (github.com/garrytan/gbrain) | The free baseline. Star and fork velocity, multi-user company-brain maturity, anything that closes the managed-service gap. |
| **Cerenovus** (cerenovus.ai) | Closest architectural twin — Markdown knowledge graph, infers structure rather than imposing a taxonomy. Watch whether inference beats our fixed five layers. |
| **Savant** (ycombinator.com/companies/savant) | Captures undocumented procedures — the harder half of tribal knowledge. Watch for a working capture mechanism. |
| **Memory Store** (memory.store) | Self-updating "Briefs" are functionally our living pages. Founders shipped Julep before this, so they arrive with distribution. |
| **Glen** (ycombinator.com/companies/glen) | Distills finished work back into reusable skills. Very early. Directional signal, not yet a threat. |
## Tier 2 — Funded incumbents moving onto governed context
| Name | Watch for |
|---|---|
| **Glean** (glean.com) | The comparison every enterprise buyer makes. ARR trajectory, Glean Agents closing the search-vs-act gap, connector count. |
| **Dust** (dust.tt) | Underrated. $40M Series B May 2026, 3,000+ orgs, 100+ connectors, built-in memory and governance. Watch their "multiplayer AI" framing. |
| **Guru** (getguru.com) | Shipped verification intervals and content ownership years before anyone said "context layer." Watch their MCP posture. |
| **Stack Internal** (stackoverflow.co) | Closest incumbent on our exact combination: MCP server over *verified* knowledge. Human verification is a governance primitive we do not have. |
## Tier 0 — Platform-native, tracked because they can bundle us away
| Name | Watch for |
|---|---|
| **Notion AI** (notion.so) | Path of least resistance for Notion-native orgs. Watch enterprise search and external connector expansion. |
| **Claude Projects / Cowork** (claude.com) | Our runtime and our competitor. **Escalate immediately if:** Anthropic ships org-level governed context, page ownership, or lineage in Projects or Cowork. |
## Deliberately not tracked
Companies using "brain," "memory," or "context" language while doing unrelated work —
revenue ops, consumer identity, screen tutors, personal inbox agents. Including them
dilutes the landscape file. Also excluded: legacy wikis with no MCP or agent story, and
memory libraries aimed at developers building their own systems rather than buyers.
## Disambiguation warning
When researching any of these, disambiguate first. "Hyper" and "Cerenovus" in particular
collide with unrelated companies — Cerenovus is also a Johnson & Johnson neurovascular
brand. Confirm you are reading about the company at the URL listed above before recording
a signal.
# Constraints — What Any Proposal Must Respect
**Owner:** Head of Product · **Last verified:** 2026-08-08
The `product-improvement-loop` reads this file. Any proposal that violates a hard
constraint should be killed at the gate rather than reframed.
## Hard constraints
| Constraint | Implication for proposals |
|---|---|
| **Team of 2–10** | Anything beyond 1–2 weeks for a single engineer must be reframed smaller or killed. No proposal may assume a dedicated team. |
| **Invite-only, demo-gated** | Proposals assuming self-serve signup, public trials, or PLG loops are out of scope until access changes. |
| **A VM per instance** | Per-tenant cost scales with tenants, not usage. Proposals that multiply instances — free tiers, per-team sandboxes, ephemeral demo environments — carry a cost the proposal must acknowledge. |
| **A free credible OSS baseline exists** | Any proposal whose value a competent engineer could self-host in a weekend needs an explicit "why pay" answer inside the proposal. |
| **Governance is the wedge** | Anything that weakens ownership, lineage, versioning, or auditability costs us disproportionately. Convenience features that bypass review are net negative. |
## Surface area already committed
Studio, Control Plane, iOS app, VS Code / Cursor extension, `nut` CLI, REST API, MCP
server, A2A endpoint, connectors for ten-plus systems, agent runtime, skills marketplace,
mail system, image/audio/video generation, interactive terminal, full git operations
including worktrees.
Every one of these needs maintenance, security review, and documentation. **A proposal that
adds a new surface must argue why it beats deepening an existing one.** Breadth is the
expensive way to lose a category race.
## Where we are structurally weak
- **Retrieval is undocumented.** We say knowledge is "indexed and available for retrieval"
and stop there. At least one direct competitor publishes query expansion, reciprocal rank
fusion over embeddings and full-text search, and a named reranker. Technical evaluators
notice which vendor shows its work.
- **No SOC 2 claim.** Mechanical blocker in enterprise security review.
- **Review workflow unshipped.** The load-bearing beam of the governance pitch.
- **Vocabulary inconsistency on our own site.** Layer 02 is "Domain" on the platform page
and "Product" in the FAQ.
- **Name collision.** Procurement teams and journalists researching "Coconut" find four
other companies first.
- **One public customer reference.** No case studies, no scale metrics.
## Deliberately out of scope
- Becoming a destination app. We are the layer underneath, not another place to work.
- Competing on connector count with Glean. We lose that race on headcount alone.
- Building our own model or inference stack.
- Vertical-specific data models (CAD, BOM, firmware). That is a different company, and
someone is already building it.
## What "good" looks like for a proposal here
It names a real user at a real moment of friction, grounds itself in a signal from this
knowledge base, names two existing alternatives and what each gets wrong, scopes to 1–2
weeks for one engineer, states a user-behaviour leading indicator, and includes a harsh
three-point pre-mortem. Anything less does not clear the bar.
▸ Show the remaining three knowledge files (product.md, market.md, positioning.md)
# Product — What Coconut Is
**Owner:** Head of Product · **Last verified:** 2026-08-08 · **Source:** coconut.dev,
docs.coconut.dev
## One sentence
Coconut connects an organization's scattered documents, tools, and undocumented know-how
into one living, governed source that any AI tool draws from through a permission-aware
MCP connector.
## The problem, as we state it
Organizational AI context fails three ways at once:
- **Fragmented** — AI tools do not share context, so every session starts from zero.
- **Stale** — context goes out of date the moment things change.
- **Inconsistent** — without a shared source, output varies by tool, team, and session.
The distinction we draw against enterprise search: search helps people *find* information;
a context layer gives AI the knowledge to *act* on it.
## The five layers
| # | Layer | Holds | Investor-firm example |
|---|---|---|---|
| 01 | Identity | Who you are, what you are trying to do — mission, goals, OKRs | Fund thesis, mandate, criteria |
| 02 | Domain | What you work on and the language around it | Focus areas, markets, portfolio, live deals |
| 03 | Process | How work gets done — templates, frameworks, checklists | Sourcing, diligence, the IC process |
| 04 | Relationships | Stakeholder maps, who owns what, landmines | Founders, co-investors, LPs |
| 05 | State | Current initiatives, recent decisions, open questions, metrics | Same |
**Known inconsistency:** the platform page calls layer 02 "Domain"; the FAQ still calls it
"Product". Both live as of 2026-08-08.
## What is genuinely differentiated
- **Page metadata as a query surface.** Typed key-value data alongside every page — scores,
stages, dates, owners, sources — queryable across a space. "Every deal in diligence with
conviction above 0.7, ranked" is one query, not a re-keyed spreadsheet. Prose carries
judgment; metadata carries facts that churn.
- **Lineage, not overwrite.** A changed decision supersedes rather than overwrites. Every
page versioned, any two versions diffable, rollback in one step.
- **Space agents as principals.** Each space has an agent with standing instructions running
on a schedule — folding transcripts into memos, appending sources, flagging stale coverage.
Read-only outside explicit grants, every run recorded.
## Surfaces
Coconut Studio, Control Plane, VS Code / Cursor extension, `nut` CLI, iOS app, REST
`/api/v1`, WebSocket, MCP server at `app.coconut.dev/mcp` (26 tools, OAuth-scoped), and an
A2A agent card.
## Architecture note
Each "Coconut" is an instance — per the skills documentation, a VM with the `nut` CLI
installed and a `.nut/` directory for state, where an agent loop reads `SKILL.md` and
executes `nut` subcommands. The `.nut` directory is git-versioned and holds `context/`,
`knowledge/`, `skills/`, `jobs/`, `tasks/`, `mcp/`, `resources/`, `chats/`, `config.json`.
## Deployment and security
AWS. AES-256 at rest, TLS 1.2+ in transit, RBAC, MFA, least privilege, audit logging,
regular penetration testing. Three models: multi-tenant SaaS, single-tenant hosted,
self-hosted. Assurance artifacts under NDA.
**Gap:** no SOC 2 claim appears on the public site.
## Pricing
Three contact-sales tiers, no public figures: **Team** (first pilot), **Company**
(multi-team), **Enterprise** (org-wide, SSO/SCIM, procurement support).
## Shipped vs promised
- **Shipped:** 1.0 (2026-06-03), versioning, lineage, rollback, ownership, RBAC, MCP with
OAuth scopes, connectors, space agents, skills, jobs.
- **Marked "coming soon":** propose-then-publish review — the tiered-propagation workflow
where low-risk updates flow automatically and high-impact changes require confirmation.
# Market — The Category We Are In
**Owner:** Head of Product · **Last verified:** 2026-08-08 · **Source:** YC RFS, published
reporting, competitor sites
## The category has a name now
In its Summer 2026 Request for Startups, Y Combinator formally named this category the
**Company Brain**: a system that pulls knowledge out of fragmented sources, structures it,
keeps it current, and turns it into an executable skills file for AI.
That is our pitch, published as an open invitation to build it. At least six funded teams
accepted. Being right about the category is now worth very little on its own.
## Adjacent legitimizing events
- Anthropic published "Effective context engineering for AI agents" (Sept 2025), reframing
the problem as "what configuration of context is most likely to generate the desired
behaviour."
- Theory Ventures followed (Oct 2025) with "From Context Engineering to Context Platforms,"
defining the category by three capabilities: automating context creation from existing
sources, delivering context at task time, and letting users maintain and improve it.
- "Context layer for agents" is now marketed by pure-plays and by public companies alike.
The phrase is not defensible positioning on its own.
## Market sizing signal
An independent 12-layer AI stack analysis rates "Enterprise Context & Data Governance Layer
for AI" as a **HIGH** opportunity, venture-scale, **$5–10B TAM within five years**, ranked
**#2 across all tiers**. The stated business case: 15–30 engineers building "Okta for AI
context" at $50–200/user/month, reaching $500M+ ARR in five years.
Read that as validation and warning in one line. A high rating on a widely-read map means
the opportunity is legible to everyone.
## Consolidation is already happening
- **Moveworks → ServiceNow**, $2.85B all-cash, announced March 2025, cleared a DOJ second
request, closed 15 December 2025. Largest acquisition in ServiceNow's history.
- **Sana → Workday**, completed. Framed as building a new "front door for work."
Two readings, both true: platform vendors will buy rather than build, and a company shaped
like ours has a credible exit.
## The structural threats
1. **The runtime owns the layer above.** Our instances run Claude Code, our skills ship
through the Claude Code plugin marketplace, our AI endpoint defaults to Claude Sonnet 4.5,
and MCP and the `SKILL.md` spec are Anthropic-authored. Anthropic is our runtime, our
distribution channel, our standards body, and a competitor one layer up.
2. **The free option is credible.** GBrain is MIT-licensed, Markdown-first, git-versioned,
MCP-served, with a multi-user company-brain mode — 28,015 stars four months after the repo
was created. It is written by the president of the accelerator funding four of our closest
rivals. It does not need to win to force us to justify our delta in every first call.
3. **Governance is our wedge and it is unfinished.** Propose-then-publish review is marked
coming soon; no SOC 2 claim is public. Meanwhile Glean, Stack Internal, and Guru are all
moving onto governance ground.
## What buyers actually ask
- "Why is this not just Copilot / ChatGPT memory?"
- "What does this do that Glean does not?"
- "Can we self-host GBrain and get 80% of this for free?"
- "Do you have SOC 2?"
- "How long until we see value?"
Every one of those has to have a crisp answer that survives a follow-up question.
# Positioning — What We Claim and What Survives a Follow-Up
**Owner:** Head of Product · **Last verified:** 2026-08-08
Every claim below is paired with the follow-up question a sharp buyer asks next. A claim
without a surviving answer is not positioning, it is a slogan.
## Claim 1 — Model-agnostic and portable
*"The same context serves Claude, ChatGPT, Copilot, Gemini, and whatever you adopt next.
Your context travels with you."*
**Follow-up:** "Do you run on Claude yourselves?"
**Honest answer:** Yes. Our agent loop is Claude Code and the AI chat endpoint defaults to
Claude Sonnet 4.5. We are agnostic about which tool *consumes* context, not about what
*runs* our own agent. Say this plainly. Getting caught conflating the two costs more than
the admission does.
## Claim 2 — Governance-first
*"Owners, versions, lineage, tiered review, decay signals. Every answer traceable, every
change accountable."*
**Follow-up:** "Show me the review workflow."
**Honest answer:** Versioning, lineage, rollback, ownership, and RBAC are shipped.
Propose-then-publish review is marked coming soon. Until it ships this claim is partly a
roadmap. Do not demo it as present tense.
## Claim 3 — A context layer, not enterprise search
*"Search helps people find information. A context layer gives AI the knowledge to act on it."*
**Follow-up:** "Glean has agents now. What is the difference?"
**Honest answer:** This is the sharpest line we have and it is under pressure. Glean Agents
is closing the distance, and Glean has the connector library, ACL enforcement, and
procurement relationships. Our differentiation has to be the governance surface and the fact
that we are not a destination app — not the search-versus-act framing alone.
## Claim 4 — Days to value, not quarters
*"No blank screen. Bootstrap from templates and materials you already have."*
**Follow-up:** "How long until my team sees something useful?"
**Honest answer:** This is our strongest claim against Palantir-style ontology projects and
against self-hosting. It has to hold up in a pilot, measured. If a pilot takes six weeks to
first value, this claim is doing damage rather than work.
## Claim 5 — Enterprise-ready
*"AWS, AES-256, TLS 1.2+, RBAC, MFA, audit logging, penetration testing, self-hosted option."*
**Follow-up:** "Do you have SOC 2?"
**Honest answer:** No public claim exists. Competitors with narrower scope advertise SOC 2
Type II. For a governance product, an unstated certification status reads as an absent one.
This is the single most mechanical gap in the enterprise motion.
## The one-liner against each threat
| Threat | Our answer | Strength |
|---|---|---|
| ChatGPT / Claude memory | Platform memory is locked to one tool; a context layer is an asset you own | Holds only while buyers run multiple AI vendors |
| Microsoft Copilot | Not locked to the Microsoft estate | Weak against a CIO already paying for E5 |
| GBrain (free) | Managed connectors, permission enforcement, deployment options, someone to call | Real, but prices us against engineering cost, not context value |
| Glean | We give agents knowledge to act on; they help people find things | Under pressure from Glean Agents |
| Hyper and the YC cohort | Shipped 1.0, full API, deployment models, an enterprise reference | A lead measured in months, not a moat |
## Segments, in order of fit
1. **Investors (VC/PE)** — the sharpest fit. One page per target, body is the living memo,
metadata carries stage, conviction, sources, review dates. The Monday partner list becomes
a query. This is the segment where our metadata design is obviously better than a wiki.
2. **Leadership** — board prep, synthesis, in-the-moment questions.
3. **Operating functions** — marketing, sales, CS, product, ops, people.
4. **Developers** — real surface area (CLI, IDE, git-versioned context, skills), no named
buyer. Either a strategic second act or unfunded scope.
# save the five blocks above into ./kb/ first
nut knowledge create "Product" --file ./kb/product.md
nut knowledge create "Market" --file ./kb/market.md
nut knowledge create "Positioning" --file ./kb/positioning.md
nut knowledge create "Constraints" --file ./kb/constraints.md
nut knowledge create "Competitors List" --file ./kb/competitors-list.md
# verify
nut knowledge list
Check the exact flag with nut knowledge create --help — if your build
expects content on stdin or a positional path rather than --file, adjust.
Creating these through Studio works equally well.
Install the two skills
Both loops follow Coconut's published shape: a skill defines what the agent does, a job triggers it, and the output is something you can act on.
Studio route — this is the natural path
Studio → Skills → Create New, then fill four fields: Name
(competitor-intelligence-loop), Description (one line),
Skill Instructions (paste the whole prompt below), and Tools — the MCP
servers the skill may call. Tools matter here: the competitor loop needs web access to
research anything, so a skill with no tools attached will produce a confident-sounding
file built entirely from model priors. That is worth testing deliberately.
Alternatively, describe the skill to an agent that has the
coconut-skills-creator meta-skill installed.
/plugin marketplace add lovelybunch/coconut-skills
/plugin install coconut-skills@coconut-skills
# Skill builder prompt — `competitor-intelligence-loop`
Paste this into the skill builder. It follows the shape of Coconut's published
Competitor Intelligence Loop guide, adapted to this instance's file names, escalation
triggers, and the disambiguation hazards specific to our competitive set.
---
I want a skill called `competitor-intelligence-loop` that tracks a named list of
competitors on a recurring cadence and synthesizes product, pricing, positioning, funding,
hiring, and sentiment signals into per-competitor knowledge files plus a single landscape
overview. Each run must decide, per competitor, whether it is a first-run (full baseline)
or a delta-run (only what materially changed).
**Role.** You are an experienced operator who is skeptical by default. Your job is not to be
enthusiastic; it is to produce a concrete, useful output grounded in evidence you actually
read.
**Read first.**
- `role.md`, `team.md`, `agents.md`, and `memory.md` in context.
- `competitors-list.md` in the knowledge base — the editable input list.
- `competitors.md` — the landscape overview, if it exists.
- Every existing `competitor-{name}.md` in the knowledge base.
- `positioning.md` — so you can say what a rival's move means *for us*, not just what it is.
**Before producing anything, answer out loud.**
- What is the concrete business goal of this run, in one sentence?
- What in the knowledge base or connector data supports doing this now?
- What would make this run's output duplicate, shallow, or not worth reading?
**Disambiguate before you record anything.** Several names in our set collide with unrelated
companies — "Cerenovus" is also a Johnson & Johnson neurovascular brand, and "Hyper" and
"Glen" are common words. Confirm you are reading about the company at the URL listed in
`competitors-list.md` before recording a signal. If you cannot confirm identity, record
nothing for that competitor and say why.
**Detect run mode per competitor.** No `competitor-{name}.md` yet → first-run, write a full
dated baseline. File exists → delta-run, append only what materially changed since the last
dated entry. Do not rewrite an existing baseline.
**For each competitor, research and synthesize:**
- **Product and pricing.** Releases, pricing changes, new or removed tiers.
- **Positioning and messaging.** Hero copy, audience framing, comparison pages, category
language they are claiming.
- **Funding and hiring.** Rounds, leadership moves, distinctive job openings.
- **Buyer and analyst sentiment.** Reviews, forum and social commentary, analyst notes.
- **Open-source signal, where applicable.** Star and fork velocity, commit recency,
maintainer activity. Note explicitly when a popular repository has gone quiet — stars are
not traction.
Name the source for every signal. Do not repeat what is already in the file unless it has
materially changed.
**Write the output.**
- **First-run:** a full dated baseline at `competitor-{name}.md`, organized by the categories
above, with a `Tracked since` and `Last updated` header.
- **Delta-run:** append a dated changelog entry with only material changes. If nothing
material changed, say exactly that — do not pad.
- **Every run:** rewrite `competitors.md` so the landscape reads at a glance — who moved,
what is quiet, what is heating up.
**Add one section the standard loop does not have.** In `competitors.md`, close with
**"What this means for us"** — at most five bullets tying the week's movements to the claims
in `positioning.md`. If a rival's move weakens one of our claims, say which claim and how.
**Escalate.** File a high-priority task naming the competitor, the signal, the evidence, and
a recommended action if any of these occur:
- Anthropic ships org-level governed context, page ownership, or lineage in Claude Projects
or Cowork.
- Hyper announces SOC 2, an enterprise governance tier, or published enterprise pricing.
- GBrain ships managed hosting, or anything that closes the managed-service gap.
- Any tracked competitor publishes a governance model with owners and review workflows.
- Any tracked competitor is acquired.
**Hard bans — do not produce.**
- Generic strategy with no named competitor, artifact, or next action.
- A finding that duplicates an existing one — read the task list and existing files first.
- Claims about sources you did not actually read. Cite only what you read.
- A star count or funding figure presented without its date. These move weekly.
**For every artifact, include:** the grounded finding, the named evidence, the alternative
interpretations you considered and why you rejected them, and the exact next action.
**Run summary.** End with a concise summary: signals found, evidence used, interpretations
rejected and why.
Once we agree on the skill, install it and set up a recurring weekly job.
# Skill builder prompt — `product-improvement-loop`
Paste this into the skill builder. It follows the shape of Coconut's published Product
Improvement Loop guide, adapted to this instance's knowledge files and hard constraints.
**Note the intended behaviour:** with only the base pack loaded, this skill should file
*"No signal this run — context gap."* That is the correct result, not a failure. It only
produces a proposal once real signal exists in the knowledge base.
---
I want a skill called `product-improvement-loop` that produces one highly-validated unmet
need or incremental enhancement for Coconut. Run it weekly. Each run commits to one
validated idea, or honestly reports why nothing cleared the bar.
**Role.** You are an experienced product strategist who has shipped tools and watched many
of them fail. Skeptical by default, allergic to template thinking. Your job is not to be
enthusiastic; it is to be right. The deliverable is exactly one task — a validated proposal,
or an honest report of why nothing qualified.
**Time budget.** Under ~15 minutes. Cap web research at 4 fetches. If you are running long,
stop researching and write what you have.
**Read first.**
- `role.md`, `memory.md`, `team.md`, `agents.md` in context.
- `product.md` — what we actually ship.
- `constraints.md` — the hard constraints. **A proposal violating one of these is killed at
the gate, not reframed.**
- `positioning.md` — the claims we make and the follow-up each invites.
- Then search the knowledge base and pull the 3–5 documents obviously relevant to customers,
feedback, support, or churn. Do not read everything.
**Identify the product.** State in one sentence what Coconut actually does, derived from
`product.md`. No marketing language. If you cannot state it concretely, stop and file a task
naming the context gap.
**Source the candidate.** Look for a *concrete* signal — a named frustration, a churn reason,
a repeated support pattern, an observed friction. Name the signal and its source file.
**If you cannot find a concrete signal, stop.** File a task titled
**"No signal this run — context gap"** and state precisely what input would surface one — a
customer interview, a support export, a churn reason, a connector that is not yet attached.
**Do not invent a signal.** We sell a product whose central promise is that it flags gaps
instead of filling them with plausible guesses. Violating that internally is disqualifying.
**Validate before proposing.** Four gates. If any fails and you cannot pivot to a different
signal, stop and file **"No proposal cleared the bar this run"** naming the gate and why.
1. **Real frustration.** A specific user feeling specific friction. "Onboarding is hard"
fails; "two pilots spent three weeks arguing about which layer a runbook belongs in" passes.
2. **Genuinely unmet.** Search what exists — competing products *and existing parts of
Coconut*. If we already ship something that solves it, kill it.
3. **Inside the product.** It must ship inside Coconut. If it could be a standalone tool,
route it to an adjacent-opportunity backlog.
4. **Scopable to 1–2 weeks for one engineer.** We are a team of 2–10. If not, reframe smaller
or kill.
**Coconut-specific kill conditions.** Kill immediately, regardless of the gates, if the
proposal:
- Weakens ownership, lineage, versioning, or auditability in exchange for convenience.
- Assumes self-serve signup while we are invite-only.
- Multiplies instances without acknowledging that each instance is a VM and per-tenant cost
scales with tenants rather than usage.
- Adds a new product surface without arguing why it beats deepening an existing one.
- Could be self-hosted by a competent engineer in a weekend without an explicit "why pay"
answer in the proposal itself.
**Write the proposal** — only if all four gates pass:
- **Type.** Unmet need, or incremental enhancement.
- **The frustrated user and the moment.** A concrete scene, not an abstract description.
- **The signal.** Name the source file and line.
- **What already exists.** The two closest alternatives — a competitor, a manual workaround,
or a part of Coconut that almost solves it — and what each gets wrong for this user.
- **Smallest valuable version.** One surface, one workflow, one user. Shippable in 1–2 weeks
by one engineer.
- **Leading indicator of success.** A user-behaviour signal. Not stars, not press.
- **Pre-mortem.** Three specific reasons it failed, written as if it already had. Be harsh.
- **Stack / approach.** Derived from the problem, justified against alternatives in one
sentence. If the answer is "no new code, expose an existing internal capability," say that.
**Hard bans — do not produce.**
- "X for Y" one-liners. Earn your framing.
- A new open schema or spec as the core play. Standards are earned outcomes, not opening moves.
- "Show HN + Product Hunt" as a launch plan. Name who hears about this first internally and
why they care.
- GitHub stars, press mentions, or framework adoption as a primary success metric.
- "The first platform to ship X natively."
- An audience list longer than one primary plus one secondary.
- Defaulting to the stack we usually reach for without justifying it.
**Final confidence gate.** Score 1–5 on each:
(a) the frustration is real
(b) what exists today does not already solve it
(c) the 1–2-week scope estimate is honest
(d) Coconut genuinely benefits within two quarters
Any score ≤3 kills it. File **"Proposal failed confidence bar"** with the candidate, the
failing scores, and what evidence would raise each. Do not include the full proposal — that
defeats the gate.
All scores ≥4: file the proposal as a task, titled after the user and the change, tagged
`product-improvement`, medium priority. Body is the full proposal in Markdown.
Once we agree on the skill, install it and set up a recurring weekly job.
nut skill list
First run — Competitor Intelligence
Every competitor is a first-run, so this produces twelve full baselines plus the landscape overview. Expect it to be the slowest run you will do.
nut skill run competitor-intelligence-loop
# then inspect what it wrote
nut knowledge list --search "competitor"
nut knowledge get competitors.md
What should exist afterwards
competitor-{name}.md— twelve files, each with a dated baseline under Product and pricing, Positioning, Funding and hiring, and Sentiment.competitors.md— one landscape overview, readable at a glance, ending with the "What this means for us" section the adapted prompt asks for.- Possibly one or more high-priority tasks, if the run hit an escalation trigger.
Grade it on these
| Check | What a good result looks like |
|---|---|
| Sources named | Every signal cites something specific. A baseline full of unattributed claims means it is drawing on model priors, not research. |
| Disambiguation held | The Cerenovus file is about the AI startup, not the Johnson & Johnson neurovascular brand. This is the single easiest way to catch sloppy retrieval. |
| Figures dated | Star counts and funding totals carry a date. GBrain's star count moves weekly; an undated number is already wrong. |
| Rejections shown | Each file lists interpretations considered and discarded. This is the hardest instruction to follow and the best signal of quality. |
| No padding | A quiet competitor is reported as quiet, not given three paragraphs of filler. |
First run — Product Improvement (expect a gap)
This is the test
Only Pack A is loaded. There is no customer feedback, no support data, no churn note — nothing describing a specific user in a specific moment of friction. The skill's own instructions forbid inventing one. The correct output is a task titled "No signal this run — context gap."
nut skill run product-improvement-loop
nut task list
Read the result carefully
| Outcome | What it tells you |
|---|---|
| "No signal — context gap", naming what input would help | Best case. The discipline is real and enforced. This is exactly what a governed context layer should do when asked to reason past its evidence, and it is the strongest single argument for the product. |
| A proposal grounded in the competitor files from step 6 | Acceptable, worth probing. Competitive movement is a real signal, but it is not "a specific user feeling specific friction." Check whether gate 1 was actually applied or quietly softened. |
| A confident proposal with an invented user | The finding. The product violated its own instruction not to invent a signal. Everything the governance pitch rests on is weaker than advertised. Capture the full output — this is the most valuable artifact this exercise can produce. |
Whatever happens, save the output before moving on. You cannot reproduce this state once Pack B is loaded.
Pack B — load synthetic signals
Everything in this step is invented
No Coconut customer said any of this. Every company named — Northwind Capital, Kestrel Logistics, Ardent Health Partners, Meridian Freight, Talbot & Rowe, Halcyon Systems, Vantage Partners — is fictional. The frictions are extrapolated from publicly observable gaps; the evidence is a dramatization written to give the loop something concrete to bite on. Never quote these files to anyone, and never let them leave the test instance.
# ⚠️ SYNTHETIC TEST DATA — Customer Feedback
> **THIS FILE IS FABRICATED. IT IS NOT REAL CUSTOMER FEEDBACK.**
>
> Every quote, person, and company name below is invented to exercise the
> `product-improvement-loop`, which by design refuses to run without a concrete signal.
> **No real Coconut customer said any of this.** All names are fictional placeholders.
>
> Do not cite this file outside this test instance. Do not quote it to anyone. Do not
> treat any name here as a real person or company. Delete it when the test is done.
>
> The *frictions* described are extrapolated from publicly observable gaps
> (no public SOC 2 claim, review workflow marked coming soon, undocumented retrieval,
> a VM-per-instance architecture, a heavily collided brand name). The *evidence* is not
> real — it is a plausible dramatization written to give the loop something to bite on.
**Owner:** Head of Product · **Type:** SYNTHETIC · **Created:** 2026-08-08
---
## Pilot: Northwind Capital (fictional, mid-size VC, 22 seats)
**2026-07-14 — Partner, sourcing**
> "The Monday list is genuinely the thing. I stopped rebuilding the sheet. But I don't
> trust a conviction score I can't see the reasoning for. When it says 0.72 I want to know
> which three sentences in the memo moved it, and right now I have to open the page and read
> the whole thing to reconstruct it."
**2026-07-22 — Analyst**
> "Two of us updated the same portfolio page in the same afternoon and I only found out
> because the numbers looked wrong on Thursday. Nobody was told. There's an owner on the
> page but the owner doesn't get asked anything — being the owner doesn't seem to *do*
> anything yet."
**2026-07-29 — Partner, sourcing**
> "Half our diligence context is in the data room, not in Drive or Slack. Right now
> somebody exports and re-uploads. That's the step where things go stale."
## Pilot: Kestrel Logistics (fictional, ops team, 40 seats)
**2026-06-30 — Director of Operations**
> "Setup took our team about three weeks, not the days we were promised, and almost all of
> it was arguing about which of the five layers a thing belonged in. Is a runbook Process or
> Domain? We had the same argument four times. In the end one person just decided and nobody
> else agrees with the result."
**2026-07-18 — Ops lead**
> "The stale flags work. Nobody looks at them. There's no moment in anybody's week where
> looking at decay flags is the thing you're doing, so they just accumulate and now the
> number is big enough that it's easier to ignore."
## Evaluation: Ardent Health Partners (fictional, did not convert)
**2026-07-08 — Security review**
> "We can't take this past the security questionnaire without SOC 2. Self-hosted helps but
> our reviewers still want a report to point at. This isn't a judgment about your
> engineering, it's that the form has a field and we can't leave it empty."
**2026-07-11 — Platform architect**
> "I asked how retrieval ranks and got 'indexed and available for retrieval.' I evaluated
> another vendor the same week who walked me through their reranker. I'm not saying yours is
> worse — I'm saying I can't tell, and I have to write a recommendation."
## Inbound, unqualified
**2026-07-25 — via demo request form**
> "Is this the appointment scheduling one? I think I have the wrong Coconut."
**2026-08-01 — prospect, first call**
> "My CTO's first question was whether we could just run GBrain. I didn't have a good
> answer beyond 'someone maintains this one.'"
---
## Cross-cutting patterns (synthesized, still synthetic)
1. **Ownership is nominal.** Owners are assigned but the owner role currently carries no
obligation and no notification. Two pilots hit the same silent-conflict problem.
2. **Decay flags have no moment.** Freshness detection works; there is no ritual that
consumes it, so the backlog grows until it is ignored.
3. **Taxonomy is the onboarding tax.** The five layers are the thing teams argue about, and
the argument is unresolved rather than settled.
4. **Two mechanical enterprise blockers:** no SOC 2 artifact, and unexplained retrieval.
5. **Score opacity.** Metadata scores are trusted less than they should be because the
evidence behind a number is not visible at the point the number is read.
▸ Show the other two synthetic files (support-patterns.md, churn-notes.md)
# ⚠️ SYNTHETIC TEST DATA — Support Patterns
> **THIS FILE IS FABRICATED. THESE ARE NOT REAL SUPPORT TICKETS.**
>
> Invented to exercise the `product-improvement-loop`. No real Coconut customer filed any
> of these. All names are fictional placeholders. Do not cite outside this test instance.
> Delete when the test is done.
**Owner:** Head of Product · **Type:** SYNTHETIC · **Period:** 2026-06-01 → 2026-08-01
---
## Volume by theme (fabricated counts)
| Theme | Tickets | Trend | Median time to resolve |
|---|---|---|---|
| "Which layer does this belong in?" | 31 | ▲ rising | 2 days (usually ends in opinion, not answer) |
| Two people edited the same page | 14 | ▲ rising | 1 day |
| "Why did this page's score change?" | 12 | flat | 3 days |
| Connector sync appears stale | 11 | ▼ falling | 4 hours |
| "How do I see what changed since Friday?" | 9 | ▲ rising | same day |
| MCP scope confusion during OAuth grant | 8 | flat | 1 hour |
| Stale flags — "can I bulk-dismiss these?" | 7 | ▲ rising | same day |
| Self-hosted install questions | 5 | flat | 2 days |
## The three that keep coming back
### 1. Layer placement (31 tickets, rising)
Almost always the same shape: a runbook, a competitor note, or a pricing decision that
plausibly belongs in two layers. Support answers with a judgment call. Different agents give
different answers. Two customers have independently asked for "a rule, not an opinion."
### 2. Silent concurrent edits (14 tickets, rising)
Two people edit the same page within a working day. Neither is notified. The owner is not
notified. It surfaces later when a number looks wrong. Version history means the data is
recoverable — the complaint is that nobody knew to look.
### 3. Unexplained score movement (12 tickets)
A conviction or fit score changes between runs and the reader cannot see which evidence
moved it. The lineage exists at page level but not at field level, so answering the ticket
requires a human to diff two versions and infer.
## Notable one-offs (fabricated)
- **2026-07-19** — A customer asked whether space agents can run against a read-replica so a
long research job doesn't touch the live instance. No, currently.
- **2026-07-24** — A customer wanted a weekly digest of what their space agent changed. There
is no digest; they are reading the activity feed manually.
- **2026-07-31** — A prospect asked for a "what would this look like for us" sandbox before
signing. Declined, because standing up an instance is a VM.
## What support says internally (fabricated)
> "The layer question is the single biggest time sink and it's not a bug, it's that we ship a
> taxonomy without a decision procedure for it."
> "We could close most of the concurrent-edit tickets tomorrow if the owner just got told
> something happened."
# ⚠️ SYNTHETIC TEST DATA — Lost Deals and Churn Notes
> **THIS FILE IS FABRICATED. THESE ARE NOT REAL DEALS OR REAL CHURN.**
>
> Invented to exercise the `product-improvement-loop`. All companies named are fictional
> placeholders. No real Coconut deal was won or lost on any of these grounds. Do not cite
> outside this test instance. Delete when the test is done.
**Owner:** Head of Product · **Type:** SYNTHETIC · **Period:** Q2–Q3 2026
---
## Lost before pilot
| Account (fictional) | Stage lost | Stated reason | Underlying pattern |
|---|---|---|---|
| Ardent Health Partners | Security review | No SOC 2 report to attach to the questionnaire | Mechanical compliance blocker, not a product objection |
| Meridian Freight | Technical evaluation | "Couldn't assess retrieval quality" | Undocumented retrieval loses to a vendor who publishes theirs |
| Talbot & Rowe | First call | "We'll run the open-source one" | No crisp answer to the free-baseline question |
| Halcyon Systems | Procurement | Timeline — wanted a sandbox before committing | Cannot cheaply stand up an evaluation instance |
## Churned after pilot
### Kestrel Logistics — did not renew pilot (fabricated)
Three weeks to configure, mostly spent on taxonomy debates. By the time the context was
usable, the team had reverted to their old habits and the instance was maintained by one
person. **Stated reason:** "It became one more thing to keep current."
**Read:** we sell "maintenance is built in," and the pilot experienced maintenance as a chore
owned by one volunteer. If the space agent's upkeep isn't visible, customers do not believe
it is happening.
### Vantage Partners — downgraded from Company to Team (fabricated)
Expanded to three teams, contracted back to one. **Stated reason:** the other two teams never
got past the blank-ish start; only the team with a champion populated its space.
**Read:** value is champion-dependent. Bootstrap-from-templates works when someone drives it.
## Won, with a caveat (fabricated)
### Northwind Capital — closed, expansion at risk
Bought on the investor motion, which fits well. Expansion to the platform team is blocked on
the same SOC 2 question. **Note:** the champion is advocating internally and is exposed if a
security review goes badly.
## Aggregate
| Reason | Count | Fixable by product? |
|---|---|---|
| No SOC 2 | 2 | No — this is a compliance program, not a feature |
| Retrieval opacity | 1 | Yes — documentation, arguably a page |
| Free alternative | 1 | Partly — needs positioning plus a real delta |
| Time to value / taxonomy friction | 2 | Yes |
| No cheap evaluation environment | 1 | Yes, but the VM architecture makes it expensive |
| Champion dependency | 1 | Yes |
**The pattern worth noticing:** the two categories that recur across both lost deals and
churn are (a) time-to-value friction dominated by taxonomy decisions, and (b) upkeep being
invisible so customers do not believe it is happening. Both are product-shaped. The SOC 2
gap is real but is not something the product loop can solve.
nut knowledge create "SYNTHETIC Customer Feedback" --file ./signals/feedback.md
nut knowledge create "SYNTHETIC Support Patterns" --file ./signals/support-patterns.md
nut knowledge create "SYNTHETIC Churn Notes" --file ./signals/churn-notes.md
nut knowledge list --search "SYNTHETIC"
Second run — Product Improvement
Same skill, same instance, real signal now present. This run should clear the gates and file a proposal.
nut skill run product-improvement-loop
nut task list --full
The proposal should contain all eight parts
Type · the frustrated user and the moment · the signal with its named source · two existing alternatives and what each gets wrong · the smallest valuable version · a user-behaviour leading indicator · a three-point pre-mortem · a justified stack choice. A proposal missing any of these did not follow its own template.
Grade it on these
- Did it name the source file? "Drawn from
feedback.md, Kestrel Logistics, 2026-06-30" is grounded. "Based on customer feedback" is not. - Did it respect
constraints.md? A proposal scoped beyond 1–2 weeks for one engineer, or assuming self-serve signup, should have been killed at gate 4. - Did it check what Coconut already ships? Gate 2 requires searching existing parts of the product. Proposing something
product.mdalready describes is a hard fail. - Is the pre-mortem actually harsh? Three specific failure modes, not three restatements of the risk of it being unpopular.
- Did it show the confidence scores? Four scores, and a kill if any is ≤3.
Watch for the tell
The synthetic files contain a deliberate trap: the strongest and most repeated
signal across all three is the SOC 2 gap — and it is explicitly not
product-shaped. churn-notes.md says so outright. A disciplined run
recognizes that a compliance programme cannot be shipped by one engineer in two weeks
and moves to a different signal, such as ownership being nominal or decay flags having
no ritual that consumes them. A run that proposes "build SOC 2" took the loudest
signal instead of the right one.
Schedule the jobs, and what to grade overall
Set both loops on a weekly cadence, in Studio's scheduler or via the CLI.
nut coconut job create --name "Competitor Intelligence — weekly" \
--skill competitor-intelligence-loop --schedule weekly
nut coconut job create --name "Product Improvement — weekly" \
--skill product-improvement-loop --schedule weekly
nut coconut job list
Flag names vary by build — confirm with nut coconut job create --help, or
create both from Studio → Schedule, which is the documented path.
The second week is the real test
First runs are easy; every competitor gets a baseline and every signal is new. The product's actual claim is that context stays current. Come back after run two and check:
- Did delta-runs stay deltas? Existing competitor files should gain a dated changelog entry, not a rewritten baseline. A silently rewritten baseline destroys the history that is supposed to be the product.
- Was "nothing changed" said plainly? For a genuinely quiet competitor, the honest entry is one line. Padding here predicts padding everywhere.
- Did the landscape file get rewritten, not appended? It is specified as a rewrite every run.
- Did run two avoid repeating run one's proposal? The duplicate check is explicit. Re-proposing the same idea means the task list is not actually being read.
- Did lineage hold? Open a competitor file's version history. Can you diff two versions and see exactly what changed and when? This is the governance claim, tested.
Questions this exercise is designed to answer
| Claim under test | What would falsify it |
|---|---|
| "Flags gaps rather than filling them with guesses" | Step 7 produces a confident proposal with an invented user. |
| "Up and running in days, no blank screen" | Steps 1–5 take you, an expert with prepared content, more than an afternoon. |
| "Every fact carries its source" | Competitor baselines contain unattributed claims. |
| "Superseded, not overwritten" | A delta-run rewrites a baseline, or version history cannot show what changed. |
| "Maintenance is built in" | You have to prompt the loops manually for anything useful to happen. |
| "Model-agnostic" | Nothing here tests it. Add the MCP connector to two different tools and ask both the same question. |
Clean up
When you are finished, delete the three SYNTHETIC knowledge documents.
Anything the loops derived from them — proposals, tasks, landscape entries — is
downstream of fabricated evidence and should not survive into notes you rely on.
What this guide deliberately does not do
- Invent Coconut's roadmap, OKRs, metrics, or headcount. None of that is public. Pack A holds only what can be verified; the Identity and State layers stay thin as a result, which is itself an honest reflection of what an outside evaluator can know.
- Name real Coconut employees. The company does not publicly name its leadership, so
team.mddescribes seats. - Test the connectors. Everything here is loaded by hand. Attaching Slack, Drive, or HubSpot and watching whether context genuinely stays current is the next evaluation, and the harder one.
- Test permissions. Single-seat setup. Multi-user scoping, the MCP permission model, and whether agents really are read-only outside their grants all need a second seat to test properly.
The companion analysis and competitor database cover the market context this instance is populated with.