Brandedflow research

<!-- LOCKED — deterministic module v1 -->

install
source · Clone the upstream repo
git clone https://github.com/JenCW/brandedflow
manifest: business-os/sales/research/skill.md
source content
<!-- LOCKED — deterministic module v1 -->

Skill: Research (Differentiation Research umbrella)

Purpose

Parent skill for the Differentiation Research stage. This repo splits initiation into three explicit modules (your product map). This umbrella module still produces a single aggregated JSON for downstream stubs and tests.

Initiation (three modules — use these first)

ModulePathOutput
Marketing research
research/marketing-research/
clients/{client_id}/research/initiation/marketing-research.json
Niche research
research/niche-research/
clients/{client_id}/research/initiation/niche-research.json
Competitive analysis
research/competitive-analysis/
clients/{client_id}/research/initiation/competitive-analysis.json

Run all in order:

research/initiation/run-all.js
— see
research/initiation/README.md
.

Supporting:

research/icp/
,
target-list/
— per those modules’
skill.md
files.

Umbrella task (this folder’s runner)

Produce one artifact:

  • File:
    clients/{client_id}/research/research.json
  • Format: JSON only, stable keys (see below).

Output schema (deterministic) —
research.json

FieldTypeRules
client_id
stringNon-empty, path-safe (no
/
,
\\
,
..
).
query
stringNon-empty trimmed research prompt or scope.
company
object
name
,
summary
,
primary_market
— each a non-empty string.
services
string[]At least one non-empty string.
positioning
object
value_proposition
non-empty string;
key_messages
array with ≥1 non-empty string.
competitors
object[]At least one item; each has
name
and
positioning_notes
as non-empty strings.

Execution flow

  1. Runner — Validate input, build structured payload (stub/mock, deterministic from
    client_id
    +
    query
    ), run eval; if fail, run refine once, re-eval; write only
    research.json
    under the client’s
    research/
    folder.
  2. Eval — Structural validation; pass/fail only.
  3. Refine — On fail, fill missing fields and normalize shape (still deterministic).

Rules

  • No external APIs in this module (stub data only).
  • No randomness; same inputs → same JSON.
  • For client-facing initiation deliverables, prefer the three initiation JSON files; keep
    research.json
    as rollup / legacy consumers until everything is migrated.