connection-review
Constraints
- NEVER scan whole vault; scope = 5-15 primary notes + small supporting set
- NEVER treat keyword overlap alone as evidence of connection
- NEVER synthesize week-level meaning (that is weekly-synthesis)
- NEVER write links without explicit user confirmation
- NEVER turn review into whole-vault graphing
Trigger Boundary
Use when: find note connections, suggest wikilinks, identify repeated patterns, surface contradictions, review relationships in a bounded set.
Do NOT use for:
- Raw inbox sorting →
inbox-triage
- Week-level thesis and one action →
weekly-synthesis
- Vault system health diagnosis →
vault-health-feedback
- Upgrading material into stable notes →
note-promotion
Boundaries
- Owns: link discovery, pattern detection, contradiction surfacing, follow-up suggestions
- Delegates to:
note-promotion (follow-up accepted), weekly-synthesis (patterns span week)
- Never absorbs: inbox routing, synthesis, health diagnosis, context maintenance
Continuations
| Condition |
Next skill |
| Follow-up note suggestion accepted by user |
note-promotion |
| Patterns span full week window, user requests synthesis |
weekly-synthesis |
| Notes too raw for relationship analysis |
inbox-triage |
| All connections weak/uncertain |
Escalate to human |
Companion Skill
All vault operations follow obsidian-mcp. Forbidden: obsidian_patch_note, obsidian_append_to_note. Verify every write through readback.
Procedure
Phase 1: Scope
obsidian_list_notes or obsidian_search_notes → identify recent/specified set
- Bound to 5-15 primary notes; reject unbounded requests (ask user to narrow)
Phase 2: Read
- For each:
obsidian_get_note format:"document-map" → structure overview
format:"content" only when evidence is needed for a specific connection
- Read older notes only to verify a suspected relationship
Phase 3: Analyze
When analyzing, read references/examples.md for connection quality calibration.
Four layers:
- Link candidates: explicit note-to-note or note-to-project relationships
- Pattern signals: repeated themes, problems, or methods across 3+ notes
- Contradiction signals: new vs old claims, goal vs method, assumption vs evidence
- Follow-up note suggestions: synthesis, topic, contradiction, or question notes
- Repeated method across 3+ notes = method pattern
- Same problem framed differently in 2+ notes = contradiction candidate
- Same entity referenced but never linked = link candidate
- Shared tag + temporal proximity alone ≠ connection (keyword trap)
- Contradiction requires real tension, not mere difference of topic
- A "pattern" with only 2 data points is a hypothesis, not a finding
Phase 4: Report
When formatting output, read references/templates.md for the exact report structure.
Default mode: analysis-only. Write links only after confirmation using obsidian_replace_in_note + readback.
Gotchas
Gotcha 1: Keyword matching as connection
What happens: Agent suggests links because two notes share the same tag or word
Why it's wrong: Keyword overlap without conceptual relationship creates noise in the graph
Correct approach: Require conceptual, project, or evidence-based relationship; cite specific content from both notes
Gotcha 2: Scope creep into whole-vault graphing
What happens: Agent starts reading notes outside the specified set
Why it's wrong: Violates bounded scope constraint; wastes token budget exponentially
Correct approach: Stay within 5-15 primary notes; read outside only to verify one specific suspected link
Gotcha 3: Review becomes synthesis
What happens: Agent extracts a thesis or "what it all means" from the connections
Why it's wrong: That is weekly-synthesis territory; connection-review stops at relationships
Correct approach: Report links, patterns, contradictions, follow-ups — do not interpret overall meaning
Validators (CI only, not runtime)
validators/pre-check.sh: Confirms note set is bounded (≤15 primary notes)
validators/post-check.sh: Verifies output contains no synthesis markers (thesis/emerging meaning)
Exit Criteria
- Every connection suggestion names both endpoints and cites evidence
- Patterns and contradictions are not based on keyword overlap alone
- Whole vault was not scanned
- Any written link has been read back and verified
1---2name: connection-review3description: Analyze relationships in a bounded set of Obsidian notes: candidate links, repeated patterns, contradictions, and follow-up opportunities. Load when user asks to find connections, suggest wikilinks, or surface contradictions. Do NOT use for inbox triage, weekly synthesis, or note promotion.4license: Apache-2.05---67# connection-review89## Constraints1011- NEVER scan whole vault; scope = 5-15 primary notes + small supporting set12- NEVER treat keyword overlap alone as evidence of connection13- NEVER synthesize week-level meaning (that is weekly-synthesis)14- NEVER write links without explicit user confirmation15- NEVER turn review into whole-vault graphing1617## Trigger Boundary1819**Use when:** find note connections, suggest wikilinks, identify repeated patterns, surface contradictions, review relationships in a bounded set.2021**Do NOT use for:**22- Raw inbox sorting → `inbox-triage`23- Week-level thesis and one action → `weekly-synthesis`24- Vault system health diagnosis → `vault-health-feedback`25- Upgrading material into stable notes → `note-promotion`2627## Boundaries2829- **Owns:** link discovery, pattern detection, contradiction surfacing, follow-up suggestions30- **Delegates to:** `note-promotion` (follow-up accepted), `weekly-synthesis` (patterns span week)31- **Never absorbs:** inbox routing, synthesis, health diagnosis, context maintenance3233## Continuations3435| Condition | Next skill |36|-----------|-----------|37| Follow-up note suggestion accepted by user | `note-promotion` |38| Patterns span full week window, user requests synthesis | `weekly-synthesis` |39| Notes too raw for relationship analysis | `inbox-triage` |40| All connections weak/uncertain | Escalate to human |4142## Companion Skill4344All vault operations follow `obsidian-mcp`. Forbidden: `obsidian_patch_note`, `obsidian_append_to_note`. Verify every write through readback.4546## Procedure4748### Phase 1: Scope491. `obsidian_list_notes` or `obsidian_search_notes` → identify recent/specified set502. Bound to 5-15 primary notes; reject unbounded requests (ask user to narrow)5152### Phase 2: Read531. For each: `obsidian_get_note format:"document-map"` → structure overview542. `format:"content"` only when evidence is needed for a specific connection553. Read older notes only to verify a suspected relationship5657### Phase 3: Analyze5859When analyzing, read `references/examples.md` for connection quality calibration.6061Four layers:621. **Link candidates**: explicit note-to-note or note-to-project relationships632. **Pattern signals**: repeated themes, problems, or methods across 3+ notes643. **Contradiction signals**: new vs old claims, goal vs method, assumption vs evidence654. **Follow-up note suggestions**: synthesis, topic, contradiction, or question notes6667<details>68<summary>Pattern Detection Heuristics (expand when patterns are ambiguous)</summary>6970- Repeated method across 3+ notes = method pattern71- Same problem framed differently in 2+ notes = contradiction candidate72- Same entity referenced but never linked = link candidate73- Shared tag + temporal proximity alone ≠ connection (keyword trap)74- Contradiction requires real tension, not mere difference of topic75- A "pattern" with only 2 data points is a hypothesis, not a finding7677</details>7879### Phase 4: Report8081When formatting output, read `references/templates.md` for the exact report structure.8283Default mode: analysis-only. Write links only after confirmation using `obsidian_replace_in_note` + readback.8485## Gotchas8687### Gotcha 1: Keyword matching as connection88**What happens:** Agent suggests links because two notes share the same tag or word89**Why it's wrong:** Keyword overlap without conceptual relationship creates noise in the graph90**Correct approach:** Require conceptual, project, or evidence-based relationship; cite specific content from both notes9192### Gotcha 2: Scope creep into whole-vault graphing93**What happens:** Agent starts reading notes outside the specified set94**Why it's wrong:** Violates bounded scope constraint; wastes token budget exponentially95**Correct approach:** Stay within 5-15 primary notes; read outside only to verify one specific suspected link9697### Gotcha 3: Review becomes synthesis98**What happens:** Agent extracts a thesis or "what it all means" from the connections99**Why it's wrong:** That is weekly-synthesis territory; connection-review stops at relationships100**Correct approach:** Report links, patterns, contradictions, follow-ups — do not interpret overall meaning101102## Validators (CI only, not runtime)103104- `validators/pre-check.sh`: Confirms note set is bounded (≤15 primary notes)105- `validators/post-check.sh`: Verifies output contains no synthesis markers (thesis/emerging meaning)106107## Exit Criteria108109- Every connection suggestion names both endpoints and cites evidence110- Patterns and contradictions are not based on keyword overlap alone111- Whole vault was not scanned112- Any written link has been read back and verified