
Competitive Analysis
Compare a set of competitors across consistent dimensions and turn the comparison into an actionable analysis: a planner locks the competitor set and the evaluation dimensions, a researcher fills a feature/positioning matrix with evidence-backed cells, and a copywriter writes the analysis with a clear recommendation and competitive gaps. The ordering matters because dimensions chosen after the research are cherry-picked, and a write-up without a complete matrix has holes a reader will spot; locking the same dimensions for every competitor up front forces an apples-to-apples comparison. Use this for competitor teardowns, market positioning, win/loss analysis, 'how do we compare to X and Y' questions, and feature/pricing comparisons across rivals.
Steps
Entry step: dimension-scope. Each step names the specialist role it wants; the full working prompt is expandable.
- Dimension scopeplannerentry
lock the competitor set + comparison dimensions
Show working prompt
1. Identify the subject (us/the product) and pick 3-6 named competitors that are genuinely comparable; justify each inclusion in one line. 2. Choose 5-8 comparison dimensions that decide the market (e.g. core features, pricing model, target segment, differentiator, weaknesses, traction signals) and define what each dimension means so cells are comparable. 3. Decide the matrix schema (rows = competitors incl. us, columns = dimensions) and where the final analysis lands. 4. Write an acceptance-criteria checklist (e.g. 'every competitor x every dimension cell is filled with evidence, not blank or guessed', 'our own offering is included as a row', 'each cell cites or names a source', 'the analysis ends with a recommendation and the top competitive gaps'). 5. Record decisions. Call write_task_note with the competitor set, dimensions, schema, and checklist; write the same to notes/dimension-scope.md.
- Fill the matrixresearcher
evidence-backed cell for every competitor x dimension
Show working prompt
1. For each competitor, research every locked dimension and fill the corresponding cell in notes/matrix.md with a specific, evidence-backed value (a feature fact, a real price, a named segment) — never 'maybe' or a guess. 2. Cite or name the source for each cell (product page, pricing page, review, filing) in a [n] reference list. 3. Use consistent wording per dimension across competitors so cells are directly comparable. 4. Where a value is genuinely unknown, mark the cell UNKNOWN and say why, rather than fabricating. 5. Note any standout strength or weakness you observe per competitor for the writer to use. Good looks like a fully-populated, cited matrix. Do not write the narrative analysis yet.
- Write the analysiscopywriter
narrative analysis + recommendation from the matrix
Show working prompt
1. Write analysis.md: start with the rendered comparison matrix (a markdown table of competitors x dimensions), then a per-dimension or per-competitor narrative interpreting the matrix. 2. Explicitly call out where each competitor leads, where they are weak, and where the market has a gap. 3. End with a clear, defensible recommendation (where to compete, what to build/avoid) tied to specific cells in the matrix. 4. Keep every claim traceable to a matrix cell and its source; carry the [n] references through. 5. On a loop-back, fix only the named gaps. 6. Call write_task_note with the analysis path and which criteria now pass.
- Evaluatereviewer
Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.
Show working prompt
Open analysis.md and check EACH criterion PASS/FAIL: (1) the matrix table covers every competitor x every dimension from the scope with no unexplained blanks; (2) our own offering is included; (3) cells are evidence-backed and consistently worded, with sources named (spot-check 3 against notes/matrix.md); (4) the narrative actually interprets the matrix rather than restating it; (5) there is a clear recommendation tied to specific evidence; (6) competitive gaps are explicitly identified. A pretty write-up over a half-empty or guessed matrix FAILS. Then route — this is the whole point of the loop: - **Every criterion PASSES →** call `advance_task_step({ ref, stepId: "evaluate", next: "finish" })`. - **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: "evaluate", next: "write" })` to loop back. The builder fixes exactly those gaps. Never route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in. - Finishdeveloper
All acceptance criteria met. Stamp a short summary and report DONE.
Show working prompt
Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.
Triggers
Phrases that suggest this craftbook to a crew.
- competitive analysis
- compare competitors
- how do we stack up against
- competitor teardown
- market positioning analysis
Source
View this craftbook on GitHub · MIT license