Method — Collecting and Gathering Data for Growth and Sustainability
Growth = can revenue and distribution compound? Sustainability = can cash, margin, retention, and
ops survive the compounding? This skill defines how data is collected; the Analyst skill
defines how it is directed, graded, and turned into decisions.
Two-layer architecture
| Layer |
Role |
Skill |
Does |
| Direction + analysis |
Frames questions, tasks collectors, grades evidence, synthesises, states kill-switches |
analyst |
Intelligence cycle (FRAME → GAP-SCAN) |
| Collection |
Acquires raw signals in specified form |
This skill's routing table (below) |
Fetch, scrape, poll, ledger-write |
The Analyst commands collectors; it does not passively receive their output. Every collection
run starts with an Analyst FRAME (decision, primary question, sub-questions, confidence threshold).
Every collection run ends with Analyst EVALUATE + SYNTHESISE before anything reaches the founder.
What "growth" and "sustainability" mean here
| Dimension |
Primary metrics |
Collector owner |
Ledger |
| Growth |
LTV:CAC, blended CPA, channel HHI, attribution decay, pipeline velocity |
cmo-growth |
.harness/swarm/cmo_state.jsonl |
| Financial sustainability |
Burn multiple, NRR, runway, gross margin, model-spend ratio |
cfo |
.harness/swarm/cfo_state.jsonl |
| Technical sustainability |
DORA quartet, p99, uptime, cost-per-request |
cto |
.harness/swarm/cto_state.jsonl |
| Customer sustainability |
NPS, FCR, GRR, first-response, churn threats |
cs-tier1 |
.harness/swarm/cs_state.jsonl |
| Outcome feedback |
Post-ship positive/negative/stale signals |
analyzing-customer-patterns |
.harness/lessons.jsonl |
| Portfolio health |
Security scores, scan regressions |
pi-seo-health-monitor |
.harness/scan-results/ |
| External intelligence |
Market/competitor/tooling signals |
Scout, margot-bridge |
Linear [SCOUT] issues, .harness/margot/ |
| Accumulated context |
Founder wiki, prior research |
wiki-query → wiki-ingest |
~/2nd Brain/2nd Brain/Wiki/ |
Collection cycle (operational)
Run this stack for every growth/sustainability question. The Analyst owns steps 1–2 and 5–7;
collectors own 3–4.
1. ANALYST FRAME
decision · primary question · sub-questions · confidence threshold
2. ANALYST DECOMPOSE
load-bearing assumptions → priority collection targets
3. TASK COLLECTORS (parallel where independent)
per sub-question: skill + exact data shape + source + minimum grade (B2 default)
4. COLLECTORS RETURN
structured payloads only — no prose summaries without raw numbers/sources
5. ANALYST EVALUATE
NATO/Admiralty grade each claim; reject/down-weight weak evidence explicitly
6. ANALYST SYNTHESISE
§11 output format (question, answer, evidence, alternative, unknowns, kill-switch, next collection)
7. COMPOUND
if durable → wiki-ingest; if action-shaped → margot-sandcastle-bridge; if daily metric → senior-agent ledger
Loop steps 2→7 until confidence threshold met or marginal collection cost exceeds value.
The Analyst must state which stop condition fired.
Collector routing table
Dispatch collectors by sub-question type. Multiple collectors may run in parallel when file/skill
ownership does not overlap.
| Sub-question signal |
Collector skill(s) |
Typical data shape |
| Channel mix, ad spend, CAC, LTV |
cmo-growth, marketing-analytics-attribution |
Metrics row per business_id |
| SEO demand, keyword opportunity |
marketing-seo-researcher, pi-seo-scanner |
Keyword cluster JSON + difficulty |
| ICP, positioning, market size |
marketing-icp-research, marketing-positioning |
ICP canvas + cited sources |
| Burn, runway, margin, NRR |
cfo |
Metrics snapshot per business |
| Deploy reliability, latency, CI health |
cto |
DORA + p99 row |
| Support load, churn, NPS |
cs-tier1 |
Ticket metrics + breach list |
| Shipped feature outcomes |
analyzing-customer-patterns |
Pattern JSON + outcome lessons |
| ZTE / pipeline maturity |
leverage-audit, zte-maturity |
Scorecard + dimension gaps |
| Fast-moving external topic |
wiki-query then margot-bridge if go_external |
Wiki answer + research body |
| AI/tooling landscape |
Scout (python -m app.server.agents.scout) |
Scored findings → Linear |
| Campaign / launch artefacts |
marketing-orchestrator wave plan |
Wave-plan JSON |
Wiki-first rule: Before any external research call, run wiki-query. Inject wiki context into
the Analyst FRAME; do not duplicate collection the wiki already answers at high confidence.
Minimum collection quality bar
Collectors return graded evidence, not vibes:
- Every numeric claim carries
source, as_of date, and NATO/Admiralty grade (Analyst assigns if collector cannot).
- Proxy metrics must state the proxy, the target, and known failure modes.
- Synthetic provider data (senior-agent default) is tagged
provider: synthetic — Analyst downgrades to C3 until real wire confirmed.
- Two outlets repeating one origin = one source (Analyst dedupes before counting corroboration).
Default actionable floor: B2 (usually-reliable source, probably-true claim). Below that → gap, not conclusion.
Daily composition path
The 06:00 UTC executive brief (daily-6-pager) is the downstream consumer of this method:
- Senior agents write per-cycle ledger rows (collection layer, unattended).
- Analyst-style synthesis is embedded in each agent's
assemble_daily_brief() (deterministic).
- Non-trivial strategic questions bypass the daily brief and run the full Analyst cycle explicitly.
When a daily brief section shows a breach, the Analyst loop may be invoked for root-cause — not
just the metric snapshot.
Analyst doctrine (direction layer)
The full Research & Intelligence Doctrine — identity, prime directives, collection cycle,
evidence grading, gap engine, acquisition pathways, ACH, scenario planning, domain lenses,
self-audit, and §11 output format — lives in analyst/SKILL.md.
Non-negotiable: No growth/sustainability conclusion ships to the founder without Analyst §11
items 4–6 (leading alternative, critical unknowns, kill-switch). A number without a kill-switch
is a dashboard widget, not intelligence.
Triggers
| When |
Action |
| Founder asks "can we afford X" / "should we scale Y" |
Full Analyst cycle + targeted collector tasks |
| Daily 06:00 UTC |
Senior-agent ledgers → daily-6-pager (collection unattended) |
| Board meeting prep |
Analyst FRAME on board brief → parallel collector fan-out |
| Margot research complete |
Analyst EVALUATE before wiki-ingest or margot-sandcastle-bridge |
| Scout weekly run |
Analyst triages top findings; rest archived |
Safety bindings
- PII: All founder-facing output through
pii-redactor before draft_review.
- HITL: Spend/refund/production gates stay with senior-agent dual-key ceilings — Analyst recommends; agents gate.
- Kill-switch:
TAO_SWARM_ENABLED=0 stops new collection tasks; in-flight Analyst evaluations complete and queue.
Verification
- Analyst FRAME on a test question ("Should we raise CMO ad-spend on Synthex?") produces sub-questions + confidence threshold before any collector runs.
- Collector returns include source + date; Analyst grades each claim.
- Final deliverable includes items 4–6 from Analyst §11.
wiki-query runs before margot-bridge on repeat topics.
- Daily brief still assembles when Analyst loop skipped (metric-only path).
References
- Analyst doctrine:
analyst/SKILL.md
- Senior agents:
cfo, cmo-growth, cto, cs-tier1
- Daily brief:
daily-6-pager
- Wiki flywheel:
wiki-query, wiki-ingest
- External research:
margot-bridge, Scout (app/server/agents/scout.py)
1---2name: growth-sustainability-data3description: Method for collecting and gathering data for growth and sustainability across the 11-business portfolio. Defines the two-layer stack — Analyst (direction + analysis) commands collector skills (CMO, CFO, CTO, CS, Margot, wiki, Scout, marketing) — and the handoff contract between them. Use when framing executive visibility, research sprints, board prep, or any question about whether the business can grow and endure.4---56# Method — Collecting and Gathering Data for Growth and Sustainability78Growth = can revenue and distribution compound? Sustainability = can cash, margin, retention, and9ops survive the compounding? This skill defines **how data is collected**; the Analyst skill10defines **how it is directed, graded, and turned into decisions**.1112---1314## Two-layer architecture1516| Layer | Role | Skill | Does |17|---|---|---|---|18| **Direction + analysis** | Frames questions, tasks collectors, grades evidence, synthesises, states kill-switches | [`analyst`](../analyst/SKILL.md) | Intelligence cycle (FRAME → GAP-SCAN) |19| **Collection** | Acquires raw signals in specified form | This skill's routing table (below) | Fetch, scrape, poll, ledger-write |2021The Analyst **commands** collectors; it does not passively receive their output. Every collection22run starts with an Analyst FRAME (decision, primary question, sub-questions, confidence threshold).23Every collection run ends with Analyst EVALUATE + SYNTHESISE before anything reaches the founder.2425---2627## What "growth" and "sustainability" mean here2829| Dimension | Primary metrics | Collector owner | Ledger |30|---|---|---|---|31| **Growth** | LTV:CAC, blended CPA, channel HHI, attribution decay, pipeline velocity | `cmo-growth` | `.harness/swarm/cmo_state.jsonl` |32| **Financial sustainability** | Burn multiple, NRR, runway, gross margin, model-spend ratio | `cfo` | `.harness/swarm/cfo_state.jsonl` |33| **Technical sustainability** | DORA quartet, p99, uptime, cost-per-request | `cto` | `.harness/swarm/cto_state.jsonl` |34| **Customer sustainability** | NPS, FCR, GRR, first-response, churn threats | `cs-tier1` | `.harness/swarm/cs_state.jsonl` |35| **Outcome feedback** | Post-ship positive/negative/stale signals | `analyzing-customer-patterns` | `.harness/lessons.jsonl` |36| **Portfolio health** | Security scores, scan regressions | `pi-seo-health-monitor` | `.harness/scan-results/` |37| **External intelligence** | Market/competitor/tooling signals | Scout, `margot-bridge` | Linear `[SCOUT]` issues, `.harness/margot/` |38| **Accumulated context** | Founder wiki, prior research | `wiki-query` → `wiki-ingest` | `~/2nd Brain/2nd Brain/Wiki/` |3940---4142## Collection cycle (operational)4344Run this stack for every growth/sustainability question. The Analyst owns steps 1–2 and 5–7;45collectors own 3–4.4647```481. ANALYST FRAME49 decision · primary question · sub-questions · confidence threshold50512. ANALYST DECOMPOSE52 load-bearing assumptions → priority collection targets53543. TASK COLLECTORS (parallel where independent)55 per sub-question: skill + exact data shape + source + minimum grade (B2 default)56574. COLLECTORS RETURN58 structured payloads only — no prose summaries without raw numbers/sources59605. ANALYST EVALUATE61 NATO/Admiralty grade each claim; reject/down-weight weak evidence explicitly62636. ANALYST SYNTHESISE64 §11 output format (question, answer, evidence, alternative, unknowns, kill-switch, next collection)65667. COMPOUND67 if durable → wiki-ingest; if action-shaped → margot-sandcastle-bridge; if daily metric → senior-agent ledger68```6970Loop steps 2→7 until confidence threshold met **or** marginal collection cost exceeds value.71The Analyst must state which stop condition fired.7273---7475## Collector routing table7677Dispatch collectors by sub-question type. Multiple collectors may run in parallel when file/skill78ownership does not overlap.7980| Sub-question signal | Collector skill(s) | Typical data shape |81|---|---|---|82| Channel mix, ad spend, CAC, LTV | `cmo-growth`, `marketing-analytics-attribution` | Metrics row per business_id |83| SEO demand, keyword opportunity | `marketing-seo-researcher`, `pi-seo-scanner` | Keyword cluster JSON + difficulty |84| ICP, positioning, market size | `marketing-icp-research`, `marketing-positioning` | ICP canvas + cited sources |85| Burn, runway, margin, NRR | `cfo` | Metrics snapshot per business |86| Deploy reliability, latency, CI health | `cto` | DORA + p99 row |87| Support load, churn, NPS | `cs-tier1` | Ticket metrics + breach list |88| Shipped feature outcomes | `analyzing-customer-patterns` | Pattern JSON + outcome lessons |89| ZTE / pipeline maturity | `leverage-audit`, `zte-maturity` | Scorecard + dimension gaps |90| Fast-moving external topic | `wiki-query` then `margot-bridge` if go_external | Wiki answer + research body |91| AI/tooling landscape | Scout (`python -m app.server.agents.scout`) | Scored findings → Linear |92| Campaign / launch artefacts | `marketing-orchestrator` wave plan | Wave-plan JSON |9394**Wiki-first rule:** Before any external research call, run `wiki-query`. Inject wiki context into95the Analyst FRAME; do not duplicate collection the wiki already answers at high confidence.9697---9899## Minimum collection quality bar100101Collectors return **graded evidence**, not vibes:102103- Every numeric claim carries `source`, `as_of` date, and NATO/Admiralty grade (Analyst assigns if collector cannot).104- Proxy metrics must state the proxy, the target, and known failure modes.105- Synthetic provider data (senior-agent default) is tagged `provider: synthetic` — Analyst downgrades to `C3` until real wire confirmed.106- Two outlets repeating one origin = one source (Analyst dedupes before counting corroboration).107108Default actionable floor: **B2** (usually-reliable source, probably-true claim). Below that → gap, not conclusion.109110---111112## Daily composition path113114The 06:00 UTC executive brief (`daily-6-pager`) is the **downstream consumer** of this method:1151161. Senior agents write per-cycle ledger rows (collection layer, unattended).1172. Analyst-style synthesis is embedded in each agent's `assemble_daily_brief()` (deterministic).1183. Non-trivial strategic questions bypass the daily brief and run the full Analyst cycle explicitly.119120When a daily brief section shows a breach, the Analyst loop may be invoked for root-cause — not121just the metric snapshot.122123---124125## Analyst doctrine (direction layer)126127The full Research & Intelligence Doctrine — identity, prime directives, collection cycle,128evidence grading, gap engine, acquisition pathways, ACH, scenario planning, domain lenses,129self-audit, and §11 output format — lives in [`analyst/SKILL.md`](../analyst/SKILL.md).130131**Non-negotiable:** No growth/sustainability conclusion ships to the founder without Analyst §11132items 4–6 (leading alternative, critical unknowns, kill-switch). A number without a kill-switch133is a dashboard widget, not intelligence.134135---136137## Triggers138139| When | Action |140|---|---|141| Founder asks "can we afford X" / "should we scale Y" | Full Analyst cycle + targeted collector tasks |142| Daily 06:00 UTC | Senior-agent ledgers → `daily-6-pager` (collection unattended) |143| Board meeting prep | Analyst FRAME on board brief → parallel collector fan-out |144| Margot research complete | Analyst EVALUATE before `wiki-ingest` or `margot-sandcastle-bridge` |145| Scout weekly run | Analyst triages top findings; rest archived |146147---148149## Safety bindings150151- **PII:** All founder-facing output through `pii-redactor` before `draft_review`.152- **HITL:** Spend/refund/production gates stay with senior-agent dual-key ceilings — Analyst recommends; agents gate.153- **Kill-switch:** `TAO_SWARM_ENABLED=0` stops new collection tasks; in-flight Analyst evaluations complete and queue.154155---156157## Verification1581591. Analyst FRAME on a test question ("Should we raise CMO ad-spend on Synthex?") produces sub-questions + confidence threshold before any collector runs.1602. Collector returns include source + date; Analyst grades each claim.1613. Final deliverable includes items 4–6 from Analyst §11.1624. `wiki-query` runs before `margot-bridge` on repeat topics.1635. Daily brief still assembles when Analyst loop skipped (metric-only path).164165---166167## References168169- Analyst doctrine: [`analyst/SKILL.md`](../analyst/SKILL.md)170- Senior agents: `cfo`, `cmo-growth`, `cto`, `cs-tier1`171- Daily brief: `daily-6-pager`172- Wiki flywheel: `wiki-query`, `wiki-ingest`173- External research: `margot-bridge`, Scout (`app/server/agents/scout.py`)