Agent & orchestration

define-goal

Try it

Turn a fuzzy intention into a concrete, measurable objective an agent can verify.

What it does

Helps users write goals that name a specific outcome, the artifact or system involved, how completion will be verified, and what is in or out of scope. Before creating a goal, it checks active goal state via `get_goal`, avoids duplicates, and rejects pure activity goals like "keep investigating" or "make progress" unless sharpened into a verifiable outcome. Output is a single concise objective string passed to `create_goal`, including the verification evidence and any scope bounds.

When to use it

  • Creating a goal for a code change with a test-based validator
  • Defining a performance target with explicit metric and threshold
  • Sharpening a vague request into a verifiable objective
  • Resolving review comments tied to a specific PR with a pass condition

The skill document

Define Goal

Overview

Shape the user's intent into an objective an agent can pursue honestly. Prefer measurable outcomes, explicit evidence, and bounded scope over activity descriptions.

This skill covers goal definition and goal-tool creation only. Do not create intermediate planning artifacts, durable snapshots, ledgers, decision logs, or resume files from this skill.

Workflow

  1. Confirm that goal definition is actually needed.

    • Use this skill when the user asks for $define-goal, asks to create or set a goal, asks for the goal tool, or wants help turning an intention into a clear objective.
    • If the user only asks for ordinary implementation work, do the work directly instead of forcing goal creation.
  2. Restate the likely goal in concrete terms. A usable goal names:

    • the specific outcome that will be true
    • the main artifact, system, repo, environment, or user-facing behavior involved
    • how completion will be verified
    • what is in scope
    • what is out of scope when ambiguity would matter
    • the stop condition for asking the user instead of grinding
  3. Make it quantitative when the domain supports it. Prefer numbers that represent real success, not decorative precision:

    • pass/fail validators: exact tests, checks, CI jobs, evals, commands, or acceptance criteria
    • quality thresholds: latency, error rate, cost, accuracy, recall, precision, coverage, flake rate, bundle size, memory, uptime, completion rate, or manual review criteria
    • artifact constraints: file paths, affected modules, allowed commands, output formats, target environments, deadlines, or maximum blast radius
    • evidence counts: number of reproduced failures, successful reruns, reviewed examples, migrated records, addressed comments, or verified cases
  4. Repair weak goals before setting them.

    • Rewrite vague goals into measurable objectives when local context makes the rewrite safe.
    • Ask one concise clarification question when the missing detail changes the intended outcome or validation.
    • Reject pure activity goals such as "make progress," "keep investigating," "improve things," or "work on X" unless they are sharpened into a verifiable outcome.
  5. Check active goal state before creating a goal.

    • Call get_goal.
    • If there is no active goal and the objective meets the quality bar, call create_goal.
    • If there is an active goal that still matches the user's intent, continue using it instead of creating a duplicate.
    • If there is an active goal that conflicts with the new request, ask whether to finish the current goal, mark it complete if done, or start a separate goal-backed thread.
  6. Create the goal only after it passes the quality bar.

    • Use a single concise objective string.
    • Include the verification evidence in the objective itself.
    • Include scope bounds when they constrain the work.
    • Include a token budget only when the user explicitly requested one.
    • Do not call create_goal for an ordinary multi-step task unless the user explicitly asked for goal-backed work.

Goal Quality Bar

Before create_goal, the objective should answer:

  • What concrete thing will be true when this is done?
  • What evidence will prove it?
  • What quantitative or binary threshold defines success?
  • What scope boundaries matter?
  • What should cause the agent to stop and ask?

Good:

Reduce checkout API p95 latency below 250 ms for the documented slow path by making the smallest safe server-side change, then verify with npm run test:checkout and the existing local latency benchmark showing p95 under 250 ms across 3 consecutive runs.

Good:

Resolve the open review comments on PR 123 that request code changes, update only the affected auth files and tests, and verify with the targeted auth test command plus gh pr view 123 showing no unresolved change-request threads.

Weak:

Make checkout faster.

Weak:

Keep investigating the PR comments.

Quantification Heuristics

  • For bugs, define success as reproduction first, fix second, and a failing-then-passing validator when possible.
  • For tests, name the exact command and required pass condition.
  • For performance, name the metric, target threshold, measurement method, and number of runs.
  • For quality work, define an observable acceptance bar such as reviewed examples, lint/typecheck/test pass, or user-approved artifact.
  • For research, define the decision the research must enable, the sources or systems in scope, and the evidence standard.
  • For operations, define healthy state, monitoring window, failure threshold, and rollback or escalation trigger.

Clarifying Questions

Ask only when a reasonable rewrite would risk pursuing the wrong outcome. Keep the question short and oriented around the missing validator or scope boundary.

Useful question shapes:

  • "What metric should define success here: latency, cost, accuracy, or user-visible behavior?"
  • "Which environment should I verify against: local, staging, or production?"
  • "What is the minimum evidence you want before I mark this goal complete?"

If the user cannot provide a metric, propose the most honest binary validator available and ask for confirmation.

Questions people ask

Does this skill manage long-running execution artifacts like decision logs or snapshots?
No. The skill is scoped to goal definition and goal-tool creation only and explicitly does not produce planning artifacts, durable snapshots, ledgers, decision logs, or resume files.
What does the skill do when an active goal already exists?
It calls `get_goal` first. If the active goal still matches the user's intent, it continues using it. If it conflicts, it asks whether to finish, mark complete, or start a separate goal-backed thread.
When does it ask a clarifying question versus rewriting the goal itself?
It rewrites vague goals when local context makes the rewrite safe, and asks one concise question only when the missing detail would change the intended outcome or validation.

More from OpenAI

Browse all skills

chatgpt-apps

Official

Scaffold ChatGPT Apps SDK projects with a docs-first workflow, tool plan, and working MCP server plus widget code.

by OpenAI27.9k stars

Build or update full Figma screens by composing published design system components, variables, and styles.

by OpenAI27.9k stars

Build a complete, code-aligned Figma design system in phases, with variables, components, and themes created in the right order.

by OpenAI27.9k stars

figma-use

Official

Write safe, incremental JavaScript against the Figma Plugin API from your agent.

by OpenAI27.9k stars

hatch-pet

Official

Build Codex-compatible animated pet atlases from concept art, brand cues, or references, with validated spritesheets and packaging.

by OpenAI27.9k stars

openai-docs

Official

Get authoritative, current answers from OpenAI developer docs with citations and source paths.

by OpenAI27.9k stars