Split-Path Product Research Workflow

Analysis date: 2026-05-27 (updated) · Original: 2026-05-26 · Source: ~/.claude/history.jsonl (9,684 records), ~/.codex/history.jsonl (1,879 records) · Date range: 2025-12-13 to 2026-05-27

Overview Stats

1,709
Research-related messages (Claude + Codex)
121
Sessions with research skill invocations
20+
Projects with research activity
6
Projects that completed all 4 research phases
70%
Projects that did NOT complete all phases

Top Projects by Research Volume

ProjectMessagesResearch SessionsPhases CompletedSpan
web/dev/b434134/4Mar 20 – Apr 13 (24d)
web/dev/loadoutworks165114/4Mar 18 – Apr 5 (18d)
web/dev/calcllm33104/4Mar 27 – May 26 (60d)
web/dev/bismarck-ai/v0.42384/4Mar 14 – Mar 28 (14d)
poke/dev/poke-productivity-suite1764/4Mar 12 – Apr 4 (23d)
engines/metternichvaries54/4Mar 28 – Apr 4 (7d)
web/dev/gblock-party-reduxvaries33/4 no strategyMay 23 – May 25 (2d)
web/dev/rewalkthroughvaries43/4 no competitiveMay 6 – May 10 (4d)
games/dev/trail-breakvaries22/4May 24 – May 25 (1d)

Source Comparison: Claude vs. Codex

9,641
Claude total messages
1,866
Codex total messages
1,398
Claude research messages
311
Codex research messages

Research Keyword Ownership

KeywordClaudeCodexBias
spec771141Claude
product13335Claude
interview6623Claude
icp6518Claude
research4732Mixed
competitive2111Mixed
gtm67Mixed
monetization128Mixed
Observation: Product research execution (skill invocations, artifact creation) is almost entirely Claude-driven. Codex handles meta-workflow discussion — skill routing decisions, research quality feedback, and skill development. The gtm and monetization keywords show roughly even distribution, suggesting growth-phase work may naturally migrate to Codex for autonomous execution.

Split-Path Evidence

The core finding: product research workflows split across multiple sessions, multiple days, and multiple packs with no durable state or progress tracker between sessions. Each session starts fresh, frequently repeating work or losing context from prior sessions.

Fragmentation Signatures

1. Multi-Session Scatter

Projects average 5–13 research sessions to reach full phase coverage. The 6 projects that completed all 4 phases needed:

ProjectSessionsCalendar DaysSessions/Phase
web/dev/b413243.25
web/dev/loadoutworks11182.75
web/dev/calcllm10602.50
web/dev/bismarck-ai/v0.48142.00
poke/dev/poke-productivity-suite6231.50
engines/metternich571.25
Evidence: Session history grouped by sessionId and project. Each session boundary means context loss.

2. Phase Regression

8 observed regressions where later-phase work dropped back to earlier phases:

Evidence: Phase transition analysis across 121 research sessions. Regressions indicate that downstream skills surface findings that invalidate upstream assumptions.

3. Build/Research Interleaving

The heaviest transition pattern is build ↔ research, not research → research:

Research and building constantly interleave. The user does not complete a full research pipeline before building — they interleave research as it becomes relevant during implementation.

Evidence: Phase transition counts from command sequence analysis. /ship is the #1 command at 848 invocations; research skills appear interspersed between shipping cycles.

4. Repeated Same-Session Retries

Evidence: Single-session command sequences. Same skill invoked 2+ times suggests the first run didn't produce satisfactory output, or the user refined the prompt.

Phase Flow Analysis

Intended Flow (from pack default flows)

idea-scope-brief icp competitive-analysis journey-map positioning ux-variations
(business-discovery default)

journey-map onboarding-map conversion-map transaction-map retention-map expansion-map
(customer-lifecycle default)

hook-model metrics monetization gtm landing-copy experiment
(business-growth default)

Observed Flow (from session data)

Session 1: idea-scope-brief pack install idea-scope-brief (retry)
Session 2: icp /clear
Session 3: competitive-analysis /clear
Session 4: journey-map
Session 5: roadmap ship icp (regression)

Typical pattern from gblock-party-redux, calcllm, rewalkthrough (May 2026)

Top Single-Session Sequences

CountSequenceAssessment
7/plan-interview → /plan-interviewRetry First run unsatisfactory
3/icp → /competitive-analysisGolden path Intended flow
3/spec-drift → /spec-driftRetry
3/idea-scope-brief → /idea-scope-briefRetry
2/positioning → /gtmGolden path
1/icp → /plan-interview → /roadmapGolden path
1/journey-map → /gtm → /monetizationGolden path

Fragmentation Patterns

Why Research Splits Across Sessions

Pattern A: Pack Not Installed

User runs /idea-scope-brief, gets told to install business-discovery pack, does /pack install, then re-runs the next skill in a new session because /clear was used or context was lost.

Evidence: gblock-party-redux (May 23): /idea-scope-brief → /idea-scope-brief → /idea-scope-brief → /pack → /clear. Three idea-scope-brief retries and a pack install in one session, then ICP in a separate session two days later.

Pattern B: Alignment Page Review Gap

Skills produce alignment pages that require user review and YAML compilation. The user reviews asynchronously, sometimes hours or days later, in a new session. The new session has no memory of what was approved or what the next step should be.

Evidence: calcllm: idea-scope-brief on May 22, ICP on May 23, competitive-analysis on May 24, journey-map on May 25 — each a separate session with a day gap.

Pattern C: Build Interruption

Research gets interrupted by urgent build/ship work. When user returns to research, context of where they left off is gone. They may re-run a phase or skip ahead without checking what was already completed.

Evidence: web/dev/b4: 13 research sessions over 24 days, with /ship interleaved 15+ times. Research phases overlap and repeat.

Pattern D: Cross-Pack Boundary

The research workflow spans 4 packs: idea-scope-brief (global), business-discovery, customer-lifecycle, business-growth. Each pack must be installed separately. Routing recommendations say "install X pack first" but don't carry forward what work was already done.

Evidence: Codex message (May 25): "we need to make sure that competitive analysis routes to recommend running: pack install customer-lifecycle, then journey-map". The user is manually managing cross-pack routing because skill routing doesn't track prior state.

Evidence Matrix

ClaimSourceEvidenceConfidenceAssumptionDecision Impact
Research workflows are fragmented across 5–13 sessions per project Claude history.jsonl Session-project grouping shows 6 projects with 5+ research sessions each High None — directly measured Quantifies the split-path problem. If acceptable, no action needed.
Only 30% of projects complete all 4 research phases Claude history.jsonl 6 of 20+ projects with research activity reached all 4 phases (discovery, validation, competitive, strategy) High Some projects may intentionally skip phases Determines whether a progress tracker is needed or if incomplete coverage is by design.
Phase regressions happen because downstream skills invalidate upstream assumptions Session sequences + skill SKILL.md routing 8 observed regressions; ICP and competitive-analysis skills explicitly say "IF downstream impact is Major: prepend /reconcile-research" Medium Regressions could also be user-initiated pivots, not skill-driven If regressions are skill-driven, reconcile-research should be stronger. If user-driven, no fix needed.
Build/research interleaving is the dominant workflow, not linear research-then-build Phase transition counts build ↔ validation: 62 transitions; build ↔ strategy: 54 transitions. More than research → research transitions. High None — directly measured Any "research pipeline" solution must accommodate interleaved building, not enforce a linear flow.
Same-session retries indicate first-run quality issues Session command sequences /plan-interview retried 7x; /idea-scope-brief retried 3x; /spec-drift retried 3x Medium Retries could be prompt refinement, not quality failure If quality-driven, skill output needs improvement. If prompt-driven, input handling needs improvement.
Cross-pack routing is manually managed by the user Codex history (May 25) "we need to make sure that competitive analysis routes to recommend running: pack install customer-lifecycle, then journey-map" High None — explicit user statement Skills must auto-detect installed packs and route accordingly, or a meta-orchestrator is needed.
Research execution is Claude-biased; Codex handles meta-workflow Keyword analysis across both histories Claude: 1,398 research messages; Codex: 311. All major research keywords show Claude bias except gtm/monetization. High Codex history may be less complete (fewer records overall) Automation investments should target Claude-side skill quality first.

Recommendations

PatternFrequencyTypeRecommendationAvoided Manual Prompts
Multi-session research fragmentation 20+ projects Standing instruction / Convention Research Progress Manifest: Each research skill writes a research/.progress.yaml file recording completed phases, pending phases, last skill run, and next recommended skill. Skills read this on startup to know where the project left off. ~40 "where was I" prompts across projects
Cross-pack routing gaps Every project using 2+ business packs Skill enhancement Auto-detect installed packs in routing: Business-discovery skills should read .agents/project.json enabled_packs and only recommend installed skills. If the next skill needs an uninstalled pack, auto-prompt /pack install instead of silently recommending a broken route. ~15 failed route-follows per project
Phase regressions (strategy → validation) 8 observed Skill enhancement Reconcile-before-regress gate: When a downstream skill detects upstream-invalidating findings, it should run /reconcile-research automatically before re-routing to the earlier phase, preserving work already done. ~8 redundant phase re-runs
Same-session retries 13 observed (7+3+3) Skill enhancement Retry-aware input handling: When a skill is invoked immediately after itself in the same session, treat the second invocation as a refinement. Read the prior output (alignment page or research file) and ask what to change, rather than starting fresh. ~13 full re-runs saved
Build/research interleaving 116 transitions Standing instruction Accept interleaving as the norm: Do not design research workflows that require completing all research before building. The progress manifest must support "paused at phase X, build in progress, resume research when ready." N/A (design principle, not automation)

Highest-Impact Automations

  1. Research Progress Manifest (research/.progress.yaml) — eliminates "where was I" across all projects. ~40 prompts saved.
  2. Cross-pack auto-routing — skills detect installed packs and route correctly or prompt install. ~15 prompts saved per project.
  3. Retry-aware skill re-invocation — second invocation = refinement, not fresh start. ~13 full re-runs saved.
  4. Reconcile-before-regress gate — prevents redundant upstream phase re-runs. ~8 re-runs saved.
  5. Alignment page state persistence — compiled YAML answers stored in research/.approvals/ so the next session knows what was approved.

Confidence & Assumption Register

ConclusionStatusWhat Would Change It
Research workflows are fragmentedEvidence-backedEvidence that fragmentation is intentional (e.g., user prefers short sessions)
30% completion rate is a problemProvisionalKnowing whether incomplete projects were abandoned intentionally or simply never finished research
Progress manifest would reduce frictionProvisionalUser testing showing whether the manifest is actually read on session start
Regressions are skill-driven, not user-drivenProvisionalExamining specific regression sessions to see if the user or the skill initiated the backward step
Cross-pack routing is the primary friction sourceEvidence-backedUser explicitly stated this in Codex (May 25)
Build/research interleaving is the natural workflowEvidence-backedNothing — this is a measured behavioral fact

Gate: Evidence Coverage

Q1: Is the evidence sufficient for the split-path diagnosis?

Q2: Which claims need more support before acting on recommendations?

Gate: Scope & Non-Goals

Q3: Should the progress manifest track state across ALL research skills, or just the business discovery pipeline?

Q4: Is the 30% phase-completion rate a problem to solve, or is incomplete research acceptable for some projects?

Gate: Recommended Route

Q5: Which recommendation should be prioritized first?

Q6: Should the fix be implemented as skill-level changes (each skill reads/writes progress) or as a new orchestrator skill?

Gate: Proposed Artifact Changes

Q7: Should the progress manifest and approval persistence live in the project repo or in a central location?

Q8: Should this analysis result in immediate skill changes, or just a documented recommendation?

Branching Problem Statement

Added 2026-05-27 — extends the fragmentation analysis above with evidence on what happens when research skills produce multiple ICP/concept candidates.

The fragmentation analysis (sections 1–8) established that research sessions split across time. This section addresses a different split: research paths branching within a single skill run, producing multiple candidates that downstream skills don't consume.

The Gap

When /icp produces 2–5 candidates with Value × Accessibility scoring, a primary ICP is selected. The secondary ICPs are written to ## Additional ICPs with condensed sections and a Cross-ICP Analysis (Section 10). But:

User statement (Codex, May 2026): "skills often bog down bc we're evaluating 4–8 different product variations or product lines split up based on different ICPs"
7
Projects that hit multi-candidate branching
0
Deferred paths ever revisited
14
Sessions with /icp invocations
1
Project that fully developed multiple ICPs (metternich)

Branching Inventory

Which skills produce branches, how many, and what format.

SkillVersionMulti-path OutputPrimary SelectionSecondary Path FateDownstream Awareness
idea-scope-brief v0.2 Slugged briefs for pivots User chooses direction Written as "related/future concept" None
icp v0.4 2–5 candidates, Value × Accessibility scoring User-validated at Checkpoint 2 ## Additional ICPs with condensed sections Cross-ICP Analysis only
competitive-analysis v0.6 Concept-validation mode: Proceed/Pivot/Abandon verdicts User-validated at Checkpoint 1 N/A — runs for primary ICP only None for secondary ICPs
value-prop-canvas v0.2 Single path only Primary ICP scoped N/A None
positioning v0.3 Single path only "One positioning per product" N/A None
Key finding: The branching funnel narrows at ICP. Upstream, idea-scope-brief can produce multiple briefs. At ICP, multiple candidates are scored and one is selected. Downstream, everything is single-path. The problem is that the secondary candidates from ICP and idea-scope-brief are recorded but never consumed, revisited, or tracked for future re-evaluation.

Post-Branch Transition Analysis

What actually happens after /icp produces multiple candidates and a primary is selected.

ProjectTransition Chain After /icpSecondary ICP Referenced?
content-pyramid/icp → /ship → /ship-endNo
calcllm/icp → /plan-interview → /ship-endNo
vectorfit/icp → /ship-end (x2 sessions)No
bismarck-v0.4/icp → /competitive-analysis → /shipNo
poke-productivity-suite/icp → /brainstorm → /plan-interview-ideasNo
b4/icp → /competitive-analysisNo
metternich/icp → /brainstorm → /competitive-analysisPartial — 4 ICPs developed in parallel with identical directory structures
jit-life-os/icp → /ship-end → /ship → /icp (re-run) → /competitive-analysisNo

Transition Distribution

4
Immediate /ship-end after ICP
3
Golden path: /icp → /competitive-analysis
2
Detour: /icp → /brainstorm
1
ICP re-run (jit-life-os)

Observations

Deferred Path Lifecycle

The birth-to-death lifecycle of non-primary ICP/concept candidates.

Birth ICP skill produces 2–5 candidates with scoring
Selection User validates primary at Checkpoint 2; secondaries written to ## Additional ICPs
Cross-ICP Analysis Section 10 compares candidates on value, accessibility, overlap
Terminal state: parked Secondaries exist in the ICP research file but no skill reads them
No revisit trigger No event, skill, or progress manifest check ever re-surfaces secondaries
Effective death Secondary ICPs remain unread in the ICP artifact indefinitely

idea-scope-brief Variant

When idea-scope-brief produces multiple slugged briefs, the lifecycle is similar but shorter:

Evidence: idea-scope-brief alignment page (Codex L1756–1757) produced 3 variants. User immediately questioned the need for 3 and resolved to a single path. The other 2 briefs were never opened or referenced in subsequent sessions.

User Desire for Branching (Unmet)

Three history records show users wanting to branch or revisit without tooling support:

Pattern: Users recognize product-line expansion opportunities during research but have no skill to track or act on them. The desire is expressed verbally, then lost to session context.

Branching Evidence Matrix

ClaimSourceEvidenceInferenceConfidenceAssumptionDecision Impact
Secondary ICPs are never consumed by downstream skills Claude + Codex history; skill SKILL.md files 0 of 14 post-ICP sessions reference non-primary ICPs. competitive-analysis, value-prop-canvas, positioning all hardcoded to primary ICP scope. The ICP Cross-ICP Analysis is write-only: it produces comparison data that nothing reads. High None — directly measured + confirmed in skill source Either downstream skills need per-ICP modes, or secondaries should be tracked differently.
Deferred ICP candidates are never revisited Claude + Codex history (11,563 records) 0 revisitations found. 1 near-miss (calcllm user asked about revisiting but didn't execute). The current system provides no trigger or prompt to revisit deferred candidates. High Users might revisit outside of tracked history (e.g., reading files manually) If deferred paths matter, a revisit trigger mechanism is needed. If they don't, secondary ICP output should be lighter.
idea-scope-brief multi-brief output causes unnecessary branching Codex history (L1756–1757) User immediately questioned "Do we need three split paths?" — only 1 observed instance of multi-brief output. The skill may be over-producing variants; 1 instance is thin evidence but the user reaction was strong. Medium One instance may not be representative idea-scope-brief should default to single brief with explicitly requested variant mode.
Users want product-line expansion tools but have none Claude history (3 projects: calcllm, vectorfit, claude-skills) 3 separate users/projects expressed desire to expand into adjacent ICPs or product lines, phrased as routing questions. The gap isn't "run all downstream skills per ICP" but "have a structured way to decide when to expand." Medium Expressed desire ≠ actual need; users may have resolved this outside tracked sessions Progress manifest should include a deferred_paths section with revisit triggers, not full multi-ICP research branches.
metternich-engine's 4-ICP parallel development is an outlier, not a pattern to optimize for Claude history (metternich project) Only 1 of 7 branching projects developed multiple ICPs in parallel. metternich built 4 full ICP directory structures with persona cards, demo scripts, and objection handling. This was a deliberate multi-audience product (game engine with solo/hobbyist/pro/team tiers), not a typical ICP branching scenario. High None — directly observed Do not design multi-ICP tooling around the metternich pattern. The common case is 1 primary + deferred secondaries.
ICP Cross-ICP Analysis is write-only ICP SKILL.md (v0.4) + downstream skill source Section 10 produces Cross-ICP Analysis with value, accessibility, overlap comparisons. No downstream skill reads Section 10 or references it. Cross-ICP Analysis is effort without return unless converted to actionable revisit triggers. High Users might read it manually even though skills don't Either make Cross-ICP Analysis produce machine-readable revisit triggers, or make it lighter.

Branching Recommendations

#RecommendationRationaleEffortImpact
1 Add deferred_paths to research/.progress.yaml
Track non-primary ICPs/concepts with: name, reason deferred, revisit trigger (e.g., "if primary ICP acquisition cost exceeds $X" or "if competitive-analysis reveals primary ICP is saturated"), and date parked.
Lightweight tracking without full research branches. Gives the progress manifest awareness of branching without requiring per-ICP downstream runs. Low High
2 Make ICP Cross-ICP Analysis produce revisit triggers
Instead of just comparing candidates, each secondary ICP gets a concrete trigger condition: "Re-evaluate this ICP if [condition]." Written to both the ICP research file and research/.progress.yaml.
Converts write-only analysis into actionable checkpoints. Downstream skills can check triggers without running full research per-ICP. Medium High
3 Keep downstream skills primary-only by default
Add a lightweight "Implications for Secondary ICPs" note (2–3 sentences) in competitive-analysis output, but do NOT run full downstream research per-ICP.
Running competitive-analysis, positioning, etc. for each ICP creates the "4–8 variation evaluation" problem the user identified. A note is enough to flag relevance without bogging down. Low Medium
4 Do NOT create "research branches"
A full branching system (separate research directories per ICP, merge/diff between branches, parallel downstream runs) is over-engineering for the observed 7-project, 0-revisitation pattern.
Progress manifest + revisit triggers are sufficient. Only metternich developed multiple ICPs in parallel, and that was a deliberate product strategy, not a workflow the tooling should optimize for. N/A Avoids over-engineering
5 idea-scope-brief: explicit convergence in Next Steps
When multiple slugged briefs are produced, the Next Steps section must name which is primary and which are deferred, and write deferred briefs to deferred_paths in the progress manifest.
Prevents the "Do we need three split paths?" reaction by making convergence explicit rather than leaving multiple open paths. Low Medium

Proposed deferred_paths Schema

# In research/.progress.yaml
deferred_paths:
  - name: "ICP-02: Hobbyist Learner"
    source_skill: icp
    date_parked: 2026-05-27
    reason_deferred: "Lower Value x Accessibility score (3.2 vs primary's 4.1)"
    revisit_trigger: "If primary ICP acquisition cost exceeds $50/user OR competitive-analysis shows primary ICP market is saturated"
    status: parked  # parked | revisiting | promoted | abandoned
  - name: "Concept: Team Dashboard Variant"
    source_skill: idea-scope-brief
    date_parked: 2026-05-27
    reason_deferred: "User selected solo-player concept as primary direction"
    revisit_trigger: "If solo-player concept hits retention wall at 30-day mark"
    status: parked

Gate: Branching Decisions

Q9: Should downstream skills be ICP-scoped (per-ICP) or primary-only?

Q10: Should ICP Cross-ICP Analysis be stronger, lighter, or as-is?

Q11: Should idea-scope-brief track multiple active concepts or converge to one?

Q12: Should there be a "research branch" concept or is deferred-path tracking enough?

Q13: What should trigger re-evaluation of a deferred ICP?

Gate: Research Completeness

Q14: Is the branching evidence sufficient for the recommendations, or do specific claims need more support?

Compile Answers

14 questions remaining
Copied!