@aitne-sh/aitne 0.1.4 → 0.1.6

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 (87) hide show
  1. package/README.md +16 -0
  2. package/agent-assets/agent-profiles/_safety.md +29 -0
  3. package/agent-assets/agent-profiles/routine-fetch-window.md +75 -40
  4. package/agent-assets/agent-profiles/wiki-agent.md +19 -0
  5. package/agent-assets/docs/features/messaging/bang-commands.md +161 -0
  6. package/agent-assets/docs/features/messaging/overview.md +3 -0
  7. package/agent-assets/docs/features/wiki/commands.md +222 -0
  8. package/agent-assets/docs/features/wiki/overview.md +145 -0
  9. package/agent-assets/docs/getting-started/03-what-can-this-do.md +18 -0
  10. package/agent-assets/docs/glossary.md +34 -0
  11. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +123 -0
  12. package/agent-assets/docs/guides/build-your-wiki.md +99 -0
  13. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +169 -0
  14. package/agent-assets/docs/guides/maintain-wiki-health.md +168 -0
  15. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +192 -0
  16. package/agent-assets/docs/guides/pause-the-agent.md +10 -3
  17. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +156 -0
  18. package/agent-assets/docs/reference/cli-commands.md +24 -1
  19. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +96 -0
  20. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +82 -0
  21. package/agent-assets/skills/context/SKILL.md +288 -17
  22. package/agent-assets/skills/external-services/SKILL.delegated.claude.md +2 -2
  23. package/agent-assets/skills/external-services/SKILL.delegated.codex.md +3 -3
  24. package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +6 -6
  25. package/agent-assets/skills/external-services/SKILL.md +5 -3
  26. package/agent-assets/skills/external-services/SKILL.native.claude.md +49 -58
  27. package/agent-assets/skills/external-services/SKILL.native.codex.md +50 -58
  28. package/agent-assets/skills/external-services/SKILL.native.gemini.md +53 -56
  29. package/agent-assets/skills/mail/SKILL.md +5 -5
  30. package/agent-assets/skills/mail/SKILL.native.claude.md +57 -65
  31. package/agent-assets/skills/mail/SKILL.native.codex.md +73 -75
  32. package/agent-assets/skills/mail/SKILL.native.gemini.md +80 -75
  33. package/agent-assets/skills/management-task-register/SKILL.md +3 -3
  34. package/agent-assets/skills/notion/SKILL.native.claude.md +78 -82
  35. package/agent-assets/skills/notion/SKILL.native.codex.md +78 -80
  36. package/agent-assets/skills/notion/SKILL.native.gemini.md +91 -90
  37. package/agent-assets/skills/observations/SKILL.md +123 -15
  38. package/agent-assets/skills/roadmap/SKILL.md +31 -4
  39. package/agent-assets/skills/schedule/SKILL.md +44 -3
  40. package/agent-assets/skills/today/SKILL.md +50 -11
  41. package/agent-assets/skills/travel-time/SKILL.md +9 -0
  42. package/agent-assets/skills/wiki/wiki-ask/SKILL.md +32 -0
  43. package/agent-assets/skills/wiki/wiki-compile/SKILL.md +126 -0
  44. package/agent-assets/skills/wiki/wiki-connect/SKILL.md +75 -0
  45. package/agent-assets/skills/wiki/wiki-graduate/SKILL.md +45 -0
  46. package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +182 -0
  47. package/agent-assets/skills/wiki/wiki-lint/SKILL.md +90 -0
  48. package/agent-assets/skills/wiki/wiki-trace/SKILL.md +72 -0
  49. package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +145 -0
  50. package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +28 -9
  51. package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +26 -9
  52. package/agent-assets/task-flows/_partials/mail-acquire.gmail.md +51 -24
  53. package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +46 -16
  54. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +29 -9
  55. package/agent-assets/task-flows/message.received.dm.md +35 -2
  56. package/agent-assets/task-flows/message.received.dm.native.claude.md +25 -26
  57. package/agent-assets/task-flows/message.received.dm.native.codex.md +30 -24
  58. package/agent-assets/task-flows/message.received.dm.native.gemini.md +36 -36
  59. package/agent-assets/task-flows/message.received.dm_first.md +43 -4
  60. package/agent-assets/task-flows/message.received.dm_first.native.claude.md +20 -20
  61. package/agent-assets/task-flows/message.received.dm_first.native.codex.md +22 -19
  62. package/agent-assets/task-flows/message.received.dm_first.native.gemini.md +28 -24
  63. package/agent-assets/task-flows/routine.fetch_window.md +51 -36
  64. package/agent-assets/task-flows/routine.morning_routine.md +12 -3
  65. package/agent-assets/task-flows/routine.morning_routine_initial.md +22 -1
  66. package/agent-assets/task-flows/routine.roadmap_refresh.md +7 -3
  67. package/agent-assets/task-flows/scheduled.dm.md +477 -0
  68. package/agent-assets/task-flows/setup.initial.md +50 -23
  69. package/agent-assets/task-flows/wiki.ask.md +11 -0
  70. package/agent-assets/task-flows/wiki.compile.md +28 -0
  71. package/agent-assets/task-flows/wiki.connect.md +12 -0
  72. package/agent-assets/task-flows/wiki.ingest_url.md +35 -0
  73. package/agent-assets/task-flows/wiki.lint.md +13 -0
  74. package/agent-assets/task-flows/wiki.trace.md +13 -0
  75. package/agent-assets/wiki-seeds/schemas/output.md +12 -0
  76. package/agent-assets/wiki-seeds/schemas/raw.md +13 -0
  77. package/agent-assets/wiki-seeds/schemas/wiki.md +12 -0
  78. package/agent-assets/wiki-seeds/taxonomy.md +13 -0
  79. package/package.json +10 -6
  80. package/scripts/check-redaction-coverage.mjs +0 -109
  81. package/scripts/commands.md +0 -0
  82. package/scripts/message-discipline-digest.mjs +0 -535
  83. package/scripts/poc/google-connector-inheritance/REPORT.md +0 -197
  84. package/scripts/poc/google-connector-inheritance/claude-sdk-probe.mjs +0 -79
  85. package/scripts/regen-skill-fixtures.mjs +0 -39
  86. package/scripts/remint-roadmap-ids.mjs +0 -257
  87. package/scripts/smoke-obsidian-api.mjs +0 -166
@@ -0,0 +1,145 @@
1
+ ---
2
+ schema_version: 1
3
+ slug: features/wiki/overview
4
+ title: Wiki Overview
5
+ id: wiki-overview
6
+ aliases:
7
+ - wiki
8
+ - personal wiki
9
+ - knowledge vault
10
+ - wiki builder
11
+ category: features
12
+ summary: |
13
+ Aitne's opt-in personal wiki — a separate, LLM-maintained knowledge
14
+ vault used for durable research, references, and personal knowledge
15
+ that should compound over time. Distinct from Aitne's reactive memory.
16
+ section: wiki
17
+ tags:
18
+ - wiki
19
+ - knowledge
20
+ status: stable
21
+ ask_examples:
22
+ - What is the wiki?
23
+ - How is the wiki different from memory?
24
+ - Where does the wiki live on disk?
25
+ - Can I point the wiki at my Obsidian vault?
26
+ locale: en-US
27
+ created: 2026-05-12
28
+ updated: 2026-05-12
29
+ related:
30
+ - features/wiki/commands
31
+ - features/memory-files
32
+ - guides/build-your-wiki
33
+ - guides/use-an-existing-obsidian-vault
34
+ - guides/budget-and-cost-for-wiki
35
+ - troubleshooting/wiki-write-failed
36
+ - troubleshooting/wiki-ingest-full-blocked
37
+ ui_anchors:
38
+ - /wiki
39
+ - /wiki/timeline
40
+ - /settings/wiki
41
+ ---
42
+
43
+ # Wiki Overview
44
+
45
+ ## In One Sentence
46
+
47
+ The wiki is an opt-in personal knowledge vault — separate from
48
+ Aitne's reactive memory — that the agent grows from URLs you send it
49
+ and questions you ask it.
50
+
51
+ ## What It Does
52
+
53
+ - **URL ingest**: send `!ingest <url>` from a paired DM channel; the wiki
54
+ agent fetches the source, summarises it, and stores a raw note.
55
+ - **Compile**: `!compile` (incremental) and `!compile full` (full
56
+ rebuild) turn raw notes into synthesised wiki articles with
57
+ cross-links and an `_index.md` catalogue.
58
+ - **Ask**: `!ask <question>` searches the wiki and writes a cited
59
+ answer under `30_outputs/`.
60
+
61
+ The wiki uses its own process keys (`wiki.ingest_url`, `wiki.compile`,
62
+ `wiki.ask`) with independent backend / model / budget settings, so it
63
+ never competes for budget with daily reactive memory.
64
+
65
+ ## Internal vs External
66
+
67
+ Aitne offers two modes:
68
+
69
+ - **Internal** (recommended starting point) — the daemon owns the
70
+ vault at `$PA_DATA_DIR/wiki`. No sandbox issues, daemon-managed
71
+ snapshots, isolated from iCloud sync conflicts.
72
+ - **External** — you point the wiki at an existing Obsidian vault on
73
+ disk. The daemon writes directly when the filesystem allows, and
74
+ falls back to the official Obsidian CLI when the vault sits in a
75
+ sandboxed location (iCloud) and the Obsidian app is running.
76
+
77
+ Path-collision rules: the external root must not overlap `dataDir`,
78
+ your primary vault, or the external Obsidian vault path. Two wiki
79
+ workspaces may not nest.
80
+
81
+ ## Layers
82
+
83
+ - `00_inbox/` — human-only capture (the agent has read access but
84
+ cannot write here).
85
+ - `10_raw/` — source-faithful raw notes (append-only).
86
+ - `20_wiki/` — synthesised wiki articles + `_index.md` catalogue.
87
+ - `30_outputs/` — answer / report artifacts written by `!ask`.
88
+ - `90_meta/` — taxonomy, schemas, lint reports, and the
89
+ `import-<date>.md` migration record.
90
+ - `log.md` — append-only operational log.
91
+
92
+ The DM agent can read wiki search and index routes but only wiki
93
+ process keys can write wiki layers.
94
+
95
+ ## Cost Safety
96
+
97
+ `!compile full` rebuilds the entire wiki from raw notes and is the
98
+ most expensive command. The dashboard banner shows the bracketed
99
+ estimate ($0.5×–$2× the assumed input-token spend) before you run
100
+ it. If the pessimistic estimate exceeds the per-workspace threshold
101
+ (default $2.00), the command escalates to the dashboard `/approvals`
102
+ queue and requires your explicit confirmation before the compile
103
+ starts.
104
+
105
+ On a git-tracked external vault, Aitne also runs
106
+ `git add -A && git commit -m "aitne wiki: pre-compile snapshot <ts>"`
107
+ on a clean working tree before the compile so you can roll back if
108
+ the run produces a surprise. A dirty tree refuses the operation —
109
+ commit or stash first.
110
+
111
+ ## Where it lives in the dashboard
112
+
113
+ The wiki has two distinct surfaces in the dashboard. The split mirrors
114
+ how Aitne organises the rest of the app — configuration lives under
115
+ **Setup → Settings**, day-to-day content browsing lives under **My
116
+ Life** next to Knowledge / Reading / Git / Trip / Finance / Health.
117
+
118
+ | Page | Section | Use it for |
119
+ |---|---|---|
120
+ | `/wiki` | My Life | Workspace summary, the compiled `_index.md` catalogue, and the latest activity log. The page you open most often. |
121
+ | `/wiki/timeline` | My Life | Full chronological activity log plus the latest `!lint` health report. Linked from `/wiki` and from settings. |
122
+ | `/settings/wiki` | Setup → Settings | Enable / archive a workspace, switch between internal and external mode, pick an external vault path, language, dispatch mode, write strategy, git auto-commit, approval threshold, per-command model selectors. |
123
+
124
+ The **My Life → Wiki** entry is always visible in the sidebar, even
125
+ before you enable a workspace, so the feature is easy to find. The
126
+ `/wiki` page itself renders an **Enable Wiki** call-to-action when no
127
+ workspace is active — clicking it jumps you to `/settings/wiki` where
128
+ the same internal / external choice surfaces.
129
+
130
+ The wiki is off by default on a fresh install; nothing is written to
131
+ disk until you opt in.
132
+
133
+ ### Settings page states
134
+
135
+ `/settings/wiki` is two-state:
136
+
137
+ - **Disabled** (no active workspace) — a single "Enable Internal
138
+ Workspace" CTA plus an external-path picker. The picker opens your
139
+ OS-native folder dialog (Finder on macOS, File Explorer on Windows,
140
+ the system folder dialog on Linux) and shows an inline validation
141
+ banner once you pick a path — see [guides/use-an-existing-obsidian-vault](../../guides/use-an-existing-obsidian-vault.md).
142
+ - **Enabled** — full configuration: language, dispatch mode, write
143
+ strategy, git auto-commit toggle, approval threshold, per-command
144
+ model selectors, plus archive / delete. A "Browse wiki" link at the
145
+ top jumps you back to `/wiki`.
@@ -28,6 +28,8 @@ related:
28
28
  - concepts/memory-model
29
29
  - features/messaging/voice-attachments
30
30
  - features/operations/skill-self-optimization
31
+ - features/wiki/overview
32
+ - features/wiki/commands
31
33
  ---
32
34
 
33
35
  # What This App Can Do
@@ -85,6 +87,22 @@ them — the agent reads what's there next time it runs.
85
87
  - [agent/journal.md](../features/memory-files/agent-journal.md) —
86
88
  what the agent did and what it noticed.
87
89
 
90
+ ## Build a personal wiki from what you DM
91
+
92
+ A workspace-scoped builder turns URLs, pastes, and notes you send into a
93
+ linked Markdown wiki. The raw capture, the synthesised article, and the
94
+ cited answer all stay on disk and the agent only writes via the daemon
95
+ API so the layout invariants hold.
96
+
97
+ - [Wiki Overview](../features/wiki/overview.md) — the workspace concept,
98
+ the `00_inbox` / `10_raw` / `20_wiki` / `30_outputs` layers, and the
99
+ approval gate on full rebuilds.
100
+ - [Wiki Commands](../features/wiki/commands.md) — `!ingest` (capture
101
+ URLs), `!compile` (synthesise), `!ask` (cited Q&A), `!lint` /
102
+ `!trace` / `!connect` (audit, history, bridges), `!wiki` (status).
103
+ - [Build Your Wiki](../guides/build-your-wiki.md) — the first-day
104
+ walkthrough from empty workspace to first answered question.
105
+
88
106
  ## Help with the small lifestyle stuff
89
107
 
90
108
  Reading lists, receipts, travel bookings, travel-time estimates — the
@@ -114,3 +114,37 @@ The current agent day's main memory file under
114
114
  `~/.personal-agent/context/today.md`. Rebuilt once per day by the
115
115
  morning routine and edited by every DM, observation, and routine that
116
116
  needs to record state for the day.
117
+
118
+ ## Wiki Workspace
119
+
120
+ A single named root the wiki feature writes into. Either **internal**
121
+ (`~/.personal-agent/wiki/`) or **external** (a path you point at, often
122
+ an existing Obsidian vault). Every wiki bang command targets a
123
+ workspace; omitting the `@<workspace>` token addresses the default.
124
+ See [Wiki Overview](features/wiki/overview.md) and
125
+ [Multiple Wikis](guides/multiple-wikis-for-multiple-domains.md).
126
+
127
+ ## Wiki Layers
128
+
129
+ The four directories every workspace contains:
130
+
131
+ - `00_inbox/` — agent-readable but agent-unwritable; for hand-drops
132
+ destined for graduation.
133
+ - `10_raw/` — captured sources from `!ingest <url>` and other intake.
134
+ - `20_wiki/` — synthesised articles produced by `!compile`, plus
135
+ `_index.md`.
136
+ - `30_outputs/` — derived artefacts (`!ask` answers, `!lint` reports,
137
+ `!trace` and `!connect` outputs).
138
+
139
+ Dataflow is single-direction: `00_inbox` → `10_raw` → `20_wiki` →
140
+ `30_outputs`. Skills enforce the invariant; the daemon's Wiki API is
141
+ the only legal write path.
142
+
143
+ ## Compile Preview
144
+
145
+ The dry-run touch list `!compile --preview` (alias `--dry-run`) produces
146
+ before any agent session runs. Lists pages that would be **added**,
147
+ **modified**, or **unchanged**, plus the bracketed cost estimate and
148
+ ETA. The compile is an LLM and may diverge inside the loop; the preview
149
+ is an upper bound on the touch set. Computed purely in JS — no tokens
150
+ spent.
@@ -0,0 +1,123 @@
1
+ ---
2
+ schema_version: 1
3
+ slug: guides/budget-and-cost-for-wiki
4
+ title: Wiki Budgets and Cost
5
+ id: budget-and-cost-for-wiki
6
+ aliases:
7
+ - wiki cost
8
+ - wiki budget
9
+ - "!compile full approval"
10
+ - wiki approval threshold
11
+ category: guides
12
+ summary: |
13
+ How the wiki estimates `!compile full` cost, when the approval gate
14
+ fires, how the git pre-compile snapshot interacts with it, and how
15
+ to tune the threshold.
16
+ section: budget-and-cost-for-wiki
17
+ tags:
18
+ - guide
19
+ - wiki
20
+ - cost
21
+ status: stable
22
+ ask_examples:
23
+ - How much does !compile full cost?
24
+ - Why did !compile full need approval?
25
+ - How do I raise the wiki approval threshold?
26
+ - What does the pre-compile snapshot do?
27
+ locale: en-US
28
+ created: 2026-05-12
29
+ updated: 2026-05-12
30
+ related:
31
+ - features/wiki/overview
32
+ - features/wiki/commands
33
+ - concepts/costs-and-quotas
34
+ - troubleshooting/wiki-ingest-full-blocked
35
+ ui_anchors:
36
+ - /settings/wiki
37
+ - /approvals
38
+ ---
39
+
40
+ # Wiki Budgets and Cost
41
+
42
+ The wiki ships with three cost knobs you can tune in
43
+ **Settings → Wiki**:
44
+
45
+ 1. **Per-command model selector** for each of the three wiki
46
+ processes (`wiki.ingest_url`, `wiki.compile`, `wiki.ask`).
47
+ Defaults to your main backend at the medium tier; downgrade
48
+ `wiki.ingest_url` to a lite tier if you ingest a lot of URLs.
49
+ 2. **Per-process budget cap** (`max_budget_usd` on each row). The
50
+ dispatcher's per-session budget envelope is the enforcer.
51
+ 3. **Per-workspace `!compile full` approval threshold** (default
52
+ $2.00). The dashboard cost estimator brackets the expected spend
53
+ at 0.5× / 1× / 2× the assumed input-token count; if the
54
+ pessimistic estimate breaches the threshold, the bang handler
55
+ escalates to the approval queue instead of running autonomously.
56
+
57
+ ## What the Estimator Does
58
+
59
+ `!compile full` is the most expensive wiki command because a full
60
+ rebuild touches every raw note. The estimator is **pure JS** — it
61
+ does not spawn an agent — and computes:
62
+
63
+ ```
64
+ expected_usd = raw_count × avg_input_tokens_per_raw × $0.003 / 1k tokens
65
+ optimistic = 0.5 × expected
66
+ pessimistic = 2.0 × expected
67
+ ```
68
+
69
+ Defaults: `avg_input_tokens_per_raw = 1500`, the unit cost matches
70
+ Sonnet 4.6's $3 / Mtoken input price. The bracket lets you see a
71
+ worst-case before approving.
72
+
73
+ ## Where the Gate Fires
74
+
75
+ - **Below threshold**: the compile runs autonomously and you get a
76
+ completion DM with actual spend.
77
+ - **Above threshold**: the bang handler inserts an `agent_schedule`
78
+ row with `task_type='approval'` and DMs the estimate. The
79
+ dashboard `/approvals` view (also reachable from Notifications)
80
+ is where you click **Approve** — that flips the row to
81
+ `approved_task` and the scheduler picks it up.
82
+
83
+ If you change your mind, hit **Deny** on the approval card — the row
84
+ flips to `skipped` and no agent session is spawned.
85
+
86
+ ## Git Pre-Compile Snapshot
87
+
88
+ On an external workspace that is a git repo and has **Auto-commit
89
+ before `!compile full`** enabled, Aitne runs:
90
+
91
+ ```
92
+ git -C <vault> status --porcelain
93
+ # must be empty — dirty trees refuse the operation entirely
94
+ git -C <vault> add -A
95
+ git -C <vault> commit -m "aitne wiki: pre-compile snapshot <ISO-8601-ts>"
96
+ ```
97
+
98
+ before the compile session starts. The commit message is
99
+ deterministic so you can roll back with `git reset --hard HEAD~1` if
100
+ the compile produces a surprise. The `--no-verify` flag is not used —
101
+ your pre-commit hooks run as normal.
102
+
103
+ If your vault is not a git repo, the approval-gate DM appends
104
+ "no git backup taken" so you can decide whether to add one before
105
+ approving.
106
+
107
+ ## Tuning the Threshold
108
+
109
+ The default $2.00 threshold suits a small-to-medium personal wiki
110
+ (around 100–500 raw notes). If your wiki grows much larger, raise
111
+ the threshold so routine recompiles don't queue an approval every
112
+ time — or downgrade `wiki.compile` to the lite tier so the actual
113
+ spend stays low.
114
+
115
+ ## When to Use `!compile` vs `!compile full`
116
+
117
+ - **`!compile` (default)**: incremental — touches only new and
118
+ modified raw notes. Cheap, fast, runs autonomously. Use this in
119
+ normal operation.
120
+ - **`!compile full`**: rebuilds everything. Use when you've changed
121
+ the wiki schema, ingested a large batch of historical raw notes,
122
+ or want to force a from-scratch synthesis after editing
123
+ `90_meta/taxonomy.md`.
@@ -0,0 +1,99 @@
1
+ ---
2
+ schema_version: 1
3
+ slug: guides/build-your-wiki
4
+ title: Build Your Wiki
5
+ id: build-your-wiki
6
+ category: guides
7
+ summary: |
8
+ Enable the internal wiki, send your first URL, compile the raw
9
+ notes, and ask a question against the vault.
10
+ section: build-your-wiki
11
+ tags:
12
+ - guide
13
+ - wiki
14
+ status: stable
15
+ ask_examples:
16
+ - How do I start using the wiki?
17
+ - How do I add my first source to the wiki?
18
+ locale: en-US
19
+ created: 2026-05-12
20
+ updated: 2026-05-12
21
+ related:
22
+ - features/wiki/overview
23
+ - features/wiki/commands
24
+ - guides/use-an-existing-obsidian-vault
25
+ - guides/budget-and-cost-for-wiki
26
+ ---
27
+
28
+ # Build Your Wiki
29
+
30
+ ## Goal
31
+
32
+ Stand up the internal wiki, capture a URL, compile it into a wiki
33
+ article, and run a question against the result.
34
+
35
+ ## Prerequisites
36
+
37
+ - A paired messaging channel (Telegram, Slack, Discord, WhatsApp, or
38
+ dashboard chat).
39
+ - The daemon is running and the dashboard is reachable.
40
+
41
+ ## Where you'll work in the dashboard
42
+
43
+ The wiki has two pages, mirroring how the rest of the dashboard is
44
+ split: configuration lives under **Setup → Settings**, content
45
+ browsing lives under **My Life**.
46
+
47
+ - **My Life → Wiki** (`/wiki`) — your main entry point. Shows
48
+ workspace stats, the compiled `_index.md`, and recent activity. When
49
+ the wiki is not enabled yet, this page renders an **Enable Wiki**
50
+ call-to-action.
51
+ - **Setup → Settings → Wiki** (`/settings/wiki`) — workspace creation,
52
+ internal/external mode, per-command model selectors, budgets,
53
+ archive / delete.
54
+
55
+ The **My Life → Wiki** sidebar entry is always visible, even before
56
+ you enable a workspace, so you do not need to remember the URL.
57
+
58
+ ## Steps
59
+
60
+ 1. Click **My Life → Wiki** in the sidebar (`/wiki`). The page shows
61
+ a "Wiki not enabled" card with an **Enable Wiki** button —
62
+ clicking it jumps you to `/settings/wiki`.
63
+ 2. On the settings page, click **Enable Internal Workspace**. The
64
+ daemon creates `$PA_DATA_DIR/wiki/` and seeds `90_meta/taxonomy.md`
65
+ plus the schema templates. (To point at an existing Obsidian
66
+ vault instead, follow
67
+ [Use An Existing Obsidian Vault](use-an-existing-obsidian-vault.md).)
68
+ 3. The sidebar's **My Life → Wiki** entry now lands on a workspace
69
+ summary instead of the disabled CTA. Open it to confirm the root
70
+ path, counts, and quick links to **Timeline & health** and
71
+ **Configuration**.
72
+ 4. From a paired DM, send `!ingest https://example.com/article`. You
73
+ will get an acknowledgement reply naming the workspace and the
74
+ number of URLs queued.
75
+ 5. Wait for the per-URL completion DMs (parallel mode) or the single
76
+ summary reply (serial mode).
77
+ 6. Run `!compile` to compile raw captures into wiki articles. The
78
+ compile session synthesises `20_wiki/<slug>.md` files and updates
79
+ `20_wiki/_index.md`.
80
+ 7. Ask a question: `!ask What did this source say about X?`. The
81
+ answer is written to `30_outputs/<YYYY-MM-DD>-<slug>.md` with
82
+ citations back to the source articles. Refresh **My Life → Wiki**
83
+ to see the updated activity log.
84
+
85
+ Use `!wiki` any time to see counts and workspace status. `!wiki help`
86
+ returns the command list.
87
+
88
+ ## What to Try Next
89
+
90
+ - **Send multiple URLs at once**: `!ingest https://a.com, https://b.com`
91
+ fans out in parallel by default. Switch to serial mode on
92
+ `/settings/wiki` when you care about ordering and rate
93
+ predictability.
94
+ - **Point at an existing Obsidian vault** instead of the daemon-owned
95
+ root — see [Use An Existing Obsidian Vault](use-an-existing-obsidian-vault.md).
96
+ - **Tune the budget** for `wiki.compile` and `wiki.ingest_url` from
97
+ the per-command model selector on `/settings/wiki`. See
98
+ [Wiki Budgets and Cost](budget-and-cost-for-wiki.md) for the
99
+ approval gate.
@@ -0,0 +1,169 @@
1
+ ---
2
+ schema_version: 1
3
+ slug: guides/explore-with-trace-and-connect
4
+ title: Explore Your Wiki with !trace and !connect
5
+ id: explore-with-trace-and-connect
6
+ aliases:
7
+ - "!trace"
8
+ - "!connect"
9
+ - wiki trace
10
+ - wiki connect
11
+ - bridging domains
12
+ category: guides
13
+ summary: |
14
+ How to use `!trace <topic>` to reconstruct the evolution of an
15
+ idea across your raw / wiki / outputs layers, and `!connect <a>
16
+ <b>` to find bridges between two domains.
17
+ section: explore-with-trace-and-connect
18
+ tags:
19
+ - guide
20
+ - wiki
21
+ - exploration
22
+ status: stable
23
+ ask_examples:
24
+ - How do I trace an idea across the wiki?
25
+ - What does !connect do?
26
+ - How do I find connections between two topics?
27
+ - Where does the !trace output land?
28
+ - Can I use multi-word topics with !connect?
29
+ locale: en-US
30
+ created: 2026-05-12
31
+ updated: 2026-05-12
32
+ related:
33
+ - features/wiki/overview
34
+ - features/wiki/commands
35
+ - guides/maintain-wiki-health
36
+ ui_anchors:
37
+ - /wiki/timeline
38
+ - /settings/wiki
39
+ ---
40
+
41
+ # Explore Your Wiki with `!trace` and `!connect`
42
+
43
+ `!trace` and `!connect` are the two Phase 3 exploration commands.
44
+ Both produce a one-off output document in `30_outputs/` and never
45
+ touch your raw or wiki notes. Think of them as cited essays
46
+ written from what your wiki actually contains.
47
+
48
+ ## `!trace <topic>` — Time-Based Exploration
49
+
50
+ Use `!trace` when you want to see **how thinking about a topic has
51
+ evolved**. The wiki agent searches every layer, orders the matches
52
+ chronologically (preferring dates asserted in the content over
53
+ file mtimes), and groups them into two-to-five phases of stable
54
+ framing.
55
+
56
+ ```
57
+ !trace quantum computing
58
+ !trace formal methods in distributed systems
59
+ ```
60
+
61
+ The topic is free-form prose. The skill canonicalises against
62
+ `90_meta/taxonomy.md` before deriving the output slug, so
63
+ `!trace quantum computing` and `!trace quantum-computing` produce
64
+ the same output filename if `quantum-computing` is your canonical
65
+ topic.
66
+
67
+ ### Output
68
+
69
+ The output lands at:
70
+
71
+ ```
72
+ 30_outputs/<YYYY-MM-DD>-trace-<slug>.md
73
+ ```
74
+
75
+ Each report has:
76
+
77
+ - A one-paragraph synthesis of the arc.
78
+ - One section per phase with the dominant question, new evidence,
79
+ and what changed compared to the previous phase.
80
+ - A `## Gaps` list of questions your wiki cannot yet answer — a
81
+ pointer to where the next `!ingest` run should focus.
82
+
83
+ If your wiki has fewer than two sources on the topic, the report
84
+ says so directly. No padding, no speculation.
85
+
86
+ ### When to Reach for `!trace`
87
+
88
+ - Before writing about a topic externally — get the lineage right.
89
+ - After a long ingest run on one area — see whether the phases
90
+ changed or just thickened.
91
+ - When a wiki note feels stale — `!trace` will surface the dated
92
+ evidence and the gap list will tell you what to refresh.
93
+
94
+ ## `!connect <a> <b>` — Bridge Two Domains
95
+
96
+ Use `!connect` to find honest overlaps between two domains in
97
+ your wiki. The agent surfaces four kinds of bridges:
98
+
99
+ 1. **Shared terminology** — terms that mean the same (or
100
+ recognisably different) things in each domain, disambiguated
101
+ against `90_meta/taxonomy.md`.
102
+ 2. **Common references** — the same URL, author, or wiki note
103
+ linked from both sides.
104
+ 3. **Structural analogies** — recurring patterns of reasoning or
105
+ tradeoffs, even when the surface vocabulary differs.
106
+ 4. **Bridging concept candidates** — proposals for a new wiki
107
+ note that would naturally sit between the two areas.
108
+
109
+ ### Argument Forms
110
+
111
+ `!connect` requires exactly two topics. Whitespace separates them
112
+ by default; a comma lets you use multi-word topics:
113
+
114
+ ```
115
+ !connect quantum gravity
116
+ !connect quantum computing, classical computing
117
+ !connect category theory, distributed systems
118
+ ```
119
+
120
+ The handler rejects a single topic, three-or-more topics, a
121
+ trailing comma, or empty input with a usage message — pick a
122
+ topic for each side.
123
+
124
+ ### Output
125
+
126
+ The output lands at:
127
+
128
+ ```
129
+ 30_outputs/<YYYY-MM-DD>-connect-<slug-a>--<slug-b>.md
130
+ ```
131
+
132
+ The double-hyphen (`--`) separates the two canonical slugs in the
133
+ filename. Each report cites bridges with at least one path from
134
+ each side — a one-sided match becomes a bridging candidate, not a
135
+ bridge.
136
+
137
+ ### Honest "No Connection" Reports
138
+
139
+ If your wiki contains nothing in common between the two domains,
140
+ the report still writes — with `_(none)_` filling the empty
141
+ sections and a `## Summary` that says so plainly. A negative
142
+ finding is itself useful: it tells you where the wiki has gaps.
143
+
144
+ ### `!connect` Does Not Create Wiki Notes
145
+
146
+ The "bridging concept candidates" section is a **proposal** for
147
+ `wiki.compile` (or you, manually) to pick up later. `!connect`
148
+ never writes to `20_wiki/` — the safety boundary is the same as
149
+ `!ask` and `!trace`: read everywhere, write only to
150
+ `30_outputs/`.
151
+
152
+ ## Finding Past Reports
153
+
154
+ Every report is a regular wiki file under `30_outputs/`. You can:
155
+
156
+ - Open **My Life → Wiki → Timeline & health** (`/wiki/timeline`)
157
+ — the timeline shows every wiki write with a process-key
158
+ filter, so filtering by `wiki.trace` or `wiki.connect` lists
159
+ past reports in reverse-chronological order.
160
+ - Use `!ask` to fold a past trace or connect into a new answer.
161
+ - Browse the files on disk (the wiki vault root path is shown on
162
+ **My Life → Wiki** and on `/settings/wiki`).
163
+
164
+ ## Cost Envelope
165
+
166
+ Both commands run at Sonnet medium tier with a default $1.00
167
+ spend cap per run, identical to `!ask`. The 7-day cost rollup on
168
+ **Settings → Wiki** breaks the spend out per command so you can
169
+ see where the budget went.