Название: start-issue
Тип: Go CLI
Назначение: автоматизировать начало работы над GitHub issue: получить issue через gh, опционально переименовать zellij tab через zellij-tab-status, создать git worktree, при необходимости запустить init.sh и запустить выбранный coding agent.
Runtime, build и тесты реализованы на Go; distribution path публикует platform-specific single-file binaries.
Начальные значения --agent:
| Значение | Поведение |
|---|---|
claude |
Запускает Claude Code. Это значение по умолчанию для обратной совместимости. |
codex |
Запускает Codex CLI в созданном worktree. |
kimi |
Запускает Kimi CLI в созданном worktree. |
pi |
Запускает Pi CLI из созданного worktree. |
none |
Готовит worktree и печатает ручные следующие шаги без запуска агента. |
Публичный CLI contract реализует cmd/start-issue. Внутренняя реализация разделена на focused Go helpers в одном command package.
| Граница | Ответственность |
|---|---|
| CLI/config/prompt | Parse input, config resolution и prompt rendering |
| Repository/worktree | Parse issue input, repo/base detection, GitHub metadata и worktree lifecycle |
| Agent adapters | Validation, branch-name generation, prompt improvement и launch commands |
| Release/update | Asset selection, checksum/version verification и install orchestration |
| Output/onboarding | Help, status rendering, dry-run output, init и setup workflows |
Agent-specific behavior должен быть централизован за единым adapter boundary:
- validate agent support
- build launch command
- generate branch name in
--ai - improve prompt template in
--improve-prompt
Будущие изменения должны сохранять эти границы в Go, не создавая второй runtime или дублирующие implementation paths.
| Параметр | Формат | Примеры |
|---|---|---|
| Issue | URL или номер | https://github.com/owner/repo/issues/123 или 123 |
| Config init | Литерал init |
start-issue init |
| Config setup | Литерал setup |
start-issue setup |
| Update | Литерал update |
start-issue update |
Если Issue не передан, команда печатает справку и текущую конфигурацию: выбранные agent/model, источники config, prompt source и prompt location. Этот путь не обращается к GitHub и завершается с ненулевым кодом.
| Флаг | Описание | По умолчанию |
|---|---|---|
--repo / -r |
Репозиторий owner/repo |
Определяется из текущего origin remote |
--base / -b |
Базовая ветка | Из origin/HEAD, иначе текущая ветка |
--worktree-dir / -w |
Директория для worktree | START_ISSUE_WORKTREE_DIR, затем ~/worktrees |
--flat |
Использовать плоский путь worktree, заменяя / на - |
false |
--agent |
Агент: claude, codex, kimi, pi, none |
См. приоритет выбора агента |
--model |
Явная model для выбранного агента | См. приоритет выбора model |
--no-agent |
Alias для --agent none |
false |
--no-claude |
Совместимый alias для --no-agent |
false |
--prompt |
Inline prompt template | См. приоритет prompt |
--prompt-file |
Файл prompt template | См. приоритет prompt |
--improve-prompt |
Сгенерировать reviewable proposal улучшенного prompt template и выйти до создания worktree | false |
--batch |
Codex-only batch mode для issue workflow с resume на STATUS: HUMAN_GATE |
false |
--human-gate |
Совместимый alias для --batch |
false |
--batch-permissions <restricted|full-delivery> |
Capability contract для batch mode; требует --batch или его legacy alias; CLI имеет приоритет над START_ISSUE_BATCH_PERMISSIONS |
restricted |
--batch-help |
Показать отдельную справку по batch mode и HUMAN_GATE handoff |
false |
--human-gate-help |
Совместимый alias для --batch-help |
false |
--prompt-output-file |
Путь proposal-файла для --improve-prompt |
Для .md: рядом с source как *.improved.md; для остальных файлов: <source>.improved; иначе .start-issue/prompt.improved.md |
--no-init |
Пропустить запуск init.sh |
false |
--command / -c |
Совместимый Claude command для дефолтного Claude prompt | /task-router:route-task |
--ai |
Генерировать имя ветки выбранным агентом | false, используется быстрая Go-эвристика |
--project |
Для init: записать конфигурацию проекта в .start-issue |
интерактивный выбор |
--user |
Для init: записать пользовательскую конфигурацию в ~/.config/start-issue |
интерактивный выбор |
--force |
Для init: перезаписать существующие agent, prompt.md и при необходимости сбросить model к unset |
false |
--dry-run |
Показать действия, не выполняя worktree/init/agent launch | false |
--setup |
Включить user-level onboarding для ~/.config/start-issue |
false |
--update |
Включить режим self-update для запущенного executable | false |
- CLI:
--agent,--no-agent,--no-claude - Project config:
.start-issue/agentв git top-level directory - User config:
~/.config/start-issue/agent - Environment:
START_ISSUE_AGENT - Built-in default:
claude
Project root определяется через:
git rev-parse --show-toplevelЕсли поддержка запуска вне git repo будет добавлена позже, fallback root может быть текущей директорией.
- CLI:
--model - Project config:
.start-issue/modelв git top-level directory - User config:
~/.config/start-issue/model - Environment:
START_ISSUE_MODEL - Built-in default: unset, решение принимает CLI выбранного агента
- CLI:
--prompt-file path/to/prompt.mdили--prompt "..." - Environment:
START_ISSUE_PROMPT_FILEилиSTART_ISSUE_PROMPT - Project config:
.start-issue/prompt.md - User config:
~/.config/start-issue/prompt.md - Built-in default
Если одновременно заданы --prompt-file и --prompt, скрипт завершает работу с ошибкой. То же правило действует для START_ISSUE_PROMPT_FILE и START_ISSUE_PROMPT, когда prompt не задан через CLI.
--improve-prompt включает режим улучшения prompt template, который используется для старта разработки.
Алгоритм режима:
- Выбрать active prompt template по обычному приоритету.
- Получить GitHub issue, чтобы использовать его как контекст улучшения.
- Попросить выбранного agent вернуть полный улучшенный prompt template.
- Записать результат в reviewable proposal-файл.
- Завершить выполнение до переименования Zellij tab, генерации branch, создания worktree, запуска
init.shи запуска agent session.
Режим не перезаписывает active prompt template. Если active prompt взят из файла .md, proposal по умолчанию пишется рядом с ним как *.improved.md; для любого другого имени файла к исходному пути добавляется .improved. Если active prompt built-in или inline, proposal по умолчанию пишется в .start-issue/prompt.improved.md в git top-level directory. --prompt-output-file задает путь явно.
Если proposal-файл уже существует, скрипт завершается с ошибкой, чтобы не перезаписать reviewable артефакт. --agent none в этом режиме невалиден.
start-issue init создает файлы конфигурации:
- project scope:
{git-root}/.start-issue/agent, optional{git-root}/.start-issue/modelи{git-root}/.start-issue/prompt.md - user scope:
~/.config/start-issue/agent, optional~/.config/start-issue/modelи~/.config/start-issue/prompt.md
Если не передан --project или --user, команда интерактивно спрашивает scope. Project scope требует запуск внутри git repository; user scope может выполняться вне git repository. Режим init не требует issue или gh.
По умолчанию записывается agent claude и стандартный Claude prompt. --agent меняет записываемый agent; --model записывает sibling model config; --prompt или --prompt-file меняют записываемый prompt. Если --model не передан, built-in behavior остается unset и новый model файл не создается. Если выбран не claude и prompt явно не задан, записывается portable prompt. Если существующий agent сохраняется без --force, default prompt выбирается по сохраненному agent, а не по built-in default или CLI override.
Существующие файлы не перезаписываются. --force перезаписывает agent и prompt.md; существующий model файл либо заменяется новым значением, либо удаляется для возврата к built-in unset.
start-issue setup и start-issue --setup запускают один и тот же user-level onboarding workflow.
Контракт режима:
- Режим работает только с
~/.config/start-issueи не пишет project config в.start-issue. - Режим не требует issue, git repository или
gh. - Если директория
~/.config/start-issueотсутствует, она создается в начале setup. - Команда спрашивает default agent:
claude,codex,kimi,piилиskip. skipозначает, что файл~/.config/start-issue/agentдолжен отсутствовать.- Default prompt выводится пользователю целиком и выбирается по built-in prompt contract для эффективного onboarding agent state.
prompt.mdсохраняется только после явного подтверждения пользователя.- Если пользователь отказывается сохранять prompt,
~/.config/start-issue/prompt.mdотсутствует.
При обычном non-setup запуске, если ~/.config/start-issue еще не существует:
- Команда печатает компактное first-run сообщение:
Configuration is not initialized yet.Usage: start-issue <issue-url-or-number> [options]
- Команда спрашивает
Run setup now? [Y/n]. - Если пользователь соглашается, запускается тот же setup workflow, что и в explicit
setup. - Если пользователь отказывается, команда создает пустую директорию
~/.config/start-issue, но не создаетagentилиprompt.md. - После accept или decline команда продолжает исходный non-setup workflow вместо раннего выхода.
start-issue update и start-issue --update запускают один и тот же update workflow.
Контракт режима:
- Команда не требует git repository и не должна вызывать repo detection, issue parsing, base branch detection, worktree planning или запуск агента.
- Latest release определяется через GitHub Releases для
dapi/start-issue. - Текущая установленная версия берется из executable, который пользователь реально запустил.
- Перед сравнением версии нормализуются удалением одного опционального префикса
v. - Если текущая версия равна latest release или новее него, команда завершается с кодом
0и не переустанавливает бинарник. - Если latest release новее, команда скачивает binary для текущей платформы и
checksums.txt, проверяет checksum и staged--version, затем устанавливает обновление в resolved target running executable. - Ошибки release lookup, download, checksum verification и install являются фатальными и должны давать понятное сообщение.
Зависимости режима:
ghCLI с авторизованной GitHub session
--batch вводит отдельный Codex-only launch path для issue workflow.
Ранее выпущенный --human-gate является совместимым alias и включает тот же
внутренний mode без отдельной ветки поведения.
Контракт режима:
- Режим валиден только для
agent=codex; для остальных agent он завершается явной ошибкой. - До agent launch workflow остается обычным: parse input, resolve config, fetch issue, plan branch, create/reuse worktree, run optional
init.sh, render prompt. - Permission mode разрешается в порядке CLI
--batch-permissions,START_ISSUE_BATCH_PERMISSIONS, built-inrestricted. Другие значения отклоняются до issue fetch и worktree mutation. - В restricted mode вместо интерактивного Codex launch выполняется:
codex [--model "$MODEL"] \
exec \
--cd "$WORKTREE_PATH" \
--sandbox workspace-write \
--json \
--output-last-message "$STATE_DIR/last-message.txt" \
-- В explicit full-delivery mode выполняется:
codex [--model "$MODEL"] \
--dangerously-bypass-approvals-and-sandbox \
exec \
--cd "$WORKTREE_PATH" \
--json \
--output-last-message "$STATE_DIR/last-message.txt" \
-- Full delivery требует authenticated
gh, корректный remote и repository write permission. Это unsandboxed execution, но оно не авторизует destructive, production/security или product decisions: они остаютсяHUMAN_GATE. - Rendered prompt передается в
codex execчерез stdin. - Из JSONL event stream извлекается
thread_idиз событияthread.started. - Saved
last-message.txtявляется единственным источником final status. - Поддерживаются только два terminal status:
STATUS: DONESTATUS: HUMAN_GATE
- На
STATUS: DONEкоманда завершается с кодом0, не открывая Codex TUI. - На
STATUS: HUMAN_GATEвыполняется:
codex resume --include-non-interactive "$thread_id"codex resume --lastне используется как primary mechanism.codex exec --ephemeralне используется, потому что session должна быть resumable.
Dedicated help доступен через:
start-issue --batch-helpstart-issue --human-gate-help сохраняется как совместимый alias.
Практические инструкции и пример полного запуска:
Там документируются:
- полный flow;
- prompt contract;
- examples;
- exit codes;
- state files;
- troubleshooting.
State files:
<worktree>/.start-issue/runs/<timestamp>/events.jsonl
<worktree>/.start-issue/runs/<timestamp>/last-message.txt
<worktree>/.start-issue/runs/<timestamp>/thread-id
Exit codes:
0-STATUS: DONE1- Codex failed,thread_idmissing, final status missing/unknown, или parse failed2-STATUS: HUMAN_GATE, но interactive resume не открылся
Claude без явного override использует совместимый plugin-native prompt:
/task-router:route-task {ISSUE_URL}
Остальные агенты без явного override используют portable prompt:
Implement GitHub issue {ISSUE_URL} in this worktree.
Context:
- Repo: {REPO}
- Issue: #{ISSUE_NUMBER}
- Title: {ISSUE_TITLE}
- Branch: {BRANCH_NAME}
- Worktree: {WORKTREE_PATH}
Start by reading the issue with gh if needed. Follow repository instructions. Keep changes scoped. Run relevant tests or checks. Summarize changed files and verification before finishing.
If you open a PR for this work, target the base branch {BASE_BRANCH}.
Поддерживаемые переменные:
| Переменная | Значение |
|---|---|
{ISSUE_URL} |
URL issue |
{ISSUE_NUMBER} |
Номер issue |
{ISSUE_TITLE} |
Заголовок issue |
{ISSUE_BODY} |
Body issue как plain text |
{ISSUE_LABELS} |
Labels через запятую |
{REPO} |
owner/repo |
{BRANCH_NAME} |
Имя созданной ветки |
{WORKTREE_PATH} |
Путь worktree |
{BASE_BRANCH} |
Базовая ветка |
Templating правила:
evalне используется.- Заменяются только известные placeholders.
- Неизвестные placeholders остаются без изменений.
- Multiline значения, включая
{ISSUE_BODY}, вставляются как plain text. --dry-runпечатает prompt source и launch command. Если rendered prompt очень большой, команда показывает placeholder, а полный prompt можно вывести черезSTART_ISSUE_DUMP_PROMPT=1.
Оркестрация выражена явным pipeline:
- Parse input.
- Resolve config.
- Fetch issue.
- Plan branch and worktree.
- Execute the plan.
- Launch the selected agent.
Для self-update действует отдельный top-level workflow:
- Parse input.
- Resolve the running executable path and current version.
- Resolve the latest GitHub Release metadata.
- Normalize and compare installed vs latest release versions.
- If latest is newer, download asset and checksum, verify, install, and print the resulting version.
- Otherwise print a no-op success status.
Если первый positional argument равен init:
- Прочитать
--project,--user,--force,--agent,--prompt,--prompt-file,--command. - Если scope не задан, спросить пользователя: project config или user config.
- Для project config проверить git repository и определить git root.
- Выбрать фактический agent: существующий
agent, если он сохраняется без--force; иначе--agent; иначеclaude. - Выбрать prompt:
--prompt-file,--prompt, иначе built-in prompt для выбранного agent. - Создать target directory.
- Записать
agentиprompt.md; существующие файлы оставить без изменений, если не передан--force. В--dry-runтолько напечатать planned writes. - Завершить работу без получения issue, создания worktree и запуска agent.
Если первый positional argument равен setup или включен --setup:
- Не требовать git repository,
ghили issue input. - Создать
~/.config/start-issue, если директория отсутствует. - Спросить default agent:
claude,codex,kimi,piилиskip. - Если выбран
skip, не создавать~/.config/start-issue/agent. - Выбрать built-in default prompt для эффективного onboarding agent state и вывести его пользователю.
- Спросить, нужно ли сохранить prompt в
~/.config/start-issue/prompt.md. - Если ответ положительный, записать
prompt.md; иначе оставитьprompt.mdотсутствующим. - Завершить работу без issue fetch, worktree lifecycle и agent launch.
- Распарсить CLI arguments.
- Проверить зависимости:
git,gh, авторизациюgh. - Проверить, что текущая директория внутри git repo.
- Определить project root через
git rev-parse --show-toplevel. - Распарсить issue URL или issue number.
- Определить repo из
originremote, если--repoне передан. - Определить base branch.
- Выбрать agent по приоритету конфигурации.
- Проверить наличие CLI выбранного agent, если agent не
noneи режим не--dry-run. - Выбрать prompt template.
- Если включен
--improve-prompt, сгенерировать proposal улучшенного prompt template и завершить workflow до worktree/agent launch. - Если это ordinary non-setup launch и
~/.config/start-issueотсутствует, выполнить first-run onboarding gate перед оставшимся workflow.
Если включен --batch:
- После
render_prompt_templateпроверить, что resolved agent равенcodex. - Создать
STATE_DIR=<worktree>/.start-issue/runs/<timestamp>. - Запустить
codex execв batch mode с--jsonи--output-last-message. - Сохранить event stream в
events.jsonl. - Извлечь
thread_idи записать его вthread-id. - Прочитать
last-message.txtи определить final status. - На
DONEзавершиться с кодом0. - На
HUMAN_GATEзапуститьcodex resume --include-non-interactive "$thread_id". - На missing/unknown status или missing
thread_idзавершиться ошибкой и указать путь к diagnostic artifact.
Если включен update mode:
- Не требовать
gitи не проверять текущую директорию как git repository. - Проверить зависимость update workflow:
gh. - Получить latest release metadata через:
gh api "repos/dapi/start-issue/releases/latest"- Извлечь:
tag_namebrowser_download_urlдля binary текущей платформыbrowser_download_urlдляchecksums.txt
- Нормализовать installed version и
tag_name, удалив один опциональный префиксv. - Если versions равны, завершиться с понятным сообщением
already up to date. - Если installed version новее latest published release, завершиться с кодом
0и сообщением, что update не нужен. - Если latest published release новее, скачать оба asset, проверить checksum и staged
--version, затем установить обновление в resolved target текущего executable.
- Получить данные issue через:
gh api "repos/{REPO}/issues/{ISSUE_NUMBER}"- Извлечь:
- title
- body
- labels
- issue URL
После успешного получения issue скрипт проверяет наличие zellij-tab-status в PATH.
Если zellij-tab-status установлен и режим не --dry-run, выполняется:
zellij-tab-status --set-name "#{ISSUE_NUMBER}"Если zellij-tab-status отсутствует, это не ошибка. Если команда переименования завершилась с ошибкой, скрипт печатает warning и продолжает workflow.
В режиме --dry-run скрипт печатает, был бы выполнен rename или шаг был бы пропущен из-за отсутствия zellij-tab-status.
По умолчанию используется быстрая Go-эвристика.
Правила типа ветки:
| Labels | Тип ветки |
|---|---|
hotfix, critical, urgent |
hotfix/ |
bug, fix, bugfix, error |
fix/ |
docs, documentation |
docs/ |
refactor, tech-debt, cleanup, technical |
refactor/ |
test, testing, tests |
test/ |
chore, ci, build, infra |
chore/ |
| другое | feature/ |
Формат:
{type}/issue-{number}-{kebab-case-title}
--ai пытается сгенерировать имя ветки через выбранный agent в non-interactive mode и fallback-ится на Go-эвристику при ошибке или невалидном формате. Если задана explicit model, adapter обязан передать ее в non-interactive command вместо тихого игнорирования.
- Определить путь:
{worktree-dir}/{branch-name}
Если включен --flat, / в имени ветки заменяется на -.
- Если branch или worktree уже существуют, показать интерактивный выбор:
- использовать существующий worktree
- создать branch с suffix
-v2,-v3и далее - удалить и пересоздать
- выйти
- Создать worktree:
git worktree add -b {BRANCH_NAME} {WORKTREE_PATH} origin/{BASE_BRANCH}Если origin/{BASE_BRANCH} недоступен, используется {BASE_BRANCH}.
Если {WORKTREE_PATH}/init.sh существует и не передан --no-init, выполнить:
cd {WORKTREE_PATH}
bash ./init.shНенулевой exit code init.sh считается предупреждением, а не критической ошибкой.
Перед запуском выбирается prompt template, выполняется template substitution и формируется launch command.
Launch adapters:
claude:
cd "$WORKTREE_PATH"
exec claude [--model "$MODEL"] --dangerously-skip-permissions "$PROMPT"
codex:
exec codex [--model "$MODEL"] --cd "$WORKTREE_PATH" --dangerously-bypass-approvals-and-sandbox "$PROMPT"
kimi:
cd "$WORKTREE_PATH" && exec kimi [--model "$MODEL"] -p "$PROMPT"
pi:
cd "$WORKTREE_PATH"
exec pi [--model "$MODEL"] "$PROMPT"
none:
print_manual_next_stepsФлаги проверены по установленным CLI help на 2026-04-21.
--dry-run не создает worktree, не запускает init.sh и не запускает agent. Он печатает:
- выбранный agent и источник
- выбранную model и источник
- worktree directory и источник
- выбранный prompt source
- длину rendered prompt
- planned/skip информацию для optional zellij tab rename
- команду запуска agent, которая была бы выполнена
Критические ошибки завершают скрипт с exit code 1:
| Ситуация | Сообщение |
|---|---|
| Не в git repo | Not in a git repository |
gh отсутствует |
gh CLI not found. Install: https://cli.github.com |
gh не авторизован |
gh not authenticated. Run: gh auth login |
| Issue не найден | Issue #{number} not found in {owner}/{repo} |
| Agent неизвестен | Unknown agent: {agent} |
| Model config пустая | Model config is empty. Remove the empty model config or set a value. |
Agent CLI отсутствует вне --dry-run |
{agent} CLI not found. Install it or use --agent none. |
| Prompt file отсутствует | Prompt file not found: {path} |
--improve-prompt используется с --agent none |
--improve-prompt requires an agent. Use --agent claude, codex, kimi, or pi. |
| Proposal-файл уже существует | Prompt improvement output already exists: {path} |
| Agent не смог сгенерировать proposal | Could not generate improved prompt with {agent} |
| Одновременно заданы inline и file prompt | Use either ... not both. |
| Worktree создать не удалось | Failed to create worktree |
| Issue не передан | Печатает help и current configuration, затем выходит с ненулевым кодом |
Предупреждения не прерывают выполнение:
| Ситуация | Поведение |
|---|---|
init.sh отсутствует |
Пропустить initialization |
init.sh вернул ненулевой код |
Напечатать warning и продолжить |
| AI branch naming не сработал | Использовать fast fallback |
zellij-tab-status отсутствует |
Пропустить rename |
zellij-tab-status --set-name вернул ненулевой код |
Напечатать warning и продолжить |
start-issue 123
start-issue https://github.com/owner/repo/issues/123
start-issue 123 --repo owner/repo
start-issue 123 --base develop
start-issue 123 --agent codex
start-issue 123 --agent codex --model gpt-5.2
start-issue 123 --batch
start-issue 123 --agent claude --model sonnet
start-issue 123 --agent kimi --prompt-file .start-issue/prompt.md
start-issue 123 --agent codex --improve-prompt
start-issue 123 --agent codex --improve-prompt --prompt-output-file .start-issue/prompt.next.md
start-issue 123 --agent pi --prompt "Implement {ISSUE_URL} in {WORKTREE_PATH}"
start-issue 123 --no-agent
start-issue 123 --no-claude
start-issue setup
start-issue --setup
start-issue init
start-issue init --project --agent codex --model gpt-5.2
start-issue init --project --agent codex
start-issue init --user --force
START_ISSUE_AGENT=codex start-issue 123
START_ISSUE_MODEL=sonnet start-issue 123
START_ISSUE_WORKTREE_DIR=~/projects/worktrees start-issue 123
start-issue --batch-helpОбязательные:
gitghCLI с авторизованной GitHub session
Для start-issue setup и start-issue init --user не требуется внешний CLI. Для start-issue init --project нужен git.
Опциональные:
claude,codex,kimi,pi- нужен только выбранный agent, если не используется--dry-runinit.shв корне worktreezellij-tab-statusвPATHдля поддержки переименования вкладки Zellij
-
start-issue 123по умолчанию выбираетclaude. -
start-issue 123 --agent codexсоздает worktree и запускает Codex в этом worktree. -
start-issue 123 --batchзапускает Codex черезcodex exec, а не через обычный интерактивный launch. -
start-issue 123 --human-gateвключает тот же batch path как совместимый alias. -
start-issue 123 --agent kimiзапускает Kimi в этом worktree. -
start-issue 123 --agent piзапускает Pi в этом worktree. -
start-issue 123 --no-agentтолько готовит worktree и печатает следующие шаги. - Agent выбирается через CLI,
.start-issue/agent,~/.config/start-issue/agent,START_ISSUE_AGENT. - Model выбирается через CLI,
.start-issue/model,~/.config/start-issue/model,START_ISSUE_MODEL, затем built-in unset. - Prompt выбирается через CLI,
.start-issue/prompt.md,~/.config/start-issue/prompt.md, env. - Запуск без Issue печатает выбранные agent/model и prompt details с расположением config файлов.
-
start-issue setupиstart-issue --setupзапускают один и тот же user-level onboarding flow. -
start-issue setupработает вне git repository. - Если
~/.config/start-issueотсутствует, обычный запуск предлагает пройти setup. - При отказе от first-run setup создается пустая
~/.config/start-issue, ноagentиprompt.mdне создаются. - После first-run accept/decline исходный ordinary workflow продолжается.
-
start-issue initсоздает project или user config с agent и prompt по умолчанию и пишетmodel, если она явно задана. -
start-issue init --forceперезаписывает существующие config-файлы. -
STATUS: DONEзавершает workflow без открытия Codex TUI. -
STATUS: HUMAN_GATEрезюмирует ту же Codex session по explicitthread_id. - Missing final status или missing
thread_idзавершаются явной ошибкой с указанием diagnostic artifact. -
start-issue --batch-helpдокументирует flow, prompt contract, exit codes и state files. -
start-issue --human-gate-helpсохраняет совместимость как alias для--batch-help. -
--improve-promptсоздает reviewable proposal улучшенного prompt template и не перезаписывает active prompt. - Claude-specific aliases сохранены, help text описывает agent-neutral поведение.
-
--dry-runпечатает selected agent, selected model, prompt source и launch command. -
START_ISSUE_WORKTREE_DIRявляется env для worktree directory. - Если
zellij-tab-statusустановлен,start-issueопционально переименовывает вкладку Zellij.