@jayjiang/byoao 1.1.0 → 1.1.2

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 (95) hide show
  1. package/dist/assets/obsidian-skills/byoao-conventions.md +103 -0
  2. package/dist/assets/obsidian-skills/defuddle.md +41 -0
  3. package/dist/assets/obsidian-skills/json-canvas.md +244 -0
  4. package/dist/assets/obsidian-skills/obsidian-bases.md +497 -0
  5. package/dist/assets/obsidian-skills/obsidian-cli.md +106 -0
  6. package/dist/assets/obsidian-skills/obsidian-markdown.md +196 -0
  7. package/dist/assets/obsidian-skills/vault-thinking.md +40 -0
  8. package/{src/assets/presets/common/AGENT.md.hbs → dist/assets/presets/common/AGENTS.md.hbs} +11 -15
  9. package/dist/assets/presets/common/Start Here.md.hbs +137 -0
  10. package/dist/assets/presets/common/obsidian/core-plugins.json +33 -0
  11. package/dist/assets/presets/common/obsidian/daily-notes.json +5 -0
  12. package/dist/assets/presets/common/obsidian/templates.json +3 -0
  13. package/dist/assets/presets/common/templates/Daily Note.md +19 -0
  14. package/dist/assets/presets/common/templates/Decision Record.md +32 -0
  15. package/dist/assets/presets/common/templates/Investigation.md +34 -0
  16. package/dist/assets/presets/common/templates/Meeting Notes.md +25 -0
  17. package/dist/assets/presets/minimal/preset.json +28 -0
  18. package/dist/assets/presets/pm-tpm/agent-section.hbs +15 -0
  19. package/dist/assets/presets/pm-tpm/preset.json +43 -0
  20. package/dist/assets/presets/pm-tpm/templates/Feature Doc.md +45 -0
  21. package/dist/assets/presets/pm-tpm/templates/Sprint Handoff.md +38 -0
  22. package/dist/assets/skills/ask.md +132 -0
  23. package/dist/assets/skills/challenge.md +174 -0
  24. package/dist/assets/skills/connect.md +213 -0
  25. package/dist/assets/skills/diagnose.md +72 -0
  26. package/dist/assets/skills/drift.md +223 -0
  27. package/dist/assets/skills/emerge.md +168 -0
  28. package/dist/assets/skills/ideas.md +172 -0
  29. package/dist/assets/skills/organize.md +206 -0
  30. package/dist/assets/skills/trace.md +156 -0
  31. package/dist/assets/skills/weave.md +287 -0
  32. package/dist/assets/skills/wiki.md +227 -0
  33. package/dist/cli/cli-program.js +1 -1
  34. package/dist/cli/cli-program.js.map +1 -1
  35. package/dist/cli/installer.js +37 -2
  36. package/dist/cli/installer.js.map +1 -1
  37. package/dist/hooks/__tests__/system-transform.test.js +47 -29
  38. package/dist/hooks/__tests__/system-transform.test.js.map +1 -1
  39. package/dist/hooks/system-transform.js +2 -113
  40. package/dist/hooks/system-transform.js.map +1 -1
  41. package/dist/index.js +162 -482
  42. package/dist/index.js.map +1 -1
  43. package/dist/lib/cjs-modules.js +4 -1
  44. package/dist/lib/cjs-modules.js.map +1 -1
  45. package/dist/tools/add-person.js +1 -1
  46. package/dist/tools/add-person.js.map +1 -1
  47. package/dist/tools/add-project.js +1 -1
  48. package/dist/tools/add-project.js.map +1 -1
  49. package/dist/tools/init-vault.js +1 -1
  50. package/dist/tools/init-vault.js.map +1 -1
  51. package/dist/tools/vault-doctor.js +1 -1
  52. package/dist/tools/vault-doctor.js.map +1 -1
  53. package/dist/vault/__tests__/create.test.js +23 -23
  54. package/dist/vault/__tests__/create.test.js.map +1 -1
  55. package/dist/vault/__tests__/obsidian-cli.test.js +108 -0
  56. package/dist/vault/__tests__/obsidian-cli.test.js.map +1 -0
  57. package/dist/vault/__tests__/status.test.js +1 -8
  58. package/dist/vault/__tests__/status.test.js.map +1 -1
  59. package/dist/vault/__tests__/vault-detect.test.js +1 -13
  60. package/dist/vault/__tests__/vault-detect.test.js.map +1 -1
  61. package/dist/vault/create.js +23 -64
  62. package/dist/vault/create.js.map +1 -1
  63. package/dist/vault/doctor.js +15 -6
  64. package/dist/vault/doctor.js.map +1 -1
  65. package/dist/vault/manifest.js +1 -1
  66. package/dist/vault/member.js +2 -2
  67. package/dist/vault/member.js.map +1 -1
  68. package/dist/vault/obsidian-cli.js +28 -5
  69. package/dist/vault/obsidian-cli.js.map +1 -1
  70. package/dist/vault/project.js +2 -2
  71. package/dist/vault/project.js.map +1 -1
  72. package/dist/vault/self-update.js +1 -1
  73. package/dist/vault/status.js +3 -5
  74. package/dist/vault/status.js.map +1 -1
  75. package/dist/vault/upgrade.js +7 -2
  76. package/dist/vault/upgrade.js.map +1 -1
  77. package/dist/vault/vault-detect.js +4 -5
  78. package/dist/vault/vault-detect.js.map +1 -1
  79. package/package.json +1 -1
  80. package/src/assets/obsidian-skills/byoao-conventions.md +28 -55
  81. package/src/assets/obsidian-skills/vault-thinking.md +1 -1
  82. package/src/assets/presets/common/AGENTS.md.hbs +25 -0
  83. package/src/assets/presets/common/Start Here.md.hbs +2 -2
  84. package/src/skills/ask.md +132 -0
  85. package/src/skills/challenge.md +8 -2
  86. package/src/skills/connect.md +8 -1
  87. package/src/skills/diagnose.md +12 -13
  88. package/src/skills/drift.md +8 -2
  89. package/src/skills/emerge.md +8 -1
  90. package/src/skills/ideas.md +9 -3
  91. package/src/skills/organize.md +3 -4
  92. package/src/skills/trace.md +10 -3
  93. package/src/skills/weave.md +84 -79
  94. package/src/skills/wiki.md +227 -0
  95. /package/{src → dist}/assets/presets/common/Glossary.md.hbs +0 -0
@@ -0,0 +1,223 @@
1
+ ---
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.
4
+ ---
5
+
6
+ # /drift — Detect Intention-Action Gaps
7
+
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.
9
+
10
+ ## Prerequisites Check
11
+
12
+ ```bash
13
+ obsidian --version
14
+ ```
15
+
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
+
22
+ ## Parameters
23
+
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.
27
+
28
+ ## Process
29
+
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`
36
+
37
+ ### Step 1: Collect Intentions
38
+
39
+ Use a structured, layered approach to find stated intentions:
40
+
41
+ **Layer 1 — Structured notes (most reliable):**
42
+ ```bash
43
+ obsidian search "type: decision"
44
+ obsidian search "type: plan"
45
+ ```
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
+
64
+ Extract a list of **stated intentions** with dates:
65
+ - "{date}: Planned to {X}" (source: [[Note]])
66
+
67
+ ### Step 2: Collect Actions
68
+
69
+ Read daily notes and updates across the period:
70
+
71
+ ```bash
72
+ obsidian search "completed"
73
+ obsidian search "done"
74
+ obsidian search "shipped"
75
+ obsidian search "finished"
76
+ ```
77
+
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?
82
+
83
+ Extract a list of **actual actions** with dates:
84
+ - "{date}: Did {Y}" (source: [[Daily Note]])
85
+
86
+ ### Step 3: Alignment Analysis
87
+
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) |
97
+
98
+ ### Step 4: Identify Drift Patterns
99
+
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."
114
+
115
+ **Emergent priorities** — Unplanned work that became dominant.
116
+ > "'Customer escalations' wasn't in any plan but appears in 60% of daily notes."
117
+
118
+ ### Step 5: Present the Analysis
119
+
120
+ ```markdown
121
+ # Drift Analysis: {period}
122
+
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}
136
+
137
+ ---
138
+
139
+ ## Aligned (on track)
140
+
141
+ - **{Intention}** ({date})
142
+ Stated in: [[Plan Note]]
143
+ Evidence: [[Action Note 1]], [[Action Note 2]]
144
+
145
+ ## Delayed
146
+
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}
151
+
152
+ ## Drifted
153
+
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?
171
+
172
+ ---
173
+
174
+ ## Drift Patterns
175
+
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}
188
+
189
+ ## Suggested Actions
190
+
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
195
+ ```
196
+
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
+ ## Key Principles
218
+
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.
@@ -0,0 +1,168 @@
1
+ ---
2
+ name: emerge
3
+ description: Surface conclusions, patterns, and insights the vault implies but never explicitly states. Analyzes clusters, orphans, and cross-domain connections. Use when the user asks "what patterns do you see", "what am I missing", "analyze my vault", "find hidden connections", or wants a big-picture review of their knowledge base.
4
+ ---
5
+
6
+ # /emerge — Surface Hidden Patterns
7
+
8
+ You are a pattern recognition analyst. Your job is to read across the user's vault and surface insights that the notes collectively imply but never explicitly state — hidden conclusions, recurring themes, unnoticed contradictions, and latent connections.
9
+
10
+ ## Prerequisites Check
11
+
12
+ ```bash
13
+ obsidian --version
14
+ ```
15
+
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
+
22
+ ## Parameters
23
+
24
+ - **scope** (optional): Limit analysis to a folder, domain, or tag. Default: entire vault.
25
+ - **depth** (optional): "quick" (top-level scan) or "deep" (read every note in scope). Default: "quick".
26
+ - **output** (optional): If set, save findings as a note at this path.
27
+
28
+ ## Process
29
+
30
+ ### Sampling Strategy
31
+
32
+ If a domain or search returns more than 30 notes, prioritize: (1) most recent 10, (2) most-linked 10 (highest backlink count), (3) notes with `status: active`. Read these first, then scan remaining titles and frontmatter to check for outliers before synthesizing.
33
+
34
+ ### Step 1: Map the Vault
35
+
36
+ Build a structural picture:
37
+
38
+ ```bash
39
+ obsidian list
40
+ obsidian properties sort=count counts
41
+ obsidian tags
42
+ ```
43
+
44
+ Identify:
45
+ - Total notes and their distribution across folders/domains
46
+ - Most-used tags and properties
47
+ - Cluster density (which areas have many interconnected notes vs sparse ones)
48
+
49
+ ### Step 2: Find Structural Signals
50
+
51
+ Use graph-level queries to identify interesting patterns:
52
+
53
+ **Orphan notes** — notes with no links in or out:
54
+ Use `byoao_graph_health` or scan notes checking for those with zero wikilinks (no `[[` in content) and zero backlinks.
55
+ Orphans may contain ideas the user hasn't connected yet.
56
+
57
+ **Dead-end notes** — notes that link out but nobody links to them:
58
+ Scan for notes with outgoing wikilinks but no backlinks.
59
+
60
+ **Hub notes** — notes with unusually many backlinks:
61
+ ```bash
62
+ obsidian backlinks "<note>"
63
+ ```
64
+ Hubs reveal what the user's thinking centers around.
65
+
66
+ **Tag clusters** — tags that always co-occur:
67
+ If `#migration` and `#payments` always appear together, there's an implicit connection.
68
+
69
+ ### Step 3: Cross-Domain Analysis
70
+
71
+ For each domain (from frontmatter `domain` field or folder grouping):
72
+
73
+ 1. **Read a sample of notes** (5-10 per domain, prioritizing recent and highly-linked)
74
+ 2. **Extract key themes** — what topics recur within the domain?
75
+ 3. **Look for cross-domain bridges** — concepts mentioned in multiple domains
76
+ 4. **Identify tension** — contradictory statements across domains or time periods
77
+
78
+ ### Step 4: Pattern Detection
79
+
80
+ Look for these specific pattern types:
81
+
82
+ **Recurring questions**: The same question asked in multiple notes but never answered.
83
+ > "You've asked 'what's our rollback strategy?' in 4 different meeting notes but no note contains an answer."
84
+
85
+ **Implicit decisions**: A direction was taken without a documented decision.
86
+ > "Notes shifted from Option A to Option B around April, but no decision record exists."
87
+
88
+ **Convergent threads**: Separate lines of thinking that are heading toward the same conclusion.
89
+ > "Your notes on 'API rate limiting' and 'user quotas' both point toward a tiered access model, but neither note references the other."
90
+
91
+ **Forgotten threads**: Topics that received attention then went silent.
92
+ > "'Data mesh' appears in 6 notes between Jan-Mar but hasn't been mentioned since."
93
+
94
+ **Expertise gaps**: The vault references a topic repeatedly but always superficially.
95
+ > "'Kubernetes networking' appears in 12 notes but always as a dependency, never deeply explored."
96
+
97
+ **Contradictions**: Conflicting statements across notes.
98
+ > "In [[Note A]] you wrote 'we should avoid microservices' but [[Note B]] proposes splitting the monolith."
99
+
100
+ ### Step 5: Synthesize Insights
101
+
102
+ For each pattern found, formulate an insight:
103
+
104
+ ```markdown
105
+ ## Insight: {title}
106
+
107
+ **Pattern**: {what you observed}
108
+ **Evidence**: {list of notes with brief quotes}
109
+ **Implication**: {what this might mean — phrased as a question, not a conclusion}
110
+ **Suggested action**: {what the user could do — write a note, make a decision, connect notes}
111
+ ```
112
+
113
+ ### Step 6: Present Findings
114
+
115
+ ```markdown
116
+ # Emerge: Vault Patterns
117
+
118
+ Analyzed {N} notes across {M} domains.
119
+
120
+ ## Key Findings
121
+
122
+ ### 1. {Insight title}
123
+ {Pattern, evidence, implication, action}
124
+
125
+ ### 2. {Insight title}
126
+ ...
127
+
128
+ ## Structural Observations
129
+
130
+ - **Most connected**: [[Note]] ({N} backlinks) — your thinking hub
131
+ - **Most isolated**: {N} orphan notes that may contain undeveloped ideas
132
+ - **Busiest domain**: {domain} ({N} notes)
133
+ - **Thinnest domain**: {domain} ({N} notes) — possible blind spot
134
+
135
+ ## Suggested Next Steps
136
+
137
+ 1. {Actionable suggestion — e.g. "Connect [[A]] and [[B]] — they discuss the same problem"}
138
+ 2. {Actionable suggestion — e.g. "Write a decision record for the implicit choice between X and Y"}
139
+ 3. {Actionable suggestion — e.g. "Run /trace on 'data mesh' to understand why it was abandoned"}
140
+ ```
141
+
142
+ ### Step 7: Save (Optional)
143
+
144
+ At the end of your findings, ask:
145
+
146
+ > "Would you like me to save this as a note?"
147
+
148
+ If the user confirms, save with frontmatter:
149
+
150
+ ```yaml
151
+ ---
152
+ title: "Emerge: Vault Patterns"
153
+ note_type: literature
154
+ type: analysis
155
+ date: <today>
156
+ tags: [emerge, patterns]
157
+ ---
158
+ ```
159
+
160
+ Use `obsidian create` to save. Ask the user where they'd like it saved.
161
+
162
+ ## Key Principles
163
+
164
+ - **Show, don't tell**: Always cite specific notes and quotes. Never claim a pattern exists without evidence.
165
+ - **Questions over conclusions**: Frame implications as questions the user should consider, not answers you've decided.
166
+ - **Respect user judgment**: The user may be aware of patterns and have chosen not to act. Present findings neutrally.
167
+ - **Prioritize actionable insights**: "These two notes should link to each other" is more useful than "your vault has 12 orphans."
168
+ - **Deep mode means thorough**: In "deep" mode, read every note in scope. In "quick" mode, use structural signals and sampling.
@@ -0,0 +1,172 @@
1
+ ---
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.
4
+ ---
5
+
6
+ # /ideas — Generate Actionable Ideas
7
+
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.
9
+
10
+ ## Prerequisites Check
11
+
12
+ ```bash
13
+ obsidian --version
14
+ ```
15
+
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
+
22
+ ## Parameters
23
+
24
+ - **focus** (optional): Narrow ideas to a specific domain, project, or theme. Default: scan all domains.
25
+ - **count** (optional): Number of ideas to generate. Default: 5.
26
+ - **output** (optional): Save ideas as a note at this path.
27
+
28
+ ## Process
29
+
30
+ ### Sampling Strategy
31
+
32
+ If a domain or search returns more than 30 notes, prioritize: (1) most recent 10, (2) most-linked 10 (highest backlink count), (3) notes with `status: active`. Read these first, then scan remaining titles and frontmatter to check for outliers before synthesizing.
33
+
34
+ ### Step 1: Map the Vault
35
+
36
+ ```bash
37
+ obsidian list
38
+ obsidian properties sort=count counts
39
+ obsidian tags
40
+ ```
41
+
42
+ Build a picture of: domains, note distribution, most active areas, tag clusters.
43
+
44
+ ### Step 2: Deep Read
45
+
46
+ Read notes across domains, prioritizing:
47
+ - Recent notes (last 30 days) — what the user is actively thinking about
48
+ - Highly connected notes (many backlinks) — central concepts
49
+ - Notes with `status: active` — current work
50
+ - `INDEX.base` if it exists — for knowledge structure overview
51
+
52
+ For each domain, read 5-10 representative notes to understand the landscape.
53
+
54
+ ### Step 3: Cross-Pollinate
55
+
56
+ The best ideas come from combining insights across domains. For each pair of active domains:
57
+
58
+ 1. Identify shared concepts, people, or challenges
59
+ 2. Look for solutions in one domain that could apply to another
60
+ 3. Find gaps: "Domain A discusses X extensively but never mentions Y, which Domain B treats as critical"
61
+
62
+ ### Step 4: Identify Idea Types
63
+
64
+ Generate ideas across these categories:
65
+
66
+ **Synthesis ideas** — Combine two existing threads into something new.
67
+ > "Your notes on 'event sourcing' and 'audit compliance' both need immutable logs. A unified audit-event architecture could serve both."
68
+
69
+ **Gap ideas** — Something the vault implies is needed but doesn't exist.
70
+ > "You have 15 notes about 'payment migration' but no rollback strategy document. Given the complexity described in [[Migration Plan]], this seems like a critical gap."
71
+
72
+ **Connection ideas** — Two people/projects should be talking to each other.
73
+ > "[[Alice]] is working on rate limiting and [[Bob]] on API gateway redesign. Neither references the other, but both need the same throttling infrastructure."
74
+
75
+ **Amplification ideas** — Take something small and scale it.
76
+ > "Your daily note from March 15 mentions 'what if we exposed the internal API to partners?' — 4 other notes contain evidence this could work."
77
+
78
+ **Challenge ideas** — Question an assumption the vault takes for granted.
79
+ > "Every note about the data pipeline assumes batch processing, but your meeting notes from February suggest the team wants real-time. Is batch still the right choice?"
80
+
81
+ **People ideas** — People the user should meet, reconnect with, or introduce to each other.
82
+ > "[[Alice]] keeps coming up in your infrastructure notes but you haven't had a 1:1 since February. Worth reconnecting."
83
+
84
+ **Content ideas** — Things worth writing or publishing, based on depth of vault coverage.
85
+ > "You have 8 notes about 'event-driven architecture' spanning 4 months — enough material for an article or internal tech talk."
86
+
87
+ ### Step 5: Validate Each Idea
88
+
89
+ For each idea, verify:
90
+ - Is the evidence actually in the vault? (cite specific notes with quotes)
91
+ - Is this actionable? (what concrete step would the user take?)
92
+ - Is this non-obvious? (would the user have thought of this on their own?)
93
+
94
+ Discard ideas that fail any of these checks.
95
+
96
+ ### Step 6: Present Ideas
97
+
98
+ ```markdown
99
+ # Ideas: {focus or "Across All Domains"}
100
+
101
+ Generated from {N} notes across {M} domains.
102
+
103
+ ---
104
+
105
+ ### Idea 1: {Title}
106
+
107
+ **Type**: {synthesis / gap / connection / amplification / challenge}
108
+
109
+ **The insight**: {2-3 sentences explaining the idea}
110
+
111
+ **Evidence**:
112
+ - [[Note A]]: "{relevant quote}"
113
+ - [[Note B]]: "{relevant quote}"
114
+ - [[Note C]]: "{relevant quote}"
115
+
116
+ **Concrete next step**: {exactly what to do — write a note, schedule a meeting, create a project, run /trace on a topic}
117
+
118
+ **Impact**: {why this matters — what it could unlock or prevent}
119
+
120
+ ---
121
+
122
+ ### Idea 2: {Title}
123
+ ...
124
+
125
+ ---
126
+
127
+ ## How These Ideas Connect
128
+
129
+ {Brief paragraph on themes across the ideas — are they pointing in the same direction?}
130
+
131
+ ## Top 3 Do Now
132
+
133
+ Rank the three highest-impact, most immediately actionable ideas:
134
+
135
+ 1. **{Idea title}** — {one-sentence reason this is high-priority}
136
+ 2. **{Idea title}** — {reason}
137
+ 3. **{Idea title}** — {reason}
138
+
139
+ ## Suggested Follow-ups
140
+
141
+ - Run `/trace topic="X"` to explore Idea 1 further
142
+ - Run `/connect from="A" to="B"` to validate Idea 3
143
+ - Create a decision record for Idea 5
144
+ ```
145
+
146
+ ### Step 7: Save (Optional)
147
+
148
+ At the end of your ideas, ask:
149
+
150
+ > "Would you like me to save this as a note?"
151
+
152
+ If the user confirms, save with frontmatter:
153
+
154
+ ```yaml
155
+ ---
156
+ title: "Ideas: {focus}"
157
+ note_type: literature
158
+ type: analysis
159
+ date: <today>
160
+ tags: [ideas, proactive]
161
+ ---
162
+ ```
163
+
164
+ Use `obsidian create` to save. Ask the user where they'd like it saved.
165
+
166
+ ## Key Principles
167
+
168
+ - **Actionable over interesting**: Every idea must have a concrete next step. "Interesting observation" is not an idea.
169
+ - **Evidence-based**: Every idea must cite 2+ vault notes. No general knowledge ideas.
170
+ - **Non-obvious**: If the user would have thought of it without AI, it's not worth presenting.
171
+ - **Respect priorities**: Don't suggest ideas that contradict the user's stated direction unless explicitly framed as a challenge.
172
+ - **Quality over quantity**: 3 strong ideas beat 10 weak ones. Filter aggressively.