compose
Interactive workflow builder — helps create workflow.yaml files for the harness orchestrator. The ONE interactive entry point. Use when user wants to build a harness workflow, create a pipeline, or compose subsystems together.
What this skill does
# Harness: Compose Workflow
Help the user build a `workflow.yaml` for the orchestrator to execute. This is the interactive counterpart to the headless `/harness:run`.
## Step 1: Understand the goal
Ask the user what they want to accomplish. Common patterns:
- **Build + Review:** Implement features in parallel, then review
- **Build + Optimize:** Build features, then optimize the hot path
- **Optimize only:** Run a keep/revert optimization loop on an artifact
- **Research:** Search literature for a specific question
- **Triage:** Diagnose and fix an issue
- **Full pipeline:** Build → Review → Optimize → Research
## Step 2: Pick subsystems
Every phase has `plugin: harness`, plus a `type:` and (for `subagent` phases) an `agent:` selecting which subsystem handles the work:
| Subsystem | Phase types | Agents | Purpose |
|---|---|---|---|
| Build | `agent-teams`, `subagent` | `lead`, `implementer`, `reviewer`, `code-reviewer` | Parallel feature building with TDD + review |
| Optimize | `loop` | `optimizer`, `advisor` | Keep/revert optimization on any artifact + metric |
| Research | `subagent` | `searcher`, `synthesizer`, `method-analyst`, `implementation-guide`, `architecture-evaluator` | Literature search + synthesis |
| Triage | `subagent` | `diagnostician`, `fixer`, `verifier` | Issue diagnosis + auto-fix |
Also check hardware targets for optimization phases:
```bash
cat "${HOME}/.harness/config.json" 2>/dev/null || echo "NO_CONFIG"
```
## Step 3: Build phases interactively
For each phase the user wants, collect the required config:
### Build phase (agent-teams)
- Branch name for the feature work
- Number of parallel teammates (1-5, default 3)
- Tasks: collect user stories inline or point to a tasks file
- Whether to run code review after
### Optimize phase (loop)
- Which file to optimize (the artifact)
- What metric to measure
- Whether lower or higher is better
- The command to run
- Time budget per experiment
- Max experiments
- Target: local or server (if server, need ssh_host and remote cwd)
### Research phase (subagent)
- The research question
- Which sources to search (arxiv, semantic-scholar, hf-papers, perplexity)
- Max papers to include
### Triage phase (subagent)
- Issue URL or error log
- Whether to create a PR for the fix
## Step 4: Wire dependencies and conditions
- Ask about phase ordering and dependencies
- Suggest conditions (e.g., "only research if optimization improved >10%")
- Add `depends_on` and `condition` fields
## Step 5: Set defaults
Ask about quality commands:
```yaml
defaults:
quality:
test: "npm test" # or "pytest", "cargo test", etc.
build: "npm run build" # or "cargo build", etc.
typecheck: "tsc --noEmit" # if TypeScript
```
## Step 6: Generate and write
Assemble the full workflow.yaml and write it:
```bash
mkdir -p .harness
```
Write the file to `.harness/workflow.yaml`.
Show the user the complete workflow and explain:
- How to run: `/harness:run`
- How to monitor: check `.harness/` state files or the dashboard
- How to resume: just re-run `/harness:run` — it picks up where it left off
## Example Output
```yaml
name: build-and-optimize
description: "Build user management API, then optimize the hot path"
defaults:
quality:
test: "npm test"
build: "npm run build"
typecheck: "tsc --noEmit"
phases:
- id: build
plugin: harness
type: agent-teams
config:
branch: "feat/user-api"
max_teammates: 3
code_review: true
tasks:
- id: "US-001"
title: "Set up project structure"
description: "As a developer, I want the Express project scaffolded with TypeScript"
criteria:
- "package.json has express dependency"
- "src/ directory structure exists"
- "TypeScript configured"
- id: review
plugin: harness
type: subagent
agent: reviewer
depends_on: [build]
- id: optimize
plugin: harness
type: loop
depends_on: [review]
config:
artifact: "src/api/handler.ts"
metric: "p99_latency_ms"
direction: lower
run_command: "npm run benchmark"
time_budget: "2m"
max_experiments: 20
```
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.