@aitne-sh/aitne 0.1.10 → 0.1.12

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 (149) hide show
  1. package/README.md +12 -8
  2. package/agent-assets/agent-profiles/background-task.md +53 -0
  3. package/agent-assets/agent-profiles/conversational.md +1 -0
  4. package/agent-assets/agent-profiles/routine-fetch-window.md +14 -75
  5. package/agent-assets/agent-profiles/routine.md +1 -1
  6. package/agent-assets/agents/{hourly-check → activity-scan}/agent.md +22 -17
  7. package/agent-assets/agents/monthly-review/agent.md +6 -5
  8. package/agent-assets/agents/morning-routine/agent.md +3 -4
  9. package/agent-assets/docs/concepts/agent-day.md +4 -5
  10. package/agent-assets/docs/concepts/auth-health.md +23 -20
  11. package/agent-assets/docs/concepts/backends-and-tiers.md +25 -18
  12. package/agent-assets/docs/concepts/costs-and-quotas.md +11 -10
  13. package/agent-assets/docs/concepts/delegated-mode.md +13 -12
  14. package/agent-assets/docs/concepts/memory-model.md +13 -9
  15. package/agent-assets/docs/concepts/observations.md +24 -20
  16. package/agent-assets/docs/concepts/process-keys.md +10 -9
  17. package/agent-assets/docs/concepts/routines.md +34 -31
  18. package/agent-assets/docs/concepts/safety-and-execution.md +11 -7
  19. package/agent-assets/docs/concepts/safety-model.md +19 -8
  20. package/agent-assets/docs/concepts/skills.md +10 -8
  21. package/agent-assets/docs/features/integrations/browser-history.md +14 -10
  22. package/agent-assets/docs/features/integrations/calendar.md +24 -13
  23. package/agent-assets/docs/features/integrations/git.md +13 -11
  24. package/agent-assets/docs/features/integrations/github.md +22 -14
  25. package/agent-assets/docs/features/integrations/mail.md +22 -20
  26. package/agent-assets/docs/features/integrations/notion.md +35 -11
  27. package/agent-assets/docs/features/integrations/obsidian.md +8 -8
  28. package/agent-assets/docs/features/lifestyle/git.md +24 -20
  29. package/agent-assets/docs/features/lifestyle/reading.md +5 -3
  30. package/agent-assets/docs/features/lifestyle/receipts.md +11 -10
  31. package/agent-assets/docs/features/memory-files/agent-journal.md +25 -16
  32. package/agent-assets/docs/features/memory-files/agent-lessons.md +7 -6
  33. package/agent-assets/docs/features/memory-files/projects.md +5 -4
  34. package/agent-assets/docs/features/memory-files/schedule.md +6 -3
  35. package/agent-assets/docs/features/memory-files/today.md +10 -7
  36. package/agent-assets/docs/features/memory-files/user-profile.md +14 -9
  37. package/agent-assets/docs/features/messaging/bang-commands.md +21 -6
  38. package/agent-assets/docs/features/messaging/dashboard-chat.md +1 -1
  39. package/agent-assets/docs/features/messaging/overview.md +12 -9
  40. package/agent-assets/docs/features/operations/activity-and-conversations.md +1 -1
  41. package/agent-assets/docs/features/operations/browser-tasks.md +184 -0
  42. package/agent-assets/docs/features/operations/cost-tracking.md +11 -1
  43. package/agent-assets/docs/features/operations/managed-chromium.md +1 -0
  44. package/agent-assets/docs/features/operations/notifications.md +11 -1
  45. package/agent-assets/docs/features/operations/quiet-hours.md +41 -12
  46. package/agent-assets/docs/features/operations/schedule-approaching.md +2 -2
  47. package/agent-assets/docs/features/routines/activity-scan.md +220 -0
  48. package/agent-assets/docs/features/routines/custom-routines.md +82 -138
  49. package/agent-assets/docs/features/routines/evening-review.md +14 -12
  50. package/agent-assets/docs/features/routines/morning-routine.md +5 -4
  51. package/agent-assets/docs/features/routines/weekly-review.md +18 -3
  52. package/agent-assets/docs/features/wiki/commands.md +1 -1
  53. package/agent-assets/docs/features/wiki/dashboard.md +1 -1
  54. package/agent-assets/docs/getting-started/01-what-is-this.md +4 -4
  55. package/agent-assets/docs/getting-started/04-first-day.md +27 -30
  56. package/agent-assets/docs/glossary.md +8 -7
  57. package/agent-assets/docs/guides/add-a-custom-routine.md +122 -68
  58. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +5 -3
  59. package/agent-assets/docs/guides/change-which-model-handles-x.md +1 -1
  60. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +1 -1
  61. package/agent-assets/docs/guides/pause-the-agent.md +22 -20
  62. package/agent-assets/docs/guides/reinstall-cleanly.md +2 -0
  63. package/agent-assets/docs/guides/setup-wizard.md +13 -10
  64. package/agent-assets/docs/reference/api.md +11 -0
  65. package/agent-assets/docs/reference/config.md +30 -20
  66. package/agent-assets/docs/reference/keyboard-shortcuts.md +2 -2
  67. package/agent-assets/docs/reference/knowledge-layout.md +14 -10
  68. package/agent-assets/docs/reference/process-keys.md +7 -7
  69. package/agent-assets/docs/reference/skills.md +5 -2
  70. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +32 -16
  71. package/agent-assets/docs/troubleshooting/observation-not-detected.md +26 -24
  72. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +1 -1
  73. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +3 -3
  74. package/agent-assets/playbooks/markdown-note.md +43 -0
  75. package/agent-assets/playbooks/monitoring.md +29 -0
  76. package/agent-assets/playbooks/research.md +47 -0
  77. package/agent-assets/skills/agent-create/SKILL.md +45 -29
  78. package/agent-assets/skills/agent-create/references/prompt-frame-extended.md +132 -0
  79. package/agent-assets/skills/agent-create/references/prompt-frame.md +125 -0
  80. package/agent-assets/skills/background-task/SKILL.md +184 -0
  81. package/agent-assets/skills/background-task-reply/SKILL.md +100 -0
  82. package/agent-assets/skills/board/SKILL.md +93 -0
  83. package/agent-assets/skills/browser-history/SKILL.md +34 -16
  84. package/agent-assets/skills/browser-history-respond/SKILL.md +3 -3
  85. package/agent-assets/skills/browser-task/SKILL.md +14 -7
  86. package/agent-assets/skills/context/SKILL.md +4 -3
  87. package/agent-assets/skills/context/references/api.md +5 -3
  88. package/agent-assets/skills/context/references/snapshot-files.md +4 -4
  89. package/agent-assets/skills/external-services/SKILL.native.claude.md +13 -7
  90. package/agent-assets/skills/external-services/SKILL.native.codex.md +11 -5
  91. package/agent-assets/skills/external-services/SKILL.native.gemini.md +11 -5
  92. package/agent-assets/skills/mail/SKILL.md +2 -2
  93. package/agent-assets/skills/mail/SKILL.native.claude.md +16 -9
  94. package/agent-assets/skills/mail/SKILL.native.codex.md +15 -8
  95. package/agent-assets/skills/mail/SKILL.native.gemini.md +11 -5
  96. package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +20 -12
  97. package/agent-assets/skills/management-policy/SKILL.md +26 -17
  98. package/agent-assets/skills/management-policy/curation.json +1 -1
  99. package/agent-assets/skills/management-policy/references/policy-workflow.md +26 -13
  100. package/agent-assets/skills/notify/SKILL.md +10 -5
  101. package/agent-assets/skills/notify/references/priority.md +30 -17
  102. package/agent-assets/skills/notion/SKILL.md +1 -1
  103. package/agent-assets/skills/notion/SKILL.native.claude.md +3 -3
  104. package/agent-assets/skills/notion/SKILL.native.codex.md +2 -2
  105. package/agent-assets/skills/notion/SKILL.native.gemini.md +2 -2
  106. package/agent-assets/skills/observations/SKILL.md +5 -5
  107. package/agent-assets/skills/roadmap/references/api.md +7 -2
  108. package/agent-assets/skills/schedule/SKILL.md +26 -15
  109. package/agent-assets/skills/schedule/references/batch.md +1 -1
  110. package/agent-assets/skills/schedule/references/model-selection.md +1 -1
  111. package/agent-assets/skills/schedule/references/prompt-frame.md +125 -0
  112. package/agent-assets/skills/schedule/references/recurrence-rule.md +20 -12
  113. package/agent-assets/skills/scheduled-managed-task/SKILL.md +12 -9
  114. package/agent-assets/skills/task/SKILL.md +79 -0
  115. package/agent-assets/skills/today/SKILL.md +19 -3
  116. package/agent-assets/skills/today/references/agent-plan-lifecycle.md +9 -4
  117. package/agent-assets/skills/today/references/agent-plan-revision.md +28 -0
  118. package/agent-assets/skills/today/references/today-skeleton.md +5 -5
  119. package/agent-assets/skills/user-interview/references/op-morning.md +1 -1
  120. package/agent-assets/system-prompts/routine-research-cluster-update.md +71 -0
  121. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +47 -21
  122. package/agent-assets/task-flows/background_task.md +81 -0
  123. package/agent-assets/task-flows/git.local_ahead.stale.md +1 -1
  124. package/agent-assets/task-flows/git.push.detected.md +1 -1
  125. package/agent-assets/task-flows/git.tag.created.md +1 -1
  126. package/agent-assets/task-flows/github.assigned.md +1 -1
  127. package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
  128. package/agent-assets/task-flows/github.security_alert.md +1 -1
  129. package/agent-assets/task-flows/message.received.dm.md +7 -3
  130. package/agent-assets/task-flows/message.received.dm_first.md +4 -2
  131. package/agent-assets/task-flows/{routine.hourly_check.md → routine.activity_scan.md} +31 -23
  132. package/agent-assets/task-flows/{routine.hourly_check.triage.md → routine.activity_scan.triage.md} +3 -3
  133. package/agent-assets/task-flows/routine.monthly_review.md +9 -8
  134. package/agent-assets/task-flows/routine.research_cluster_update.md +33 -19
  135. package/agent-assets/task-flows/routine.roadmap_refresh.md +2 -2
  136. package/agent-assets/task-flows/routine.today_refresh.md +1 -1
  137. package/agent-assets/task-flows/routine.weekly_review.md +103 -4
  138. package/agent-assets/task-flows/schedule.approaching.md +2 -2
  139. package/agent-assets/task-flows/scheduled.dm.md +96 -12
  140. package/agent-assets/task-flows/scheduled.task.md +7 -1
  141. package/agent-assets/templates/_manifest.json +2 -2
  142. package/agent-assets/templates/knowledge/dossiers/_index.md +1 -1
  143. package/agent-assets/templates/knowledge/dossiers/{hourly.md → activity-scan.md} +1 -1
  144. package/agent-assets/templates/policies/journal-format.md +1 -1
  145. package/agent-assets/templates/policies/mcp.md +1 -1
  146. package/agent-assets/templates/policies/routines/_index.md +1 -1
  147. package/agent-assets/templates/policies/routines/{hourly.md → activity-scan.md} +5 -5
  148. package/package.json +6 -5
  149. package/agent-assets/docs/features/routines/hourly-check.md +0 -205
@@ -1,179 +1,123 @@
1
1
  ---
2
2
  schema_version: 1
3
3
  slug: features/routines/custom-routines
4
- title: Custom Routines
4
+ title: Custom Routines (Retired)
5
5
  id: custom-routines
6
6
  aliases:
7
7
  - custom routine
8
8
  - cron routine
9
9
  - user routine
10
+ - migrated_to_agent
10
11
  category: features
11
12
  summary: |
12
- Beyond the built-in morning / evening / weekly / hourly routines,
13
- the operator can define custom routines that fire on any cron
14
- schedule. Each routine is a Markdown file under
15
- policies/routines/custom/, runs under the tier the operator picks,
16
- and is bounded by the same safety layers as the built-ins.
13
+ Custom routines — cron-driven Markdown files under
14
+ policies/routines/custom/ are retired. User Agents replaced them.
15
+ At the first daemon start after the upgrade, each valid custom
16
+ routine was converted once into a user Agent with the same cron,
17
+ tier, budget, and enabled state; the source file is kept but marked
18
+ inert. Recurring work now lives on /agents.
17
19
  section: routines
18
20
  tags:
19
21
  - routines
22
+ - agents
20
23
  - autonomous
21
24
  - scheduler
22
- - core
23
25
  - advanced
24
- status: stable
26
+ status: deprecated
25
27
  ask_examples:
26
- - How do I add a custom routine?
27
- - What can a custom routine do?
28
- - Can I disable a custom routine?
29
- - Which tier does a custom routine run under?
28
+ - What happened to my custom routines?
29
+ - Where did my custom routine go?
30
+ - What does migrated_to_agent mean?
31
+ - How do I create a recurring task now?
30
32
  locale: en-US
31
33
  created: 2026-04-25
32
- updated: 2026-06-07
34
+ updated: 2026-06-10
33
35
  keywords:
34
36
  - custom routine
35
37
  - routine.custom.<slug>
36
- - user-defined routine
37
- - scheduled task
38
- - recurring schedule
39
- - cron routine
38
+ - migrated_to_agent
39
+ - user agent
40
+ - recurring agent
41
+ - migration
40
42
  related:
41
43
  - guides/add-a-custom-routine
42
44
  - concepts/routines
43
- - features/memory-files/schedule
44
45
  prerequisites:
45
46
  - concepts/routines
46
47
  process_keys:
47
48
  - routine.custom.<slug>
48
49
  context_files:
49
50
  - policies/routines/custom/<slug>.md
51
+ - policies/agents/<slug>/agent.md
50
52
  api_endpoints:
51
- - PUT /api/context/*
52
- - POST /api/recurring-schedules
53
+ - POST /api/agents
53
54
  ui_anchors:
54
- - /settings/routines
55
- - /connections/routines
55
+ - /agents
56
56
  ---
57
57
 
58
- # Custom Routines
58
+ # Custom Routines (Retired)
59
59
 
60
60
  ## In One Sentence
61
61
 
62
- Operator-defined routines fire on any cron schedule, run under the
63
- tier the operator picks (`lite` / `medium` / `high`), and are bounded
64
- by the same safety layers as the built-ins.
65
-
66
- ## What It Does
67
-
68
- - Runs a vault-file-defined check list on a cron schedule.
69
- - Resolves the backend at fire time from the chosen tier (no concrete
70
- model picker tier resolution mirrors the built-in routines).
71
- - Logs its run to Activity exactly like a built-in routine.
72
-
73
- ## When It Runs
74
-
75
- The cron expression in the routine's vault file
76
- `policies/routines/custom/<slug>.md` drives the cadence. The scheduler
77
- wires one `node-cron` job per enabled routine at startup and fires a
78
- `routine.custom.<slug>` event on each tick.
79
-
80
- It is a **standard 5-field cron expression** (`min hour day-of-month
81
- month day-of-week`); for example `0 11 * * 2` is every Tuesday at
82
- 11:00 local time, in your configured timezone.
83
-
84
- ## How Changes Are Picked Up
85
-
86
- There is **no filesystem watcher**. The scheduler reloads only when a
87
- write goes through the context API — a `PUT` / `PATCH` / `DELETE`
88
- under `policies/routines/custom/` triggers an automatic re-diff of the
89
- registered jobs against what is on disk, so edits made through the
90
- dashboard, the API, or the agent take effect without a daemon restart.
91
-
92
- A raw file edit that bypasses the API (for example, opening the `.md`
93
- in an external editor) is *not* picked up until the next API write to
94
- that directory or a daemon restart. Prefer editing through **Settings
95
- Routines** or the context API.
96
-
97
- ## What It Outputs
98
-
99
- - Whatever the check list produces — a context-file write, a
100
- notification, or a no-op.
101
-
102
- ## Where in the Dashboard
103
-
104
- - **Settings Routines** (`/settings/routines`) is the operator
105
- surface for adding, editing, and disabling. `/connections/routines`
106
- is an equivalent page that opens the same surface.
107
-
108
- ## Configuration
109
-
110
- Each custom routine is a Markdown file under
111
- `~/.personal-agent/context/policies/routines/custom/<slug>.md` whose
112
- frontmatter carries:
113
-
114
- | Field | Type | Notes |
115
- |---|---|---|
116
- | `type` | `rule` | Always `rule` for custom routines. |
117
- | `slug` | string | Kebab-case; matches the file stem and the ProcessKey suffix. |
118
- | `cron` | string | Standard 5-field cron expression (e.g. `0 11 * * 2`). |
119
- | `process_key` | `routine.custom.<slug>` | Must match the slug. |
120
- | `enabled` | boolean (`true` / `false`) | Disable without deleting by setting `false`. |
121
- | `backend_tier` | `lite` \| `medium` \| `high` | Drives BackendRouter tier resolution. Legacy `light` (→ `medium`) and `heavy` (→ `high`) are still accepted for files written before the rename. |
122
- | `max_budget_usd` | number | Per-execute USD cap; must be a positive number (e.g. `0.05`). |
123
-
124
- Every field above is required; the body must contain a `## Checks`
125
- section — a routine that is missing any of them is rejected at write
126
- time with a validation error.
127
-
128
- The `## Checks` section is the list the agent runs through on each
129
- fire. To change a routine, write through the context API (the
130
- dashboard, the API, or the agent), which triggers an automatic reload
131
- as described above — no daemon restart is needed.
132
-
133
- ### Example
134
-
135
- A `tuesday-standup-prep` routine at
136
- `policies/routines/custom/tuesday-standup-prep.md`:
137
-
138
- ```markdown
139
- ---
140
- type: rule
141
- slug: tuesday-standup-prep
142
- cron: "0 11 * * 2"
143
- process_key: routine.custom.tuesday-standup-prep
144
- enabled: true
145
- backend_tier: medium
146
- max_budget_usd: 0.10
147
- ---
148
-
149
- ## Checks
150
-
151
- - Summarize commits I pushed since last Tuesday.
152
- - List any calendar events for the rest of the week that mention
153
- "standup" or "review".
154
- - If there is anything noteworthy, DM me a short prep note.
155
- ```
156
-
157
- This fires every Tuesday at 11:00 (your configured timezone), runs
158
- under the `medium` tier (Sonnet on the Claude backend), and stops
159
- spending once the run reaches $0.10.
160
-
161
- > **Distinct from `recurring_schedules`.** The `recurring_schedules`
162
- > table now powers recurring scheduled DMs only (`task_type =
163
- > 'dm_session'`) — e.g. the morning briefing. They use a structured
164
- > `RecurrenceRule` (frequency + time + dayOf*) and are managed via
165
- > `POST /api/recurring-schedules`. Recurring agent *work* moved to the
166
- > `/agents` layer — `POST /api/recurring-schedules` with any
167
- > non-`dm_session` task type returns 410 Gone with a pointer to
168
- > `POST /api/agents`. Neither is the same surface as
169
- > `routine.custom.<slug>`.
170
-
171
- ## When Something Goes Wrong
172
-
173
- - A cron expression that resolves to "never": the routine appears in
174
- the list but never fires. The dashboard's "Next runs" preview shows
175
- "No upcoming runs found within the next year for this timezone."
62
+ Custom routines (`policies/routines/custom/<slug>.md` files fired as
63
+ `routine.custom.<slug>`) no longer run **user Agents replaced
64
+ them**, and every valid routine was converted automatically, exactly
65
+ once, at the first daemon start after the upgrade.
66
+
67
+ ## What Changed
68
+
69
+ - The custom-routine scheduler was removed. Files under
70
+ `policies/routines/custom/` are no longer read by any scheduler, and
71
+ no `routine.custom.<slug>` events fire. (Historical Activity rows
72
+ tagged with those keys remain and still resolve to this page.)
73
+ - Recurring work you define is now an **Agent**: a
74
+ `policies/agents/<slug>/agent.md` file that appears on the
75
+ **Agents** page (`/agents`) with its schedule, an enable toggle, run
76
+ metrics, execution history, and a **Run now** button — surfaces
77
+ custom routines never had. See
78
+ [Create a Recurring Agent](../../guides/add-a-custom-routine.md).
79
+
80
+ ## The One-Time Migration
81
+
82
+ At the first daemon start after the upgrade — and only once, guarded
83
+ by a persisted flag — every file under `policies/routines/custom/` is
84
+ examined:
85
+
86
+ - A **valid routine becomes a user Agent** at
87
+ `policies/agents/<slug>/agent.md` carrying over:
88
+ - the same **cron expression** (pinned to your configured timezone),
89
+ - the same **model tier** (`backend_tier` the Agent's tier),
90
+ - the same **per-run budget** (`max_budget_usd`),
91
+ - the same **enabled state** — a disabled routine migrates disabled.
92
+
93
+ The routine's body (its `## Checks` section) becomes the Agent's
94
+ **task prompt** verbatim, and the Agent's description records where
95
+ it came from (`Migrated from custom routine "<slug>".`).
96
+ - The **source file is never deleted.** It is rewritten in place with
97
+ `enabled: false` and a `migrated_to_agent: <slug>` marker in its
98
+ frontmatter, so it is visibly inert while your content is preserved.
99
+
100
+ ### Collisions and invalid files
101
+
102
+ - **Slug collision** — if an Agent (built-in or user) already exists
103
+ under the routine's slug, the migration falls back to
104
+ `custom-<slug>`. If that also collides, the routine is skipped with
105
+ a warning and the file is left untouched.
106
+ - **Invalid files** a routine with broken frontmatter or missing
107
+ required fields is left untouched and logged; it is not migrated.
108
+ (Such files never fired under the old scheduler either.)
109
+
110
+ ## After the Migration
111
+
112
+ - Find your migrated routines on **`/agents`** — each one's
113
+ description says which custom routine it came from.
114
+ - Edit the schedule, tier, limits, or prompt there (or directly in the
115
+ `agent.md` file; the daemon picks up changes without a restart).
116
+ - The inert files under `policies/routines/custom/` can stay as a
117
+ reference or be deleted whenever you like they have no effect
118
+ either way.
176
119
 
177
120
  ## Related
178
121
 
179
- - [Add a Custom Routine](../../guides/add-a-custom-routine.md)
122
+ - [Create a Recurring Agent](../../guides/add-a-custom-routine.md)
123
+ - [Routines](../../concepts/routines.md)
@@ -27,7 +27,7 @@ ask_examples:
27
27
  - How do I disable the evening review?
28
28
  locale: en-US
29
29
  created: 2026-04-25
30
- updated: 2026-06-07
30
+ updated: 2026-06-10
31
31
  keywords:
32
32
  - evening review
33
33
  - retro
@@ -39,7 +39,7 @@ related:
39
39
  - features/memory-files/agent-journal
40
40
  - features/memory-files/today
41
41
  - features/routines/morning-routine
42
- - features/routines/custom-routines
42
+ - guides/add-a-custom-routine
43
43
  process_keys:
44
44
  - routine.evening_review
45
45
  context_files:
@@ -50,8 +50,8 @@ context_files:
50
50
  - policies/routines/evening.md
51
51
  - policies/agent-lessons.md
52
52
  ui_anchors:
53
- - /connections/journal
54
- - /settings/routines
53
+ - /knowledge?tab=context-files
54
+ - /agents/evening-review
55
55
  ---
56
56
 
57
57
  # Evening Review
@@ -110,19 +110,21 @@ including steps that call `POST /api/notify`.)
110
110
 
111
111
  ## Where in the Dashboard
112
112
 
113
- - **ConnectionsJournal** (`/connections/journal`) shows `journal/agent.md`
114
- entries when the roadmap step logged one.
115
- - **SettingsRoutines** (`/settings/routines`) is where you manage the
116
- evening rulebook.
113
+ - **KnowledgeContext Files** (`/knowledge?tab=context-files`) shows
114
+ `journal/agent.md` entries when the roadmap step logged one.
115
+ - **AgentsEvening Review** (`/agents/evening-review`) is where you
116
+ manage the evening rulebook (Rulebook tab) and enable or disable the
117
+ routine.
117
118
 
118
119
  ## Configuration
119
120
 
120
121
  The fire time and tier are fixed in code, but the routine is not a black box:
121
122
  - **Add your own evening checks.** Append `### <label>` entries to
122
- `policies/routines/evening.md` (via the dashboard, or the
123
- [custom routines guide](../../guides/add-a-custom-routine.md)). They run
124
- alongside the built-in steps using the same journaling conventions and
125
- may notify you explicitly.
123
+ `policies/routines/evening.md` (via the dashboard or the context
124
+ API). They run alongside the built-in steps using the same
125
+ journaling conventions and may notify you explicitly. For a
126
+ standalone recurring job on its own schedule, create a
127
+ [recurring Agent](../../guides/add-a-custom-routine.md) instead.
126
128
  - **Verify it stays healthy.** `aitne verify evening-review-slimdown`
127
129
  checks that recent `routine.evening_review` sessions ran inside their
128
130
  seeded token envelope (read-only; `--days N` widens the window).
@@ -26,7 +26,7 @@ ask_examples:
26
26
  - What model does morning routine use?
27
27
  locale: en-US
28
28
  created: 2026-04-25
29
- updated: 2026-06-07
29
+ updated: 2026-06-10
30
30
  keywords:
31
31
  - morning
32
32
  - day plan
@@ -42,7 +42,7 @@ related:
42
42
  prerequisites:
43
43
  - concepts/agent-day
44
44
  ui_anchors:
45
- - /settings/routines
45
+ - /agents/morning-routine
46
46
  - /settings/models
47
47
  - /schedule
48
48
  - /activity
@@ -91,7 +91,7 @@ Within Stage A, the work proceeds in this order:
91
91
  2. Pull today's calendar events from any connected calendar integration.
92
92
  3. Scan recent unread mail and surface the few that need owner attention.
93
93
  4. Walk the roadmap for items whose **Preparation Timeline** rows fire today.
94
- 5. Consume any pending observations the hourly check has already queued.
94
+ 5. Consume any pending observations the activity scan has already queued.
95
95
  6. Write the rebuilt `state/today.md`.
96
96
  7. Log a single status line to the dashboard activity feed.
97
97
 
@@ -126,13 +126,14 @@ through the parent `routine.morning_routine` envelope.)
126
126
  - **Schedule view** — the column for today is rebuilt against the new schedule file.
127
127
  - **Activity feed** — a `routine.morning_routine` row appears at the run timestamp.
128
128
  - **Settings → Models** — the routine's backend, model, max-turns, and budget cap are configured here.
129
+ - **Agents → Morning Routine** (`/agents/morning-routine`) — the agent's Rulebook tab edits the morning rulebook (`policies/routines/morning.md`) plus the daily-journal Format and Export rules.
129
130
 
130
131
  ## Configuration
131
132
 
132
133
  | Setting | Default | Notes |
133
134
  |---|---|---|
134
135
  | `dayBoundaryHour` | `4` | Both the agent-day boundary and the morning-routine fire time. See [Agent Day](../../concepts/agent-day.md). |
135
- | Stage A tier (`routine.morning_routine_today`) | medium (Sonnet 4.6) | Synthesises `state/today.md` + the day's roadmap fan-out. Adjustable per-row in Settings → Models. |
136
+ | Stage A tier (`routine.morning_routine_today`) | medium (Sonnet 5) | Synthesises `state/today.md` + the day's roadmap fan-out. Adjustable per-row in Settings → Models. |
136
137
  | Stage B tier (`routine.morning_routine_journal`) | lite (Haiku 4.5) | Authors `journal/daily/<date>.md` and the `journal/agent.md` audit paragraph. |
137
138
  | Stage A max turns / budget | 50 turns / $1.50 | Per-execute envelope for `routine.morning_routine_today`. Adjustable in Settings → Models. |
138
139
  | Stage B max turns / budget | 20 turns / $0.30 | Per-execute envelope for `routine.morning_routine_journal`. |
@@ -27,7 +27,7 @@ ask_examples:
27
27
  - Where do weekly retros get stored?
28
28
  locale: en-US
29
29
  created: 2026-04-25
30
- updated: 2026-05-28
30
+ updated: 2026-06-10
31
31
  keywords:
32
32
  - weekly review
33
33
  - Friday review
@@ -45,9 +45,10 @@ process_keys:
45
45
  config_keys:
46
46
  - timezone
47
47
  - dayBoundaryHour
48
+ - selfTuningEnabled
48
49
  ui_anchors:
49
50
  - /settings/models
50
- - /settings/routines
51
+ - /agents/weekly-review
51
52
  context_files:
52
53
  - journal/weekly/YYYY-Www.md
53
54
  - journal/agent.md
@@ -75,6 +76,17 @@ into every morning routine of the following ISO week.
75
76
  feedback signal (in addition to the `journal/agent.md` prose), so the
76
77
  idea is consolidated into the [agent lessons](../memory-files/agent-lessons.md)
77
78
  rather than only living in the journal.
79
+ - Judges the daemon's self-tuning recommendations: when the weekly
80
+ pre-step finds a cost knob worth changing (e.g. raising the mail
81
+ pre-pass freshness window because most fetches came back empty), it
82
+ injects up to three bounded proposals and the review records an
83
+ apply / reject / defer verdict for each. While `selfTuningEnabled` is
84
+ `false` (the default) nothing is ever changed automatically — verdicts
85
+ are recorded for the owner to review (shadow mode). With the flag on,
86
+ an apply verdict is actuated immediately by the daemon within hard
87
+ per-key bounds; the owner gets a one-line DM per applied change
88
+ (`!revert tuning` undoes the latest one) and a daily monitor
89
+ auto-reverts any change whose 7-day follow-up metrics regressed.
78
90
  - Sends a brief Friday-evening notification by default (the silence
79
91
  gate triggers only on an essentially blank week).
80
92
  - Refreshes `identity/reading-taste.md` and Book Candidates when
@@ -103,7 +115,10 @@ The fire time (Friday 19:00 local) and day-of-week are fixed in code
103
115
  and are not operator-tunable. The backend and model that handle this
104
116
  routine, however, are configurable: `routine.weekly_review` is a
105
117
  configurable process key (default **medium** tier — Sonnet on Claude)
106
- that you can repoint from **Settings → Models**.
118
+ that you can repoint from **Settings → Models**. The weekly rulebook
119
+ (`policies/routines/weekly.md`) is edited on the weekly-review agent's
120
+ Rulebook tab (`/agents/weekly-review?tab=rulebook`), where the agent
121
+ can also be enabled or disabled.
107
122
 
108
123
  ## When Something Goes Wrong
109
124
 
@@ -146,7 +146,7 @@ Full rebuilds touch every wiki note and are the most expensive
146
146
  command in the wiki surface. The flow:
147
147
 
148
148
  1. The bang handler estimates the cost (per raw note, an on-disk
149
- char→token approximation × Sonnet 4.6 input price, bracketed
149
+ char→token approximation × Sonnet 5 input price, bracketed
150
150
  optimistic 0.5× / expected 1× / pessimistic 2×).
151
151
  2. On an external git-tracked vault with **Auto-commit before
152
152
  `!compile full`** enabled and a clean working tree, Aitne runs
@@ -222,7 +222,7 @@ The full configuration:
222
222
  model, turn limit, and per-run budget on each `wiki.*` process key
223
223
  (`wiki.ingest_url`, `wiki.compile`, `wiki.ask`, `wiki.lint`,
224
224
  `wiki.trace`, `wiki.connect`). All six default to the medium tier
225
- (Claude Sonnet 4.6) with a sensible `maxTurns` / `maxBudgetUsd`; you
225
+ (Claude Sonnet 5) with a sensible `maxTurns` / `maxBudgetUsd`; you
226
226
  can override per key.
227
227
  - **Archive / delete** — archive keeps the row but flips `active=0`;
228
228
  delete drops the row (data on disk is untouched on external mode).
@@ -90,8 +90,8 @@ You can change the times, disable any of them, or add your own.
90
90
 
91
91
  → [Morning Routine](../features/routines/morning-routine.md) ·
92
92
  [Evening Review](../features/routines/evening-review.md) ·
93
- [Hourly Check](../features/routines/hourly-check.md) ·
94
- [Custom Routines](../features/routines/custom-routines.md)
93
+ [Activity Scan](../features/routines/activity-scan.md) ·
94
+ [Create a Recurring Agent](../guides/add-a-custom-routine.md)
95
95
 
96
96
  ### Reach you through a messenger
97
97
 
@@ -117,7 +117,7 @@ Pairing is one-time per channel.
117
117
 
118
118
  When you connect an integration, the agent polls it on a schedule and
119
119
  records anything that looks relevant as an
120
- [observation](../concepts/observations.md). The hourly routine then
120
+ [observation](../concepts/observations.md). The activity scan then
121
121
  decides what (if anything) is worth telling you about.
122
122
 
123
123
  - [Mail](../features/integrations/mail.md) — Gmail, Outlook, Yahoo,
@@ -181,7 +181,7 @@ dashboard surfaces a warning whenever a backend is running on
181
181
  subscription auth.
182
182
 
183
183
  Each kind of work is mapped to a backend and a tier — most work runs
184
- on medium (Claude Sonnet 4.6 by default) and quick triage on lite
184
+ on medium (Claude Sonnet 5 by default) and quick triage on lite
185
185
  (Claude Haiku 4.5). The high tier (Claude Opus 4.8) is registered but
186
186
  left unseeded; you opt into it per task from the dashboard. You can
187
187
  change any of this mapping at any time.
@@ -43,7 +43,7 @@ ui_anchors:
43
43
  - /knowledge?tab=context-files
44
44
  - /connections
45
45
  - /connections/mcp
46
- - /settings/routines
46
+ - /agents
47
47
  - /activity
48
48
  context_files:
49
49
  - identity/profile.md
@@ -52,14 +52,14 @@ context_files:
52
52
  api_endpoints:
53
53
  - POST /api/knowledge/import
54
54
  created: 2026-04-25
55
- updated: 2026-06-07
55
+ updated: 2026-06-10
56
56
  related:
57
57
  - getting-started/02-first-steps
58
58
  - getting-started/03-what-can-this-do
59
59
  - guides/setup-wizard
60
60
  - guides/import-knowledge-file
61
61
  - features/routines/morning-routine
62
- - features/routines/custom-routines
62
+ - guides/add-a-custom-routine
63
63
  - features/memory-files/user-profile
64
64
  - concepts/delegated-mode
65
65
  - concepts/skills
@@ -236,12 +236,11 @@ recurring:
236
236
  and message me on WhatsApp."* The agent stores a recurring
237
237
  schedule and runs the same prompt at the same cron. Best for
238
238
  per-channel reminders and small recurring asks.
239
- - **Custom routines** — heavier, multi-step jobs that should write
240
- to Markdown memory and DM you with a summary. Add one under
241
- **SettingsRoutines Add custom routine**, or DM the agent the
242
- cron + steps and ask it to save the routine. See
243
- [Custom Routines](../features/routines/custom-routines.md) and
244
- [Add a Custom Routine](../guides/add-a-custom-routine.md).
239
+ - **User Agents** — heavier, multi-step jobs that should write
240
+ to Markdown memory and DM you with a summary. Create one under
241
+ **AgentsNew Agent** (`/agents`), or DM the agent the
242
+ cron + steps and ask it to save it as an Agent. See
243
+ [Create a Recurring Agent](../guides/add-a-custom-routine.md).
245
244
 
246
245
  ### A worked example: a richer morning routine
247
246
 
@@ -265,23 +264,22 @@ Shortest path from zero to that:
265
264
  notes." This makes the gaps obvious — Notion not connected?
266
265
  Calendar not connected? WhatsApp not paired? Drive not reachable
267
266
  through a connector or MCP server? Fix them as they show up.
268
- 2. **Once each piece works standalone**, open **SettingsRoutines
269
- → Add custom routine**:
270
- - Slug: `morning-deep-prep`
271
- - Cron: `0 7 * * 1-5`
272
- - Backend tier: `high (opus)` — this is a heavy, multi-tool job
273
- - Max budget (USD): `0.20` (a generous per-execute override; the
274
- form default is `0.05`)
275
- - Description: paste the four numbered steps above verbatim.
276
- 3. **Watch the next firing in Agent Log** and iterate. The vault file
277
- at `~/.personal-agent/context/policies/routines/custom/morning-deep-prep.md`
278
- is a plain Markdown file: edit the `## Checks` body to refine the
279
- step wording, or the `cron:` field in the YAML frontmatter to
280
- change the schedule. The watcher picks up changes without a
281
- restart.
282
-
283
- → [Custom Routines](../features/routines/custom-routines.md) ·
284
- [Add a Custom Routine](../guides/add-a-custom-routine.md)
267
+ 2. **Once each piece works standalone**, open **AgentsNew Agent**
268
+ (`/agents`):
269
+ - Name / ID: `morning-deep-prep`
270
+ - Schedule: weekdays (Mon–Fri) at 07:00
271
+ - Model tier: `high (opus)` — this is a heavy, multi-tool job
272
+ - Max budget (USD): `0.20` (a generous per-execute override)
273
+ - Task prompt: paste the four numbered steps above verbatim.
274
+ 3. **Watch the next firing in Agent Log** and iterate. The agent
275
+ definition lives in the vault at
276
+ `~/.personal-agent/context/policies/agents/morning-deep-prep/agent.md`
277
+ a plain Markdown file whose body is the task prompt and whose
278
+ YAML frontmatter carries the schedule but the easiest place to
279
+ refine the step wording or the schedule is the agent's own page
280
+ at `/agents/morning-deep-prep`.
281
+
282
+ → [Create a Recurring Agent](../guides/add-a-custom-routine.md)
285
283
 
286
284
  ---
287
285
 
@@ -294,8 +292,8 @@ By end of day one you should have:
294
292
  **Activity**.
295
293
  - One DM whose answer references something only your connected
296
294
  apps could have told the agent.
297
- - (Stretch) one custom routine or recurring schedule in **Settings
298
- Routines** that you'd be sad to lose.
295
+ - (Stretch) one user agent or recurring schedule under **Agents**
296
+ (`/agents`) that you'd be sad to lose.
299
297
 
300
298
  ## If it fails
301
299
 
@@ -312,8 +310,7 @@ By end of day one you should have:
312
310
 
313
311
  - [Import a Knowledge File](../guides/import-knowledge-file.md)
314
312
  - [Morning Routine](../features/routines/morning-routine.md)
315
- - [Custom Routines](../features/routines/custom-routines.md)
316
- - [Add a Custom Routine](../guides/add-a-custom-routine.md)
313
+ - [Create a Recurring Agent](../guides/add-a-custom-routine.md)
317
314
  - [Delegated Mode](../concepts/delegated-mode.md)
318
315
  - [Skills and MCP](../concepts/skills.md)
319
316
  - [identity/profile.md](../features/memory-files/user-profile.md)
@@ -78,7 +78,7 @@ process_keys:
78
78
  - dashboard.docs_qa
79
79
  - delegated_task_heavy
80
80
  - routine.fetch_window
81
- - routine.hourly_check
81
+ - routine.activity_scan
82
82
  - routine.research_cluster_update
83
83
  config_keys:
84
84
  - dayBoundaryHour
@@ -228,10 +228,11 @@ dashboard page.
228
228
 
229
229
  Operator-facing umbrella for the two non-heavy lanes on each backend:
230
230
 
231
- - **Medium / Main** (Claude Sonnet 4.6, `gpt-5.4` on Codex,
232
- `gemini-3.1-pro-preview` on Gemini, Sonnet 4.6 via OpenCode) —
233
- default for owner DMs, dashboard chat, the hourly check, and the
234
- morning / evening / weekly review routines.
231
+ - **Medium / Main** (Claude Sonnet 5, `gpt-5.4` on Codex,
232
+ `gemini-3.1-pro-preview` on Gemini, Sonnet 5 via OpenCode) —
233
+ default for owner DMs, dashboard chat, the activity scan, and the
234
+ morning / evening / weekly review routines. (Sonnet 4.6 became a
235
+ `(legacy)` pin when Sonnet 5 shipped on 2026-06-30.)
235
236
  - **Lite / Delegated** (Claude Haiku 4.5, `gpt-5.4-mini` on Codex,
236
237
  `gemini-3.1-flash-lite-preview` on Gemini, Haiku 4.5 via OpenCode) —
237
238
  reserved for mechanical / delegated surfaces: Gmail classification,
@@ -252,7 +253,7 @@ fallback when upstream reports zero.
252
253
  ## Routine Pre-pass
253
254
 
254
255
  A lite-tier `routine.fetch_window` session spawned before each main
255
- routine (morning / today_refresh / hourly_check / evening / weekly).
256
+ routine (morning / today_refresh / activity_scan / evening / weekly).
256
257
  It fetches each routine's mail / calendar / Notion window
257
258
  (`ROUTINE_WINDOWS`) and POSTs the results to `/api/observations`. The
258
259
  main routine then consumes the resulting `<fetch_report>` block and
@@ -264,7 +265,7 @@ in 2026-05 to trim morning-routine input tokens by ~24%.
264
265
  One row in the `observations` table. A change record a polling
265
266
  integration (Obsidian, Git, Notion, calendar, mail, browser history)
266
267
  or a `routine.fetch_window` pre-pass wrote into SQLite. The
267
- `routine.hourly_check` is the consumer — there is no per-change
268
+ `routine.activity_scan` is the consumer — there is no per-change
268
269
  notification. `actor='agent'` rows are filtered out by the consumer
269
270
  to break the agent-observing-its-own-writes loop. See
270
271
  [Observations](concepts/observations.md).