majesticlabs-dev/majestic-marketplace

run-blueprint

Execute all tasks in a blueprint using build-task workflow

Quelltext ansehen
Originales Skill-Dokument

Aus dem Quell-Repository gerendert; Überschriften, Beispiele, Code, Tabellen, Links und Bilder bleiben erhalten.

Run Blueprint

Execute all tasks in a blueprint plan sequentially, respecting dependencies.

Input

plan_path: $ARGUMENTS (required)

Task Tracking Setup

TASK_TRACKING = config_read("task_tracking.enabled", "false")

If TASK_TRACKING:
  BLUEPRINT_ID = "run-blueprint-{timestamp}"
  TASK_MAP = {}  # Maps T1, T2 etc to Claude Task IDs

Workflow

1. Load Blueprint

Read(file_path: plan_path)

Parse the ## Implementation Tasks section:

IDTaskPointsDependenciesStatus
T1Setup auth middleware2-
T2Create login endpoint2T1

Task status icons:

  • ⏳ Pending
  • 🔄 In Progress
  • ✅ Completed
  • 🔴 Failed

1.5. Create Tasks from Table (if tracking enabled)

If TASK_TRACKING:
  For each ROW in implementation_tasks:
    TASK = TaskCreate:
      subject: "{ROW.id}: {ROW.task}"
      activeForm: "Building {ROW.task}"
      metadata: {blueprint_id: BLUEPRINT_ID, task_id: ROW.id, points: ROW.points, source: plan_path}
    TASK_MAP[ROW.id] = TASK.id

  # Set up dependencies
  For each ROW in implementation_tasks where ROW.dependencies != "-":
    BLOCKED_BY = [TASK_MAP[dep] for dep in ROW.dependencies.split(",")]
    TaskUpdate(TASK_MAP[ROW.id], addBlockedBy: BLOCKED_BY)

2. Find Next Task

If TASK_TRACKING:
  TASKS = TaskList()
  BLUEPRINT_TASKS = filter(TASKS, task.metadata.blueprint_id == BLUEPRINT_ID)
  NEXT_TASK = first(BLUEPRINT_TASKS where status == "pending" AND blockedBy.length == 0)
Else:
  For each task in Implementation Tasks:
    If task.status == ⏳:
      If task.dependencies all ✅:
        NEXT_TASK = task
        Break

If no task found (all ✅ or 🔴): Go to Step 5.

3. Execute Task

Skill("build-task") "{task.id}" --no-ship

4. Update Status

If TASK_TRACKING:
  CLAUDE_TASK_ID = TASK_MAP[NEXT_TASK.id]
  TaskUpdate(CLAUDE_TASK_ID, status: "in_progress")
  # After build completes
  If build succeeded: TaskUpdate(CLAUDE_TASK_ID, status: "completed")
  If build failed: TaskUpdate(CLAUDE_TASK_ID, status: "completed", metadata: {result: "failed"})

# Always update markdown (for visibility in file)
Edit(file_path: plan_path):
  If build succeeded: task.status = ✅
  If build failed: task.status = 🔴

Go to Step 2 (next task).

5. Ship

When all tasks are ✅ or 🔴:

Skill("ship-it")

Task ID Formats

SystemFormatExample
GitHub Issues#{number}#123
Linear{PROJECT}-{number}PROJ-123
BeadsBEADS-{number}BEADS-123
File-basedTODO-{number}TODO-123

Error Handling

ScenarioAction
Task build failsMark 🔴, continue to next task
All dependencies failedSkip task, mark 🔴
Blueprint file not foundError, exit
No tasks section foundError, exit
aus demselben Repository

Weitere Skills

Alle Skills