Skip to main content

maestro-fork

Create or sync session worktree for parallel dev

소스 정보

저장소
catlog22/maestro-flow
최근 소스 활동
2026년 10월 15일 14:35
감지된 SKILL.md 언어
영어
스타
566
포크
68

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
maestro-fork
disable-model-invocation
true
description
Create or sync session worktree for parallel dev
argument-hint
--session <session_id> [--base <ref>] [--sync]
allowed-tools
["Bash","Edit","Glob","Grep","Read","Write","followup_task","interrupt_agent","list_agents","request_user_input","send_message","spawn_agent","spawn_agents_on_csv","wait_agent"]
session-mode
run
contract
{"discovery":"self-described","consumes":[],"produces":[]}
version
0.5.92
<required_reading> @~/.maestro/workflows/run-mode.md @~/.maestro/workflows/codex-run-mode.md </required_reading> <purpose> Create or sync a session-level git worktree for parallel development. Supports `--sync` mode to pull latest main changes into an active worktree. </purpose> <deferred_reading> - [worktrees.json](~/.maestro/templates/worktrees.json) — read when updating registry - [worktree-scope.json](~/.maestro/templates/worktree-scope.json) — read when writing scope marker </deferred_reading> <context> $ARGUMENTS -- session ID (or slug) and optional flags. Terminology: this command uses 'session' throughout. The underlying workflow file (fork.md) may use 'milestone' as a legacy alias for 'session'. Treat them as equivalent: `--session` maps to workflow's `-m`, `state.json.sessions[]` maps to `state.json.milestones[]`. `--base <ref>`: git ref (branch, tag, or commit hash) to fork from. Default: HEAD. Modes (`Fork` / `Sync`), flags (`--session`, `--base`, `--sync`), session resolution, worktree layout, and artifact scoping are defined in workflow `fork.md`. </context> <execution> Follow '~/.maestro/workflows/fork.md' completely. Fork and sync algorithm steps are defined in workflow `fork.md`. ### Gates (MANDATORY, BLOCKING) **Fork mode:** **GATE 1: Validation → Worktree Creation** - REQUIRED: Session resolved from `state.json.sessions[]` by session_id or intent slug. - REQUIRED: No existing active worktree for this session (E008). - REQUIRED: Not running inside a worktree (E003). - BLOCKED if: session not found (E006), already forked (E008), or running inside worktree (E003). **GATE 2: Worktree Creation → Artifact Copy** - REQUIRED: Git worktree created with branch (`session/{slug}`). - REQUIRED: Shared `.workflow/` files copied (project.md, config.json, specs/). - BLOCKED if missing: worktree creation failed or shared files not copied — do not proceed to artifact scoping. **GATE 3: Artifact Copy → Completion** - REQUIRED: request_user_input confirmation before registry writes — show session scope, worktree path, and state entries to be written. User must confirm or abort. - REQUIRED: `worktree-scope.json` written with session scope (after confirmation). - REQUIRED: Scoped `state.json` written (only this session's data) (after confirmation). - REQUIRED: `worktrees.json` registry updated in main worktree (after confirmation). - BLOCKED if missing: scope marker, scoped state, or registry update absent — worktree is unusable without these. **Sync mode:** **GATE: Sync → Completion** - REQUIRED: Git merge main into worktree branch completed. - REQUIRED: Shared artifacts re-copied. - BLOCKED if: merge has unresolved conflicts or shared artifacts failed to copy. </execution> <completion> ### Next-step routing | Condition | Suggestion | |-----------|-----------| | Fork complete | `cd {wt.path}`, then route step `analyze` through `/maestro-next` or the canonical receipt-chained `session open` -> `session chain insert --command analyze --arg "<goal>"` -> `run next` flow | | Fork + automated | `maestro delegate "run full lifecycle for session" --cd {wt.path} --mode write` | | Sync complete | Resume work in worktree | | Sync conflicts found | Resolve manually, then retry | </completion> <error_codes> | Code | Severity | Condition | Recovery | |------|----------|-----------|----------| | E001 | error | Project not initialized | Run maestro-init first | | E002 | error | No roadmap found | Route step `roadmap` through `/maestro-next` or the canonical receipt-chained self-start flow | | E003 | error | Running inside a worktree | Run from main worktree | | E004 | error | No session ID provided | Provide `--session <session_id>` | | E005 | error | No sessions defined in state.json | Route step `roadmap` through `/maestro-next` or the canonical receipt-chained self-start flow | | E006 | error | Session not found in state.json.sessions[] | Check available sessions | | E007 | error | No active worktree for session (--sync) | Check worktrees.json | | E008 | error | Session already has active worktree | Merge or cleanup first | </error_codes> <success_criteria> Fork mode: - [ ] Session resolved from state.json.sessions[] - [ ] Git worktree created with branch (`session/{slug}`) - [ ] Shared `.workflow/` files copied (project.md, config.json, specs/) - [ ] Session artifacts copied (matched by session/milestone name from workflow) - [ ] `worktree-scope.json` written with session scope - [ ] Scoped `state.json` written (only this session's data) - [ ] `worktrees.json` registry updated in main worktree - [ ] Session lifecycle recorded in worktrees.json registry (fork_sessions entry) - [ ] Summary displayed with next-step commands Sync mode: - [ ] Git merge main into worktree branch - [ ] Shared artifacts re-copied (project.md, config.json, specs/) - [ ] Conflicts reported if any </success_criteria>
GitHub에서 보기