Legacy compatibility skill for projecting implementation work into an optional execution adapter state. Use only when an execution adapter is enabled and a local execution projection needs updating.
From pmnpx claudepluginhub etusdigital/etus-plugins --plugin pmThis skill uses the workspace's default tool permissions.
knowledge/template.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides implementation of event-driven hooks in Claude Code plugins using prompt-based validation and bash commands for PreToolUse, Stop, and session events.
Reference: .claude/skills/orchestrator/dependency-graph.yaml
BLOCKS (must exist — auto-invoke if missing):
docs/ets/projects/{project-slug}/implementation/implementation-plan.md — Needed for Product mode impl-# tasks to track.docs/ets/projects/{project-slug}/features/{feature-slug}/impl-plan.md — Needed for Feature mode impl-# tasks to track.ENRICHES (improves output — warn if missing):
docs/ets/projects/{project-slug}/state/project-status.yaml — Determines whether an execution adapter is enabled.docs/ets/projects/{project-slug}/state/execution-sync.yaml — Adapter sync context when external execution projection exists.Resolution protocol:
dependency-graph.yaml → sprint-status.requires: [implementation-plan]docs/ets/projects/{project-slug}/state/project-status.yaml to detect mode and execution_adapterimplementation/implementation-plan.mdfeatures/{feature-slug}/impl-plan.mdimplementation-plan skill → wait → continueUse full version when:
Use short version when:
MANDATORY: This skill MUST write its artifact to disk before declaring complete.
mkdir -p if neededIf the Write fails: Report the error to the user. Do NOT proceed to the next skill.
This skill follows the ETUS interaction standard. Your role is a thinking partner, not an interviewer — suggest alternatives, challenge assumptions, and explore what-ifs instead of only extracting information.
One question per message — Never batch multiple questions. Ask one, wait for the answer, then ask the next. Use the AskUserQuestion tool when available for structured choices.
3-4 suggestions for choices — When the user needs to choose a direction, present 3-4 concrete options with a brief description of each. Highlight your recommendation.
Propose approaches before generating — Before generating any content section, propose 2-3 approaches with tradeoffs and a recommendation.
Present output section-by-section — Don't generate the full document at once. Present each major section, ask "Does this capture it well? Anything to adjust?" and only proceed after approval.
Track outstanding questions — If something can't be answered now, classify it:
Multiple handoff options — At completion, present 3-4 next steps as options.
Resume existing work — Before starting, check if the target artifact already exists at the expected path. If it does, ask the user: "I found an existing execution-status.yaml at [path]. Should I continue from where it left off, or start fresh?" If resuming, read the document, summarize the current state, and continue from outstanding gaps.
This skill reads and writes persistent memory to maintain context across sessions.
On start (before any interaction):
docs/ets/.memory/project-state.md — know where the project isdocs/ets/.memory/decisions.md — don't re-question closed decisionsdocs/ets/.memory/preferences.md — apply user/team preferences silentlydocs/ets/.memory/patterns.md — apply discovered patternsOn finish (after saving artifact, before CLOSING SUMMARY):
project-state.md is updated automatically by the PostToolUse hook — do NOT edit it manually.python3 .claude/hooks/memory-write.py decision "<decision>" "<rationale>" "<this-skill-name>" "<phase>" "<tag1,tag2>"python3 .claude/hooks/memory-write.py preference "<preference>" "<this-skill-name>" "<category>"python3 .claude/hooks/memory-write.py pattern "<pattern>" "<this-skill-name>" "<applies_to>"The .memory/*.md files are read-only views generated automatically from memory.db. Never edit them directly.
Generate and iteratively update state/execution-status.yaml, a living document that tracks optional execution projections for stories, tasks, and execution units. This document is outside the documentation core and exists only when an execution adapter is enabled.
Execution projection is updated only when the project chooses to maintain adapter-aware local state. It never overrides the documentation core.
docs/ets/projects/{project-slug}/state/project-status.yaml first.[sprint-number] provided, load that sprint's current statusdocs/ets/projects/{project-slug}/state/execution-status.yaml (existing state to update)docs/ets/projects/{project-slug}/implementation/implementation-plan.mddocs/ets/projects/{project-slug}/features/{feature-slug}/impl-plan.mdexecution_adapter = linear, also read docs/ets/projects/{project-slug}/state/execution-sync.yamlLoad the following sections from upstream or existing status:
Sprint Definition:
Task Population: Extracted from implementation-plan.md
Daily/Weekly Updates:
Blocker Tracking:
Velocity Calculation:
Health Assessment:
execution_adapter: localstate/execution-status.yaml may be used as a local execution projection.execution_adapter: linearstate/execution-status.yaml becomes the local ETUS projection.state/execution-sync.yaml stores mappings, conflicts, and sync metadata.schema: etus/execution-status@v1
project_slug: "invoice-saas"
execution_adapter: local
current_unit: sprint-1
updated_at: "2026-03-20T14:30:00Z"
units:
sprint-1:
state: active
start: "2026-03-17"
end: "2026-03-28"
capacity: 40
velocity: 32
source: local
stories: ["US-1", "US-2"]
tasks: ["impl-1", "impl-2"]
story_status:
US-1:
state: in_progress
sprint: sprint-1
assignee: "alice@example.com"
percent_complete: 60
task_status:
impl-1:
state: done
sprint: sprint-1
owner: "alice@example.com"
estimate: 8
actual: 9
blocker: ""
impl-2:
state: blocked
sprint: sprint-1
owner: "bob@example.com"
estimate: 13
actual: 8
blocker: "Waiting for SMTP credentials"
feature_rollups:
csv-bulk-import:
execution_adapter: local
delivery_state: impl_ready
release_state: not_released
next_recommended_step: "/validate"
story_ids: ["US-1", "US-2"]
task_ids: ["impl-1", "impl-2"]
When updating an existing sprint:
state/execution-status.yamlRefer to docs/ets/projects/{project-slug}/state/execution-status.yaml and docs/ets/projects/_templates/execution-status.yaml for:
Execution instruction: Load project-status.yaml first, detect execution_adapter, populate or update state/execution-status.yaml, and if execution_adapter = linear, also reflect mapping/sync notes from state/execution-sync.yaml.
implementation-plan.md (BLOCKS):
Before marking this document as COMPLETE:
If any check fails → mark document as DRAFT with <!-- STATUS: DRAFT --> at top.
After saving and validating, display:
✅ execution-status.yaml saved to `docs/ets/projects/{project-slug}/state/execution-status.yaml`
Status: [COMPLETE | DRAFT]
IDs generated: N/A (this document tracks impl-# task progress, not new IDs)
→ Next step: quality-checklist — Define pre-release quality criteria and acceptance gates
Run: /implement or let the orchestrator continue
Do NOT proceed to the next skill without displaying this summary first.
implementation-plan.md or Feature mode features/{feature-slug}/impl-plan.md (BLOCKS), existing state/execution-status.yaml (if updating)docs/ets/projects/{project-slug}/state/ — create if missingdocs/ets/projects/{project-slug}/state/execution-status.yaml using the Write tooldocs/ets/projects/{project-slug}/state/execution-status.yaml) + paths to upstream documents (docs/ets/projects/{project-slug}/implementation/implementation-plan.md or docs/ets/projects/{project-slug}/features/{feature-slug}/impl-plan.md)"Document saved to
docs/ets/projects/{project-slug}/state/execution-status.yaml. The spec reviewer approved it. Please review and let me know if you want any changes before we proceed." Wait for the user's response. If they request changes, make them and re-run the spec review. Only proceed to validation after user approval.
| Error | Severity | Recovery | Fallback |
|---|---|---|---|
| BLOCKS dep missing (implementation-plan.md) | Critical | Auto-invoke implementation-plan skill | Block execution |
| No impl-# tasks assigned to current sprint | Medium | Ask user to assign tasks | Create empty sprint with note |
| Output validation fails | High | Mark as DRAFT | Proceed with DRAFT status |