@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,14 @@
1
1
  ---
2
2
  name: drift
3
- description: Compare stated intentions vs actual behavior over 30-60 days using daily notes and project documents. Use when the user asks "am I doing what I said I would", "what happened to my goals", "where did my time go", "check my follow-through", or wants to reflect on alignment between plans and actions.
3
+ description: >
4
+ Intention-vs-action gap analysis over time. Compares what the user said they would do with
5
+ what actually happened. Use when the user asks "am I following through on X", "how has Y
6
+ changed since the plan", or wants to check if actions match intentions.
4
7
  ---
5
8
 
6
- # /drift — Detect Intention-Action Gaps
9
+ # /drift — Intention vs. Action
7
10
 
8
- You are a behavioral analyst. Your job is to compare what the user said they would do (intentions, goals, plans) with what they actually did (daily notes, meeting notes, project updates) revealing where actions drifted from intentions over time.
11
+ You are an accountability mirror. Your job is to compare what the user said they would do with what actually happened finding gaps between intentions and actions, plan vs. reality, and the slow drift of priorities over time.
9
12
 
10
13
  ## Prerequisites Check
11
14
 
@@ -13,211 +16,107 @@ You are a behavioral analyst. Your job is to compare what the user said they wou
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
- - **period** (optional): Time window to analyze. Default: "30d" (last 30 days). Accepts: "7d", "30d", "60d", "90d".
25
- - **focus** (optional): Limit to a project, domain, or goal. Default: all.
26
- - **output** (optional): Save the drift analysis as a note.
23
+ - **topic** (optional): Specific plan, goal, or intention to track. Default: scan all recent intentions.
24
+ - **window** (optional): Time window to analyze (e.g., "30d", "3m", "all"). Default: "30d".
27
25
 
28
26
  ## Process
29
27
 
30
- ### Date Range Resolution
31
-
32
- Calculate the cutoff date from the `period` parameter (e.g., "30d" = today minus 30 days). Use this to filter all notes:
33
- - **Daily notes**: filter by filename pattern (`Daily/YYYY-MM-DD.md`)
34
- - **Other notes**: filter by frontmatter `date` field
35
- - Notes without a date: include only if they are in an active project folder or have `status: active`
28
+ ### Step 1: Find Stated Intentions
36
29
 
37
- ### Step 1: Collect Intentions
30
+ Search for places where the user expressed intentions:
38
31
 
39
- Use a structured, layered approach to find stated intentions:
40
-
41
- **Layer 1 — Structured notes (most reliable):**
42
32
  ```bash
43
- obsidian search "type: decision"
44
- obsidian search "type: plan"
33
+ obsidian search "should" OR "need to" OR "will" OR "plan to" OR "going to" OR "decided to"
34
+ obsidian search "goal" OR "objective" OR "target" OR "priority"
45
35
  ```
46
- Read sprint handoffs, project docs, and decision records within the period.
47
-
48
- **Layer 2 — Daily notes (chronological):**
49
- Read daily notes for the period by filename pattern (e.g., `Daily/2026-03-*.md`). Extract stated priorities, action items, and commitments.
50
-
51
- **Layer 3 — Keyword fallback (for vaults without structured frontmatter):**
52
- Only if Layers 1-2 produce fewer than 5 intentions:
53
- ```bash
54
- obsidian search "goal"
55
- obsidian search "next steps"
56
- obsidian search "TODO"
57
- obsidian search "priority"
58
- ```
59
-
60
- Also read:
61
- - Meeting notes with action items assigned
62
- - Notes with tags like `#plan`, `#goal`, `#commitment`
63
36
 
64
- Extract a list of **stated intentions** with dates:
65
- - "{date}: Planned to {X}" (source: [[Note]])
37
+ Also check:
38
+ - Daily notes for intention statements
39
+ - Agent pages in `entities/` and `concepts/` for documented decisions, owners, or plans
40
+ - Pages with `status: draft` that represent in-progress intentions
41
+ - `log.md` as the chronological spine: cook cycles, reported changes, and stated purposes tied to dates
66
42
 
67
- ### Step 2: Collect Actions
43
+ ### Step 2: Find Actual Actions
68
44
 
69
- Read daily notes and updates across the period:
45
+ Search for evidence of what actually happened:
70
46
 
71
47
  ```bash
72
- obsidian search "completed"
73
- obsidian search "done"
74
- obsidian search "shipped"
75
- obsidian search "finished"
48
+ obsidian search "completed" OR "done" OR "shipped" OR "implemented" OR "finished"
49
+ obsidian search "changed" OR "switched" OR "pivoted" OR "abandoned"
76
50
  ```
77
51
 
78
- Read daily notes chronologically to track what actually happened:
79
- - What did the user write about doing?
80
- - What meetings happened?
81
- - What topics consumed attention?
52
+ Check:
53
+ - Recent daily notes for actual activities
54
+ - Agent pages in `entities/` and `concepts/` for current state and decision descriptions
55
+ - `log.md` entries since the intention was stated
56
+ - Updated frontmatter dates and `status` changes
57
+ - New pages created vs. pages left in draft
82
58
 
83
- Extract a list of **actual actions** with dates:
84
- - "{date}: Did {Y}" (source: [[Daily Note]])
59
+ ### Step 3: Compare Intentions to Actions
85
60
 
86
- ### Step 3: Alignment Analysis
61
+ For each intention found:
87
62
 
88
- For each stated intention, check:
89
-
90
- | Status | Meaning |
91
- |--------|---------|
92
- | **Aligned** | Intention was followed through with documented evidence |
93
- | **Delayed** | Work started but timeline slipped |
94
- | **Drifted** | Work went in a different direction than planned |
95
- | **Abandoned** | Intention was stated but never acted on |
96
- | **Emergent** | Action happened that was never planned (reactive work) |
63
+ 1. **Followed through** Evidence shows the action was taken as planned
64
+ 2. **Partially followed** — Some action was taken but not fully
65
+ 3. **Deferred** Still planned but not yet acted on
66
+ 4. **Diverged** — Action was taken but in a different direction
67
+ 5. **Abandoned** No evidence of any action
97
68
 
98
69
  ### Step 4: Identify Drift Patterns
99
70
 
100
- Look for systemic patterns, not just individual misses:
101
-
102
- **Priority displacement** — Planned work was consistently displaced by reactive work.
103
- > "In 4 of 5 weeks, the Friday daily note mentions not getting to the planned work because of urgent requests."
104
-
105
- **Scope creep** — The scope of a project expanded without acknowledgment.
106
- > "The original plan in [[Project Plan]] had 5 deliverables. Current notes reference 9, but no re-planning happened."
107
-
108
- **Energy leaks** — Time going to undocumented work.
109
- > "Daily notes from weeks 3-5 rarely mention the stated priority. The gap suggests time is going somewhere not reflected in the vault."
110
- **Caveat:** This pattern is only meaningful if the user writes daily notes consistently. If daily notes are sparse or irregular, the absence of mentions is a documentation gap, not evidence of time spent elsewhere. Note this distinction in the report.
111
-
112
- **Goal abandonment** — Goals that silently disappeared.
113
- > "The Q1 goal of 'improve test coverage' was mentioned 3 times in January and never again."
71
+ Look for systematic patterns:
114
72
 
115
- **Emergent priorities** Unplanned work that became dominant.
116
- > "'Customer escalations' wasn't in any plan but appears in 60% of daily notes."
73
+ - **Priority drift**: The user said X was top priority, but most time went to Y
74
+ - **Scope drift**: A small intention grew into a much larger effort (or shrank)
75
+ - **Direction drift**: The approach changed from the original plan
76
+ - **Timeline drift**: Things took significantly longer (or shorter) than expected
77
+ - **Attention drift**: An intense focus faded and wasn't replaced by anything
117
78
 
118
- ### Step 5: Present the Analysis
79
+ ### Step 5: Present the Drift Report
119
80
 
120
81
  ```markdown
121
- # Drift Analysis: {period}
82
+ # Drift Report: {topic or "Recent Intentions"}
122
83
 
123
- Comparing intentions vs actions over {period}, focused on {focus or "all areas"}.
124
-
125
- ## Summary
126
-
127
- | Category | Count |
128
- |----------|-------|
129
- | Aligned | {N} intentions followed through |
130
- | Delayed | {N} intentions behind schedule |
131
- | Drifted | {N} intentions changed direction |
132
- | Abandoned | {N} intentions never acted on |
133
- | Emergent | {N} unplanned actions taken |
134
-
135
- **Overall drift score**: {Low / Moderate / High}
84
+ Analyzed {N} notes from {start date} to {end date}.
136
85
 
137
86
  ---
138
87
 
139
- ## Aligned (on track)
140
-
141
- - **{Intention}** ({date})
142
- Stated in: [[Plan Note]]
143
- Evidence: [[Action Note 1]], [[Action Note 2]]
88
+ ## Followed Through
89
+ - **{intention}** — {what was done, evidence from [[note]]}
144
90
 
145
- ## Delayed
91
+ ## Partially Followed ⚡
92
+ - **{intention}** — {what was done vs. what was planned, gap evidence from [[note]]}
146
93
 
147
- - **{Intention}** ({original date} → still in progress)
148
- Stated in: [[Plan Note]]
149
- Last mention: [[Recent Note]] ({date})
150
- **Likely cause**: {what the notes suggest}
94
+ ## Deferred
95
+ - **{intention}** — {stated on [[date]] in [[note]], no action found since}
151
96
 
152
- ## Drifted
97
+ ## Diverged ↩
98
+ - **{intention}** — {original plan from [[note A]], actual outcome from [[note B]]}
153
99
 
154
- - **{Intention}** → became **{what it turned into}**
155
- Original: [[Plan Note]] "{original plan}"
156
- Current: [[Recent Note]] — "{what's actually happening}"
157
- **The shift**: {when and why direction changed}
158
-
159
- ## Abandoned
160
-
161
- - **{Intention}** ({date stated}, last mentioned {date})
162
- Stated in: [[Note]]
163
- **No evidence of**: follow-up, cancellation decision, or handoff
164
- **Question**: Was this a conscious decision or did it just fade?
165
-
166
- ## Emergent (unplanned)
167
-
168
- - **{Action pattern}** — appeared in {N} daily notes, not in any plan
169
- **Impact**: {how much time/attention this consumed}
170
- **Question**: Should this be formally planned/resourced?
100
+ ## Abandoned
101
+ - **{intention}** — {stated on [[date]], zero evidence of action}
171
102
 
172
103
  ---
173
104
 
174
105
  ## Drift Patterns
175
106
 
176
- ### {Pattern name}
177
- {Description with evidence from notes}
178
-
179
- ---
180
-
181
- ## Reflections
182
-
183
- These questions are for your consideration — not judgments:
184
-
185
- 1. {Question about the most significant drift}
186
- 2. {Question about whether emergent work should be planned}
187
- 3. {Question about abandoned intentions}
107
+ ### Priority Drift
108
+ {Evidence that stated priorities don't match actual time allocation}
188
109
 
189
- ## Suggested Actions
110
+ ### Direction Drift
111
+ {Evidence that the approach changed from the original plan}
190
112
 
191
- - Write a decision record for {abandoned intention} — cancel formally or recommit
192
- - Add {emergent pattern} to the next planning cycle
193
- - Run `/trace topic="{drifted topic}"` to understand the shift
194
- - Re-read [[original plan]] with fresh eyes
113
+ ## Overall Assessment
114
+ {2-3 sentences: Is the user generally following through on intentions? Where is the biggest gap? Is the drift a problem or a healthy adaptation?}
195
115
  ```
196
116
 
197
- ### Step 6: Save (Optional)
198
-
199
- At the end of your analysis, ask:
200
-
201
- > "Would you like me to save this as a note?"
202
-
203
- If the user confirms, save with frontmatter:
204
-
205
- ```yaml
206
- ---
207
- title: "Drift Analysis: {period}"
208
- note_type: literature
209
- type: analysis
210
- date: <today>
211
- tags: [drift, reflection]
212
- ---
213
- ```
214
-
215
- Use `obsidian create` to save. Ask the user where they'd like it saved.
216
-
217
117
  ## Key Principles
218
118
 
219
- - **Descriptive, not judgmental**: "You said X and did Y" is fine. "You failed to do X" is not. Drift is information, not failure.
220
- - **Vault evidence only**: Only compare what's documented. If something isn't in the vault, it's a gap in documentation, not proof of inaction.
221
- - **Surface patterns, not incidents**: One missed item is noise. Three missed items in the same category is a pattern worth examining.
222
- - **Respect the user's agency**: Drift may be intentional adaptation, not failure. Present findings neutrally and let the user interpret.
223
- - **Emergent work is valid**: Unplanned work that was important should be recognized, not treated as distraction.
119
+ - **Factual, not judgmental.** Report the gap between intention and action without moralizing. The user decides if it matters.
120
+ - **Evidence-based.** Every drift claim must cite specific notes showing both the intention and the actual outcome.
121
+ - **Drift isn't always bad.** Sometimes changing direction is the right call. Flag the drift; let the user judge.
122
+ - **Obsidian is first workbench.** All note operations go through Obsidian CLI.
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: health
3
+ description: >
4
+ Scan agent-maintained directories for health issues: orphan pages, broken wikilinks,
5
+ stale content, frontmatter violations, tag taxonomy drift, oversized pages. Use this
6
+ skill whenever the user wants to audit knowledge base quality, check for broken links,
7
+ find stale or orphan pages, or says anything like "check my wiki", "are there any issues",
8
+ "audit the knowledge base", "find broken links", or "what needs fixing".
9
+ ---
10
+
11
+ # /health — Knowledge Health Check
12
+
13
+ Scan the four agent-maintained directories (`entities/`, `concepts/`, `comparisons/`, `queries/`)
14
+ for structural issues.
15
+
16
+ ## Prerequisites Check
17
+
18
+ ```bash
19
+ obsidian --version
20
+ ```
21
+
22
+ If this fails, STOP and display the Obsidian CLI availability message (see /prep).
23
+
24
+ ## Scan Categories
25
+
26
+ ### 1. Orphan Pages
27
+ Pages with no inbound wikilinks from any other note (user notes or agent pages).
28
+ - Severity: **warning** for new pages (< 7 days old), **info** for older
29
+
30
+ ### 2. Broken Wikilinks
31
+ Wikilinks in agent pages that point to non-existent targets.
32
+ - Severity: **warning**
33
+
34
+ ### 3. Stale Content
35
+ Pages where `updated` date is > 90 days behind the most recent source note's date.
36
+ - Severity: **info**
37
+
38
+ ### 4. Frontmatter Violations
39
+ Pages missing required fields (`title`, `date`, `created`, `updated`, `type`, `tags`, `sources`).
40
+ - Severity: **warning** for missing required fields
41
+
42
+ ### 5. Tag Taxonomy Drift
43
+ Tags used in agent pages that are not defined in `SCHEMA.md`.
44
+ - Severity: **info**
45
+
46
+ ### 6. Oversized Pages
47
+ Pages exceeding ~200 lines — candidates for splitting.
48
+ - Severity: **info**
49
+
50
+ ## Report Format
51
+
52
+ Group findings by severity:
53
+
54
+ ```
55
+ Health check complete. Found 3 issues:
56
+
57
+ Warnings (2):
58
+ • [[broken-link-page]] — broken wikilink to [[nonexistent]]
59
+ • [[orphan-page]] — no inbound links (created 30 days ago)
60
+
61
+ Info (1):
62
+ • [[large-concept]] — 340 lines, consider splitting into sub-topics
63
+ ```
64
+
65
+ Offer concrete fixes for each issue. Ask before making changes.
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: health
3
+ description: >
4
+ Scan agent-maintained directories for health issues: orphan pages, broken wikilinks,
5
+ stale content, frontmatter violations, tag taxonomy drift, oversized pages. Use when
6
+ the user wants to audit the knowledge base quality.
7
+ ---
8
+
9
+ # /health — Knowledge Health Check
10
+
11
+ Scan the four agent-maintained directories (`entities/`, `concepts/`, `comparisons/`, `queries/`)
12
+ for structural issues.
13
+
14
+ ## Prerequisites Check
15
+
16
+ ```bash
17
+ obsidian --version
18
+ ```
19
+
20
+ If this fails, STOP and display the Obsidian CLI availability message (see /prep).
21
+
22
+ ## Scan Categories
23
+
24
+ ### 1. Orphan Pages
25
+ Pages with no inbound wikilinks from any other note (user notes or agent pages).
26
+ - Severity: **warning** for new pages (< 7 days old), **info** for older
27
+
28
+ ### 2. Broken Wikilinks
29
+ Wikilinks in agent pages that point to non-existent targets.
30
+ - Severity: **warning**
31
+
32
+ ### 3. Stale Content
33
+ Pages where `updated` date is > 90 days behind the most recent source note's date.
34
+ - Severity: **info**
35
+
36
+ ### 4. Frontmatter Violations
37
+ Pages missing required fields (`title`, `date`, `created`, `updated`, `type`, `tags`, `sources`).
38
+ - Severity: **warning** for missing required fields
39
+
40
+ ### 5. Tag Taxonomy Drift
41
+ Tags used in agent pages that are not defined in `SCHEMA.md`.
42
+ - Severity: **info**
43
+
44
+ ### 6. Oversized Pages
45
+ Pages exceeding ~200 lines — candidates for splitting.
46
+ - Severity: **info**
47
+
48
+ ## Report Format
49
+
50
+ Group findings by severity:
51
+
52
+ ```
53
+ Health check complete. Found 3 issues:
54
+
55
+ Warnings (2):
56
+ • [[broken-link-page]] — broken wikilink to [[nonexistent]]
57
+ • [[orphan-page]] — no inbound links (created 30 days ago)
58
+
59
+ Info (1):
60
+ • [[large-concept]] — 340 lines, consider splitting into sub-topics
61
+ ```
62
+
63
+ Offer concrete fixes for each issue. Ask before making changes.
@@ -1,11 +1,16 @@
1
1
  ---
2
2
  name: ideas
3
- description: Deep vault scan to generate actionable ideas by combining insights across domains, finding gaps, and proposing concrete next steps. Use when the user asks "give me ideas", "what should I work on", "what opportunities do you see", "brainstorm from my notes", or wants creative suggestions grounded in their vault content.
3
+ description: >
4
+ Deep vault scan to generate actionable ideas by combining insights across domains, finding gaps,
5
+ and proposing concrete next steps. Uses INDEX.base and agent directories (`entities/`, `concepts/`,
6
+ `comparisons/`, `queries/`) for compiled knowledge. Use when the user asks "give me ideas", "what should I work
7
+ on", "what opportunities do you see", "brainstorm from my notes", or wants creative suggestions
8
+ grounded in their vault content.
4
9
  ---
5
10
 
6
11
  # /ideas — Generate Actionable Ideas
7
12
 
8
- You are a strategic thinking partner. Your job is to deeply scan the user's vault across all domains and generate concrete, actionable ideas — not vague suggestions, but specific proposals grounded in what the vault actually contains.
13
+ You are a strategic thinking partner. Your job is to deeply scan the user's vault and generate concrete, actionable ideas — not vague suggestions, but specific proposals grounded in what the vault actually contains.
9
14
 
10
15
  ## Prerequisites Check
11
16
 
@@ -13,11 +18,7 @@ You are a strategic thinking partner. Your job is to deeply scan the user's vaul
13
18
  obsidian --version
14
19
  ```
15
20
 
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.
21
+ If this fails, STOP and display the Obsidian CLI availability message (see /prep).
21
22
 
22
23
  ## Parameters
23
24
 
@@ -48,6 +49,7 @@ Read notes across domains, prioritizing:
48
49
  - Highly connected notes (many backlinks) — central concepts
49
50
  - Notes with `status: active` — current work
50
51
  - `INDEX.base` if it exists — for knowledge structure overview
52
+ - Agent pages in `entities/`, `concepts/`, `comparisons/`, `queries/` — for compiled knowledge
51
53
 
52
54
  For each domain, read 5-10 representative notes to understand the landscape.
53
55
 
@@ -140,7 +142,8 @@ Rank the three highest-impact, most immediately actionable ideas:
140
142
 
141
143
  - Run `/trace topic="X"` to explore Idea 1 further
142
144
  - Run `/connect from="A" to="B"` to validate Idea 3
143
- - Create a decision record for Idea 5
145
+ - Run `/cook` to compile or refresh `entities/`, `concepts/`, `comparisons/`, or `queries/` pages when an idea exposes a knowledge gap
146
+ - Add or extend a page under `queries/` for Idea 5 if it is question-shaped knowledge worth keeping
144
147
  ```
145
148
 
146
149
  ### Step 7: Save (Optional)
@@ -154,8 +157,6 @@ If the user confirms, save with frontmatter:
154
157
  ```yaml
155
158
  ---
156
159
  title: "Ideas: {focus}"
157
- note_type: literature
158
- type: analysis
159
160
  date: <today>
160
161
  tags: [ideas, proactive]
161
162
  ---
@@ -1,11 +1,16 @@
1
1
  ---
2
2
  name: ideas
3
- description: Deep vault scan to generate actionable ideas by combining insights across domains, finding gaps, and proposing concrete next steps. Use when the user asks "give me ideas", "what should I work on", "what opportunities do you see", "brainstorm from my notes", or wants creative suggestions grounded in their vault content.
3
+ description: >
4
+ Deep vault scan to generate actionable ideas by combining insights across domains, finding gaps,
5
+ and proposing concrete next steps. Uses INDEX.base and agent directories (`entities/`, `concepts/`,
6
+ `comparisons/`, `queries/`) for compiled knowledge. Use when the user asks "give me ideas", "what should I work
7
+ on", "what opportunities do you see", "brainstorm from my notes", or wants creative suggestions
8
+ grounded in their vault content.
4
9
  ---
5
10
 
6
11
  # /ideas — Generate Actionable Ideas
7
12
 
8
- You are a strategic thinking partner. Your job is to deeply scan the user's vault across all domains and generate concrete, actionable ideas — not vague suggestions, but specific proposals grounded in what the vault actually contains.
13
+ You are a strategic thinking partner. Your job is to deeply scan the user's vault and generate concrete, actionable ideas — not vague suggestions, but specific proposals grounded in what the vault actually contains.
9
14
 
10
15
  ## Prerequisites Check
11
16
 
@@ -13,11 +18,7 @@ You are a strategic thinking partner. Your job is to deeply scan the user's vaul
13
18
  obsidian --version
14
19
  ```
15
20
 
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.
21
+ If this fails, STOP and display the Obsidian CLI availability message (see /prep).
21
22
 
22
23
  ## Parameters
23
24
 
@@ -48,6 +49,7 @@ Read notes across domains, prioritizing:
48
49
  - Highly connected notes (many backlinks) — central concepts
49
50
  - Notes with `status: active` — current work
50
51
  - `INDEX.base` if it exists — for knowledge structure overview
52
+ - Agent pages in `entities/`, `concepts/`, `comparisons/`, `queries/` — for compiled knowledge
51
53
 
52
54
  For each domain, read 5-10 representative notes to understand the landscape.
53
55
 
@@ -140,7 +142,8 @@ Rank the three highest-impact, most immediately actionable ideas:
140
142
 
141
143
  - Run `/trace topic="X"` to explore Idea 1 further
142
144
  - Run `/connect from="A" to="B"` to validate Idea 3
143
- - Create a decision record for Idea 5
145
+ - Run `/cook` to compile or refresh `entities/`, `concepts/`, `comparisons/`, or `queries/` pages when an idea exposes a knowledge gap
146
+ - Add or extend a page under `queries/` for Idea 5 if it is question-shaped knowledge worth keeping
144
147
  ```
145
148
 
146
149
  ### Step 7: Save (Optional)
@@ -154,8 +157,6 @@ If the user confirms, save with frontmatter:
154
157
  ```yaml
155
158
  ---
156
159
  title: "Ideas: {focus}"
157
- note_type: literature
158
- type: analysis
159
160
  date: <today>
160
161
  tags: [ideas, proactive]
161
162
  ---
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: organize
3
+ description: >
4
+ Directory organization based on frontmatter metadata. Suggests and applies file moves
5
+ to keep the vault structured. Use when the user wants to reorganize notes, fix directory
6
+ placement, clean up the vault structure, or says anything like "organize my notes",
7
+ "clean up the vault", "move files to the right folders", "tidy up", or "restructure
8
+ my notes".
9
+ ---
10
+
11
+ # /organize — Directory Organization
12
+
13
+ You are a librarian. Your job is to ensure every note lives in the right place based on its frontmatter metadata, type, and domain — and to suggest improvements to the overall vault structure.
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
+ - **scope** (optional): `all` (full vault), `agents` (agent pages only), `sources` (user notes), or a specific directory. Default: `all`.
26
+ - **dry_run** (optional): `true` to only suggest, `false` to apply changes. Default: `true`.
27
+
28
+ ## Process
29
+
30
+ ### Step 1: Scan Current Structure
31
+
32
+ ```bash
33
+ obsidian list
34
+ ```
35
+
36
+ Build a picture of:
37
+ - Current directory structure
38
+ - Notes in each directory
39
+ - Notes that seem misplaced based on their frontmatter
40
+
41
+ ### Step 2: Check Agent Pages
42
+
43
+ Agent pages should live in their designated directories:
44
+
45
+ | `type` frontmatter | Expected directory |
46
+ |-------------------|-------------------|
47
+ | `entity` | `entities/` |
48
+ | `concept` | `concepts/` |
49
+ | `comparison` | `comparisons/` |
50
+ | `query` | `queries/` |
51
+
52
+ For each agent page, check:
53
+ - Does its current directory match its `type`?
54
+ - If not, suggest a move
55
+
56
+ ### Step 3: Check User Notes
57
+
58
+ User notes should **remain** in their existing directories (`Projects/`, `Daily/`, personal folders, etc.). Do not suggest moving them into agent directories. Suggest organization only if:
59
+
60
+ - A user note has been placed in an agent directory (`entities/`, `concepts/`, `comparisons/`, `queries/`) — this is likely a mistake; propose moving it back to an appropriate user area
61
+ - Multiple user notes about the same topic are scattered across **user** directories when they could be grouped there (never into agent dirs unless they are true agent pages with correct `type` frontmatter)
62
+
63
+ ### Step 4: Check Naming Conventions
64
+
65
+ Per SCHEMA.md conventions:
66
+ - File names should be lowercase with hyphens, no spaces
67
+ - Names should match the page title (abbreviated, hyphenated)
68
+ - No duplicate names with different suffixes (e.g., `feature-a.md` and `feature-a-1.md`)
69
+
70
+ Flag any naming violations.
71
+
72
+ ### Step 5: Suggest Moves
73
+
74
+ For each misplaced file:
75
+
76
+ ```
77
+ Move: entities/wrong-place.md → concepts/wrong-place.md
78
+ Reason: type=concept but currently in entities/
79
+
80
+ Move: Projects/random-notes.md → Projects/feature-a/
81
+ Reason: Content is about Feature A, should be grouped with other Feature A notes
82
+ ```
83
+
84
+ ### Step 6: Apply Moves (If Confirmed)
85
+
86
+ Use Obsidian CLI to rename/move files:
87
+
88
+ ```bash
89
+ obsidian rename file="old-path.md" new_name="new-path.md"
90
+ ```
91
+
92
+ Always show the full plan before applying. Never move files silently.
93
+
94
+ ### Step 7: Update Wikilinks
95
+
96
+ After moving files, check that all wikilinks to the moved files are still valid:
97
+
98
+ ```bash
99
+ obsidian backlinks "moved-file"
100
+ ```
101
+
102
+ Obsidian typically handles wikilink updates on rename automatically, but verify for safety.
103
+
104
+ ## Key Principles
105
+
106
+ - **Suggest first, act second.** Default to dry_run mode. Show the full plan before making any changes.
107
+ - **Agent directories are sacred.** Only agent pages should live in `entities/`, `concepts/`, `comparisons/`, `queries/`.
108
+ - **User notes are user territory.** Suggest organizational improvements but never move user notes without explicit confirmation.
109
+ - **Obsidian is first workbench.** All note operations go through Obsidian CLI.