| name | creating-a-goal |
| description | Use when setting up a new open-ended goal for autonomy tracking, before starting the first iteration |
Creating a Goal
Overview
Set up a new open-ended goal by creating the directory structure, writing the goal definition, and preparing for iteration tracking.
Core principle: One-time setup. Run this once per goal, then use starting-an-iteration for all subsequent work.
When to Use
Use this skill when:
- User runs
/create-goalcommand - Starting a brand new open-ended goal
- No existing autonomy goal directory exists
DO NOT use for:
- Continuing existing goal (use starting-an-iteration instead)
- Closed goals with definition of done (use ed3d-superpowers workflow)
Quick Reference
| Step | Action | Tool |
|---|---|---|
| 1. Verify no existing goal | Check for autonomy directory | Glob |
| 2. Get goal details | Prompt user for goal statement | User interaction |
| 3. Generate directory name | Convert to kebab-case | Manual |
| 4. Create structure | Make directory | Bash |
| 5. Write goal.md | Document goal definition | Write |
| 6. Announce ready | Tell user to run /start-iteration | Direct output |
Process
Step 1: Verify No Existing Goal
Check that no goal already exists:
# Use Glob to check
pattern: "autonomy/*/goal.md"
If goal.md found:
"An autonomy goal already exists: [goal-name]
Use '/start-iteration' to continue working on this goal.
If you want to create a different goal, first archive or remove the existing one."
Stop here - don't create duplicate goals.
If no goal found: Proceed to Step 2.
Step 2: Get Goal Details from User
Prompt user for goal information:
"What open-ended goal would you like to pursue?
This should be a goal that never truly completes - ongoing optimization, continuous improvement, or iterative exploration.
Examples:
- Maximize monthly recurring revenue
- Improve developer productivity
- Reduce customer churn
- Optimize application performance
Your goal:"
User provides goal statement.
Then ask about success criteria:
"What metrics or indicators should we track for this goal?
Since this is open-ended, there's no 'done' state, but we can track progress.
Examples:
- MRR: Starting at $45k/month
- Churn rate: Currently 13%
- Build time: Currently 5 minutes
Your metrics (or 'none' if not applicable):"
User provides metrics or indicates none.
Step 3: Generate Directory Name
Convert goal statement to kebab-case:
Rules:
- Lowercase all characters
- Replace spaces with hyphens
- Remove special characters
- Keep concise (max 50 chars)
Examples:
- "Maximize monthly recurring revenue" →
maximize-monthly-recurring-revenue - "Improve developer productivity" →
improve-developer-productivity - "Reduce customer churn by 50%" →
reduce-customer-churn
Step 4: Create Directory Structure
Create the goal directory:
# Use Bash to create directory
mkdir -p autonomy/[goal-name]
Step 5: Write goal.md
Create the goal definition file:
# Goal: [Original goal statement]
## Goal Statement
[Full description from user]
## Success Criteria
[Open-ended - note that this has no completion state]
## Metrics to Track
[If user provided metrics:]
- [Metric 1]: [Starting value]
- [Metric 2]: [Starting value]
[If no metrics:]
- No specific metrics defined
- Progress will be qualitative
## Current Status
Active - Ready for iteration 1
## Started
[Current date: YYYY-MM-DD]
## Notes
[Any additional context from user]
Write this file to: autonomy/[goal-name]/goal.md
Step 6: Announce Ready
Inform user that goal is created:
**Goal created: [goal-name]**
Directory: `autonomy/[goal-name]/`
Goal definition: `autonomy/[goal-name]/goal.md`
---
**Next step:** Run `/start-iteration` to begin the first iteration.
This will:
- Create iteration-0001-[today's date].md
- Set up workspace for working toward the goal
- Track progress in iteration journals
Important Notes
Single Goal Per Project
Currently, autonomy supports one goal per project directory:
- If goal.md exists, creation fails
- User must archive/remove existing goal to create new one
- Future enhancement could support multiple goals
Goal Naming
Keep directory names:
- Descriptive but concise
- Stable (won't change over time)
- Filesystem-safe (kebab-case, no special chars)
Open-Ended Requirement
Verify goal is truly open-ended:
Good examples:
- "Maximize X" - always can improve
- "Reduce Y" - continuous optimization
- "Improve Z" - never fully complete
Bad examples:
- "Build authentication system" - has done state (use ed3d-superpowers)
- "Fix bug #123" - has done state
- "Write documentation" - has done state
If user suggests closed goal, guide them:
"This goal seems to have a clear completion state. For goals with a definition of 'done',
consider using the ed3d-superpowers development workflow instead.
Autonomy is designed for never-ending optimization and improvement goals.
Would you like to reframe this as an open-ended goal, or would a different workflow be better?"
Metrics Are Optional
Not all open-ended goals have quantifiable metrics:
- "Improve code quality" - may be qualitative
- "Increase team knowledge" - hard to measure
- "Enhance user experience" - subjective
Accept "none" or "qualitative" as valid answers.
Common Mistakes
| Mistake | Reality |
|---|---|
| "I'll create goal even though one exists" | NO. One goal per project. Check first. |
| "User goal is closed-ended but I'll create anyway" | NO. Guide to appropriate workflow. |
| "I'll skip metrics prompt to save time" | NO. Always ask - user may have important metrics. |
| "Directory name can have spaces" | NO. Use kebab-case only. |
| "I'll start first iteration automatically" | NO. Let user run /start-iteration when ready. |
After Creating
Once goal is created:
- goal.md exists with definition
- Directory ready for iteration journals
- User runs
/start-iterationto begin work - Iteration 1 will create first journal entry