Yeachan-Heo/oh-my-codex · error · MissionCommandError
--status is only supported for mission mark.
Error message
--status is only supported for mission mark.
What it means
Post-parse validation: a --status value was parsed but the action is not mark. --status only sets a task's blocked/needs-human-review state during mark.
Source
Thrown at src/cli/mission.ts:235
if (arg === "--status") {
const value = readValue(commandArgs, index, arg);
if (value !== "blocked" && value !== "needs-human-review") throw new MissionCommandError(`Unsupported mission mark status: ${value}`);
markStatus = value;
index += 1;
continue;
}
if (arg.startsWith("--")) throw new MissionCommandError(`Unknown mission option: ${arg}`);
if (!file) {
file = arg;
continue;
}
throw new MissionCommandError(`Unexpected mission argument: ${arg}`);
}
if (!file) throw new MissionCommandError(`Missing mission input file.\n\n${MISSION_HELP}`);
if (action !== "rerun" && action !== "mark" && taskId) throw new MissionCommandError(`--task is only supported for mission mark/rerun.`);
if (action === "rerun" && !taskId) throw new MissionCommandError(`mission rerun requires --task <id>.`);
if (action !== "mark" && markStatus) throw new MissionCommandError(`--status is only supported for mission mark.`);
if (action === "mark" && (!taskId || !markStatus)) throw new MissionCommandError(`mission mark requires --task <id> --status <blocked|needs-human-review>.`);
return { action, file, dryRun, continueOnError, json, slug, summaryPath, taskId, markStatus, codexArgs };
}
function missionCounts(tasks: MissionTask[]): MissionSummary["counts"] {
return {
total: tasks.length,
planned: tasks.filter((task) => task.status === "planned").length,
passed: tasks.filter((task) => task.status === "passed").length,
failed: tasks.filter((task) => task.status === "failed").length,
skipped: tasks.filter((task) => task.status === "skipped").length,
blocked: tasks.filter((task) => task.status === "blocked").length,
"needs-human-review": tasks.filter((task) => task.status === "needs-human-review").length,
};
}
function missionStatus(tasks: MissionTask[]): MissionSummary["status"] {
if (tasks.some((task) => task.status === "running")) return "running";View on GitHub (pinned to 3ad79a8a6f)
Solutions
- Remove --status when not using mark
- Use `mission mark <file> --task <id> --status <blocked|needs-human-review>`
Example fix
# before mission rerun mission.md --task t1 --status blocked # after mission mark mission.md --task t1 --status blocked
Defensive patterns
Strategy: validation
Validate before calling
const hasStatus = args.includes('--status') || args.some(a => a.startsWith('--status='));
if (hasStatus && action !== 'mark') failEarly(); Prevention
- Keep mark-specific flags scoped to mark commands
When it happens
Trigger: `mission run m.md --status blocked` or `mission rerun m.md --task t1 --status blocked`.
Common situations: Confusing mark's --status with a run filter or expected exit status; leaving a --status flag in a command converted from mark to rerun.
Related errors
- --dry-run is only supported for mission run/plan.
- --continue-on-error is not supported for mission status.
- --task is only supported for mission mark/rerun.
- --keep-policy must be one of: score_improvement, pass_only
- Unknown capabilities subcommand: ${parsed.subcommand}
AI-assisted analysis of Yeachan-Heo/oh-my-codex@3ad79a8a6f (2026-08-27).
Data as JSON: /api/errors/b7b1a4ddb1d9806b.
Report an issue: GitHub.