@jayjiang/byoao 1.1.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__tests__/plugin-config.test.js +7 -10
- package/dist/__tests__/plugin-config.test.js.map +1 -1
- package/dist/assets/obsidian-skills/byoao-conventions.md +30 -54
- package/dist/assets/obsidian-skills/vault-thinking.md +6 -5
- package/dist/assets/presets/common/AGENTS.md.hbs +29 -46
- package/dist/assets/presets/common/SCHEMA.md.hbs +57 -0
- package/dist/assets/presets/common/Start Here.md.hbs +29 -40
- package/dist/assets/presets/minimal/preset.json +3 -3
- package/dist/assets/presets/pm-tpm/preset.json +2 -2
- package/dist/assets/skills/ask.md +28 -27
- package/dist/assets/skills/challenge.md +79 -121
- package/dist/assets/skills/connect.md +75 -163
- package/dist/assets/skills/cook.md +167 -0
- package/dist/assets/skills/diagnose.md +102 -43
- package/dist/assets/skills/drift.md +64 -165
- package/dist/assets/skills/health.md +63 -0
- package/dist/assets/skills/ideas.md +11 -10
- package/dist/assets/skills/organize.md +56 -155
- package/dist/assets/skills/prep.md +63 -0
- package/dist/assets/skills/trace.md +75 -90
- package/dist/assets/skills/wiki.md +77 -178
- package/dist/cli/cli-program.js +17 -14
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/installer.js +10 -4
- package/dist/cli/installer.js.map +1 -1
- package/dist/hooks/idle-suggestions.js +4 -4
- package/dist/hooks/idle-suggestions.js.map +1 -1
- package/dist/hooks/system-transform.js +35 -1
- package/dist/hooks/system-transform.js.map +1 -1
- package/dist/index.js +395 -623
- package/dist/index.js.map +1 -1
- package/dist/plugin-config.js +6 -32
- package/dist/plugin-config.js.map +1 -1
- package/dist/tools/init-vault.js +8 -38
- package/dist/tools/init-vault.js.map +1 -1
- package/dist/tools/vault-doctor.js +1 -1
- package/dist/tools/vault-doctor.js.map +1 -1
- package/dist/tools/vault-status.js +1 -1
- package/dist/tools/vault-status.js.map +1 -1
- package/dist/vault/__tests__/create.test.js +47 -115
- package/dist/vault/__tests__/create.test.js.map +1 -1
- package/dist/vault/__tests__/doctor.test.js +14 -2
- package/dist/vault/__tests__/doctor.test.js.map +1 -1
- package/dist/vault/__tests__/manifest.test.js +2 -2
- package/dist/vault/__tests__/manifest.test.js.map +1 -1
- package/dist/vault/__tests__/status.test.js +12 -0
- package/dist/vault/__tests__/status.test.js.map +1 -1
- package/dist/vault/__tests__/upgrade.test.js +3 -3
- package/dist/vault/__tests__/upgrade.test.js.map +1 -1
- package/dist/vault/create.js +75 -188
- package/dist/vault/create.js.map +1 -1
- package/dist/vault/doctor.js +49 -0
- package/dist/vault/doctor.js.map +1 -1
- package/dist/vault/manifest.js +1 -1
- package/dist/vault/preset.js +10 -4
- package/dist/vault/preset.js.map +1 -1
- package/dist/vault/self-update.js +1 -1
- package/dist/vault/status.js +24 -0
- package/dist/vault/status.js.map +1 -1
- package/dist/vault/upgrade.js +120 -16
- package/dist/vault/upgrade.js.map +1 -1
- package/package.json +1 -1
- package/src/assets/obsidian-skills/byoao-conventions.md +9 -6
- package/src/assets/obsidian-skills/vault-thinking.md +6 -5
- package/src/assets/presets/common/AGENTS.md.hbs +23 -19
- package/src/assets/presets/common/SCHEMA.md.hbs +57 -0
- package/src/assets/presets/common/Start Here.md.hbs +29 -40
- package/src/assets/presets/minimal/preset.json +3 -3
- package/src/assets/presets/pm-tpm/preset.json +2 -2
- package/src/skills/ask.md +28 -27
- package/src/skills/challenge.md +79 -121
- package/src/skills/connect.md +75 -163
- package/src/skills/cook.md +167 -0
- package/src/skills/diagnose.md +102 -43
- package/src/skills/drift.md +64 -165
- package/src/skills/health.md +63 -0
- package/src/skills/ideas.md +11 -10
- package/src/skills/organize.md +56 -155
- package/src/skills/prep.md +63 -0
- package/src/skills/trace.md +75 -90
- package/src/skills/wiki.md +77 -178
- package/dist/assets/presets/common/Glossary.md.hbs +0 -16
- package/dist/assets/presets/common/obsidian/daily-notes.json +0 -5
- package/dist/assets/presets/common/obsidian/templates.json +0 -3
- package/dist/assets/presets/common/templates/Daily Note.md +0 -19
- package/dist/assets/presets/common/templates/Decision Record.md +0 -32
- package/dist/assets/presets/common/templates/Investigation.md +0 -34
- package/dist/assets/presets/common/templates/Meeting Notes.md +0 -25
- package/dist/assets/skills/emerge.md +0 -168
- package/dist/assets/skills/weave.md +0 -287
- package/dist/tools/add-glossary-term.js +0 -21
- package/dist/tools/add-glossary-term.js.map +0 -1
- package/dist/tools/add-person.js +0 -21
- package/dist/tools/add-person.js.map +0 -1
- package/dist/tools/add-project.js +0 -24
- package/dist/tools/add-project.js.map +0 -1
- package/dist/tools/graph-health.js +0 -25
- package/dist/tools/graph-health.js.map +0 -1
- package/dist/tools/note-read.js +0 -19
- package/dist/tools/note-read.js.map +0 -1
- package/dist/tools/search-vault.js +0 -22
- package/dist/tools/search-vault.js.map +0 -1
- package/dist/vault/__tests__/glossary.test.js +0 -68
- package/dist/vault/__tests__/glossary.test.js.map +0 -1
- package/dist/vault/__tests__/graph-health.test.js +0 -102
- package/dist/vault/__tests__/graph-health.test.js.map +0 -1
- package/dist/vault/__tests__/member.test.js +0 -85
- package/dist/vault/__tests__/member.test.js.map +0 -1
- package/dist/vault/__tests__/note-read.test.js +0 -71
- package/dist/vault/__tests__/note-read.test.js.map +0 -1
- package/dist/vault/__tests__/obsidian-cli.test.js +0 -108
- package/dist/vault/__tests__/obsidian-cli.test.js.map +0 -1
- package/dist/vault/__tests__/search-vault.test.js +0 -93
- package/dist/vault/__tests__/search-vault.test.js.map +0 -1
- package/dist/vault/glossary.js +0 -27
- package/dist/vault/glossary.js.map +0 -1
- package/dist/vault/graph-health.js +0 -83
- package/dist/vault/graph-health.js.map +0 -1
- package/dist/vault/member.js +0 -67
- package/dist/vault/member.js.map +0 -1
- package/dist/vault/note-read.js +0 -70
- package/dist/vault/note-read.js.map +0 -1
- package/dist/vault/project.js +0 -68
- package/dist/vault/project.js.map +0 -1
- package/dist/vault/retrieval-types.js +0 -5
- package/dist/vault/retrieval-types.js.map +0 -1
- package/dist/vault/search-vault.js +0 -87
- package/dist/vault/search-vault.js.map +0 -1
- package/src/assets/presets/common/obsidian/daily-notes.json +0 -5
- package/src/assets/presets/common/obsidian/templates.json +0 -3
- package/src/assets/presets/common/templates/Daily Note.md +0 -19
- package/src/assets/presets/common/templates/Decision Record.md +0 -32
- package/src/assets/presets/common/templates/Investigation.md +0 -34
- package/src/assets/presets/common/templates/Meeting Notes.md +0 -25
- package/src/skills/emerge.md +0 -168
- package/src/skills/weave.md +0 -287
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: challenge
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Pressure-tests beliefs against vault evidence. Finds contradictions, position changes,
|
|
5
|
+
unstated assumptions, and weak points in arguments. Use when the user wants to question
|
|
6
|
+
a decision, test a hypothesis, or find flaws in their reasoning.
|
|
4
7
|
---
|
|
5
8
|
|
|
6
|
-
# /challenge — Pressure
|
|
9
|
+
# /challenge — Pressure Test
|
|
7
10
|
|
|
8
|
-
You are a
|
|
11
|
+
You are a respectful adversary. Your job is to find the weak points in a belief, decision, or argument — not to be destructive, but to strengthen the user's thinking by exposing vulnerabilities they may have missed.
|
|
9
12
|
|
|
10
13
|
## Prerequisites Check
|
|
11
14
|
|
|
@@ -13,162 +16,117 @@ You are a constructive critic. Your job is to take a belief, assumption, or deci
|
|
|
13
16
|
obsidian --version
|
|
14
17
|
```
|
|
15
18
|
|
|
16
|
-
If this fails, STOP and display the Obsidian CLI availability message (see /
|
|
17
|
-
|
|
18
|
-
## Tool Selection
|
|
19
|
-
|
|
20
|
-
Use `obsidian` CLI for content operations (read, search, backlinks, properties, tags). Use BYOAO tools (`byoao_search_vault`, `byoao_graph_health`) when Obsidian CLI is unavailable or for graph-level structural queries.
|
|
19
|
+
If this fails, STOP and display the Obsidian CLI availability message (see /prep).
|
|
21
20
|
|
|
22
21
|
## Parameters
|
|
23
22
|
|
|
24
|
-
- **
|
|
25
|
-
- **
|
|
26
|
-
- **output** (optional): Save the challenge analysis as a note.
|
|
23
|
+
- **claim** (required): The belief, decision, or argument to challenge.
|
|
24
|
+
- **scope** (optional): `all` (full vault) or a specific directory/page. Default: `all`.
|
|
27
25
|
|
|
28
26
|
## Process
|
|
29
27
|
|
|
30
|
-
### Step 1:
|
|
31
|
-
|
|
32
|
-
Parse the user's input and restate the belief clearly:
|
|
33
|
-
|
|
34
|
-
> "The belief being tested: **{clear statement}**"
|
|
28
|
+
### Step 1: Understand the Claim
|
|
35
29
|
|
|
36
|
-
|
|
30
|
+
Clarify what exactly is being challenged:
|
|
31
|
+
- What is the core assertion?
|
|
32
|
+
- What assumptions does it rest on?
|
|
33
|
+
- What would falsify it?
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
obsidian read "<note>"
|
|
40
|
-
```
|
|
35
|
+
If the claim is ambiguous, ask the user to clarify before proceeding.
|
|
41
36
|
|
|
42
37
|
### Step 2: Find Supporting Evidence
|
|
43
38
|
|
|
44
|
-
First, be fair — find notes that support the belief:
|
|
45
|
-
|
|
46
39
|
```bash
|
|
47
|
-
obsidian search "<key terms from
|
|
40
|
+
obsidian search "<key terms from claim>"
|
|
48
41
|
```
|
|
49
42
|
|
|
50
|
-
Read notes
|
|
51
|
-
-
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
|
|
55
|
-
### Step 3: Find Counter-Evidence
|
|
56
|
-
|
|
57
|
-
Now actively look for contradictions:
|
|
58
|
-
|
|
59
|
-
**Direct contradictions** — Notes that explicitly state the opposite.
|
|
60
|
-
|
|
61
|
-
**Changed positions** — Run a temporal analysis (like /trace):
|
|
62
|
-
- Did the user ever hold a different view?
|
|
63
|
-
- When did it change? What triggered it?
|
|
64
|
-
- Was the change based on new evidence or assumption?
|
|
65
|
-
|
|
66
|
-
**Unstated assumptions** — What does the belief take for granted?
|
|
67
|
-
- "This assumes that {X} will remain true"
|
|
68
|
-
- "This assumes that {person/team} agrees"
|
|
69
|
-
- "This assumes the current constraints won't change"
|
|
70
|
-
|
|
71
|
-
**Missing perspectives** — Whose viewpoint is absent?
|
|
72
|
-
- "No notes consider the user/customer perspective"
|
|
73
|
-
- "The cost analysis only covers engineering, not operations"
|
|
74
|
-
|
|
75
|
-
**Survivorship bias** — Is the vault only tracking successes?
|
|
76
|
-
- "Three similar initiatives are documented, all framed positively. Are there failed attempts that weren't documented?"
|
|
77
|
-
|
|
78
|
-
### Step 4: Assess Confidence Level
|
|
43
|
+
Read relevant notes and agent pages. Identify:
|
|
44
|
+
- Notes that explicitly support the claim
|
|
45
|
+
- Notes that provide indirect support (data, observations)
|
|
46
|
+
- The strength of each piece of evidence
|
|
79
47
|
|
|
80
|
-
|
|
48
|
+
### Step 3: Find Contradicting Evidence
|
|
81
49
|
|
|
82
|
-
|
|
83
|
-
|-------|-------------|
|
|
84
|
-
| **Strong** | Consistent support across notes, no meaningful counter-evidence, assumptions are reasonable |
|
|
85
|
-
| **Moderate** | Good support but some counter-evidence exists, or key assumptions are untested |
|
|
86
|
-
| **Weak** | Significant counter-evidence, contradictions over time, or critical unstated assumptions |
|
|
87
|
-
| **Contradicted** | The vault's own history provides stronger evidence against the belief |
|
|
50
|
+
This is the core of /challenge. Search for:
|
|
88
51
|
|
|
89
|
-
|
|
52
|
+
1. **Direct contradictions** — Notes that explicitly state the opposite
|
|
53
|
+
```bash
|
|
54
|
+
obsidian search "not <term>" OR "instead of <term>" OR "changed from <term>"
|
|
55
|
+
```
|
|
90
56
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
**Confidence level**: {Strong / Moderate / Weak / Contradicted}
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## The Belief
|
|
99
|
-
|
|
100
|
-
{Restated belief in the user's own words, citing the source note if applicable}
|
|
101
|
-
|
|
102
|
-
## Supporting Evidence ({N} notes)
|
|
103
|
-
|
|
104
|
-
- **[[Note]]**: "{quote supporting the belief}"
|
|
105
|
-
- **[[Note]]**: "{quote}"
|
|
57
|
+
2. **Implicit contradictions** — Notes that describe a situation incompatible with the claim
|
|
58
|
+
- Read pages with shared tags but different conclusions
|
|
59
|
+
- On related `entities/` and `concepts/` pages, check optional `contradictions` frontmatter (v2: YAML list of other agent page names documenting conflicting claims — see `/cook` Contradiction Handling)
|
|
106
60
|
|
|
107
|
-
|
|
61
|
+
3. **Position changes over time** — Notes that show the user changed their mind
|
|
62
|
+
```bash
|
|
63
|
+
obsidian search "actually" OR "turns out" OR "reconsidered" OR "reversed"
|
|
64
|
+
```
|
|
108
65
|
|
|
109
|
-
|
|
66
|
+
4. **Weasel words** — Notes that express uncertainty about aspects the claim treats as certain
|
|
67
|
+
- "might", "probably", "not sure", "need to verify"
|
|
68
|
+
- These indicate the claim is stronger than the evidence supports
|
|
110
69
|
|
|
111
|
-
|
|
112
|
-
**Why this matters**: {explanation}
|
|
70
|
+
### Step 4: Identify Unstated Assumptions
|
|
113
71
|
|
|
114
|
-
|
|
72
|
+
For the claim to be true, what else must be true?
|
|
115
73
|
|
|
116
|
-
-
|
|
117
|
-
-
|
|
118
|
-
-
|
|
74
|
+
- Technical assumptions (about systems, tools, constraints)
|
|
75
|
+
- People assumptions (about availability, skills, priorities)
|
|
76
|
+
- Temporal assumptions (about deadlines, sequencing, stability)
|
|
77
|
+
- External assumptions (about market, users, dependencies)
|
|
119
78
|
|
|
120
|
-
|
|
79
|
+
Check if the vault evidence supports each assumption.
|
|
121
80
|
|
|
122
|
-
|
|
123
|
-
Evidence: {what the vault says or doesn't say}
|
|
81
|
+
### Step 5: Assess Evidence Strength
|
|
124
82
|
|
|
125
|
-
|
|
83
|
+
Rate the overall case:
|
|
126
84
|
|
|
127
|
-
|
|
85
|
+
| Strength | Meaning |
|
|
86
|
+
|----------|---------|
|
|
87
|
+
| Strong | Multiple independent sources agree, no contradictions |
|
|
88
|
+
| Moderate | Some support, minor gaps or contradictions |
|
|
89
|
+
| Weak | Limited evidence, significant contradictions or gaps |
|
|
90
|
+
| Unknown | Vault doesn't have enough information |
|
|
128
91
|
|
|
129
|
-
|
|
92
|
+
### Step 6: Present the Challenge
|
|
130
93
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
{2-3 paragraphs — fair assessment of how the belief holds up. Not a yes/no judgment but a nuanced analysis of where it's strong and where it's vulnerable.}
|
|
134
|
-
|
|
135
|
-
## Questions to Sit With
|
|
94
|
+
```markdown
|
|
95
|
+
# Challenge: "{claim}"
|
|
136
96
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
3. {Another question}
|
|
97
|
+
## The Claim
|
|
98
|
+
{Restate the claim clearly}
|
|
140
99
|
|
|
141
|
-
##
|
|
100
|
+
## What Rests On This
|
|
101
|
+
{What assumptions does the claim depend on?}
|
|
102
|
+
- {Assumption 1} — {supported / unsupported / contradicted}
|
|
103
|
+
- {Assumption 2} — {supported / unsupported / contradicted}
|
|
142
104
|
|
|
143
|
-
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
```
|
|
105
|
+
## Supporting Evidence
|
|
106
|
+
- [[Note A]]: "{quote}"
|
|
107
|
+
- [[Note B]]: "{quote}"
|
|
147
108
|
|
|
148
|
-
|
|
109
|
+
## Challenging Evidence
|
|
110
|
+
- ⚠ [[Note C]]: "{quote that contradicts or weakens the claim}"
|
|
111
|
+
- ⚠ [[Note D]]: "{quote showing uncertainty or alternative view}"
|
|
149
112
|
|
|
150
|
-
|
|
113
|
+
## Position Changes Over Time
|
|
114
|
+
- {date}: [[Note E]] said X
|
|
115
|
+
- {date}: [[Note F]] said Y (contradicts X)
|
|
151
116
|
|
|
152
|
-
|
|
117
|
+
## Weak Points
|
|
118
|
+
1. **{Weak point}**: {why it's weak, which note shows it}
|
|
119
|
+
2. **{Weak point}**: {why it's weak, which note shows it}
|
|
153
120
|
|
|
154
|
-
|
|
121
|
+
## Overall Assessment
|
|
122
|
+
**Evidence strength**: {Strong / Moderate / Weak / Unknown}
|
|
155
123
|
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
title: "Challenge: {Belief}"
|
|
159
|
-
note_type: literature
|
|
160
|
-
type: analysis
|
|
161
|
-
date: <today>
|
|
162
|
-
tags: [challenge, critical-thinking]
|
|
163
|
-
---
|
|
124
|
+
{2-3 sentence summary: what the vault evidence suggests about this claim, what's uncertain, and what would strengthen or weaken the case further}
|
|
164
125
|
```
|
|
165
126
|
|
|
166
|
-
Use `obsidian create` to save. Ask the user where they'd like it saved.
|
|
167
|
-
|
|
168
127
|
## Key Principles
|
|
169
128
|
|
|
170
|
-
- **
|
|
171
|
-
- **
|
|
172
|
-
- **
|
|
173
|
-
- **
|
|
174
|
-
- **Respect the "strong" result**: If a belief holds up well, say so clearly. Not every challenge needs to find problems.
|
|
129
|
+
- **Respectful opposition.** The goal is to strengthen thinking, not to tear it down. Frame challenges as "here's what to consider" not "you're wrong."
|
|
130
|
+
- **Evidence only.** Every challenge must cite specific vault notes. Don't invent external counterarguments.
|
|
131
|
+
- **Surface uncertainty.** If the vault shows doubt or hesitation about aspects the claim treats as certain, highlight this gap.
|
|
132
|
+
- **Obsidian is first workbench.** All note operations go through Obsidian CLI.
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: connect
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
Bridges two topics using the link graph, shared people, tags, domains, and conceptual
|
|
5
|
+
overlap. Use when the user asks "what's the relationship between X and Y", "connect A to B",
|
|
6
|
+
or wants to understand how two topics relate.
|
|
4
7
|
---
|
|
5
8
|
|
|
6
|
-
# /connect — Bridge Two
|
|
9
|
+
# /connect — Bridge Two Topics
|
|
7
10
|
|
|
8
|
-
You are a
|
|
11
|
+
You are a connector. Your job is to find and explain the relationship between two topics using the vault's knowledge graph — shared entities, overlapping concepts, common sources, and structural connections.
|
|
9
12
|
|
|
10
13
|
## Prerequisites Check
|
|
11
14
|
|
|
@@ -13,201 +16,110 @@ You are a knowledge connector. Your job is to find the hidden relationship betwe
|
|
|
13
16
|
obsidian --version
|
|
14
17
|
```
|
|
15
18
|
|
|
16
|
-
If this fails, STOP and display the Obsidian CLI availability message (see /
|
|
17
|
-
|
|
18
|
-
## Tool Selection
|
|
19
|
-
|
|
20
|
-
Use `obsidian` CLI for content operations (read, search, backlinks, properties, tags). Use BYOAO tools (`byoao_search_vault`, `byoao_graph_health`) when Obsidian CLI is unavailable or for graph-level structural queries.
|
|
19
|
+
If this fails, STOP and display the Obsidian CLI availability message (see /prep).
|
|
21
20
|
|
|
22
21
|
## Parameters
|
|
23
22
|
|
|
24
|
-
- **from** (required):
|
|
25
|
-
- **to** (required):
|
|
26
|
-
- **
|
|
23
|
+
- **from** (required): First topic or page name.
|
|
24
|
+
- **to** (required): Second topic or page name.
|
|
25
|
+
- **depth** (optional): `direct` (only direct connections) or `expanded` (include indirect paths via intermediate pages). Default: `expanded`.
|
|
27
26
|
|
|
28
27
|
## Process
|
|
29
28
|
|
|
30
|
-
### Step 1:
|
|
31
|
-
|
|
32
|
-
For each of the two topics (`from` and `to`):
|
|
33
|
-
|
|
34
|
-
1. **Find the anchor note** — does a vault note exist for this topic?
|
|
29
|
+
### Step 1: Locate Both Topics
|
|
35
30
|
|
|
36
31
|
```bash
|
|
37
|
-
obsidian search "<
|
|
32
|
+
obsidian search "<from>"
|
|
33
|
+
obsidian search "<to>"
|
|
38
34
|
```
|
|
39
35
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
obsidian backlinks "<topic>"
|
|
44
|
-
```
|
|
36
|
+
If `INDEX.base` exists, read it to spot compiled pages for either topic.
|
|
45
37
|
|
|
46
|
-
|
|
38
|
+
Read any existing agent pages in `entities/`, `concepts/`, `comparisons/`, and `queries/`:
|
|
47
39
|
|
|
48
40
|
```bash
|
|
49
|
-
obsidian read "
|
|
41
|
+
obsidian read file="entities/<from>.md" # if exists
|
|
42
|
+
obsidian read file="concepts/<from>.md" # if exists
|
|
43
|
+
obsidian read file="comparisons/<from>.md" # if exists
|
|
44
|
+
obsidian read file="queries/<from>.md" # if exists
|
|
45
|
+
obsidian read file="entities/<to>.md" # if exists
|
|
46
|
+
obsidian read file="concepts/<to>.md" # if exists
|
|
47
|
+
obsidian read file="comparisons/<to>.md" # if exists
|
|
48
|
+
obsidian read file="queries/<to>.md" # if exists
|
|
50
49
|
```
|
|
51
50
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
### Step 2: Find Intersection
|
|
55
|
-
|
|
56
|
-
Compare the two neighborhoods to find overlap:
|
|
57
|
-
|
|
58
|
-
**Shared notes**: Notes that mention both topics.
|
|
59
|
-
> "[[Meeting 2026-03-15]] discusses both 'rate limiting' and 'user onboarding'."
|
|
60
|
-
|
|
61
|
-
**Shared people**: People connected to both topics.
|
|
62
|
-
> "[[Alice]] appears in notes about both domains."
|
|
63
|
-
|
|
64
|
-
**Shared tags**: Tags that appear in both neighborhoods.
|
|
65
|
-
> "Both clusters use #scalability."
|
|
66
|
-
|
|
67
|
-
**Shared domains**: Notes from both topics that share a `domain` field value.
|
|
68
|
-
|
|
69
|
-
**Shared references**: Notes in one neighborhood that reference notes in the other.
|
|
70
|
-
|
|
71
|
-
### Step 3: Find Graph Paths
|
|
72
|
-
|
|
73
|
-
If direct overlap is sparse, look for indirect paths:
|
|
74
|
-
|
|
75
|
-
1. For each note in the `from` neighborhood, check its outgoing links
|
|
76
|
-
2. Do any of those linked notes appear in the `to` neighborhood?
|
|
77
|
-
3. If not, go one hop further — check the links of those linked notes
|
|
78
|
-
|
|
79
|
-
This finds paths like:
|
|
80
|
-
> `from` → [[Note A]] → [[Note B]] → `to`
|
|
81
|
-
|
|
82
|
-
Report the shortest path(s) found, up to 3 hops.
|
|
83
|
-
|
|
84
|
-
### Step 4: Analyze the Bridge
|
|
85
|
-
|
|
86
|
-
For each connection found (shared note, person, tag, or path):
|
|
87
|
-
|
|
88
|
-
1. **Read the bridging notes** to understand the context
|
|
89
|
-
2. **Explain why the connection matters** — what does the bridge reveal?
|
|
90
|
-
3. **Assess strength** — is this a strong thematic link or a coincidental mention?
|
|
91
|
-
|
|
92
|
-
Classify connections:
|
|
93
|
-
- **Strong**: Shared context, both topics discussed substantively in the same note
|
|
94
|
-
- **Moderate**: Shared person/tag, indirect but meaningful relationship
|
|
95
|
-
- **Weak**: Coincidental co-occurrence, shared only through generic tags
|
|
96
|
-
|
|
97
|
-
### Step 5: Synthesize
|
|
98
|
-
|
|
99
|
-
Build a narrative that explains how the two topics connect:
|
|
51
|
+
### Step 2: Map Each Topic's Connections
|
|
100
52
|
|
|
101
|
-
|
|
102
|
-
# Connect: {From} ↔ {To}
|
|
103
|
-
|
|
104
|
-
## The Bridge
|
|
105
|
-
|
|
106
|
-
{1-2 paragraph narrative explaining the connection in plain language}
|
|
107
|
-
|
|
108
|
-
## Connection Map
|
|
109
|
-
|
|
110
|
-
### Direct Links ({N} found)
|
|
111
|
-
|
|
112
|
-
- **[[Shared Note]]** — {how it connects both topics}
|
|
113
|
-
> "{quote showing from-topic}" ... "{quote showing to-topic}"
|
|
114
|
-
|
|
115
|
-
### Through People
|
|
53
|
+
For each topic:
|
|
116
54
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
### Through Concepts
|
|
122
|
-
|
|
123
|
-
- **[[Concept]]** — shared foundation
|
|
124
|
-
- Links to {from} via: [[note1]], [[note2]]
|
|
125
|
-
- Links to {to} via: [[note3]], [[note4]]
|
|
126
|
-
|
|
127
|
-
### Graph Path
|
|
128
|
-
|
|
129
|
-
```
|
|
130
|
-
[[from-note]] → [[intermediate]] → [[to-note]]
|
|
55
|
+
```bash
|
|
56
|
+
obsidian backlinks "<from>"
|
|
57
|
+
obsidian backlinks "<to>"
|
|
131
58
|
```
|
|
132
59
|
|
|
133
|
-
|
|
60
|
+
Read the pages that link to each topic. Build a connection map:
|
|
61
|
+
- Direct wikilinks (both topics link to the same page, or the same page links to both)
|
|
62
|
+
- Shared tags (use `SCHEMA.md` for taxonomy context when classifying)
|
|
63
|
+
- Shared domain
|
|
64
|
+
- Shared source notes (both topics were extracted from the same user note)
|
|
65
|
+
- Shared people/entities mentioned in both topics' pages
|
|
134
66
|
|
|
135
|
-
|
|
67
|
+
### Step 3: Find Direct Connections
|
|
136
68
|
|
|
137
|
-
|
|
138
|
-
-
|
|
139
|
-
-
|
|
69
|
+
Check if there's already a direct relationship:
|
|
70
|
+
- Does the `from` page wikilink to `to` (or vice versa)?
|
|
71
|
+
- Is there a `comparisons/` page that covers both?
|
|
72
|
+
- Do they share a `sources` entry in frontmatter?
|
|
140
73
|
|
|
141
|
-
|
|
74
|
+
### Step 4: Find Indirect Paths (Expanded Mode)
|
|
142
75
|
|
|
143
|
-
|
|
144
|
-
2. {How this could inform decisions in either domain}
|
|
145
|
-
3. {A question this connection raises}
|
|
76
|
+
If no direct connection exists, search for intermediate pages:
|
|
146
77
|
|
|
147
|
-
|
|
78
|
+
1. Find all pages that link to `from`
|
|
79
|
+
2. For each of those, check if they link to `to`
|
|
80
|
+
3. If yes: `from` → `intermediate` → `to` is a connection path
|
|
81
|
+
4. Report the shortest path(s) and explain the relationship
|
|
148
82
|
|
|
149
|
-
|
|
150
|
-
-
|
|
151
|
-
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
### Step 6: Handle No Connection
|
|
83
|
+
Also check:
|
|
84
|
+
- Shared tag clusters (both topics use tags that co-occur frequently)
|
|
85
|
+
- Shared domain context (both are about the same domain but different aspects)
|
|
86
|
+
- Temporal overlap (both topics emerged around the same time)
|
|
155
87
|
|
|
156
|
-
|
|
88
|
+
### Step 5: Present the Connection
|
|
157
89
|
|
|
158
90
|
```markdown
|
|
159
|
-
#
|
|
160
|
-
|
|
161
|
-
No meaningful connection found in this vault.
|
|
162
|
-
|
|
163
|
-
## What I Checked
|
|
164
|
-
|
|
165
|
-
- Searched {N} notes in the {from} neighborhood
|
|
166
|
-
- Searched {N} notes in the {to} neighborhood
|
|
167
|
-
- Checked up to 3-hop graph paths
|
|
168
|
-
- Compared tags, domains, people, and references
|
|
169
|
-
|
|
170
|
-
## Possible Reasons
|
|
91
|
+
# Connection: [[{from}]] ↔ [[{to}]]
|
|
171
92
|
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
- Try narrowing the topics or running /emerge to find broader patterns
|
|
93
|
+
## Direct Relationship
|
|
94
|
+
{Yes/No} — {explain the direct connection if it exists}
|
|
175
95
|
|
|
176
|
-
##
|
|
96
|
+
## Connection Paths
|
|
97
|
+
{If indirect paths exist, show them:}
|
|
177
98
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
2. Adding shared tags or domain fields
|
|
181
|
-
3. Running /weave after writing the bridge note
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
### Step 7: Save (Optional)
|
|
185
|
-
|
|
186
|
-
At the end of your analysis, ask:
|
|
99
|
+
1. [[{from}]] → [[{intermediate}]] → [[{to}]]
|
|
100
|
+
- Path explanation: {how they connect through this intermediate}
|
|
187
101
|
|
|
188
|
-
|
|
102
|
+
## Shared Context
|
|
103
|
+
- **Shared tags**: {tag1}, {tag2}
|
|
104
|
+
- **Shared domain**: {domain}
|
|
105
|
+
- **Shared sources**: [[source-note-1]], [[source-note-2]]
|
|
106
|
+
- **Shared entities**: [[entity-1]], [[entity-2]]
|
|
189
107
|
|
|
190
|
-
|
|
108
|
+
## Relationship Type
|
|
109
|
+
{Classify the relationship:}
|
|
110
|
+
- **Dependency**: {from} depends on {to} (or vice versa)
|
|
111
|
+
- **Sibling**: Both are aspects of a larger concept
|
|
112
|
+
- **Contrast**: They represent opposing approaches
|
|
113
|
+
- **Evolution**: {to} evolved from {from} over time
|
|
114
|
+
- **Parallel**: Independent topics that happen to share context
|
|
191
115
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
title: "Connect: {From} ↔ {To}"
|
|
195
|
-
note_type: literature
|
|
196
|
-
type: analysis
|
|
197
|
-
date: <today>
|
|
198
|
-
references:
|
|
199
|
-
- "[[from-anchor]]"
|
|
200
|
-
- "[[to-anchor]]"
|
|
201
|
-
tags: [connect, bridge]
|
|
202
|
-
---
|
|
116
|
+
## Why This Connection Matters
|
|
117
|
+
{2-3 sentences on what this relationship reveals and why it's worth knowing}
|
|
203
118
|
```
|
|
204
119
|
|
|
205
|
-
Use `obsidian create` to save. Ask the user where they'd like it saved.
|
|
206
|
-
|
|
207
120
|
## Key Principles
|
|
208
121
|
|
|
209
|
-
- **
|
|
210
|
-
- **
|
|
211
|
-
- **
|
|
212
|
-
- **
|
|
213
|
-
- **Respect the "no connection" result**: Not finding a connection is a valid and useful outcome.
|
|
122
|
+
- **Graph over guesswork.** Base connections on actual wikilinks, shared tags, and shared sources — not inferred relationships.
|
|
123
|
+
- **Multiple paths.** There may be several ways two topics connect — show the most meaningful ones, not just the shortest.
|
|
124
|
+
- **Explain, don't just list.** The value is in the *explanation* of why the connection matters, not just the path itself.
|
|
125
|
+
- **Obsidian is first workbench.** All note operations go through Obsidian CLI.
|