Add eidetic remember/recall memory skills#10
Conversation
- **Vendored the `remember` + `recall` memory skills from eidetic-cli** (cite-don't-import) — the write/read halves of eidetic's shared `~/.eidetic/memory` surface, so this agent (Claude and its colleague backend) can persist facts across sessions and recall them later, sharing one store. `remember` drives `eidetic remember` (idempotent upsert of one JSON record or an NDJSON batch on stdin, dedup by id + content hash); `recall` drives `eidetic recall` with four search modes — exact / approximate / keyword / hybrid — each hit carrying text, full provenance metadata, a relevance score, and a freshness signal. The `.sh` wrappers are byte-verbatim from eidetic-cli (their first-party origin); each `SKILL.md` is localized only in the illustrative `--scope <nick>` examples (Provenance keeps "First-party to eidetic-cli"). Both default to this agent's PRIVATE scope, reading the suffix from `culture.yaml`. Runtime dep: the `eidetic` CLI on PATH (else a local eidetic-cli checkout with `uv`). Propagated by rollout-cli's `eidetic-memory` recipe.
|
PR Summary by QodoVendor eidetic remember/recall skills for shared persistent memory Description
Diagram
High-Level Assessment
Files changed (6)
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
20 rules 1. Eidetic fallback never resolves
|
| resolve_eidetic() { | ||
| if command -v eidetic >/dev/null 2>&1; then | ||
| EIDETIC=(eidetic) # installed console script — the normal case | ||
| return 0 | ||
| fi | ||
| # Dev fallback: inside the eidetic-cli checkout, run via uv. | ||
| local dir | ||
| dir=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) | ||
| while [ -n "$dir" ] && [ "$dir" != "/" ]; do | ||
| if [ -f "$dir/pyproject.toml" ] \ | ||
| && grep -q '^name = "eidetic-cli"' "$dir/pyproject.toml" 2>/dev/null; then | ||
| if command -v uv >/dev/null 2>&1; then | ||
| EIDETIC=(uv run --project "$dir" eidetic) | ||
| return 0 | ||
| fi | ||
| break | ||
| fi | ||
| dir=$(dirname "$dir") | ||
| done |
There was a problem hiding this comment.
1. Eidetic fallback never resolves 🐞 Bug ☼ Reliability
Both wrappers’ resolve_eidetic() only falls back to uv run when a parent directory contains a pyproject.toml named exactly eidetic-cli, but this repo’s pyproject.toml is data-refinery-cli, so the fallback path cannot trigger from this checkout. This makes /remember and /recall unusable unless an eidetic executable is already on PATH, contradicting the documented “local eidetic-cli checkout + uv” fallback.
Agent Prompt
### Issue description
The new skill wrappers claim to resolve `eidetic` from PATH or via `uv run` from a local `eidetic-cli` checkout, but the current implementation only searches upward from the wrapper’s own directory for a `pyproject.toml` whose `name` is exactly `eidetic-cli`. In this repo, the nearest `pyproject.toml` is `data-refinery-cli`, so the `uv` fallback never activates and the scripts error unless `eidetic` is installed globally.
### Issue Context
This repo already has a proven pattern for “installed tool OR uv-run local checkout” resolution in `ask-colleague.sh`, which searches from `$PWD` and the resolved repo root.
### Fix Focus Areas
- .claude/skills/recall/scripts/recall.sh[16-44]
- .claude/skills/remember/scripts/remember.sh[23-50]
- CHANGELOG.md[20-26]
### Suggested changes
- Refactor `resolve_eidetic()` to mirror the working pattern in `.claude/skills/ask-colleague/scripts/ask-colleague.sh`:
- Attempt `command -v eidetic` first.
- Then attempt an `uv run --project <dir> eidetic` fallback by searching from `$PWD` and (if available) the git repo root (or an explicit env var like `EIDETIC_CLI_PROJECT`).
- Optionally: if `EIDETIC` is set, treat it as an override command.
- If you intentionally *don’t* want to support arbitrary local checkouts, update the CHANGELOG/docs to remove the claim that a local checkout + `uv` is sufficient (or clarify that it only works when these scripts live inside the `eidetic-cli` checkout).
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Vendors eidetic-cli's first-party
remember+recallmemory skills into this repo's.claude/skills/kit (cite-don't-import), giving this agent a shared, persistent memory surface (~/.eidetic/memory) that Claude and the colleague backend both read and write.remember→eidetic remember: idempotent upsert of one JSON record or an NDJSON batch on stdin (dedup by id + content hash).recall→eidetic recall: four search modes (exact / approximate / keyword / hybrid), each hit carrying text, full provenance metadata, a relevance score, and a freshness signal.The
.shwrappers are byte-verbatim from eidetic-cli (their first-party origin); this repo'sSKILL.mdscope examples are localized to its own nick. Version bumped + CHANGELOG updated per the AgentCulture rule. Runtime dep: theeideticCLI on PATH (else a local eidetic-cli checkout +uv).Propagated by rollout-cli's
eidetic-memoryrecipe (origin: agentculture/eidetic-cli). Squash-merge at your discretion.🤖 Generated with Claude Code