@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
@@ -26,33 +26,33 @@ vault**, not this primary store.
26
26
 
27
27
  | File | Purpose | Owner | Lock? |
28
28
  |---|---|---|---|
29
- | `today.md` | Today's schedule, tasks, agent log, handoff | See `today` skill | Yes (Morning Routine) |
30
- | `roadmap.md` | Long-horizon agent action plan + Long-term Plans | See `roadmap` skill | Yes (Roadmap Refresh) |
29
+ | `state/today.md` | Today's schedule, tasks, agent log, handoff | See `today` skill | Yes (Morning Routine) |
30
+ | `plans/roadmap.md` | Long-horizon agent action plan + Long-term Plans | See `roadmap` skill | Yes (Roadmap Refresh) |
31
31
  | `projects/*.md` | Project state summaries | Any event on material state change | No |
32
32
  | `weekly/YYYY-Www.md` | Weekly review snapshots | Friday Weekly Review only (PUT) | No |
33
33
  | `monthly/YYYY-MM.md` | Monthly review snapshots | Month-end Monthly Review only (PUT) | No |
34
34
  | `rules/*.md` | User-controlled policy files | Explicit user request only | No |
35
- | `rules/policies/<slug>.md` | Durable management policies captured from DM | `management-policy` skill — **do not write from here** | No |
36
- | `rules/policies/_index.md` | Readable index of active policies | `management-policy` skill — **do not write from here** | No |
35
+ | `policies/management-captures/<slug>.md` | Durable management policies captured from DM | `management-policy` skill — **do not write from here** | No |
36
+ | `policies/management-captures/_index.md` | Readable index of active policies | `management-policy` skill — **do not write from here** | No |
37
37
  | `routines/*.md` | Per-cadence check rulebooks | Explicit user request only | No |
38
- | `user/profile.md` | User identity and preferences | `user-profile` skill — **do not write from here** | No |
38
+ | `identity/profile.md` | User identity and preferences | `user-profile` skill — **do not write from here** | No |
39
39
  | `user/*.md` | Detailed user dictionary | `user-profile` skill — **do not write from here** | No |
40
40
 
41
41
  Morning Routine scans roadmap daily and processes matching Preparation
42
- Timeline rows into `today.md` — see the `roadmap` skill for the full
42
+ Timeline rows into `state/today.md` — see the `roadmap` skill for the full
43
43
  entry taxonomy and the morning routine task-flow for the scanning rules.
44
44
 
45
45
  ## projects/*.md
46
46
 
47
47
  Update on status changes, milestones reached/delayed, or active set changes. Use `GET /api/context/list/projects` to discover files. The source of truth is always the individual `projects/<slug>.md` notes; `_active.base` is only the Obsidian Bases view config, not a narrative summary note.
48
48
 
49
- The canonical frontmatter schema is documented in `projects/_index.md`
50
- (seeded from `agent-assets/templates/projects/_index.md`). The API
49
+ The canonical frontmatter schema is documented in `plans/projects/_index.md`
50
+ (seeded from `agent-assets/templates/plans/projects/_index.md`). The API
51
51
  validates only `type: project`, `owner: shared`, `updated`, and an H1
52
52
  (`context-frontmatter.ts`). Conventional but unvalidated fields —
53
53
  `slug`, `state`, `start`, `due`, `stakeholders`, `next_milestone`,
54
54
  `tags` — should still be written for new files because the
55
- `projects/_active.base` Obsidian view filters on `state`.
55
+ `plans/projects/_active.base` Obsidian view filters on `state`.
56
56
 
57
57
  ## Project DM-intent detection
58
58
 
@@ -76,8 +76,8 @@ the partial.
76
76
 
77
77
  Weekly and monthly review snapshots, the user-controlled `rules/*.md`
78
78
  policy files, the built-in `routines/<cadence>.md` rulebooks, custom
79
- routines under `routines/custom/`, and the agent-private
80
- `agent/journal.md` all have stable per-file conventions (writer event,
79
+ routines under `policies/routines/custom/`, and the agent-private
80
+ `journal/agent.md` all have stable per-file conventions (writer event,
81
81
  verb, frontmatter, retention) documented in the snapshot-files
82
82
  reference below.
83
83
 
@@ -101,7 +101,7 @@ envelope are in the required-frontmatter reference below.
101
101
  The full `/api/context/*` surface — read / write / list / lock /
102
102
  archive / restore / health / repair / action-log — is organised by
103
103
  operation in the reference below. Add `X-Lock-Id` on every PUT / PATCH
104
- to `today.md` (`<today_write_lock_id>`) or `roadmap.md`
104
+ to `state/today.md` (`<today_write_lock_id>`) or `plans/roadmap.md`
105
105
  (`<roadmap_write_lock_id>`) when the matching lock-id tag is in your
106
106
  context.
107
107
 
@@ -8,8 +8,8 @@
8
8
  "human_label": "File responsibilities",
9
9
  "description": "Which file owns which area of the context tree (today, roadmap, projects, weekly, rules, user)",
10
10
  "scope_paths": [
11
- "today.md",
12
- "roadmap.md",
11
+ "state/today.md",
12
+ "plans/roadmap.md",
13
13
  "projects/*.md",
14
14
  "weekly/*.md",
15
15
  "monthly/*.md",
@@ -10,8 +10,8 @@ Body submission follows `_safety.md` "Daemon-API body submission":
10
10
  small section PATCHes use inline `-d '{...}'`; full-file PUT uses the
11
11
  stdin heredoc `-d @- <<'JSON'` shape because the body runs multi-KB.
12
12
 
13
- Add `X-Lock-Id: <today_write_lock_id>` (for `today.md`) or
14
- `X-Lock-Id: <roadmap_write_lock_id>` (for `roadmap.md`) on every
13
+ Add `X-Lock-Id: <today_write_lock_id>` (for `state/today.md`) or
14
+ `X-Lock-Id: <roadmap_write_lock_id>` (for `plans/roadmap.md`) on every
15
15
  PUT / PATCH when the matching lock-id tag is in your context — the
16
16
  daemon emits the tag only while the corresponding lock is held by
17
17
  this session.
@@ -21,7 +21,7 @@ this session.
21
21
  ### GET /api/context/:path
22
22
 
23
23
  ```bash
24
- curl -s http://localhost:8321/api/context/roadmap
24
+ curl -s http://localhost:8321/api/context/plans/roadmap
25
25
  ```
26
26
 
27
27
  Response: `{ "content": "...", "lastModified": "ISO8601" }` or `404`.
@@ -41,7 +41,7 @@ enumerate `projects/`, `weekly/`, `monthly/`, `user/`, `rules/`,
41
41
 
42
42
  ### GET /api/context/today/reconciliation
43
43
 
44
- Returns the Morning Routine's reconciliation report for `today.md`
44
+ Returns the Morning Routine's reconciliation report for `state/today.md`
45
45
  (which mail/calendar/Notion sources contributed what to User Tasks /
46
46
  Agent Plan). Read-only diagnostic surface; not the place to write
47
47
  changes.
@@ -62,40 +62,46 @@ Fields:
62
62
  | `content` | string (required) | Full file body, including frontmatter and H1 where the file's validator requires them. |
63
63
  | `expectedMtime` | string (optional) | ISO 8601. When present the daemon returns `409` if the current mtime differs — race protection for read-modify-write loops. |
64
64
 
65
- Add `X-Lock-Id: <lock-id>` when writing a locked file (`today.md`,
66
- `roadmap.md`). Snapshots the prior content for restore.
65
+ Add `X-Lock-Id: <lock-id>` when writing a locked file (`state/today.md`,
66
+ `plans/roadmap.md`). Snapshots the prior content for restore.
67
67
 
68
68
  Common rejections:
69
69
 
70
70
  - `400 {error:"validation_error", message, path}` — file-specific
71
- validator failed (e.g. `today.md` line-1 date regex, `roadmap.md`
71
+ validator failed (e.g. `state/today.md` line-1 date regex, `plans/roadmap.md`
72
72
  transition guard, required frontmatter missing on `user/*.md` /
73
73
  `rules/*.md` / `projects/*.md` / `daily/*.md` / `weekly/*.md` /
74
74
  `monthly/*.md`).
75
- - `409 {error:"lock_held"}` — another session holds the file's write
76
- lock. Retry with backoff (30s × 3).
77
- - `422` file-specific schema mismatch (e.g. `today.md` line-1
78
- agent-day mismatch the error echoes both the supplied date and
79
- the daemon's current agent-day).
80
-
81
- `rules/management.md` is user-controlled policy: modify only when the
75
+ - `409 {error:"morning_routine_lock_held"}` — the Morning Routine holds
76
+ the `state/today.md` write lock; `409 {error:"roadmap_write_lock_held"}`
77
+ another session holds the `plans/roadmap.md` lock. Retry with
78
+ backoff (30s × 3).
79
+ - `400 {error:"validation_error", message, path}` — also covers the
80
+ `state/today.md` line-1 agent-day mismatch (the message echoes both the
81
+ supplied date and the daemon's current agent-day). The `422` status is
82
+ reserved for *frontmatter* validation on globbed files (`user/*.md`,
83
+ `rules/*.md`, `projects/*.md`, `daily/*.md`, `weekly/*.md`,
84
+ `monthly/*.md`), not for today.md line-1.
85
+
86
+ `policies/management.md` is user-controlled policy: modify only when the
82
87
  user explicitly asks, and preserve every unrelated section.
83
88
 
84
89
  ### PATCH /api/context/:path — Section operation
85
90
 
86
91
  ```bash
87
- curl -s -X PATCH http://localhost:8321/api/context/today \
92
+ curl -s -X PATCH http://localhost:8321/api/context/state/today \
88
93
  -H 'Content-Type: application/json' \
89
94
  -d '{"section": "agent_log", "mode": "append", "content": "- 09:35 Processed meeting summary"}'
90
95
  ```
91
96
 
92
97
  | Field | Type | Description |
93
98
  |---|---|---|
94
- | `section` | string | snake_case of the heading (e.g. `learned_context`, `agent_log`, `log`). **Omit for `append_to_file`**; required for every other mode. |
95
- | `mode` | `append` \| `replace` \| `clear` \| `clear_before` \| `append_to_file` | Default `append`. |
96
- | `content` | string | Ignored for `clear` / `clear_before`. |
99
+ | `section` | string | snake_case of the heading (e.g. `learned_context`, `agent_log`, `log`). **Omit for `append_to_file` and `frontmatterMerge`**; required for every other mode. |
100
+ | `mode` | `append` \| `replace` \| `clear` \| `clear_before` \| `append_to_file` \| `frontmatterMerge` | Default `append`. |
101
+ | `content` | string | Ignored for `clear` / `clear_before` / `frontmatterMerge`. |
97
102
  | `cutoff` | string | **Required when `mode: "clear_before"`.** SQLite format `YYYY-MM-DD HH:MM:SS` (zero-padded). Removes bullet rows whose `- [YYYY-MM-DD HH:MM:SS]` timestamp is ≤ cutoff. |
98
103
  | `maxEntries` | number | Optional for `mode: "append"`. After appending, trim oldest bullet entries from the top of the section body so at most `maxEntries` bullets remain. Non-bullet lines are preserved. SignalDetector uses cap = 20. |
104
+ | `frontmatter` | object | **Required when `mode: "frontmatterMerge"`** (and only valid then). Non-empty partial frontmatter object, deep-merged into the file's YAML frontmatter. |
99
105
 
100
106
  Mode semantics:
101
107
 
@@ -103,28 +109,34 @@ Mode semantics:
103
109
  - `replace` — replace the entire section body with `content`. **Read-before-write is mandatory** — `replace` does not merge; sending just one bullet erases every sibling. The skill body's "Worked example" shows the GET-merge-PATCH pattern.
104
110
  - `clear` — drop the section body, keep the heading.
105
111
  - `clear_before` — rolling-log trim, drops bullets with timestamps ≤ `cutoff`. Non-bullet lines preserved. Race-safe consumption shape for `Raw Signals` and similar logs.
106
- - `append_to_file` — omit `section`, append `content` to the end of the file. The intended first-write path when a section header does not exist yet: include the header inside `content` (`"\n## Section\n- bullet\n"`). Also the only write shape for files with no canonical section schema (`agent/journal.md`).
112
+ - `append_to_file` — omit `section`, append `content` to the end of the file. The intended first-write path when a section header does not exist yet: include the header inside `content` (`"\n## Section\n- bullet\n"`). Also the only write shape for files with no canonical section schema (`journal/agent.md`).
113
+ - `frontmatterMerge` — omit `section`; deep-merge the `frontmatter` object into the file's existing YAML frontmatter (nested objects merge key-by-key; scalars/arrays replace), preserving the body verbatim. The chokepoint-safe way to link entity `sources.<app>.<id>` + set `last_synced_at` without a read-modify-write of the whole file (design 21 §10.4).
107
114
 
108
115
  Common rejections (informational responses worth knowing):
109
116
 
110
117
  - `400 {error:"section_not_found", section, availableSections:[…]}` — the section name did not match. `availableSections` lists every snake_cased heading the file actually has; pick the closest match and retry. Do NOT retry the same `section` value.
111
118
  - `400 {error:"validation_error", message, path}` — content failed the file-specific validator.
112
119
  - `400 {error:"cutoff_required", message}` — `clear_before` was called without a valid `cutoff`.
113
- - `409 {error:"lock_held"}` file's write lock is held by another session.
120
+ - `409 {error:"morning_routine_lock_held"}` (PATCH/PUT on `state/today`) or
121
+ `409 {error:"roadmap_write_lock_held"}` (PATCH/PUT on `plans/roadmap`) —
122
+ the file's write lock is held by another session. (The generic
123
+ `lock_held` code is only emitted by `POST /api/context/lock/morning-routine`
124
+ on contended acquisition, never by a PATCH/PUT.)
114
125
 
115
126
  ### DELETE /api/context/:path
116
127
 
117
128
  Removes the file (snapshot first). The daemon only allows DELETE on a
118
- small set of paths — notably `routines/custom/<slug>` (after the user
129
+ small set of paths — notably `policies/routines/custom/<slug>` (after the user
119
130
  asks to retire a custom routine). Most files are NOT delete-eligible
120
- (e.g. `today.md`, `roadmap.md`, `user/profile.md`); the daemon returns
121
- `400 {error:"path_not_deletable"}` for those.
131
+ (e.g. `state/today.md`, `plans/roadmap.md`, `identity/profile.md`); the daemon returns
132
+ `403 {error:"forbidden"}` (with `errors[0].code: "context.write_forbidden"`)
133
+ for those.
122
134
 
123
135
  ## Lifecycle
124
136
 
125
137
  ### POST /api/context/archive-today
126
138
 
127
- Rotates `today.md` → `yesterday.md` (synthesized `daily/YYYY-MM-DD.md`
139
+ Rotates `state/today.md` → `state/yesterday.md` (synthesized `daily/YYYY-MM-DD.md`
128
140
  is now written by the Morning Routine, not this endpoint). Called by
129
141
  the Morning Routine during day rotation; other sessions should NOT
130
142
  invoke this directly.
@@ -144,7 +156,7 @@ when `GET /api/context/health` reports the file as stubbed.
144
156
 
145
157
  ## Locks
146
158
 
147
- `today.md` and `roadmap.md` are locked files: `PUT` / `PATCH` requires
159
+ `state/today.md` and `plans/roadmap.md` are locked files: `PUT` / `PATCH` requires
148
160
  the lock to be held by the calling session, and the daemon emits an
149
161
  `X-Lock-Id` header value that must be echoed on each request via the
150
162
  `X-Lock-Id:` header.
@@ -158,7 +170,7 @@ the lock to be held by the calling session, and the daemon emits an
158
170
 
159
171
  The dispatcher auto-acquires this lock for `routine.morning_routine`
160
172
  and surfaces the id via `<today_write_lock_id>` in the prompt context.
161
- Other sessions get `409 today_write_lock_held` on PUT / PATCH while
173
+ Other sessions get `409 morning_routine_lock_held` on PUT / PATCH while
162
174
  the lock is held — back off 30 s and retry up to 3 times.
163
175
 
164
176
  ### Roadmap lock
@@ -176,8 +188,8 @@ another session — same 30 s × 3 retry pattern.
176
188
  **Path-name gotchas** (these return `404 {"error":"unknown_route", …}`
177
189
  with a hint pointing at the correct path):
178
190
 
179
- - `POST /api/context/roadmap/lock` — order reversed.
180
- - `POST /api/context/roadmap/write-lock` — order reversed and wrong noun.
191
+ - `POST /api/context/plans/roadmap/lock` — order reversed.
192
+ - `POST /api/context/plans/roadmap/write-lock` — order reversed and wrong noun.
181
193
  - `POST /api/context/lock/roadmap-write` — wrong noun.
182
194
 
183
195
  A `401 {"error":"unauthorized"}` from a path you believe is correct
@@ -186,13 +198,13 @@ so no bearer token is required).
186
198
 
187
199
  ## Roadmap-specific writes
188
200
 
189
- ### POST /api/context/roadmap/id
201
+ ### POST /api/context/plans/roadmap/id
190
202
 
191
203
  Mints a new stable entry id (`rm-YYYYMMDD-<hash>`) for a roadmap row.
192
204
  Requires `X-Lock-Id: <roadmap_write_lock_id>`.
193
205
 
194
206
  ```bash
195
- curl -s -X POST http://localhost:8321/api/context/roadmap/id \
207
+ curl -s -X POST http://localhost:8321/api/context/plans/roadmap/id \
196
208
  -H 'Content-Type: application/json' \
197
209
  -H 'X-Lock-Id: <roadmap_write_lock_id>' \
198
210
  -d '{"creationDate":"YYYY-MM-DD"}'
@@ -216,5 +228,5 @@ curl -s -X POST http://localhost:8321/api/action/log \
216
228
  ```
217
229
 
218
230
  Records an entry in `agent_actions` for the dashboard's audit feed.
219
- Not the same as `today.md ## Agent Log` (that's a markdown surface;
231
+ Not the same as `state/today.md ## Agent Log` (that's a markdown surface;
220
232
  this is a SQLite row). Risk tier: Autonomous.
@@ -50,7 +50,7 @@ on `PUT` (full replace).
50
50
 
51
51
  ## Files outside the table
52
52
 
53
- `today.md`, `roadmap.md`, `agent/journal.md`, and `rules/policies/*.md`
53
+ `state/today.md`, `plans/roadmap.md`, `journal/agent.md`, and `policies/management-captures/*.md`
54
54
  have their own validators (date-line regex, transition guard, append-
55
55
  only mode, policy schema). The frontmatter rules in this reference do
56
56
  not apply to them — see each owning skill for the specifics.
@@ -60,8 +60,8 @@ not apply to them — see each owning skill for the specifics.
60
60
  ```json
61
61
  {
62
62
  "error": "validation_error",
63
- "message": "user/people.md is missing required frontmatter field: updated",
64
- "path": "user/people.md"
63
+ "message": "identity/people.md is missing required frontmatter field: updated",
64
+ "path": "identity/people.md"
65
65
  }
66
66
  ```
67
67
 
@@ -8,7 +8,7 @@ description: Weekly / monthly review snapshots, rules / routines files — who w
8
8
 
9
9
  These files live in the primary management vault under
10
10
  `weekly/`, `monthly/`, `rules/`, and `routines/`. They are not part
11
- of the day-to-day context churn (`today.md`, `roadmap.md`,
11
+ of the day-to-day context churn (`state/today.md`, `plans/roadmap.md`,
12
12
  `projects/*.md`); they accumulate slowly and are written by routines
13
13
  or by explicit user request.
14
14
 
@@ -22,7 +22,7 @@ or by explicit user request.
22
22
  Notes:
23
23
 
24
24
  - Monthly files are **user-facing only** — agent-side metrics (cost,
25
- retry counts, self-critique) go to `agent/journal.md`, not here.
25
+ retry counts, self-critique) go to `journal/agent.md`, not here.
26
26
  - Weekly file name uses ISO week (`YYYY-Www` — `2026-W19`, not
27
27
  `2026-W5`); pad the week to two digits.
28
28
  - Never write `weekly/*.md` or `monthly/*.md` on any other day. The
@@ -65,10 +65,10 @@ explicitly asks to change the policy or routine itself.
65
65
 
66
66
  - Preserve unrelated sections verbatim. PATCH the one section the
67
67
  user is changing; do not full-body PUT.
68
- - `rules/management.md` is the durable management policy file —
68
+ - `policies/management.md` is the durable management policy file —
69
69
  modify only when the user explicitly asks.
70
70
 
71
- ### `rules/policies/<slug>.md` and `rules/policies/_index.md`
71
+ ### `policies/management-captures/<slug>.md` and `policies/management-captures/_index.md`
72
72
 
73
73
  Route to the `management-policy` skill. It owns the read-before-write,
74
74
  similarity-detection, and pause/resume fan-out for durable policies.
@@ -82,7 +82,7 @@ similarity check and the dossier / routine fan-out.
82
82
  - Append or edit `### <label>` blocks under `## Checks`; each block
83
83
  is one user-authored rule the cadence runs.
84
84
 
85
- ### `routines/custom/<slug>.md`
85
+ ### `policies/routines/custom/<slug>.md`
86
86
 
87
87
  Full-file `PUT` is usually safest. Required frontmatter:
88
88
 
@@ -98,6 +98,6 @@ max_budget_usd: <number>
98
98
 
99
99
  The file body must also contain a `## Checks` section.
100
100
 
101
- Deleting a custom routine uses `DELETE /api/context/routines/custom/<slug>`
101
+ Deleting a custom routine uses `DELETE /api/context/policies/routines/custom/<slug>`
102
102
  **only** after the user asks to retire it. The daemon snapshots the
103
103
  prior content for restore.
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "kind": "knowledge_layout",
3
3
  "files": [
4
- { "path": "today.md", "purpose": "today's schedule, tasks, agent log, handoff", "sections": [{ "heading": "## Schedule", "contains": "today's events" }, { "heading": "## Tasks", "contains": "open tasks" }, { "heading": "## Agent Notes", "contains": "agent observations" }] },
5
- { "path": "roadmap.md", "purpose": "long-horizon agent action plan + Long-term Plans", "sections": [{ "heading": "## Annual Goals", "contains": "year-scope outcomes" }, { "heading": "## Quarterly Milestones", "contains": "quarter-scope deliverables" }, { "heading": "## Focus Areas", "contains": "current themes of work" }] },
4
+ { "path": "state/today.md", "purpose": "today's schedule, tasks, agent log, handoff", "sections": [{ "heading": "## Schedule", "contains": "today's events" }, { "heading": "## Tasks", "contains": "open tasks" }, { "heading": "## Agent Notes", "contains": "agent observations" }] },
5
+ { "path": "plans/roadmap.md", "purpose": "long-horizon agent action plan + Long-term Plans", "sections": [{ "heading": "## Annual Goals", "contains": "year-scope outcomes" }, { "heading": "## Quarterly Milestones", "contains": "quarter-scope deliverables" }, { "heading": "## Focus Areas", "contains": "current themes of work" }] },
6
6
  { "path": "projects/*.md", "purpose": "per-project state summaries (slug-named)", "sections": [{ "heading": "## Overview", "contains": "what the project is about" }, { "heading": "## Lifecycle Phases", "contains": "phase ladder for the project" }] },
7
7
  { "path": "weekly/*.md", "purpose": "weekly review snapshots (YYYY-Www); Carry Over / Next Week Focus / Lessons are lifted into next week's morning_routine via <previous_week>", "sections": [{ "heading": "## Highlights", "contains": "wins of the week" }, { "heading": "## Open Loops", "contains": "tasks/commitments still pending" }, { "heading": "## Carry Over to Next Week", "contains": "open loops to carry over (max 5) with one-line reason" }, { "heading": "## Next Week Focus", "contains": "top priorities for next week (max 3)" }, { "heading": "## Lessons for Next Week", "contains": "behavioral observation → action (max 3)" }] },
8
8
  { "path": "monthly/*.md", "purpose": "monthly review snapshots (YYYY-MM)", "sections": [{ "heading": "## Theme", "contains": "the month's overall theme" }] },
9
9
  { "path": "rules/*.md", "purpose": "user-controlled policy files", "sections": [{ "heading": "## Why", "contains": "rationale for the rule" }, { "heading": "## How", "contains": "concrete rule shape" }] },
10
10
  { "path": "user/*.md", "purpose": "user identity and preferences dictionary", "sections": [{ "heading": "## Identity", "contains": "name role tz" }] },
11
- { "path": "agent/journal.md", "purpose": "agent-owned weekly + monthly self-critique", "sections": [{ "heading": "## Weekly", "contains": "what worked, what slipped, improvements" }] }
11
+ { "path": "journal/agent.md", "purpose": "agent-owned weekly + monthly self-critique", "sections": [{ "heading": "## Weekly", "contains": "what worked, what slipped, improvements" }] }
12
12
  ]
13
13
  }
@@ -16,7 +16,7 @@ other endpoint is in the allow-list.
16
16
  **Daemon URL is not optional.** Every call must go to
17
17
  `http://localhost:8321/api/docs/...`. The session's `curl` wrapper
18
18
  rejects any other host/port silently (stdout stays empty), so a request
19
- to `localhost:3000` or a path with no host returns nothing and reads as
19
+ to `localhost:8322` or a path with no host returns nothing and reads as
20
20
  "0 results" — exactly the failure mode that masquerades as "the docs
21
21
  don't cover this".
22
22
 
@@ -74,8 +74,9 @@ wrapper.
74
74
  | `curl -s "http://localhost:8321/api/docs"` | Tree listing. Use only when the operator asks "what docs are there?" |
75
75
 
76
76
  The slug in `by-slug/<slug>` is path-style (e.g.
77
- `features/routines/morning-routine`), exactly as it appears in the
78
- search response and inside `[doc:...]` citations.
77
+ `features/routines/morning-routine`, a docs slug not a vault path), <!-- drift-allow -->
78
+ exactly as it appears in the search response and inside `[doc:...]`
79
+ citations.
79
80
 
80
81
  ## Search-call budget — at most 3 per turn
81
82
 
@@ -212,7 +212,7 @@ carries the connector's own language.
212
212
  **Scope**: this skill targets a **separate** Obsidian vault the user
213
213
  maintains alongside this app — e.g. a personal knowledge base. It is
214
214
  **not** the agent's own primary management store. The agent's primary
215
- files (`today.md`, `roadmap.md`, `projects/`, `rules/`, `routines/`,
215
+ files (`state/today.md`, `plans/roadmap.md`, `projects/`, `rules/`, `routines/`,
216
216
  `user/`, `agent/`, …) live in the primary vault and are reached via
217
217
  `/api/context/*` (see the `context` skill). **Never** use this skill to
218
218
  read or write the primary vault.
@@ -257,10 +257,10 @@ skill and the `/api/context/*` endpoints instead.
257
257
 
258
258
  ```bash
259
259
  curl -s http://localhost:8321/api/github/repos # list watched repos
260
- curl -s "http://localhost:8321/api/github/pulls?state=open" # list PRs
260
+ curl -s "http://localhost:8321/api/github/pulls?owner=user&repo=repo&state=open" # list PRs
261
261
  curl -s -X POST http://localhost:8321/api/github/pulls/comment \
262
262
  -H 'Content-Type: application/json' \
263
- -d '{"owner": "user", "repo": "repo", "pullNumber": 42, "body": "LGTM"}' # comment — Autonomous
263
+ -d '{"owner": "user", "repo": "repo", "pull_number": 42, "comment": "LGTM"}' # comment — Autonomous
264
264
  ```
265
265
  <!-- /service:github -->
266
266
 
@@ -276,23 +276,13 @@ update, archive).
276
276
 
277
277
  ---
278
278
 
279
- ## Recurring Schedules
279
+ ## Recurring tasks
280
280
 
281
- CRUD for repeating agent tasks. Timezone auto-filled from daemon config.
282
-
283
- ```bash
284
- curl -s -X POST http://localhost:8321/api/recurring-schedules \
285
- -H 'Content-Type: application/json' \
286
- -d '{"taskType": "wake", "description": "Morning inbox triage.", "recurrenceRule": {"frequency": "daily", "time": "09:00"}}'
287
- curl -s "http://localhost:8321/api/recurring-schedules?enabled=true" # list
288
- curl -s -X PATCH http://localhost:8321/api/recurring-schedules/1 \
289
- -H 'Content-Type: application/json' \
290
- -d '{"recurrenceRule": {"frequency": "weekly", "time": "10:00", "daysOfWeek": [1,3,5]}}'
291
- curl -s -X PATCH http://localhost:8321/api/recurring-schedules/1 \
292
- -H 'Content-Type: application/json' -d '{"enabled": false}' # disable
293
- curl -s -X DELETE http://localhost:8321/api/recurring-schedules/1 # delete
294
- ```
295
- `recurrenceRule`: `frequency` (daily/weekly/monthly), `time` (HH:MM), `daysOfWeek` (0=Sun..6=Sat, weekly), `daysOfMonth` (1-31, monthly). → Full guide: load `schedule` skill.
281
+ Recurring autonomous **work** (fetch / check / act on a cadence) is an **Agent** —
282
+ create one with the `agent-create` skill (`POST /api/agents`), managed on `/agents`.
283
+ Recurring scheduled **DMs / briefings** stay on `POST /api/recurring-schedules`
284
+ with `taskType: "dm_session"`. `GET /api/recurring-schedules?enabled=true` lists
285
+ existing rows (dedup). → Full guide: load the `agent-create` or `schedule` skill.
296
286
 
297
287
  ---
298
288
 
@@ -330,9 +320,9 @@ curl -s -X POST http://localhost:8321/api/schedule/dm \
330
320
  ```bash
331
321
  curl -s -X POST http://localhost:8321/api/schedule \
332
322
  -H 'Content-Type: application/json' \
333
- -d '{"time": "2026-04-06T16:00:00-04:00", "taskType": "wake", "description": "Check PR #42 status and notify user.", "tier": "medium", "taskContext": {"scheduledBy": "dm_conversation"}}'
323
+ -d '{"time": "2026-04-06T16:00:00-04:00", "taskType": "wake", "prompt": "Check PR #42 status and notify user.", "description": "PR #42 status check", "tier": "medium", "taskContext": {"scheduledBy": "dm_conversation"}}'
334
324
  ```
335
- Fields: `time` (required), `taskType` (`wake`), `description` (required, min 20 chars), `tier` (`lite`/`medium`/`high`) **or** `model` (registered id like `claude-opus-4-7`, legacy alias `sonnet`/`opus`, or composite `<backendId>/<modelId>`) — mutually exclusive, `taskContext` (optional metadata). See the `schedule` skill body for the full surface and `/api/schedule/options` for the live model list.
325
+ Fields: `time` (required), `taskType` (`wake`), `prompt` (required — the agent instruction, ≤8000 chars), `description` (optional label, ≤200 chars), `tier` (`lite`/`medium`/`high`) **or** `model` (registered id like `claude-opus-4-8`, legacy alias `sonnet`/`opus`, or composite `<backendId>/<modelId>`) — mutually exclusive, `taskContext` (optional metadata). See the `schedule` skill body for the full surface and `/api/schedule/options` for the live model list.
336
326
 
337
327
  ### Manage pending items
338
328
  ```bash
@@ -192,7 +192,7 @@ Always preserve `body.message` verbatim when reporting to the user.
192
192
  **Scope**: this skill targets a **separate** Obsidian vault the user
193
193
  maintains alongside this app — e.g. a personal knowledge base. It is
194
194
  **not** the agent's own primary management store. The agent's primary
195
- files (`today.md`, `roadmap.md`, `projects/`, `rules/`, `routines/`,
195
+ files (`state/today.md`, `plans/roadmap.md`, `projects/`, `rules/`, `routines/`,
196
196
  `user/`, `agent/`, …) live in the primary vault and are reached via
197
197
  `/api/context/*` (see the `context` skill). **Never** use this skill to
198
198
  read or write the primary vault.
@@ -237,10 +237,10 @@ skill and the `/api/context/*` endpoints instead.
237
237
 
238
238
  ```bash
239
239
  curl -s http://localhost:8321/api/github/repos # list watched repos
240
- curl -s "http://localhost:8321/api/github/pulls?state=open" # list PRs
240
+ curl -s "http://localhost:8321/api/github/pulls?owner=user&repo=repo&state=open" # list PRs
241
241
  curl -s -X POST http://localhost:8321/api/github/pulls/comment \
242
242
  -H 'Content-Type: application/json' \
243
- -d '{"owner": "user", "repo": "repo", "pullNumber": 42, "body": "LGTM"}' # comment — Autonomous
243
+ -d '{"owner": "user", "repo": "repo", "pull_number": 42, "comment": "LGTM"}' # comment — Autonomous
244
244
  ```
245
245
  <!-- /service:github -->
246
246
 
@@ -256,23 +256,13 @@ update, archive).
256
256
 
257
257
  ---
258
258
 
259
- ## Recurring Schedules
259
+ ## Recurring tasks
260
260
 
261
- CRUD for repeating agent tasks. Timezone auto-filled from daemon config.
262
-
263
- ```bash
264
- curl -s -X POST http://localhost:8321/api/recurring-schedules \
265
- -H 'Content-Type: application/json' \
266
- -d '{"taskType": "wake", "description": "Morning inbox triage.", "recurrenceRule": {"frequency": "daily", "time": "09:00"}}'
267
- curl -s "http://localhost:8321/api/recurring-schedules?enabled=true" # list
268
- curl -s -X PATCH http://localhost:8321/api/recurring-schedules/1 \
269
- -H 'Content-Type: application/json' \
270
- -d '{"recurrenceRule": {"frequency": "weekly", "time": "10:00", "daysOfWeek": [1,3,5]}}'
271
- curl -s -X PATCH http://localhost:8321/api/recurring-schedules/1 \
272
- -H 'Content-Type: application/json' -d '{"enabled": false}' # disable
273
- curl -s -X DELETE http://localhost:8321/api/recurring-schedules/1 # delete
274
- ```
275
- `recurrenceRule`: `frequency` (daily/weekly/monthly), `time` (HH:MM), `daysOfWeek` (0=Sun..6=Sat, weekly), `daysOfMonth` (1-31, monthly). → Full guide: load `schedule` skill.
261
+ Recurring autonomous **work** (fetch / check / act on a cadence) is an **Agent** —
262
+ create one with the `agent-create` skill (`POST /api/agents`), managed on `/agents`.
263
+ Recurring scheduled **DMs / briefings** stay on `POST /api/recurring-schedules`
264
+ with `taskType: "dm_session"`. `GET /api/recurring-schedules?enabled=true` lists
265
+ existing rows (dedup). → Full guide: load the `agent-create` or `schedule` skill.
276
266
 
277
267
  ---
278
268
 
@@ -310,9 +300,9 @@ curl -s -X POST http://localhost:8321/api/schedule/dm \
310
300
  ```bash
311
301
  curl -s -X POST http://localhost:8321/api/schedule \
312
302
  -H 'Content-Type: application/json' \
313
- -d '{"time": "2026-04-06T16:00:00-04:00", "taskType": "wake", "description": "Check PR #42 status and notify user.", "tier": "medium", "taskContext": {"scheduledBy": "dm_conversation"}}'
303
+ -d '{"time": "2026-04-06T16:00:00-04:00", "taskType": "wake", "prompt": "Check PR #42 status and notify user.", "description": "PR #42 status check", "tier": "medium", "taskContext": {"scheduledBy": "dm_conversation"}}'
314
304
  ```
315
- Fields: `time` (required), `taskType` (`wake`), `description` (required, min 20 chars), `tier` (`lite`/`medium`/`high`) **or** `model` (registered id like `claude-opus-4-7`, legacy alias `sonnet`/`opus`, or composite `<backendId>/<modelId>`) — mutually exclusive, `taskContext` (optional metadata). See the `schedule` skill body for the full surface and `/api/schedule/options` for the live model list.
305
+ Fields: `time` (required), `taskType` (`wake`), `prompt` (required — the agent instruction, ≤8000 chars), `description` (optional label, ≤200 chars), `tier` (`lite`/`medium`/`high`) **or** `model` (registered id like `claude-opus-4-8`, legacy alias `sonnet`/`opus`, or composite `<backendId>/<modelId>`) — mutually exclusive, `taskContext` (optional metadata). See the `schedule` skill body for the full surface and `/api/schedule/options` for the live model list.
316
306
 
317
307
  ### Manage pending items
318
308
  ```bash
@@ -190,7 +190,7 @@ Always preserve `body.message` verbatim when reporting to the user.
190
190
  **Scope**: this skill targets a **separate** Obsidian vault the user
191
191
  maintains alongside this app — e.g. a personal knowledge base. It is
192
192
  **not** the agent's own primary management store. The agent's primary
193
- files (`today.md`, `roadmap.md`, `projects/`, `rules/`, `routines/`,
193
+ files (`state/today.md`, `plans/roadmap.md`, `projects/`, `rules/`, `routines/`,
194
194
  `user/`, `agent/`, …) live in the primary vault and are reached via
195
195
  `/api/context/*` (see the `context` skill). **Never** use this skill to
196
196
  read or write the primary vault.
@@ -235,10 +235,10 @@ skill and the `/api/context/*` endpoints instead.
235
235
 
236
236
  ```bash
237
237
  curl -s http://localhost:8321/api/github/repos # list watched repos
238
- curl -s "http://localhost:8321/api/github/pulls?state=open" # list PRs
238
+ curl -s "http://localhost:8321/api/github/pulls?owner=user&repo=repo&state=open" # list PRs
239
239
  curl -s -X POST http://localhost:8321/api/github/pulls/comment \
240
240
  -H 'Content-Type: application/json' \
241
- -d '{"owner": "user", "repo": "repo", "pullNumber": 42, "body": "LGTM"}' # comment — Autonomous
241
+ -d '{"owner": "user", "repo": "repo", "pull_number": 42, "comment": "LGTM"}' # comment — Autonomous
242
242
  ```
243
243
  <!-- /service:github -->
244
244
 
@@ -254,23 +254,13 @@ update, archive).
254
254
 
255
255
  ---
256
256
 
257
- ## Recurring Schedules
257
+ ## Recurring tasks
258
258
 
259
- CRUD for repeating agent tasks. Timezone auto-filled from daemon config.
260
-
261
- ```bash
262
- curl -s -X POST http://localhost:8321/api/recurring-schedules \
263
- -H 'Content-Type: application/json' \
264
- -d '{"taskType": "wake", "description": "Morning inbox triage.", "recurrenceRule": {"frequency": "daily", "time": "09:00"}}'
265
- curl -s "http://localhost:8321/api/recurring-schedules?enabled=true" # list
266
- curl -s -X PATCH http://localhost:8321/api/recurring-schedules/1 \
267
- -H 'Content-Type: application/json' \
268
- -d '{"recurrenceRule": {"frequency": "weekly", "time": "10:00", "daysOfWeek": [1,3,5]}}'
269
- curl -s -X PATCH http://localhost:8321/api/recurring-schedules/1 \
270
- -H 'Content-Type: application/json' -d '{"enabled": false}' # disable
271
- curl -s -X DELETE http://localhost:8321/api/recurring-schedules/1 # delete
272
- ```
273
- `recurrenceRule`: `frequency` (daily/weekly/monthly), `time` (HH:MM), `daysOfWeek` (0=Sun..6=Sat, weekly), `daysOfMonth` (1-31, monthly). → Full guide: load `schedule` skill.
259
+ Recurring autonomous **work** (fetch / check / act on a cadence) is an **Agent** —
260
+ create one with the `agent-create` skill (`POST /api/agents`), managed on `/agents`.
261
+ Recurring scheduled **DMs / briefings** stay on `POST /api/recurring-schedules`
262
+ with `taskType: "dm_session"`. `GET /api/recurring-schedules?enabled=true` lists
263
+ existing rows (dedup). → Full guide: load the `agent-create` or `schedule` skill.
274
264
 
275
265
  ---
276
266
 
@@ -308,9 +298,9 @@ curl -s -X POST http://localhost:8321/api/schedule/dm \
308
298
  ```bash
309
299
  curl -s -X POST http://localhost:8321/api/schedule \
310
300
  -H 'Content-Type: application/json' \
311
- -d '{"time": "2026-04-06T16:00:00-04:00", "taskType": "wake", "description": "Check PR #42 status and notify user.", "tier": "medium", "taskContext": {"scheduledBy": "dm_conversation"}}'
301
+ -d '{"time": "2026-04-06T16:00:00-04:00", "taskType": "wake", "prompt": "Check PR #42 status and notify user.", "description": "PR #42 status check", "tier": "medium", "taskContext": {"scheduledBy": "dm_conversation"}}'
312
302
  ```
313
- Fields: `time` (required), `taskType` (`wake`), `description` (required, min 20 chars), `tier` (`lite`/`medium`/`high`) **or** `model` (registered id like `claude-opus-4-7`, legacy alias `sonnet`/`opus`, or composite `<backendId>/<modelId>`) — mutually exclusive, `taskContext` (optional metadata). See the `schedule` skill body for the full surface and `/api/schedule/options` for the live model list.
303
+ Fields: `time` (required), `taskType` (`wake`), `prompt` (required — the agent instruction, ≤8000 chars), `description` (optional label, ≤200 chars), `tier` (`lite`/`medium`/`high`) **or** `model` (registered id like `claude-opus-4-8`, legacy alias `sonnet`/`opus`, or composite `<backendId>/<modelId>`) — mutually exclusive, `taskContext` (optional metadata). See the `schedule` skill body for the full surface and `/api/schedule/options` for the live model list.
314
304
 
315
305
  ### Manage pending items
316
306
  ```bash
@@ -15,7 +15,7 @@ Base URL: `http://localhost:8321`. All calls via `curl -s` with `Content-Type: a
15
15
  Two adjacent files declare where the user's data lives — read both before
16
16
  routing any external-service call.
17
17
 
18
- 1. **`rules/management.md` → `## Source of Truth`** carries durable
18
+ 1. **`policies/management.md` → `## Source of Truth`** carries durable
19
19
  user-authored answers ("Schedule = Google Calendar", "Tasks = Notion",
20
20
  etc.). This is the authoritative routing table.
21
21
  2. **`~/.personal-agent/integrations.md` → `## Note Sources`** is the
@@ -33,7 +33,7 @@ integrations DB. Treat it as a routing hint, not a knob.
33
33
 
34
34
  ### Calendar provider routing
35
35
 
36
- The user's calendar provider lives in `rules/management.md` → `## Source of Truth` → Schedule row. Read it before every calendar call.
36
+ The user's calendar provider lives in `policies/management.md` → `## Source of Truth` → Schedule row. Read it before every calendar call.
37
37
 
38
38
  | Schedule value in management rules | Use this base path | Backed by |
39
39
  |---|---|---|
@@ -43,7 +43,7 @@ The user's calendar provider lives in `rules/management.md` → `## Source of Tr
43
43
 
44
44
  **Hard rule**: NEVER cross-call. Calling `/api/calendar/*` while Schedule = Apple Calendar does NOT return empty — it queries the user's separate Google account if one exists, returning the wrong day. Calling `/api/apple-calendar/*` while Schedule = Google Calendar returns 503. Both failure modes are silent at the agent level — only the user notices, in the form of wrong answers.
45
45
 
46
- If `rules/management.md` is missing, ambiguous, or names a provider not listed here, **stop and ask the user** rather than guessing. Do not default to Google.
46
+ If `policies/management.md` is missing, ambiguous, or names a provider not listed here, **stop and ask the user** rather than guessing. Do not default to Google.
47
47
 
48
48
  The endpoint sets are intentionally near-identical in shape (same JSON for events, same query parameters for listing) so the rest of this skill body documents both at once. Provider-specific differences are flagged inline with **[Apple only]** or **[Google only]**.
49
49