Skip to content
Back to skills

Dag Orchestrator

ASecurity

The intelligence layer of Jury-rig. Decomposes natural language tasks into proposed Hierarchical Task DAGs (HTDAGs), matches subtasks to skills, proposes wave and revision contracts, and expands nodes only when evidence supports a revised graph. Use for 'orchestrate', 'execute DAG', 'parallel agents', 'decompose task', 'coordinate skills'. NOT for single-skill tasks or simple linear workflows.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
developmenttypescriptgobashreactnodedebuggingcode-reviewapidatabasefrontend

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add curiositech/port-daddy --skill dag-orchestrator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Dag Orchestrator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Dag Orchestrator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/curiositech-dag-orchestrator-port-daddy/badge)](https://www.skillsdirectory.com/skills/curiositech-dag-orchestrator-port-daddy)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
license: BSL-1.1
name: dag-orchestrator
description: |
  The intelligence layer of Jury-rig. Decomposes natural language tasks into proposed Hierarchical Task DAGs (HTDAGs), matches subtasks to skills, proposes wave and revision contracts, and expands nodes only when evidence supports a revised graph. Use for 'orchestrate', 'execute DAG', 'parallel agents', 'decompose task', 'coordinate skills'. NOT for single-skill tasks or simple linear workflows.
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - Task
  - TodoWrite
  - Grep
  - Glob
metadata:
  recognition-cues: []
  expectancies: []
  decision-cues: []
  adaptive-workarounds: []
  execution-pattern: sequential
  needs-cdm: true
  category: Agent & Orchestration
  tags:
    - dag
    - orchestration
    - task-decomposition
    - parallel-execution
    - htdag
    - adaptive-planning
  io-contract:
    kind: structured
    inputSchema: ./schemas/input.json
    outputSchema: ./schemas/output.json
---

# DAG Orchestrator

Transforms natural-language tasks into proposed agent graphs and execution contracts. Use [Orchestration Authority and Lifecycle](references/orchestration-authority-and-lifecycle.md): a graph is not a running system, and a controller must not claim dispatch, cancellation, join, or effect semantics without receipts from its executor.

## Decision Points

### 1. Initial Decomposition Strategy
```mermaid
flowchart TD
    A[Task contract] --> B[Name outputs, authority, acceptance, and effects]
    B --> F{Requirements or authority unresolved?}
    F -->|Yes| G[Halt for clarification or research]
    F -->|No| C{Artifacts become independent after declared prerequisites?}
    C -->|Yes| D[Propose parallel siblings after prerequisites with join and merge rules]
    C -->|No| E[Propose ordered prerequisites]
```

### 2. AND vs OR Composition Logic
```mermaid
flowchart LR
    A[Parent acceptance condition] --> B{All child receipts required?}
    B -->|Yes| C[AND join with failure policy]
    B -->|No| D{Any child may satisfy a stated criterion?}
    D -->|Yes| E[OR join with independent evaluator]
    D -->|No| F[Declare mixed/fallback semantics and effect containment]
```

### 3. Max Depth Calibration
```mermaid
flowchart TD
    A[Proposed decomposition] --> B{Each leaf has bounded artifact and acceptance test?}
    B -->|No| C[Refine or request missing contract]
    B -->|Yes| D{Depth or fan-out exceeds local resource policy?}
    D -->|Yes| E[Split into phases with revisioned handoff]
    D -->|No| F[Retain explicit graph]
```

### 4. Parallelization Safety Check
```mermaid
flowchart LR
    A[Candidate parallel wave] --> B[Check files, mutable resources, authority, and external effects]
    B --> C{Shared scarce or mutable boundary?}
    C -->|Yes| D[Serialize or grant a scoped lease]
    C -->|No| E[Parallel proposal with cancellation and join policy]
```

### 5. Failure Recovery Strategy
```mermaid
flowchart TD
    A[Executor receipt or timeout] --> B{Effect and completion state known?}
    B -->|No| C[Contain or cancel future work; reconcile before retry or dependent release]
    B -->|Yes| D{Acceptance condition satisfied?}
    D -->|Yes| E[Release dependents under declared policy]
    D -->|No| F[Contain dependents, propose revision, or escalate]
```

## Failure Modes

### Schema Bloat
**Symptoms**: DAG scope prevents clear ownership, contracts, or join semantics under its declared resource policy
**Detection**: A graph cannot state bounded artifacts, contracts, ownership, or join rules under its local resource policy
**Fix**: Split into revisioned phases or reduce scope; node count and estimates are planning inputs, not universal limits.

### Circular Dependencies  
**Symptoms**: Topological sort fails, "cyclic dependency" error in wave computation
**Detection**: Compare the processed-node count from Kahn's algorithm with the total node count, or retain a DFS back-edge witness; an acyclic prefix can exist before a cycle.
**Fix**: Preserve the cycle witness and ask the contract owner to revise the dependency or decompose an explicit intermediate artifact. Never delete an edge merely to make a sort succeed.

### Premature Parallelization
**Symptoms**: File conflicts, race conditions, inconsistent final state  
**Detection**: `if conflictingFiles.length > 0 || inconsistentOutputs`
**Fix**: Add explicit dependencies, use sequential waves for conflicting operations

### Infinite Decomposition
**Symptoms**: Depth keeps increasing, same task fails repeatedly at leaf level
**Detection**: A decomposition repeats the same unresolved obligation without a changed contract or evidence
**Fix**: Halt and request a new requirement, capability, or human decision rather than expanding depth by rule.

### Context Loss Cascade
**Symptoms**: Later waves fail due to missing information from earlier waves
**Detection**: `if waveN.inputs.missing.length > 0`
**Fix**: Ensure explicit context passing between waves, add context aggregation nodes

## Worked Examples

### Example: "Build authentication system for web app"

**Initial Assessment**: This is an illustrative authentication contract. Propose a revisioned graph only after naming its acceptance tests, credential/effect policy, and diagnosed component complexity.

**Wave 0 Decomposition**:
```typescript
// Initial breakdown
subtasks = [
  "Design user data schema",               // skill: database-architect
  "Specify authentication acceptance tests", // skill: test-engineer
  "Create login/signup API candidate",     // skill: api-architect
  "Build frontend auth candidate",         // skill: react-developer
  "Propose credential-policy candidate"     // skill: security-engineer
]
```

**Dependency Analysis**:
- The illustrative data, credential and effect contracts are prerequisites for the acceptance fixtures.
- The acceptance-test specification is a prerequisite for implementation candidates; executed evidence is evaluated before artifacts are accepted.
- API and frontend candidates may run after the frozen interface and fixtures only when their shared resources and effects have a valid coordination policy; their combined artifact is checked before acceptance.

**Illustrative dependency and acceptance graph**:
```mermaid
flowchart TD
    C[Define data, credential, and effect contracts] --> T[Specify acceptance fixtures]
    T --> A[Implement API candidate]
    T --> F[Implement frontend candidate against frozen interface]
    A --> J[Join compatible artifacts with attributed receipts]
    F --> J
    J --> R[Run component and integration checks]
    R --> X{All declared acceptance conditions established?}
    X -->|Yes| D[Accept artifacts under the named policy]
    X -->|No or unknown| E[Preserve findings and revise or escalate]
```

**Execution with Failure**:
```typescript
// An observed failure alone does not establish that decomposition is appropriate.
if (failureDiagnosis.complexityEvidence && effectStatus === "reconciled") {
  // Propose a revision after the task owner confirms the diagnosed complexity,
  // revised graph, authority, and acceptance checks.
  const apiSubtasks = [
    "Define authentication routes",
    "Implement password hashing", 
    "Add session management",
    "Create user CRUD operations"
  ];
  // A separate runner may execute the approved revision and emit receipts.
}
```

**Expert vs Novice**: 
- Novice: Assumes a familiar component order proves safe execution.
- Expert: Names the local contract, verifies prerequisites and effects, evaluates acceptance evidence before release, and revises only from a diagnosed condition.

## Quality Gates

- [ ] All subtasks have identified skill matches or fallback strategy
- [ ] Dependency graph has no cycles (topological sort succeeds)
- [ ] Shared file, semantic, authority, resource and effect requirements have explicit coordination policies; file overlap prediction alone is not sufficient
- [ ] Decomposition depth and wave size comply with a declared local resource policy
- [ ] Critical-path claims distinguish measurements from planning assumptions
- [ ] Executor results include receipt evidence or are explicitly unknown
- [ ] Context passing between waves explicitly defined
- [ ] Failure handling strategy defined for each critical node
- [ ] Resource constraints (memory, tokens, API calls) within limits
- [ ] Cancellation, join, duplicate-dispatch, and external-effect policies are declared

## NOT-FOR Boundaries

**Don't use DAG Orchestrator for**:
- Single-skill tasks → Use direct skill invocation
- Simple workflows whose artifacts, authority, and acceptance can be stated directly → use sequential task calls
- Real-time interactive tasks → Use conversational agents instead
- Tasks requiring human creativity/judgment → Use human-in-loop workflows
- Debugging/troubleshooting → Use diagnostic-specialist skill
- Data analysis/visualization → Use data-analyst skill

**Delegate instead**:
- Code reviews → Use code-reviewer skill
- Writing/editing → Use copywriter or technical-writer  
- Research synthesis → Use research-synthesizer skill
- UI/UX design → Use ui-ux-designer skill

Files in this skill

  • SKILL.md6.9 KB
  • schemas/input.json712 B
  • schemas/output.json1.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…