@aitne-sh/aitne 0.1.8 → 0.1.9

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 (276) hide show
  1. package/README.md +218 -161
  2. package/agent-assets/agent-profiles/_safety.md +3 -3
  3. package/agent-assets/agent-profiles/browser-task.md +108 -0
  4. package/agent-assets/agent-profiles/conversational.md +3 -3
  5. package/agent-assets/agent-profiles/profile-importer.md +2 -2
  6. package/agent-assets/agent-profiles/routine-fetch-window.md +30 -19
  7. package/agent-assets/agents/context-index-reconcile/agent.md +52 -0
  8. package/agent-assets/agents/evening-review/agent.md +53 -0
  9. package/agent-assets/agents/hourly-check/agent.md +62 -0
  10. package/agent-assets/agents/monthly-review/agent.md +55 -0
  11. package/agent-assets/agents/morning-routine/agent.md +78 -0
  12. package/agent-assets/agents/roadmap-maintenance/agent.md +52 -0
  13. package/agent-assets/agents/skill-curation/agent.md +52 -0
  14. package/agent-assets/agents/user-profile-sweep-evening/agent.md +48 -0
  15. package/agent-assets/agents/user-profile-sweep-morning/agent.md +53 -0
  16. package/agent-assets/agents/weekly-review/agent.md +51 -0
  17. package/agent-assets/docs/concepts/agent-day.md +13 -11
  18. package/agent-assets/docs/concepts/auth-health.md +47 -10
  19. package/agent-assets/docs/concepts/backends-and-tiers.md +66 -31
  20. package/agent-assets/docs/concepts/costs-and-quotas.md +50 -15
  21. package/agent-assets/docs/concepts/delegated-mode.md +52 -13
  22. package/agent-assets/docs/concepts/memory-model.md +72 -32
  23. package/agent-assets/docs/concepts/observations.md +49 -11
  24. package/agent-assets/docs/concepts/process-keys.md +56 -22
  25. package/agent-assets/docs/concepts/routines.md +60 -33
  26. package/agent-assets/docs/concepts/safety-and-execution.md +50 -21
  27. package/agent-assets/docs/concepts/safety-model.md +42 -34
  28. package/agent-assets/docs/concepts/skills.md +33 -17
  29. package/agent-assets/docs/features/integrations/browser-history.md +195 -0
  30. package/agent-assets/docs/features/integrations/calendar.md +39 -29
  31. package/agent-assets/docs/features/integrations/git.md +18 -7
  32. package/agent-assets/docs/features/integrations/github.md +84 -33
  33. package/agent-assets/docs/features/integrations/mail.md +59 -16
  34. package/agent-assets/docs/features/integrations/notion.md +18 -6
  35. package/agent-assets/docs/features/integrations/obsidian.md +28 -5
  36. package/agent-assets/docs/features/lifestyle/git.md +42 -38
  37. package/agent-assets/docs/features/lifestyle/reading.md +50 -22
  38. package/agent-assets/docs/features/lifestyle/receipts.md +51 -21
  39. package/agent-assets/docs/features/lifestyle/travel-bookings.md +76 -14
  40. package/agent-assets/docs/features/memory-files/agent-journal.md +111 -50
  41. package/agent-assets/docs/features/memory-files/projects.md +71 -17
  42. package/agent-assets/docs/features/memory-files/roadmap.md +50 -10
  43. package/agent-assets/docs/features/memory-files/schedule.md +113 -70
  44. package/agent-assets/docs/features/memory-files/today.md +46 -21
  45. package/agent-assets/docs/features/memory-files/user-profile.md +63 -33
  46. package/agent-assets/docs/features/messaging/bang-commands.md +113 -36
  47. package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
  48. package/agent-assets/docs/features/messaging/discord.md +35 -4
  49. package/agent-assets/docs/features/messaging/overview.md +37 -19
  50. package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
  51. package/agent-assets/docs/features/messaging/slack.md +67 -14
  52. package/agent-assets/docs/features/messaging/telegram.md +18 -5
  53. package/agent-assets/docs/features/messaging/whatsapp.md +71 -17
  54. package/agent-assets/docs/features/operations/activity-and-conversations.md +44 -15
  55. package/agent-assets/docs/features/operations/approvals.md +48 -16
  56. package/agent-assets/docs/features/operations/backend-routing.md +68 -16
  57. package/agent-assets/docs/features/operations/cost-tracking.md +84 -17
  58. package/agent-assets/docs/features/operations/managed-chromium.md +221 -0
  59. package/agent-assets/docs/features/operations/notifications.md +52 -11
  60. package/agent-assets/docs/features/operations/quiet-hours.md +63 -40
  61. package/agent-assets/docs/features/operations/schedule-approaching.md +54 -24
  62. package/agent-assets/docs/features/routines/custom-routines.md +88 -20
  63. package/agent-assets/docs/features/routines/evening-review.md +74 -21
  64. package/agent-assets/docs/features/routines/hourly-check.md +149 -29
  65. package/agent-assets/docs/features/routines/morning-routine.md +53 -35
  66. package/agent-assets/docs/features/routines/weekly-review.md +40 -21
  67. package/agent-assets/docs/features/wiki/commands.md +26 -16
  68. package/agent-assets/docs/features/wiki/cost-and-approval.md +240 -0
  69. package/agent-assets/docs/features/wiki/dashboard.md +255 -0
  70. package/agent-assets/docs/features/wiki/overview.md +68 -10
  71. package/agent-assets/docs/features/wiki/search.md +248 -0
  72. package/agent-assets/docs/features/wiki/workspaces.md +254 -0
  73. package/agent-assets/docs/getting-started/01-what-is-this.md +34 -23
  74. package/agent-assets/docs/getting-started/02-first-steps.md +13 -8
  75. package/agent-assets/docs/getting-started/03-what-can-this-do.md +25 -14
  76. package/agent-assets/docs/getting-started/04-first-day.md +38 -20
  77. package/agent-assets/docs/glossary.md +235 -24
  78. package/agent-assets/docs/guides/add-a-custom-routine.md +63 -23
  79. package/agent-assets/docs/guides/backup-and-restore.md +80 -16
  80. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +56 -25
  81. package/agent-assets/docs/guides/build-your-wiki.md +22 -9
  82. package/agent-assets/docs/guides/change-which-model-handles-x.md +64 -10
  83. package/agent-assets/docs/guides/connect-a-new-mail-account.md +64 -15
  84. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +28 -11
  85. package/agent-assets/docs/guides/import-knowledge-file.md +50 -40
  86. package/agent-assets/docs/guides/install-and-run.md +48 -19
  87. package/agent-assets/docs/guides/maintain-wiki-health.md +35 -10
  88. package/agent-assets/docs/guides/migrate-machines.md +74 -18
  89. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +111 -60
  90. package/agent-assets/docs/guides/pause-the-agent.md +65 -24
  91. package/agent-assets/docs/guides/reinstall-cleanly.md +88 -18
  92. package/agent-assets/docs/guides/setup-wizard.md +113 -54
  93. package/agent-assets/docs/guides/switch-default-backend.md +62 -16
  94. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +26 -10
  95. package/agent-assets/docs/reference/api.md +143 -32
  96. package/agent-assets/docs/reference/cli-commands.md +38 -17
  97. package/agent-assets/docs/reference/config.md +224 -49
  98. package/agent-assets/docs/reference/disallowed-tools.md +29 -10
  99. package/agent-assets/docs/reference/keyboard-shortcuts.md +34 -10
  100. package/agent-assets/docs/reference/knowledge-layout.md +620 -0
  101. package/agent-assets/docs/reference/process-keys.md +61 -5
  102. package/agent-assets/docs/reference/skills.md +38 -12
  103. package/agent-assets/docs/troubleshooting/auth-failed.md +48 -19
  104. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +90 -28
  105. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +86 -22
  106. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +68 -24
  107. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +80 -20
  108. package/agent-assets/docs/troubleshooting/observation-not-detected.md +73 -21
  109. package/agent-assets/docs/troubleshooting/quota-exhausted.md +29 -5
  110. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +126 -54
  111. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +29 -12
  112. package/agent-assets/optimizer-skills/drift-analysis/SKILL.md +1 -1
  113. package/agent-assets/optimizer-skills/knowledge-map/SKILL.md +1 -1
  114. package/agent-assets/optimizer-skills/skill-curation/SKILL.md +1 -1
  115. package/agent-assets/sandbox/linux/aitne-chromium.apparmor +91 -0
  116. package/agent-assets/sandbox/macos/aitne-chromium.sb +156 -0
  117. package/agent-assets/skills/agent-actions/SKILL.md +2 -2
  118. package/agent-assets/skills/agent-create/SKILL.md +149 -0
  119. package/agent-assets/skills/attach/SKILL.md +2 -2
  120. package/agent-assets/skills/browser-history/SKILL.md +198 -0
  121. package/agent-assets/skills/browser-history-respond/SKILL.md +106 -0
  122. package/agent-assets/skills/browser-task/SKILL.md +169 -0
  123. package/agent-assets/skills/context/SKILL.md +12 -12
  124. package/agent-assets/skills/context/curation.json +2 -2
  125. package/agent-assets/skills/context/references/api.md +43 -31
  126. package/agent-assets/skills/context/references/required-frontmatter.md +3 -3
  127. package/agent-assets/skills/context/references/snapshot-files.md +6 -6
  128. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +3 -3
  129. package/agent-assets/skills/docs-search/SKILL.md +4 -3
  130. package/agent-assets/skills/external-services/SKILL.delegated.claude.md +11 -21
  131. package/agent-assets/skills/external-services/SKILL.delegated.codex.md +11 -21
  132. package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +11 -21
  133. package/agent-assets/skills/external-services/SKILL.md +3 -3
  134. package/agent-assets/skills/external-services/SKILL.native.claude.md +5 -5
  135. package/agent-assets/skills/external-services/SKILL.native.codex.md +7 -7
  136. package/agent-assets/skills/external-services/SKILL.native.gemini.md +4 -4
  137. package/agent-assets/skills/external-services/references/calendar-apple.md +2 -2
  138. package/agent-assets/skills/external-services/references/calendar-outlook.md +1 -1
  139. package/agent-assets/skills/external-services/references/obsidian.md +2 -2
  140. package/agent-assets/skills/gmail-lifestyle/SKILL.md +9 -82
  141. package/agent-assets/skills/mail/SKILL.delegated.claude.md +14 -5
  142. package/agent-assets/skills/mail/SKILL.delegated.codex.md +8 -4
  143. package/agent-assets/skills/mail/SKILL.delegated.gemini.md +8 -4
  144. package/agent-assets/skills/mail/references/api.md +4 -2
  145. package/agent-assets/skills/mail/references/providers.md +1 -1
  146. package/agent-assets/skills/managed-tasks/SKILL.md +9 -9
  147. package/agent-assets/skills/managed-tasks/references/errors.md +9 -6
  148. package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +1 -1
  149. package/agent-assets/skills/management-policy/SKILL.md +32 -31
  150. package/agent-assets/skills/management-policy/curation.json +1 -1
  151. package/agent-assets/skills/management-policy/references/policy-workflow.md +9 -9
  152. package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
  153. package/agent-assets/skills/notify/SKILL.md +4 -4
  154. package/agent-assets/skills/notify/references/priority.md +9 -4
  155. package/agent-assets/skills/notion/SKILL.delegated.claude.md +1 -1
  156. package/agent-assets/skills/notion/SKILL.delegated.codex.md +1 -1
  157. package/agent-assets/skills/notion/SKILL.delegated.gemini.md +1 -1
  158. package/agent-assets/skills/notion/SKILL.native.claude.md +10 -6
  159. package/agent-assets/skills/notion/SKILL.native.codex.md +9 -4
  160. package/agent-assets/skills/notion/SKILL.native.gemini.md +9 -4
  161. package/agent-assets/skills/observations/SKILL.md +24 -8
  162. package/agent-assets/skills/project-doc/SKILL.md +1 -1
  163. package/agent-assets/skills/project-doc/curation.json +3 -3
  164. package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +7 -4
  165. package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +3 -3
  166. package/agent-assets/skills/reading/SKILL.md +10 -0
  167. package/agent-assets/skills/reading/references/reading-taste.md +2 -2
  168. package/agent-assets/skills/roadmap/SKILL.md +5 -5
  169. package/agent-assets/skills/roadmap/curation.json +1 -1
  170. package/agent-assets/skills/roadmap/references/api.md +7 -7
  171. package/agent-assets/skills/roadmap/references/cross-check.md +15 -8
  172. package/agent-assets/skills/roadmap/references/migration.md +4 -4
  173. package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
  174. package/agent-assets/skills/schedule/SKILL.md +42 -34
  175. package/agent-assets/skills/schedule/references/batch.md +2 -2
  176. package/agent-assets/skills/schedule/references/errors.md +7 -4
  177. package/agent-assets/skills/schedule/references/model-selection.md +3 -3
  178. package/agent-assets/skills/schedule/references/recurrence-rule.md +1 -1
  179. package/agent-assets/skills/scheduled-managed-task/SKILL.md +46 -36
  180. package/agent-assets/skills/today/SKILL.md +9 -9
  181. package/agent-assets/skills/today/curation.json +3 -3
  182. package/agent-assets/skills/today/references/agent-plan-lifecycle.md +6 -5
  183. package/agent-assets/skills/today/seeds/section-shape.seed.json +1 -1
  184. package/agent-assets/skills/user-interview/SKILL.md +12 -9
  185. package/agent-assets/skills/user-interview/references/op-briefing.md +2 -2
  186. package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +8 -0
  187. package/agent-assets/skills/user-profile/SKILL.md +17 -17
  188. package/agent-assets/skills/user-profile/curation.json +2 -2
  189. package/agent-assets/skills/user-profile/references/character-preferences.md +2 -2
  190. package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
  191. package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +6 -6
  192. package/agent-assets/skills/wiki/wiki-compile/SKILL.md +4 -4
  193. package/agent-assets/system-prompts/routine-fetch-window.md +22 -12
  194. package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +4 -2
  195. package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +4 -2
  196. package/agent-assets/task-flows/_partials/capture-user-info.md +2 -2
  197. package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +1 -1
  198. package/agent-assets/task-flows/_partials/dm-intent.project.md +9 -9
  199. package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +3 -2
  200. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +10 -5
  201. package/agent-assets/task-flows/browser_task.md +84 -0
  202. package/agent-assets/task-flows/github.assigned.md +1 -1
  203. package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
  204. package/agent-assets/task-flows/github.workflow_run.failed.md +2 -2
  205. package/agent-assets/task-flows/knowledge.import.md +14 -14
  206. package/agent-assets/task-flows/message.received.dm.md +9 -4
  207. package/agent-assets/task-flows/message.received.dm_first.md +3 -3
  208. package/agent-assets/task-flows/routine.custom.md +3 -3
  209. package/agent-assets/task-flows/routine.evening_review.md +8 -8
  210. package/agent-assets/task-flows/routine.fetch_window.md +2 -2
  211. package/agent-assets/task-flows/routine.hourly_check.md +16 -12
  212. package/agent-assets/task-flows/routine.monthly_review.md +21 -21
  213. package/agent-assets/task-flows/routine.morning_routine_journal.md +119 -97
  214. package/agent-assets/task-flows/routine.morning_routine_today.md +43 -43
  215. package/agent-assets/task-flows/routine.research_cluster_update.md +35 -0
  216. package/agent-assets/task-flows/routine.research_dispatch.md +38 -0
  217. package/agent-assets/task-flows/routine.research_offer_dm.md +125 -0
  218. package/agent-assets/task-flows/routine.research_wiki_summary.md +53 -0
  219. package/agent-assets/task-flows/routine.roadmap_refresh.md +10 -10
  220. package/agent-assets/task-flows/routine.today_refresh.md +4 -4
  221. package/agent-assets/task-flows/routine.user_profile_sweep.md +10 -10
  222. package/agent-assets/task-flows/routine.weekly_review.md +93 -24
  223. package/agent-assets/task-flows/schedule.approaching.md +0 -1
  224. package/agent-assets/task-flows/scheduled.dm.md +5 -5
  225. package/agent-assets/task-flows/scheduled.task.md +4 -4
  226. package/agent-assets/task-flows/setup.initial.md +21 -21
  227. package/agent-assets/task-flows/setup.update.md +2 -2
  228. package/agent-assets/templates/README.md +27 -20
  229. package/agent-assets/templates/_index.md +42 -26
  230. package/agent-assets/templates/_manifest.json +34 -99
  231. package/agent-assets/templates/{user → identity}/_index.md +1 -1
  232. package/agent-assets/templates/{user → identity}/profile.md +2 -2
  233. package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +1 -1
  234. package/agent-assets/templates/{projects → plans/projects}/_active.base +1 -1
  235. package/agent-assets/templates/policies/_index.md +21 -0
  236. package/agent-assets/templates/{rules → policies}/journal-export.md +1 -1
  237. package/agent-assets/templates/{rules → policies}/journal-format.md +5 -5
  238. package/agent-assets/templates/{rules/policies → policies/management-captures}/_index.md +2 -2
  239. package/agent-assets/templates/{rules → policies}/management.md +3 -3
  240. package/agent-assets/templates/{rules → policies}/mcp.md +1 -1
  241. package/agent-assets/templates/{rules → policies}/redaction.md +1 -1
  242. package/agent-assets/templates/{routines → policies/routines}/_index.md +1 -1
  243. package/agent-assets/templates/{routines → policies/routines}/evening.md +2 -2
  244. package/agent-assets/templates/{routines → policies/routines}/hourly.md +1 -1
  245. package/agent-assets/templates/{routines → policies/routines}/monthly.md +2 -2
  246. package/bin/aitne.mjs +13 -4
  247. package/package.json +5 -4
  248. package/scripts/commands/doctor.mjs +14 -8
  249. package/scripts/commands/run-now.mjs +6 -21
  250. package/scripts/lib/ports.d.mts +27 -0
  251. package/scripts/lib/ports.mjs +36 -0
  252. package/scripts/lib/read-api-token.mjs +176 -0
  253. package/scripts/start.mjs +2 -1
  254. package/agent-assets/docs/features/lifestyle/travel-time.md +0 -58
  255. package/agent-assets/skills/gmail-lifestyle/references/travel-time-api.md +0 -59
  256. package/agent-assets/skills/schedule/references/recurring.md +0 -185
  257. package/agent-assets/templates/context-index.md +0 -42
  258. package/agent-assets/templates/rules/_index.md +0 -19
  259. /package/agent-assets/templates/{user → identity}/expertise.md +0 -0
  260. /package/agent-assets/templates/{user → identity}/goals.md +0 -0
  261. /package/agent-assets/templates/{user → identity}/people.md +0 -0
  262. /package/agent-assets/templates/{user → identity}/personal.md +0 -0
  263. /package/agent-assets/templates/{user → identity}/work.md +0 -0
  264. /package/agent-assets/templates/{agent/journal.md → journal/agent.md} +0 -0
  265. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/evening.md +0 -0
  266. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/hourly.md +0 -0
  267. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/monthly.md +0 -0
  268. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/morning.md +0 -0
  269. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/roadmap.md +0 -0
  270. /package/agent-assets/templates/{dossiers → knowledge/dossiers}/weekly.md +0 -0
  271. /package/agent-assets/templates/{projects → plans/projects}/_index.md +0 -0
  272. /package/agent-assets/templates/{roadmap.md → plans/roadmap.md} +0 -0
  273. /package/agent-assets/templates/{routines → policies/routines}/morning.md +0 -0
  274. /package/agent-assets/templates/{routines → policies/routines}/weekly.md +0 -0
  275. /package/agent-assets/templates/{agent → state}/profile-questions.md +0 -0
  276. /package/agent-assets/templates/{today.md → state/today.md} +0 -0
@@ -4,9 +4,9 @@ You are the user's personal agent. In every conversation, behave as a single, co
4
4
 
5
5
  ## Speak as one agent who already knows
6
6
 
7
- Phrase facts as your own memory. Say "you have a 2pm with Alice" — never "today.md says…", "according to your User Tasks…", "the calendar API returned…", "the schedule snapshot shows…", "your profile file lists…".
7
+ Phrase facts as your own memory. Say "you have a 2pm with Alice" — never "state/today.md says…", "according to your User Tasks…", "the calendar API returned…", "the schedule snapshot shows…", "your profile file lists…".
8
8
 
9
- Never name internal storage, sections, files, columns, mechanisms, routines, or internal handlers in user-visible text — in any language. Forbidden examples: `today.md`, `user/profile.md`, `roadmap.md`, `## Agent Plan`, `## Agent Notes`, `## Agent Log`, `## Handoff`, `User Tasks`, `User Schedule`, `Morning Routine`, `Evening Review`, `scheduled.task`, `scheduled.dm`, `dm_first`, `sub_flow`, `did-not-fire`, daemon endpoints, ProcessKey, table names. The same applies to natural-language paraphrases that still leak the structure ("your tasks list", "the plan I have stored").
9
+ Never name internal storage, sections, files, columns, mechanisms, routines, or internal handlers in user-visible text — in any language. Forbidden examples: `state/today.md`, `identity/profile.md`, `plans/roadmap.md`, `## Agent Plan`, `## Agent Notes`, `## Agent Log`, `## Handoff`, `User Tasks`, `User Schedule`, `Morning Routine`, `Evening Review`, `scheduled.task`, `scheduled.dm`, `dm_first`, `sub_flow`, `did-not-fire`, daemon endpoints, ProcessKey, table names. The same applies to natural-language paraphrases that still leak the structure ("your tasks list", "the plan I have stored").
10
10
 
11
11
  Never explain or apologize for the app's mechanics. The user is talking to *you*, not to a daemon, dispatcher, or backend.
12
12
 
@@ -30,7 +30,7 @@ This profile is used in two distinct modes. (1) `message.received.*` — the use
30
30
 
31
31
  - **Persistent style preferences** ("speak casually", "shorter please", "always English"): PATCH `/api/config/character` (read-before-write via `GET /api/config/character`; 1000-char cap). See the **user-profile** skill §"Tone / character preferences".
32
32
  - **Personal facts about the user**: route through the **user-profile** skill silently — do not announce the save.
33
- - **Future actions**: schedule through this daemon — `POST /api/recurring-schedules` for recurring, `POST /api/schedule/dm` or `POST /api/schedule` for one-shot. Never delegate to a cloud-hosted scheduled-agent feature your CLI may expose; those cannot reach `localhost:8321` and so cannot deliver via the user's chat platforms or use any integration registered here.
33
+ - **Future actions**: schedule through this daemon — recurring autonomous work → create an Agent (`POST /api/agents`, the `agent-create` skill); recurring scheduled DMs/briefings → `POST /api/recurring-schedules` (`dm_session`); one-shot `POST /api/schedule/dm` or `POST /api/schedule`. Never delegate to a cloud-hosted scheduled-agent feature your CLI may expose; those cannot reach `localhost:8321` and so cannot deliver via the user's chat platforms or use any integration registered here.
34
34
  - **File deliverables** (md / PDF / CSV / chart / image): send via the **attach** skill so the user sees them inline. Never paste a filesystem path and claim you produced a file unless you actually uploaded it via `POST /api/chat/outbound-attachments`.
35
35
  - **Fidelity**: describe only actions you actually executed. If a tool call returned an error, say it failed. Fabricating a successful outcome is a safety violation, not a convenience.
36
36
 
@@ -44,13 +44,13 @@ Identity-class fields (legal name, primary timezone, primary language, date of b
44
44
 
45
45
  ## Scope
46
46
 
47
- - You write to `user/*.md` only. Do not edit `rules/*.md`, `today.md`, `roadmap.md`, `agent/journal.md` (except the closing entry below), or anything outside `user/`.
47
+ - You write to `user/*.md` only. Do not edit `rules/*.md`, `state/today.md`, `plans/roadmap.md`, `journal/agent.md` (except the closing entry below), or anything outside `user/`.
48
48
  - You make no DMs, no schedule entries, no external API calls. The session is silent except for the file PATCHes and the closing journal entry.
49
49
  - You run once and exit. Do not loop, do not poll, do not schedule a follow-up.
50
50
 
51
51
  ## Closing journal entry
52
52
 
53
- After all PATCHes, append a single new top-level section to `agent/journal.md` using `mode: "append_to_file"` (the `agent/journal.md` convention is one `## ` block per entry). The exact `curl` idiom is shown in the task flow's Step 8 — embed the heading inside `content` with a leading `\n`, like:
53
+ After all PATCHes, append a single new top-level section to `journal/agent.md` using `mode: "append_to_file"` (the `journal/agent.md` convention is one `## ` block per entry). The exact `curl` idiom is shown in the task flow's Step 8 — embed the heading inside `content` with a leading `\n`, like:
54
54
 
55
55
  ```
56
56
  ## YYYY-MM-DD knowledge import (source=<source>, file=<filename>)
@@ -7,8 +7,10 @@ mechanical.
7
7
  ## Principles
8
8
  - **Fetch, don't think.** Read the `<acquisition-plan>` block in your prompt.
9
9
  It enumerates `(integration, mode, window, account?)` tuples. For each row,
10
- perform the matching fetch and POST results to `/api/observations/batch`
11
- in a **single** call per window (the contract is in the integration
10
+ perform the matching fetch and submit results in a **single** observations
11
+ call per window on a Claude session via the
12
+ `mcp__aitne-observations__submit_observations` MCP tool, on Codex/Gemini
13
+ via `POST /api/observations/batch` (the contract is in the integration
12
14
  partial below).
13
15
  - **Trust the routing the daemon resolved for you.** The plan already encodes
14
16
  the per-(integration, mode) path. Do not second-guess: do not probe MCP
@@ -20,13 +22,19 @@ mechanical.
20
22
  `/api/observations` after you return and populates `summary_text` /
21
23
  `novelty_score`. Do not summarize, rank, or filter — your output is the
22
24
  raw payload.
23
- - **Batch in one curl per window.** Each acquired window goes out as a
24
- single `POST /api/observations/batch` call with up to 200 observations
25
- in the `observations[]` array. Do NOT loop over items in a shell `for`,
26
- do NOT write a script under `/tmp/` and pipe / source / bash it, do NOT
27
- chain multiple `curl` invocations in one Bash call. Those shapes are
28
- blocked by the daemon's Bash hooks and burn pre-pass turns to no
29
- effect. One window one curl one JSON body with an array.
25
+ - **One submit per window.** Each acquired window goes out as a single
26
+ batch with up to 200 observations in the `observations[]` array. On a
27
+ Claude session, submit via the `mcp__aitne-observations__submit_observations`
28
+ MCP tool structured transport that never goes through the bash
29
+ preflight, so Unicode-bearing titles / subjects can't trip it; the curl
30
+ observations-write path is intentionally NOT in your allowlist and a
31
+ `curl -d @-` body would be denied and cascade to `budget-cap`. On
32
+ Codex/Gemini, submit via one `POST /api/observations/batch` curl. Do NOT
33
+ loop over items in a shell `for`, do NOT write a script under `/tmp/` and
34
+ pipe / source / bash it, do NOT chain multiple `curl` invocations in one
35
+ Bash call. Those shapes are blocked by the daemon's Bash hooks and burn
36
+ pre-pass turns to no effect. One window → one submit → one JSON body with
37
+ an array.
30
38
  - **Never write to context MD files.** today.md, weekly/, journal, schedule —
31
39
  all of that belongs to the parent routine session, not to you.
32
40
  - **Single JSON line on stdout.** When done, print exactly one JSON object
@@ -69,10 +77,14 @@ Outlook surface), record
69
77
  pre-pass — the parent routine continues with whatever observations the
70
78
  rest of the plan produced.
71
79
 
72
- ## Observation POST contract
80
+ ## Observation submit contract
73
81
 
74
- For every fetched window, POST a batched array to
75
- `/api/observations/batch` (one curl per window, up to 200 items per call):
82
+ For every fetched window, submit a batched array of observations — on a
83
+ Claude session via the `mcp__aitne-observations__submit_observations` MCP
84
+ tool (preferred — structured transport that bypasses the bash preflight),
85
+ on Codex/Gemini via `POST /api/observations/batch` — one submit per window,
86
+ up to 200 items per call. Both channels accept the same envelope below and
87
+ return the same result shape:
76
88
 
77
89
  ```json
78
90
  {
@@ -98,7 +110,7 @@ For every fetched window, POST a batched array to
98
110
  - `actor` on every element MUST be `"agent"`. The server rejects `"user"`.
99
111
  - Do NOT compute or supply a dedup hash; the server computes
100
112
  `contentHash` from `(source, payload)` and returns it per item.
101
- - The batch endpoint always returns `200` with envelope
113
+ - The submit call always returns the same envelope
102
114
  `{ "results": [{index, status, ref, source, contentHash?, id?, error?}, …],
103
115
  "fetched": N, "posted": N, "duplicates": N, "errors": N }`. Roll the
104
116
  envelope's `posted` / `duplicates` into your running totals; for each
@@ -120,8 +132,7 @@ For every fetched window, POST a batched array to
120
132
  - For a deletion, send `changeType: "deleted"` with a minimal payload
121
133
  (`{"kind":"…","providerId":"…","raw":{"deletedAt":"<iso>"}}`).
122
134
  - If the upstream call returns more than 200 items for a single window,
123
- split into multiple `POST /api/observations/batch` calls of at most
124
- 200 entries each.
135
+ split into multiple submit calls of at most 200 entries each.
125
136
 
126
137
  ## Boundaries
127
138
  - Do NOT call `/api/context/*` (write or read) — that surface belongs to
@@ -143,11 +154,11 @@ Print exactly one JSON line on stdout, then terminate:
143
154
 
144
155
  Field semantics:
145
156
  - `fetched` — total items returned by upstream APIs across all rows.
146
- - `posted` — sum of the batch endpoint's envelope-level `posted`
147
- counter across every `POST /api/observations/batch` call you make
157
+ - `posted` — sum of the submit envelope's `posted` counter across
158
+ every submit call you make
148
159
  (i.e. `results[*].status ∈ {"created","modified"}`).
149
- - `duplicates` — sum of the batch endpoint's envelope-level `duplicates`
150
- counter (i.e. `results[*].status == "duplicate"`).
160
+ - `duplicates` — sum of the submit envelope's `duplicates` counter
161
+ (i.e. `results[*].status == "duplicate"`).
151
162
  - `errors` — array of `{type, ...}` records. Common types:
152
163
  - `no-surface` — the row points at an in-session connector
153
164
  that isn't bound on this backend.
@@ -0,0 +1,52 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: context-index-reconcile
4
+ name: Context Index Reconcile
5
+ description: "Mechanical (no-LLM) context-vault index reconciliation shortly before the day boundary, ahead of the morning routine."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, daily, index, no-llm]
10
+
11
+ # ── Schedule ─────────────────────────────────────────────────────────────────
12
+ # `{dayBoundaryHour-1}` resolves to the hour before the day boundary
13
+ # (default 4 → "45 3 * * *"), i.e. 15 min before Morning Routine at 04:00.
14
+ schedule:
15
+ kind: cron
16
+ expression: "45 {dayBoundaryHour-1} * * *"
17
+
18
+ # ── Backend / routing (no-LLM in-process pass — null routing key, §5.5.1) ───
19
+ backend:
20
+ process_key: null
21
+ tier: null
22
+ model: null
23
+
24
+ # ── Limits (no LLM turn — zero budget; `max_turns` must be ≥ 1 per schema) ──
25
+ limits:
26
+ max_turns: 1
27
+ max_budget_usd: 0
28
+ timeout_minutes: 5
29
+
30
+ # ── Expected outputs (the reconciler-merged vault index) ────────────────────
31
+ outputs:
32
+ - _index.md
33
+
34
+ success_criteria: []
35
+
36
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
37
+ stop_warning:
38
+ level: high
39
+ services_lost:
40
+ - "Context-vault index reconciliation before the morning routine"
41
+ dependent_agents:
42
+ - morning-routine
43
+ reactivation_hint: "Re-enable from /agents/context-index-reconcile. Runs 15 min before the day boundary."
44
+ ---
45
+
46
+ # Context Index Reconcile
47
+
48
+ No-LLM in-process pass — there is no task-flow. Implemented by the daemon
49
+ callback `onContextIndexReconcile` registered in `scheduler.ts`; it reconciles
50
+ the merged vault index (`_index.md`). It runs 15 min before the day boundary so
51
+ the index is fresh when the morning routine reads it, and defers if a retrying
52
+ morning routine holds the lock.
@@ -0,0 +1,53 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: evening-review
4
+ name: Evening Review
5
+ description: "Appends the evening reflection journal and reconciles the roadmap at end of day."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, daily, roadmap]
10
+
11
+ # ── Schedule ─────────────────────────────────────────────────────────────────
12
+ schedule:
13
+ kind: cron
14
+ expression: "0 18 * * *"
15
+
16
+ # ── Backend / routing (tier/model deferred to process_backend_config) ───────
17
+ backend:
18
+ process_key: routine.evening_review
19
+ tier: null
20
+ model: null
21
+
22
+ # ── Limits (per execution) ───────────────────────────────────────────────────
23
+ limits:
24
+ max_turns: 25
25
+ max_budget_usd: 0.50
26
+ timeout_minutes: 12
27
+
28
+ # ── Expected outputs ─────────────────────────────────────────────────────────
29
+ # Steps 1-3 are internal bookkeeping that Morning Routine depends on and emit
30
+ # no user-facing output by default; the deterministic vault write is the
31
+ # roadmap reconciliation. None of these are wholesale-regenerated `{date}`
32
+ # files, so no post-execute criterion is asserted in v1.
33
+ outputs:
34
+ - plans/roadmap.md
35
+ - "state/today.md (tomorrow preparation)"
36
+
37
+ success_criteria: []
38
+
39
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
40
+ stop_warning:
41
+ level: high
42
+ services_lost:
43
+ - "Evening reflection journal append"
44
+ - "End-of-day roadmap reconciliation"
45
+ dependent_agents:
46
+ - weekly-review
47
+ reactivation_hint: "Re-enable from /agents/evening-review. Resumes on the next 18:00 firing."
48
+ ---
49
+
50
+ # Evening Review
51
+
52
+ Built-in routine — the execution prompt lives in the task-flow, not here.
53
+ See `agent-assets/task-flows/routine.evening_review.md`.
@@ -0,0 +1,62 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: hourly-check
4
+ name: Hourly Check
5
+ description: "Triages pending observations and proactively surfaces new mail / calendar / git / notion activity each interval within active hours."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, hourly, observations, proactive]
10
+
11
+ # ── Schedule ─────────────────────────────────────────────────────────────────
12
+ # LOADER-IGNORED PLACEHOLDER. The real cadence is a runtime window built by
13
+ # `buildHourlyCronExpr(intervalMinutes, activeStart, activeEnd)` — the registry
14
+ # (§5.5) sets `cronExpression: null` and is authoritative, and the loader's
15
+ # drift check is a no-op for this slug. The literal below is only the
16
+ # self-documenting default window (interval 60min, active 04:00-24:00) needed to
17
+ # satisfy the schema's `cron → expression` refinement; the scheduler does NOT
18
+ # fire from it.
19
+ schedule:
20
+ kind: cron
21
+ expression: "0 4-23 * * *"
22
+
23
+ # ── Backend / routing (tier/model deferred to process_backend_config) ───────
24
+ backend:
25
+ process_key: routine.hourly_check
26
+ tier: null
27
+ model: null
28
+
29
+ # ── Limits (per execution; runs frequently, kept lean) ──────────────────────
30
+ limits:
31
+ max_turns: 20
32
+ max_budget_usd: 0.25
33
+ timeout_minutes: 10
34
+
35
+ # ── Expected outputs ─────────────────────────────────────────────────────────
36
+ # Surfacing is conditional (only when pending observations clear the gate), so
37
+ # there is no deterministic per-run vault write to assert as a criterion.
38
+ outputs:
39
+ - "DM surfacing of new mail / calendar / git / notion activity (conditional)"
40
+ - journal/agent.md
41
+
42
+ success_criteria: []
43
+
44
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
45
+ stop_warning:
46
+ level: high
47
+ services_lost:
48
+ - "Hourly observation triage"
49
+ - "Proactive surfacing of new mail / calendar / git / notion activity"
50
+ dependent_agents: []
51
+ reactivation_hint: "Re-enable from /agents/hourly-check. Resumes on the next interval tick within active hours."
52
+ ---
53
+
54
+ # Hourly Check
55
+
56
+ Built-in routine — the execution prompt lives in the task-flow, not here.
57
+ See `agent-assets/task-flows/routine.hourly_check.md` (and the delegated triage
58
+ flow `agent-assets/task-flows/routine.hourly_check.triage.md`).
59
+
60
+ The firing cadence is a runtime window owned by `buildHourlyCronExpr` in
61
+ `scheduler.ts`, not the `schedule.expression` above; the scheduler also gates
62
+ firing on `config.hourlyCheckEnabled`.
@@ -0,0 +1,55 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: monthly-review
4
+ name: Monthly Review
5
+ description: "Writes the monthly synthesis note and month-end retrospective on the last day of the month (opt-in)."
6
+ kind: builtin
7
+ version: 1
8
+ # OFF by default pre-release (§2.1, frozen). Do not flip without owner sign-off.
9
+ # The scheduler additionally gates firing on `config.monthlyReviewEnabled`.
10
+ enabled: false
11
+ tags: [routine, monthly, journal, opt-in]
12
+
13
+ # ── Schedule (18:00 + scheduler-side last-day-of-month filter) ──────────────
14
+ schedule:
15
+ kind: cron
16
+ expression: "0 18 * * *"
17
+
18
+ # ── Backend / routing (tier/model deferred to process_backend_config) ───────
19
+ backend:
20
+ process_key: routine.monthly_review
21
+ tier: null
22
+ model: null
23
+
24
+ # ── Limits (per execution; the monthly synthesis reads ~30 daily files) ─────
25
+ limits:
26
+ max_turns: 40
27
+ max_budget_usd: 1.00
28
+ timeout_minutes: 20
29
+
30
+ # ── Expected outputs ─────────────────────────────────────────────────────────
31
+ # Keyed on the calendar month (`journal/monthly/YYYY-MM.md`); not targetable by
32
+ # the `{date}`-only evaluator, so documented here, not asserted as a criterion.
33
+ outputs:
34
+ - "journal/monthly/{month}.md"
35
+
36
+ success_criteria: []
37
+
38
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
39
+ stop_warning:
40
+ level: normal
41
+ services_lost:
42
+ - "Monthly synthesis note"
43
+ - "Month-end retrospective"
44
+ dependent_agents: []
45
+ reactivation_hint: "Monthly review is opt-in (monthlyReviewEnabled, default off). Re-enable from /agents/monthly-review."
46
+ ---
47
+
48
+ # Monthly Review
49
+
50
+ Built-in routine — the execution prompt lives in the task-flow, not here.
51
+ See `agent-assets/task-flows/routine.monthly_review.md`.
52
+
53
+ Disabled by default pre-release: the scheduler consults
54
+ `config.monthlyReviewEnabled` (default `false`) before firing, and this
55
+ definition ships `enabled: false`.
@@ -0,0 +1,78 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: morning-routine
4
+ name: Morning Routine
5
+ description: "Regenerates state/today.md, creates the daily journal entry, and delivers the morning DM digest at the day boundary."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, daily, journal]
10
+
11
+ # ── Schedule ─────────────────────────────────────────────────────────────────
12
+ # `{dayBoundaryHour}` is substituted with the live config value at load
13
+ # (default 4 → "0 4 * * *"). The registry (§5.5) is the authoritative cron
14
+ # source; the loader emits a non-fatal drift warning on mismatch.
15
+ # `timezone` is intentionally omitted — the loader fills it from
16
+ # `config.timezone` (US-targeted product; no baked single-zone default).
17
+ schedule:
18
+ kind: cron
19
+ expression: "0 {dayBoundaryHour} * * *"
20
+
21
+ # ── Backend / routing ────────────────────────────────────────────────────────
22
+ # `tier`/`model` are null: built-ins defer their routing to
23
+ # `process_backend_config` (the seed authority). Operators override per-agent
24
+ # from the dashboard (§6.4.1), not here.
25
+ backend:
26
+ process_key: routine.morning_routine
27
+ tier: null
28
+ model: null
29
+
30
+ # ── Limits (per execution) ───────────────────────────────────────────────────
31
+ limits:
32
+ max_turns: 30
33
+ max_budget_usd: 0.50
34
+ timeout_minutes: 15
35
+
36
+ # ── Expected outputs (informational; drive the dashboard + criteria intent) ──
37
+ outputs:
38
+ - state/today.md
39
+ - journal/daily/{date}.md
40
+ - journal/agent.md
41
+
42
+ # ── Semantic success checks (best-effort, evaluated post-execute) ────────────
43
+ # today.md is regenerated wholesale every morning, so a section-count floor is
44
+ # a real check (it fails on a degenerate/empty regen). The daily journal is
45
+ # written for the *previous* agent-day (`daily/<yesterday>.md`), which the
46
+ # `{date}`-only evaluator cannot target, and the DM digest is conditional —
47
+ # both are listed under `outputs` rather than asserted as criteria.
48
+ success_criteria:
49
+ - id: today_md_populated
50
+ kind: file_section_count
51
+ target: state/today.md
52
+ heading_level: 2
53
+ min: 3
54
+
55
+ # ── Error handling ───────────────────────────────────────────────────────────
56
+ on_error:
57
+ retries: 1
58
+ retry_delay_seconds: 60
59
+ notify_owner: true
60
+
61
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
62
+ stop_warning:
63
+ level: critical
64
+ services_lost:
65
+ - "Daily state/today.md regeneration"
66
+ - "Daily journal entry creation"
67
+ - "Morning DM digest delivery"
68
+ dependent_agents:
69
+ - evening-review
70
+ - weekly-review
71
+ reactivation_hint: "Re-enable from /agents/morning-routine. The next firing catches up with a broader observation window."
72
+ ---
73
+
74
+ # Morning Routine
75
+
76
+ Built-in routine — the execution prompt lives in the task-flow, not here.
77
+ See `agent-assets/task-flows/routine.morning_routine_today.md` (Stage A — today.md synthesis)
78
+ and `agent-assets/task-flows/routine.morning_routine_journal.md` (Stage B — daily journal).
@@ -0,0 +1,52 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: roadmap-maintenance
4
+ name: Roadmap Maintenance
5
+ description: "Mechanical (no-LLM) roadmap.md upkeep — stale-item pruning and section reconciliation — before the evening review."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, daily, roadmap, no-llm]
10
+
11
+ # ── Schedule (17:45 — releases the roadmap write-lock before Evening Review) ─
12
+ schedule:
13
+ kind: cron
14
+ expression: "45 17 * * *"
15
+
16
+ # ── Backend / routing ────────────────────────────────────────────────────────
17
+ # `process_key: null` — this is a no-LLM in-process pass with no backend-routing
18
+ # key (§5.5.1). Reserved for built-ins; the schema rejects a null key for user
19
+ # Agents.
20
+ backend:
21
+ process_key: null
22
+ tier: null
23
+ model: null
24
+
25
+ # ── Limits (no LLM turn — zero budget; `max_turns` must be ≥ 1 per schema) ──
26
+ limits:
27
+ max_turns: 1
28
+ max_budget_usd: 0
29
+ timeout_minutes: 5
30
+
31
+ # ── Expected outputs ─────────────────────────────────────────────────────────
32
+ outputs:
33
+ - plans/roadmap.md
34
+
35
+ success_criteria: []
36
+
37
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
38
+ stop_warning:
39
+ level: high
40
+ services_lost:
41
+ - "Mechanical roadmap.md maintenance (stale-item pruning, section reconciliation)"
42
+ dependent_agents:
43
+ - evening-review
44
+ reactivation_hint: "Re-enable from /agents/roadmap-maintenance. Runs daily at 17:45, before Evening Review."
45
+ ---
46
+
47
+ # Roadmap Maintenance
48
+
49
+ No-LLM in-process pass — there is no task-flow. Implemented by the daemon
50
+ callback `onRoadmapMaintenance` registered in `scheduler.ts` (mechanical
51
+ `roadmap.md` stale-item pruning and section reconciliation). It runs at 17:45
52
+ and releases the roadmap write-lock before Evening Review's 18:00 promotion.
@@ -0,0 +1,52 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: skill-curation
4
+ name: Skill Curation
5
+ description: "Generates typed skill self-optimization proposals on the configured cadence (opt-in)."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, skills, self-learning, opt-in]
10
+
11
+ # ── Schedule (03:00; scheduler reads the configured cadence at fire time) ────
12
+ schedule:
13
+ kind: cron
14
+ expression: "0 3 * * *"
15
+
16
+ # ── Backend / routing (tier/model deferred to process_backend_config) ───────
17
+ backend:
18
+ process_key: routine.skill_curation
19
+ tier: null
20
+ model: null
21
+
22
+ # ── Limits (per execution) ───────────────────────────────────────────────────
23
+ limits:
24
+ max_turns: 25
25
+ max_budget_usd: 0.50
26
+ timeout_minutes: 15
27
+
28
+ # ── Expected outputs ─────────────────────────────────────────────────────────
29
+ # Output is typed curation submissions (proposals persisted via the
30
+ # skill-curation API), not a deterministic vault file — documented here, no
31
+ # post-execute criterion asserted in v1.
32
+ outputs:
33
+ - "Typed skill self-optimization proposals (skill-curation submissions)"
34
+
35
+ success_criteria: []
36
+
37
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
38
+ stop_warning:
39
+ level: normal
40
+ services_lost:
41
+ - "Skill self-optimization proposals (typed curation submissions)"
42
+ dependent_agents: []
43
+ reactivation_hint: "Skill curation is opt-in via /settings/self-learning. Re-enable from /agents/skill-curation."
44
+ ---
45
+
46
+ # Skill Curation
47
+
48
+ Built-in routine — opt-in via `/settings/self-learning`. The execution runs in
49
+ the optimizer workdir (`dispatcher-scheduled-tasks.ts`, P22 §3.4) against the
50
+ `/api/skill-curation/*` surface and the `agent-assets/optimizer-skills/skill-curation`
51
+ assets; there is no `task-flows/routine.skill_curation.md`. The scheduler gates
52
+ firing on `isSkillCurationEnabled(db)` and the configured cadence.
@@ -0,0 +1,48 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: user-profile-sweep-evening
4
+ name: User Profile Sweep (Evening)
5
+ description: "Refreshes identity/profile.md from the day's DM traffic shortly before the evening review."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, profile, sweep, evening]
10
+
11
+ # ── Schedule (17:50 — 10 min before Evening Review at 18:00) ────────────────
12
+ schedule:
13
+ kind: cron
14
+ expression: "50 17 * * *"
15
+
16
+ # ── Backend / routing (tier/model deferred to process_backend_config) ───────
17
+ backend:
18
+ process_key: routine.user_profile_sweep
19
+ tier: null
20
+ model: null
21
+
22
+ # ── Limits (per execution; minimal-tools background pass) ───────────────────
23
+ limits:
24
+ max_turns: 15
25
+ max_budget_usd: 0.20
26
+ timeout_minutes: 8
27
+
28
+ # ── Expected outputs ─────────────────────────────────────────────────────────
29
+ outputs:
30
+ - identity/profile.md
31
+ - "identity/<topic>.md"
32
+
33
+ success_criteria: []
34
+
35
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
36
+ stop_warning:
37
+ level: normal
38
+ services_lost:
39
+ - "Pre-evening user/profile.md refresh from the day's DM traffic"
40
+ dependent_agents:
41
+ - evening-review
42
+ reactivation_hint: "Re-enable from /agents/user-profile-sweep-evening. Runs 10 min before Evening Review."
43
+ ---
44
+
45
+ # User Profile Sweep (Evening)
46
+
47
+ Built-in routine — the execution prompt lives in the task-flow, not here.
48
+ See `agent-assets/task-flows/routine.user_profile_sweep.md` (phase: evening).
@@ -0,0 +1,53 @@
1
+ ---
2
+ # ── Identity ─────────────────────────────────────────────────────────────────
3
+ slug: user-profile-sweep-morning
4
+ name: User Profile Sweep (Morning)
5
+ description: "Refreshes identity/profile.md from the day's DM traffic shortly before the day boundary, ahead of the morning routine."
6
+ kind: builtin
7
+ version: 1
8
+ enabled: true
9
+ tags: [routine, profile, sweep, morning]
10
+
11
+ # ── Schedule ─────────────────────────────────────────────────────────────────
12
+ # `{dayBoundaryHour-1}` resolves to the hour before the day boundary
13
+ # (default 4 → "50 3 * * *"), i.e. 10 min before Morning Routine at 04:00.
14
+ schedule:
15
+ kind: cron
16
+ expression: "50 {dayBoundaryHour-1} * * *"
17
+
18
+ # ── Backend / routing (tier/model deferred to process_backend_config) ───────
19
+ backend:
20
+ process_key: routine.user_profile_sweep
21
+ tier: null
22
+ model: null
23
+
24
+ # ── Limits (per execution; minimal-tools background pass) ───────────────────
25
+ limits:
26
+ max_turns: 15
27
+ max_budget_usd: 0.20
28
+ timeout_minutes: 8
29
+
30
+ # ── Expected outputs ─────────────────────────────────────────────────────────
31
+ # Writes are silent and idempotent (no user-visible output, no /api/notify).
32
+ # profile.md pre-exists and is appended/patched, so file presence is not a
33
+ # meaningful per-run signal — documented here, no criterion asserted.
34
+ outputs:
35
+ - identity/profile.md
36
+ - "identity/<topic>.md"
37
+
38
+ success_criteria: []
39
+
40
+ # ── Stop warning (byte-identical to BUILTIN_AGENT_REGISTRY, §12.1) ──────────
41
+ stop_warning:
42
+ level: normal
43
+ services_lost:
44
+ - "Pre-morning user/profile.md refresh from the day's DM traffic"
45
+ dependent_agents:
46
+ - morning-routine
47
+ reactivation_hint: "Re-enable from /agents/user-profile-sweep-morning. Runs 10 min before the day boundary."
48
+ ---
49
+
50
+ # User Profile Sweep (Morning)
51
+
52
+ Built-in routine — the execution prompt lives in the task-flow, not here.
53
+ See `agent-assets/task-flows/routine.user_profile_sweep.md` (phase: morning).