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.
- Skill ID
- andreadellacorte/groove/groove-utilities-memory-promises
- Publisher
- andreadellacorte
- Repository
- groove
- Installs
- 0
- Files
- 1
- License
- MIT
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
andreadellacorte/groove/groove-utilities-memory-promisesInstalls these files- SKILL.md
What this skill tells the agent
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
--listshows all open promises clearly numbered--resolve Nmarks 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:
- Find or create the Groove Memory milestone:
beans list -t milestone --search "Groove Memory" -q— if output is non-empty, use the first ID; otherwisebeans create "Groove Memory" -t milestoneand capture the new ID
- 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; otherwisebeans 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
- Resolve
<parent-id>(see above) beans list --parent <parent-id> -s todo -t task- Display as numbered list:
1. [<id>] <title>— position number for--resolve N, beans ID in brackets - If empty: print "No open promises."
--resolve <N>
- Resolve
<parent-id>; runbeans list --parent <parent-id> -s todo -t task - Find the Nth item; if not found: print "No open promise #N" and exit
beans update <id> -s completed- Confirm: "Promise #N resolved."
Default — add a promise
- Resolve
<parent-id>(see above) - Get promise text from $ARGUMENTS if provided; otherwise ask: "What's being deferred?"
- Optionally ask: "Any context? (enter to skip)"
beans create "<text>" -t task --parent <parent-id> -s todo -p deferred- If context given:
beans update <id> -d "<context>" - Confirm: "Promise captured: [<id>] <text>"
Constraints
- Read
tasks.backendfrom.groove/index.mdat 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 todofor open,-s completedfor resolved;-p deferredto signal not active work - Do not resolve all promises automatically; resolve one at a time unless user asks for
--resolve-all --resolve-allrequires confirmation: "Resolve all N open promises?" before proceeding
More from andreadellacorte
Use this skill in a project
Open any RiverX project, search the Skills panel for andreadellacorte/groove/groove-utilities-memory-promises, and install it in one click.
