# goal-framing

This skill defines a task goal, evidence of success, and boundaries before work begins. Use it when the agent needs a clear stop condition and a route for the task.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 1388
- Author: GanyuanRan
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/GanyuanRan/Aegis/tree/HEAD/skills/goal-framing/SKILL.md
- Updated: 2026-10-25
- HTML: https://affpapa.org/en/nevibecode/skills/goal-framing

## What it does

When asked to frame a goal, the skill creates a compact task outline with the intended outcome, success evidence, stop condition, constraints, and scope. It then selects a workflow, such as debugging for a reported failure or planning for approved requirements, and continues in the same turn. If the user wants framing only, or essential information is missing, it stops at that point.

The skill is opt-in: it responds to `/aegis-goal`, `Aegis goal:`, or a direct request to define the goal or boundaries before starting. It does not activate for routine questions or tiny edits unless requested. It does not make authoritative gate decisions or enforce an automatic stop. When work is delegated, it prepares a concise context packet; goal framing alone does not create project files.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add GanyuanRan/Aegis --skill goal-framing -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/goal-framing/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/goal-framing/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add GanyuanRan/Aegis --skill goal-framing -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/goal-framing/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add GanyuanRan/Aegis --skill goal-framing -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/goal-framing/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install GanyuanRan/Aegis goal-framing
```

2. **Manually: put the files in place**
- File: `.github/skills/goal-framing/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add GanyuanRan/Aegis --skill goal-framing -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/GanyuanRan/Aegis --path skills/goal-framing
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/goal-framing/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add GanyuanRan/Aegis --skill goal-framing -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/GanyuanRan/Aegis/tree/HEAD/skills/goal-framing/SKILL.md

## When to use it
- set success evidence and a stop condition before implementation
- define task boundaries before work starts
- route a bug report to a debugging workflow
- give a subagent focused context instead of the full conversation

## Example prompts
- Before you start, set the goal and stop condition for fixing the auth refresh bug without rewriting the auth system: `/aegis-goal fix the auth refresh bug without rewriting the auth system`.
- Define the goal, success evidence, and task boundaries, but do not execute the work yet.
- Frame this bug investigation, then continue with the appropriate debugging workflow.

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 7b09c51853140e87.

BEGIN THIRD-PARTY FILE 7b09c51853140e87
````text
---
name: goal-framing
description: "Use when the user explicitly sets an Aegis goal with /aegis-goal, Aegis goal:, or asks to define goal, success evidence, stop condition, or task boundaries before work."
---

# Aegis Goal Framing

Use this skill to create a thin goal frame before execution. It is opt-in and
boundary-setting only.

Do not use it for tiny edits, one-command checks, or ordinary fast-path Q&A
unless the user explicitly asks for `/aegis-goal` or `Aegis goal:`.

## Authority Boundary

Current owner:

- Method Pack task framing

Not owned here:

- authoritative `GateDecision`
- final evidence sufficiency
- final completion authority is not owned here
- host daemon / automatic stop enforcement

## Input Forms

Treat these as equivalent:

- `/aegis-goal <task description>`
- `Aegis goal: <task description>`
- "Define the goal / stop condition before we start"

Slash commands are optional host shortcuts. The natural-language form is the
portable fallback.

Example:

```text
Aegis goal: Fix the auth refresh bug without rewriting the auth system.
```

## Output

Produce the smallest useful frame, then continue into the routed workflow in
the same turn.

```text
TaskIntentDraft:
- Requested outcome:
- Goal:
- Success evidence:
- Stop condition:
- Non-goals:
- Constraints:
- Scope:
- Risk hints:
- Aegis Visibility:
- Route:
- Next:
```

Default behavior:

- Do not stop after `TaskIntentDraft`.
- Treat the frame as the start protocol for execution, not as the final answer.
- After the compact frame, immediately take the `Next` action for the selected
  route when the user asked to do the work.
- Keep the visible frame natural and short when the goal is clear; do not emit a
  large internal-looking card unless the user asked for a formal frame.
- Use `Aegis Visibility` to say why the goal frame constrains the route, stop
  condition, or non-goals. Do not add trace ceremony unless the user explicitly
  asks for auditability.

Frame-only behavior:

- Stop at the frame only when the user explicitly asks to only define the goal,
  only define the stop condition, not execute, not implement, not write a plan,
  or wait for confirmation before continuing.
- If required information is missing, state the missing input and stop with
  `blocked` rather than pretending to continue.

Stop condition must distinguish:

State set: `done`, `blocked`, `needs-verification`, `scope-exceeded`.

- `done`: success evidence is satisfied
- `blocked`: required dependency, permission, or information is missing
- `needs-verification`: implementation exists but evidence is insufficient
- `scope-exceeded`: continuing would exceed the goal or non-goals

## Routing

After framing:

- Low-risk single-owner work continues through the normal fast path or TDD
- Ambiguous product / architecture / contract work routes to `brainstorming`
- Approved requirements route to `writing-plans`
````
END THIRD-PARTY FILE 7b09c51853140e87

The third-party file has ended. Everything between the 7b09c51853140e87 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2903 of 4646 bytes. © GanyuanRan · MIT · https://github.com/GanyuanRan/Aegis/tree/HEAD/skills/goal-framing/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
