Files
affaan-m--everything-claude…/workflows
wehub-resource-sync d48cda4081
CI / Test (ubuntu-latest, Node 18.x, bun) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, npm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, pnpm) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 18.x, yarn) (push) Failing after 15m1s
CI / Test (ubuntu-latest, Node 20.x, bun) (push) Failing after 17m13s
CI / Test (ubuntu-latest, Node 20.x, npm) (push) Failing after 18m42s
CI / Test (ubuntu-latest, Node 20.x, pnpm) (push) Failing after 15m0s
CI / Test (ubuntu-latest, Node 20.x, yarn) (push) Failing after 49m44s
CI / Test (ubuntu-latest, Node 22.x, bun) (push) Failing after 51m55s
CI / Test (ubuntu-latest, Node 22.x, pnpm) (push) Failing after 21m57s
CI / Test (ubuntu-latest, Node 22.x, npm) (push) Failing after 37m39s
CI / Test (ubuntu-latest, Node 22.x, yarn) (push) Failing after 34m7s
CI / Validate Components (push) Failing after 37m15s
CI / Python Tests (push) Failing after 10m1s
CI / Security Scan (push) Failing after 10m1s
CI / Lint (push) Failing after 17m12s
CI / Coverage (push) Failing after 20m19s
CI / Test (macos-latest, Node 18.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 18.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 20.x, yarn) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, bun) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (macos-latest, Node 22.x, yarn) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, npm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, pnpm) (push) Has been cancelled
CI / Test (windows-latest, Node 22.x, yarn) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:55:55 +08:00
..

ECC native workflows (pilot)

Scripts in this directory are Claude Code Workflow tool scripts — deterministic, multi-agent orchestration that runs in the background and fans out to subagents.

This is a pilot: ECC's orchestration (orch-*, multi-*, GAN/Santa loops) is currently hand-rolled on top of the Task/Agent tool. These scripts port the autonomous, fan-out-heavy segments to the native engine, which gives us barrier-free pipelining, automatic concurrency capping, structured-output validation, and resumability for free.

orch-review.workflow.js

A native port of orch-pipeline Phase 5 (Review).

The gated outer loop (Gate 1 after Plan, Gate 2 before Commit) stays in the main conversation — native workflows run autonomously in the background and cannot pause for interactive approval. This script owns only the segment between the gates:

  1. Review — one reviewer agent per dimension, in parallel:
    • ecc:code-reviewer (correctness & quality) — always
    • the matching ecc:<language>-reviewer — when args.language maps to one
    • ecc:security-reviewer — only when the orch-pipeline security trigger matches the diff/paths
  2. Dedup — independent reviewers routinely flag the same line, so findings are merged across dimensions keyed on the normalized evidence snippet (titles and line numbers drift per reviewer; the offending code does not). Each surviving finding records which dimensions reported it and keeps the strictest severity.
  3. Verify — every unique CRITICAL/HIGH finding is handed to an independent adversarial verifier that defaults to refuted on uncertainty. MEDIUM/LOW pass through as advisory.

The Review→Verify barrier is deliberate: deduping before verification is exactly the case the Workflow guidance calls a justified barrier — it stops the verifier running N times on the same bug (in local testing, 11 raw findings collapsed to 4 unique, roughly halving verifier cost).

Invocation

The main loop computes the diff, then calls the Workflow tool:

Workflow({
  scriptPath: "workflows/orch-review.workflow.js",
  args: {
    diff: "<unified git diff text>",   // required
    language: "typescript",            // optional — selects a language reviewer
    changedFiles: ["src/auth.ts"]      // optional — feeds the security trigger
  }
})

Invalid input throws (the gate fails closed): a missing/empty diff, malformed JSON, or a non-array changedFiles is rejected with a clear error rather than silently approving an unreviewed payload.

Returns

{
  "verdict": "APPROVE" | "CHANGES_REQUESTED", // CHANGES_REQUESTED if any blocker OR a dimension failed
  "incomplete": false,            // true when one or more review dimensions failed to run
  "failedDimensions": [ /* { dimension, error }  error is a bounded label, never raw subagent text:
                           "agent returned null (terminal failure or skip)" | "review agent failed" */ ],
  "blocking": [ /* confirmed CRITICAL/HIGH + unverifiable ones  must clear before Gate 2 */ ],
  "advisory": [ /* MEDIUM/LOW + adversarially-refuted findings */ ],
  "stats": { "dimensions": 3, "failed": 0, "raw": 11, "unique": 4, "confirmed": 4, "unverified": 0, "refuted": 0 }
}

The main loop presents blocking at Gate 2; the human still approves the commit. The gate fails closed at every stage: if a reviewer dies the dimension is recorded in failedDimensions (verdict never a clean APPROVE), and if a verifier dies or returns null the blocker is kept in blocking (tagged "could not be verified") rather than demoted to advisory — an unreviewed security dimension or an unverifiable CRITICAL must not pass as approved.

Invoking it

/orch-review (commands/orch-review.md) is the command surface: it gathers the diff (local uncommitted changes or a GitHub PR), calls this workflow, and reports the blocking/advisory split at Gate 2.

Not in this PR (follow-ups)

  • i18n mirrors (docs/<locale>/commands/orch-review.md) for the /orch-review command (not CI-enforced; only a subset of commands are translated today).
  • Wiring /orch-review into the orch-pipeline Review phase as the native option.
  • Installer / manifest wiring so the script ships to ~/.claude/ on install.
  • Porting the Research sweep and Plan judge-panel segments next.