Long Goal
Track and manage multi-turn objectives across conversation sessions.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/long-goal-hkuds/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
Sustained objectives via long_task / complete_goal — idempotent goal wording, project-style modular work, early web/doc research, Runtime Context metadata.
What this skill does
Long-running objectives (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.
Start fast
long_task is a lightweight marker. Calling it tells nanobot: "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:
- design the full project plan,
- research APIs or documentation,
- write an exhaustive project plan or checklist,
- decide every file, command, or verification step.
Those belong to the execution phase after the marker is set.
Tools
-
long_task— Register one sustained objective per thread. Call it promptly once the user has asked for a sustained task. Thegoalshould 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: userecapto state honestly what happened (e.g. cancelled, partially done, superseded). Then you may calllong_taskagain 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.
Where the goal appears
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.
Execution guide after long_task is set
Use the guidance below while doing the work. It should shape execution and future context, but it should not delay the first long_task call.
Idempotent goals (important)
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:
-
State-oriented, not fragile narration — Prefer desired end state + acceptance criteria (“Document lists X, Y, Z under
docs/…; links validated”) over implicit sequencing that breaks if step 1 was already done (“First clone the repo, then…”). -
Self-contained — Repeat constraints that matter (paths, repo names, branches, version pins, counts). Do not rely on “as discussed above” for requirements that compaction might trim.
-
Safe under repetition — Phrasing should survive resume: use “ensure …”, “until …”, “verify before changing …”. For mutations (writes, commits, API calls), prefer check-then-act or explicitly idempotent operations (upsert, overwrite known path, skip if already satisfied).
-
Bounded scope — Say what is in and out (e.g. “top 100 repos by stars in range A–B”, “only files under
src/”). Reduces drift when the model re-enters the goal cold. -
Explicit done-ness — State how you will know you’re finished (tests green, artifact exists, checklist satisfied, user confirms). Avoid “when it looks good”.
-
ui_summary— 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.
Project-shaped work (avoid the “mega file” trap)
Use this when the goal is to build or reshape a codebase (app, service, tooling, sizeable feature):
- Modular layout — Split into meaningful modules (directories + files with clear responsibilities: entrypoints, domain logic, config, infra, CLI/UI routes, etc.). Do not default to dumping an entire project into one giant source file unless the user explicitly wants a minimal single-file artifact.
- Conventional structure — Follow normal practice for that stack (separation of concerns, sensible naming, config vs code, reusable helpers). Aim for reviewable increments, not unreadable blobs.
- Verify as you go — Run/format/lint/tests the project affords after meaningful chunks so the tree stays truthful; bake checks or manual steps into the goal when they matter.
Look things up instead of guessing
Facts (API specifics, tooling flags, deprecations, best practices newer than cutoff) fail silently in sustained work unless you anchor them early:
- Use discovery tools when appropriate — If the ecosystem is unfamiliar or brittle,
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. - Turn findings into scoped action — Summarize conclusions into repo artifacts only when helpful (comments, README, small design note); keep compact—not a substitute for executing the objective.
- Re-consult when stuck — If errors contradict assumptions or loops repeat, pause and refresh context with targeted search/fetch rather than hammering blindly.
Related skills
App Store Listing Audit
coreyhaines31
Analyze your app listing against best practices and get a prioritized optimization plan.
Co-Marketing Partnerships
coreyhaines31
Find ideal partners and plan joint marketing campaigns with other companies.
Cold Email Writer
coreyhaines31
Write B2B cold emails and follow-up sequences designed to get replies.
Community-Led Growth
coreyhaines31
Build and grow online communities to drive product adoption and customer loyalty.