agentsclimarketplace

Memory manager

Skill chriscantu/claude-eisenhower/skills/memory-manager

Internal plugin skill. Use this skill when a plugin command directs you to perform a memory operation: log-delegation, resolve-delegation, update-checkin, or query-pending. Called by /schedule, /complete-task, /delegate, /review-week, /today, and /review-org. Do NOT invoke this skill based on user phrases — it is a plugin-internal service.From its SKILL.md

Install
npx -y skills add chriscantu/claude-eisenhower --skill memory-manager

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.4 KB, as published. Nobody here has run it

Memory Manager

Single writer for delegation memory CREATE and UPDATE operations in the claude-eisenhower plugin. DELETE operations are owned by /forget (commands/forget.md) and write directly to memory/glossary.md and memory/people/*.md — see issue #42 for the rationale (the destructive correction loop has different atomicity, confirmation, and PII concerns from the routine operations below).

This partition is intentional. The schema is shared (see docs/specs/memory-schema-spec.md), so changes to the row format must update both this skill AND commands/forget.md's delete logic in the same commit. Adding a new operation here? If it's CREATE/UPDATE, extend this skill. If it's DELETE, extend /forget instead.

The backend is local markdown files only — there is no external skill fallback or primary store. See docs/adrs/single-backend-memory.md for the architectural decision that retired the prior dual-backend abstraction.

See references/memory-operations.md for local file formats, return shapes, and failure mode details.


Gotchas

High-signal traps. Read before adding or changing an operation.

  • Every CREATE/UPDATE is a DUAL write. Each operation touches BOTH memory/glossary.md (the ## Stakeholder Follow-ups table) AND memory/people/[alias-filename].md. Update one without the other and the two stores desync — /forget and query-pending then read inconsistent state.
  • DELETE does not live here. This skill is CREATE/UPDATE only. Deletes are owned by /forget (commands/forget.md). Routing a delete through this skill is wrong; routing a CREATE/UPDATE through /forget is wrong.
  • The row schema is shared with /forget. It is specced in docs/specs/memory-schema-spec.md. Any change to the row/column format MUST update this skill AND commands/forget.md's delete logic in the same commit, or the other writer's reads break.
  • Dedup is the CALLER's job. query-pending returns raw pending rows; the calling command suppresses entries already in TASKS.md Delegated (TASKS.md is authoritative). This skill never cross-references TASKS.md itself.
  • Alias filename is derived per spec — don't guess it. memory/people/ filenames follow the derivation rule in the schema spec. An ad-hoc filename orphans the per-person file from its glossary row.
  • Pending-status match is case-insensitive. Filter rows on Pending case-insensitively; an exact-case compare silently drops valid entries.

Operations

log-delegation

Purpose: Create a new pending delegation entry when a task is delegated.

Inputs:

  • alias — delegate's display alias (e.g., "Alex R.")
  • task_title — title of the delegated task
  • check_in_date — YYYY-MM-DD date for follow-up

Execution:

  1. Ensure memory/people/ directory exists (create if absent).
  2. Write using the canonical schema in docs/specs/memory-schema-spec.md:
    • Append a new row to the ## Stakeholder Follow-ups table in memory/glossary.md: | [alias] | [task_title] | [YYYY-MM-DD] | [check_in_date] | Pending |
    • Create or append to memory/people/[alias-filename].md (filename derived per spec): | [task_title] | [YYYY-MM-DD] | [check_in_date] | Pending | — |
  3. If the write fails: "Could not record this follow-up ([reason]). Track it manually."

Returns: success | failed


resolve-delegation

Purpose: Mark a pending delegation as resolved when the delegated task is complete.

Inputs:

  • alias — delegate's display alias
  • task_title — title of the delegated task
  • resolved_date — YYYY-MM-DD date of resolution (today)

Execution:

  1. Find the row matching alias + task_title in the ## Stakeholder Follow-ups table of memory/glossary.md
  2. Update its Status cell to: Resolved — [resolved_date]
  3. Apply the same status update to the matching row in memory/people/[alias-filename].md
  4. If no matching row found: log warning internally, continue (non-blocking).

Returns: success | not-found (non-blocking)


update-checkin

Purpose: Extend a delegation's check-in date when a task is still in progress.

Inputs:

  • alias — delegate's display alias
  • task_title — title of the delegated task
  • new_check_in_date — YYYY-MM-DD new check-in date

Execution:

  1. Find the row matching alias + task_title in the ## Stakeholder Follow-ups table of memory/glossary.md
  2. Update its Check-by cell to new_check_in_date
  3. Apply the same check-in update to the matching row in memory/people/[alias-filename].md
  4. If no matching row found: log warning internally, continue (non-blocking).

Returns: success | not-found (non-blocking)


query-pending

Purpose: Retrieve pending delegation entries with check-in dates within a given range.

Inputs:

  • within_business_days — number of business days from today to search (e.g., 5)

Execution:

  1. Read the ## Stakeholder Follow-ups table in memory/glossary.md. If the file is missing or unreadable, return [] (non-blocking).
  2. Parse rows with Status = Pending (case-insensitive).
  3. Filter for: Check-by date within within_business_days business days from today.

Deduplication (caller's responsibility): Cross-reference results against TASKS.md Delegated records before displaying. If the same alias + task_title appears in both, suppress the memory-only entry — TASKS.md is the authoritative source for that record.

Returns: list of entries (see references/memory-operations.md for return shape). Empty list if memory/glossary.md is missing or unreadable (non-blocking).


Failure Modes

ScenarioBehavior
memory/people/ missingCreate the directory; write new files
memory/glossary.md missing on readReturn empty result (non-blocking for query-pending)
Write fails (permissions, disk)Surface non-blocking warning; instruct manual tracking
Entry not found on resolve/updateNon-blocking; log warning internally

Keep looking

Skills are one crate of 628,853. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.