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:
- Read
constraints.jsonfor builder profile - Read
research/index.jsonfor research state - 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. - Read
research/graph.jsonfor cross-need connections - 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)
| Command | Purpose |
|---|---|
/itropa:setup | Initialize 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:constraints | Builder 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_researchtool 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_timelineor read digests, show side-by-side comparison - "What connects Status and Belonging?" → Use MCP
find_connectionsor 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:
| Agent | Model | Tools | Purpose |
|---|---|---|---|
knowledge-researcher | sonnet | Read, WebSearch, WebFetch | Prior art, historical patterns, biomimicry, abstract mechanisms — training knowledge verified and enriched via web search |
market-researcher | sonnet | Read, WebSearch, WebFetch | Companies, funding, pricing, market sizing, competitive gaps — training knowledge combined with real web data |
trend-researcher | sonnet | Read, WebSearch, WebFetch | Recent 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.