Quests โ Guided Process Framework
A standardized framework for AI agents to track and guide humans through complex long-term tasks. The quest is the single source of truth โ context, decisions, contacts, risks, and progress live inside the quest, not scattered across memory files.
Philosophy
- One step at a time:
quest nextshows only the current task โ no overwhelm - Quest as memory:
quest contextgives the agent everything needed in minimal tokens - Living document: Steps can be added, removed, reordered, and modified at any time
- Human-friendly:
quest briefgenerates summaries suitable for messaging
CLI: skills/quests/scripts/quest.py (symlink as quest)
Data stored at $WORKSPACE/data/quests.json. Quest IDs are auto-generated from names (slugified).
Conventions
- Auto-resolution: When only one quest is active, the quest argument is optional
- Fuzzy matching: Quests match by exact ID, ID prefix, or name substring
- Optional args:
quest donewith no step completes the current active step
Quick Start
quest new "Fix car" --priority high --deadline 2026-06-01
quest add car "Get documents" --desc "Gather all paperwork"
quest substep car 1 "Find insurance certificate"
quest learn car "Tax exemption requires 12 months abroad"
quest decide car "Use contract dates as proof" --reason "No PERE registration"
quest contact car "Agency" --phone "555-1234" --role "Tax office"
quest next car # Present current step to human
quest done car 1.1 # Mark substep done
quest context car # Reload full context (~1K tokens)
Resuming a Quest (New Session)
quest list # Find active quests
quest context myquest # Load full state โ replaces reading memory files
quest next myquest # Present current step to human
Commands Reference
Quest lifecycle:
new <name> [--desc] [--priority low|medium|high] [--deadline DATE] [--tags a,b]list [--all]โ list active (or all including archived)delete <quest> [--archive]โ archive is reversible, delete is permanent
Steps (fully flexible):
add <quest> <title> [--desc]โ append a stepinsert <quest> <position> <title> [--desc]โ insert at specific positionremove <quest> <step>โ remove a step or substep (e.g.3or2.1)substep <quest> <step> <title>โ add substep to a stepdone [quest] [step]โ complete step/substep (auto-advances to next)skip [quest] [step]โ skip a stepblock <quest> <step> <reason>โ mark step as blockedunblock <quest> <step>โ unblockedit <quest> [step] [--title] [--desc]โ edit step or quest-level fieldsreorder <quest> <step> <position>โ move step to new position
Context & Memory (the core feature):
learn <quest> <fact>โ record a key fact (quest-level, affects all steps)decide <quest> <decision> [--reason]โ record a decision with rationalerisk <quest> <concern>โ flag a risk or concernnote <quest> <step> <text>โ add a note to a specific step (step-level)summarize <quest> <text>โ update the high-level context summarycontext [quest] [--json]โ compact context dump (~500-1500 chars)brief [quest]โ human-friendly summary for async messaginglog [quest] [-n LIMIT]โ timestamped activity log
learnvsnote: Uselearnfor facts that affect the whole quest ("Tax exemption requires 12 months"). Usenotefor step-specific info ("Carlos said he has the CoC already").
Metadata:
meta <quest> [--priority] [--deadline] [--tags a,b] [--remove]contact <quest> [name] [--phone] [--email] [--role] [--url]โ add or list contactslink <quest> [url] [--label]โ add or list reference links
Templates:
template save <quest> [template_name]โ save quest structure as reusable templatetemplate listโ list available templatestemplate use <template> [quest_name]โ create new quest from template
Display:
next [quest]โ current step only (for presenting to human)show [quest] [-v]โ full quest with all steps and contextstatus [quest]โ quick progress overview
Export:
export <quest> [--file path]โ markdown exportjson [quest]โ raw JSON (all quests if no arg)
Agent Guidelines
When (Not) to Create a Quest
- Create: Multi-session processes, bureaucratic tasks, anything >3 steps spanning multiple days
- Don't create: Simple one-off tasks, quick lookups, things that fit in one conversation
Starting a New Quest
- Create with
quest newโ set priority and deadline if known - Add 5-12 steps with
quest add(use substeps for granularity) - Record initial facts with
quest learn - Add contacts, links, and risks as discovered
- Present first step with
quest next
Session Resumption
At the start of any session involving an existing quest:
quest listโ check what's activequest context <id>โ reload full state (replaces reading memory files)quest next <id>โ see where the human left off
During the Process
- Record everything: facts (
learn), decisions (decide), risks (risk) - Update summary with
quest summarizeas understanding evolves - Add/remove/reorder steps freely as the process changes
- Use
quest briefwhen messaging the human asynchronously (WhatsApp/Discord recap) - Use
quest nextin interactive conversation
Presenting to Humans
- Always use
quest nextโ never show the full step list unprompted - When human completes something โ
quest doneโ auto-advances - When blocked โ
quest blockwith clear reason - When human provides info โ
quest learnorquest note
Multiple Active Quests
Auto-resolution only works with one active quest. When multiple are active, always specify the quest ID explicitly.
Quest Completion
When all steps are done, the quest auto-completes. Consider:
quest export <quest> --fileto save a permanent recordquest template saveif the process might repeatquest delete <quest> --archiveto clean up while preserving data
Token Efficiency
quest contextoutputs ~500-1500 chars with full situational awareness- No need for separate memory files, trackers, or project docs
- The quest IS the memory โ facts, decisions, contacts, risks, all in one place
- Use
quest context --jsonfor structured programmatic access