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
swamp repo inita root repo.- Create a subdir extension that bundles a workflow:
sub/manifest.yamlwithpaths: { 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
- From the root repo run:
swamp extension quality sub/manifest.yaml(orpush --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)
Shipped
Click a lifecycle step above to view its details.