@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.
- 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/{src/skills/ask.md → dist/assets/skills/ask/SKILL.md} +30 -27
- package/dist/assets/skills/ask.md +28 -27
- package/dist/assets/skills/challenge/SKILL.md +134 -0
- package/dist/assets/skills/challenge.md +79 -121
- package/dist/assets/skills/connect/SKILL.md +126 -0
- package/dist/assets/skills/connect.md +75 -163
- package/dist/assets/skills/cook/SKILL.md +170 -0
- package/dist/assets/skills/cook.md +167 -0
- package/dist/assets/skills/diagnose/SKILL.md +134 -0
- package/dist/assets/skills/diagnose.md +102 -43
- package/dist/assets/skills/drift/SKILL.md +123 -0
- package/dist/assets/skills/drift.md +64 -165
- package/dist/assets/skills/health/SKILL.md +65 -0
- package/dist/assets/skills/health.md +63 -0
- package/{src/skills/ideas.md → dist/assets/skills/ideas/SKILL.md} +11 -10
- package/dist/assets/skills/ideas.md +11 -10
- package/dist/assets/skills/organize/SKILL.md +109 -0
- package/dist/assets/skills/organize.md +56 -155
- package/dist/assets/skills/prep/SKILL.md +65 -0
- package/dist/assets/skills/prep.md +63 -0
- package/dist/assets/skills/trace/SKILL.md +143 -0
- package/dist/assets/skills/trace.md +75 -90
- package/dist/assets/skills/wiki/SKILL.md +127 -0
- package/dist/assets/skills/wiki.md +77 -178
- package/dist/cli/cli-program.js +18 -15
- package/dist/cli/cli-program.js.map +1 -1
- package/dist/cli/installer.js +54 -29
- 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 +455 -636
- 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 +48 -116
- 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 +86 -196
- 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 +2 -2
- package/dist/vault/manifest.js.map +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 +165 -23
- 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/SKILL.md +135 -0
- package/src/skills/challenge/SKILL.md +134 -0
- package/src/skills/connect/SKILL.md +126 -0
- package/src/skills/cook/SKILL.md +170 -0
- package/src/skills/diagnose/SKILL.md +134 -0
- package/src/skills/drift/SKILL.md +123 -0
- package/src/skills/health/SKILL.md +65 -0
- package/src/skills/ideas/SKILL.md +173 -0
- package/src/skills/organize/SKILL.md +109 -0
- package/src/skills/prep/SKILL.md +65 -0
- package/src/skills/trace/SKILL.md +143 -0
- package/src/skills/wiki/SKILL.md +127 -0
- 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/challenge.md +0 -174
- package/src/skills/connect.md +0 -213
- package/src/skills/diagnose.md +0 -72
- package/src/skills/drift.md +0 -223
- package/src/skills/emerge.md +0 -168
- package/src/skills/organize.md +0 -206
- package/src/skills/trace.md +0 -156
- package/src/skills/weave.md +0 -287
- package/src/skills/wiki.md +0 -227
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: drift
|
|
3
|
-
description:
|
|
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 —
|
|
9
|
+
# /drift — Intention vs. Action
|
|
7
10
|
|
|
8
|
-
You are
|
|
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 /
|
|
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 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
|
-
###
|
|
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
|
-
|
|
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 "
|
|
44
|
-
obsidian search "
|
|
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
|
-
|
|
65
|
-
-
|
|
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:
|
|
43
|
+
### Step 2: Find Actual Actions
|
|
68
44
|
|
|
69
|
-
|
|
45
|
+
Search for evidence of what actually happened:
|
|
70
46
|
|
|
71
47
|
```bash
|
|
72
|
-
obsidian search "completed"
|
|
73
|
-
obsidian search "
|
|
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
|
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
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
|
-
|
|
84
|
-
- "{date}: Did {Y}" (source: [[Daily Note]])
|
|
59
|
+
### Step 3: Compare Intentions to Actions
|
|
85
60
|
|
|
86
|
-
|
|
61
|
+
For each intention found:
|
|
87
62
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
|
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
|
-
|
|
116
|
-
|
|
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
|
|
79
|
+
### Step 5: Present the Drift Report
|
|
119
80
|
|
|
120
81
|
```markdown
|
|
121
|
-
# Drift
|
|
82
|
+
# Drift Report: {topic or "Recent Intentions"}
|
|
122
83
|
|
|
123
|
-
|
|
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
|
-
##
|
|
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
|
-
##
|
|
91
|
+
## Partially Followed ⚡
|
|
92
|
+
- **{intention}** — {what was done vs. what was planned, gap evidence from [[note]]}
|
|
146
93
|
|
|
147
|
-
|
|
148
|
-
|
|
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
|
-
##
|
|
97
|
+
## Diverged ↩
|
|
98
|
+
- **{intention}** — {original plan from [[note A]], actual outcome from [[note B]]}
|
|
153
99
|
|
|
154
|
-
|
|
155
|
-
|
|
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
|
-
###
|
|
177
|
-
{
|
|
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
|
-
|
|
110
|
+
### Direction Drift
|
|
111
|
+
{Evidence that the approach changed from the original plan}
|
|
190
112
|
|
|
191
|
-
|
|
192
|
-
-
|
|
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
|
-
- **
|
|
220
|
-
- **
|
|
221
|
-
- **
|
|
222
|
-
- **
|
|
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:
|
|
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
|
|
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 /
|
|
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
|
-
-
|
|
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:
|
|
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
|
|
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 /
|
|
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
|
-
-
|
|
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.
|