Outcome
Restore a completely green Renderflow default branch by making the canonical --all dry-run path resolve from the built-in capability registry on a clean Ubuntu host, without conflating registered, policy-allowed, provider-available, and selected capabilities.
Observed live baseline
Reproduced from the merged main baseline at 1eafaf54d33a984377a7a3e327ee87382da73307.
- Main CI run: https://github.com/egohygiene/renderflow/actions/runs/34775426178
- Failing job:
build-and-test / Test
- Regression:
test_all_without_transforms_uses_builtin_capability_registry
- Clean-run diagnostic:
target selection resolved to no available branches; inspect the artifact-forest plan or relax provider/policy constraints
- The adjacent target-specific fallback test passes.
- The failure is host-dependent: a developer machine with Pandoc installed can hide it.
The current planner first expands all_reachable against the policy-filtered built-in graph, then removes every optional branch whose provider is unavailable. On a clean host without Pandoc, every Markdown derivative is removed before an inspectable dry-run plan can be returned.
Scope
- Make
renderflow build --all --dry-run with a valid config and no transforms file resolve through the built-in capability registry on a clean Ubuntu-like host.
- Preserve truthful unavailable/blocked branch reporting in the artifact forest and diagnostics.
- Preserve the target-specific blocked-provider fallback behavior.
- Preserve execution preflight: an unavailable external provider must not be reported as installed or executed successfully.
- Add deterministic regression coverage that does not depend on the developer host's installed tools.
- Keep the canonical planner, execution evidence, schemas, docs, and provider contracts coherent.
- Do not weaken CI, skip the test, install Pandoc merely to hide the regression, or expand product scope.
Acceptance criteria
Relationships
Outcome
Restore a completely green Renderflow default branch by making the canonical
--alldry-run path resolve from the built-in capability registry on a clean Ubuntu host, without conflating registered, policy-allowed, provider-available, and selected capabilities.Observed live baseline
Reproduced from the merged
mainbaseline at1eafaf54d33a984377a7a3e327ee87382da73307.build-and-test/Testtest_all_without_transforms_uses_builtin_capability_registrytarget selection resolved to no available branches; inspect the artifact-forest plan or relax provider/policy constraintsThe current planner first expands
all_reachableagainst the policy-filtered built-in graph, then removes every optional branch whose provider is unavailable. On a clean host without Pandoc, every Markdown derivative is removed before an inspectable dry-run plan can be returned.Scope
renderflow build --all --dry-runwith a valid config and no transforms file resolve through the built-in capability registry on a clean Ubuntu-like host.Acceptance criteria
test_all_without_transforms_uses_builtin_capability_registryregression passes.--all --dry-runreturns machine-readable canonical plan evidence even when every policy-allowed derivative requires an unavailable external provider.cargo fmt --all -- --check, strict workspace Clippy, build, the complete workspace test suite, generated docs/schema checks, conformance, package checks, and relevant manual smoke tests pass.mainbefore closure.Relationships