@aitne-sh/aitne 0.1.12 → 0.1.13

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 (139) hide show
  1. package/agent-assets/agent-profiles/background-task.md +8 -1
  2. package/agent-assets/agent-profiles/routine-fetch-window.md +11 -0
  3. package/agent-assets/agents/evening-review/agent.md +6 -2
  4. package/agent-assets/agents/lesson-maintenance/agent.md +56 -0
  5. package/agent-assets/agents/morning-routine/agent.md +7 -2
  6. package/agent-assets/agents/source-librarian/agent.md +51 -0
  7. package/agent-assets/docs/concepts/agent-day.md +15 -15
  8. package/agent-assets/docs/concepts/auth-health.md +10 -7
  9. package/agent-assets/docs/concepts/backends-and-tiers.md +21 -13
  10. package/agent-assets/docs/concepts/costs-and-quotas.md +10 -10
  11. package/agent-assets/docs/concepts/delegated-mode.md +18 -18
  12. package/agent-assets/docs/concepts/memory-model.md +25 -24
  13. package/agent-assets/docs/concepts/observations.md +27 -19
  14. package/agent-assets/docs/concepts/process-keys.md +25 -26
  15. package/agent-assets/docs/concepts/routines.md +18 -17
  16. package/agent-assets/docs/concepts/safety-and-execution.md +20 -17
  17. package/agent-assets/docs/concepts/safety-model.md +16 -15
  18. package/agent-assets/docs/concepts/skills.md +7 -4
  19. package/agent-assets/docs/features/integrations/browser-history.md +52 -47
  20. package/agent-assets/docs/features/integrations/calendar.md +7 -7
  21. package/agent-assets/docs/features/integrations/git.md +15 -13
  22. package/agent-assets/docs/features/integrations/github.md +12 -10
  23. package/agent-assets/docs/features/integrations/mail.md +47 -45
  24. package/agent-assets/docs/features/integrations/notion.md +15 -11
  25. package/agent-assets/docs/features/integrations/obsidian.md +27 -23
  26. package/agent-assets/docs/features/lifestyle/git.md +7 -8
  27. package/agent-assets/docs/features/lifestyle/reading.md +11 -8
  28. package/agent-assets/docs/features/lifestyle/receipts.md +21 -22
  29. package/agent-assets/docs/features/lifestyle/travel-bookings.md +9 -9
  30. package/agent-assets/docs/features/memory-files/agent-journal.md +12 -10
  31. package/agent-assets/docs/features/memory-files/agent-lessons.md +46 -21
  32. package/agent-assets/docs/features/memory-files/projects.md +13 -14
  33. package/agent-assets/docs/features/memory-files/roadmap.md +16 -15
  34. package/agent-assets/docs/features/memory-files/schedule.md +10 -10
  35. package/agent-assets/docs/features/memory-files/today.md +18 -18
  36. package/agent-assets/docs/features/memory-files/user-profile.md +17 -17
  37. package/agent-assets/docs/features/messaging/bang-commands.md +15 -15
  38. package/agent-assets/docs/features/messaging/dashboard-chat.md +7 -6
  39. package/agent-assets/docs/features/messaging/discord.md +7 -5
  40. package/agent-assets/docs/features/messaging/overview.md +14 -14
  41. package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +12 -12
  42. package/agent-assets/docs/features/messaging/slack.md +9 -8
  43. package/agent-assets/docs/features/messaging/telegram.md +7 -7
  44. package/agent-assets/docs/features/messaging/whatsapp.md +6 -6
  45. package/agent-assets/docs/features/operations/activity-and-conversations.md +9 -9
  46. package/agent-assets/docs/features/operations/approvals.md +13 -12
  47. package/agent-assets/docs/features/operations/backend-routing.md +38 -37
  48. package/agent-assets/docs/features/operations/browser-tasks.md +63 -57
  49. package/agent-assets/docs/features/operations/cost-tracking.md +5 -5
  50. package/agent-assets/docs/features/operations/managed-chromium.md +23 -22
  51. package/agent-assets/docs/features/operations/notifications.md +15 -15
  52. package/agent-assets/docs/features/operations/quiet-hours.md +14 -15
  53. package/agent-assets/docs/features/operations/schedule-approaching.md +16 -14
  54. package/agent-assets/docs/features/routines/activity-scan.md +14 -11
  55. package/agent-assets/docs/features/routines/custom-routines.md +9 -7
  56. package/agent-assets/docs/features/routines/evening-review.md +6 -7
  57. package/agent-assets/docs/features/routines/morning-routine.md +22 -21
  58. package/agent-assets/docs/features/routines/weekly-review.md +57 -51
  59. package/agent-assets/docs/features/wiki/commands.md +27 -21
  60. package/agent-assets/docs/features/wiki/cost-and-approval.md +28 -23
  61. package/agent-assets/docs/features/wiki/dashboard.md +21 -23
  62. package/agent-assets/docs/features/wiki/overview.md +17 -25
  63. package/agent-assets/docs/features/wiki/search.md +15 -17
  64. package/agent-assets/docs/features/wiki/workspaces.md +55 -56
  65. package/agent-assets/docs/getting-started/01-what-is-this.md +3 -4
  66. package/agent-assets/docs/getting-started/02-first-steps.md +12 -13
  67. package/agent-assets/docs/getting-started/03-what-can-this-do.md +7 -7
  68. package/agent-assets/docs/getting-started/04-first-day.md +4 -5
  69. package/agent-assets/docs/glossary.md +17 -16
  70. package/agent-assets/docs/guides/add-a-custom-routine.md +17 -12
  71. package/agent-assets/docs/guides/backup-and-restore.md +19 -16
  72. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +55 -62
  73. package/agent-assets/docs/guides/build-your-wiki.md +11 -12
  74. package/agent-assets/docs/guides/change-which-model-handles-x.md +30 -28
  75. package/agent-assets/docs/guides/connect-a-new-mail-account.md +30 -29
  76. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +30 -32
  77. package/agent-assets/docs/guides/import-knowledge-file.md +9 -10
  78. package/agent-assets/docs/guides/install-and-run.md +9 -10
  79. package/agent-assets/docs/guides/maintain-wiki-health.md +10 -10
  80. package/agent-assets/docs/guides/migrate-machines.md +16 -14
  81. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +11 -12
  82. package/agent-assets/docs/guides/pause-the-agent.md +25 -25
  83. package/agent-assets/docs/guides/reinstall-cleanly.md +13 -12
  84. package/agent-assets/docs/guides/setup-wizard.md +9 -11
  85. package/agent-assets/docs/guides/switch-default-backend.md +9 -9
  86. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +9 -11
  87. package/agent-assets/docs/pages/activity.md +76 -0
  88. package/agent-assets/docs/pages/agents.md +78 -0
  89. package/agent-assets/docs/pages/analytics.md +70 -0
  90. package/agent-assets/docs/pages/browser.md +73 -0
  91. package/agent-assets/docs/pages/chat.md +67 -0
  92. package/agent-assets/docs/pages/connections.md +78 -0
  93. package/agent-assets/docs/pages/git.md +73 -0
  94. package/agent-assets/docs/pages/knowledge.md +75 -0
  95. package/agent-assets/docs/pages/overview.md +90 -0
  96. package/agent-assets/docs/pages/reading.md +65 -0
  97. package/agent-assets/docs/pages/settings.md +77 -0
  98. package/agent-assets/docs/pages/tasks.md +74 -0
  99. package/agent-assets/docs/pages/wiki.md +73 -0
  100. package/agent-assets/docs/reference/api.md +18 -17
  101. package/agent-assets/docs/reference/cli-commands.md +13 -10
  102. package/agent-assets/docs/reference/config.md +40 -35
  103. package/agent-assets/docs/reference/disallowed-tools.md +18 -17
  104. package/agent-assets/docs/reference/keyboard-shortcuts.md +6 -8
  105. package/agent-assets/docs/reference/knowledge-layout.md +10 -10
  106. package/agent-assets/docs/reference/process-keys.md +20 -22
  107. package/agent-assets/docs/reference/skills.md +18 -16
  108. package/agent-assets/docs/troubleshooting/auth-failed.md +13 -11
  109. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +10 -10
  110. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +26 -24
  111. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +8 -9
  112. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +19 -18
  113. package/agent-assets/docs/troubleshooting/observation-not-detected.md +14 -15
  114. package/agent-assets/docs/troubleshooting/quota-exhausted.md +28 -26
  115. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +35 -34
  116. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +21 -24
  117. package/agent-assets/skills/agent-create/SKILL.md +39 -5
  118. package/agent-assets/skills/background-task/SKILL.md +9 -4
  119. package/agent-assets/skills/board/SKILL.md +8 -9
  120. package/agent-assets/skills/browser-task/SKILL.md +2 -0
  121. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +2 -1
  122. package/agent-assets/skills/schedule/SKILL.md +6 -5
  123. package/agent-assets/skills/sources/SKILL.md +68 -0
  124. package/agent-assets/skills/sources/curation.json +21 -0
  125. package/agent-assets/skills/sources/seeds/filing-rules.seed.json +25 -0
  126. package/agent-assets/skills/sources/seeds/source-collections.seed.json +20 -0
  127. package/agent-assets/skills/task/SKILL.md +5 -2
  128. package/agent-assets/task-flows/background_task.md +29 -3
  129. package/agent-assets/task-flows/message.received.dm.md +1 -1
  130. package/agent-assets/task-flows/routine.activity_scan.md +17 -2
  131. package/agent-assets/task-flows/routine.evening_review.md +72 -11
  132. package/agent-assets/task-flows/routine.fetch_window.md +21 -0
  133. package/agent-assets/task-flows/routine.monthly_review.md +3 -1
  134. package/agent-assets/task-flows/routine.morning_routine_today.md +26 -7
  135. package/agent-assets/task-flows/routine.source_maintenance.md +50 -0
  136. package/agent-assets/task-flows/scheduled.dm.md +8 -3
  137. package/agent-assets/templates/_manifest.json +1 -0
  138. package/agent-assets/templates/knowledge/sources/_index.md +19 -0
  139. package/package.json +4 -4
@@ -19,7 +19,6 @@ tags:
19
19
  - routines
20
20
  - autonomous
21
21
  - journal
22
- - reflection
23
22
  status: stable
24
23
  ask_examples:
25
24
  - When does the weekly review run?
@@ -27,7 +26,7 @@ ask_examples:
27
26
  - Where do weekly retros get stored?
28
27
  locale: en-US
29
28
  created: 2026-04-25
30
- updated: 2026-06-10
29
+ updated: 2026-07-01
31
30
  keywords:
32
31
  - weekly review
33
32
  - Friday review
@@ -58,49 +57,54 @@ context_files:
58
57
 
59
58
  ## In One Sentence
60
59
 
61
- A medium-tier weekly retro fires every Friday evening and writes a
62
- synthesis into `journal/weekly/YYYY-Www.md` (ISO week), whose
63
- **Carry Over / Next Week Focus / Lessons** sections are then lifted
64
- into every morning routine of the following ISO week.
60
+ Every Friday evening, a medium-tier weekly retrospective (a look back
61
+ over the week) runs and writes a summary into
62
+ `journal/weekly/YYYY-Www.md` one file per ISO week (the standard
63
+ Mon–Sun week numbering). Its **Carry Over / Next Week Focus /
64
+ Lessons** sections are then copied into every morning routine of the
65
+ following ISO week.
65
66
 
66
67
  ## What It Does
67
68
 
68
69
  - Reads each `journal/daily/YYYY-MM-DD.md` for the current ISO week,
69
70
  the week's calendar retrospective, the roadmap, and active projects.
70
- - Synthesizes three axes — Outcomes, Forward items, Behavioral
71
- Lessons — and writes the user-facing snapshot.
72
- - Appends an agent-internal block to `journal/agent.md` for
71
+ - Pulls this together along three lines — Outcomes, Forward items,
72
+ and Behavioral Lessons — and writes the summary you read.
73
+ - Adds a private, agent-only block to `journal/agent.md` covering
73
74
  self-critique, filter quality, and improvement ideas.
74
- - Feeds the learning loop: for each concrete, actionable system
75
- improvement idea it identifies, it also posts a `source=self_critique`
76
- feedback signal (in addition to the `journal/agent.md` prose), so the
77
- idea is consolidated into the [agent lessons](../memory-files/agent-lessons.md)
78
- rather than only living in the journal.
79
- - Judges the daemon's self-tuning recommendations: when the weekly
80
- pre-step finds a cost knob worth changing (e.g. raising the mail
81
- pre-pass freshness window because most fetches came back empty), it
82
- injects up to three bounded proposals and the review records an
83
- apply / reject / defer verdict for each. While `selfTuningEnabled` is
84
- `false` (the default) nothing is ever changed automatically — verdicts
85
- are recorded for the owner to review (shadow mode). With the flag on,
86
- an apply verdict is actuated immediately by the daemon within hard
87
- per-key bounds; the owner gets a one-line DM per applied change
88
- (`!revert tuning` undoes the latest one) and a daily monitor
89
- auto-reverts any change whose 7-day follow-up metrics regressed.
90
- - Sends a brief Friday-evening notification by default (the silence
91
- gate triggers only on an essentially blank week).
92
- - Refreshes `identity/reading-taste.md` and Book Candidates when
93
- enough new highlights have accumulated.
75
+ - Feeds the learning loop: for each concrete, actionable improvement
76
+ idea it finds, it also posts a `source=self_critique` feedback
77
+ signal (on top of the `journal/agent.md` note), so the idea gets
78
+ folded into the [agent lessons](../memory-files/agent-lessons.md)
79
+ instead of only living in the journal.
80
+ - Reviews the daemon's self-tuning suggestions: when the weekly
81
+ pre-step spots a cost setting worth changing (for example, widening
82
+ the mail pre-pass freshness window because most fetches came back
83
+ empty), it puts forward up to three bounded proposals, and the
84
+ review records an apply / reject / defer verdict for each. While
85
+ `selfTuningEnabled` is `false` (the default), nothing changes
86
+ automatically the verdicts are only recorded for the owner to
87
+ review (this is called shadow mode). With the flag on, an apply
88
+ verdict takes effect immediately, kept inside hard per-key limits;
89
+ the owner gets a one-line DM for each applied change
90
+ (`!revert tuning` undoes the most recent one), and a daily monitor
91
+ automatically rolls back any change whose 7-day follow-up metrics
92
+ got worse.
93
+ - Sends a short Friday-evening notification by default. It stays quiet
94
+ (the silence gate) only when the week was essentially blank.
95
+ - Refreshes `identity/reading-taste.md` and your Book Candidates once
96
+ enough new highlights have piled up.
94
97
 
95
98
  ## When It Runs / How It Is Triggered
96
99
 
97
- Every **Friday at 19:00 local time** (one hour after `evening_review`).
98
- The schedule is fixed in `packages/daemon/src/core/scheduler.ts` and is
99
- not operator-configurable. If the Friday fire misses (daemon outage),
100
- the **Fri / Sat / Sun catch-up window** in `schedule-helpers.ts` fires
101
- the retro when the daemon recovers, before the new ISO week begins —
102
- a Mon–Thu catch-up is intentionally out of scope so the next week's
103
- `<previous_week>` injection stays stable Mon–Sun.
100
+ It runs every **Friday at 19:00 local time**, one hour after
101
+ `evening_review`. The schedule is fixed in
102
+ `packages/daemon/src/core/scheduler.ts` and can't be changed. If the
103
+ Friday run is missed (say, the daemon was down), the **Fri / Sat / Sun
104
+ catch-up window** in `schedule-helpers.ts` runs the retro as soon as
105
+ the daemon recovers, before the new ISO week begins. A Mon–Thu
106
+ catch-up is left out on purpose, so the next week's `<previous_week>`
107
+ injection stays a stable Mon–Sun.
104
108
 
105
109
  ## What It Outputs
106
110
 
@@ -111,25 +115,27 @@ a Mon–Thu catch-up is intentionally out of scope so the next week's
111
115
 
112
116
  ## Configuration
113
117
 
114
- The fire time (Friday 19:00 local) and day-of-week are fixed in code
115
- and are not operator-tunable. The backend and model that handle this
116
- routine, however, are configurable: `routine.weekly_review` is a
117
- configurable process key (default **medium** tier — Sonnet on Claude)
118
- that you can repoint from **Settings → Models**. The weekly rulebook
118
+ The run time (Friday 19:00 local) and the day of the week are fixed in
119
+ code and can't be changed. What you *can* change is the backend and
120
+ model behind this routine: `routine.weekly_review` is a configurable
121
+ process key (default **medium** tier — Sonnet on Claude) that you can
122
+ repoint from **Settings → Models**. The weekly rulebook
119
123
  (`policies/routines/weekly.md`) is edited on the weekly-review agent's
120
- Rulebook tab (`/agents/weekly-review?tab=rulebook`), where the agent
121
- can also be enabled or disabled.
124
+ Rulebook tab (`/agents/weekly-review?tab=rulebook`), where you can also
125
+ enable or disable the agent.
122
126
 
123
127
  ## When Something Goes Wrong
124
128
 
125
- - The retro **doesn't fire on Friday**: the Fri–Sun catch-up window
126
- retries on Saturday and Sunday agent-days. A full Fri–Sun outage
127
- results in a missing weekly file; the next week's morning routines
128
- proceed without the `<previous_week>` block.
129
- - The retro **runs but the file is empty** (silence gate): legitimate
130
- for a blank week — the file is still written with empty sections,
131
- and the next week's morning routine sees `(none recorded)` sub-
132
- blocks, which is the deliberate downstream signal.
129
+ - The retro **doesn't run on Friday**: the Fri–Sun catch-up window
130
+ retries on the Saturday and Sunday agent-days (the agent's own day,
131
+ which rolls over at `dayBoundaryHour` rather than at midnight). If
132
+ the daemon is down for the whole Fri–Sun window, the weekly file is
133
+ never written, and the next week's morning routines simply carry on
134
+ without the `<previous_week>` block.
135
+ - The retro **runs but the file is empty** (the silence gate): this is
136
+ fine for a genuinely blank week — the file is still written, just
137
+ with empty sections, and the next week's morning routine sees
138
+ `(none recorded)` sub-blocks. That is the intended signal, not a bug.
133
139
 
134
140
  ## Related
135
141
 
@@ -21,8 +21,6 @@ summary: |
21
21
  section: wiki
22
22
  tags:
23
23
  - wiki
24
- - bang-commands
25
- - core
26
24
  status: stable
27
25
  ask_examples:
28
26
  - How do I send a URL to the wiki?
@@ -34,7 +32,7 @@ ask_examples:
34
32
  - How do I bridge two domains with `!connect`?
35
33
  locale: en-US
36
34
  created: 2026-05-12
37
- updated: 2026-06-07
35
+ updated: 2026-07-01
38
36
  keywords:
39
37
  - !ingest
40
38
  - !compile
@@ -48,6 +46,7 @@ keywords:
48
46
  related:
49
47
  - features/wiki/overview
50
48
  - features/messaging/bang-commands
49
+ - features/wiki/cost-and-approval
51
50
  - guides/budget-and-cost-for-wiki
52
51
  - guides/maintain-wiki-health
53
52
  - guides/explore-with-trace-and-connect
@@ -67,9 +66,10 @@ ui_anchors:
67
66
 
68
67
  # Wiki Commands
69
68
 
70
- Use these from a paired DM channel after enabling the wiki. Open
69
+ These are bang commands chat messages that start with `!`. Send
70
+ them from a paired DM channel once the wiki is turned on. Open
71
71
  **Settings → Wiki** (`/settings/wiki`) to enable a workspace, then
72
- browse the result from **My Life → Wiki** (`/wiki`).
72
+ read the results under **My Life → Wiki** (`/wiki`).
73
73
 
74
74
  | Command | Effect |
75
75
  |---|---|
@@ -91,17 +91,17 @@ batch at 10 URLs.
91
91
  ## `@<workspace>` — addressing a non-default workspace
92
92
 
93
93
  If you run more than one wiki workspace (Phase 5), every bang command
94
- accepts an optional `@<name>` token immediately after the bang. The
95
- token is parsed before the command's own argument parser sees the
96
- rest, so multi-word topics and comma-separated arguments work as
97
- normal:
94
+ accepts an optional `@<name>` token right after the bang. Aitne reads
95
+ this token first and removes it before the command parses the rest of
96
+ your message, so multi-word topics and comma-separated arguments still
97
+ work as usual:
98
98
 
99
99
  !compile @research full
100
100
  !ask @parenting what did the pediatrician recommend?
101
101
  !connect @research diffusion models, score matching
102
102
 
103
103
  Omit the token and the command targets the **default** workspace.
104
- See `agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md`
104
+ See [guides/multiple-wikis-for-multiple-domains](../../guides/multiple-wikis-for-multiple-domains.md)
105
105
  for a walkthrough.
106
106
 
107
107
  ## `!compile --preview` — the dry run
@@ -119,14 +119,15 @@ Use `!compile --preview` (or `--dry-run`) when you want to see what
119
119
  - **est. duration** — Rough wall-clock estimate (intentionally
120
120
  pessimistic).
121
121
 
122
- The preview is an upper bound. The compile is an LLM and may
123
- merge or skip pages inside the agent loop; the preview cannot
124
- predict that exactly, but it will not undercount the touch set.
125
- Reply `!compile` (or `!compile full`) to actually run the compile.
122
+ Treat the preview as an upper bound. The real compile runs an LLM,
123
+ which may merge or skip pages as it works, so the preview cannot
124
+ predict the outcome exactly but it will never undercount the pages
125
+ it touches. Reply `!compile` (or `!compile full`) to run the compile
126
+ for real.
126
127
 
127
128
  ## Dispatch Mode for `!ingest`
128
129
 
129
- `!ingest` honours the per-workspace **dispatch mode** in
130
+ `!ingest` follows the per-workspace **dispatch mode** set in
130
131
  Settings → Wiki:
131
132
 
132
133
  - **Parallel** (default): all URLs fan out simultaneously up to the
@@ -142,8 +143,8 @@ The acknowledgement DM names the mode that ran (`in parallel` /
142
143
 
143
144
  ## `!compile full` — the Cost Gate
144
145
 
145
- Full rebuilds touch every wiki note and are the most expensive
146
- command in the wiki surface. The flow:
146
+ Full rebuilds touch every wiki note, so they are the most expensive
147
+ command in the wiki surface. Here is what happens when you run one:
147
148
 
148
149
  1. The bang handler estimates the cost (per raw note, an on-disk
149
150
  char→token approximation × Sonnet 5 input price, bracketed
@@ -160,15 +161,20 @@ command in the wiki surface. The flow:
160
161
  4. Otherwise, the run starts autonomously and you receive a
161
162
  completion DM with actual spend.
162
163
 
163
- The same estimate is shown live in **Settings → Wiki** so you can
164
- see what the next `!compile full` will cost before you run it.
164
+ The same estimate is shown live in **Settings → Wiki**, so you can
165
+ see what the next `!compile full` will cost before you run it. See
166
+ [features/wiki/cost-and-approval](cost-and-approval.md) for the full
167
+ cost-estimation and approval reference.
165
168
 
166
169
  ## Operational Triad — `!lint`, `!trace`, `!connect`
167
170
 
168
171
  These three commands round out the wiki surface for ongoing
169
172
  maintenance and exploration. None of them write to the content
170
173
  layers (`10_raw/`, `20_wiki/`); they only produce health reports
171
- (`90_meta/health/`) or output documents (`30_outputs/`).
174
+ (`90_meta/health/`) or output documents (`30_outputs/`). This
175
+ section is the command reference; for the step-by-step workflows,
176
+ see [guides/maintain-wiki-health](../../guides/maintain-wiki-health.md)
177
+ and [guides/explore-with-trace-and-connect](../../guides/explore-with-trace-and-connect.md).
172
178
 
173
179
  ### `!lint`
174
180
 
@@ -197,7 +203,7 @@ Timeline & health** (`/wiki/timeline`).
197
203
  ### `!trace <topic>`
198
204
 
199
205
  Reconstructs the chronological evolution of an idea across every
200
- wiki layer. Use a free-form topic — the skill canonicalises against
206
+ wiki layer. Use a free-form topic — the skill matches it against
201
207
  `90_meta/taxonomy.md` before deriving the output slug:
202
208
 
203
209
  ```
@@ -25,7 +25,6 @@ tags:
25
25
  - cost
26
26
  - approval
27
27
  - safety
28
- - core
29
28
  status: stable
30
29
  ask_examples:
31
30
  - How does !compile full estimate cost?
@@ -39,7 +38,7 @@ ask_examples:
39
38
  - Can I see the cost before running !compile full?
40
39
  locale: en-US
41
40
  created: 2026-05-21
42
- updated: 2026-06-07
41
+ updated: 2026-07-01
43
42
  keywords:
44
43
  - cost estimate
45
44
  - cost bracket
@@ -106,26 +105,30 @@ The same estimator backs four surfaces so the numbers cannot drift:
106
105
 
107
106
  ## How the estimator works
108
107
 
109
- Pure JS, no agent session, no SDK call. The estimator
110
- (`packages/daemon/src/core/wiki/cost-estimate.ts`) opens each raw
111
- note under `10_raw/`, approximates its token count from on-disk
112
- content, then multiplies the total by the tier unit cost and
113
- brackets with 0.5×/2× multipliers.
108
+ The estimate is plain JavaScript math it never starts an agent or
109
+ calls the model, so it costs nothing and returns instantly. The
110
+ estimator (`packages/daemon/src/core/wiki/cost-estimate.ts`) opens
111
+ each raw note under `10_raw/`, approximates its token count from the
112
+ text on disk, then multiplies the total by the tier unit cost and
113
+ wraps it in a 0.5×/2× bracket (a low/high range).
114
114
 
115
115
  ### Character → token approximation
116
116
 
117
- - **Latin / English content** — ~4 chars per token. The well-known
118
- OpenAI rule-of-thumb; matches Anthropic's tokenizer within ±15%
119
- for prose; confirmed against the gpt-tokenizer dist.
120
- - **CJK content** — ~1.5 chars per token. BPE merges short CJK runs
121
- but not as aggressively as Latin word fragments.
122
-
123
- The classifier counts Unicode code points whose script is one of
124
- Han, Hiragana, Katakana, Hangul, Bopomofo. If the document is
125
- majority-CJK we apply the CJK divisor to the entire file; otherwise
126
- Latin. A per-script split per file would be marginally more accurate
127
- but adds 30% code for a sub-percent gain on typical mixed-script
128
- files.
117
+ - **Latin / English content** — about 4 characters per token. This
118
+ is the well-known OpenAI rule-of-thumb; it matches Anthropic's
119
+ tokenizer within ±15% for prose, confirmed against the
120
+ gpt-tokenizer package.
121
+ - **CJK content** (Chinese, Japanese, Korean) about 1.5 characters
122
+ per token. The tokenizer merges short CJK runs, but not as
123
+ aggressively as it merges Latin word fragments, so each character
124
+ carries more weight.
125
+
126
+ To pick a ratio, the classifier counts the Unicode code points whose
127
+ script is one of Han, Hiragana, Katakana, Hangul, or Bopomofo. If a
128
+ file is majority-CJK, the CJK ratio applies to the whole file;
129
+ otherwise the Latin ratio does. Splitting each file script-by-script
130
+ would be slightly more accurate, but it adds 30% more code for a
131
+ sub-percent gain on typical mixed-script files, so we don't.
129
132
 
130
133
  ### The 0.5×/2× bracket
131
134
 
@@ -188,7 +191,8 @@ estimate landed to the actual cost.
188
191
 
189
192
  ## The pre-compile git snapshot
190
193
 
191
- Only meaningful on an **external + git-tracked** vault. The gate
194
+ This only matters for an **external + git-tracked** vault a vault
195
+ stored outside Aitne whose folder is a git repository. The gate
192
196
  decides:
193
197
 
194
198
  | Workspace state | Outcome |
@@ -202,9 +206,10 @@ decides:
202
206
  The snapshot is your rollback target if `!compile full` produces a
203
207
  surprise — `git reset --hard <snapshot-commit>` puts the vault back.
204
208
 
205
- The pre-compile commit uses no special author identity; it lands
206
- under whatever git is configured to use. If you co-author with
207
- Aitne, you'll want to set that up at the git config level.
209
+ The pre-compile commit uses no special author identity it lands
210
+ under whatever name and email your git is already configured to use.
211
+ If you want to credit Aitne as a co-author, set that up in your git
212
+ config.
208
213
 
209
214
  ## The `--preview` dry-run
210
215
 
@@ -23,8 +23,6 @@ section: wiki
23
23
  tags:
24
24
  - wiki
25
25
  - dashboard
26
- - reference
27
- - core
28
26
  status: stable
29
27
  ask_examples:
30
28
  - What does the /wiki page show?
@@ -37,7 +35,7 @@ ask_examples:
37
35
  - What does the Enable Wiki button do?
38
36
  locale: en-US
39
37
  created: 2026-05-21
40
- updated: 2026-06-07
38
+ updated: 2026-07-01
41
39
  keywords:
42
40
  - /wiki
43
41
  - /wiki/timeline
@@ -82,12 +80,12 @@ process_keys:
82
80
 
83
81
  # Wiki Dashboard Surfaces
84
82
 
85
- The wiki has three distinct pages in the dashboard. The split mirrors
86
- Aitne's broader IA: content browsing lives under **My Life**,
87
- configuration lives under **Setup → Settings**. The pages share a
88
- single read path through the daemon's `/api/wiki/*` routes — every
83
+ The wiki has three separate pages in the dashboard. The split mirrors
84
+ how the rest of Aitne is organized: content you browse lives under
85
+ **My Life**, and configuration lives under **Setup → Settings**. All
86
+ three pages read through the same daemon routes (`/api/wiki/*`). Every
89
87
  request carries an `x-process-key: wiki.ask` header so the safety
90
- layer can attribute reads correctly.
88
+ layer can record who is reading what.
91
89
 
92
90
  ## `/wiki` — workspace home
93
91
 
@@ -112,13 +110,13 @@ Two action buttons at the bottom of the card: **Timeline & health**
112
110
 
113
111
  ### 2. Index
114
112
 
115
- Renders the latest `20_wiki/_index.md`, the LLM-maintained catalogue
116
- of wiki pages. The agent rewrites this file at the end of every
117
- `!compile` run.
113
+ Renders the latest `20_wiki/_index.md`, the running catalogue of wiki
114
+ pages that the agent keeps up to date. The agent rewrites this file at
115
+ the end of every `!compile` run.
118
116
 
119
117
  States:
120
- - **Empty** — no `_index.md` yet; the CTA tells you to run `!compile`
121
- from a DM.
118
+ - **Empty** — no `_index.md` yet; the card's call-to-action button
119
+ tells you to run `!compile` from a DM.
122
120
  - **Loaded** — the file is rendered verbatim as a monospaced code
123
121
  block (the index uses wikilink syntax, so rendering as markdown
124
122
  would lose information).
@@ -139,10 +137,10 @@ error toast.
139
137
  ### Disabled state
140
138
 
141
139
  When no `active=1` workspace exists in `wiki_workspaces`, the page
142
- shows an **Enable Wiki** CTA that jumps to `/settings/wiki`. The
143
- sidebar entry is always visible (gated only on the workspace
144
- catalogue being reachable), so this disabled state is reachable via
145
- the sidebar, a deep link, or browser history.
140
+ shows an **Enable Wiki** button that jumps to `/settings/wiki`. The
141
+ sidebar entry is always visible (it shows as long as the workspace
142
+ list can be loaded), so you can still land on this disabled page from
143
+ the sidebar, a shared link, or browser history.
146
144
 
147
145
  ## `/wiki/timeline` — full chronological history + health
148
146
 
@@ -172,9 +170,9 @@ log plus an **All commands** default. Entries render the same way
172
170
  they do in the `/wiki` recent-activity card — process-key badge,
173
171
  operation, path, timestamp.
174
172
 
175
- Both surfaces read live from the wiki API; the timeline page is a
176
- pure rendering pass over files the wiki skills already produce — no
177
- extra daemon-side schema backs them.
173
+ Both surfaces read live from the wiki API. The timeline page simply
174
+ displays files the wiki skills already write to disk there is no
175
+ separate database table behind it.
178
176
 
179
177
  ## `/settings/wiki` — configuration
180
178
 
@@ -186,9 +184,9 @@ A two-card chooser:
186
184
 
187
185
  - **Internal** (recommended) — managed by Aitne inside the context
188
186
  vault (default `<contextDir>/knowledge/wiki`, i.e.
189
- `~/.personal-agent/context/knowledge/wiki`), schema seeded
190
- automatically. The **Enable internal wiki** button turns it on with
191
- nothing else to configure.
187
+ `~/.personal-agent/context/knowledge/wiki`), with the folder
188
+ structure set up for you. The **Enable internal wiki** button turns
189
+ it on with nothing else to configure.
192
190
  - **Existing Obsidian vault** (external) — point Aitne at a folder you
193
191
  already own via the path picker, then confirm with **Use this
194
192
  folder**.
@@ -17,7 +17,6 @@ section: wiki
17
17
  tags:
18
18
  - wiki
19
19
  - knowledge
20
- - core
21
20
  status: stable
22
21
  ask_examples:
23
22
  - What is the wiki?
@@ -26,7 +25,7 @@ ask_examples:
26
25
  - Can I point the wiki at my Obsidian vault?
27
26
  locale: en-US
28
27
  created: 2026-05-12
29
- updated: 2026-06-07
28
+ updated: 2026-07-01
30
29
  keywords:
31
30
  - wiki
32
31
  - wiki workspace
@@ -88,10 +87,10 @@ and questions you ask it.
88
87
  The three commands you reach for daily:
89
88
 
90
89
  - **URL ingest**: send `!ingest <url>` from a paired DM channel; the wiki
91
- agent fetches the source, summarises it, and stores a raw note.
90
+ agent fetches the source, summarizes it, and stores a raw note.
92
91
  - **Compile**: `!compile` (incremental) and `!compile full` (full
93
- rebuild) turn raw notes into synthesised wiki articles with
94
- cross-links and an `_index.md` catalogue.
92
+ rebuild) turn raw notes into synthesized wiki articles with
93
+ cross-links and an `_index.md` catalog.
95
94
  - **Ask**: `!ask <question>` searches the wiki and writes a cited
96
95
  answer under `30_outputs/`.
97
96
 
@@ -110,8 +109,9 @@ competes for budget with daily reactive memory.
110
109
  Aitne offers two modes:
111
110
 
112
111
  - **Internal** (recommended starting point) — the daemon owns the
113
- vault at `$PA_DATA_DIR/context/knowledge/wiki`. No sandbox issues,
114
- daemon-managed snapshots, isolated from iCloud sync conflicts.
112
+ vault at `$PA_DATA_DIR/context/knowledge/wiki`. No sandbox
113
+ permission issues, snapshots are managed for you, and it stays clear
114
+ of iCloud sync conflicts.
115
115
  - **External** — you point the wiki at an existing Obsidian vault on
116
116
  disk. The daemon writes directly when the filesystem allows, and
117
117
  falls back to the official Obsidian CLI when the vault sits in a
@@ -126,7 +126,7 @@ workspaces may not nest.
126
126
  - `00_inbox/` — human-only capture (the agent has read access but
127
127
  cannot write here).
128
128
  - `10_raw/` — source-faithful raw notes (append-only).
129
- - `20_wiki/` — synthesised wiki articles + `_index.md` catalogue.
129
+ - `20_wiki/` — synthesized wiki articles + `_index.md` catalog.
130
130
  - `30_outputs/` — answer / report artifacts written by `!ask`.
131
131
  - `90_meta/` — taxonomy, schemas, lint reports, and the
132
132
  `import-<date>.md` migration record.
@@ -138,31 +138,23 @@ process keys can write wiki layers.
138
138
  ## Cost Safety
139
139
 
140
140
  `!compile full` rebuilds the entire wiki from raw notes and is the
141
- most expensive command. Before you run it, the dashboard shows a
142
- bracketed estimate the optimistic (0.5×) and pessimistic (2×)
143
- multiples of the assumed input-token spend. If the pessimistic
144
- estimate exceeds the per-workspace threshold (default $2.00), the
145
- command escalates to the approval queue and requires your explicit
146
- confirmation before the compile starts. The pending-approval card
147
- surfaces on the dashboard home page (`/`), where you Approve or Deny
148
- it.
149
-
150
- On a git-tracked external vault, Aitne also runs
151
- `git add -A && git commit -m "aitne wiki: pre-compile snapshot <ts>"`
152
- on a clean working tree before the compile so you can roll back if
153
- the run produces a surprise. A dirty tree refuses the operation —
154
- commit or stash first.
141
+ most expensive command, so Aitne guards it: the dashboard shows a cost
142
+ estimate before you run it, a large run needs your approval (the
143
+ per-workspace threshold defaults to $2.00), and a git-tracked external
144
+ vault gets a snapshot commit first so you can roll back a surprising
145
+ run. See [Cost estimation and approval](cost-and-approval.md) for the
146
+ exact estimate math, the approval flow, and the pre-compile snapshot.
155
147
 
156
148
  ## Where it lives in the dashboard
157
149
 
158
150
  The wiki has two distinct surfaces in the dashboard. The split mirrors
159
- how Aitne organises the rest of the app — configuration lives under
151
+ how Aitne organizes the rest of the app — configuration lives under
160
152
  **Setup → Settings**, day-to-day content browsing lives under **My
161
153
  Life** next to Knowledge / Reading / Git.
162
154
 
163
155
  | Page | Section | Use it for |
164
156
  |---|---|---|
165
- | `/wiki` | My Life | Workspace summary, the compiled `_index.md` catalogue, and the latest activity log. The page you open most often. |
157
+ | `/wiki` | My Life | Workspace summary, the compiled `_index.md` catalog, and the latest activity log. The page you open most often. |
166
158
  | `/wiki/timeline` | My Life | Full chronological activity log plus the latest `!lint` health report. Linked from `/wiki` and from settings. |
167
159
  | `/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. |
168
160
 
@@ -196,7 +188,7 @@ This page is a high-level tour. For depth on a specific surface:
196
188
  - **[Commands reference](commands.md)** — every wiki bang command
197
189
  (`!ingest`, `!compile`, `!ask`, `!lint`, `!trace`, `!connect`,
198
190
  `!wiki`), the `@<workspace>` addressing token, dispatch modes, and
199
- the disabled-state behaviour.
191
+ the disabled-state behavior.
200
192
  - **[Dashboard surfaces](dashboard.md)** — what `/wiki`,
201
193
  `/wiki/timeline`, and `/settings/wiki` actually render, where each
202
194
  card reads from on disk, and how the contextual help button maps