Skip to main content
← Back to list
01Issue
BugShippedSwamp CLI
Assigneesstack72

Relationships

#540 paths.base: manifest is not honored for workflows: — bundled workflows only resolve from repo root, blocking self-contained subdir layouts (sibling to #459)

Opened by magistr · 6/3/2026· Shipped 6/3/2026

Description

This is the sibling of #459 for workflows:.

When an extension manifest.yaml sets paths.base: manifest, the typed-key paths for models / reports / additionalFiles correctly resolve relative to the manifest's own directory. However, workflows: entries do not follow paths.base — they are resolved only from the repository root's workflows/ and extensions/workflows/.

This blocks the same multi-extension / monorepo layout that #459 unblocked for skills: an extension that ships a workflow cannot keep that workflow inside its own subdirectory; it has to live in the shared repo-root extensions/workflows/.

Steps to reproduce

  1. swamp repo init a root repo.
  2. Create a subdir extension that bundles a workflow:
    • sub/manifest.yaml with paths: { base: manifest }, models: [extensions/models/x.ts], workflows: [extensions/workflows/juick-to-obsidian.yaml]
    • workflow at sub/extensions/workflows/juick-to-obsidian.yaml
    • model at sub/extensions/models/x.ts
  3. From the root repo run: swamp extension quality sub/manifest.yaml (or push --dry-run).

Actual

The model resolves correctly (via paths.base: manifest, from sub/extensions/models/x.ts), but the workflow lookup fails:

Error: "Workflow file not found: extensions/workflows/juick-to-obsidian.yaml (looked in <root>/workflows and <root>/extensions/workflows)"

Note swamp looked only at the root locations — never at sub/extensions/workflows/.

Expected

With paths.base: manifest, workflows: entries should resolve relative to the manifest's own directory, consistent with how models / reports / additionalFiles already resolve under that mode (and consistent with the recently-shipped #459 fix for skills:). That would let a workflow-bundling extension be fully self-contained in its subdirectory.

Impact / motivation

A multi-extension monorepo (one repo, one .swamp/, N extension subdirs) is now viable for model-only and skill-bundling extensions thanks to #459. But extensions that bundle a workflow still can't be fully self-contained — the workflow YAML has to live in the shared root extensions/workflows/ directory, mixing workflows from different extensions in one place. Honoring paths.base for workflows: would close the last gap and make any extension layout self- contained per subdir.

Environment

  • swamp 20260603.013237.0-sha.d716e432
  • macOS (darwin)
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 2 MOREREVIEW+ 3 MOREPR_MERGED+ 1 MORECONTRIBUTOR_NOTIFIED

Shipped

6/3/2026, 2:41:29 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack726/3/2026, 1:00:11 PM
Editable. Press Enter to edit.

stack72 commented 6/3/2026, 2:41:37 PM

Thanks @magistr for reporting this! The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.