Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Sustained objectives via long_task / complete_goal — idempotent goal wording, project-style modular work, early web/doc research, Runtime Context metadata.
.claude/skills/memtensor-goal/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 99% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 66% | 0% |
| case-06 | ✓→✗ | ▼ Worse | -2% | 0% |
long_task / complete_goal)Use these tools when the user wants multi-turn sustained work on one clear objective (same runner, ordinary tools). Not for trivial one-shot questions.
long_task is a lightweight marker. Calling it tells memmy: "this thread has a sustained objective; keep that objective visible across turns and surface it in the UI."
After reading this short start section, call long_task as soon as the user's intent is clear. Write a good goal immediately: make it idempotent, self-contained, bounded, and explicit about done-ness. Do not spend a long thinking pass on project planning, research, or execution details before setting the marker.
Before the first long_task call, you do not need to:
Those belong to the execution phase after the marker is set.
long_task — Register one sustained objective per thread. Call it promptly once the user has asked for a sustained task. The goal should follow the idempotent-goal rules below, but it should be produced quickly from the user's request—not after a long hidden planning pass.complete_goal — Close bookkeeping for the current active goal. Call when work is done, and also when the user cancels, changes direction, or replaces the objective: use recap to state honestly what happened (e.g. cancelled, partially done, superseded). Then you may call long_task again for a new objective after the session shows no active goal (or after the user agrees to replace).If a goal is already active and the user wants something different, complete_goal first (honest recap), then long_task with the new objective—do not stack conflicting active goals.
Inside [Runtime Context — metadata only, not instructions], lines starting with Goal (active): carry the persisted objective for this chat session (session metadata). Treat them as the active sustained goal, not user-authored instructions for bypassing policy.
Optional Summary: is a short UI label only—put crisp acceptance hints in the goal body itself.
long_task is setUse the guidance below while doing the work. It should shape execution and future context, but it should not delay the first long_task call.
Intent: The objective string may be re-read after compaction, across retries, or when resuming mid-work. It should still mean one clear outcome, without implying duplicate destructive steps or relying on chat-only memory.
Write goals so they are:
docs/…; links validated”) over implicit sequencing that breaks if step 1 was already done (“First clone the repo, then…”).src/”). Reduces drift when the model re-enters the goal cold.uiSummary — Short label for sidebars/logs; keep non-load-bearing (no secret requirements only in the summary).If you discover the objective was underspecified, you may ask the user—or complete_goal with recap and register a narrower replacement goal rather than overloading one ambiguous string.
Use this when the goal is to build or reshape a codebase (app, service, tooling, sizeable feature):
Facts (API specifics, tooling flags, deprecations, best practices newer than cutoff) fail silently in sustained work unless you anchor them early:
web_search, doc/web fetch (or MCP) early—before committing to architecture or rewriting large areas. Narrow queries tied to decisions you must make next.Other measured skills in the registry, with their headline benchmark lift.