@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
@@ -62,7 +62,7 @@ keywords:
62
62
  related:
63
63
  - features/integrations/git
64
64
  - features/integrations/github
65
- - features/routines/hourly-check
65
+ - features/routines/activity-scan
66
66
  - concepts/observations
67
67
  ui_anchors:
68
68
  - /git
@@ -114,7 +114,7 @@ per repo (all open by default so the controls are visible at a glance):
114
114
  require the repository to have a `localPath`.
115
115
  3. **Daily git management** — opt-in per repo. Enabling it does three
116
116
  distinct kinds of work, on different cadences:
117
- - On the first **Run init now** click, writes the curated
117
+ - On the first **Generate overview** click, writes the curated
118
118
  `knowledge/repos/<slug>/overview.md` skeleton, mirrors the source
119
119
  `README.*` to `knowledge/repos/<slug>/README.md`, and
120
120
  **automatically queues a one-shot Architecture refresh** so the AI
@@ -143,7 +143,7 @@ a Sonnet-class agent that reads the actual code.
143
143
  **When it's generated**
144
144
 
145
145
  - **First time** — automatically queued the moment you click
146
- **Run init now**. Returns immediately with `architectureScheduleId`;
146
+ **Generate overview**. Returns immediately with `architectureScheduleId`;
147
147
  the agent runs in the background (typically 30 s – 2 min) and
148
148
  replaces the placeholder block with real analysis.
149
149
  - **On demand** — click **Refresh architecture** any time. The daemon
@@ -171,7 +171,7 @@ new Architecture body via the chokepoint
171
171
  `PUT /api/repositories/:id/architecture-section`; the daemon performs
172
172
  the marker-bracketed replacement so other sections (Notable Changes,
173
173
  Daily Activity Log, Open Threads) are preserved verbatim. Every write
174
- also snapshots the previous Architecture body to `md_file_snapshots`
174
+ also snapshots the previous `overview.md` to `md_file_snapshots`
175
175
  for recovery.
176
176
 
177
177
  ## README Mirror
@@ -180,7 +180,7 @@ for recovery.
180
180
  the repository's `README.*` (whichever extension exists, with `.md`
181
181
  preferred). It is refreshed on:
182
182
 
183
- - Every **Run init now** (initial mirror).
183
+ - Every **Generate overview** click (initial mirror).
184
184
  - Every **Refresh architecture** click (so the mirror tracks what the
185
185
  agent just analyzed).
186
186
 
@@ -197,21 +197,24 @@ README is rewritten.
197
197
  ## When It Runs / How It Is Triggered
198
198
 
199
199
  - **Polling** runs continuously on the per-repo cadence (or the global
200
- default). Observations land in the `observations` table; the hourly
201
- check coalesces them.
200
+ default). Observations land in the `observations` table; the activity
201
+ scan coalesces them.
202
202
  - **Triggers** fire when the matching event arrives on the EventBus.
203
203
  - **Daily git management** is dispatched by `RepositoryManagementCron`,
204
204
  which iterates the `repository_management` table once an hour and
205
- emits a `scheduled.task` (`git.project.update`) for any enabled row
206
- whose `last_scan_at` is more than 24 hours old.
205
+ runs the scan writer directly (an in-process daemon write — no agent
206
+ session) for any enabled row whose `last_scan_at` is more than
207
+ 24 hours old.
207
208
  - **Architecture refresh** (`git.project.refresh_architecture`) is
208
209
  enqueued only on:
209
- - Manual **Run init now** (auto-enqueue, first time only).
210
+ - **Generate overview** (auto-enqueue skipped when a previous
211
+ analysis already landed, re-queued when the Architecture section
212
+ is still pending).
210
213
  - Manual **Refresh architecture** click.
214
+ - A scan (cron or manual) that finds `overview.md` missing and
215
+ re-creates the skeleton via the implicit init.
211
216
 
212
- No cron, no observer fires this. The cron-driven implicit init
213
- (when daily scan creates a missing skeleton) deliberately does NOT
214
- auto-enqueue.
217
+ There is no recurring cron that re-runs the analysis on a timer.
215
218
 
216
219
  ## What It Outputs
217
220
 
@@ -231,8 +234,8 @@ trigger's process key.
231
234
 
232
235
  - **My Life → Git** (`/git`) — this page. Polling, Triggers, and Daily
233
236
  git management are all expanded by default. The Daily-git-management
234
- panel's buttons appear in lifecycle order — **Run init now Refresh
235
- architecture → Run today's scan now** — and each surfaces an inline
237
+ panel's buttons appear in lifecycle order — **Generate overview
238
+ Refresh architecture → Run today's scan now** — and each surfaces an inline
236
239
  green confirmation on success or a red error message on failure.
237
240
  - **Connections → Repositories** (`/connections/repositories`) —
238
241
  register a repo (link a `localPath` and/or `owner/repo`), rename,
@@ -289,9 +292,10 @@ repository has a `localPath`:
289
292
  - **The toggle is greyed out with "No local clone".** Add a
290
293
  `localPath` on **Connections → Repositories**, then return.
291
294
  - **`Last status` shows `failed` and `Failure streak` keeps climbing.**
292
- The cron still iterates but the dispatched session is failing —
293
- open the latest conversation under that repo's tile, or check
294
- **Activity** for the `git.project.update` run. A high streak does
295
+ The cron still iterates but the in-process scan writer is failing —
296
+ check the daemon logs (`aitne logs`) for "Failed to run repository
297
+ management scan", or click **Run today's scan now** to surface the
298
+ error inline. A high streak does
295
299
  not prevent further scans (the cron retries on the next interval).
296
300
  - **`Last scan` is "never" but the row is enabled.** Either the cron
297
301
  has not ticked yet (default tick is 1 hour) or the row has no local
@@ -313,7 +317,7 @@ repository has a `localPath`:
313
317
  before clicking again.
314
318
  - **The README mirror went out of date** after the source repo's
315
319
  README was rewritten. Click **Refresh architecture** (which also
316
- re-copies the README) or **Run init now** on the repo.
320
+ re-copies the README) or **Generate overview** on the repo.
317
321
 
318
322
  ## Related
319
323
 
@@ -322,5 +326,5 @@ repository has a `localPath`:
322
326
  - [GitHub integration](../integrations/github.md) — remote-side data
323
327
  (notifications, workflow runs) reachable via `gh` even without a
324
328
  local clone.
325
- - [Hourly check](../routines/hourly-check.md) — the routine that
329
+ - [Activity scan](../routines/activity-scan.md) — the routine that
326
330
  consumes the observations this page's polling generates.
@@ -73,7 +73,7 @@ at `/reading`.
73
73
  `completed` stamps `completed_at` automatically; you can also set a 1–5
74
74
  `rating` or `notes`.
75
75
  - **Recommend** from the list during reactive turns, and refresh the
76
- reading-taste profile during weekly and monthly reviews.
76
+ reading-taste profile during the weekly review.
77
77
 
78
78
  There is **no bare "add a book" endpoint** — new books arrive through the
79
79
  two Kindle import pipelines above (or are created internally during an
@@ -93,8 +93,10 @@ drives the list shape. The reading skill loads in two situations:
93
93
 
94
94
  - **Reactively**, when you mention a book or highlight in a DM.
95
95
  - **From existing routines** — the morning routine can mention what
96
- you're currently reading, and the weekly and monthly reviews pull
97
- reading progress and refresh the reading-taste profile.
96
+ you're currently reading, the weekly review refreshes the
97
+ reading-taste profile, and the monthly review pulls reading progress
98
+ for its reading report (it reads the existing taste profile but does
99
+ not re-derive it).
98
100
 
99
101
  ## What It Outputs
100
102
 
@@ -10,7 +10,7 @@ aliases:
10
10
  - receipt files
11
11
  category: features
12
12
  summary: |
13
- A SQLite-backed log of receipt and invoice attachments the Gmail
13
+ A SQLite-backed log of receipt and invoice attachments the mail
14
14
  observer detects, plus an export path that saves them into the
15
15
  operator's external Obsidian vault for tax / reimbursement tracking.
16
16
  section: lifestyle
@@ -27,7 +27,7 @@ ask_examples:
27
27
  - What receipts haven't I saved yet?
28
28
  locale: en-US
29
29
  created: 2026-04-25
30
- updated: 2026-05-28
30
+ updated: 2026-06-07
31
31
  keywords:
32
32
  - receipt
33
33
  - invoice
@@ -50,20 +50,21 @@ related:
50
50
 
51
51
  ## In One Sentence
52
52
 
53
- Receipts are PDF / image attachments the Gmail observer detects while
54
- scanning your mail; their metadata lives in the `receipts` SQLite
55
- table, and the agent can save the original file into your external
56
- Obsidian vault on request.
53
+ Receipts are attachments (typically PDFs or images) the mail observer
54
+ detects while scanning your mail; their metadata lives in the
55
+ `receipts` SQLite table, and the agent can save the original file into
56
+ your external Obsidian vault on request.
57
57
 
58
58
  ## How Detection Works
59
59
 
60
- The Gmail observer scans travel-booking emails for PDF / image
61
- attachments and retains other generic documents it finds. Each detected
60
+ The mail observer scans travel-booking emails across every connected
61
+ mail account and records each attachment it finds. Each detected
62
62
  attachment inserts a row into the `receipts` table, keyed uniquely on
63
63
  `(account_id, provider_msg_id, attachment_id)` so re-scans are
64
64
  idempotent. Columns:
65
65
 
66
- - `category` — `document` or `travel` (nullable until classified)
66
+ - `category` — `travel` at detection time; reclassify to `document`
67
+ via PATCH (nullable on legacy rows)
67
68
  - `provider_msg_id`, `attachment_id`, `account_id` — locate the source
68
69
  attachment in the unified mail registry
69
70
  - `filename`, `mime_type`, `size_bytes` — attachment metadata
@@ -105,7 +106,7 @@ is documented in
105
106
 
106
107
  ## Configuration
107
108
 
108
- Detection runs as part of the Gmail observer; see
109
+ Detection runs as part of the mail observer; see
109
110
  [Mail](../integrations/mail.md). The save target follows the external
110
111
  vault convention `receipts/YYYY/MM/<merchant>-<date>.<ext>`.
111
112
 
@@ -42,6 +42,7 @@ related:
42
42
  - features/operations/activity-and-conversations
43
43
  - concepts/memory-model
44
44
  process_keys:
45
+ - routine.morning_routine_today
45
46
  - routine.morning_routine_journal
46
47
  - routine.evening_review
47
48
  - routine.weekly_review
@@ -49,7 +50,7 @@ context_files:
49
50
  - journal/agent.md
50
51
  ui_anchors:
51
52
  - /knowledge?tab=context-files
52
- - /settings/journal
53
+ - /agents/morning-routine?tab=rulebook
53
54
  ---
54
55
 
55
56
  # journal/agent.md
@@ -85,15 +86,18 @@ pruning older ones. Later routines read it back to look for patterns.
85
86
 
86
87
  Three routines append to the journal — none ever rewrites it:
87
88
 
88
- - **Morning routine** (Stage B, `routine.morning_routine_journal`) is
89
- the recurring daily writer. After the day's stages settle, the
90
- daemon appends a one-paragraph audit-trail entry assembled from the
91
- prior day's `agent_actions` stage results, retry stats, anomalies.
92
- This is the entry you'll see most often.
89
+ - **Morning routine** is the recurring daily writer — and here the
90
+ daemon itself does the writing, not an LLM stage. After the day's
91
+ stages (Stage A `routine.morning_routine_today`, Stage B
92
+ `routine.morning_routine_journal`) settle, the daemon appends a
93
+ one-paragraph audit-trail entry assembled from the run's
94
+ `agent_actions` rows — stage results, inbox stats, anomalies — plus
95
+ a one-line footprint of the prior day's actions. This is the entry
96
+ you'll see most often.
93
97
  - **Weekly review** (`routine.weekly_review`) appends the largest
94
98
  structured block: a `## Weekly YYYY-Www` retro with *What worked*,
95
99
  *What slipped on my side*, *System improvement ideas*, and agent-side
96
- metrics. It quotes prior entries to find a thread.
100
+ metrics.
97
101
  - **Evening review** (`routine.evening_review`) appends short
98
102
  bookkeeping lines — for example a one-liner each time it bumps a
99
103
  roadmap review forward, or a validation error if a roadmap write was
@@ -115,11 +119,15 @@ worth recording during reactive work.
115
119
  ### System improvement ideas
116
120
  - Add Saturday to the Weekend day-type default so weekend pushes triage.
117
121
  ### Metrics (agent side)
118
- - Agent plan rows completed: 12
119
- - Did-not-fire / failed rows: 1
120
- - Observations reviewed / ignored: 18 / 4
122
+ - Routine runs (7d): 142 total / 3 failed (prev week: 150 / 5)
123
+ - Spend (7d): $4.10 (prev week: $4.80); top cost: routine.fetch_window $2.10
124
+ - Notifications (7d): 9 sent / 4 ignored (prev week sent: 11)
121
125
  ```
122
126
 
127
+ The metrics lines are copied verbatim from the `<self_performance>`
128
+ block the daemon computes and injects into the weekly session — the
129
+ review does not count anything itself.
130
+
123
131
  ## Append-only — enforced, not just convention
124
132
 
125
133
  The journal is append-only at the API layer, not merely by prompt
@@ -137,8 +145,9 @@ cannot destroy history. Writes go through the daemon context API
137
145
  read view of the file — `journal/agent` is listed among the top-level
138
146
  context files. It is flagged as sensitive: entering edit mode surfaces
139
147
  a "deliberately pruning noise" warning before you change anything.
140
- - **Settings Journal** (`/settings/journal`) does *not* edit this
141
- file. It is a two-tab editor for the daily-journal rule files —
148
+ - **The morning-routine agent's Rulebook tab**
149
+ (`/agents/morning-routine?tab=rulebook`)
150
+ does *not* edit this file. It hosts the daily-journal rule files —
142
151
  `policies/journal-format.md` (sections, voice, frontmatter) and
143
152
  `policies/journal-export.md` (redaction / inclusion rules) — both of
144
153
  which the morning routine reads when synthesizing `daily/YYYY-MM-DD.md`,
@@ -155,7 +164,8 @@ agent's own writes, not to you editing the file on disk.
155
164
  ## When something goes wrong
156
165
 
157
166
  - **The journal stops growing.** This usually points at the morning
158
- routine's Stage B (the daily writer) or the evening/weekly review not
167
+ routine (whose daemon-side appender writes the daily entry) or the
168
+ evening/weekly review not
159
169
  running. See [Morning Routine](../routines/morning-routine.md) and
160
170
  [Evening Review](../routines/evening-review.md).
161
171
  - **Entries look duplicated.** This usually means a routine retried
@@ -170,9 +180,8 @@ agent's own writes, not to you editing the file on disk.
170
180
  ## Related
171
181
 
172
182
  - [Morning Routine](../routines/morning-routine.md) — the recurring
173
- daily writer (Stage B).
174
- - [Weekly Review](../routines/weekly-review.md) — the largest retro,
175
- and the main consumer that reads prior entries back.
183
+ daily writer (via the daemon-side appender).
184
+ - [Weekly Review](../routines/weekly-review.md) — the largest retro.
176
185
  - [Evening Review](../routines/evening-review.md) — appends short
177
186
  bookkeeping lines.
178
187
  - [Activity & Conversations](../operations/activity-and-conversations.md)
@@ -30,7 +30,7 @@ ask_examples:
30
30
  - How do I tune the lesson caps?
31
31
  locale: en-US
32
32
  created: 2026-06-08
33
- updated: 2026-06-08
33
+ updated: 2026-06-07
34
34
  keywords:
35
35
  - lessons
36
36
  - feedback
@@ -112,9 +112,10 @@ Those raw signals don't become lessons immediately. Each night the
112
112
  [evening review](../routines/evening-review.md) folds the day's
113
113
  unconsumed signals into the right store as dated lessons, then marks them
114
114
  consumed (it skips the step entirely when nothing pends). Once a month
115
- the monthly review runs a re-generalize pass that collapses several
116
- same-theme lessons into one higher-level principle, keeping each store
117
- small.
115
+ the monthly review off by default; opt in by enabling the
116
+ monthly-review agent at `/agents/monthly-review` runs a re-generalize
117
+ pass that collapses several same-theme lessons into one higher-level
118
+ principle, keeping each store small.
118
119
 
119
120
  ## Provisional vs. active
120
121
 
@@ -169,8 +170,8 @@ any time — the loop will pick up from whatever it finds the next night.
169
170
  - [Evening Review](../routines/evening-review.md) — folds the day's
170
171
  feedback signals into these stores each night.
171
172
  - [Weekly Review](../routines/weekly-review.md) — posts self-critique
172
- signals that feed the loop. The monthly review re-generalizes the
173
- stores once a month.
173
+ signals that feed the loop. The optional (off-by-default) monthly
174
+ review re-generalizes the stores once a month.
174
175
  - [agent journal](agent-journal.md) — the reflection-shaped diary, a
175
176
  separate file from these directive stores.
176
177
  - [Knowledge layout](../../reference/knowledge-layout.md) — where the
@@ -56,8 +56,8 @@ project's lifetime.
56
56
 
57
57
  - Captures the project's purpose, status, links, and recent decisions
58
58
  in a single durable note.
59
- - Surfaces in the morning routine while the project is active and the
60
- roadmap has Preparation Timeline rows pointing at it.
59
+ - Surfaces in the morning routine while the project is active (its
60
+ `state` is not `archived`).
61
61
  - Becomes the canonical reference the agent quotes from in DMs.
62
62
 
63
63
  ## File Shape
@@ -99,8 +99,9 @@ Read on demand. Written when the operator asks the agent to remember
99
99
  something project-specific, or when a DM expresses project intent
100
100
  (create, update status, mark done).
101
101
 
102
- The agent never edits files on disk — it has no `Edit`/`Write` tools.
103
- All project writes go through the context API:
102
+ The agent cannot edit context files on disk — a pre-write hook blocks
103
+ `Edit`/`Write` anywhere inside the context vault. All project writes go
104
+ through the context API:
104
105
 
105
106
  - `GET /api/context/list/projects` — discover existing project files.
106
107
  - `PUT /api/context/plans/projects/<slug>` — create or fully replace.
@@ -29,7 +29,7 @@ ask_examples:
29
29
  - How do I change which sections the daily journal includes?
30
30
  locale: en-US
31
31
  created: 2026-04-25
32
- updated: 2026-05-28
32
+ updated: 2026-06-10
33
33
  keywords:
34
34
  - daily journal
35
35
  - diary
@@ -43,6 +43,7 @@ related:
43
43
  - concepts/agent-day
44
44
  ui_anchors:
45
45
  - /schedule
46
+ - /agents/morning-routine?tab=rulebook
46
47
  process_keys:
47
48
  - routine.morning_routine_journal
48
49
  context_files:
@@ -122,7 +123,8 @@ do not rewrite them.
122
123
  The daily journal does **not** appear on the Schedule page — that page
123
124
  shows the scheduler's wake-ups and recurring routines, not these files.
124
125
 
125
- - **Journal settings (`/settings/journal`)** is where you shape the
126
+ - **The morning-routine agent's Rulebook tab
127
+ (`/agents/morning-routine?tab=rulebook`)** is where you shape the
126
128
  output: the Format and Export rule files control which sections
127
129
  appear, the voice, the required frontmatter, and the redaction /
128
130
  inclusion rules applied on every synthesis run. Edits take effect on
@@ -132,7 +134,8 @@ shows the scheduler's wake-ups and recurring routines, not these files.
132
134
 
133
135
  There is nothing to configure on the files themselves; they are a
134
136
  side effect of the morning routine. To change *what* gets written, edit
135
- the journal Format and Export rules at `/settings/journal`.
137
+ the journal Format and Export rules on the morning-routine agent's
138
+ Rulebook tab (`/agents/morning-routine?tab=rulebook`).
136
139
 
137
140
  Retention is unlimited — old files accumulate. A manual prune
138
141
  (`rm ~/.personal-agent/context/journal/daily/2025-*.md`) is safe.
@@ -9,7 +9,7 @@ aliases:
9
9
  category: features
10
10
  summary: |
11
11
  today.md is the live plan for the current agent day. The morning
12
- routine rebuilds it each day; the hourly check, evening review,
12
+ routine rebuilds it each day; the activity scan, evening review,
13
13
  and the operator all read and append to it during the day.
14
14
  section: memory-files
15
15
  tags:
@@ -23,7 +23,7 @@ ask_examples:
23
23
  - Why does today.md keep getting rewritten?
24
24
  locale: en-US
25
25
  created: 2026-04-25
26
- updated: 2026-05-28
26
+ updated: 2026-06-07
27
27
  keywords:
28
28
  - today
29
29
  - day plan
@@ -31,7 +31,7 @@ keywords:
31
31
  - handoff
32
32
  related:
33
33
  - features/routines/morning-routine
34
- - features/routines/hourly-check
34
+ - features/routines/activity-scan
35
35
  - features/routines/evening-review
36
36
  - features/memory-files/schedule
37
37
  - concepts/agent-day
@@ -59,7 +59,9 @@ today.md holds six sections, written in this order:
59
59
  - **User Schedule** — the day's calendar events.
60
60
  - **User Tasks** — today's external tasks plus agent-tracked to-dos.
61
61
  - **Agent Plan** — what the agent intends to work on today (each row is
62
- registered as a schedule entry by the morning routine).
62
+ registered as a schedule entry by the morning routine; mid-day
63
+ sessions may add rows for new signals or cancel ones whose premise
64
+ changed).
63
65
  - **Agent Notes** — look-ahead items and date-bound memos folded in from
64
66
  inbox triage.
65
67
  - **Agent Log** — what actually happened, appended throughout the day.
@@ -69,10 +71,11 @@ today.md holds six sections, written in this order:
69
71
 
70
72
  - The **morning routine** fully rebuilds today.md (the daemon first
71
73
  rotates the previous day's file to `state/yesterday.md`).
72
- - The **hourly check** routes new observations into the right section
74
+ - The **activity scan** routes new observations into the right section
73
75
  and appends short status lines under Agent Log.
74
76
  - The **evening review** finalizes the file — it updates Agent Log and
75
- the Handoff section before writing the daily journal.
77
+ the Handoff section. (The daily journal itself is written the next
78
+ morning, from the rotated file.)
76
79
 
77
80
  ## How It Is Written
78
81
 
@@ -94,6 +97,6 @@ during the morning routine: while the lock is held, a write to
94
97
  ## Related
95
98
 
96
99
  - [Morning routine](../routines/morning-routine.md)
97
- - [Hourly check](../routines/hourly-check.md)
100
+ - [Activity scan](../routines/activity-scan.md)
98
101
  - [Evening review](../routines/evening-review.md)
99
102
  - [schedule/ files](schedule.md)
@@ -13,7 +13,8 @@ category: features
13
13
  summary: |
14
14
  identity/profile.md is the agent's stable profile of the operator — role,
15
15
  focus areas, preferences, names of important people. The agent reads it
16
- on every session and appends only with the operator's permission.
16
+ on every session and silently appends durable facts the operator states
17
+ in DMs.
17
18
  section: memory-files
18
19
  tags:
19
20
  - memory
@@ -26,7 +27,7 @@ ask_examples:
26
27
  - Will the agent change my profile without asking?
27
28
  locale: en-US
28
29
  created: 2026-04-25
29
- updated: 2026-05-28
30
+ updated: 2026-06-07
30
31
  keywords:
31
32
  - user profile
32
33
  - identity/profile.md
@@ -54,8 +55,8 @@ context_files:
54
55
 
55
56
  ## In One Sentence
56
57
 
57
- A stable, mostly hand-edited profile of you — the agent reads it
58
- every session and appends only with explicit permission.
58
+ A stable profile of you — the agent reads it every session and
59
+ silently appends durable facts you state in DMs.
59
60
 
60
61
  ## What It Does
61
62
 
@@ -76,9 +77,12 @@ every session and appends only with explicit permission.
76
77
  ## When It Runs / How It Is Triggered
77
78
 
78
79
  - **Read continuously** — loaded at the start of every session.
79
- - **Written** only when you say "remember that…" in a DM, or during
80
- the profile sweep routine (`routine.user_profile_sweep`), which
81
- routes captured facts into the appropriate `identity/*.md` slice.
80
+ - **Written** silently, in the same turn, when you state a durable
81
+ fact about yourself in a DM ("remember that…", "I'm a…", "my
82
+ manager is…"), and during the profile sweep routine
83
+ (`routine.user_profile_sweep`), which catches facts the DM-time
84
+ capture missed and routes them into the appropriate
85
+ `identity/*.md` slice.
82
86
 
83
87
  The agent never edits these files directly. It writes through the
84
88
  daemon's context API — for example
@@ -101,8 +105,9 @@ To tell the agent a durable fact about yourself, just say it in a DM:
101
105
 
102
106
  > remember that my manager is Priya and we sync every Monday at 10am
103
107
 
104
- The agent appends a line to the relevant slice (here `identity/people.md`)
105
- after confirming, and recalls it in future sessions.
108
+ The agent silently appends a line to the relevant slice (here
109
+ `identity/people.md`) in the same turn, and recalls it in future
110
+ sessions.
106
111
 
107
112
  ## When Something Goes Wrong
108
113
 
@@ -6,6 +6,7 @@ id: bang-commands
6
6
  aliases:
7
7
  - "!stop"
8
8
  - "!start"
9
+ - "!status"
9
10
  - "!cost"
10
11
  - "!report"
11
12
  - "!help"
@@ -36,7 +37,7 @@ ask_examples:
36
37
  - How do I accept a research-cluster offer?
37
38
  locale: en-US
38
39
  created: 2026-05-12
39
- updated: 2026-05-28
40
+ updated: 2026-06-07
40
41
  keywords:
41
42
  - bang command
42
43
  - "!stop"
@@ -88,10 +89,21 @@ Pair your messaging app first; see
88
89
  | Command | What it does |
89
90
  |---|---|
90
91
  | `!help` | List every registered command — built-ins plus enabled user commands. |
91
- | `!stop` | Pause cron-driven autonomous work (hourly check, morning / evening / weekly routines, scheduled tasks). In-flight runs are **not** aborted. |
92
+ | `!stop` | Pause cron-driven autonomous work (activity scan, morning / evening / weekly routines, scheduled tasks). In-flight runs are **not** aborted. |
92
93
  | `!start` | Resume autonomous work after `!stop`. |
93
94
  | `!close` | Close the active DM session for the current routing tuple so the next DM starts a fresh conversation. |
94
95
 
96
+ ### Tasks (detached background / browser work)
97
+
98
+ These inspect and cancel the long-running detached workers (background
99
+ tasks and browser tasks). They run ahead of the agent — even while a DM
100
+ turn or a result-delivery turn is in flight — and are safe while paused.
101
+
102
+ | Command | What it does |
103
+ |---|---|
104
+ | `!status` | List the active background + browser tasks (kind, short id, state, title). Empty when nothing is running. |
105
+ | `!stop <id>` | Cancel one task by its id (the short id from `!status` is fine; any unambiguous prefix works). **Bare `!stop` (no id) pauses the whole agent** — the lifecycle command above. |
106
+
95
107
  ### Reporting (pure DB reads, safe while paused)
96
108
 
97
109
  | Command | What it does |
@@ -100,6 +112,7 @@ Pair your messaging app first; see
100
112
  | `!cost claude` · `!cost codex` · `!cost gemini` · `!cost opencode` | Spend for a single backend (one row per registered backend). |
101
113
  | `!report` | Recent agent failures (last 7 days, top groups, most recent sample). |
102
114
  | `!checks` | Today's top browser reload patterns (domain + first path segment). Pure read on `browser_reload_signals`; anchored on the agent-day (`dayBoundaryHour`). Empty state is the common case for a quiet day. |
115
+ | `!revert tuning` | Undo the most recent self-tuning config change (the one announced in a "Self-tuning (R…)" DM). Restores the previous value through the standard config chokepoint and puts the key into a 28-day re-proposal cool-down. Safe while paused. |
103
116
 
104
117
  ### Research clusters (browser-history)
105
118
 
@@ -193,9 +206,10 @@ were hidden.
193
206
 
194
207
  ## How They Behave
195
208
 
196
- - **Exact match for atomic commands** (`!stop`, `!cost`, `!checks`)
197
- and **prefix match for parameterised ones** (`!cost claude`,
198
- `!research accept <slug>`, `!compile @work full`). Anything
209
+ - **Exact match for atomic commands** (`!stop`, `!cost`, `!checks`
210
+ each `!cost <backend>` variant is its own exact-match entry) and
211
+ **prefix match for parameterised ones**
212
+ (`!research accept <slug>`, `!compile @work full`). Anything
199
213
  spanning newlines falls through to the agent path so a
200
214
  `"!stop\nignore me"` payload cannot spoof a command.
201
215
  - **DM only.** Bangs typed into a shared channel are ignored.
@@ -207,7 +221,8 @@ were hidden.
207
221
  - **While paused**, any DM (bang or not) replies with the paused
208
222
  notice; only commands that opt into `runsWhilePaused` continue to
209
223
  run: `!stop`, `!start`, `!close`, `!cost` (and `!cost <backend>`),
210
- `!report`, `!help`, `!checks`, `!wiki` (status), and `!wiki help`.
224
+ `!report`, `!help`, `!checks`, `!revert tuning`, `!wiki` (status),
225
+ and `!wiki help`.
211
226
  Every other command — including **all** `!research` subcommands and
212
227
  the LLM-dispatching wiki commands (`!ingest`, `!compile`, `!ask`,
213
228
  `!lint`, `!trace`, `!connect`) — replies with a command-aware
@@ -79,7 +79,7 @@ persisted under the chat session.
79
79
 
80
80
  Like a DM, `dashboard.chat` is a **reactive** ProcessKey: it runs on
81
81
  demand when you send, never on a schedule. Its default tier is
82
- **medium** (Claude Sonnet 4.6 by default) — the same tier as
82
+ **medium** (Claude Sonnet 5 by default) — the same tier as
83
83
  `message.dm`.
84
84
 
85
85
  ## Where in the Dashboard
@@ -53,9 +53,8 @@ related:
53
53
  ui_anchors:
54
54
  - /connections
55
55
  - /connections/messaging
56
- - /settings/connections
57
56
  - /settings/commands
58
- - /settings/schedule
57
+ - /settings/hours
59
58
  process_keys:
60
59
  - message.dm
61
60
  - message.mention
@@ -101,8 +100,9 @@ the owner channel independently.
101
100
 
102
101
  ## When It Runs / How It Is Triggered
103
102
 
104
- - The messaging adapter for each connected platform polls / receives
105
- webhooks for incoming messages.
103
+ - The messaging adapter for each connected platform long-polls
104
+ (Telegram) or holds a persistent WebSocket connection (Slack,
105
+ Discord, WhatsApp) for incoming messages.
106
106
  - An incoming DM dispatches to the `message.dm` ProcessKey.
107
107
  - An incoming mention dispatches to `message.mention`.
108
108
  - Notifications fire as a side-effect of routines and observations
@@ -111,21 +111,24 @@ the owner channel independently.
111
111
  ## What It Outputs
112
112
 
113
113
  - Replies in the operator's chosen messaging app.
114
- - Notification messages, batched during quiet hours.
114
+ - Notification messages suppressed during quiet hours; a pending
115
+ batch is deferred and delivered when the window ends (see
116
+ [Quiet Hours](../operations/quiet-hours.md)).
115
117
 
116
118
  ## Where in the Dashboard
117
119
 
118
120
  - **Connections (`/connections`)** is the unified pairing page.
119
121
  - **Connections → Messaging (`/connections/messaging`)** lists each
120
- app's status, owner channel, and rate limit settings.
122
+ app's status, owner pairing, and notification destinations.
121
123
 
122
124
  ## Configuration
123
125
 
124
126
  - Per-app: bot token / OAuth, owner channel, optional default channel.
125
127
  - Global: `primaryPlatform` (default `slack`) — the platform the agent
126
128
  prefers for outbound notifications when more than one app is paired.
127
- - Outbound rate limits and quiet hours live on `/settings/schedule`
128
- (see [Quiet Hours](../operations/quiet-hours.md)).
129
+ - Outbound rate limits and quiet hours live on `/settings/hours`
130
+ ("Hours & Notifications" — see
131
+ [Quiet Hours](../operations/quiet-hours.md)).
129
132
 
130
133
  ## When Something Goes Wrong
131
134
 
@@ -133,7 +136,7 @@ the owner channel independently.
133
136
  `/connections/messaging` first (see
134
137
  [Pairing & Magic Phrase](pairing-and-magic-phrase.md)).
135
138
  - A **notification you expected but did not get**: check quiet hours
136
- and rate limits on `/settings/schedule`.
139
+ and rate limits on `/settings/hours`.
137
140
 
138
141
  ## Related
139
142
 
@@ -61,7 +61,7 @@ detail lives one click deeper under Conversations.
61
61
 
62
62
  Activity is the unified view of:
63
63
 
64
- - **Routines**: morning, evening, weekly, hourly fires.
64
+ - **Routines**: morning, evening, weekly, activity-scan fires.
65
65
  - **Reactive sessions**: DMs, dashboard chat, mentions.
66
66
  - **Background actions**: notifications sent, mail labeled, schedule
67
67
  files written.