@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
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: byoao-conventions
3
- description: Use when creating or modifying notes in a BYOAO-structured vault. Enforces frontmatter, directory placement, wikilinks, and naming conventions.
3
+ description: Use when creating or modifying notes in a BYOAO-structured vault. Enforces frontmatter requirements, wikilinks, and naming conventions.
4
4
  ---
5
5
 
6
6
  # BYOAO Document Conventions
@@ -11,34 +11,19 @@ You MUST follow these conventions when creating or modifying any note in this va
11
11
 
12
12
  Before creating any note:
13
13
 
14
- 1. Read `AGENT.md` — check the Document Conventions section for vault-specific rules
15
- 2. Check `Knowledge/Glossary.md` know the domain terminology before writing
16
- 3. Identify the correct template match your note type to a template below
17
- 4. Verify the target directory — place the file according to its `type`
14
+ 1. Read `AGENTS.md` — check the knowledge base structure and note types
15
+ 2. Identify the note type: `fleeting` (raw input), `literature` (processed reference), or `permanent` (atomic concept)
16
+ 3. Use `obsidian create` to create notes never use file write tools directly
18
17
 
19
18
  ## Creating Notes
20
19
 
21
- You MUST use `obsidian create` to create notes in the vault — never use
22
- file write tools directly. Obsidian CLI ensures the file is tracked by
23
- Obsidian and templates are applied correctly.
24
-
25
- When a matching template exists:
20
+ You MUST use `obsidian create` to create notes in the vault:
26
21
 
27
22
  ```
28
- obsidian create name="Feature Name" template="Feature Doc" path="Projects/"
29
- obsidian create name="Sprint N Handoff" template="Sprint Handoff" path="Sprints/"
30
- obsidian create name="Meeting Title" template="Meeting Notes"
31
- obsidian create name="Investigation Title" template="Investigation"
32
- obsidian create name="Decision Title" template="Decision Record"
33
- obsidian create name="YYYY-MM-DD" template="Daily Note" path="Daily/"
23
+ obsidian create name="Note Title" content="<frontmatter + content>" silent
34
24
  ```
35
25
 
36
- If no template matches, construct frontmatter manually. `date` MUST be
37
- today's actual date — never a placeholder, never omitted:
38
-
39
- ```
40
- obsidian create name="Note Title" content="---\ntitle: \"Note Title\"\ntype: reference\nstatus: draft\ndate: 2026-04-02\ntags: []\n---\n\n# Note Title\n" silent
41
- ```
26
+ For multiline content use `\n` for newline and `\t` for tab.
42
27
 
43
28
  ## Required Frontmatter
44
29
 
@@ -47,36 +32,19 @@ Every note MUST have these fields:
47
32
  | Field | Values |
48
33
  |-------|--------|
49
34
  | `title` | Descriptive title |
50
- | `type` | `feature`, `sprint-handoff`, `meeting`, `investigation`, `decision`, `daily`, `reference`, `person` |
51
- | `status` | `draft`, `active`, `completed`, `archived` |
52
- | `date` | YYYY-MM-DD |
35
+ | `note_type` | `fleeting`, `literature`, or `permanent` |
36
+ | `type` | `meeting`, `idea`, `reference`, `daily`, `project`, `person`, etc. |
37
+ | `date` | YYYY-MM-DD — today's date or extracted from content |
53
38
  | `tags` | Array of relevant tags |
54
39
 
55
- Additional fields by type:
40
+ Additional fields (optional):
56
41
 
57
- | type | Additional Fields |
58
- |------|-------------------|
59
- | `feature` | `project`, `jira`, `stakeholders`, `priority` |
60
- | `sprint-handoff` | `sprint`, `sprint-dates`, `jira-board` |
61
- | `meeting` | `participants`, `meeting-type` |
62
- | `investigation` | `jira`, `hypothesis` |
63
- | `decision` | `decision`, `decided-by` |
64
- | `person` | `team`, `role` |
65
-
66
- ## Directory Placement
67
-
68
- ALWAYS place files in the directory matching their type. Refer to the Document Conventions section in `AGENT.md` for the authoritative type-to-directory mapping for this vault.
69
-
70
- | type | Directory |
71
- |------|-----------|
72
- | `feature` | `Projects/` |
73
- | `sprint-handoff` | `Sprints/` |
74
- | `daily` | `Daily/` |
75
- | `reference` | `Knowledge/` |
76
- | `person` | `People/` |
77
- | `meeting` | Within relevant project or sprint folder |
78
- | `investigation` | Within relevant project folder |
79
- | `decision` | Within relevant project folder |
42
+ | Field | Purpose |
43
+ |-------|---------|
44
+ | `domain` | Knowledge area (e.g. ai-agents, product-strategy) |
45
+ | `references` | Related notes as wikilinks: `[[Note Name]]` |
46
+ | `status` | `draft`, `active`, `completed`, `archived` |
47
+ | `source` | URL to cloud origin (Confluence, Google Docs, etc.) |
80
48
 
81
49
  ## Wikilink Rules
82
50
 
@@ -84,20 +52,25 @@ ALWAYS use wikilinks for:
84
52
 
85
53
  - People → `[[Person Name]]`
86
54
  - Projects → `[[Project Name]]`
87
- - Domain termscheck `[[Glossary]]` first, link if present
88
- - Teamslink to the team index note in `People/`
55
+ - Domain concepts → `[[Concept Name]]`
56
+ - Related notes `[[Note Name]]`
57
+
58
+ Rules:
59
+ - Use `[[wikilinks]]` for internal vault connections
60
+ - Use `[text](url)` for external URLs only
61
+ - Use `[[Note Name#Heading]]` for specific section links
62
+ - Use `[[Note Name\|Display Text]]` for custom display text
89
63
 
90
64
  ## File Naming
91
65
 
92
66
  - Use Title Case or kebab-case for file names
93
- - JIRA tickets: use the project key prefix (e.g., `PROJ-1234-Description.md`)
94
67
  - No special characters, no leading/trailing spaces
68
+ - Daily notes: `YYYY-MM-DD` format
95
69
 
96
70
  ## Post-Creation Verification
97
71
 
98
72
  After creating or modifying a note, verify:
99
73
 
100
74
  1. All required frontmatter fields are present and correct
101
- 2. File is in the correct directory for its type
102
- 3. People and project mentions use `[[wikilinks]]`
103
- 4. Domain terms reference `[[Glossary]]`
75
+ 2. People and project mentions use `[[wikilinks]]`
76
+ 3. Domain concepts are linked consistently
@@ -11,7 +11,7 @@ This vault has BYOAO thinking commands available. Suggest them when they match t
11
11
 
12
12
  | Command | What it does | Suggest when |
13
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 |
14
+ | `/weave` | Enrich notes with frontmatter, wikilinks, suggest permanent concept notes | User imports new files, asks to organize, or vault has many unlinked notes |
15
15
  | `/trace topic` | Chronological timeline of how an idea evolved | User asks how something developed, wants history, or says "when did I start..." |
16
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
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 |
@@ -0,0 +1,25 @@
1
+ # AI Agent Guide
2
+
3
+ ## 关于本知识库
4
+ 这是一个基于 Zettelkasten 理念构建的个人知识库。知识通过原子化的笔记和双向链接形成网络。你可以保留自己的目录组织习惯,笔记之间的关联由 Agent 通过 `/weave` 自动维护。
5
+
6
+ ## 从哪里开始
7
+ 知识图谱:运行 `/wiki` 生成 `INDEX.base` 后,从这里探索知识库的结构。
8
+
9
+ ## 笔记类型
10
+ 每条笔记通过 frontmatter 的 `note_type` 分为三类:
11
+ - **fleeting** — 原始摄入,待处理
12
+ - **literature** — 对某来源的整理笔记
13
+ - **permanent** — 原子概念笔记
14
+
15
+ ## 操作规则
16
+ **使用 Obsidian CLI 进行所有笔记操作**(`obsidian read`、`obsidian search`、`obsidian create` 等)。
17
+ 不要用 bash(`cat`、`grep`、`find`、`sed` 等)直接处理笔记文件——Obsidian CLI 能正确维护 wikilink、frontmatter 和文件关系。
18
+
19
+ ## 可用能力
20
+ - **/weave** — 编织新笔记:提取概念、建立 wikilink、生成 frontmatter
21
+ - **/wiki** — 生成 INDEX.base 知识图谱索引
22
+ - **/organize** — 按需重组目录结构
23
+ - **/ask** — 对知识库进行开放式问答
24
+ - **Thinking Tools** — /trace、/emerge、/connect、/ideas、/challenge、/drift
25
+ - **/diagnose** — 检查知识库健康状态,查看哪些笔记需要编织
@@ -127,11 +127,11 @@ tell the agent: "reconnect to {service name}".
127
127
  ## Key Files
128
128
 
129
129
  - **[[Glossary]]** — Domain terms and key concepts
130
- - **AGENT.md** — How AI agents navigate this vault
130
+ - **AGENTS.md** — How AI agents navigate this vault
131
131
 
132
132
  ---
133
133
 
134
134
  ## For AI Agents
135
135
 
136
- See `AGENT.md` at the vault root for navigation instructions
136
+ See `AGENTS.md` at the vault root for navigation instructions
137
137
  and knowledge graph conventions.
@@ -0,0 +1,132 @@
1
+ ---
2
+ name: ask
3
+ description: Open-ended Q&A against the knowledge base. Agent reads INDEX.base to locate relevant notes, synthesizes answers with citations. Use when the user asks questions about vault content like "what is X", "why did we decide", "explain Y", or wants to query their accumulated knowledge.
4
+ ---
5
+
6
+ # /ask — Knowledge Q&A
7
+
8
+ You are a knowledge assistant. Your job is to answer questions by navigating the vault's knowledge graph, reading relevant notes, and synthesizing evidence-based answers — always citing sources with wikilinks.
9
+
10
+ ## Prerequisites Check
11
+
12
+ **Before doing anything else**, verify Obsidian CLI is available:
13
+
14
+ ```bash
15
+ obsidian --version
16
+ ```
17
+
18
+ If this fails, STOP and display the Obsidian CLI availability message (see /weave for the full error text).
19
+
20
+ ## Parameters
21
+
22
+ - **question** (required): The question to answer.
23
+ - **output** (optional): Save the answer as a note at this path.
24
+
25
+ ## Process
26
+
27
+ ### Step 1: Understand the Question
28
+
29
+ Identify the key concepts, entities, and intent in the user's question.
30
+
31
+ ### Step 2: Locate Relevant Notes
32
+
33
+ If `INDEX.base` exists, read it first to understand the vault structure:
34
+
35
+ ```bash
36
+ obsidian read "INDEX"
37
+ ```
38
+
39
+ Then search for relevant notes:
40
+
41
+ ```bash
42
+ obsidian search "<key concept>"
43
+ ```
44
+
45
+ Search for each key concept mentioned in the question. Combine results across concepts.
46
+
47
+ ### Step 3: Read Relevant Notes
48
+
49
+ For each promising result, read the full content:
50
+
51
+ ```bash
52
+ obsidian read "<note name>"
53
+ ```
54
+
55
+ Prioritize:
56
+ - Notes with `note_type: permanent` (atomic concepts)
57
+ - Highly linked notes (many backlinks)
58
+ - Recent notes (last 30 days)
59
+
60
+ ### Step 4: Synthesize Answer
61
+
62
+ Combine evidence from all relevant notes into a clear, structured answer:
63
+
64
+ - **Direct answer first** — address the question directly
65
+ - **Supporting evidence** — cite specific notes with wikilinks and brief quotes
66
+ - **Context** — explain how the evidence connects
67
+ - **Uncertainties** — flag gaps where the vault doesn't have enough information
68
+
69
+ Every claim must be backed by at least one vault note. Do not use general knowledge to answer — ground everything in the vault.
70
+
71
+ ### Step 5: Present Answer
72
+
73
+ ```markdown
74
+ ## Answer
75
+
76
+ <Direct answer to the question>
77
+
78
+ ## Evidence
79
+
80
+ - **[[Note A]]**: "<relevant quote>"
81
+ - **[[Note B]]**: "<relevant quote>"
82
+ - **[[Note C]]**: "<relevant quote>"
83
+
84
+ ## Context
85
+
86
+ <Brief paragraph connecting the evidence and explaining the bigger picture>
87
+
88
+ ## Gaps
89
+
90
+ <What the vault doesn't cover that would help answer more completely>
91
+
92
+ ## Related Questions
93
+
94
+ - Consider exploring: "..."
95
+ - Run `/trace topic="X"` to see how this evolved
96
+ - Run `/connect from="A" to="B"` to understand the relationship
97
+ ```
98
+
99
+ ### Step 6: Save (Optional)
100
+
101
+ At the end of your answer, ask:
102
+
103
+ > "Would you like me to save this as a note?"
104
+
105
+ If the user confirms, save the answer with frontmatter:
106
+
107
+ ```yaml
108
+ ---
109
+ title: "Answer: <topic>"
110
+ note_type: literature
111
+ type: reference
112
+ domain: <inferred>
113
+ date: <today>
114
+ tags: [qa, <topic>]
115
+ ---
116
+ ```
117
+
118
+ Use `obsidian create` to save:
119
+
120
+ ```bash
121
+ obsidian create name="Answer: <topic>" content="<frontmatter + content>" silent
122
+ ```
123
+
124
+ Ask the user where they'd like it saved (root or a specific directory).
125
+
126
+ ## Key Principles
127
+
128
+ - **Evidence-based**: Every answer must cite vault notes. No general knowledge answers.
129
+ - **Direct first**: Answer the question before providing supporting detail.
130
+ - **Acknowledge gaps**: If the vault doesn't have enough information, say so.
131
+ - **Respect scope**: Only answer based on vault content, not external knowledge.
132
+ - **Save on request**: Always offer to save the answer as a note for future reference.
@@ -147,18 +147,24 @@ Based on the evidence gathered, rate the belief:
147
147
 
148
148
  ### Step 6: Save (Optional)
149
149
 
150
- If the user requested output, save with frontmatter:
150
+ At the end of your challenge, ask:
151
+
152
+ > "Would you like me to save this as a note?"
153
+
154
+ If the user confirms, save with frontmatter:
151
155
 
152
156
  ```yaml
153
157
  ---
154
158
  title: "Challenge: {Belief}"
159
+ note_type: literature
155
160
  type: analysis
156
161
  date: <today>
157
162
  tags: [challenge, critical-thinking]
158
- status: active
159
163
  ---
160
164
  ```
161
165
 
166
+ Use `obsidian create` to save. Ask the user where they'd like it saved.
167
+
162
168
  ## Key Principles
163
169
 
164
170
  - **Fair, not adversarial**: Always present supporting evidence first. The goal is clear thinking, not winning an argument.
@@ -183,11 +183,16 @@ If you believe these topics are related, consider:
183
183
 
184
184
  ### Step 7: Save (Optional)
185
185
 
186
- If the user requested output, save with frontmatter:
186
+ At the end of your analysis, ask:
187
+
188
+ > "Would you like me to save this as a note?"
189
+
190
+ If the user confirms, save with frontmatter:
187
191
 
188
192
  ```yaml
189
193
  ---
190
194
  title: "Connect: {From} ↔ {To}"
195
+ note_type: literature
191
196
  type: analysis
192
197
  date: <today>
193
198
  references:
@@ -197,6 +202,8 @@ tags: [connect, bridge]
197
202
  ---
198
203
  ```
199
204
 
205
+ Use `obsidian create` to save. Ask the user where they'd like it saved.
206
+
200
207
  ## Key Principles
201
208
 
202
209
  - **Evidence-based**: Every claimed connection must cite specific notes and quotes.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: diagnose
3
- description: Diagnose knowledge graph health — find missing frontmatter, orphan notes, broken wikilinks, and AGENT.md drift. Use when the user says "check my vault", "find broken links", "vault health", "what's wrong with my notes", or wants a health check on their knowledge base.
3
+ description: Diagnose knowledge graph health — find missing frontmatter, orphan notes, broken wikilinks, and AGENTS.md drift. Use when the user says "check my vault", "find broken links", "vault health", "what's wrong with my notes", or wants a health check on their knowledge base.
4
4
  ---
5
5
 
6
6
  # /diagnose — Knowledge Graph Health Check
@@ -11,18 +11,21 @@ You are a vault health assistant. Your job is to diagnose issues in an Obsidian
11
11
 
12
12
  ### Step 1: Locate Vault
13
13
 
14
- Ask the user for their vault path, or detect it from the current working directory (look for AGENT.md in the cwd or parent directories).
14
+ Ask the user for their vault path, or detect it from the current working directory (look for AGENTS.md in the cwd or parent directories).
15
15
 
16
16
  ### Step 2: Run Diagnosis
17
17
 
18
18
  Call `byoao_vault_doctor` with the vault path. This runs 5 checks:
19
19
 
20
20
  1. **Missing frontmatter** — notes without any YAML frontmatter
21
- 2. **Missing type/tags** — notes with frontmatter but no `type` or `tags` field
22
- 3. **AGENT.md drift** — AGENT.md references people or projects that don't have notes
21
+ 2. **Missing note_type** — notes without `note_type` field (not yet woven)
22
+ 3. **Missing type/tags** — notes with frontmatter but no `type` or `tags` field
23
23
  4. **Orphan notes** — notes with no incoming or outgoing wikilinks
24
24
  5. **Broken wikilinks** — links that point to non-existent notes
25
25
 
26
+ Additionally, if `INDEX.base` exists:
27
+ 6. **INDEX.base accuracy** — verify note counts match actual vault state
28
+
26
29
  ### Step 3: Present Results
27
30
 
28
31
  Format the report by severity:
@@ -33,7 +36,7 @@ Format the report by severity:
33
36
  - Projects/demo-notes.md
34
37
  - Knowledge/api-overview.md
35
38
 
36
- ! AGENT.md lists [[Kent]] but no People/Kent.md found
39
+ ! AGENTS.md lists [[Kent]] but no People/Kent.md found
37
40
 
38
41
  i 2 orphan notes (no incoming or outgoing wikilinks)
39
42
  - Archive/old-draft.md
@@ -49,21 +52,17 @@ For each issue category, suggest a concrete next action:
49
52
  | Issue | Suggested Fix |
50
53
  |-------|--------------|
51
54
  | Missing frontmatter | "Run `/weave` on these files to add structure" |
55
+ | Missing note_type | "Run `/weave` to classify and connect these notes" |
52
56
  | Missing type/tags | "Run `/weave` to fill in metadata" |
53
- | AGENT.md drift | "Create the missing note? I can run `byoao_add_person` or `byoao_add_project`" |
54
57
  | Orphan notes | "Consider adding `[[wikilinks]]` to connect them, or archive if unused" |
55
58
  | Broken wikilinks | "Create the target note, or fix the link name" |
59
+ | INDEX.base stale | "Run `/wiki` to regenerate the knowledge index" |
56
60
 
57
61
  **Always ask for user confirmation before making changes.** Do not auto-fix.
58
62
 
59
- ### Step 5: Update AGENT.md Timestamp
60
-
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:
63
+ ### Step 5: Update INDEX.base Timestamp
62
64
 
63
- ```markdown
64
- ---
65
- _Last scanned by /diagnose: 2026-03-27_
66
- ```
65
+ If `INDEX.base` exists and significant changes were made during fixes, suggest running `/wiki` to regenerate the index. If the user confirms, run `/wiki`.
67
66
 
68
67
  ## Key Principles
69
68
 
@@ -196,18 +196,24 @@ These questions are for your consideration — not judgments:
196
196
 
197
197
  ### Step 6: Save (Optional)
198
198
 
199
- If the user requested output, save with frontmatter:
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:
200
204
 
201
205
  ```yaml
202
206
  ---
203
207
  title: "Drift Analysis: {period}"
208
+ note_type: literature
204
209
  type: analysis
205
210
  date: <today>
206
211
  tags: [drift, reflection]
207
- status: active
208
212
  ---
209
213
  ```
210
214
 
215
+ Use `obsidian create` to save. Ask the user where they'd like it saved.
216
+
211
217
  ## Key Principles
212
218
 
213
219
  - **Descriptive, not judgmental**: "You said X and did Y" is fine. "You failed to do X" is not. Drift is information, not failure.
@@ -141,17 +141,24 @@ Analyzed {N} notes across {M} domains.
141
141
 
142
142
  ### Step 7: Save (Optional)
143
143
 
144
- If the user requested output, save with frontmatter:
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:
145
149
 
146
150
  ```yaml
147
151
  ---
148
152
  title: "Emerge: Vault Patterns"
153
+ note_type: literature
149
154
  type: analysis
150
155
  date: <today>
151
156
  tags: [emerge, patterns]
152
157
  ---
153
158
  ```
154
159
 
160
+ Use `obsidian create` to save. Ask the user where they'd like it saved.
161
+
155
162
  ## Key Principles
156
163
 
157
164
  - **Show, don't tell**: Always cite specific notes and quotes. Never claim a pattern exists without evidence.
@@ -47,7 +47,7 @@ Read notes across domains, prioritizing:
47
47
  - Recent notes (last 30 days) — what the user is actively thinking about
48
48
  - Highly connected notes (many backlinks) — central concepts
49
49
  - Notes with `status: active` — current work
50
- - Glossarythe user's core vocabulary
50
+ - `INDEX.base` if it exists for knowledge structure overview
51
51
 
52
52
  For each domain, read 5-10 representative notes to understand the landscape.
53
53
 
@@ -145,18 +145,24 @@ Rank the three highest-impact, most immediately actionable ideas:
145
145
 
146
146
  ### Step 7: Save (Optional)
147
147
 
148
- If the user requested output, save with frontmatter:
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:
149
153
 
150
154
  ```yaml
151
155
  ---
152
156
  title: "Ideas: {focus}"
157
+ note_type: literature
153
158
  type: analysis
154
159
  date: <today>
155
160
  tags: [ideas, proactive]
156
- status: active
157
161
  ---
158
162
  ```
159
163
 
164
+ Use `obsidian create` to save. Ask the user where they'd like it saved.
165
+
160
166
  ## Key Principles
161
167
 
162
168
  - **Actionable over interesting**: Every idea must have a concrete next step. "Interesting observation" is not an idea.
@@ -52,10 +52,9 @@ Never move or suggest moving:
52
52
 
53
53
  | Pattern | Reason |
54
54
  |---------|--------|
55
- | `AGENT.md` | BYOAO-managed root file |
55
+ | `AGENTS.md` | BYOAO-managed root file |
56
+ | `INDEX.base` | Knowledge graph index — do not move |
56
57
  | `Start Here.md` | BYOAO onboarding file |
57
- | `Knowledge/Glossary.md` | BYOAO Glossary |
58
- | `Knowledge/templates/*` | Template files |
59
58
  | `.obsidian/`, `.git/`, `.byoao/` | System directories |
60
59
  | `.opencode/`, `.cursor/`, `.claude/` | Tool config directories |
61
60
  | `.env`, `credentials.*`, `*.key` | Sensitive files |
@@ -92,7 +91,7 @@ For each file with a `type` property, determine if it should move based on this
92
91
  | `feature` | `Projects/<project>/` | Use `project` frontmatter field |
93
92
  | `project` | `Projects/` | Top-level project notes |
94
93
  | `sprint-handoff` | `Sprints/` | |
95
- | `reference` | `Knowledge/` | General reference material |
94
+ | `reference` | `Knowledge/` or user's preferred reference location | General reference material |
96
95
  | `person` | `People/` | |
97
96
  | `investigation` | Project folder if `project` field exists, else `Knowledge/` | |
98
97
  | `idea` | `Knowledge/` | |
@@ -40,7 +40,7 @@ obsidian search "<topic>"
40
40
  ```
41
41
 
42
42
  Also check:
43
- - Glossary entry for the topic
43
+ - `INDEX.base` if it exists, for domain and note_type classification
44
44
  - Backlinks to `[[<topic>]]` if a note exists for it
45
45
  - Tag variations: `#<topic>`, `#<topic-kebab-case>`
46
46
 
@@ -125,12 +125,17 @@ Consider tracing these connected topics:
125
125
 
126
126
  ### Step 6: Save (Optional)
127
127
 
128
- If the user requested output, save the trace as a note with frontmatter:
128
+ At the end of your trace, ask:
129
+
130
+ > "Would you like me to save this as a note?"
131
+
132
+ If the user confirms, save the trace with frontmatter:
129
133
 
130
134
  ```yaml
131
135
  ---
132
136
  title: "Trace: {Topic}"
133
- type: trace
137
+ note_type: literature
138
+ type: reference
134
139
  domain: <inferred from topic>
135
140
  date: <today>
136
141
  references:
@@ -140,6 +145,8 @@ tags: [trace, <topic-tag>]
140
145
  ---
141
146
  ```
142
147
 
148
+ Use `obsidian create` to save. Ask the user where they'd like it saved.
149
+
143
150
  ## Key Principles
144
151
 
145
152
  - **Chronological accuracy**: Always verify dates. Don't guess — if a note has no date, say "undated."