Ideas Lifecycle
The ideas lifecycle is intentionally lightweight compared to the project workflow.
Levels
Ideas can be stored at two levels:
- Project level (default) —
.oat/ideas/in the current project, gitignored - User level (global) —
~/.oat/ideas/in the home directory, for ideas not tied to a specific project
All idea skills accept a --global flag to operate at user level. Without the flag, skills auto-detect the level by checking for an active idea pointer or existing ideas directory at each level.
Each level has its own independent backlog, scratchpad, and active-idea config value.
Flow
- Quick capture:
oat-idea-scratchpadto review or capture idea seeds - Start brainstorming:
oat-idea-new(scaffolds directory, then invokesoat-idea-ideate) - Resume brainstorming:
oat-idea-ideate(multiple sessions over time) - Finalize:
oat-idea-summarize(generates summary, updates backlog)
Directory structure
# Project level
.oat/ideas/
├── backlog.md # Aggregated list of all ideas
├── scratchpad.md # Quick-capture pad for idea seeds
└── {idea-name}/
├── discovery.md # Brainstorming document
└── summary.md # Generated when finalized
# User level (global) — same structure
~/.oat/ideas/
├── backlog.md
├── scratchpad.md
└── {idea-name}/
├── discovery.md
└── summary.mdState model
Ideas track two states in discovery.md frontmatter:
brainstorming— actively being exploredsummarized— finalized with a summary document
No state.md per idea. No HiLL gates. No knowledge base dependency.
Active idea
Each level stores the active idea in its config file:
- Project level:
activeIdeain.oat/config.local.json(gitignored) - User level:
activeIdeain~/.oat/config.json
Read/write via CLI: oat config get activeIdea / oat config set activeIdea <path>.
Ideas and projects use separate config keys and do not interfere with each other.
Scratchpad
The scratchpad is a checklist for capturing idea seeds quickly. Each entry supports nested bullets for quick notes:
- [ ] **{idea name}** - {brief summary} _(YYYY-MM-DD)_
- {quick note}
- {another note}Use oat-idea-scratchpad to review entries or quick-capture new ones. When oat-idea-ideate runs without an active idea, it also shows scratchpad entries alongside existing ideas. Selecting a scratchpad entry scaffolds the idea inline.
Backlog
The backlog (backlog.md) aggregates all ideas in three sections:
- Active Brainstorming — ideas currently being explored
- Captured Ideas — summarized and ready for future consideration
- Archived — completed, abandoned, or promoted to projects
Promotion to project
To promote a summarized idea to a Spec-Driven OAT project:
- Run the
oat-project-newskill with the idea name to scaffold the project - Run the
oat-project-discoverskill and use the idea'ssummary.mdas the initial request - Update the ideas backlog entry to Archived with reason: promoted to project
Initialization
The ideas directory is created automatically by oat-idea-new or oat-idea-scratchpad on first use. Future: oat init ideas will scaffold the directory and copy idea skills into the project.
Reference artifacts
{IDEAS_ROOT}/backlog.md{IDEAS_ROOT}/scratchpad.md{IDEAS_ROOT}/{idea-name}/discovery.md{IDEAS_ROOT}/{idea-name}/summary.md.oat/templates/ideas/