Itropa Workspace

ITROPA Workspace enhances research capabilities with session continuity and conversational insights.

ITROPA Workspace Awareness

This skill activates when working in an ITROPA research workspace. It provides data structure knowledge, session continuity, and conversational research capabilities.

Trigger

Activate when:

  • The current directory contains research/index.json
  • The user mentions ITROPA, needs, industries, mechanisms, or innovation research
  • Any /itropa:* command is invoked
  • The user asks conversational research questions (e.g., "go deeper on #2", "what should I build?")

Session Resume Protocol

On new session:

  1. Read constraints.json for builder profile
  2. Read research/index.json for research state
  3. Read digests for fast context — for each need in the index, read research/{slug}/{latestRun}/digest.json (NOT the full data files). Digests are ~1KB each and give you scores, top mechanisms, top concepts, tags, and key insights.
  4. Read research/graph.json for cross-need connections
  5. Greet with brief status:
Welcome back! You have {N} needs explored across {R} total runs, {M} industries discovered.
Top opportunity: {name} ({score}/100, verdict: {verdict})
Cross-need connections: {C} shared mechanisms/themes found
Ready to continue? Try /itropa:status or just tell me what you want to explore.

Important: Only read full data files (mechanisms.json, deep-dives.json, etc.) when the user specifically requests that data. Digests are sufficient for session resume and most queries.

Commands (4 total)

CommandPurpose
/itropa:setupInitialize workspace (creates graph.json, installs MCP deps)
/itropa:go <need>Full autonomous pipeline: research agents → consolidate intelligence → tree → triage → branch → mechanisms → deep-dive → concepts → cross-pollinate → digest → graph → report. Uses web search for real market data when available.
/itropa:status [search]Dashboard + search (uses MCP search if available)
/itropa:constraintsBuilder profile

Conversational Research

After a pipeline completes (or anytime with existing data), the user can just talk. Handle these naturally:

  • "Go deeper on X" → Branch the industry, run mechanisms, deep-dive
  • "Cross-pollinate X + Y" → Find both industries in data, run 5 combination strategies
  • "What can I build this weekend?" → Filter concepts by effortEstimate, rank by score
  • "Explore {need} next" → Run the /itropa:go pipeline
  • "Search for {term}" → Use MCP search_research tool if available, else read files
  • "Extract mechanisms from X" → Run 5-framework mechanism analysis
  • "Do a deep dive on X" → Run business analysis with scoring
  • "Generate concepts for X" → Run app concept generation
  • "Analyze the prior art for X" → Run 5-framework prior art analysis
  • "Find patterns across my research" → Run cross-need pattern analysis
  • "Trace the inspiration chain for X" → Run 5-framework chain analysis
  • "Compare my Status runs" → Use MCP get_timeline or read digests, show side-by-side comparison
  • "What connects Status and Belonging?" → Use MCP find_connections or read graph.json
  • "Show research timeline" → Show all runs across all needs chronologically

All analysis capabilities from the 7 skills are available conversationally. The user never needs to remember a command name — they describe what they want and Claude uses the appropriate skill.

Workspace Data Structure (v2.1.1 — Timestamped Runs)

{workspace}/
├── CLAUDE.md                      # Session instructions
├── constraints.json               # Builder profile
└── research/
    ├── index.json                 # Master index (v2.0.0)
    ├── graph.json                 # Cross-need connections
    ├── .search.db                 # SQLite FTS5 index (auto-generated by MCP)
    └── {need-slug}/
        ├── runs.json              # Run history for this need
        ├── {YYYY-MM-DD}/          # Timestamped run directory
        │   ├── intelligence.json  # Consolidated research agent output (web + knowledge)
        │   ├── need.json          # Need + prior art + industry tree
        │   ├── mechanisms.json    # 5-framework analyses per industry
        │   ├── deep-dives.json    # Business analyses per industry
        │   ├── app-concepts.json  # Product concepts per industry
        │   ├── cross-pollinations.json
        │   └── digest.json        # Compact summary (~1KB) — READ THIS FIRST
        └── {YYYY-MM-DD-2}/        # Same-day re-run (suffix for collisions)
            ├── ...
            └── digest.json

Key difference from v1: Data files are inside timestamped directories. Re-researching a need creates a new directory, preserving all previous data.

Research Agents

The pipeline dispatches 3 parallel research agents at the start of each run:

AgentModelToolsPurpose
knowledge-researchersonnetRead, WebSearch, WebFetchPrior art, historical patterns, biomimicry, abstract mechanisms — training knowledge verified and enriched via web search
market-researchersonnetRead, WebSearch, WebFetchCompanies, funding, pricing, market sizing, competitive gaps — training knowledge combined with real web data
trend-researchersonnetRead, WebSearch, WebFetchRecent launches, YC/ProductHunt, technology shifts, timing signals — training knowledge combined with real web data

Each agent combines training knowledge with web search: starting from what Claude knows, then verifying and enriching via web. Every data point is tagged as knowledgeBased, webVerified, or webOnly. Their outputs merge into intelligence.json — a unified brief that feeds all downstream phases. If web search is unavailable, all agents fall back to training knowledge only.

File Schemas

index.json (v2.0.0)

{
  "version": "2.0.0",
  "createdAt": "ISO timestamp",
  "lastUpdated": "ISO timestamp",
  "needs": {
    "need-slug": {
      "name": "Need Name",
      "slug": "need-slug",
      "icon": "Users",
      "description": "Brief description",
      "createdAt": "ISO timestamp",
      "lastUpdated": "ISO timestamp",
      "totalRuns": 2,
      "latestRun": "2026-03-15",
      "latestTopIndustry": {
        "name": "Industry Name",
        "score": 84,
        "verdict": "BUILD"
      },
      "tags": ["reputation", "trust"],
      "stats": {
        "industries": 5,
        "mechanisms": 15,
        "deepDives": 3,
        "appConcepts": 5,
        "crossPollinations": 5,
        "chains": 0
      }
    }
  },
  "totalNeeds": 1,
  "totalIndustries": 5
}

constraints.json

{
  "techStack": ["React", "TypeScript", "Node.js"],
  "experienceLevel": "intermediate",
  "hasAIAccess": true,
  "availableTime": "2-4 weeks",
  "workStyle": "side-project",
  "revenueGoal": "side-income",
  "targetMRR": "$1-5k",
  "preferredFormFactors": ["saas", "tool", "api"],
  "avoidCategories": [],
  "preferB2B": true,
  "preferB2C": true,
  "riskTolerance": "medium",
  "lastUpdated": "ISO timestamp"
}

digest.json (~1KB per run — READ THIS FIRST)

{
  "need": "Status",
  "runDate": "2026-02-28",
  "constraintsSnapshot": {
    "experienceLevel": "intermediate",
    "targetMRR": "$1-5k",
    "techStack": ["React", "TypeScript", "Node.js"],
    "availableTime": "2-4 weeks",
    "workStyle": "side-project"
  },
  "industries": [
    { "id": "status-1", "name": "Reputation Economy Platform", "score": 85, "verdict": "BUILD" },
    { "id": "status-2", "name": "AI Status Signaling", "score": 72, "verdict": "EXPLORE" },
    { "id": "status-3", "name": "Digital Legacy Markets", "score": 58, "verdict": "SKIP" }
  ],
  "topMechanisms": ["trust-building", "reputation-signaling", "social-proof"],
  "topConcepts": [
    { "name": "RepuChain", "score": 80, "effort": "2-4 weeks" },
    { "name": "QuickCred", "score": 75, "effort": "weekend" }
  ],
  "tags": ["reputation", "trust", "credibility", "social-proof", "signaling"],
  "keyInsights": [
    "Trust-building mechanisms transfer across all status industries",
    "Weekend-buildable concepts exist in reputation verification",
    "B2B reputation tools have clearer monetization than B2C"
  ],
  "dataSources": {
    "knowledgeBased": 12,
    "webVerified": 8,
    "webOnly": 5
  }
}

intelligence.json (per run — consolidated research agent output)

{
  "priorArt": {
    "currentLeaders": [{ "name": "", "domain": "", "mechanism": "", "limitation": "", "source": "knowledgeBased|webVerified|webOnly" }],
    "historical": [{ "name": "", "era": "", "mechanism": "", "lesson": "", "source": "knowledgeBased" }],
    "adjacent": [{ "name": "", "originalDomain": "", "mechanism": "", "transferPotential": "", "source": "knowledgeBased" }],
    "nature": [{ "name": "", "mechanism": "", "biomimicryPotential": "", "source": "knowledgeBased" }]
  },
  "marketData": {
    "companies": [{ "name": "", "url": "", "funding": "", "pricing": "", "limitation": "", "source": "webVerified" }],
    "marketSize": "",
    "segments": [],
    "pricingLandscape": { "freeOptions": [], "lowEnd": "", "midRange": "", "enterprise": "", "commonModels": [] },
    "recentFunding": []
  },
  "trends": {
    "hotNow": [],
    "emerging": [],
    "technologyEnablers": [],
    "soloDevOpportunities": []
  },
  "patterns": [{ "name": "", "mechanism": "", "examples": [], "transferPotential": "" }],
  "dataSources": { "knowledgeBased": 0, "webVerified": 0, "webOnly": 0 }
}

runs.json (per need — lightweight run log)

{
  "need": "Status",
  "slug": "status",
  "runs": [
    {
      "date": "2026-02-28",
      "constraintsSnapshot": {
        "experienceLevel": "intermediate",
        "techStack": ["React", "TypeScript", "Node.js"]
      },
      "stats": {
        "industries": 8,
        "mechanisms": 15,
        "deepDives": 3,
        "appConcepts": 5,
        "crossPollinations": 5
      },
      "topIndustry": {
        "name": "Reputation Economy Platform",
        "score": 84,
        "verdict": "BUILD"
      },
      "tags": ["reputation", "trust"]
    }
  ]
}

graph.json (global — cross-need connections)

{
  "version": "1.0.0",
  "connections": [
    {
      "type": "shared-mechanism",
      "source": { "need": "status", "run": "2026-02-28", "item": "status-1" },
      "target": { "need": "belonging", "run": "2026-03-01", "item": "belonging-3" },
      "mechanism": "trust-building",
      "strength": 0.85
    },
    {
      "type": "shared-theme",
      "source": { "need": "status", "run": "2026-02-28" },
      "target": { "need": "belonging", "run": "2026-03-01" },
      "mechanism": "social-proof",
      "strength": 0.70
    }
  ],
  "themes": {
    "trust": {
      "occurrences": [
        { "need": "status", "run": "2026-02-28", "context": "Trust-building core to reputation industries" },
        { "need": "belonging", "run": "2026-03-01", "context": "Trust enables community formation" }
      ]
    }
  }
}

need.json

{
  "id": "slug",
  "name": "Need Name",
  "icon": "Users",
  "description": "Core need description",
  "priorArt": {
    "currentLeaders": [{"name": "", "domain": "", "mechanism": "", "limitation": ""}],
    "historicalPrecedents": [{"name": "", "era": "", "mechanism": "", "lesson": ""}],
    "adjacentDomains": [{"name": "", "originalDomain": "", "mechanism": "", "transferPotential": ""}],
    "natureSolutions": [{"name": "", "mechanism": "", "biomimicryPotential": ""}]
  },
  "eras": [
    {"name": "Pre-Industrial", "expressions": [""]},
    {"name": "Industrial", "expressions": [""]},
    {"name": "Digital (2000s-2020)", "expressions": [""]},
    {"name": "Post-AI Era (2025+)", "expressions": [
      {"id": "", "type": "future", "name": "", "mutation": "", "insight": "", "inspirations": [{"source": "", "mechanism": "", "twist": ""}], "children": []}
    ]}
  ],
  "relatedNeeds": []
}

mechanisms.json, deep-dives.json, app-concepts.json, cross-pollinations.json, chains.json, patterns.json, prior-art.json

All keyed by expression ID (or pattern slug / cross-key). Each entry has a timestamp and the framework-specific analysis data. See the corresponding skill files for detailed schemas.

Helper Patterns

Resolving the Latest Run for a Need

1. Read research/{slug}/runs.json → last entry's "date" field
2. OR: list directories in research/{slug}/, find latest date-formatted dir
3. Fallback: if runs.json doesn't exist, check for flat files (v1 legacy)

Scanning Digests for Quick Context

For each need in index.json:
  1. Get latestRun date from index entry (or resolve as above)
  2. Read research/{slug}/{latestRun}/digest.json
  3. This gives: scores, verdicts, top mechanisms, top concepts, tags, insights

This is much faster than reading full data files and sufficient for:

  • Session resume greetings
  • Dashboard display
  • Cross-need comparisons
  • Finding which need to drill into

Using MCP Search

When the MCP tool search_research is available:

1. Call search_research(query="trust", need="status", limit=10)
2. Results include: need, runDate, fileType, itemId, title, snippet, tags
3. Use results to locate specific files for deeper reading

When MCP is NOT available, fall back to reading files:

1. For each need, read latest digest.json for tag/theme matching
2. For deeper search, read the specific data files

Finding Cross-Need Connections

1. Use MCP find_connections(need_a="status", need_b="belonging") if available
2. OR: Read research/graph.json directly
3. Connections include: shared mechanisms, shared themes, industry overlaps

Comparing Runs

1. Use MCP get_timeline(need="status") if available
2. OR: Read research/{slug}/runs.json for run list
3. Read digest.json from each run for side-by-side comparison
4. Show: how scores changed, new industries discovered, constraint changes

Finding an Industry by Name

Search all need.json files → eras[3].expressions and recursively through children. In v2, check the latest run directory first, then older runs if needed.

Generating Slugs

Lowercase, replace spaces with hyphens, remove special characters.

Updating Index Stats

After any write, recount entries in data files and update index.json. In v2, also update totalRuns, latestRun, latestTopIndustry, and tags.

ID Format

{slug}-{n} for expressions, {parent-id}-{n} for children, cross-{n} for hybrids.