maestro-odyssey

SkillDev tools

Long-running iterative cycle, one entry, seven modes

Use maestro-odyssey in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add maestro-odyssey and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the maestro-odyssey skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

maestro-odysseyStart free

What this skill tells your AI

The instructions your AI receives, as published by catlog22/maestro-flow in .codex/skills/maestro-odyssey/SKILL.md and read by Ahel’s review.

<required_reading> @/.maestro/workflows/run-mode.md @/.maestro/workflows/codex-run-mode.md </required_reading>

If any required file above was not expanded into context by the host, or its content is no longer in context, Read it explicitly before executing any step.

<deferred_reading>

<mode_dispatch>

Mode selection precedence: explicit --mode <name> > intent keyword auto-detection > request_user_input (Normal) / error E000 (-y).

Auto-detection from <intent> keywords (first match wins, ordered):

Keyword matching: case-insensitive substring match against the intent text. Multi-word keywords require all words present (not necessarily adjacent). First matching row wins (ordered by specificity).

Keywords in intentDetected mode
bug, crash, error, broken, fails, regression, race, leak, "why does"debug
requirement, implement, build, add feature, I need to implement, I need to build, I need to add, deliver feature, user storyplanex
ui, visual, layout, style, component, page, responsive, a11y, accessibility, UI design, visual design, design system, design tokensui
security audit, OWASP, vulnerability, CVE, secrets scan, STRIDE, threat model, supply chain, dependency audit, dependencies, supply chain auditsecurity
defensive programming, defensive code, exception swallowing, silent failure, fallback risk, default value risk, error suppression, 防御性编程, 防御性代码, 异常吞噬, 兜底风险defensive
improve, optimize, performance, refactor quality, reliability, observabilityimprove
review, audit, code check, check the code, inspect the code, inspect changes, "look over", zero-residualreview

Ambiguous / no match → Normal: request_user_input (7-way mode pick) | -y: E000.

Mode registry:

ModePurposeDiscovery phasesAudit phaseFix→verify pairUnique states
debugSymptom → root cause → fix → confirmARCHAEOLOGY, EXPLOREDIAGNOSE (hypothesis test)FIX → CONFIRMESCALATE_DIAGNOSIS
improve6-dimension quality audit → diagnose → fixSURVEYAUDIT (6 dims) + DIAGNOSEFIX → VERIFYESCALATE_DIAGNOSIS
planexRequirement → plan → execute → verify loop(none)PLAN + EXECUTE(EXECUTE) → VERIFY → FIX loop—
reviewMulti-dimension deep review → zero-residual fixARCHAEOLOGY, EXPLOREREVIEW (4+ dims)FIX → CONFIRM—
securityRead-only tiered security audit → severity matrixRECONSCAN (OWASP + deps + secrets + CI/CD + STRIDE + git)(none — read-only)—
defensiveBusiness-anchor → backward-slice → 8-pattern scan → forward-propagate → risk scoreANCHOR, SLICESCAN (8 defensive patterns) + PROPAGATE(none — read-only)—
uiVisual survey → 6-dim audit → diverge → fixSURVEYAUDIT (6 dims) + DIVERGEFIX → VERIFY—

CONFIRM and VERIFY are synonymous — both refer to the post-fix validation phase. Mode workflow files use mode-specific naming; semantics are identical.

The back half is identical across all modes: GENERALIZE → DISCOVER → RECORD → END (see odyssey-base.md §Shared Back-Half).

On mode resolved: read the deferred workflow file for that mode + odyssey-base.md, then execute.

</mode_dispatch>

Universal flags: --mode <name> mode selector | --skip-fix audit/diagnose only, skip fix+verify | --skip-generalize skip GENERALIZE+DISCOVER | -y skip all confirmation interactions (including delegate/agent confirmations in execution phases), use default choices; decisions skipped this way are recorded as deferred; never bypasses mode ambiguity (E000), INTAKE gate blockers, escalation | -c resume the most recent unfinished Session of the SAME mode via exact Session resolution: locate it with maestro session list --json + maestro session status --session {session_id} --json (both read-only), re-attach context with maestro session resume-view and the brief-result/3.0 Resume Packet via run brief (exact invocation per run-mode.md), then continue the chain with fenced maestro run next / run check / run complete --advance. If --mode conflicts with the resumed Session's mode → E003 (mode mismatch); no history → ignore -c, create new Session | --heartbeat /loop periodic progress

Mode-scoped flags:

FlagModesDescriptionDefault
--template <name>debug, planexPredefined strategy/criteria template—
--dimensions <list>improve, review, uiAudit dimension subsetall
--fix-threshold <sev>improve, review, uiSeverity cutoff (critical|high|medium|low|all)all
--tier quick|standard|deepsecurity, defensiveAudit depth tierstandard
--sink-depth <list>defensiveExplicit sink layer focus (1|2|3|all)all
--max-iterations NplanexMax verify-fix cycles before escalation3
--method agent|cli|autoplanexTask execution methodauto
--executor <tool>planexExplicit CLI executorfirst enabled
--skip-verifyplanexSkip post-execution validation gatefalse

--skip-fix applicability: security and defensive modes ignore (read-only, no fix phase); planex skips FIX loop but retains EXECUTE+VERIFY; debug/review/improve/ui skip FIX+VERIFY/CONFIRM. --skip-fix + --skip-verify on planex = PLAN only (no execution).

Mode-scoped flags passed to inapplicable mode: emit W008 warning and ignore the flag.

Session creation: follow run-mode.md exactly. Negotiate capabilities, then use the receipt-chained self-start path: open an empty Session with --actor carrying the authorized identity, insert odyssey-<mode> plus every mode/domain argument through fenced repeatable --arg, and dispatch it with fenced run next using a third request ID. Every mutation consumes the exact revision returned by the preceding receipt. Consume the resulting birth packet's resolved task and structured executable continuation; never pass task prose via --input. A direct machine-protocol run create is allowed only with positional domain arguments, explicit --session/--run/--step, --actor identity, exact CAS revision, and --input values restricted to sealed same-Session Artifact IDs.

Session: {run_dir}/outputs/ Output: session.json | evidence.ndjson | understanding.md | explore.json (debug/review only) | anchors.json (defensive only)

Output boundary: ALL session artifacts MUST target the run outputs directory ({run_dir}/outputs/) only. .workflow/state.json and all sessions/<sid>/ protocol files are runtime-owned — a workflow never writes them. Source code modifications during fix/execute phases are in-scope but MUST be committed per action. NEVER write session artifacts outside {run_dir}/outputs/.

session.json — shared core + mode fields:

{ "mode": "debug|improve|planex|review|security|defensive|ui",
  "target": "", "dimensions": [],
  "patterns": [], "confirmation": null, "generalization_stats": null,
  "cross_phase_loops": 0 }

Each mode extends the core — see the mode's workflow file for session fields.

Commit convention: "odyssey-{mode}({slug}): {STATE} — {summary}" (mode = active mode short name; review mode uses odyssey-review).

  1. Evidence append-only — never delete or overwrite evidence.ndjson entries.
  2. Phase goal tracking — mark each goal done/failed before transition; no silent skips.
  3. Generalize is mandatory — GENERALIZE and DISCOVER execute unless skip_generalize == true. Prior-phase convergence, "no findings / all verified / zero remaining," or context pressure are NOT valid skip reasons. The phase itself determines whether patterns exist.
  4. Zero-residual (improve/review/ui) — every finding MUST have a concrete action (fix / issue / decision). "Report and shelve" and blanket "pre-existing" skips are forbidden.
  5. Read-only (security, defensive) — NEVER modify source code, configuration, or dependencies. Security and defensive audits produce reports only; fixes route to --mode improve.
  6. Acceptance criteria are sacred (planex) — no "close enough", no manual override without explicit escalation.
  7. Browser is truth (ui) — verify in real rendering, not just code review. Diverge before converge.
  8. Goal 跟宿主原生 /goal 走 — session.json 是权威进度。不要为了刷新外观去重建 Goal;用户 clear 之后外观必须保持消失。

<task_tracking>

时机与操作(plan 是 session 权威状态的 UI 镜像,不替代 session 状态):

时机操作示例
Session 创建后update_plan 初始化步骤清单update_plan({ plan: [{ step: "Step {index}: {step.skill}", status: "pending" }, ...] })
Step 派发时update_plan 标记当前 stepupdate_plan({ plan: [..., 当前 step status: "in_progress"] })
Step 完成时update_plan 标记完成update_plan({ plan: [..., 该 step status: "completed"] })
Step 失败时update_plan + explanation 说明update_plan({ explanation: "Step {index} failed: {reason}", plan: [...] })

</task_tracking>

<self_iteration> Self-iteration (logic in odyssey-base.md) applies to each mode's discovery + audit + GENERALIZE stages:

ModeSelf-iterating stages
debugS_ARCHAEOLOGY, S_EXPLORE, S_DIAGNOSE, S_GENERALIZE
improveS_SURVEY, S_AUDIT, S_DIAGNOSE, S_GENERALIZE
planexS_PLAN, S_VERIFY, S_GENERALIZE
reviewS_ARCHAEOLOGY, S_EXPLORE, S_REVIEW, S_FIX, S_GENERALIZE
securityS_RECON, S_SCAN, S_GENERALIZE
defensiveS_ANCHOR, S_SLICE, S_SCAN, S_PROPAGATE, S_GENERALIZE
uiS_SURVEY, S_AUDIT, S_DIVERGE, S_GENERALIZE
</self_iteration>

Shared Phase Gates (MANDATORY, BLOCKING)

  • INTAKE gate: mode resolved, target/requirement resolved, SESSION_DIR created, session.json initialized (with baseline_metrics for improve; acceptance_criteria for planex), phase_goals[] derived from flags, understanding.md §1 written. BLOCKED if no target (E001) / no requirement (planex E001) / target path not found (E002) / mode unresolved (E000).
  • GENERALIZE gate: ALL 3 layers (syntax/semantic/structural) attempted with evidence logged; generalization_stats written with by_layer entries for all 3 layers; generalize goal marked. Any layer not attempted = thoroughness-floor violation (BLOCKED).
  • DISCOVER gate: all hits triaged with per-item classification and reason; remaining_actionable == 0 OR loops >= max_loops with per-item reasons logged; discover goal marked. Unclassified hits = BLOCKED.

Mode-specific phase gates (Discovery, Audit, FIX, VERIFY/CONFIRM) are defined in each mode's workflow file.

<error_codes>

CodeSeverityConditionRecovery
E000errorMode unresolved (-y, ambiguous intent, no --mode)Provide --mode
E001errorNo target / no requirement (planex) / no issue (debug)Provide target or -c
E002errorTarget path not foundCheck path
E003error-c mode mismatch (resumed session is different mode)Use correct --mode or omit -c
E004errorMode workflow file not found (~/.maestro/workflows/odyssey-{mode}.md)Verify workflow installation or select another mode
W001warningNo relevant git history / no dependency manifest / no design systemProceed with defaults
W002warningSome dimension agents failed / 3 retries exhaustedPartial coverage / INCONCLUSIVE
W003warningArchaeology agent or delegate failure (debug/review)Proceed with available results, log failed agent
W004warningGeneralization 0 hits after full 3-layer scanAdvance to S_RECORD (requires all 3 layers attempted with evidence)
W005warningPending decisionsFilter evidence phase=decision
W006warningNo CLI tools (debug/review explore)Skip explore
W007warningplanex CLI review regression concernReview before next iteration
W008warningMode-scoped flag ignored (not applicable to resolved mode)Remove flag or use correct mode
</error_codes>

<success_criteria>

  • Mode resolved (explicit or auto-detected); session + output files created; prior knowledge searched
  • Discovery phase(s) for the mode completed with evidence (archaeology/explore/survey)
  • Domain audit completed with structured findings + severity matrix (or acceptance criteria + plan for planex)
  • understanding.md sections written progressively per mode
  • Fix + verify/confirm (unless --skip-fix); zero-residual for improve/review/ui; all criteria pass for planex
  • Read-only invariant maintained for security and defensive modes — zero source modifications
  • Multi-layer generalization + discovery triage (unless --skip-generalize); every unfixed finding individually justified
  • phase_goals derived, tracked, and hardened-audited; goal_mode injected via prepare goal:true; -y no blocking prompts
  • Session resumable via -c; mode-specific completion summary emitted </success_criteria>

<next_step_routing>

ConditionNext
Single-file mechanical fix discovered/maestro-companion "<fix>"
Discovery issues created/maestro-issue list --source {mode}-odyssey
Deeper debug needed (from any mode)/maestro-odyssey <finding> --mode debug
Security findings need remediation/maestro-odyssey <finding> --mode improve
Defensive findings need remediation/maestro-odyssey <finding> --mode improve
Defensive root-cause needed/maestro-odyssey <finding> --mode debug
Formal review of changes/maestro-odyssey <changed-files> --mode review
UI-related findings/maestro-odyssey <component> --mode ui
Document pattern/maestro-learn decompose <module>
Second opinion/maestro-learn consult <understanding.md>
Related question/maestro-learn investigate "<question>"
Design/perf/arch pattern to persist/maestro-spec add ui|coding|arch "..."
Pending decisionsFilter evidence phase=decision status=pending
</next_step_routing>

Signals

GitHub stars
560
Forks
68
Last commit
Sep 2026
Advanced
Item type
skill
Key
maestro-odyssey
Source
github.com/catlog22/maestro-flow