From mos
Proactive Data Room intelligence. Surfaces gaps, contradictions, and convergence signals. Active when room/ exists with entries.
npx claudepluginhub jsagir/mindrian-os-pluginThis skill uses the workspace's default tool permissions.
The Room is an active thinking partner. This skill surfaces what is missing, conflicting, and strengthening.
Conducts multi-round deep research on GitHub repos via API and web searches, generating markdown reports with executive summaries, timelines, metrics, and Mermaid diagrams.
Dynamically discovers and combines enabled skills into cohesive, unexpected delightful experiences like interactive HTML or themed artifacts. Activates on 'surprise me', inspiration, or boredom cues.
Generates images from structured JSON prompts via Python script execution. Supports reference images and aspect ratios for characters, scenes, products, visuals.
The Room is an active thinking partner. This skill surfaces what is missing, conflicting, and strengthening.
This skill activates when scripts/resolve-room finds any active room with entries. The resolver checks (in order): central registry at ~/MindrianRooms/.rooms/registry.json, directory scan under ~/MindrianRooms/, workspace registry, and legacy room/ fallback. All analysis below operates on the resolved room path.
| Trigger | Behavior |
|---|---|
| SessionStart | Max 2 HIGH findings. Prioritize 1 gap + 1 convergence (or contradiction). |
| /mos:status | All HIGH + MEDIUM findings grouped by type. |
| /mos:room --insights | Full analysis including LOW with interpretation. |
| Methodology session | NEVER interrupt. Save for next SessionStart. |
| PostToolUse (cascade complete) | Check cascade_status.proactive_intelligence.newFindings. If non-empty, present max 2 for APPROVE/REJECT/DEFER using Decision Capture flow. |
depth: quick.Phrase as opportunities, not criticisms. Suggest specific commands.
Detect these conditions in room/team-execution/ and room/team/:
| Signal | Condition | Confidence | Message |
|---|---|---|---|
GAP:TEAM:no_profiles | team-execution/ has 0 member profiles AND team/members/ empty or missing | HIGH | "No team mapped yet. Leadership starts with knowing who you're leading. Try: /mos:leadership" |
GAP:TEAM:no_mentors | team/mentors/ empty or missing AND 3+ team members exist | MEDIUM | "Team of [N] with no advisors mapped. Most ventures this size benefit from external perspective." |
GAP:TEAM:solo_founder | Only 1 person in team/ AND venture_stage past Pre-Opportunity | MEDIUM | "Solo at [stage] stage. The question isn't if you need a team -- it's what kind." |
GAP:TEAM:no_assessment | team-execution/ has member profiles but no leadership assessment artifact | MEDIUM | "Team profiles exist but no leadership assessment. Run /mos:leadership to diagnose team dynamics." |
GAP:TEAM:stale_assessment | Leadership assessment artifact older than 30 days AND room has new entries | LOW | "Leadership assessment is [N] days old. Team dynamics shift -- worth revisiting." |
Scan for incompatible claims: customer type, market size, problem definition, timing assumptions.
Frame as tensions worth reconciling. Check created: dates -- natural evolution (old X -> recent Y) is progress, not contradiction.
| Signal | Condition | Confidence | Message |
|---|---|---|---|
CONTRADICT:TEAM:capacity_mismatch | solution-design requires capabilities not present in any team profile | HIGH | "Solution design needs [capability] but no team member covers it. Hire, partner, or simplify?" |
CONTRADICT:TEAM:stage_mismatch | Team structure suggests Ready to Build but venture_stage is Pre-Opportunity | MEDIUM | "Full team assembled but problem isn't validated yet. Building before validating is the #1 startup killer." |
Same domain/customer/risk/theme in 3+ artifacts from different methodologies. Phrase as signal strength.
| Level | Criteria | Display |
|---|---|---|
| HIGH | Direct structural evidence, 3+ entries, clear conflict | SessionStart |
| MEDIUM | 2 entries, keyword overlap, single-lens | /mos:status |
| LOW | Single entry inference, weak match | Explicit request only |
When cascade_status appears in additionalContext (from a post-write hook completing), check for new findings:
Look for proactive_intelligence.newFindings in the cascade_status JSON. If the array is non-empty, there are new intelligence findings from the filing that just occurred.
newFindings has 1+ items with confidence >= 0.60: present using the "After Filing: Decision Capture" flow belownewFindings is empty or all items have confidence < 0.60: do not interrupt -- the cascade ran but found nothing newproactive_intelligence.suppressed > 0: silently note that repeat findings were filtered -- do NOT mention suppression to the userIf a finding has isNew: false, it means this is a PREVIOUSLY SEEN finding that has NEW EVIDENCE (confidence or message changed). Present it with context:
"I've seen this signal before, but new evidence just shifted it. [Finding message]. Confidence is now [0.xx] (was different before)."
This distinguishes updated findings from brand-new discoveries and helps the user understand why they are seeing something again.
When the post-write cascade completes and returns newFindings in cascade_status.proactive_intelligence, present findings to the user for decision.
proactive_intelligence.newFindings with 1+ itemsdecided: trueFormat each finding as a natural observation, not a system alert:
"I noticed something while filing that [artifact title]. [Finding message]. Confidence: [0.xx]
This [CONTRADICTS/creates a GAP in/CONVERGES WITH] your [section name].
What would you like to do?
When the user responds, run this command via Bash:
For APPROVE:
node bin/mindrian-tools.cjs record-decision --room ROOM_PATH --key "INSIGHT_KEY" --decision approve
For REJECT (reason is REQUIRED -- ask for it if not provided):
node bin/mindrian-tools.cjs record-decision --room ROOM_PATH --key "INSIGHT_KEY" --decision reject --reason "USER_REASON_HERE"
For DEFER:
node bin/mindrian-tools.cjs record-decision --room ROOM_PATH --key "INSIGHT_KEY" --decision defer
Where:
type:subtype:section for gaps, convergence:term for convergence, contradiction:section1:section2 for contradictions)If the finding references specific artifacts with IDs, add --source-artifact and --target-artifact flags to create a graph edge.
When a user rejects a finding, their reason is the most valuable signal in the system. ALWAYS capture the reason. If the user says just "no" or "reject", ask: "Got it -- can you tell me briefly why? Your reasoning helps me learn what matters for this venture."
Confirm briefly: "Noted -- [decision]. [If reject: Your reasoning is now part of the room's intelligence.]"
Do NOT follow up with more findings. One decision interaction per filing. If there were 2 findings presented, capture both decisions before moving on.
GAP:STRUCTURAL:{section}:{confidence}:{message}GAP:SEMANTIC:{section}:{confidence}:{message}GAP:ADJACENT:{section}:{confidence}:{message}CONVERGE:{term}:{count}:{confidence}:{message}CONTRADICT:{section1}:{section2}:{confidence}:{message}Script catches structural patterns; add semantic interpretation from actual Room entries.
CAPABILITY:{feature}:{confidence}:{message} signals when room has enough data for features:
| Feature | Threshold | Command |
|---|---|---|
| DASHBOARD | 3+ artifacts | /mos:room view |
| EXPORT_DASHBOARD | 7+ artifacts | /mos:room export |
| WIKI | 5+ artifacts + 1+ meeting | /mos:wiki |
| MEETING_REPORT | 3+ artifacts + 2+ meetings | /mos:export meeting-report |
| THESIS | 10+ artifacts | /mos:export thesis |
| TEAM_VIEW | 2+ team profiles | /mos:room view |
| LEADERSHIP_COACHING | 2+ team members + no leadership artifact | /mos:leadership |
Max 1 capability suggestion per SessionStart. Natural voice. Never repeat used commands.
Surface causal discoveries when graph has 5+ CausalClaim nodes AND 3+ CASCADES_TO edges:
ALWAYS use scripts/generate-standalone or scripts/serve-dashboard. NEVER generate HTML by hand.