@aitne-sh/aitne 0.1.7 → 0.1.8

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 (222) hide show
  1. package/README.md +195 -829
  2. package/agent-assets/agent-profiles/_safety.md +49 -17
  3. package/agent-assets/agent-profiles/profile-importer.md +1 -1
  4. package/agent-assets/agent-profiles/routine.md +4 -3
  5. package/agent-assets/docs/concepts/agent-day.md +6 -1
  6. package/agent-assets/docs/concepts/auth-health.md +10 -1
  7. package/agent-assets/docs/concepts/backends-and-tiers.md +74 -40
  8. package/agent-assets/docs/concepts/costs-and-quotas.md +25 -5
  9. package/agent-assets/docs/concepts/delegated-mode.md +147 -68
  10. package/agent-assets/docs/concepts/memory-model.md +9 -4
  11. package/agent-assets/docs/concepts/observations.md +13 -1
  12. package/agent-assets/docs/concepts/process-keys.md +20 -5
  13. package/agent-assets/docs/concepts/routines.md +38 -20
  14. package/agent-assets/docs/concepts/safety-model.md +30 -13
  15. package/agent-assets/docs/concepts/skills.md +12 -7
  16. package/agent-assets/docs/features/integrations/calendar.md +1 -1
  17. package/agent-assets/docs/features/integrations/git.md +2 -2
  18. package/agent-assets/docs/features/integrations/github.md +9 -2
  19. package/agent-assets/docs/features/integrations/mail.md +1 -1
  20. package/agent-assets/docs/features/integrations/notion.md +34 -6
  21. package/agent-assets/docs/features/integrations/obsidian.md +7 -2
  22. package/agent-assets/docs/features/lifestyle/git.md +4 -7
  23. package/agent-assets/docs/features/lifestyle/receipts.md +17 -2
  24. package/agent-assets/docs/features/lifestyle/travel-bookings.md +15 -0
  25. package/agent-assets/docs/features/lifestyle/travel-time.md +7 -1
  26. package/agent-assets/docs/features/memory-files/agent-journal.md +2 -2
  27. package/agent-assets/docs/features/memory-files/projects.md +6 -0
  28. package/agent-assets/docs/features/memory-files/roadmap.md +5 -0
  29. package/agent-assets/docs/features/memory-files/today.md +1 -0
  30. package/agent-assets/docs/features/memory-files/user-profile.md +6 -0
  31. package/agent-assets/docs/features/messaging/bang-commands.md +20 -10
  32. package/agent-assets/docs/features/messaging/discord.md +12 -1
  33. package/agent-assets/docs/features/messaging/overview.md +10 -7
  34. package/agent-assets/docs/features/messaging/slack.md +13 -1
  35. package/agent-assets/docs/features/messaging/telegram.md +7 -1
  36. package/agent-assets/docs/features/messaging/whatsapp.md +12 -1
  37. package/agent-assets/docs/features/operations/activity-and-conversations.md +2 -2
  38. package/agent-assets/docs/features/operations/approvals.md +6 -0
  39. package/agent-assets/docs/features/operations/backend-routing.md +7 -0
  40. package/agent-assets/docs/features/operations/cost-tracking.md +6 -0
  41. package/agent-assets/docs/features/operations/notifications.md +6 -0
  42. package/agent-assets/docs/features/operations/schedule-approaching.md +22 -9
  43. package/agent-assets/docs/features/routines/custom-routines.md +10 -4
  44. package/agent-assets/docs/features/routines/evening-review.md +1 -1
  45. package/agent-assets/docs/features/routines/hourly-check.md +1 -1
  46. package/agent-assets/docs/features/routines/morning-routine.md +24 -15
  47. package/agent-assets/docs/features/routines/weekly-review.md +38 -12
  48. package/agent-assets/docs/features/wiki/commands.md +11 -0
  49. package/agent-assets/docs/features/wiki/overview.md +13 -3
  50. package/agent-assets/docs/getting-started/01-what-is-this.md +32 -11
  51. package/agent-assets/docs/getting-started/02-first-steps.md +17 -4
  52. package/agent-assets/docs/getting-started/03-what-can-this-do.md +21 -11
  53. package/agent-assets/docs/getting-started/04-first-day.md +14 -0
  54. package/agent-assets/docs/glossary.md +65 -12
  55. package/agent-assets/docs/guides/add-a-custom-routine.md +12 -0
  56. package/agent-assets/docs/guides/backup-and-restore.md +16 -2
  57. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +6 -0
  58. package/agent-assets/docs/guides/build-your-wiki.md +14 -0
  59. package/agent-assets/docs/guides/change-which-model-handles-x.md +7 -0
  60. package/agent-assets/docs/guides/connect-a-new-mail-account.md +16 -0
  61. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +6 -0
  62. package/agent-assets/docs/guides/import-knowledge-file.md +11 -0
  63. package/agent-assets/docs/guides/install-and-run.md +20 -4
  64. package/agent-assets/docs/guides/maintain-wiki-health.md +6 -0
  65. package/agent-assets/docs/guides/migrate-machines.md +13 -1
  66. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +9 -0
  67. package/agent-assets/docs/guides/pause-the-agent.md +12 -4
  68. package/agent-assets/docs/guides/reinstall-cleanly.md +19 -4
  69. package/agent-assets/docs/guides/setup-wizard.md +20 -9
  70. package/agent-assets/docs/guides/switch-default-backend.md +10 -1
  71. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +5 -0
  72. package/agent-assets/docs/reference/api.md +29 -1
  73. package/agent-assets/docs/reference/cli-commands.md +22 -3
  74. package/agent-assets/docs/reference/config.md +37 -5
  75. package/agent-assets/docs/reference/disallowed-tools.md +13 -0
  76. package/agent-assets/docs/reference/keyboard-shortcuts.md +13 -0
  77. package/agent-assets/docs/reference/process-keys.md +70 -20
  78. package/agent-assets/docs/reference/skills.md +27 -9
  79. package/agent-assets/docs/troubleshooting/auth-failed.md +7 -2
  80. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +13 -1
  81. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +10 -0
  82. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +11 -0
  83. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +9 -4
  84. package/agent-assets/docs/troubleshooting/observation-not-detected.md +12 -0
  85. package/agent-assets/docs/troubleshooting/quota-exhausted.md +7 -1
  86. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +5 -0
  87. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +5 -0
  88. package/agent-assets/optimizer-skills/drift-analysis/SKILL.md +1 -1
  89. package/agent-assets/optimizer-skills/skill-curation/SKILL.md +2 -2
  90. package/agent-assets/skills/agent-actions/SKILL.md +122 -0
  91. package/agent-assets/skills/attach/SKILL.md +1 -2
  92. package/agent-assets/skills/context/SKILL.md +36 -454
  93. package/agent-assets/skills/context/references/api.md +220 -0
  94. package/agent-assets/skills/context/references/required-frontmatter.md +73 -0
  95. package/agent-assets/skills/context/references/snapshot-files.md +103 -0
  96. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +1 -1
  97. package/agent-assets/skills/docs-search/SKILL.md +13 -13
  98. package/agent-assets/skills/external-services/SKILL.delegated.claude.md +5 -7
  99. package/agent-assets/skills/external-services/SKILL.delegated.codex.md +5 -7
  100. package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +5 -7
  101. package/agent-assets/skills/external-services/SKILL.md +6 -259
  102. package/agent-assets/skills/external-services/SKILL.native.claude.md +1 -2
  103. package/agent-assets/skills/external-services/SKILL.native.codex.md +1 -2
  104. package/agent-assets/skills/external-services/SKILL.native.gemini.md +1 -2
  105. package/agent-assets/skills/external-services/references/calendar-apple.md +97 -0
  106. package/agent-assets/skills/external-services/references/calendar-google.md +72 -0
  107. package/agent-assets/skills/external-services/references/calendar-outlook.md +36 -0
  108. package/agent-assets/skills/external-services/references/github.md +17 -0
  109. package/agent-assets/skills/external-services/references/obsidian.md +49 -0
  110. package/agent-assets/skills/external-services/references/skills-crud.md +27 -0
  111. package/agent-assets/skills/gmail-lifestyle/SKILL.md +224 -0
  112. package/agent-assets/skills/gmail-lifestyle/references/receipts-api.md +93 -0
  113. package/agent-assets/skills/gmail-lifestyle/references/travel-bookings-api.md +75 -0
  114. package/agent-assets/skills/gmail-lifestyle/references/travel-time-api.md +59 -0
  115. package/agent-assets/skills/mail/SKILL.delegated.claude.md +1 -1
  116. package/agent-assets/skills/mail/SKILL.delegated.codex.md +1 -1
  117. package/agent-assets/skills/mail/SKILL.delegated.gemini.md +1 -1
  118. package/agent-assets/skills/mail/SKILL.md +9 -114
  119. package/agent-assets/skills/mail/SKILL.native.claude.md +1 -1
  120. package/agent-assets/skills/mail/SKILL.native.codex.md +1 -1
  121. package/agent-assets/skills/mail/SKILL.native.gemini.md +1 -1
  122. package/agent-assets/skills/mail/references/api.md +108 -0
  123. package/agent-assets/skills/mail/references/examples.md +70 -0
  124. package/agent-assets/skills/mail/references/providers.md +8 -8
  125. package/agent-assets/skills/managed-tasks/SKILL.md +472 -0
  126. package/agent-assets/skills/managed-tasks/references/errors.md +70 -0
  127. package/agent-assets/skills/managed-tasks/references/output-path.md +75 -0
  128. package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +86 -0
  129. package/agent-assets/skills/management-policy/SKILL.md +33 -105
  130. package/agent-assets/skills/management-policy/references/policy-workflow.md +101 -0
  131. package/agent-assets/skills/notify/SKILL.md +6 -78
  132. package/agent-assets/skills/notify/references/priority.md +60 -0
  133. package/agent-assets/skills/notion/SKILL.delegated.claude.md +1 -1
  134. package/agent-assets/skills/notion/SKILL.delegated.codex.md +1 -1
  135. package/agent-assets/skills/notion/SKILL.delegated.gemini.md +1 -1
  136. package/agent-assets/skills/notion/SKILL.md +6 -10
  137. package/agent-assets/skills/notion/SKILL.native.claude.md +1 -2
  138. package/agent-assets/skills/notion/SKILL.native.codex.md +1 -2
  139. package/agent-assets/skills/notion/SKILL.native.gemini.md +1 -2
  140. package/agent-assets/skills/observations/SKILL.md +1 -6
  141. package/agent-assets/skills/project-doc/SKILL.md +1 -5
  142. package/agent-assets/skills/reading/SKILL.md +2 -2
  143. package/agent-assets/skills/roadmap/SKILL.md +37 -135
  144. package/agent-assets/skills/roadmap/references/api.md +100 -0
  145. package/agent-assets/skills/roadmap/references/cross-check.md +73 -0
  146. package/agent-assets/skills/roadmap/references/migration.md +56 -0
  147. package/agent-assets/skills/roadmap/references/preparation-timeline.md +2 -2
  148. package/agent-assets/skills/schedule/SKILL.md +52 -88
  149. package/agent-assets/skills/schedule/references/batch.md +93 -0
  150. package/agent-assets/skills/schedule/references/errors.md +214 -0
  151. package/agent-assets/skills/schedule/references/model-selection.md +96 -0
  152. package/agent-assets/skills/schedule/references/recurrence-rule.md +86 -0
  153. package/agent-assets/skills/schedule/references/recurring.md +185 -0
  154. package/agent-assets/skills/scheduled-managed-task/SKILL.md +13 -15
  155. package/agent-assets/skills/today/SKILL.md +27 -57
  156. package/agent-assets/skills/today/references/agent-plan-lifecycle.md +113 -0
  157. package/agent-assets/skills/user-interview/SKILL.md +12 -59
  158. package/agent-assets/skills/user-interview/references/op-briefing.md +51 -0
  159. package/agent-assets/skills/user-interview/references/op-morning.md +59 -0
  160. package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +1 -1
  161. package/agent-assets/skills/user-profile/SKILL.md +43 -63
  162. package/agent-assets/skills/user-profile/references/character-preferences.md +83 -0
  163. package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +28 -0
  164. package/agent-assets/skills/wiki/wiki-ask/SKILL.md +0 -1
  165. package/agent-assets/skills/wiki/wiki-compile/SKILL.md +0 -1
  166. package/agent-assets/skills/wiki/wiki-connect/SKILL.md +0 -1
  167. package/agent-assets/skills/wiki/wiki-graduate/SKILL.md +0 -1
  168. package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +0 -1
  169. package/agent-assets/skills/wiki/wiki-lint/SKILL.md +0 -1
  170. package/agent-assets/skills/wiki/wiki-trace/SKILL.md +0 -1
  171. package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +0 -1
  172. package/agent-assets/system-prompts/routine-fetch-window.md +68 -0
  173. package/agent-assets/system-prompts/skill-index-instruction.md +26 -0
  174. package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +18 -11
  175. package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +16 -9
  176. package/agent-assets/task-flows/_partials/capture-user-info.md +24 -0
  177. package/agent-assets/task-flows/_partials/confirm-subflow.md +68 -0
  178. package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +35 -0
  179. package/agent-assets/task-flows/_partials/dm-intent.project.md +391 -0
  180. package/agent-assets/task-flows/_partials/mail-acquire.gmail.md +20 -11
  181. package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +17 -9
  182. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +18 -12
  183. package/agent-assets/task-flows/knowledge.import.md +1 -1
  184. package/agent-assets/task-flows/message.received.dm.md +13 -15
  185. package/agent-assets/task-flows/message.received.dm_first.md +10 -14
  186. package/agent-assets/task-flows/routine.custom.md +3 -1
  187. package/agent-assets/task-flows/routine.evening_review.md +39 -163
  188. package/agent-assets/task-flows/routine.fetch_window.md +17 -12
  189. package/agent-assets/task-flows/routine.hourly_check.md +16 -8
  190. package/agent-assets/task-flows/routine.hourly_check.triage.md +1 -1
  191. package/agent-assets/task-flows/routine.monthly_review.md +46 -4
  192. package/agent-assets/task-flows/routine.morning_routine_journal.md +113 -0
  193. package/agent-assets/task-flows/routine.morning_routine_today.md +673 -0
  194. package/agent-assets/task-flows/routine.roadmap_refresh.md +60 -15
  195. package/agent-assets/task-flows/routine.user_profile_sweep.md +9 -10
  196. package/agent-assets/task-flows/routine.weekly_review.md +285 -70
  197. package/agent-assets/task-flows/scheduled.dm.md +8 -8
  198. package/agent-assets/task-flows/scheduled.task.md +5 -5
  199. package/agent-assets/task-flows/setup.initial.md +165 -245
  200. package/agent-assets/task-flows/wiki.ingest_url.md +1 -1
  201. package/agent-assets/templates/_manifest.json +7 -7
  202. package/agent-assets/templates/dossiers/_index.md +1 -1
  203. package/agent-assets/templates/rules/journal-format.md +145 -38
  204. package/agent-assets/templates/user/expertise.md +4 -2
  205. package/agent-assets/templates/user/goals.md +4 -2
  206. package/agent-assets/templates/user/people.md +8 -2
  207. package/agent-assets/templates/user/personal.md +4 -2
  208. package/agent-assets/templates/user/work.md +4 -2
  209. package/bin/aitne.mjs +8 -1
  210. package/package.json +4 -4
  211. package/scripts/commands/doctor.mjs +52 -0
  212. package/scripts/commands/run-now.mjs +202 -0
  213. package/scripts/commands/verify.mjs +264 -0
  214. package/agent-assets/docs/features/routines/monthly-review.md +0 -65
  215. package/agent-assets/skills/management-task-modify/SKILL.md +0 -203
  216. package/agent-assets/skills/management-task-register/SKILL.md +0 -330
  217. package/agent-assets/skills/management-task-stop/SKILL.md +0 -166
  218. package/agent-assets/skills/receipts/SKILL.md +0 -134
  219. package/agent-assets/skills/travel/SKILL.md +0 -132
  220. package/agent-assets/skills/travel-time/SKILL.md +0 -158
  221. package/agent-assets/task-flows/routine.morning_routine.md +0 -322
  222. package/agent-assets/task-flows/routine.morning_routine_initial.md +0 -204
@@ -33,7 +33,7 @@ ask_examples:
33
33
  - Where do I see what the agent has been doing?
34
34
  locale: en-US
35
35
  created: 2026-04-26
36
- updated: 2026-04-26
36
+ updated: 2026-05-17
37
37
  keywords:
38
38
  - deniedTools
39
39
  - safety floor
@@ -121,21 +121,30 @@ of "report to me" events. Information about what the agent did is
121
121
  - **`matchToolPattern`** — pattern matcher used everywhere `deniedTools`
122
122
  is enforced. Exact match (`send_email`), prefix glob (`send_*`), or
123
123
  bare `*`.
124
- - **`/api/integrations/:key/invoke`** — the cross-backend chokepoint.
125
- Enforces `deniedTools` server-side before spawning a subprocess.
124
+ - **`/api/integrations/:key/exec`** — the cross-backend chokepoint
125
+ (task mode; the RPC-style `/invoke` route was retired 2026-05-01,
126
+ see `docs/design/17-delegated-mode-v2.md` §4.2). Enforces `deniedTools`
127
+ server-side by filtering the integration's `capabilityTools` through
128
+ the deny list before spawning the delegated backend, so the
129
+ task-mode planner can only pick from the allowed surface. A
130
+ fully-denied surface short-circuits with `errorClass: "denied_tool"`
131
+ before any subprocess spawn.
126
132
  - **`agent_actions`** — SQLite table of every agent action. Direct +
127
- cross-backend rows are full-fidelity. Same-backend native MCP rolls
128
- up to `mcp_tool_calls` + the parent session row.
133
+ cross-backend rows are full-fidelity (current cross-backend writes
134
+ emit `delegated_task.run` / `delegated_task.exec` /
135
+ `delegated_task.tool_step`; legacy rows from before 2026-05-01 carry
136
+ `delegated_proxy.invoke`). Same-backend native MCP rolls up to
137
+ `mcp_tool_calls` + the parent session row.
129
138
 
130
139
  ## Where the Defenses Apply
131
140
 
132
141
  | Path | Enforcement |
133
142
  |---|---|
134
143
  | Direct mode (`/api/mail/*`, `/api/calendar/*`) | Route handler middleware checks `deniedTools` against the materialized skill body's `allowed-tools` list (frontmatter). |
135
- | Cross-backend (`/api/integrations/:key/invoke`) | Endpoint handler runs `matchToolPattern(deniedPattern, tool)` before spawning. Returns `403 denied_tool` on hit. |
136
- | Same-backend native MCP — Claude | `collectSessionDeniedTools` merges the deny patterns into the SDK's `disallowedTools` array at `query()` time. |
137
- | Same-backend native MCP — Gemini | Patterns are folded into `generateAdminPolicy`'s TOML deny rules (priority 1000). |
138
- | Same-backend native MCP — Codex | **Prose-only.** Codex bundles its connector apps into the binary; there is no per-tool deny config and the workspace-write sandbox does not match MCP tool calls. Skill prose lists the denied tools explicitly. Operators who require strict deny on Gmail / Calendar should pick a non-Codex DM backend or run those integrations through the proxy. |
144
+ | Cross-backend (`/api/integrations/:key/exec`) | Invoker filters the integration's `capabilityTools` through `deniedTools` before spawning the delegated backend so the task-mode planner can only pick from the allowed surface. A fully-denied surface short-circuits with `errorClass: "denied_tool"`; individual tool denials surface as the same error from the invoker's `resolveAllowedToolPatterns`. |
145
+ | Same-backend / native MCP — Claude | `collectSessionDeniedTools` merges the deny patterns into the SDK's `disallowedTools` array at `query()` time. Same code path covers both delegated same-backend and native — they share the in-session MCP surface. |
146
+ | Same-backend / native MCP — Gemini | Patterns are folded into `generateAdminPolicy`'s TOML deny rules (priority 1000). |
147
+ | Same-backend / native MCP — Codex | **Prose-only.** Codex bundles its connector apps into the binary; there is no per-tool deny config and the workspace-write sandbox does not match MCP tool calls. Skill prose lists the denied tools explicitly. Operators who require strict deny on Gmail / Calendar should pick a non-Codex DM backend or route those integrations through `delegated` cross-backend mode (which IS deny-enforced at `/exec`). |
139
148
 
140
149
  ## Recommended Starter Denylists
141
150
 
@@ -211,18 +220,26 @@ When the operator asks "what did you do yesterday?" / "have you sent
211
220
  anything from Gmail this week?" the agent calls:
212
221
 
213
222
  ```bash
214
- curl 'http://localhost:8321/api/agent/actions?since=2026-04-25T00:00:00Z&kind=delegated_proxy.invoke&limit=50'
223
+ curl 'http://localhost:8321/api/agent/actions?since=2026-04-25T00:00:00Z&kind=delegated_task.run&kind=delegated_task.tool_step&limit=50'
215
224
  ```
216
225
 
217
226
  and answers in conversation. The endpoint:
218
227
 
219
228
  - Lives at `Autonomous` tier — the agent reads only its own audit
220
229
  trail, no operator data.
221
- - Accepts `since`, `kind`, `limit` (default 50, max 200).
230
+ - Accepts `since`, `kind` (repeat for multiple values, e.g.
231
+ `?kind=a&kind=b`), `limit` (default 50, max 200).
222
232
  - Redacts values via the standard secret-redaction utility before
223
233
  serializing.
224
234
  - Returns rows from `agent_actions`, optionally joined with
225
- `mcp_tool_calls` when `kind=mcp` (same-backend native MCP).
235
+ `mcp_tool_calls` when `kind=mcp` (same-backend / native MCP).
236
+
237
+ Common `kind` values for the cross-backend proxy: `delegated_task.run`
238
+ (one row per `/exec` call), `delegated_task.exec` (the planner's
239
+ chosen tool), `delegated_task.tool_step` (each individual tool call
240
+ inside the task). The legacy `delegated_proxy.invoke` rows persist
241
+ from before 2026-05-01 — include them if the `since` window crosses
242
+ that date.
226
243
 
227
244
  This **replaces** the rejected daily-digest pattern. Reasons:
228
245
 
@@ -270,5 +287,5 @@ Approve still gates:
270
287
  Allow modes.
271
288
  - Integration Delegation Framework (design) — `docs/design/14-integration-delegation.md`
272
289
  §14.12, the deniedTools spec.
273
- - Delegated Mode v2 (design) — `DELEGATED-MODE-V2-DESIGN.md` §4.5,
290
+ - Delegated Mode v2 (design) — `docs/design/17-delegated-mode-v2.md` §4.5,
274
291
  the rationale for Notify-tier abolition + the starter denylist.
@@ -17,14 +17,16 @@ tags:
17
17
  - core
18
18
  - skills
19
19
  - safety
20
+ - knowledge
20
21
  status: stable
21
22
  ask_examples:
22
23
  - What skills does the agent have?
23
24
  - How do I add a new skill?
24
25
  - Why does the agent refuse to run a tool?
26
+ - How does skill self-optimization work?
25
27
  locale: en-US
26
28
  created: 2026-04-25
27
- updated: 2026-05-04
29
+ updated: 2026-05-15
28
30
  keywords:
29
31
  - SKILL.md
30
32
  - allowed-tools
@@ -33,11 +35,12 @@ keywords:
33
35
  - self-optimization
34
36
  - skill curation
35
37
  - overlays
38
+ - skill
39
+ - skills
36
40
  related:
37
41
  - concepts/safety-and-execution
38
42
  - concepts/process-keys
39
43
  - reference/skills
40
- - features/operations/skill-self-optimization
41
44
  ui_anchors:
42
45
  - /knowledge
43
46
  - /connections/mcp
@@ -69,7 +72,8 @@ visible to the model.
69
72
  - **SKILL.md**: the Markdown file that defines a single skill. Lives
70
73
  under `agent-assets/skills/<slug>/SKILL.md` in the repo and is
71
74
  materialized into each session workdir as `.claude/skills/<slug>/SKILL.md`
72
- (or the per-backend equivalent).
75
+ (Codex uses `.codex/skills/`, Gemini uses `.gemini/skills/`, OpenCode
76
+ reuses `.claude/skills/` per V2 of docs/design/appendices/opencode-backend.md).
73
77
  - **`allowed-tools`**: a YAML list in the skill's frontmatter naming
74
78
  tools and patterns the session may use. Patterns like
75
79
  `Bash(curl http://localhost:8321/api/context/*)` are the daemon's
@@ -110,8 +114,9 @@ scoped toolset (`Bash(curl http://localhost:8321/api/skill-curation/*)`,
110
114
  drift signals than the previous overlay generated, the section is
111
115
  reverted and frozen for two cycles.
112
116
 
113
- See [Skill Self-Optimization](../features/operations/skill-self-optimization.md)
114
- for cadence, manual run, and the dashboard surface.
117
+ Curation cadence, manual-run trigger, and the per-skill exclusion
118
+ list are surfaced at **Settings Self-learning**
119
+ (`/settings/self-learning`).
115
120
 
116
121
  ## Where You See It in the Dashboard
117
122
 
@@ -131,5 +136,5 @@ for cadence, manual run, and the dashboard surface.
131
136
  `allowed-tools` is too permissive.
132
137
  - [Process Keys](process-keys.md) — the dispatch identity that picks
133
138
  which skill manifest to load.
134
- - [Skill Self-Optimization](../features/operations/skill-self-optimization.md) —
135
- how overlays are generated and applied.
139
+ - [Skills (Reference)](../reference/skills.md) — index of every
140
+ built-in skill.
@@ -17,7 +17,7 @@ summary: |
17
17
  when the integration runs in direct mode.
18
18
  section: integrations
19
19
  tags:
20
- - integration
20
+ - integrations
21
21
  - calendar
22
22
  - core
23
23
  status: stable
@@ -14,9 +14,9 @@ summary: |
14
14
  notification spam.
15
15
  section: integrations
16
16
  tags:
17
- - integration
17
+ - integrations
18
18
  - git
19
- - observation
19
+ - observations
20
20
  status: stable
21
21
  ask_examples:
22
22
  - How do I add a git repo to watch?
@@ -15,9 +15,9 @@ summary: |
15
15
  security alerts, assignments) become direct DMs.
16
16
  section: integrations
17
17
  tags:
18
- - integration
18
+ - integrations
19
19
  - github
20
- - observation
20
+ - observations
21
21
  status: stable
22
22
  ask_examples:
23
23
  - How do I connect GitHub?
@@ -26,6 +26,13 @@ ask_examples:
26
26
  locale: en-US
27
27
  created: 2026-04-25
28
28
  updated: 2026-04-28
29
+ keywords:
30
+ - github
31
+ - issue
32
+ - pull request
33
+ - PR review
34
+ - workflow run
35
+ - security alert
29
36
  related:
30
37
  - features/integrations/git
31
38
  - concepts/observations
@@ -17,7 +17,7 @@ summary: |
17
17
  transport, not a separately exposed provider kind.)
18
18
  section: integrations
19
19
  tags:
20
- - integration
20
+ - integrations
21
21
  - mail
22
22
  - core
23
23
  status: stable
@@ -12,9 +12,9 @@ summary: |
12
12
  Changes record observations consumed by the hourly check.
13
13
  section: integrations
14
14
  tags:
15
- - integration
15
+ - integrations
16
16
  - knowledge
17
- - observation
17
+ - observations
18
18
  status: stable
19
19
  ask_examples:
20
20
  - How do I connect Notion?
@@ -22,6 +22,12 @@ ask_examples:
22
22
  locale: en-US
23
23
  created: 2026-04-25
24
24
  updated: 2026-04-25
25
+ keywords:
26
+ - notion
27
+ - page
28
+ - database
29
+ - notion observer
30
+ - notion poller
25
31
  related:
26
32
  - features/integrations/obsidian
27
33
  - features/routines/hourly-check
@@ -46,23 +52,45 @@ records observations on change.
46
52
 
47
53
  ## When It Runs / How It Is Triggered
48
54
 
49
- Continuous polling.
55
+ Continuous polling in `direct` mode. In `delegated` / `native` / `disabled`
56
+ modes the poller does not run — see Integration Modes below.
57
+
58
+ ## Integration Modes
59
+
60
+ Notion supports all four integration modes (`direct` / `delegated` /
61
+ `native` / `disabled`), selected from **Connections → Knowledge**.
62
+
63
+ - **`direct`** — the daemon polls Notion itself, records change
64
+ observations, and the hourly check consumes them.
65
+ - **`delegated`** — a delegated-sync worker runs on opt-in cadences;
66
+ observations are recorded the same way but on a different
67
+ schedule (see [Delegated Mode](../../concepts/delegated-mode.md)).
68
+ - **`native`** — the main backend reaches Notion through its own MCP
69
+ connector on demand; the daemon does no polling. Observations
70
+ flow in only when the main backend POSTs them in-turn via
71
+ `/api/observations`. Available with Claude (`mcp__notion__*`).
72
+ - **`disabled`** — silence; no observations, no daemon access.
73
+
74
+ Switching modes requires the integration flip-lock probe to pass
75
+ (connector reachable, capabilities reported). See `POST /api/integrations/notion/probe`.
50
76
 
51
77
  ## Where in the Dashboard
52
78
 
53
- - **Connections → Knowledge** holds the integration token and target
54
- databases.
79
+ - **Connections → Knowledge** holds the integration token, target
80
+ databases, and the mode picker.
55
81
 
56
82
  ## Configuration
57
83
 
58
84
  | Setting | Default | Notes |
59
85
  |---|---|---|
60
- | `notionPollIntervalSeconds` | 300 | Polling interval. |
86
+ | `notionPollIntervalSeconds` | 300 | Polling interval (direct mode only). |
61
87
 
62
88
  ## When Something Goes Wrong
63
89
 
64
90
  - Notion's API rate-limits aggressively at high poll frequency. Stay
65
91
  ≥ 300 seconds.
92
+ - "No observations" in `native` mode is expected — observations flow
93
+ only when the main backend POSTs them during a session.
66
94
 
67
95
  ## Related
68
96
 
@@ -13,9 +13,9 @@ summary: |
13
13
  notes on demand.
14
14
  section: integrations
15
15
  tags:
16
- - integration
16
+ - integrations
17
17
  - knowledge
18
- - observation
18
+ - observations
19
19
  status: stable
20
20
  ask_examples:
21
21
  - How do I connect my Obsidian vault?
@@ -24,6 +24,11 @@ ask_examples:
24
24
  locale: en-US
25
25
  created: 2026-04-25
26
26
  updated: 2026-04-25
27
+ keywords:
28
+ - obsidian
29
+ - vault
30
+ - vault watcher
31
+ - obsidian observer
27
32
  related:
28
33
  - features/integrations/notion
29
34
  - features/routines/hourly-check
@@ -27,7 +27,7 @@ tags:
27
27
  - git
28
28
  - github
29
29
  - automation
30
- - observation
30
+ - observations
31
31
  - architecture
32
32
  status: stable
33
33
  ask_examples:
@@ -46,7 +46,7 @@ ask_examples:
46
46
  - How much does one Architecture refresh cost?
47
47
  locale: en-US
48
48
  created: 2026-05-05
49
- updated: 2026-05-07
49
+ updated: 2026-05-17
50
50
  keywords:
51
51
  - my life
52
52
  - git
@@ -63,7 +63,6 @@ related:
63
63
  - features/integrations/git
64
64
  - features/integrations/github
65
65
  - features/routines/hourly-check
66
- - guides/refresh-repository-architecture
67
66
  - concepts/observations
68
67
  ui_anchors:
69
68
  - /git
@@ -137,8 +136,8 @@ a Sonnet-class agent that reads the actual code.
137
136
  re-copies the source README into the slug directory before queueing
138
137
  the agent run, so the mirror stays in sync with what the agent
139
138
  actually reads.
140
- - **Never automatically** — there is no weekly/monthly cron that
141
- refreshes Architecture. This is by design: each refresh costs one
139
+ - **Never automatically** — there is no recurring cron that refreshes
140
+ Architecture. This is by design: each refresh costs one
142
141
  Sonnet session, and the analysis is durable across daily journal
143
142
  appends. If you want a recurring refresh, click the button on
144
143
  whatever cadence makes sense for the repo (after a big refactor,
@@ -314,8 +313,6 @@ repository has a `localPath`:
314
313
 
315
314
  ## Related
316
315
 
317
- - [Refresh repository architecture](../../guides/refresh-repository-architecture.md)
318
- — focused walkthrough of the Refresh architecture button.
319
316
  - [Git integration](../integrations/git.md) — the underlying observer
320
317
  contract and `gitPollIntervalSeconds` semantics.
321
318
  - [GitHub integration](../integrations/github.md) — remote-side data
@@ -3,6 +3,11 @@ schema_version: 1
3
3
  slug: features/lifestyle/receipts
4
4
  title: Receipts
5
5
  id: receipts
6
+ aliases:
7
+ - receipts
8
+ - invoices
9
+ - expenses
10
+ - receipt files
6
11
  category: features
7
12
  summary: |
8
13
  A SQLite-backed log of receipt and invoice attachments the Gmail
@@ -12,6 +17,7 @@ section: lifestyle
12
17
  tags:
13
18
  - lifestyle
14
19
  - receipts
20
+ - mail
15
21
  status: stable
16
22
  ask_examples:
17
23
  - Where are my receipts stored?
@@ -19,7 +25,14 @@ ask_examples:
19
25
  - What does the receipts table track?
20
26
  locale: en-US
21
27
  created: 2026-04-25
22
- updated: 2026-04-26
28
+ updated: 2026-05-17
29
+ keywords:
30
+ - receipt
31
+ - invoice
32
+ - expense
33
+ - attachment
34
+ - PDF
35
+ - gmail receipts
23
36
  related:
24
37
  - features/lifestyle/reading
25
38
  - features/lifestyle/travel-bookings
@@ -56,7 +69,9 @@ the SQLite row plus the optional Obsidian copy.
56
69
 
57
70
  There is no dedicated tab today. Receipts surface inline when you ask
58
71
  for them in chat (e.g. "what receipts haven't I saved yet?"). The
59
- underlying API is documented in `agent-assets/skills/receipts/SKILL.md`.
72
+ underlying API is documented in
73
+ `agent-assets/skills/gmail-lifestyle/references/receipts-api.md`
74
+ (loaded by the `gmail-lifestyle` skill).
60
75
 
61
76
  ## Configuration
62
77
 
@@ -3,6 +3,12 @@ schema_version: 1
3
3
  slug: features/lifestyle/travel-bookings
4
4
  title: Travel Bookings
5
5
  id: travel-bookings
6
+ aliases:
7
+ - travel
8
+ - bookings
9
+ - flights
10
+ - hotels
11
+ - trains
6
12
  category: features
7
13
  summary: |
8
14
  A lightweight log of trips, flights, hotels, and confirmation
@@ -11,6 +17,7 @@ section: lifestyle
11
17
  tags:
12
18
  - lifestyle
13
19
  - travel
20
+ - mail
14
21
  status: stable
15
22
  ask_examples:
16
23
  - How do I log a flight?
@@ -18,6 +25,14 @@ ask_examples:
18
25
  locale: en-US
19
26
  created: 2026-04-25
20
27
  updated: 2026-04-25
28
+ keywords:
29
+ - flight
30
+ - hotel
31
+ - booking
32
+ - trip
33
+ - itinerary
34
+ - trains
35
+ - restaurants
21
36
  related:
22
37
  - features/lifestyle/travel-time
23
38
  ---
@@ -15,7 +15,7 @@ section: lifestyle
15
15
  tags:
16
16
  - lifestyle
17
17
  - travel
18
- - skill
18
+ - skills
19
19
  status: stable
20
20
  ask_examples:
21
21
  - How long will it take me to get to the airport?
@@ -23,6 +23,12 @@ ask_examples:
23
23
  locale: en-US
24
24
  created: 2026-04-25
25
25
  updated: 2026-04-25
26
+ keywords:
27
+ - travel time
28
+ - departure time
29
+ - google maps
30
+ - commute
31
+ - ETA
26
32
  related:
27
33
  - features/lifestyle/travel-bookings
28
34
  - features/operations/schedule-approaching
@@ -60,7 +60,7 @@ first person. Each entry has:
60
60
 
61
61
  Unlike Activity, the journal is opinion-shaped. The evening review
62
62
  adds the day's reflections; the weekly retro reads them back to
63
- look for patterns; the monthly retro distills them into trend notes.
63
+ look for patterns.
64
64
 
65
65
  ## When It Runs / How It Is Triggered
66
66
 
@@ -82,7 +82,7 @@ look for patterns; the monthly retro distills them into trend notes.
82
82
 
83
83
  - **Connections → Journal** is the read view of the file.
84
84
  - **Settings → Journal** controls retention and which routines
85
- contribute (currently always-on for evening / weekly / monthly).
85
+ contribute (currently always-on for evening / weekly).
86
86
 
87
87
  ## Configuration
88
88
 
@@ -15,6 +15,7 @@ section: memory-files
15
15
  tags:
16
16
  - memory
17
17
  - projects
18
+ - core
18
19
  status: stable
19
20
  ask_examples:
20
21
  - Where do I find the per-project files?
@@ -22,6 +23,11 @@ ask_examples:
22
23
  locale: en-US
23
24
  created: 2026-04-25
24
25
  updated: 2026-04-25
26
+ keywords:
27
+ - projects.md
28
+ - project file
29
+ - projects/<slug>.md
30
+ - active project
25
31
  related:
26
32
  - features/memory-files/roadmap
27
33
  context_files:
@@ -25,6 +25,11 @@ ask_examples:
25
25
  locale: en-US
26
26
  created: 2026-04-25
27
27
  updated: 2026-04-25
28
+ keywords:
29
+ - roadmap.md
30
+ - roadmap
31
+ - long-term goals
32
+ - preparation timeline
28
33
  related:
29
34
  - features/routines/morning-routine
30
35
  - features/memory-files/projects
@@ -15,6 +15,7 @@ section: memory-files
15
15
  tags:
16
16
  - core
17
17
  - memory
18
+ - today
18
19
  status: stable
19
20
  ask_examples:
20
21
  - What is in today.md?
@@ -26,6 +26,12 @@ ask_examples:
26
26
  locale: en-US
27
27
  created: 2026-04-25
28
28
  updated: 2026-04-25
29
+ keywords:
30
+ - user profile
31
+ - user/profile.md
32
+ - user slices
33
+ - people
34
+ - expertise
29
35
  related:
30
36
  - getting-started/04-first-day
31
37
  - concepts/memory-model
@@ -68,14 +68,24 @@ Pair your messaging app first; see
68
68
  | Command | What it does |
69
69
  |---|---|
70
70
  | `!help` | Lists every command currently registered — built-ins plus any custom user commands. |
71
- | `!stop` | Pauses cron-driven autonomous work (hourly check, morning / evening / weekly / monthly routines, scheduled tasks). In-flight runs are **not** aborted. |
71
+ | `!stop` | Pauses cron-driven autonomous work (hourly check, morning / evening / weekly routines, scheduled tasks). In-flight runs are **not** aborted. |
72
72
  | `!start` | Resumes autonomous work after `!stop`. |
73
+ | `!close` | Closes the active DM session for the current routing tuple so the next DM starts a fresh conversation. Returns `null` if no session was open. |
73
74
  | `!cost` | Last-7-day spend across all backends. |
74
- | `!cost claude` / `!cost codex` / `!cost gemini` | Spend for a single backend. |
75
+ | `!cost claude` / `!cost codex` / `!cost gemini` / `!cost opencode` | Spend for a single backend (one row per registered backend). |
75
76
  | `!report` | Recent agent failures (last 7 days, top groups, most recent sample). |
76
-
77
- Custom commands added at `/settings/commands` show up in `!help`
78
- automatically no restart needed.
77
+ | `!wiki` | Wiki status snapshot (workspaces, recent ingests / compiles, queue depth). |
78
+ | `!ingest <url>` | Ingest a URL into the wiki raw layer. Enqueues `wiki.ingest_url`. |
79
+ | `!compile [full]` | Run wiki compile (raw → wiki synthesis). `full` mode crosses the per-workspace cost threshold and routes through the dashboard approval queue. |
80
+ | `!ask <question>` | Q&A against the compiled wiki. Reply lands back on the same channel. |
81
+ | `!lint` | Wiki health pass — writes `90_meta/health/<date>.md`. |
82
+ | `!trace <idea>` | Chronological evolution of an idea across raw / wiki / outputs layers. |
83
+ | `!connect <A> <B>` | Bridge two domains; writes `30_outputs/<date>-connect-<slug>.md`. |
84
+
85
+ Wiki commands accept an optional `@<workspace>` suffix
86
+ (e.g. `!compile @work`) to target a specific workspace when multiple
87
+ are configured. Custom commands added at `/settings/commands` show
88
+ up in `!help` automatically — no restart needed.
79
89
 
80
90
  ## How They Look
81
91
 
@@ -127,8 +137,8 @@ enabled user commands at `/settings/commands`.
127
137
  opened. Every invocation writes one `bang_command` row to
128
138
  `agent_actions` for the activity log.
129
139
  - **While paused**, any DM (bang or not) replies with the paused
130
- notice; only `!start`, `!cost`, `!report`, and `!help` continue to
131
- run.
140
+ notice; only `!start`, `!cost`, `!report`, `!help`, and `!close`
141
+ continue to run.
132
142
  - **Replies land where the command did** — same platform, same
133
143
  channel, same thread.
134
144
 
@@ -149,9 +159,9 @@ window version.
149
159
  - **The reply lists fewer commands than you expect.** `!help` only
150
160
  lists *enabled* user commands. Toggle the row on at
151
161
  `/settings/commands`.
152
- - **`!cost foo` says "unknown command".** Only `claude`, `codex`,
153
- `gemini` are valid backend arguments today. Plain `!cost` (no
154
- argument) covers all three.
162
+ - **`!cost foo` says "unknown command".** Valid backend arguments
163
+ match the registered backends `claude`, `codex`, `gemini`,
164
+ `opencode`. Plain `!cost` (no argument) covers all of them.
155
165
 
156
166
  ## Related
157
167
 
@@ -3,6 +3,10 @@ schema_version: 1
3
3
  slug: features/messaging/discord
4
4
  title: Discord
5
5
  id: discord
6
+ aliases:
7
+ - discord bot
8
+ - discord adapter
9
+ - discord pairing
6
10
  category: features
7
11
  summary: |
8
12
  Pair Discord by creating a bot in the developer portal, pasting the
@@ -11,13 +15,20 @@ summary: |
11
15
  section: messaging
12
16
  tags:
13
17
  - messaging
14
- - integration
18
+ - integrations
19
+ - discord
15
20
  status: stable
16
21
  ask_examples:
17
22
  - How do I pair Discord?
18
23
  locale: en-US
19
24
  created: 2026-04-25
20
25
  updated: 2026-04-25
26
+ keywords:
27
+ - discord
28
+ - bot token
29
+ - DM
30
+ - owner channel
31
+ - messaging adapter
21
32
  related:
22
33
  - features/messaging/overview
23
34
  - features/messaging/pairing-and-magic-phrase
@@ -18,6 +18,7 @@ section: messaging
18
18
  tags:
19
19
  - core
20
20
  - messaging
21
+ - integrations
21
22
  status: stable
22
23
  ask_examples:
23
24
  - How do I pair my phone with the agent?
@@ -43,7 +44,6 @@ related:
43
44
  - features/messaging/discord
44
45
  - features/messaging/whatsapp
45
46
  - features/messaging/dashboard-chat
46
- - features/messaging/voice-attachments
47
47
  - features/messaging/bang-commands
48
48
  - features/operations/notifications
49
49
  - features/operations/quiet-hours
@@ -65,14 +65,19 @@ notification fires.
65
65
  ## What It Does
66
66
 
67
67
  - **Reactive DMs**: the agent answers every direct message you send.
68
- - **Mentions**: in shared channels, @-mentioning the agent answers
69
- the same way (group chat is filtered out by design — DMs only).
68
+ - **@-mentions**: in Slack, @-mentioning the agent inside a shared
69
+ channel routes to `message.mention` and is answered the same way
70
+ as a DM. Telegram, Discord, and WhatsApp drop all non-DM traffic
71
+ (no group support); multi-user DMs (Slack `mpim`) are also
72
+ filtered out — Aitne is single-owner by design.
70
73
  - **Outbound notifications**: routines and observations fire alerts
71
74
  back through the same channel.
72
75
  - **Voice attachments**: when the platform attaches audio (Telegram
73
76
  voice notes, WhatsApp voice messages, etc.), the daemon transcribes
74
- it locally with Whisper before handing the turn to the agent. See
75
- [Voice Attachments](voice-attachments.md).
77
+ it locally with Whisper before handing the turn to the agent.
78
+ Transcription runs entirely on your machine — no audio is shipped
79
+ to a cloud API. Configurable via the `PA_VOICE_TRANSCRIPTION_*`
80
+ env vars (model, language, duration cap).
76
81
  - **Magic-phrase pairing**: the operator types a one-time phrase to
77
82
  bind their account to the agent (anti-impersonation).
78
83
 
@@ -117,7 +122,5 @@ adapter and the dispatcher both check).
117
122
  - [Pairing & Magic Phrase](pairing-and-magic-phrase.md)
118
123
  - [Bang Commands](bang-commands.md) — `!stop` / `!start` / `!cost` /
119
124
  `!report` / `!help` for mobile-first daemon control.
120
- - [Voice Attachments](voice-attachments.md) — local Whisper
121
- transcription for inbound audio.
122
125
  - [Dashboard Chat](dashboard-chat.md) — the in-browser equivalent.
123
126
  - [Notifications](../operations/notifications.md)