@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
@@ -20,7 +20,6 @@ tags:
20
20
  - autonomous
21
21
  - observations
22
22
  - polling
23
- - activity-scan
24
23
  status: stable
25
24
  ui_anchors:
26
25
  - /agents/activity-scan
@@ -34,7 +33,7 @@ ask_examples:
34
33
  - How do I tune the gate's freshness window?
35
34
  locale: en-US
36
35
  created: 2026-04-25
37
- updated: 2026-06-10
36
+ updated: 2026-07-01
38
37
  keywords:
39
38
  - hourly
40
39
  - observations
@@ -70,11 +69,13 @@ config_keys:
70
69
 
71
70
  # Activity Scan
72
71
 
73
- A medium-tier routine that drains the observations queue every interval
74
- during active hours and decides whether the accumulated change
75
- pattern warrants notifying you or appending to `state/today.md`. The
76
- "decide" step is a four-layer gate designed to keep quiet days quiet
77
- without missing the moment when something piles up.
72
+ A medium-tier routine that runs every interval during your active
73
+ hours (the daily window when the agent is allowed to work). Each run
74
+ empties the pending observations queue and decides whether the changes
75
+ that piled up are worth notifying you about or just worth logging to
76
+ `state/today.md`. That "decide" step is a four-layer gate, built to
77
+ keep quiet days quiet without missing the moment something actually
78
+ matters.
78
79
 
79
80
  ## When It Runs
80
81
 
@@ -89,7 +90,8 @@ The legacy `activityScan*` config keys are deprecated fallbacks (see
89
90
  (recoverable — the dispatcher enqueues a `queueMorningRoutineWake`
90
91
  self-recovery and the activity scan resumes after the morning
91
92
  routine succeeds).
92
- - **Skips** when another activity scan is in flight (atomic flag).
93
+ - **Skips** when another activity scan is already running (an atomic
94
+ in-flight flag stops two runs from overlapping).
93
95
  - **Skips** when accumulated signal is below the agent's **min
94
96
  observations** threshold and the heartbeat window
95
97
  (`activityScanHeartbeatHours`) hasn't elapsed.
@@ -119,9 +121,10 @@ Telemetry: `agent_actions.detail.harvest_ran` /
119
121
 
120
122
  ### Layer 2 — Signal compute
121
123
 
122
- `computeActivityScanSignals` reads the observation table mode-blind
123
- it filters by source-prefix sets derived from
124
- `INTEGRATION_DESCRIPTORS`, never by `actor`. Signal categories
124
+ `computeActivityScanSignals` reads the observation table mode-blind
125
+ (it does not care which integration mode wrote a row) — it filters by
126
+ source-prefix sets derived from `INTEGRATION_DESCRIPTORS`, never by
127
+ `actor`. Signal categories
125
128
  include unread-mail / event-change / repo-change / browser-history
126
129
  clusters; each category produces a (count, last-seen, summary)
127
130
  tuple. The pre-pass freshness gate from Layer 1 is what guarantees
@@ -22,7 +22,6 @@ tags:
22
22
  - agents
23
23
  - autonomous
24
24
  - scheduler
25
- - advanced
26
25
  status: deprecated
27
26
  ask_examples:
28
27
  - What happened to my custom routines?
@@ -31,7 +30,7 @@ ask_examples:
31
30
  - How do I create a recurring task now?
32
31
  locale: en-US
33
32
  created: 2026-04-25
34
- updated: 2026-06-10
33
+ updated: 2026-07-01
35
34
  keywords:
36
35
  - custom routine
37
36
  - routine.custom.<slug>
@@ -73,19 +72,21 @@ once, at the first daemon start after the upgrade.
73
72
  - Recurring work you define is now an **Agent**: a
74
73
  `policies/agents/<slug>/agent.md` file that appears on the
75
74
  **Agents** page (`/agents`) with its schedule, an enable toggle, run
76
- metrics, execution history, and a **Run now** button — surfaces
75
+ metrics, execution history, and a **Run now** button — features
77
76
  custom routines never had. See
78
77
  [Create a Recurring Agent](../../guides/add-a-custom-routine.md).
79
78
 
80
79
  ## The One-Time Migration
81
80
 
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
81
+ The first time the daemon (Aitne's background service) starts after
82
+ the upgrade — and only that once, guarded by a saved flag so it can
83
+ never run twice — every file under `policies/routines/custom/` is
84
84
  examined:
85
85
 
86
86
  - A **valid routine becomes a user Agent** at
87
87
  `policies/agents/<slug>/agent.md` carrying over:
88
- - the same **cron expression** (pinned to your configured timezone),
88
+ - the same **cron expression** (the schedule rule, pinned to your
89
+ configured timezone),
89
90
  - the same **model tier** (`backend_tier` → the Agent's tier),
90
91
  - the same **per-run budget** (`max_budget_usd`),
91
92
  - the same **enabled state** — a disabled routine migrates disabled.
@@ -95,7 +96,8 @@ examined:
95
96
  it came from (`Migrated from custom routine "<slug>".`).
96
97
  - The **source file is never deleted.** It is rewritten in place with
97
98
  `enabled: false` and a `migrated_to_agent: <slug>` marker in its
98
- frontmatter, so it is visibly inert while your content is preserved.
99
+ frontmatter, so you can plainly see it no longer runs while your
100
+ original content is preserved.
99
101
 
100
102
  ### Collisions and invalid files
101
103
 
@@ -17,8 +17,6 @@ section: routines
17
17
  tags:
18
18
  - routines
19
19
  - autonomous
20
- - daily
21
- - core
22
20
  status: stable
23
21
  ask_examples:
24
22
  - When does the evening review run?
@@ -27,7 +25,7 @@ ask_examples:
27
25
  - How do I disable the evening review?
28
26
  locale: en-US
29
27
  created: 2026-04-25
30
- updated: 2026-06-10
28
+ updated: 2026-07-01
31
29
  keywords:
32
30
  - evening review
33
31
  - retro
@@ -89,10 +87,11 @@ rather than producing a chatty end-of-day report.
89
87
 
90
88
  ## When It Runs / How It Is Triggered
91
89
 
92
- Every day at **18:00 local time**, exactly once. The cron expression
93
- (`0 18 * * *`) is fixed in `packages/daemon/src/core/scheduler.ts`; the
94
- fire time is not operator-configurable. Like every autonomous cron, the
95
- run is skipped while the agent is paused (`!stop`) or setup is incomplete.
90
+ Every day at **18:00 local time**, exactly once. The schedule — a cron
91
+ expression (`0 18 * * *`, the standard five-field way to write "18:00 every
92
+ day") is fixed in `packages/daemon/src/core/scheduler.ts`, so you can't
93
+ change the fire time. Like every autonomous routine, the run is skipped
94
+ while the agent is paused (`!stop`) or setup is not finished.
96
95
 
97
96
  ## What It Outputs
98
97
 
@@ -16,8 +16,7 @@ section: routines
16
16
  tags:
17
17
  - routines
18
18
  - autonomous
19
- - daily
20
- - core
19
+ - scheduler
21
20
  status: stable
22
21
  ask_examples:
23
22
  - When does morning routine run?
@@ -26,7 +25,7 @@ ask_examples:
26
25
  - What model does morning routine use?
27
26
  locale: en-US
28
27
  created: 2026-04-25
29
- updated: 2026-06-10
28
+ updated: 2026-07-01
30
29
  keywords:
31
30
  - morning
32
31
  - day plan
@@ -63,9 +62,10 @@ context_files:
63
62
 
64
63
  ## In One Sentence
65
64
 
66
- Once per agent day, at `dayBoundaryHour` local time, Aitne
67
- rebuilds `state/today.md` and the day's schedule from your calendar, mail,
68
- roadmap, and recent observations.
65
+ Once per agent day (the daily window that starts when "today" rolls
66
+ over), at `dayBoundaryHour` local time, Aitne rebuilds `state/today.md`
67
+ and the day's schedule from your calendar, mail, roadmap, and recent
68
+ observations.
69
69
 
70
70
  ## What It Does
71
71
 
@@ -74,16 +74,17 @@ It runs as a **two-stage pipeline**, with both stages dispatched in
74
74
  parallel:
75
75
 
76
76
  - **Stage A** (`routine.morning_routine_today`, medium tier) rebuilds
77
- `state/today.md`, walks the roadmap, fans out the day's schedule, and
78
- self-reports structured metadata.
79
- - **Stage B** (`routine.morning_routine_journal`, lite tier) authors
77
+ `state/today.md`, walks the roadmap, fans out the day's schedule (queues
78
+ each of today's scheduled tasks), and reports structured metadata about
79
+ the run.
80
+ - **Stage B** (`routine.morning_routine_journal`, lite tier) writes
80
81
  yesterday's daily journal at `journal/daily/<yesterday>.md` from a
81
- daemon-prepared skeleton, then drops the run's audit-trail paragraph
82
- into `journal/agent.md`.
82
+ daemon-prepared skeleton, then appends the run's audit-trail paragraph
83
+ to `journal/agent.md`.
83
84
 
84
- Every downstream routine for the next 24 hours reads Stage A's output,
85
- so a bad morning briefing degrades the entire day hence the
86
- medium-tier ceiling on Stage A even after the split.
85
+ Every routine that runs over the next 24 hours reads Stage A's output, so
86
+ a bad morning briefing drags down the whole day. That is why Stage A stays
87
+ capped at the medium tier even after the split.
87
88
 
88
89
  Within Stage A, the work proceeds in this order:
89
90
 
@@ -103,12 +104,12 @@ so a post-midnight install does not run two morning routines back-to-back.
103
104
  There is no separate `morningRoutineHour` — the morning routine and the
104
105
  agent-day rollover are the same instant.
105
106
 
106
- There is no separate "initial" process key. The first morning after
107
- setup is detected inline by Stage A from the absence of `state/yesterday.md`;
108
- the daemon injects a `<roadmap_skeleton>` block carrying the pre-aggregated
109
- Annual Goals / Quarterly Focus / Preparation Timeline facts so Stage A
110
- can populate the wizard's placeholder roadmap on medium tier instead of
111
- paying for a one-shot high-tier session. (The dedicated
107
+ There is no separate "initial" process key. Stage A detects the first
108
+ morning after setup on its own, from the missing `state/yesterday.md` file.
109
+ The daemon then injects a `<roadmap_skeleton>` block carrying the
110
+ pre-aggregated Annual Goals / Quarterly Focus / Preparation Timeline facts,
111
+ so Stage A can fill in the wizard's placeholder roadmap on the medium tier
112
+ instead of paying for a one-shot high-tier session. (The dedicated
112
113
  `routine.morning_routine_initial` process key — along with its high-tier
113
114
  seed — was retired in Phase 7, 2026-05-16; the first-run branch now flows
114
115
  through the parent `routine.morning_routine` envelope.)
@@ -133,9 +134,9 @@ through the parent `routine.morning_routine` envelope.)
133
134
  | Setting | Default | Notes |
134
135
  |---|---|---|
135
136
  | `dayBoundaryHour` | `4` | Both the agent-day boundary and the morning-routine fire time. See [Agent Day](../../concepts/agent-day.md). |
136
- | 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. |
137
+ | 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. |
137
138
  | Stage B tier (`routine.morning_routine_journal`) | lite (Haiku 4.5) | Authors `journal/daily/<date>.md` and the `journal/agent.md` audit paragraph. |
138
- | Stage A max turns / budget | 50 turns / $1.50 | Per-execute envelope for `routine.morning_routine_today`. Adjustable in Settings → Models. |
139
+ | Stage A max turns / budget | 50 turns / $2.00 | Per-execute envelope for `routine.morning_routine_today`. Adjustable in Settings → Models. |
139
140
  | Stage B max turns / budget | 20 turns / $0.30 | Per-execute envelope for `routine.morning_routine_journal`. |
140
141
 
141
142
  The parent `routine.morning_routine` key keeps its own envelope (50 turns / $2.00) for the pipeline entry point. Codex and Gemini backends scale the dollar caps by a per-tier factor (lite ×2.5, medium ×1.5); the router enforces the cap before token costs accumulate.
@@ -19,7 +19,6 @@ tags:
19
19
  - routines
20
20
  - autonomous
21
21
  - journal
22
- - reflection
23
22
  status: stable
24
23
  ask_examples:
25
24
  - When does the weekly review run?
@@ -27,7 +26,7 @@ ask_examples:
27
26
  - Where do weekly retros get stored?
28
27
  locale: en-US
29
28
  created: 2026-04-25
30
- updated: 2026-06-10
29
+ updated: 2026-07-01
31
30
  keywords:
32
31
  - weekly review
33
32
  - Friday review
@@ -58,49 +57,54 @@ context_files:
58
57
 
59
58
  ## In One Sentence
60
59
 
61
- A medium-tier weekly retro fires every Friday evening and writes a
62
- synthesis into `journal/weekly/YYYY-Www.md` (ISO week), whose
63
- **Carry Over / Next Week Focus / Lessons** sections are then lifted
64
- into every morning routine of the following ISO week.
60
+ Every Friday evening, a medium-tier weekly retrospective (a look back
61
+ over the week) runs and writes a summary into
62
+ `journal/weekly/YYYY-Www.md` one file per ISO week (the standard
63
+ Mon–Sun week numbering). Its **Carry Over / Next Week Focus /
64
+ Lessons** sections are then copied into every morning routine of the
65
+ following ISO week.
65
66
 
66
67
  ## What It Does
67
68
 
68
69
  - Reads each `journal/daily/YYYY-MM-DD.md` for the current ISO week,
69
70
  the week's calendar retrospective, the roadmap, and active projects.
70
- - Synthesizes three axes — Outcomes, Forward items, Behavioral
71
- Lessons — and writes the user-facing snapshot.
72
- - Appends an agent-internal block to `journal/agent.md` for
71
+ - Pulls this together along three lines — Outcomes, Forward items,
72
+ and Behavioral Lessons — and writes the summary you read.
73
+ - Adds a private, agent-only block to `journal/agent.md` covering
73
74
  self-critique, filter quality, and improvement ideas.
74
- - Feeds the learning loop: for each concrete, actionable system
75
- improvement idea it identifies, it also posts a `source=self_critique`
76
- feedback signal (in addition to the `journal/agent.md` prose), so the
77
- idea is consolidated into the [agent lessons](../memory-files/agent-lessons.md)
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.
90
- - Sends a brief Friday-evening notification by default (the silence
91
- gate triggers only on an essentially blank week).
92
- - Refreshes `identity/reading-taste.md` and Book Candidates when
93
- enough new highlights have accumulated.
75
+ - Feeds the learning loop: for each concrete, actionable improvement
76
+ idea it finds, it also posts a `source=self_critique` feedback
77
+ signal (on top of the `journal/agent.md` note), so the idea gets
78
+ folded into the [agent lessons](../memory-files/agent-lessons.md)
79
+ instead of only living in the journal.
80
+ - Reviews the daemon's self-tuning suggestions: when the weekly
81
+ pre-step spots a cost setting worth changing (for example, widening
82
+ the mail pre-pass freshness window because most fetches came back
83
+ empty), it puts forward up to three bounded proposals, and the
84
+ review records an apply / reject / defer verdict for each. While
85
+ `selfTuningEnabled` is `false` (the default), nothing changes
86
+ automatically the verdicts are only recorded for the owner to
87
+ review (this is called shadow mode). With the flag on, an apply
88
+ verdict takes effect immediately, kept inside hard per-key limits;
89
+ the owner gets a one-line DM for each applied change
90
+ (`!revert tuning` undoes the most recent one), and a daily monitor
91
+ automatically rolls back any change whose 7-day follow-up metrics
92
+ got worse.
93
+ - Sends a short Friday-evening notification by default. It stays quiet
94
+ (the silence gate) only when the week was essentially blank.
95
+ - Refreshes `identity/reading-taste.md` and your Book Candidates once
96
+ enough new highlights have piled up.
94
97
 
95
98
  ## When It Runs / How It Is Triggered
96
99
 
97
- Every **Friday at 19:00 local time** (one hour after `evening_review`).
98
- The schedule is fixed in `packages/daemon/src/core/scheduler.ts` and is
99
- not operator-configurable. If the Friday fire misses (daemon outage),
100
- the **Fri / Sat / Sun catch-up window** in `schedule-helpers.ts` fires
101
- the retro when the daemon recovers, before the new ISO week begins —
102
- a Mon–Thu catch-up is intentionally out of scope so the next week's
103
- `<previous_week>` injection stays stable Mon–Sun.
100
+ It runs every **Friday at 19:00 local time**, one hour after
101
+ `evening_review`. The schedule is fixed in
102
+ `packages/daemon/src/core/scheduler.ts` and can't be changed. If the
103
+ Friday run is missed (say, the daemon was down), the **Fri / Sat / Sun
104
+ catch-up window** in `schedule-helpers.ts` runs the retro as soon as
105
+ the daemon recovers, before the new ISO week begins. A Mon–Thu
106
+ catch-up is left out on purpose, so the next week's `<previous_week>`
107
+ injection stays a stable Mon–Sun.
104
108
 
105
109
  ## What It Outputs
106
110
 
@@ -111,25 +115,27 @@ a Mon–Thu catch-up is intentionally out of scope so the next week's
111
115
 
112
116
  ## Configuration
113
117
 
114
- The fire time (Friday 19:00 local) and day-of-week are fixed in code
115
- and are not operator-tunable. The backend and model that handle this
116
- routine, however, are configurable: `routine.weekly_review` is a
117
- configurable process key (default **medium** tier — Sonnet on Claude)
118
- that you can repoint from **Settings → Models**. The weekly rulebook
118
+ The run time (Friday 19:00 local) and the day of the week are fixed in
119
+ code and can't be changed. What you *can* change is the backend and
120
+ model behind this routine: `routine.weekly_review` is a configurable
121
+ process key (default **medium** tier — Sonnet on Claude) that you can
122
+ repoint from **Settings → Models**. The weekly rulebook
119
123
  (`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.
124
+ Rulebook tab (`/agents/weekly-review?tab=rulebook`), where you can also
125
+ enable or disable the agent.
122
126
 
123
127
  ## When Something Goes Wrong
124
128
 
125
- - The retro **doesn't fire on Friday**: the Fri–Sun catch-up window
126
- retries on Saturday and Sunday agent-days. A full Fri–Sun outage
127
- results in a missing weekly file; the next week's morning routines
128
- proceed without the `<previous_week>` block.
129
- - The retro **runs but the file is empty** (silence gate): legitimate
130
- for a blank week — the file is still written with empty sections,
131
- and the next week's morning routine sees `(none recorded)` sub-
132
- blocks, which is the deliberate downstream signal.
129
+ - The retro **doesn't run on Friday**: the Fri–Sun catch-up window
130
+ retries on the Saturday and Sunday agent-days (the agent's own day,
131
+ which rolls over at `dayBoundaryHour` rather than at midnight). If
132
+ the daemon is down for the whole Fri–Sun window, the weekly file is
133
+ never written, and the next week's morning routines simply carry on
134
+ without the `<previous_week>` block.
135
+ - The retro **runs but the file is empty** (the silence gate): this is
136
+ fine for a genuinely blank week — the file is still written, just
137
+ with empty sections, and the next week's morning routine sees
138
+ `(none recorded)` sub-blocks. That is the intended signal, not a bug.
133
139
 
134
140
  ## Related
135
141
 
@@ -21,8 +21,6 @@ summary: |
21
21
  section: wiki
22
22
  tags:
23
23
  - wiki
24
- - bang-commands
25
- - core
26
24
  status: stable
27
25
  ask_examples:
28
26
  - How do I send a URL to the wiki?
@@ -34,7 +32,7 @@ ask_examples:
34
32
  - How do I bridge two domains with `!connect`?
35
33
  locale: en-US
36
34
  created: 2026-05-12
37
- updated: 2026-06-07
35
+ updated: 2026-07-01
38
36
  keywords:
39
37
  - !ingest
40
38
  - !compile
@@ -48,6 +46,7 @@ keywords:
48
46
  related:
49
47
  - features/wiki/overview
50
48
  - features/messaging/bang-commands
49
+ - features/wiki/cost-and-approval
51
50
  - guides/budget-and-cost-for-wiki
52
51
  - guides/maintain-wiki-health
53
52
  - guides/explore-with-trace-and-connect
@@ -67,9 +66,10 @@ ui_anchors:
67
66
 
68
67
  # Wiki Commands
69
68
 
70
- Use these from a paired DM channel after enabling the wiki. Open
69
+ These are bang commands chat messages that start with `!`. Send
70
+ them from a paired DM channel once the wiki is turned on. Open
71
71
  **Settings → Wiki** (`/settings/wiki`) to enable a workspace, then
72
- browse the result from **My Life → Wiki** (`/wiki`).
72
+ read the results under **My Life → Wiki** (`/wiki`).
73
73
 
74
74
  | Command | Effect |
75
75
  |---|---|
@@ -91,17 +91,17 @@ batch at 10 URLs.
91
91
  ## `@<workspace>` — addressing a non-default workspace
92
92
 
93
93
  If you run more than one wiki workspace (Phase 5), every bang command
94
- accepts an optional `@<name>` token immediately after the bang. The
95
- token is parsed before the command's own argument parser sees the
96
- rest, so multi-word topics and comma-separated arguments work as
97
- normal:
94
+ accepts an optional `@<name>` token right after the bang. Aitne reads
95
+ this token first and removes it before the command parses the rest of
96
+ your message, so multi-word topics and comma-separated arguments still
97
+ work as usual:
98
98
 
99
99
  !compile @research full
100
100
  !ask @parenting what did the pediatrician recommend?
101
101
  !connect @research diffusion models, score matching
102
102
 
103
103
  Omit the token and the command targets the **default** workspace.
104
- See `agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md`
104
+ See [guides/multiple-wikis-for-multiple-domains](../../guides/multiple-wikis-for-multiple-domains.md)
105
105
  for a walkthrough.
106
106
 
107
107
  ## `!compile --preview` — the dry run
@@ -119,14 +119,15 @@ Use `!compile --preview` (or `--dry-run`) when you want to see what
119
119
  - **est. duration** — Rough wall-clock estimate (intentionally
120
120
  pessimistic).
121
121
 
122
- The preview is an upper bound. The compile is an LLM and may
123
- merge or skip pages inside the agent loop; the preview cannot
124
- predict that exactly, but it will not undercount the touch set.
125
- Reply `!compile` (or `!compile full`) to actually run the compile.
122
+ Treat the preview as an upper bound. The real compile runs an LLM,
123
+ which may merge or skip pages as it works, so the preview cannot
124
+ predict the outcome exactly but it will never undercount the pages
125
+ it touches. Reply `!compile` (or `!compile full`) to run the compile
126
+ for real.
126
127
 
127
128
  ## Dispatch Mode for `!ingest`
128
129
 
129
- `!ingest` honours the per-workspace **dispatch mode** in
130
+ `!ingest` follows the per-workspace **dispatch mode** set in
130
131
  Settings → Wiki:
131
132
 
132
133
  - **Parallel** (default): all URLs fan out simultaneously up to the
@@ -142,11 +143,11 @@ The acknowledgement DM names the mode that ran (`in parallel` /
142
143
 
143
144
  ## `!compile full` — the Cost Gate
144
145
 
145
- Full rebuilds touch every wiki note and are the most expensive
146
- command in the wiki surface. The flow:
146
+ Full rebuilds touch every wiki note, so they are the most expensive
147
+ command in the wiki surface. Here is what happens when you run one:
147
148
 
148
149
  1. The bang handler estimates the cost (per raw note, an on-disk
149
- char→token approximation × Sonnet 4.6 input price, bracketed
150
+ char→token approximation × Sonnet 5 input price, bracketed
150
151
  optimistic 0.5× / expected 1× / pessimistic 2×).
151
152
  2. On an external git-tracked vault with **Auto-commit before
152
153
  `!compile full`** enabled and a clean working tree, Aitne runs
@@ -160,15 +161,20 @@ command in the wiki surface. The flow:
160
161
  4. Otherwise, the run starts autonomously and you receive a
161
162
  completion DM with actual spend.
162
163
 
163
- The same estimate is shown live in **Settings → Wiki** so you can
164
- see what the next `!compile full` will cost before you run it.
164
+ The same estimate is shown live in **Settings → Wiki**, so you can
165
+ see what the next `!compile full` will cost before you run it. See
166
+ [features/wiki/cost-and-approval](cost-and-approval.md) for the full
167
+ cost-estimation and approval reference.
165
168
 
166
169
  ## Operational Triad — `!lint`, `!trace`, `!connect`
167
170
 
168
171
  These three commands round out the wiki surface for ongoing
169
172
  maintenance and exploration. None of them write to the content
170
173
  layers (`10_raw/`, `20_wiki/`); they only produce health reports
171
- (`90_meta/health/`) or output documents (`30_outputs/`).
174
+ (`90_meta/health/`) or output documents (`30_outputs/`). This
175
+ section is the command reference; for the step-by-step workflows,
176
+ see [guides/maintain-wiki-health](../../guides/maintain-wiki-health.md)
177
+ and [guides/explore-with-trace-and-connect](../../guides/explore-with-trace-and-connect.md).
172
178
 
173
179
  ### `!lint`
174
180
 
@@ -197,7 +203,7 @@ Timeline & health** (`/wiki/timeline`).
197
203
  ### `!trace <topic>`
198
204
 
199
205
  Reconstructs the chronological evolution of an idea across every
200
- wiki layer. Use a free-form topic — the skill canonicalises against
206
+ wiki layer. Use a free-form topic — the skill matches it against
201
207
  `90_meta/taxonomy.md` before deriving the output slug:
202
208
 
203
209
  ```
@@ -25,7 +25,6 @@ tags:
25
25
  - cost
26
26
  - approval
27
27
  - safety
28
- - core
29
28
  status: stable
30
29
  ask_examples:
31
30
  - How does !compile full estimate cost?
@@ -39,7 +38,7 @@ ask_examples:
39
38
  - Can I see the cost before running !compile full?
40
39
  locale: en-US
41
40
  created: 2026-05-21
42
- updated: 2026-06-07
41
+ updated: 2026-07-01
43
42
  keywords:
44
43
  - cost estimate
45
44
  - cost bracket
@@ -106,26 +105,30 @@ The same estimator backs four surfaces so the numbers cannot drift:
106
105
 
107
106
  ## How the estimator works
108
107
 
109
- Pure JS, no agent session, no SDK call. The estimator
110
- (`packages/daemon/src/core/wiki/cost-estimate.ts`) opens each raw
111
- note under `10_raw/`, approximates its token count from on-disk
112
- content, then multiplies the total by the tier unit cost and
113
- brackets with 0.5×/2× multipliers.
108
+ The estimate is plain JavaScript math it never starts an agent or
109
+ calls the model, so it costs nothing and returns instantly. The
110
+ estimator (`packages/daemon/src/core/wiki/cost-estimate.ts`) opens
111
+ each raw note under `10_raw/`, approximates its token count from the
112
+ text on disk, then multiplies the total by the tier unit cost and
113
+ wraps it in a 0.5×/2× bracket (a low/high range).
114
114
 
115
115
  ### Character → token approximation
116
116
 
117
- - **Latin / English content** — ~4 chars per token. The well-known
118
- OpenAI rule-of-thumb; matches Anthropic's tokenizer within ±15%
119
- for prose; confirmed against the gpt-tokenizer dist.
120
- - **CJK content** — ~1.5 chars per token. BPE merges short CJK runs
121
- but not as aggressively as Latin word fragments.
122
-
123
- The classifier counts Unicode code points whose script is one of
124
- Han, Hiragana, Katakana, Hangul, Bopomofo. If the document is
125
- majority-CJK we apply the CJK divisor to the entire file; otherwise
126
- Latin. A per-script split per file would be marginally more accurate
127
- but adds 30% code for a sub-percent gain on typical mixed-script
128
- files.
117
+ - **Latin / English content** — about 4 characters per token. This
118
+ is the well-known OpenAI rule-of-thumb; it matches Anthropic's
119
+ tokenizer within ±15% for prose, confirmed against the
120
+ gpt-tokenizer package.
121
+ - **CJK content** (Chinese, Japanese, Korean) about 1.5 characters
122
+ per token. The tokenizer merges short CJK runs, but not as
123
+ aggressively as it merges Latin word fragments, so each character
124
+ carries more weight.
125
+
126
+ To pick a ratio, the classifier counts the Unicode code points whose
127
+ script is one of Han, Hiragana, Katakana, Hangul, or Bopomofo. If a
128
+ file is majority-CJK, the CJK ratio applies to the whole file;
129
+ otherwise the Latin ratio does. Splitting each file script-by-script
130
+ would be slightly more accurate, but it adds 30% more code for a
131
+ sub-percent gain on typical mixed-script files, so we don't.
129
132
 
130
133
  ### The 0.5×/2× bracket
131
134
 
@@ -188,7 +191,8 @@ estimate landed to the actual cost.
188
191
 
189
192
  ## The pre-compile git snapshot
190
193
 
191
- Only meaningful on an **external + git-tracked** vault. The gate
194
+ This only matters for an **external + git-tracked** vault a vault
195
+ stored outside Aitne whose folder is a git repository. The gate
192
196
  decides:
193
197
 
194
198
  | Workspace state | Outcome |
@@ -202,9 +206,10 @@ decides:
202
206
  The snapshot is your rollback target if `!compile full` produces a
203
207
  surprise — `git reset --hard <snapshot-commit>` puts the vault back.
204
208
 
205
- The pre-compile commit uses no special author identity; it lands
206
- under whatever git is configured to use. If you co-author with
207
- Aitne, you'll want to set that up at the git config level.
209
+ The pre-compile commit uses no special author identity it lands
210
+ under whatever name and email your git is already configured to use.
211
+ If you want to credit Aitne as a co-author, set that up in your git
212
+ config.
208
213
 
209
214
  ## The `--preview` dry-run
210
215