plugin 0.3.0: port search-first rule + 6 new SKILL.md improvements

Promotes the previously session-local search-first write rule into the
canonical plugin and applies items 2-7 from echo-skill-improvements memory:

1. Loading Step 4 and a new mandatory pre-write search section now require
   POST /search/simple/?query=<slug> across all four project lifecycle
   subfolders before creating any slug-addressed note.
2. Daily-note Agent Log uses a resilient PATCH procedure that auto-creates
   the daily note from the template if missing and adds the heading if
   absent before patching.
3. New Style Rule: `created:` is the earliest known date, not "today";
   preserve it on merges.
4. New Project Lifecycle section: incubating / active / on-hold / archived,
   with the rule that folder and frontmatter.status must agree.
5. Session filename pinned to YYYY-MM-DD-HHMM-<slug>.md (lex-sortable);
   existing files left as-is.
6. Loading Step 3: read only the ~5 most recent sessions by reverse lex
   sort instead of the full list.
7. `source_notes` defined as a backward link to inputs; forward links
   belong in `## Related` in the body.

Repo layout: promotes the previously zipped-only plugin to a tracked
source tree at echo-memory.plugin.src/. The .plugin zip is rebuilt
from source on each version bump.

Bumps plugin.json to 0.3.0.
This commit is contained in:
2026-06-06 21:41:54 -05:00
parent d37b248747
commit 307c7f5e9b
9 changed files with 901 additions and 0 deletions
@@ -0,0 +1,108 @@
# Session Log Template
Session logs go in: `_agent/sessions/YYYY-MM-DD-HHMM-<slug>.md`
The slug describes what the session was about in 25 words, kebab-case.
Examples: `2026-06-05-1430-echo-plugin-build.md`, `2026-05-14-0900-q1-review-prep.md`.
Keep logs focused. Capture the goal, what was read/done, decisions, outputs, open threads, and the next step. This matches the vault's `_agent/templates/session-log-template.md`.
---
## Template
```markdown
---
type: session-log
status: complete
created: 2026-06-05T14:30
updated: 2026-06-05T14:30
tags: [agent, session]
agent_written: true
source_notes: []
session_date: 2026-06-05
client: claude-code
---
# Session Log
## Goal
One line — what this session set out to do.
## Notes Read
- [[note]] — why it was relevant
(omit if none)
## Actions Taken
Brief narrative or bullets of what was done.
## Decisions Made
- Decision — why
(omit section if none)
## Outputs Created
- `path/or/filename` — what it is
(omit section if none)
## Open Threads
- [ ] unresolved question or next step
(omit section if none)
## Suggested Next Step
One sentence: what to do first next time on this topic.
## Related
- [[wikilinks go here, in the body — never in frontmatter]]
```
---
## Example
```markdown
---
type: session-log
status: complete
created: 2026-06-05T14:30
updated: 2026-06-05T14:30
tags: [agent, session, plugin]
agent_written: true
source_notes: ["resources/references/obsidian-local-rest-api.md"]
session_date: 2026-06-05
client: claude-code
---
# Session Log
## Goal
Build and package the echo-memory CoWork plugin against the live vault.
## Notes Read
- [[BOOTSTRAP]], [[STRUCTURE]], [[_agent/memory/semantic/operator-preferences]]
## Actions Taken
Verified the REST API end-to-end, confirmed the scaffold copied into the live vault,
created missing empty folders, and built the plugin (SKILL + 4 reference files).
## Decisions Made
- Vault addressed at root — ECHO is a dedicated vault.
- Key hardcoded in the plugin (not in the vault) — personal plugin, per the reference pattern.
## Outputs Created
- `echo-memory.plugin` — installable CoWork plugin
## Open Threads
- [ ] Validate Claude Code direct filesystem access to the vault host.
## Suggested Next Step
Install the plugin and run a live load/write through it to confirm the skill triggers.
## Related
- [[projects/active/vault-foundation]]
- [[resources/references/obsidian-local-rest-api]]
```
After writing the log, append a one-line entry to the daily note's **Agent Log** section.
> **Reminder:** wiki links go in the body (e.g. this `## Related` section), never in YAML
> frontmatter. `source_notes` in frontmatter holds plain relative path strings, not `[[links]]`.