@jayjiang/byoao 0.9.0 → 0.9.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.
@@ -62,6 +62,11 @@ function buildNavigationStrategy(vaultPath) {
62
62
  "| `references`| Related notes — follow for deeper context |",
63
63
  "| `type` | Note kind (meeting, idea, reference, daily, etc) |",
64
64
  "| `tags` | Flexible categorization |",
65
+ "",
66
+ "### Vault Health",
67
+ "",
68
+ "If you notice broken wikilinks, orphan notes, or missing frontmatter while working,",
69
+ "suggest that the user run `/diagnose` to get a full vault health report.",
65
70
  ].join("\n");
66
71
  }
67
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"system-transform.js","sourceRoot":"","sources":["../../src/hooks/system-transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-transform.js","sourceRoot":"","sources":["../../src/hooks/system-transform.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jayjiang/byoao",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "description": "Build Your Own AI OS — Obsidian + AI Agent",
5
5
  "type": "module",
6
6
  "engines": {
@@ -0,0 +1,40 @@
1
+ ---
2
+ name: vault-thinking
3
+ description: Guide for recommending BYOAO vault analysis commands to users. Use when the user is reflecting, brainstorming, stuck on an idea, asking about patterns, or could benefit from a vault-powered thinking workflow.
4
+ ---
5
+
6
+ # Vault Thinking Guide
7
+
8
+ This vault has BYOAO thinking commands available. Suggest them when they match the user's intent — don't wait for an exact keyword match.
9
+
10
+ ## Available Commands
11
+
12
+ | Command | What it does | Suggest when |
13
+ |---------|-------------|--------------|
14
+ | `/weave` | Enrich notes with frontmatter, wikilinks, Glossary entries, hub notes | User imports new files, asks to organize, or vault has many unlinked notes |
15
+ | `/trace topic` | Chronological timeline of how an idea evolved | User asks how something developed, wants history, or says "when did I start..." |
16
+ | `/emerge` | Surface hidden patterns, clusters, contradictions across the vault | User asks "what am I missing", wants a big-picture review, or seems stuck |
17
+ | `/connect A B` | Bridge two topics via the vault's link graph | User wonders if two areas are related, or wants cross-domain insight |
18
+ | `/ideas` | Deep scan to generate actionable ideas from vault content | User asks "what should I work on", wants brainstorming, or needs next steps |
19
+ | `/challenge topic` | Pressure-test a belief against the vault's own history | User is making a decision, says "am I wrong", or wants to validate an assumption |
20
+ | `/drift` | Compare stated intentions vs actual behavior over 30-90 days | User asks about follow-through, wonders where time went, or reviews goals |
21
+ | `/diagnose` | Vault health check — orphans, broken links, frontmatter gaps | User notices broken links, asks "what's wrong with my vault", or after heavy editing |
22
+ ## When to Proactively Suggest
23
+
24
+ - User is **reflecting on a topic** → suggest `/trace` to see how their thinking evolved
25
+ - User is **brainstorming or feels stuck** → suggest `/emerge` or `/ideas`
26
+ - User is **making a decision** → suggest `/challenge` to pressure-test it
27
+ - User is **reviewing goals or progress** → suggest `/drift`
28
+ - User **imported new notes** or mentions disorganization → suggest `/weave`
29
+ - User asks about **connections between topics** → suggest `/connect`
30
+ - User mentions **broken links or vault messiness** → suggest `/diagnose`
31
+
32
+ ## How to Suggest
33
+
34
+ Mention the command naturally in conversation. For example:
35
+
36
+ - "You could run `/trace data-mesh` to see how that idea has evolved across your notes."
37
+ - "If you want to pressure-test that assumption, `/challenge` can find counter-evidence in your vault."
38
+ - "After importing those files, `/weave` can add frontmatter and link them to your existing notes."
39
+
40
+ Do not run these commands automatically — they read many vault files and can take several minutes. Always let the user decide when to invoke them.
@@ -15,6 +15,10 @@ obsidian --version
15
15
 
16
16
  If this fails, STOP and display the Obsidian CLI availability message (see /weave for the full error text).
17
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
+
18
22
  ## Parameters
19
23
 
20
24
  - **belief** (required): The belief, assumption, or decision to challenge. Can be a direct statement or a reference to a note.
@@ -15,6 +15,10 @@ obsidian --version
15
15
 
16
16
  If this fails, STOP and display the Obsidian CLI availability message (see /weave for the full error text).
17
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
+
18
22
  ## Parameters
19
23
 
20
24
  - **from** (required): The first topic, concept, domain, or note.
@@ -58,7 +58,7 @@ For each issue category, suggest a concrete next action:
58
58
 
59
59
  ### Step 5: Update AGENT.md Timestamp
60
60
 
61
- After fixes are applied (with user consent), append or update a `Last Scanned` line at the bottom of AGENT.md:
61
+ After fixes are applied, **ask the user** before updating AGENT.md. If confirmed, append or update a `Last Scanned` line at the bottom of AGENT.md:
62
62
 
63
63
  ```markdown
64
64
  ---
@@ -15,6 +15,10 @@ obsidian --version
15
15
 
16
16
  If this fails, STOP and display the Obsidian CLI availability message (see /weave for the full error text).
17
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
+
18
22
  ## Parameters
19
23
 
20
24
  - **period** (optional): Time window to analyze. Default: "30d" (last 30 days). Accepts: "7d", "30d", "60d", "90d".
@@ -23,24 +27,39 @@ If this fails, STOP and display the Obsidian CLI availability message (see /weav
23
27
 
24
28
  ## Process
25
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
+
26
37
  ### Step 1: Collect Intentions
27
38
 
28
- Search for stated intentions, goals, and plans:
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.
29
50
 
51
+ **Layer 3 — Keyword fallback (for vaults without structured frontmatter):**
52
+ Only if Layers 1-2 produce fewer than 5 intentions:
30
53
  ```bash
31
54
  obsidian search "goal"
32
- obsidian search "plan"
33
- obsidian search "will do"
34
55
  obsidian search "next steps"
35
56
  obsidian search "TODO"
36
57
  obsidian search "priority"
37
58
  ```
38
59
 
39
60
  Also read:
40
- - Decision records what was decided
41
- - Sprint/project plans what was committed
42
- - Daily notes from the start of the period — stated priorities
43
- - Meeting notes — action items assigned
61
+ - Meeting notes with action items assigned
62
+ - Notes with tags like `#plan`, `#goal`, `#commitment`
44
63
 
45
64
  Extract a list of **stated intentions** with dates:
46
65
  - "{date}: Planned to {X}" (source: [[Note]])
@@ -88,6 +107,7 @@ Look for systemic patterns, not just individual misses:
88
107
 
89
108
  **Energy leaks** — Time going to undocumented work.
90
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.
91
111
 
92
112
  **Goal abandonment** — Goals that silently disappeared.
93
113
  > "The Q1 goal of 'improve test coverage' was mentioned 3 times in January and never again."
@@ -15,6 +15,10 @@ obsidian --version
15
15
 
16
16
  If this fails, STOP and display the Obsidian CLI availability message (see /weave for the full error text).
17
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
+
18
22
  ## Parameters
19
23
 
20
24
  - **scope** (optional): Limit analysis to a folder, domain, or tag. Default: entire vault.
@@ -23,6 +27,10 @@ If this fails, STOP and display the Obsidian CLI availability message (see /weav
23
27
 
24
28
  ## Process
25
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
+
26
34
  ### Step 1: Map the Vault
27
35
 
28
36
  Build a structural picture:
@@ -15,6 +15,10 @@ obsidian --version
15
15
 
16
16
  If this fails, STOP and display the Obsidian CLI availability message (see /weave for the full error text).
17
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
+
18
22
  ## Parameters
19
23
 
20
24
  - **focus** (optional): Narrow ideas to a specific domain, project, or theme. Default: scan all domains.
@@ -23,6 +27,10 @@ If this fails, STOP and display the Obsidian CLI availability message (see /weav
23
27
 
24
28
  ## Process
25
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
+
26
34
  ### Step 1: Map the Vault
27
35
 
28
36
  ```bash
@@ -70,6 +78,12 @@ Generate ideas across these categories:
70
78
  **Challenge ideas** — Question an assumption the vault takes for granted.
71
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?"
72
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
+
73
87
  ### Step 5: Validate Each Idea
74
88
 
75
89
  For each idea, verify:
@@ -114,6 +128,14 @@ Generated from {N} notes across {M} domains.
114
128
 
115
129
  {Brief paragraph on themes across the ideas — are they pointing in the same direction?}
116
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
+
117
139
  ## Suggested Follow-ups
118
140
 
119
141
  - Run `/trace topic="X"` to explore Idea 1 further
@@ -15,6 +15,10 @@ obsidian --version
15
15
 
16
16
  If this fails, STOP and display the Obsidian CLI availability message (see /weave for the full error text).
17
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
+
18
22
  ## Parameters
19
23
 
20
24
  - **topic** (required): The idea, concept, person, project, or term to trace.
@@ -23,6 +27,10 @@ If this fails, STOP and display the Obsidian CLI availability message (see /weav
23
27
 
24
28
  ## Process
25
29
 
30
+ ### Sampling Strategy
31
+
32
+ If a 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
+
26
34
  ### Step 1: Find All Mentions
27
35
 
28
36
  Search for the topic across the vault using multiple strategies:
@@ -47,8 +47,6 @@ When scanning files, skip:
47
47
  | `AGENT.md` | BYOAO-managed file |
48
48
  | `Knowledge/templates/` | Template files — not user content |
49
49
 
50
- Also respect `.byoaoignore` if present (same format as `.gitignore`).
51
-
52
50
  Report skipped non-markdown files at the end: "Skipped N non-markdown files".
53
51
 
54
52
  ## Process
@@ -1,58 +0,0 @@
1
- ---
2
- name: explain
3
- description: Explain codebase systems and workflows in clear, non-jargon language, cached in the Obsidian vault. Use when the user asks "how does this system work", "explain the architecture", "what does this service do", or needs a plain-language explanation of any codebase or technical system.
4
- ---
5
-
6
- # /explain — System Explainer
7
-
8
- You are a codebase knowledge assistant for knowledge workers. Your job is to explain system behavior, workflows, and architecture in plain language — no code blocks unless explicitly requested.
9
-
10
- ## Three-Layer Knowledge Strategy
11
-
12
- System knowledge comes from three sources, in priority order:
13
-
14
- ```
15
- Layer 1: Baseline Overview — Codebase overview per repo (high-level architecture)
16
- Layer 2: Live Code Access — Local repo clone + file read/grep (detailed tracing)
17
- Layer 3: Knowledge Cache — Obsidian Vault Systems/ (accumulated explanations)
18
- ```
19
-
20
- ### Layer 1: Baseline Overviews
21
-
22
- Engineers generate a codebase overview for each repo (e.g. via `opencode /init` or similar), containing architecture, key paths, conventions, and dependencies. These overviews are stored at:
23
-
24
- ```
25
- .opencode/context/repos/
26
- _index.md # Repo registry: name, one-line description, last-updated date
27
- payment-service.md # Overview of payment-service repo
28
- auth-service.md # Overview of auth-service repo
29
- api-gateway.md # Overview of api-gateway repo
30
- ```
31
-
32
- **Always load the relevant baseline overview first** before reading raw code.
33
-
34
- ### Layer 2: Local Repo Clones
35
-
36
- For detailed questions, read the actual code from local clones at `~/repos/`. Use file read + grep + git log to trace specific workflows.
37
-
38
- ### Layer 3: Obsidian Knowledge Cache
39
-
40
- Previously generated explanations are cached in `Systems/`. Reuse them when the question matches and the doc is still current.
41
-
42
- ## Behavior
43
-
44
- 1. **Parse the question** — identify the target system, service, or feature.
45
- 2. **Load baseline overview** — read `.opencode/context/repos/{service}.md`.
46
- 3. **Check Obsidian vault** — search `Systems/` for existing knowledge docs.
47
- 4. **If more detail needed** — read the local repo clone using baseline as guide.
48
- 5. **Staleness detection** — flag discrepancies between baseline and actual code.
49
- 6. **Synthesize a clear explanation** with Mermaid diagrams where helpful.
50
- 7. **Save to Obsidian vault** — create or update a doc in `Systems/`.
51
-
52
- ## Output Style
53
-
54
- - Lead with **what the system does** (behavior), not how it's coded
55
- - Use workflow descriptions: "When X happens, the system does Y, then Z"
56
- - Include Mermaid diagrams for multi-step flows
57
- - No code blocks unless explicitly requested
58
- - Use `[[wikilinks]]` to connect related vault docs