@jayjiang/byoao 1.1.2 → 2.0.1

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.
Files changed (156) hide show
  1. package/dist/__tests__/plugin-config.test.js +7 -10
  2. package/dist/__tests__/plugin-config.test.js.map +1 -1
  3. package/dist/assets/obsidian-skills/byoao-conventions.md +30 -54
  4. package/dist/assets/obsidian-skills/vault-thinking.md +6 -5
  5. package/dist/assets/presets/common/AGENTS.md.hbs +29 -46
  6. package/dist/assets/presets/common/SCHEMA.md.hbs +57 -0
  7. package/dist/assets/presets/common/Start Here.md.hbs +29 -40
  8. package/dist/assets/presets/minimal/preset.json +3 -3
  9. package/dist/assets/presets/pm-tpm/preset.json +2 -2
  10. package/{src/skills/ask.md → dist/assets/skills/ask/SKILL.md} +30 -27
  11. package/dist/assets/skills/ask.md +28 -27
  12. package/dist/assets/skills/challenge/SKILL.md +134 -0
  13. package/dist/assets/skills/challenge.md +79 -121
  14. package/dist/assets/skills/connect/SKILL.md +126 -0
  15. package/dist/assets/skills/connect.md +75 -163
  16. package/dist/assets/skills/cook/SKILL.md +170 -0
  17. package/dist/assets/skills/cook.md +167 -0
  18. package/dist/assets/skills/diagnose/SKILL.md +134 -0
  19. package/dist/assets/skills/diagnose.md +102 -43
  20. package/dist/assets/skills/drift/SKILL.md +123 -0
  21. package/dist/assets/skills/drift.md +64 -165
  22. package/dist/assets/skills/health/SKILL.md +65 -0
  23. package/dist/assets/skills/health.md +63 -0
  24. package/{src/skills/ideas.md → dist/assets/skills/ideas/SKILL.md} +11 -10
  25. package/dist/assets/skills/ideas.md +11 -10
  26. package/dist/assets/skills/organize/SKILL.md +109 -0
  27. package/dist/assets/skills/organize.md +56 -155
  28. package/dist/assets/skills/prep/SKILL.md +65 -0
  29. package/dist/assets/skills/prep.md +63 -0
  30. package/dist/assets/skills/trace/SKILL.md +143 -0
  31. package/dist/assets/skills/trace.md +75 -90
  32. package/dist/assets/skills/wiki/SKILL.md +127 -0
  33. package/dist/assets/skills/wiki.md +77 -178
  34. package/dist/cli/cli-program.js +18 -15
  35. package/dist/cli/cli-program.js.map +1 -1
  36. package/dist/cli/installer.js +54 -29
  37. package/dist/cli/installer.js.map +1 -1
  38. package/dist/hooks/idle-suggestions.js +4 -4
  39. package/dist/hooks/idle-suggestions.js.map +1 -1
  40. package/dist/hooks/system-transform.js +35 -1
  41. package/dist/hooks/system-transform.js.map +1 -1
  42. package/dist/index.js +455 -636
  43. package/dist/index.js.map +1 -1
  44. package/dist/plugin-config.js +6 -32
  45. package/dist/plugin-config.js.map +1 -1
  46. package/dist/tools/init-vault.js +8 -38
  47. package/dist/tools/init-vault.js.map +1 -1
  48. package/dist/tools/vault-doctor.js +1 -1
  49. package/dist/tools/vault-doctor.js.map +1 -1
  50. package/dist/tools/vault-status.js +1 -1
  51. package/dist/tools/vault-status.js.map +1 -1
  52. package/dist/vault/__tests__/create.test.js +48 -116
  53. package/dist/vault/__tests__/create.test.js.map +1 -1
  54. package/dist/vault/__tests__/doctor.test.js +14 -2
  55. package/dist/vault/__tests__/doctor.test.js.map +1 -1
  56. package/dist/vault/__tests__/manifest.test.js +2 -2
  57. package/dist/vault/__tests__/manifest.test.js.map +1 -1
  58. package/dist/vault/__tests__/status.test.js +12 -0
  59. package/dist/vault/__tests__/status.test.js.map +1 -1
  60. package/dist/vault/__tests__/upgrade.test.js +3 -3
  61. package/dist/vault/__tests__/upgrade.test.js.map +1 -1
  62. package/dist/vault/create.js +86 -196
  63. package/dist/vault/create.js.map +1 -1
  64. package/dist/vault/doctor.js +49 -0
  65. package/dist/vault/doctor.js.map +1 -1
  66. package/dist/vault/manifest.js +2 -2
  67. package/dist/vault/manifest.js.map +1 -1
  68. package/dist/vault/preset.js +10 -4
  69. package/dist/vault/preset.js.map +1 -1
  70. package/dist/vault/self-update.js +1 -1
  71. package/dist/vault/status.js +24 -0
  72. package/dist/vault/status.js.map +1 -1
  73. package/dist/vault/upgrade.js +165 -23
  74. package/dist/vault/upgrade.js.map +1 -1
  75. package/package.json +1 -1
  76. package/src/assets/obsidian-skills/byoao-conventions.md +9 -6
  77. package/src/assets/obsidian-skills/vault-thinking.md +6 -5
  78. package/src/assets/presets/common/AGENTS.md.hbs +23 -19
  79. package/src/assets/presets/common/SCHEMA.md.hbs +57 -0
  80. package/src/assets/presets/common/Start Here.md.hbs +29 -40
  81. package/src/assets/presets/minimal/preset.json +3 -3
  82. package/src/assets/presets/pm-tpm/preset.json +2 -2
  83. package/src/skills/ask/SKILL.md +135 -0
  84. package/src/skills/challenge/SKILL.md +134 -0
  85. package/src/skills/connect/SKILL.md +126 -0
  86. package/src/skills/cook/SKILL.md +170 -0
  87. package/src/skills/diagnose/SKILL.md +134 -0
  88. package/src/skills/drift/SKILL.md +123 -0
  89. package/src/skills/health/SKILL.md +65 -0
  90. package/src/skills/ideas/SKILL.md +173 -0
  91. package/src/skills/organize/SKILL.md +109 -0
  92. package/src/skills/prep/SKILL.md +65 -0
  93. package/src/skills/trace/SKILL.md +143 -0
  94. package/src/skills/wiki/SKILL.md +127 -0
  95. package/dist/assets/presets/common/Glossary.md.hbs +0 -16
  96. package/dist/assets/presets/common/obsidian/daily-notes.json +0 -5
  97. package/dist/assets/presets/common/obsidian/templates.json +0 -3
  98. package/dist/assets/presets/common/templates/Daily Note.md +0 -19
  99. package/dist/assets/presets/common/templates/Decision Record.md +0 -32
  100. package/dist/assets/presets/common/templates/Investigation.md +0 -34
  101. package/dist/assets/presets/common/templates/Meeting Notes.md +0 -25
  102. package/dist/assets/skills/emerge.md +0 -168
  103. package/dist/assets/skills/weave.md +0 -287
  104. package/dist/tools/add-glossary-term.js +0 -21
  105. package/dist/tools/add-glossary-term.js.map +0 -1
  106. package/dist/tools/add-person.js +0 -21
  107. package/dist/tools/add-person.js.map +0 -1
  108. package/dist/tools/add-project.js +0 -24
  109. package/dist/tools/add-project.js.map +0 -1
  110. package/dist/tools/graph-health.js +0 -25
  111. package/dist/tools/graph-health.js.map +0 -1
  112. package/dist/tools/note-read.js +0 -19
  113. package/dist/tools/note-read.js.map +0 -1
  114. package/dist/tools/search-vault.js +0 -22
  115. package/dist/tools/search-vault.js.map +0 -1
  116. package/dist/vault/__tests__/glossary.test.js +0 -68
  117. package/dist/vault/__tests__/glossary.test.js.map +0 -1
  118. package/dist/vault/__tests__/graph-health.test.js +0 -102
  119. package/dist/vault/__tests__/graph-health.test.js.map +0 -1
  120. package/dist/vault/__tests__/member.test.js +0 -85
  121. package/dist/vault/__tests__/member.test.js.map +0 -1
  122. package/dist/vault/__tests__/note-read.test.js +0 -71
  123. package/dist/vault/__tests__/note-read.test.js.map +0 -1
  124. package/dist/vault/__tests__/obsidian-cli.test.js +0 -108
  125. package/dist/vault/__tests__/obsidian-cli.test.js.map +0 -1
  126. package/dist/vault/__tests__/search-vault.test.js +0 -93
  127. package/dist/vault/__tests__/search-vault.test.js.map +0 -1
  128. package/dist/vault/glossary.js +0 -27
  129. package/dist/vault/glossary.js.map +0 -1
  130. package/dist/vault/graph-health.js +0 -83
  131. package/dist/vault/graph-health.js.map +0 -1
  132. package/dist/vault/member.js +0 -67
  133. package/dist/vault/member.js.map +0 -1
  134. package/dist/vault/note-read.js +0 -70
  135. package/dist/vault/note-read.js.map +0 -1
  136. package/dist/vault/project.js +0 -68
  137. package/dist/vault/project.js.map +0 -1
  138. package/dist/vault/retrieval-types.js +0 -5
  139. package/dist/vault/retrieval-types.js.map +0 -1
  140. package/dist/vault/search-vault.js +0 -87
  141. package/dist/vault/search-vault.js.map +0 -1
  142. package/src/assets/presets/common/obsidian/daily-notes.json +0 -5
  143. package/src/assets/presets/common/obsidian/templates.json +0 -3
  144. package/src/assets/presets/common/templates/Daily Note.md +0 -19
  145. package/src/assets/presets/common/templates/Decision Record.md +0 -32
  146. package/src/assets/presets/common/templates/Investigation.md +0 -34
  147. package/src/assets/presets/common/templates/Meeting Notes.md +0 -25
  148. package/src/skills/challenge.md +0 -174
  149. package/src/skills/connect.md +0 -213
  150. package/src/skills/diagnose.md +0 -72
  151. package/src/skills/drift.md +0 -223
  152. package/src/skills/emerge.md +0 -168
  153. package/src/skills/organize.md +0 -206
  154. package/src/skills/trace.md +0 -156
  155. package/src/skills/weave.md +0 -287
  156. package/src/skills/wiki.md +0 -227
@@ -1,11 +1,17 @@
1
1
  ---
2
2
  name: ask
3
- description: Open-ended Q&A against the knowledge base. Agent reads INDEX.base to locate relevant notes, synthesizes answers with citations. Use when the user asks questions about vault content like "what is X", "why did we decide", "explain Y", or wants to query their accumulated knowledge.
3
+ description: >
4
+ Open-ended Q&A against the knowledge base. Agent reads INDEX.base for page discovery
5
+ and SCHEMA.md for tag taxonomy, navigates entities/, concepts/, comparisons/, and queries/,
6
+ synthesizes answers with citations. Use when the user asks questions about vault content
7
+ like "what is X", "why did we decide Y", "explain Z", "what do my notes say about",
8
+ "summarize what I know about", or any question that should be answered from accumulated
9
+ knowledge rather than general training data.
4
10
  ---
5
11
 
6
12
  # /ask — Knowledge Q&A
7
13
 
8
- You are a knowledge assistant. Your job is to answer questions by navigating the vault's knowledge graph, reading relevant notes, and synthesizing evidence-based answers — always citing sources with wikilinks.
14
+ You are a knowledge assistant. Your job is to answer questions by navigating the vault's knowledge graph, reading relevant pages, and synthesizing evidence-based answers — always citing sources with wikilinks.
9
15
 
10
16
  ## Prerequisites Check
11
17
 
@@ -15,7 +21,7 @@ You are a knowledge assistant. Your job is to answer questions by navigating the
15
21
  obsidian --version
16
22
  ```
17
23
 
18
- If this fails, STOP and display the Obsidian CLI availability message (see /weave for the full error text).
24
+ If this fails, STOP and display the Obsidian CLI availability message (see /prep).
19
25
 
20
26
  ## Parameters
21
27
 
@@ -28,15 +34,17 @@ If this fails, STOP and display the Obsidian CLI availability message (see /weav
28
34
 
29
35
  Identify the key concepts, entities, and intent in the user's question.
30
36
 
31
- ### Step 2: Locate Relevant Notes
37
+ ### Step 2: Locate Relevant Pages
32
38
 
33
- If `INDEX.base` exists, read it first to understand the vault structure:
39
+ If `INDEX.base` exists, read it first for page discovery and the compiled knowledge map:
34
40
 
35
41
  ```bash
36
- obsidian read "INDEX"
42
+ obsidian read file="INDEX.base"
37
43
  ```
38
44
 
39
- Then search for relevant notes:
45
+ Read `SCHEMA.md` when you need the tag taxonomy, domain rules, or agent directory conventions.
46
+
47
+ Then search for relevant pages:
40
48
 
41
49
  ```bash
42
50
  obsidian search "<key concept>"
@@ -44,25 +52,28 @@ obsidian search "<key concept>"
44
52
 
45
53
  Search for each key concept mentioned in the question. Combine results across concepts.
46
54
 
47
- ### Step 3: Read Relevant Notes
55
+ ### Step 3: Read Relevant Pages
48
56
 
49
57
  For each promising result, read the full content:
50
58
 
51
59
  ```bash
52
- obsidian read "<note name>"
60
+ obsidian read file="entities/some-page.md"
53
61
  ```
54
62
 
55
63
  Prioritize:
56
- - Notes with `note_type: permanent` (atomic concepts)
57
- - Highly linked notes (many backlinks)
58
- - Recent notes (last 30 days)
64
+ - Agent pages in `entities/`, `concepts/`, `comparisons/`, `queries/`
65
+ - Pages with matching tags or domain
66
+ - Pages with `status: reviewed` (over `draft`)
67
+ - Recent pages (higher `updated` date)
68
+
69
+ Also read user source notes when the question requires original context.
59
70
 
60
71
  ### Step 4: Synthesize Answer
61
72
 
62
- Combine evidence from all relevant notes into a clear, structured answer:
73
+ Combine evidence from all relevant pages into a clear, structured answer:
63
74
 
64
75
  - **Direct answer first** — address the question directly
65
- - **Supporting evidence** — cite specific notes with wikilinks and brief quotes
76
+ - **Supporting evidence** — cite specific pages with wikilinks and brief quotes
66
77
  - **Context** — explain how the evidence connects
67
78
  - **Uncertainties** — flag gaps where the vault doesn't have enough information
68
79
 
@@ -77,9 +88,9 @@ Every claim must be backed by at least one vault note. Do not use general knowle
77
88
 
78
89
  ## Evidence
79
90
 
80
- - **[[Note A]]**: "<relevant quote>"
81
- - **[[Note B]]**: "<relevant quote>"
82
- - **[[Note C]]**: "<relevant quote>"
91
+ - **[[Page A]]**: "<relevant quote>"
92
+ - **[[Page B]]**: "<relevant quote>"
93
+ - **[[Page C]]**: "<relevant quote>"
83
94
 
84
95
  ## Context
85
96
 
@@ -94,6 +105,7 @@ Every claim must be backed by at least one vault note. Do not use general knowle
94
105
  - Consider exploring: "..."
95
106
  - Run `/trace topic="X"` to see how this evolved
96
107
  - Run `/connect from="A" to="B"` to understand the relationship
108
+ - If the vault lacks pages for key entities or concepts, run `/cook` to compile knowledge from source notes
97
109
  ```
98
110
 
99
111
  ### Step 6: Save (Optional)
@@ -107,21 +119,12 @@ If the user confirms, save the answer with frontmatter:
107
119
  ```yaml
108
120
  ---
109
121
  title: "Answer: <topic>"
110
- note_type: literature
111
- type: reference
112
- domain: <inferred>
113
122
  date: <today>
114
123
  tags: [qa, <topic>]
115
124
  ---
116
125
  ```
117
126
 
118
- Use `obsidian create` to save:
119
-
120
- ```bash
121
- obsidian create name="Answer: <topic>" content="<frontmatter + content>" silent
122
- ```
123
-
124
- Ask the user where they'd like it saved (root or a specific directory).
127
+ Use `obsidian create` to save. Ask the user where they'd like it saved.
125
128
 
126
129
  ## Key Principles
127
130
 
@@ -1,11 +1,15 @@
1
1
  ---
2
2
  name: ask
3
- description: Open-ended Q&A against the knowledge base. Agent reads INDEX.base to locate relevant notes, synthesizes answers with citations. Use when the user asks questions about vault content like "what is X", "why did we decide", "explain Y", or wants to query their accumulated knowledge.
3
+ description: >
4
+ Open-ended Q&A against the knowledge base. Agent reads INDEX.base for page discovery and
5
+ SCHEMA.md for tag taxonomy, navigates entities/, concepts/, comparisons/, and queries/,
6
+ synthesizes answers with citations. Use when the user asks questions about vault content like
7
+ "what is X", "why did we decide", "explain Y", or wants to query their accumulated knowledge.
4
8
  ---
5
9
 
6
10
  # /ask — Knowledge Q&A
7
11
 
8
- You are a knowledge assistant. Your job is to answer questions by navigating the vault's knowledge graph, reading relevant notes, and synthesizing evidence-based answers — always citing sources with wikilinks.
12
+ You are a knowledge assistant. Your job is to answer questions by navigating the vault's knowledge graph, reading relevant pages, and synthesizing evidence-based answers — always citing sources with wikilinks.
9
13
 
10
14
  ## Prerequisites Check
11
15
 
@@ -15,7 +19,7 @@ You are a knowledge assistant. Your job is to answer questions by navigating the
15
19
  obsidian --version
16
20
  ```
17
21
 
18
- If this fails, STOP and display the Obsidian CLI availability message (see /weave for the full error text).
22
+ If this fails, STOP and display the Obsidian CLI availability message (see /prep).
19
23
 
20
24
  ## Parameters
21
25
 
@@ -28,15 +32,17 @@ If this fails, STOP and display the Obsidian CLI availability message (see /weav
28
32
 
29
33
  Identify the key concepts, entities, and intent in the user's question.
30
34
 
31
- ### Step 2: Locate Relevant Notes
35
+ ### Step 2: Locate Relevant Pages
32
36
 
33
- If `INDEX.base` exists, read it first to understand the vault structure:
37
+ If `INDEX.base` exists, read it first for page discovery and the compiled knowledge map:
34
38
 
35
39
  ```bash
36
- obsidian read "INDEX"
40
+ obsidian read file="INDEX.base"
37
41
  ```
38
42
 
39
- Then search for relevant notes:
43
+ Read `SCHEMA.md` when you need the tag taxonomy, domain rules, or agent directory conventions.
44
+
45
+ Then search for relevant pages:
40
46
 
41
47
  ```bash
42
48
  obsidian search "<key concept>"
@@ -44,25 +50,28 @@ obsidian search "<key concept>"
44
50
 
45
51
  Search for each key concept mentioned in the question. Combine results across concepts.
46
52
 
47
- ### Step 3: Read Relevant Notes
53
+ ### Step 3: Read Relevant Pages
48
54
 
49
55
  For each promising result, read the full content:
50
56
 
51
57
  ```bash
52
- obsidian read "<note name>"
58
+ obsidian read file="entities/some-page.md"
53
59
  ```
54
60
 
55
61
  Prioritize:
56
- - Notes with `note_type: permanent` (atomic concepts)
57
- - Highly linked notes (many backlinks)
58
- - Recent notes (last 30 days)
62
+ - Agent pages in `entities/`, `concepts/`, `comparisons/`, `queries/`
63
+ - Pages with matching tags or domain
64
+ - Pages with `status: reviewed` (over `draft`)
65
+ - Recent pages (higher `updated` date)
66
+
67
+ Also read user source notes when the question requires original context.
59
68
 
60
69
  ### Step 4: Synthesize Answer
61
70
 
62
- Combine evidence from all relevant notes into a clear, structured answer:
71
+ Combine evidence from all relevant pages into a clear, structured answer:
63
72
 
64
73
  - **Direct answer first** — address the question directly
65
- - **Supporting evidence** — cite specific notes with wikilinks and brief quotes
74
+ - **Supporting evidence** — cite specific pages with wikilinks and brief quotes
66
75
  - **Context** — explain how the evidence connects
67
76
  - **Uncertainties** — flag gaps where the vault doesn't have enough information
68
77
 
@@ -77,9 +86,9 @@ Every claim must be backed by at least one vault note. Do not use general knowle
77
86
 
78
87
  ## Evidence
79
88
 
80
- - **[[Note A]]**: "<relevant quote>"
81
- - **[[Note B]]**: "<relevant quote>"
82
- - **[[Note C]]**: "<relevant quote>"
89
+ - **[[Page A]]**: "<relevant quote>"
90
+ - **[[Page B]]**: "<relevant quote>"
91
+ - **[[Page C]]**: "<relevant quote>"
83
92
 
84
93
  ## Context
85
94
 
@@ -94,6 +103,7 @@ Every claim must be backed by at least one vault note. Do not use general knowle
94
103
  - Consider exploring: "..."
95
104
  - Run `/trace topic="X"` to see how this evolved
96
105
  - Run `/connect from="A" to="B"` to understand the relationship
106
+ - If the vault lacks pages for key entities or concepts, run `/cook` to compile knowledge from source notes
97
107
  ```
98
108
 
99
109
  ### Step 6: Save (Optional)
@@ -107,21 +117,12 @@ If the user confirms, save the answer with frontmatter:
107
117
  ```yaml
108
118
  ---
109
119
  title: "Answer: <topic>"
110
- note_type: literature
111
- type: reference
112
- domain: <inferred>
113
120
  date: <today>
114
121
  tags: [qa, <topic>]
115
122
  ---
116
123
  ```
117
124
 
118
- Use `obsidian create` to save:
119
-
120
- ```bash
121
- obsidian create name="Answer: <topic>" content="<frontmatter + content>" silent
122
- ```
123
-
124
- Ask the user where they'd like it saved (root or a specific directory).
125
+ Use `obsidian create` to save. Ask the user where they'd like it saved.
125
126
 
126
127
  ## Key Principles
127
128
 
@@ -0,0 +1,134 @@
1
+ ---
2
+ name: challenge
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, find flaws in reasoning, play devil's advocate, or says
7
+ anything like "challenge this", "what's wrong with my thinking", "poke holes in this",
8
+ "are there contradictions", or "stress test this idea".
9
+ ---
10
+
11
+ # /challenge — Pressure Test
12
+
13
+ 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.
14
+
15
+ ## Prerequisites Check
16
+
17
+ ```bash
18
+ obsidian --version
19
+ ```
20
+
21
+ If this fails, STOP and display the Obsidian CLI availability message (see /prep).
22
+
23
+ ## Parameters
24
+
25
+ - **claim** (required): The belief, decision, or argument to challenge.
26
+ - **scope** (optional): `all` (full vault) or a specific directory/page. Default: `all`.
27
+
28
+ ## Process
29
+
30
+ ### Step 1: Understand the Claim
31
+
32
+ Clarify what exactly is being challenged:
33
+ - What is the core assertion?
34
+ - What assumptions does it rest on?
35
+ - What would falsify it?
36
+
37
+ If the claim is ambiguous, ask the user to clarify before proceeding.
38
+
39
+ ### Step 2: Find Supporting Evidence
40
+
41
+ ```bash
42
+ obsidian search "<key terms from claim>"
43
+ ```
44
+
45
+ Read relevant notes and agent pages. Identify:
46
+ - Notes that explicitly support the claim
47
+ - Notes that provide indirect support (data, observations)
48
+ - The strength of each piece of evidence
49
+
50
+ ### Step 3: Find Contradicting Evidence
51
+
52
+ This is the core of /challenge. Search for:
53
+
54
+ 1. **Direct contradictions** — Notes that explicitly state the opposite
55
+ ```bash
56
+ obsidian search "not <term>" OR "instead of <term>" OR "changed from <term>"
57
+ ```
58
+
59
+ 2. **Implicit contradictions** — Notes that describe a situation incompatible with the claim
60
+ - Read pages with shared tags but different conclusions
61
+ - 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)
62
+
63
+ 3. **Position changes over time** — Notes that show the user changed their mind
64
+ ```bash
65
+ obsidian search "actually" OR "turns out" OR "reconsidered" OR "reversed"
66
+ ```
67
+
68
+ 4. **Weasel words** — Notes that express uncertainty about aspects the claim treats as certain
69
+ - "might", "probably", "not sure", "need to verify"
70
+ - These indicate the claim is stronger than the evidence supports
71
+
72
+ ### Step 4: Identify Unstated Assumptions
73
+
74
+ For the claim to be true, what else must be true?
75
+
76
+ - Technical assumptions (about systems, tools, constraints)
77
+ - People assumptions (about availability, skills, priorities)
78
+ - Temporal assumptions (about deadlines, sequencing, stability)
79
+ - External assumptions (about market, users, dependencies)
80
+
81
+ Check if the vault evidence supports each assumption.
82
+
83
+ ### Step 5: Assess Evidence Strength
84
+
85
+ Rate the overall case:
86
+
87
+ | Strength | Meaning |
88
+ |----------|---------|
89
+ | Strong | Multiple independent sources agree, no contradictions |
90
+ | Moderate | Some support, minor gaps or contradictions |
91
+ | Weak | Limited evidence, significant contradictions or gaps |
92
+ | Unknown | Vault doesn't have enough information |
93
+
94
+ ### Step 6: Present the Challenge
95
+
96
+ ```markdown
97
+ # Challenge: "{claim}"
98
+
99
+ ## The Claim
100
+ {Restate the claim clearly}
101
+
102
+ ## What Rests On This
103
+ {What assumptions does the claim depend on?}
104
+ - {Assumption 1} — {supported / unsupported / contradicted}
105
+ - {Assumption 2} — {supported / unsupported / contradicted}
106
+
107
+ ## Supporting Evidence
108
+ - [[Note A]]: "{quote}"
109
+ - [[Note B]]: "{quote}"
110
+
111
+ ## Challenging Evidence
112
+ - ⚠ [[Note C]]: "{quote that contradicts or weakens the claim}"
113
+ - ⚠ [[Note D]]: "{quote showing uncertainty or alternative view}"
114
+
115
+ ## Position Changes Over Time
116
+ - {date}: [[Note E]] said X
117
+ - {date}: [[Note F]] said Y (contradicts X)
118
+
119
+ ## Weak Points
120
+ 1. **{Weak point}**: {why it's weak, which note shows it}
121
+ 2. **{Weak point}**: {why it's weak, which note shows it}
122
+
123
+ ## Overall Assessment
124
+ **Evidence strength**: {Strong / Moderate / Weak / Unknown}
125
+
126
+ {2-3 sentence summary: what the vault evidence suggests about this claim, what's uncertain, and what would strengthen or weaken the case further}
127
+ ```
128
+
129
+ ## Key Principles
130
+
131
+ - **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."
132
+ - **Evidence only.** Every challenge must cite specific vault notes. Don't invent external counterarguments.
133
+ - **Surface uncertainty.** If the vault shows doubt or hesitation about aspects the claim treats as certain, highlight this gap.
134
+ - **Obsidian is first workbench.** All note operations go through Obsidian CLI.
@@ -1,11 +1,14 @@
1
1
  ---
2
2
  name: challenge
3
- description: Pressure-test a belief, assumption, or decision using the vault's own history. Finds counter-evidence, contradictions, and blind spots. Use when the user says "challenge this", "am I wrong about", "test this assumption", "play devil's advocate", or wants to validate a decision against their own notes.
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-Test Your Thinking
9
+ # /challenge — Pressure Test
7
10
 
8
- You are a constructive critic. Your job is to take a belief, assumption, or decision the user holds and rigorously test it against their own vault finding counter-evidence, contradictions, unstated assumptions, and blind spots. You are not adversarial; you are helping the user think more clearly.
11
+ You are a respectful adversary. Your job is to find the weak points in a belief, decision, or argumentnot 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 /weave for the full error text).
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
- - **belief** (required): The belief, assumption, or decision to challenge. Can be a direct statement or a reference to a note.
25
- - **strength** (optional): "gentle" (look for nuances), "rigorous" (find every counter-argument). Default: "rigorous".
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: Articulate the Belief
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
- If the belief references a note, read it and extract the core claim:
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
- ```bash
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 belief>"
40
+ obsidian search "<key terms from claim>"
48
41
  ```
49
42
 
50
- Read notes that discuss this topic. Document what supports the belief:
51
- - Which notes align with it?
52
- - What evidence was the belief originally based on?
53
- - How confident does the user seem in their notes?
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
- Based on the evidence gathered, rate the belief:
48
+ ### Step 3: Find Contradicting Evidence
81
49
 
82
- | Level | Description |
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
- ### Step 5: Present the Challenge
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
- ```markdown
92
- # Challenge: {Belief Statement}
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
- ## Counter-Evidence ({N} notes)
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
- ### Direct Contradictions
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
- - **[[Note]]** ({date}): "{quote that contradicts the belief}"
112
- **Why this matters**: {explanation}
70
+ ### Step 4: Identify Unstated Assumptions
113
71
 
114
- ### Position Changes Over Time
72
+ For the claim to be true, what else must be true?
115
73
 
116
- - {date range}: You held view X (evidence: [[notes]])
117
- - {date}: Something shifted (trigger: [[note]])
118
- - {date range}: You now hold view Y
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
- ### Unstated Assumptions
79
+ Check if the vault evidence supports each assumption.
121
80
 
122
- 1. **{Assumption}**: {Why this might not hold}
123
- Evidence: {what the vault says or doesn't say}
81
+ ### Step 5: Assess Evidence Strength
124
82
 
125
- 2. **{Assumption}**: {Why this might not hold}
83
+ Rate the overall case:
126
84
 
127
- ### Missing Perspectives
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
- - {Whose view is absent and why it matters}
92
+ ### Step 6: Present the Challenge
130
93
 
131
- ## Verdict
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
- 1. {A question the user should consider — not rhetorical, genuinely open}
138
- 2. {Another question}
139
- 3. {Another question}
97
+ ## The Claim
98
+ {Restate the claim clearly}
140
99
 
141
- ## Suggested Actions
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
- - {Concrete action if the belief needs revision}
144
- - {Action to gather missing evidence}
145
- - {Notes to re-read with fresh eyes}
146
- ```
105
+ ## Supporting Evidence
106
+ - [[Note A]]: "{quote}"
107
+ - [[Note B]]: "{quote}"
147
108
 
148
- ### Step 6: Save (Optional)
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
- At the end of your challenge, ask:
113
+ ## Position Changes Over Time
114
+ - {date}: [[Note E]] said X
115
+ - {date}: [[Note F]] said Y (contradicts X)
151
116
 
152
- > "Would you like me to save this as a note?"
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
- If the user confirms, save with frontmatter:
121
+ ## Overall Assessment
122
+ **Evidence strength**: {Strong / Moderate / Weak / Unknown}
155
123
 
156
- ```yaml
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
- - **Fair, not adversarial**: Always present supporting evidence first. The goal is clear thinking, not winning an argument.
171
- - **Vault evidence only**: Challenge using the user's own notes, not general knowledge. "Research says X" is not valid here — "Your note from March says X" is.
172
- - **Name assumptions explicitly**: The most valuable output is often the unstated assumptions, not the direct contradictions.
173
- - **Questions over conclusions**: End with questions, not verdicts. The user decides what to do with the analysis.
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.