skill(mempalace): teach temporal grounding (recreate != new day)
Baked mempalace SKILL.md now instructs agents to establish current date/time and compute the delta against the actual diary/drawer timestamp before using relative terms (yesterday/last week), and explicitly that a container recreate or fresh session is NOT a day boundary (pi-devbox restarts several times a day). Phase 1 wake-up section + anti-pattern bullet. CHANGELOG Unreleased.
This commit is contained in:
@@ -25,6 +25,18 @@ Pre-v1.0.0 tags followed the pi npm version (`v{pi_version}[letter]`).
|
|||||||
asserts `yq --version` reports `mikefarah` **and** major **v4**, so both a
|
asserts `yq --version` reports `mikefarah` **and** major **v4**, so both a
|
||||||
regression to the Python package and a surprise future yq v5 fail CI.
|
regression to the Python package and a surprise future yq v5 fail CI.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- **Baked `mempalace` skill now teaches temporal grounding.** Added a
|
||||||
|
*Temporal grounding* rule to the image-baked
|
||||||
|
`skills/mempalace/SKILL.md` (Phase 1 wake-up + a matching anti-pattern):
|
||||||
|
before using relative time terms ("yesterday", "last week"), establish the
|
||||||
|
current date/time and compute the delta against the actual diary/drawer
|
||||||
|
timestamp. Explicitly calls out that a **container recreate or fresh session
|
||||||
|
is not a day boundary** — pi-devbox restarts several times a day, so two
|
||||||
|
entries minutes apart can straddle a recreate. Fixes agents mislabelling
|
||||||
|
same-day sessions as "yesterday".
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## v1.2.2 — 2026-06-24
|
## v1.2.2 — 2026-06-24
|
||||||
|
|||||||
@@ -43,6 +43,29 @@ Run these immediately when a session begins, before responding to the user:
|
|||||||
|
|
||||||
Do NOT announce this to the user. Just do it silently to orient yourself.
|
Do NOT announce this to the user. Just do it silently to orient yourself.
|
||||||
|
|
||||||
|
### Temporal grounding — compute time deltas, don't guess
|
||||||
|
|
||||||
|
Diary entries and drawers carry real timestamps (`timestamp`, `created_at`).
|
||||||
|
Before describing *when* something happened — "yesterday", "earlier today",
|
||||||
|
"last week", "a while back" — **establish the current date/time first and
|
||||||
|
compute the delta against the actual timestamp.** Get "now" from the injected
|
||||||
|
session date or by running `date` in a shell; never infer it.
|
||||||
|
|
||||||
|
**A container recreate or a fresh session is NOT a day boundary.** A pi-devbox
|
||||||
|
container is frequently restarted — often several times within the *same* day —
|
||||||
|
and each restart begins a new session with a fresh wake-up. Do not reason "new
|
||||||
|
session ⇒ last session was yesterday": two diary entries 90 minutes apart can
|
||||||
|
straddle a container recreate. The only authoritative clock is the timestamp on
|
||||||
|
the memory, not the session/container boundary.
|
||||||
|
|
||||||
|
**Practical rule:** prefer explicit, checkable phrasing — e.g. "earlier today,
|
||||||
|
~8h ago (both 2026-06-25)" — over a vague relative term. If you catch yourself
|
||||||
|
about to write "yesterday" / "last week", subtract `now − entry.timestamp` and
|
||||||
|
state the computed result. (Remember timestamps may be UTC while the wall clock
|
||||||
|
is local — reconcile the offset before computing the delta.) Note too that
|
||||||
|
session feeders can lag up to a week (see *Multi-harness palace*), so a recent
|
||||||
|
absence in `wing_conversations` is not proof nothing happened.
|
||||||
|
|
||||||
### Phase 2: Active Session (during work)
|
### Phase 2: Active Session (during work)
|
||||||
|
|
||||||
#### Search Before You Speak
|
#### Search Before You Speak
|
||||||
@@ -294,6 +317,7 @@ Entity-relationship triples with temporal validity. Query with `mempalace_kg_que
|
|||||||
## Anti-Patterns
|
## Anti-Patterns
|
||||||
|
|
||||||
- **Don't guess when you can search.** If a question touches past work, search first.
|
- **Don't guess when you can search.** If a question touches past work, search first.
|
||||||
|
- **Don't infer elapsed time from session or container boundaries.** A restart isn't a new day. Compare the actual timestamp (`timestamp` / `created_at`) against the current date/time before saying "yesterday", "last week", etc.
|
||||||
- **Don't skip the diary.** A session without a diary entry is a session forgotten.
|
- **Don't skip the diary.** A session without a diary entry is a session forgotten.
|
||||||
- **Don't summarize drawer content.** File verbatim — the embedding model needs the original words.
|
- **Don't summarize drawer content.** File verbatim — the embedding model needs the original words.
|
||||||
- **Don't mine .git directories or node_modules.** The CLI miner respects .gitignore by default.
|
- **Don't mine .git directories or node_modules.** The CLI miner respects .gitignore by default.
|
||||||
|
|||||||
Reference in New Issue
Block a user