coleam00/Archon · error · Error

No workflows found in .archon/workflows/

Error message

No workflows found in .archon/workflows/

What it means

Error "No workflows found in .archon/workflows/" thrown in coleam00/Archon.

Source

Thrown at packages/cli/src/commands/workflow.ts:1555

  let { workflows: workflowEntries, errors } = continuation
    ? { workflows: continuation.workflows, errors: continuation.errors }
    : preparedSource
      ? await discoverWorkflowsWithConfig(cwd, loadConfig, preparedSource.roots)
      : await loadWorkflows(effectiveDiscoveryCwd);
  const sourceCounts = countWorkflowSources(workflowEntries);

  if (!options.json && !options.quiet) {
    console.log(
      `Discovery: root=${effectiveDiscoveryCwd} workflows=${String(workflowEntries.length)} ` +
        `bundled=${String(sourceCounts.bundled)} global=${String(sourceCounts.global)} ` +
        `project=${String(sourceCounts.project)}`
    );
  }

  if (workflowEntries.length === 0 && errors.length === 0) {
    // No manual cleanup here or anywhere else in this function: the owner reclaims
    // anything unadopted on the way out, which is the point of having one.
    throw new Error('No workflows found in .archon/workflows/');
  }

  const workflows = workflowEntries.map(ws => ws.workflow);

  // A continuation executes the graph it froze; only a fresh invocation resolves by name.
  let workflow = continuation?.workflow ?? resolveWorkflowName(workflowName, workflows);
  // Recover the discovery entry (dropped by the .map above) for telemetry —
  // bundled workflows report their real name, custom ones report "custom" —
  // and for the parse warnings surfaced just below.
  let workflowEntry = workflow ? workflowEntries.find(ws => ws.workflow === workflow) : undefined;
  let workflowSource = workflowEntry?.source;

  // An adoption lane that executes inside an inherited or freshly cut worktree must run
  // THAT checkout's `.archon`, not the parent checkout's bytes captured on entry — the
  // branch may carry a different workflow YAML, and executing one against the other is
  // exactly the mixed-vintage defect (#2660/#2747). Re-freeze the source and re-discover
  // from the lane path once the lane resolves it.
  const recaptureForLane = async (sourceRoot: string): Promise<void> => {

View on GitHub (pinned to 0773b97458)

When it happens

Trigger: Thrown at packages/cli/src/commands/workflow.ts:1555 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of coleam00/Archon@0773b97458 (2026-09-01). Data as JSON: /api/errors/33df1d66e6c67cdd. Report an issue: GitHub.