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