@aitne-sh/aitne 0.1.11 → 0.1.13

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 (151) hide show
  1. package/README.md +4 -0
  2. package/agent-assets/agent-profiles/background-task.md +8 -1
  3. package/agent-assets/agent-profiles/routine-fetch-window.md +11 -0
  4. package/agent-assets/agents/evening-review/agent.md +6 -2
  5. package/agent-assets/agents/lesson-maintenance/agent.md +56 -0
  6. package/agent-assets/agents/morning-routine/agent.md +10 -6
  7. package/agent-assets/agents/source-librarian/agent.md +51 -0
  8. package/agent-assets/docs/concepts/agent-day.md +15 -15
  9. package/agent-assets/docs/concepts/auth-health.md +10 -7
  10. package/agent-assets/docs/concepts/backends-and-tiers.md +34 -23
  11. package/agent-assets/docs/concepts/costs-and-quotas.md +10 -10
  12. package/agent-assets/docs/concepts/delegated-mode.md +18 -18
  13. package/agent-assets/docs/concepts/memory-model.md +25 -24
  14. package/agent-assets/docs/concepts/observations.md +27 -19
  15. package/agent-assets/docs/concepts/process-keys.md +25 -26
  16. package/agent-assets/docs/concepts/routines.md +18 -17
  17. package/agent-assets/docs/concepts/safety-and-execution.md +20 -17
  18. package/agent-assets/docs/concepts/safety-model.md +16 -15
  19. package/agent-assets/docs/concepts/skills.md +7 -4
  20. package/agent-assets/docs/features/integrations/browser-history.md +52 -47
  21. package/agent-assets/docs/features/integrations/calendar.md +7 -7
  22. package/agent-assets/docs/features/integrations/git.md +15 -13
  23. package/agent-assets/docs/features/integrations/github.md +12 -10
  24. package/agent-assets/docs/features/integrations/mail.md +47 -45
  25. package/agent-assets/docs/features/integrations/notion.md +15 -11
  26. package/agent-assets/docs/features/integrations/obsidian.md +27 -23
  27. package/agent-assets/docs/features/lifestyle/git.md +7 -8
  28. package/agent-assets/docs/features/lifestyle/reading.md +11 -8
  29. package/agent-assets/docs/features/lifestyle/receipts.md +21 -22
  30. package/agent-assets/docs/features/lifestyle/travel-bookings.md +9 -9
  31. package/agent-assets/docs/features/memory-files/agent-journal.md +12 -10
  32. package/agent-assets/docs/features/memory-files/agent-lessons.md +46 -21
  33. package/agent-assets/docs/features/memory-files/projects.md +13 -14
  34. package/agent-assets/docs/features/memory-files/roadmap.md +16 -15
  35. package/agent-assets/docs/features/memory-files/schedule.md +10 -10
  36. package/agent-assets/docs/features/memory-files/today.md +18 -18
  37. package/agent-assets/docs/features/memory-files/user-profile.md +17 -17
  38. package/agent-assets/docs/features/messaging/bang-commands.md +15 -15
  39. package/agent-assets/docs/features/messaging/dashboard-chat.md +8 -7
  40. package/agent-assets/docs/features/messaging/discord.md +7 -5
  41. package/agent-assets/docs/features/messaging/overview.md +14 -14
  42. package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +12 -12
  43. package/agent-assets/docs/features/messaging/slack.md +9 -8
  44. package/agent-assets/docs/features/messaging/telegram.md +7 -7
  45. package/agent-assets/docs/features/messaging/whatsapp.md +6 -6
  46. package/agent-assets/docs/features/operations/activity-and-conversations.md +9 -9
  47. package/agent-assets/docs/features/operations/approvals.md +13 -12
  48. package/agent-assets/docs/features/operations/backend-routing.md +38 -37
  49. package/agent-assets/docs/features/operations/browser-tasks.md +63 -57
  50. package/agent-assets/docs/features/operations/cost-tracking.md +5 -5
  51. package/agent-assets/docs/features/operations/managed-chromium.md +23 -22
  52. package/agent-assets/docs/features/operations/notifications.md +15 -15
  53. package/agent-assets/docs/features/operations/quiet-hours.md +14 -15
  54. package/agent-assets/docs/features/operations/schedule-approaching.md +16 -14
  55. package/agent-assets/docs/features/routines/activity-scan.md +14 -11
  56. package/agent-assets/docs/features/routines/custom-routines.md +9 -7
  57. package/agent-assets/docs/features/routines/evening-review.md +6 -7
  58. package/agent-assets/docs/features/routines/morning-routine.md +23 -22
  59. package/agent-assets/docs/features/routines/weekly-review.md +57 -51
  60. package/agent-assets/docs/features/wiki/commands.md +28 -22
  61. package/agent-assets/docs/features/wiki/cost-and-approval.md +28 -23
  62. package/agent-assets/docs/features/wiki/dashboard.md +22 -24
  63. package/agent-assets/docs/features/wiki/overview.md +17 -25
  64. package/agent-assets/docs/features/wiki/search.md +15 -17
  65. package/agent-assets/docs/features/wiki/workspaces.md +55 -56
  66. package/agent-assets/docs/getting-started/01-what-is-this.md +4 -5
  67. package/agent-assets/docs/getting-started/02-first-steps.md +12 -13
  68. package/agent-assets/docs/getting-started/03-what-can-this-do.md +7 -7
  69. package/agent-assets/docs/getting-started/04-first-day.md +4 -5
  70. package/agent-assets/docs/glossary.md +21 -19
  71. package/agent-assets/docs/guides/add-a-custom-routine.md +17 -12
  72. package/agent-assets/docs/guides/backup-and-restore.md +19 -16
  73. package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +57 -62
  74. package/agent-assets/docs/guides/build-your-wiki.md +11 -12
  75. package/agent-assets/docs/guides/change-which-model-handles-x.md +30 -28
  76. package/agent-assets/docs/guides/connect-a-new-mail-account.md +30 -29
  77. package/agent-assets/docs/guides/explore-with-trace-and-connect.md +30 -32
  78. package/agent-assets/docs/guides/import-knowledge-file.md +9 -10
  79. package/agent-assets/docs/guides/install-and-run.md +9 -10
  80. package/agent-assets/docs/guides/maintain-wiki-health.md +10 -10
  81. package/agent-assets/docs/guides/migrate-machines.md +16 -14
  82. package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +12 -13
  83. package/agent-assets/docs/guides/pause-the-agent.md +25 -25
  84. package/agent-assets/docs/guides/reinstall-cleanly.md +13 -12
  85. package/agent-assets/docs/guides/setup-wizard.md +10 -12
  86. package/agent-assets/docs/guides/switch-default-backend.md +9 -9
  87. package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +9 -11
  88. package/agent-assets/docs/pages/activity.md +76 -0
  89. package/agent-assets/docs/pages/agents.md +78 -0
  90. package/agent-assets/docs/pages/analytics.md +70 -0
  91. package/agent-assets/docs/pages/browser.md +73 -0
  92. package/agent-assets/docs/pages/chat.md +67 -0
  93. package/agent-assets/docs/pages/connections.md +78 -0
  94. package/agent-assets/docs/pages/git.md +73 -0
  95. package/agent-assets/docs/pages/knowledge.md +75 -0
  96. package/agent-assets/docs/pages/overview.md +90 -0
  97. package/agent-assets/docs/pages/reading.md +65 -0
  98. package/agent-assets/docs/pages/settings.md +77 -0
  99. package/agent-assets/docs/pages/tasks.md +74 -0
  100. package/agent-assets/docs/pages/wiki.md +73 -0
  101. package/agent-assets/docs/reference/api.md +18 -17
  102. package/agent-assets/docs/reference/cli-commands.md +13 -10
  103. package/agent-assets/docs/reference/config.md +40 -35
  104. package/agent-assets/docs/reference/disallowed-tools.md +18 -17
  105. package/agent-assets/docs/reference/keyboard-shortcuts.md +6 -8
  106. package/agent-assets/docs/reference/knowledge-layout.md +10 -10
  107. package/agent-assets/docs/reference/process-keys.md +20 -22
  108. package/agent-assets/docs/reference/skills.md +18 -16
  109. package/agent-assets/docs/troubleshooting/auth-failed.md +13 -11
  110. package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +10 -10
  111. package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +26 -24
  112. package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +8 -9
  113. package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +19 -18
  114. package/agent-assets/docs/troubleshooting/observation-not-detected.md +14 -15
  115. package/agent-assets/docs/troubleshooting/quota-exhausted.md +28 -26
  116. package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +35 -34
  117. package/agent-assets/docs/troubleshooting/wiki-write-failed.md +21 -24
  118. package/agent-assets/playbooks/markdown-note.md +43 -0
  119. package/agent-assets/playbooks/monitoring.md +29 -0
  120. package/agent-assets/playbooks/research.md +47 -0
  121. package/agent-assets/skills/agent-create/SKILL.md +71 -32
  122. package/agent-assets/skills/agent-create/references/prompt-frame-extended.md +132 -0
  123. package/agent-assets/skills/agent-create/references/prompt-frame.md +125 -0
  124. package/agent-assets/skills/background-task/SKILL.md +13 -8
  125. package/agent-assets/skills/background-task-reply/SKILL.md +2 -2
  126. package/agent-assets/skills/board/SKILL.md +92 -0
  127. package/agent-assets/skills/browser-history/SKILL.md +3 -3
  128. package/agent-assets/skills/browser-history-respond/SKILL.md +3 -3
  129. package/agent-assets/skills/browser-task/SKILL.md +4 -2
  130. package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +2 -1
  131. package/agent-assets/skills/schedule/SKILL.md +21 -18
  132. package/agent-assets/skills/schedule/references/batch.md +1 -1
  133. package/agent-assets/skills/schedule/references/model-selection.md +1 -1
  134. package/agent-assets/skills/schedule/references/prompt-frame.md +125 -0
  135. package/agent-assets/skills/sources/SKILL.md +68 -0
  136. package/agent-assets/skills/sources/curation.json +21 -0
  137. package/agent-assets/skills/sources/seeds/filing-rules.seed.json +25 -0
  138. package/agent-assets/skills/sources/seeds/source-collections.seed.json +20 -0
  139. package/agent-assets/skills/task/SKILL.md +82 -0
  140. package/agent-assets/task-flows/background_task.md +29 -3
  141. package/agent-assets/task-flows/message.received.dm.md +1 -1
  142. package/agent-assets/task-flows/routine.activity_scan.md +17 -2
  143. package/agent-assets/task-flows/routine.evening_review.md +72 -11
  144. package/agent-assets/task-flows/routine.fetch_window.md +21 -0
  145. package/agent-assets/task-flows/routine.monthly_review.md +3 -1
  146. package/agent-assets/task-flows/routine.morning_routine_today.md +26 -7
  147. package/agent-assets/task-flows/routine.source_maintenance.md +50 -0
  148. package/agent-assets/task-flows/scheduled.dm.md +29 -16
  149. package/agent-assets/templates/_manifest.json +1 -0
  150. package/agent-assets/templates/knowledge/sources/_index.md +19 -0
  151. package/package.json +4 -4
@@ -28,7 +28,6 @@ tags:
28
28
  - github
29
29
  - autonomous
30
30
  - observations
31
- - core
32
31
  status: stable
33
32
  ask_examples:
34
33
  - What is the My Life › Git page for?
@@ -46,7 +45,7 @@ ask_examples:
46
45
  - How much does one Architecture refresh cost?
47
46
  locale: en-US
48
47
  created: 2026-05-05
49
- updated: 2026-06-07
48
+ updated: 2026-07-01
50
49
  keywords:
51
50
  - my life
52
51
  - git
@@ -102,18 +101,18 @@ The page lists every repository registered on
102
101
  **Connections → Repositories** and exposes three collapsible sections
103
102
  per repo (all open by default so the controls are visible at a glance):
104
103
 
105
- 1. **Polling** — overrides the global `gitPollIntervalSeconds` for
106
- this repository alone. Useful when one repo is high-traffic and
107
- you want it scanned more aggressively (or vice-versa). Also shows
108
- the most recent observations gathered from that repo's polling
109
- sources.
104
+ 1. **Polling** — how often the agent checks this repo for new
105
+ activity. It overrides the global `gitPollIntervalSeconds` for
106
+ this repository alone, which is handy when one repo is busy and you
107
+ want it scanned more often (or the reverse). It also shows the most
108
+ recent observations gathered from that repo's polling sources.
110
109
  2. **Triggers** — fire when matching Git or GitHub events arrive on
111
110
  this repository. Triggers run **alongside** the project-wide
112
111
  task-flow defaults, not in place of them. Each trigger has a
113
112
  workdir mode (`local-clone` or `temp`); local-clone triggers
114
113
  require the repository to have a `localPath`.
115
114
  3. **Daily git management** — opt-in per repo. Enabling it does three
116
- distinct kinds of work, on different cadences:
115
+ distinct kinds of work, each on its own schedule:
117
116
  - On the first **Generate overview** click, writes the curated
118
117
  `knowledge/repos/<slug>/overview.md` skeleton, mirrors the source
119
118
  `README.*` to `knowledge/repos/<slug>/README.md`, and
@@ -26,7 +26,7 @@ ask_examples:
26
26
  - Where do reading-list items get stored?
27
27
  locale: en-US
28
28
  created: 2026-04-25
29
- updated: 2026-06-07
29
+ updated: 2026-07-01
30
30
  keywords:
31
31
  - reading
32
32
  - books
@@ -37,6 +37,7 @@ related:
37
37
  - features/memory-files/user-profile
38
38
  - features/lifestyle/receipts
39
39
  - features/lifestyle/travel-bookings
40
+ - pages/reading
40
41
  api_endpoints:
41
42
  - GET /api/books
42
43
  - PATCH /api/books/:id
@@ -52,7 +53,7 @@ ui_anchors:
52
53
 
53
54
  A reading list backed by the `books` and `reading_highlights` SQLite
54
55
  tables: imports your Kindle highlights, tracks each book's status
55
- (`reading`, `completed`, or `abandoned`), and surfaces the working set
56
+ (`reading`, `completed`, or `abandoned`), and shows your current list
56
57
  at `/reading`.
57
58
 
58
59
  ## What It Does
@@ -65,14 +66,15 @@ at `/reading`.
65
66
  "Export Notebook" email.
66
67
  - **List** the library on `/reading` or via `GET /api/books`
67
68
  (filterable by `status` and `source`, paginated to 200 rows per call).
68
- - **Mark complete or abandoned** — an existing row is updated via
69
- `PATCH /api/books/:id`. This is an **Approve-tier** write that requires
70
- an operator `Authorization: Bearer` token, so it is driven from the
71
- dashboard, not autonomously by the agent (an unauthenticated agent curl
72
- is rejected with **401** before the handler runs). Setting `status` to
69
+ - **Mark complete or abandoned** — `PATCH /api/books/:id` updates a book
70
+ that already exists. This is an **Approve-tier** write (a change that
71
+ needs your explicit sign-off), so it requires an operator
72
+ `Authorization: Bearer` token and runs from the dashboard rather than
73
+ on the agent's own initiative (an unauthenticated agent curl is
74
+ rejected with **401** before the handler runs). Setting `status` to
73
75
  `completed` stamps `completed_at` automatically; you can also set a 1–5
74
76
  `rating` or `notes`.
75
- - **Recommend** from the list during reactive turns, and refresh the
77
+ - **Recommend** from the list when you ask in a chat, and refresh the
76
78
  reading-taste profile during the weekly review.
77
79
 
78
80
  There is **no bare "add a book" endpoint** — new books arrive through the
@@ -126,5 +128,6 @@ drives the list shape. The reading skill loads in two situations:
126
128
 
127
129
  ## Related
128
130
 
131
+ - [Reading Page](../../pages/reading.md)
129
132
  - [Receipts](receipts.md)
130
133
  - [Travel Bookings](travel-bookings.md)
@@ -16,7 +16,6 @@ summary: |
16
16
  section: lifestyle
17
17
  tags:
18
18
  - lifestyle
19
- - receipts
20
19
  - mail
21
20
  - integrations
22
21
  status: stable
@@ -27,7 +26,7 @@ ask_examples:
27
26
  - What receipts haven't I saved yet?
28
27
  locale: en-US
29
28
  created: 2026-04-25
30
- updated: 2026-06-07
29
+ updated: 2026-07-01
31
30
  keywords:
32
31
  - receipt
33
32
  - invoice
@@ -58,10 +57,10 @@ your external Obsidian vault on request.
58
57
  ## How Detection Works
59
58
 
60
59
  The mail observer scans travel-booking emails across every connected
61
- mail account and records each attachment it finds. Each detected
62
- attachment inserts a row into the `receipts` table, keyed uniquely on
63
- `(account_id, provider_msg_id, attachment_id)` so re-scans are
64
- idempotent. Columns:
60
+ mail account and records each attachment it finds. Every detected
61
+ attachment becomes one row in the `receipts` table. Each row is keyed
62
+ uniquely on `(account_id, provider_msg_id, attachment_id)`, so
63
+ re-scanning the same mail never creates a duplicate. Columns:
65
64
 
66
65
  - `category` — `travel` at detection time; reclassify to `document`
67
66
  via PATCH (nullable on legacy rows)
@@ -72,22 +71,22 @@ idempotent. Columns:
72
71
  vault (see below)
73
72
  - `id`, `created_at` — row identity and detection time
74
73
 
75
- There is no Markdown context file for receipts; the durable record is
76
- the SQLite row plus the optional Obsidian copy.
74
+ There is no Markdown context file for receipts. The lasting record is
75
+ the SQLite row, plus the optional Obsidian copy you save yourself.
77
76
 
78
77
  ## Saving a Receipt to Your Vault
79
78
 
80
- Saving is a two-step flow the download endpoint never writes to the
81
- vault by itself:
79
+ Saving takes two steps. The download endpoint never writes to the vault
80
+ on its own:
82
81
 
83
- 1. The agent downloads the original bytes via
82
+ 1. The agent downloads the original bytes with
84
83
  `POST /api/receipts/:id/download`, which streams the raw attachment
85
- (resolved through the mail registry by `account_id`; oversized files
86
- over 100 MB and orphaned rows with a null `account_id` are rejected).
87
- 2. The agent writes the file into your **external** Obsidian vault — not
88
- the primary management vault — under the convention
89
- `receipts/YYYY/MM/<merchant>-<date>.<ext>` (e.g.
90
- `receipts/2026/04/amazon-2026-04-12.pdf`), then records that path
84
+ (found in the mail registry by `account_id`). Files larger than
85
+ 100 MB, and orphaned rows with a null `account_id`, are rejected.
86
+ 2. The agent writes the file into your **external** Obsidian vault —
87
+ not the primary management vault — using the naming convention
88
+ `receipts/YYYY/MM/<merchant>-<date>.<ext>` (for example,
89
+ `receipts/2026/04/amazon-2026-04-12.pdf`). It then records that path
91
90
  with `PATCH /api/receipts/:id` (body `{"obsidianPath": "..."}`),
92
91
  which also stamps `saved_at`.
93
92
 
@@ -96,11 +95,11 @@ To reclassify a receipt, the agent PATCHes `{"category": "travel"}`
96
95
 
97
96
  ## Where in the Dashboard
98
97
 
99
- There is no dedicated tab today. Receipts surface inline when you ask
100
- for them in chat (e.g. "what receipts haven't I saved yet?"). List and
101
- filter them with `GET /api/receipts` (`category`, `saved`, `limit`
102
- params) and pull totals from `GET /api/receipts/summary`. The full API
103
- is documented in
98
+ There is no dedicated tab yet. Receipts show up inline when you ask for
99
+ them in chat (for example, "what receipts haven't I saved yet?"). List
100
+ and filter them with `GET /api/receipts` (the `category`, `saved`, and
101
+ `limit` params) and pull totals from `GET /api/receipts/summary`. The
102
+ full API is documented in
104
103
  `agent-assets/skills/gmail-lifestyle/references/receipts-api.md`
105
104
  (loaded by the `gmail-lifestyle` skill).
106
105
 
@@ -17,7 +17,6 @@ summary: |
17
17
  section: lifestyle
18
18
  tags:
19
19
  - lifestyle
20
- - travel
21
20
  - mail
22
21
  - integrations
23
22
  status: stable
@@ -27,7 +26,7 @@ ask_examples:
27
26
  - Where are my travel bookings stored?
28
27
  locale: en-US
29
28
  created: 2026-04-25
30
- updated: 2026-06-07
29
+ updated: 2026-07-01
31
30
  keywords:
32
31
  - flight
33
32
  - hotel
@@ -76,10 +75,10 @@ confirmation email never creates a duplicate row.
76
75
 
77
76
  ## How Bookings Get Created
78
77
 
79
- Bookings are extracted from email only — there is no manual "log a
80
- flight" command or DM shortcut. To start capturing travel, connect a
81
- mail account (see [Mail](features/integrations/mail)) and let the
82
- classifier do the rest. The flow is:
78
+ Bookings come from email only — there is no manual "log a flight"
79
+ command or DM shortcut. To start capturing travel, connect a mail
80
+ account (see [Mail](../integrations/mail.md)) and let the classifier
81
+ do the rest. The flow is:
83
82
 
84
83
  1. The mail poller fetches new messages.
85
84
  2. The classifier (`gmail_classify`, lite tier) tags travel
@@ -99,9 +98,10 @@ classifier do the rest. The flow is:
99
98
 
100
99
  ## API
101
100
 
102
- Read-only and status-update access (read endpoints are read-sensitive —
103
- they expose personal travel data; the PATCH endpoint follows the standard
104
- write-safety tier and requires approval):
101
+ These endpoints give read and status-update access. The two read
102
+ endpoints are read-sensitive, because they expose personal travel data.
103
+ The `PATCH` endpoint follows the standard write-safety tier, so it
104
+ requires approval before it runs.
105
105
 
106
106
  ```bash
107
107
  # All bookings (optionally filter by type/status/date range)
@@ -17,7 +17,6 @@ section: memory-files
17
17
  tags:
18
18
  - memory
19
19
  - journal
20
- - reflection
21
20
  - routines
22
21
  status: stable
23
22
  ask_examples:
@@ -27,7 +26,7 @@ ask_examples:
27
26
  - Why did journal/agent.md stop growing?
28
27
  locale: en-US
29
28
  created: 2026-04-25
30
- updated: 2026-06-07
29
+ updated: 2026-07-01
31
30
  keywords:
32
31
  - journal
33
32
  - retros
@@ -77,20 +76,22 @@ Each entry carries:
77
76
  - The reflection itself.
78
77
 
79
78
  The file lives at `~/.personal-agent/context/journal/agent.md`. The
80
- day-to-day morning and ad-hoc entries accumulate indefinitely; the
81
- daily retention rollup keeps only a rolling window of the structured
82
- retros (the most recent 12 `## Weekly` and 24 `## Monthly` sections),
83
- pruning older ones. Later routines read it back to look for patterns.
79
+ day-to-day morning and ad-hoc entries accumulate indefinitely. A daily
80
+ retention rollup then keeps only a rolling window of the structured
81
+ retros the most recent 12 `## Weekly` and 24 `## Monthly` sections
82
+ and prunes older ones. Later routines read the file back to look for
83
+ patterns.
84
84
 
85
85
  ## Who writes it, and when
86
86
 
87
87
  Three routines append to the journal — none ever rewrites it:
88
88
 
89
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
90
+ daemon (the always-on local background service) does the writing
91
+ itself, rather than an AI-model (LLM) stage. Once the day's
91
92
  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
93
+ `routine.morning_routine_journal`) finish, the daemon appends a
94
+ one-paragraph audit-trail entry built from the run's
94
95
  `agent_actions` rows — stage results, inbox stats, anomalies — plus
95
96
  a one-line footprint of the prior day's actions. This is the entry
96
97
  you'll see most often.
@@ -104,7 +105,8 @@ Three routines append to the journal — none ever rewrites it:
104
105
  rejected. It does not write the bulk of the diary.
105
106
 
106
107
  In-the-moment notes can also land here when the agent flags something
107
- worth recording during reactive work.
108
+ worth recording during reactive work — its live back-and-forth with
109
+ you, outside the scheduled routines.
108
110
 
109
111
  ### Example entry
110
112
 
@@ -18,8 +18,6 @@ summary: |
18
18
  section: memory-files
19
19
  tags:
20
20
  - memory
21
- - feedback
22
- - learning
23
21
  - routines
24
22
  status: beta
25
23
  ask_examples:
@@ -30,7 +28,7 @@ ask_examples:
30
28
  - How do I tune the lesson caps?
31
29
  locale: en-US
32
30
  created: 2026-06-08
33
- updated: 2026-06-07
31
+ updated: 2026-07-01
34
32
  keywords:
35
33
  - lessons
36
34
  - feedback
@@ -61,20 +59,21 @@ ui_anchors:
61
59
 
62
60
  The lesson stores are where the agent remembers how you want it to
63
61
  behave: a short, dated list of learned directives that grows from your
64
- corrections and the agent's own retros, and is fed back into the agent's
65
- work so it stops repeating the same mistakes.
62
+ corrections and from the agent's own reviews of its work, and is fed back
63
+ into the agent's work so it stops repeating the same mistakes.
66
64
 
67
65
  ## What they are
68
66
 
69
67
  There are two kinds of store:
70
68
 
71
69
  - **Global agent behavior** — `policies/agent-lessons.md`. Lessons that
72
- apply to the agent as a whole. These are injected into your DM
73
- conversations and into the routines that decide whether to notify you.
70
+ apply to the agent as a whole. They are fed into your DM (direct
71
+ message) chats with the agent and into the routines that decide whether
72
+ to notify you.
74
73
  - **Per-agent** — `policies/agents/<slug>/lessons.md`, one per Agent
75
- Definition. These are injected **only** into that agent's own
76
- executions, so a lesson learned for your "weekly-report" agent never
77
- leaks into an unrelated one.
74
+ Definition. These are fed in **only** when that agent itself runs, so a
75
+ lesson learned for your "weekly-report" agent never leaks into an
76
+ unrelated one.
78
77
 
79
78
  Both live under `~/.personal-agent/context/policies/`, alongside your
80
79
  other rule files, and are plain Markdown you can read or hand-edit.
@@ -111,7 +110,7 @@ it for you. There are three ways signals enter:
111
110
  Those raw signals don't become lessons immediately. Each night the
112
111
  [evening review](../routines/evening-review.md) folds the day's
113
112
  unconsumed signals into the right store as dated lessons, then marks them
114
- consumed (it skips the step entirely when nothing pends). Once a month
113
+ consumed (it skips the step entirely when nothing is waiting). Once a month
115
114
  the monthly review — off by default; opt in by enabling the
116
115
  monthly-review agent at `/agents/monthly-review` — runs a re-generalize
117
116
  pass that collapses several same-theme lessons into one higher-level
@@ -122,8 +121,8 @@ principle, keeping each store small.
122
121
  A new lesson is stored but is not necessarily *injected* right away. A
123
122
  lesson carries a `<!-- provisional -->` marker until it has enough
124
123
  corroborating evidence; provisional lessons sit in the file but are not
125
- fed into the agent's prompts. This avoids over-fitting to a single
126
- offhand comment.
124
+ fed into the agent's prompts. This keeps the agent from over-reacting to a
125
+ single offhand comment.
127
126
 
128
127
  How a lesson crosses from provisional to active:
129
128
 
@@ -135,6 +134,26 @@ How a lesson crosses from provisional to active:
135
134
  promotes on the first occurrence — it is taken at your word.
136
135
  - An **ignore on its own never promotes** a lesson, and is never read as
137
136
  disapproval.
137
+ - A candidate that **contradicts an established lesson** (one whose
138
+ confidence is at or above `feedbackContradictionGuardCf`, default 0.6)
139
+ is held provisional until it accumulates 1.5x the usual evidence — a
140
+ single stray signal can't flip a well-supported lesson. Your explicit
141
+ corrections bypass this guard entirely.
142
+
143
+ ## Confidence (`cf`)
144
+
145
+ Every lesson carries a numeric confidence `cf` between 0 and 1, stamped
146
+ deterministically by the daemon (never trusted from the model's rewrite).
147
+ It rises with corroboration and decays with time since the lesson was
148
+ last reinforced. Inferred lessons whose decayed confidence falls below
149
+ `feedbackLessonConfidenceFloor` (default 0.25) quietly stop being
150
+ injected — but the two highest-authority classes are protected: a
151
+ durable `constraint` is never filtered, and an explicit owner correction
152
+ is tested on its undecayed confidence (obeying a directive produces no
153
+ new signals, so decay alone can't silently un-bind it). A daily
154
+ mechanical pass (the **Lesson Maintenance** agent at
155
+ `/agents/lesson-maintenance`, 17:40) keeps the stamps fresh even on days
156
+ with no new feedback.
138
157
 
139
158
  ## Bounded by design
140
159
 
@@ -142,19 +161,25 @@ The stores can't grow without limit. Each is capped in bytes and entry
142
161
  count — the global store at `feedbackLessonMaxBytesGlobal` bytes
143
162
  (default 8192) / 40 entries, the per-agent stores at
144
163
  `feedbackLessonMaxBytesPerAgent` (default 4096) / 20 entries. When a
145
- store is full, the lowest-signal lessons are dropped first. Lessons that
146
- go untouched for `feedbackLessonStaleDays` (default 60) are pruned — with
147
- one exception: a `kind=constraint` lesson is durable and is never
148
- stale-pruned or collapsed away. The underlying feedback signals
149
- themselves are retained for `feedbackSignalRetentionDays` (default 180).
164
+ store is full, the lowest-signal lessons are dropped first. Expiration is
165
+ graduated and reversible: a lesson untouched past
166
+ `feedbackLessonStaleDays` (default 60) whose decayed confidence is below
167
+ the floor **demotes** back to provisional; a provisional lesson that goes
168
+ uncorroborated for twice that horizon is **archived** (removed from the
169
+ file — its raw signals remain in the database); fresh corroboration
170
+ **re-promotes** a demoted lesson. One exception: a `kind=constraint`
171
+ lesson is durable and never expires or collapses away. The underlying
172
+ feedback signals themselves are retained for
173
+ `feedbackSignalRetentionDays` (default 180).
150
174
 
151
175
  ## Where in the dashboard
152
176
 
153
177
  **Settings → Lessons** (`/settings/lessons`, labelled "Lessons" with a
154
- **Preview** badge) is the read/tune surface. From there you can view and
155
- edit the lessons themselves and adjust every knob above:
178
+ **Preview** badge) is where you read and tune all of this. From there you
179
+ can view and edit the lessons themselves and adjust every knob above:
156
180
  `feedbackLearningEnabled` (the master kill-switch, on by default),
157
- `feedbackPromotionThreshold`, the byte caps, the stale-days horizon, and
181
+ `feedbackPromotionThreshold`, the byte caps, the stale-days horizon, the
182
+ confidence floor, the contradiction guard, the outcome-rollup toggle, and
158
183
  the signal retention window. Turning `feedbackLearningEnabled` off stops
159
184
  both capture and consolidation.
160
185
 
@@ -16,8 +16,6 @@ summary: |
16
16
  section: memory-files
17
17
  tags:
18
18
  - memory
19
- - projects
20
- - core
21
19
  status: stable
22
20
  ask_examples:
23
21
  - Where do I find the per-project files?
@@ -25,7 +23,7 @@ ask_examples:
25
23
  - How does the agent write to a project file?
26
24
  locale: en-US
27
25
  created: 2026-04-25
28
- updated: 2026-06-07
26
+ updated: 2026-07-01
29
27
  keywords:
30
28
  - projects
31
29
  - project file
@@ -67,11 +65,11 @@ only the minimum — `type: project`, `owner: shared`, an `updated`
67
65
  date, and an H1 title. By convention the agent also writes `slug`,
68
66
  `state`, `start`, `due`, `stakeholders`, `next_milestone`, and `tags`.
69
67
 
70
- `state` is what marks a project **active**: the Obsidian `_active.base`
71
- Bases view filters on it (`state != "archived"`), and the morning
72
- routine surfaces every project whose `state` is not `archived` — a
73
- file with no `state` (or any state other than `archived`) is treated
74
- as active and surfaced.
68
+ The `state` field is what marks a project **active**. The Obsidian
69
+ `_active.base` view filters on it (keeping rows where
70
+ `state != "archived"`), and the morning routine surfaces every project
71
+ whose `state` is not `archived`. A file with no `state` at all or any
72
+ state other than `archived` — counts as active and shows up.
75
73
 
76
74
  ```markdown
77
75
  ---
@@ -95,13 +93,14 @@ Ship the public beta before the conference.
95
93
 
96
94
  ## When It Runs / How It Is Triggered
97
95
 
98
- Read on demand. Written when the operator asks the agent to remember
99
- something project-specific, or when a DM expresses project intent
100
- (create, update status, mark done).
96
+ Read on demand. Written when you ask the agent to remember something
97
+ project-specific, or when a direct message (DM) signals project intent
98
+ create, update status, or mark done.
101
99
 
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:
100
+ The agent cannot edit context files directly on disk: a pre-write hook
101
+ blocks the `Edit` and `Write` tools anywhere inside the context vault
102
+ (the folder that holds these Markdown memory files). Instead, every
103
+ project write goes through the context API:
105
104
 
106
105
  - `GET /api/context/list/projects` — discover existing project files.
107
106
  - `PUT /api/context/plans/projects/<slug>` — create or fully replace.
@@ -9,13 +9,13 @@ aliases:
9
9
  - preparation timeline
10
10
  category: features
11
11
  summary: |
12
- roadmap.md captures long-running goals plus Preparation Timeline
13
- rows that fire on specific days. The morning routine walks the
14
- roadmap each day to surface items whose offsets fire.
12
+ roadmap.md holds long-running goals plus Preparation Timeline
13
+ rows dated for specific days. Each day the morning routine reads the
14
+ roadmap and surfaces any row whose date has arrived.
15
15
  section: memory-files
16
16
  tags:
17
17
  - memory
18
- - core
18
+ - scheduler
19
19
  status: stable
20
20
  ask_examples:
21
21
  - What is the roadmap file?
@@ -24,7 +24,7 @@ ask_examples:
24
24
  - How do I add a roadmap entry?
25
25
  locale: en-US
26
26
  created: 2026-04-25
27
- updated: 2026-06-07
27
+ updated: 2026-07-01
28
28
  keywords:
29
29
  - roadmap.md
30
30
  - roadmap
@@ -49,7 +49,7 @@ context_files:
49
49
  ## In One Sentence
50
50
 
51
51
  A multi-week plan: each goal carries dates and Preparation Timeline
52
- rows that the morning routine fires on the day they come due.
52
+ rows, and the morning routine surfaces each row on the day it comes due.
53
53
 
54
54
  ## What It Does
55
55
 
@@ -87,16 +87,17 @@ hotel", and so on.
87
87
 
88
88
  ## When It Runs / How It Is Triggered
89
89
 
90
- Read by the morning routine each day, which walks the roadmap and
91
- surfaces any Preparation Timeline rows dated for that day (or overdue).
92
- The file is updated by the operator, or by the agent on request (for
93
- example via the roadmap skill or `aitne run-now roadmap_maintenance`).
90
+ The morning routine reads the roadmap each day and surfaces any
91
+ Preparation Timeline rows dated for that day plus any earlier row it
92
+ has not handled yet (overdue). You can update the file yourself, or ask
93
+ the agent to (for example via the roadmap skill or
94
+ `aitne run-now roadmap_maintenance`).
94
95
 
95
- The agent never edits the file directly. All writes go through the
96
+ The agent never edits the file directly. Every write goes through the
96
97
  daemon's context endpoint — `PUT /api/context/plans/roadmap` (full
97
- replace) or `PATCH /api/context/plans/roadmap` (section op) which is
98
- guarded by an exclusive roadmap write lock so two flows can't clobber
99
- each other.
98
+ replace) or `PATCH /api/context/plans/roadmap` (section op). A write
99
+ lock holds the roadmap exclusively during each write, so two flows can
100
+ never overwrite each other.
100
101
 
101
102
  ## Where in the Dashboard
102
103
 
@@ -104,6 +105,6 @@ each other.
104
105
 
105
106
  ## Related
106
107
 
107
- - [Morning Routine](../../routines/morning-routine.md) — reads the roadmap each day.
108
+ - [Morning Routine](../routines/morning-routine.md) — reads the roadmap each day.
108
109
  - [Projects](projects.md) — deeper, per-project context the roadmap links to.
109
110
  - [today.md](today.md) — the single-day plan the roadmap feeds into.
@@ -21,7 +21,6 @@ tags:
21
21
  - memory
22
22
  - journal
23
23
  - routines
24
- - core
25
24
  status: stable
26
25
  ask_examples:
27
26
  - Where does the agent store the day's diary?
@@ -29,7 +28,7 @@ ask_examples:
29
28
  - How do I change which sections the daily journal includes?
30
29
  locale: en-US
31
30
  created: 2026-04-25
32
- updated: 2026-06-10
31
+ updated: 2026-07-01
33
32
  keywords:
34
33
  - daily journal
35
34
  - diary
@@ -42,7 +41,7 @@ related:
42
41
  - features/memory-files/agent-journal
43
42
  - concepts/agent-day
44
43
  ui_anchors:
45
- - /schedule
44
+ - /tasks
46
45
  - /agents/morning-routine?tab=rulebook
47
46
  process_keys:
48
47
  - routine.morning_routine_journal
@@ -55,8 +54,9 @@ context_files:
55
54
  ## In One Sentence
56
55
 
57
56
  `journal/daily/YYYY-MM-DD.md` is the morning routine's first-person
58
- diary of the **previous** agent-day — what the user did, who they met,
59
- what they talked aboutcomposed by the daemon and kept as a
57
+ diary of the **previous** agent-day (the agent's version of a day,
58
+ which rolls over at 04:00 by default) what the user did, who they
59
+ met, what they talked about — composed by the daemon and kept as a
60
60
  read-only archive that the weekly and monthly reviews read back.
61
61
 
62
62
  > **Renamed from `schedule/`.** The old mechanical `schedule/YYYY-MM-DD.md`
@@ -93,11 +93,11 @@ typically includes:
93
93
  - `## Tasks` — what the user worked on.
94
94
  - `## Conversations` — who they talked to and about what.
95
95
 
96
- When the `browser_history` integration is active, a reading/research
97
- surface is woven in from the day's browser digest. Daemon-owned
98
- frontmatter (`date`, `weekday`, `calendar_events`, `messages_handled`,
99
- `projects`, `people`, `tags`, `content_hash`, `updated`) is filled in
100
- automatically. The exact sections and tone are governed by the
96
+ When the `browser_history` integration is turned on, a reading and
97
+ research section is added from the day's browser digest. The daemon
98
+ fills in the frontmatter fields automatically (`date`, `weekday`,
99
+ `calendar_events`, `messages_handled`, `projects`, `people`, `tags`,
100
+ `content_hash`, `updated`). The exact sections and tone are set by the
101
101
  journal-format and journal-export policy files (see
102
102
  [Configuration](#configuration)).
103
103