groove-utilities-memory-promises
Capture and resolve deferred items from a session ('we'll come back to that'). Use $ARGUMENTS as the promise text, or --list / --resolve N.
By andreadellacorte · 517 installs
npx skills add andreadellacorte/groove --skill groove-utilities-memory-promises
Source repository · Upstream listing
groove utilities memory promises
Use $ARGUMENTS as the promise text if provided, or a flag:
list : show all open promises
resolve <N : mark promise N as resolved
Outcome
Deferred items from a session are captured before they are forgotten, or existing open promises are reviewed and resolved.
Acceptance Criteria
New promise captured with date and optional context
list shows all open promises clearly numbered
resolve N marks promise N as resolved
Task backend
Read tasks.backend from .groove/index.md . Promises are tracked as tasks in the configured backend. If no task backend is configured ( tasks.backend: none ), tell the user to run /groove utilities task install first.
Promises are stored as tasks under a shared "Groove Memory" milestone → "Promises" epic hierarchy. This keeps them organised and out of the main work task list.
Ensure parent hierarchy
Before any operation, resolve or create the parent epic:
1. Find or create the Groove Memory milestone:
beans list t milestone search "Groove Memory" q — if output is non empty, use the first ID; otherwise beans create "Groove Memory" t milestone and capture the new ID
2. Find or create the Promises epic under that milestone:
beans list t epic parent <milestone id search "Promises" q — if non empty, use first ID; otherwise beans create "Promises" t epic parent <milestone id and capture the new ID
Use the Promises epic ID as <parent id for all promise tasks.
list
1. Resolve <parent id (see above)
2. beans list parent <parent id s todo t task
3. Display as numbered list: 1. [<id ] <title — position number for resolve N , beans ID in brackets
4. If empty: print "No open promises."
resolve <N
1. Resolve <parent id ; run beans list parent <parent id s todo t task
2. Find the Nth item; if not found: print "No open promise N" and exit
3. beans update <id s completed
4. Confirm: "Promise N resolved."
Default — add a promise
1. Resolve <parent id (see above)
2. Get promise text from $ARGUMENTS if provided; otherwise ask: "What's being deferred?"
3. Optionally ask: "Any context? (enter to skip)"
4. beans create "<text " t task parent <parent id s todo p deferred
5. If context given: beans update <id d "<context "
6. Confirm: "Promise captured: [<id ] <text "
Constraints
Read tasks.backend from .groove/index.md at the start of every invocation
Requires a configured task backend — if tasks.backend: none , prompt user to install one
Never auto capture promises without user confirmation — always explicit
Milestone/epic parent hierarchy is idempotent — always check before creating; never create duplicates
Use s todo for open, s completed for resolved; p deferred to signal not active work
Do not resolve all promises automatically; resolve one at a time unless user asks for resolve all
resolve all requires confirmation: "Resolve all N open promises?" before proceeding