v0.6
This commit is contained in:
@@ -77,8 +77,12 @@ echo-v.05/
|
||||
│ ├── captures/ ← quick captures (inbox.md), date-prefixed lines
|
||||
│ ├── imports/ ← raw imported material
|
||||
│ └── processing-log/
|
||||
├── journal/
|
||||
├── journal/ ← one append-only time-series stream; rollups are coarser journal entries (no separate reviews/ tree)
|
||||
│ ├── daily/ ← YYYY-MM-DD.md (has an "## Agent Log" section)
|
||||
│ ├── weekly/ ← YYYY-Www.md (ISO week, opt-in rollup)
|
||||
│ ├── monthly/ ← YYYY-MM.md (monthly rollup)
|
||||
│ ├── quarterly/ ← YYYY-Qn.md (manual / on request)
|
||||
│ ├── annual/ ← YYYY.md (manual / on request)
|
||||
│ └── templates/
|
||||
├── projects/ ← lifecycle: incubating → active → on-hold / archived
|
||||
│ ├── active/ incubating/ on-hold/ archived/
|
||||
@@ -90,7 +94,7 @@ echo-v.05/
|
||||
├── decisions/
|
||||
│ ├── by-date/ ← YYYY-MM-DD-<slug>.md (ADR-style) — the canonical home
|
||||
│ └── decision-template.md (by-project/ is retired, not created)
|
||||
├── reviews/ ← weekly / monthly / quarterly / annual
|
||||
│ (reviews/ is retired — journal rollups live under journal/; vault-health under _agent/health/)
|
||||
└── _agent/
|
||||
├── echo-vault.md ← bootstrap marker: schema_version + date (plugin-owned probe)
|
||||
├── context/ ← current-context.md and task bundles
|
||||
@@ -99,9 +103,10 @@ echo-v.05/
|
||||
│ ├── episodic/ ← what happened, when
|
||||
│ └── semantic/ ← durable facts / patterns (operator-preferences.md)
|
||||
├── sessions/ ← YYYY-MM-DD-HHMM-<slug>.md
|
||||
├── health/ ← YYYY-MM-vault-health.md (monthly self-maintenance audit)
|
||||
├── templates/ ← canonical note templates (seeded from the plugin's scaffold/)
|
||||
├── skills/ ← active / archived capability catalog
|
||||
└── heartbeat/ ← single-line pointers (e.g. last-session.md)
|
||||
└── heartbeat/ ← last-session.md pointer (read at load, written at session end)
|
||||
```
|
||||
|
||||
### Memory model
|
||||
@@ -119,13 +124,16 @@ echo-v.05/
|
||||
|
||||
### Cold-start loading
|
||||
|
||||
Load memory at the start of any substantive conversation (anything beyond a single quick factual question). The cold-start reads are **issued in parallel** (one batch of 4–5 GETs):
|
||||
Load memory at the start of any substantive conversation (anything beyond a single quick factual question). The cold-start reads are **issued in parallel** (one batch of 5–6 GETs):
|
||||
|
||||
1. `_agent/echo-vault.md` — the bootstrap marker. `404` → vault not set up (run bootstrap); `200` → check `schema_version` and migrate if older than the plugin's.
|
||||
2. `_agent/memory/semantic/operator-preferences.md` — Jason's profile.
|
||||
3. `_agent/context/current-context.md` — active scope + Scope History.
|
||||
4. `_agent/sessions/` listing — read the ~5 most recent by reverse lexical sort (filenames lex-sort chronologically).
|
||||
4. `_agent/heartbeat/last-session.md` then `_agent/sessions/` — read the heartbeat pointer first (O(1) jump to the latest log); fall back to the listing's ~5 most recent by reverse lexical sort.
|
||||
5. `journal/daily/YYYY-MM-DD.md` — today's note (`404` is fine).
|
||||
6. `inbox/captures/inbox.md` — inbox-depth probe for the load-time reconcile.
|
||||
|
||||
After the batch, **reconcile**: if the inbox holds captures older than ~7 days, surface the count and offer to triage (so triage self-fires rather than waiting to be invoked); and if the active scope diverges from what Jason just asked for, run Scope Switching.
|
||||
|
||||
If a specific project is in play, follow up with a `search/simple/` across **all** lifecycle subfolders, querying **both the slug and any human title** used in conversation, then read the match at `projects/<lifecycle>/<slug>.md`. Loading is not narrated to the operator.
|
||||
|
||||
@@ -158,15 +166,17 @@ After substantive activity, append a one-line entry to today's daily note's `##
|
||||
|
||||
At the end of substantive conversations (those producing decisions, artifacts, or commitments), write a session log to `_agent/sessions/YYYY-MM-DD-HHMM-<slug>.md`. **The four-digit HHMM component is canonical, not optional** — it makes filenames lex-sort in true chronological order, which cold-start loading depends on. New writes are validated against `^\d{4}-\d{2}-\d{2}-\d{4}-[a-z0-9-]+\.md$`.
|
||||
|
||||
### Reviews
|
||||
### Journal rollups
|
||||
|
||||
- **Weekly** — opt-in; offered on the first substantive session of a new ISO week, written only if accepted, to `reviews/weekly/YYYY-Www-review.md`.
|
||||
- **Monthly** — automatic Vault Health pass (below) on the first session of a calendar month.
|
||||
- **Quarterly / annual** — manual / on request only.
|
||||
The journal is one append-only time-series stream; rollups are coarser-grained entries on the same timeline, so they live under `journal/` — there is no separate `reviews/` tree.
|
||||
|
||||
- **Weekly** — opt-in; offered on the first substantive session of a new ISO week, written only if accepted, to `journal/weekly/YYYY-Www.md`.
|
||||
- **Monthly** — offered alongside the Vault Health pass on the first session of a calendar month, to `journal/monthly/YYYY-MM.md`.
|
||||
- **Quarterly / annual** — manual / on request only, to `journal/quarterly/YYYY-Qn.md` and `journal/annual/YYYY.md`.
|
||||
|
||||
### Vault Health (monthly)
|
||||
|
||||
A cheap pass written to `reviews/monthly/YYYY-MM-vault-health.md`: flag stale active projects (`updated:` > 30 days), unprocessed inbox items (> 14 days), duplicate slugs across lifecycle folders (broken state), and broken-heading risk on frequently-PATCHed files. Findings are reported, not auto-fixed.
|
||||
Agent self-maintenance (not a journal entry), written to `_agent/health/YYYY-MM-vault-health.md`. The bundled `scripts/vault-lint.sh` mechanically asserts the invariants — folder↔status mismatch, duplicate slugs across lifecycle folders, wikilinks in frontmatter, duplicate `## Agent Log` headings, stale active projects (`updated:` > 30 days), and aging inbox items (> 14 days). Findings are reported, not auto-fixed.
|
||||
|
||||
---
|
||||
|
||||
@@ -220,9 +230,13 @@ Server `https://echoapi.alwisp.com`, bearer auth, root-addressed paths.
|
||||
| Meeting notes / call recap | `resources/meetings/YYYY-MM-DD-<slug>.md` | PUT |
|
||||
| Skill / plugin capability entry | `_agent/skills/active/<slug>.md` (→ `archived/` when retired) | PUT |
|
||||
| Daily activity / Agent Log | `journal/daily/YYYY-MM-DD.md` | POST / PATCH |
|
||||
| Periodic review | `reviews/{weekly,monthly,quarterly,annual}/` | PUT |
|
||||
| Journal rollup | `journal/{weekly/YYYY-Www,monthly/YYYY-MM,quarterly/YYYY-Qn,annual/YYYY}.md` | PUT |
|
||||
| Vault-health audit (agent self-maintenance) | `_agent/health/YYYY-MM-vault-health.md` | PUT |
|
||||
| Session-end orientation pointer | `_agent/heartbeat/last-session.md` | PUT |
|
||||
| Bootstrap marker (plugin-owned) | `_agent/echo-vault.md` (`schema_version`, date) | GET / PUT |
|
||||
|
||||
The complete endpoint→logic map — every path with its trigger and why it's distinct — is `skills/echo-memory/references/routing-map.md`.
|
||||
|
||||
**Slug rules:** kebab-case, ASCII, ~40 chars max. Every file carries canonical YAML frontmatter.
|
||||
|
||||
---
|
||||
@@ -297,3 +311,4 @@ If the API returns a connection error, timeout, or `502` (usually Obsidian / the
|
||||
| **0.4.1** | Bugfix: daily-note Agent Log heading detection now greps raw markdown for `^## Agent Log` instead of the `::`-delimited doc-map JSON (which never matched and appended duplicate headings). Added Scope Switching cold-start test harness. |
|
||||
| **0.5.0** | Self-bootstrap + control-logic-in-plugin. Plugin becomes the single source of truth: bundled `scaffold/` (8 templates, 3 anchor seeds, thin vault README, marker) bootstraps an empty vault with no external/local-path dependency. New `operating-contract.md` (principles + safety from the old in-vault `CLAUDE.md`); `bootstrap.md` rewritten as a portable bootstrap/repair/migrate manifest. Cold-start probe moved from `/vault/BOOTSTRAP.md` to `_agent/echo-vault.md` (carries `schema_version`). Live vault migrated to data-only. |
|
||||
| **0.5.1** | Routing-doc consistency pass: decision-mirror heading unified to `## Key Decisions`; stale `Current status` PATCH examples corrected to `Status`; vault-layout inline project example refreshed to the real template. All 17 `projects/active/` notes normalized losslessly to the canonical template heading set; `android-mqtt-shell` moved to `incubating/` (was broken `status: upcoming` in active). Plugin repackaged (21 files). |
|
||||
| **0.6.0** | Schema 2. **#8 Inbox auto-fire:** the Loading procedure adds an inbox-depth GET and a load-time *Reconcile* step (inbox triage + scope-drift), so triage self-fires. **#10 Routing:** `reviews/` retired — weekly/monthly/quarterly/annual rollups fold into `journal/{weekly,monthly,quarterly,annual}/`, vault-health moves to `_agent/health/`; new `references/routing-map.md` is the complete audited endpoint→logic map. **Recs:** heartbeat pointer operationalized (read first at load, written at session end); new `scripts/vault-lint.sh` mechanically checks vault invariants. Dead refs pruned (`archive/`, `_agent/outputs/`, `resources/source-material`). Migration `1 → 2` in `bootstrap.md`. |
|
||||
|
||||
Reference in New Issue
Block a user