Implementation Gaps#
Generated: 2026-02-25
This document tracks features described in design documents that are not yet fully implemented. Fully implemented features are omitted. For complete design specs, see the linked source documents.
Deferred (Explicitly Planned for Future)#
Conditional Retry (retryIf)#
Source: actions.md
Retry policies with a retryIf condition to retry only on specific error types. Requires an __error namespace with message, statusCode, code, retryable, and attempt fields.
Matrix Strategy#
Source: actions.md
Parallel expansion across multiple dimensions (e.g., region × environment). Supports exclude and include modifiers. Only available in workflow.actions.
Action Alias#
Source: actions.md
Short alias for action references in expressions (e.g., config.results.endpoint instead of __actions.fetchConfiguration.results.endpoint).
Auth Claims Provider#
Source: auth.md
A dedicated provider to expose authentication claims (tenant ID, subject, scopes, etc.) for use in expressions and conditions.
Future Catalog Artifact Types#
Source: catalog.md
Additional artifact types beyond solutions, providers, and auth handlers — TBD as the system evolves.
Extended Plugin Capabilities#
Source: plugins.md
Plugins currently expose providers and auth handlers. Future capability types may include provider sets, schemas, and validation helpers.
Future Provider Capabilities#
Source: providers.md
The capability model is designed for extension. Future capabilities may include: caching, streaming, batch, webhook.
Catalog Regression Testing (scafctl pipeline)#
Source: functional-testing.md
A command that executes functional tests across solutions in a remote catalog, enabling validation that scafctl changes don’t break existing solutions.
run_solution MCP Tool#
Source: mcp-server.md
Phases 9–10 of the MCP server design — executing solutions through the MCP server (dry-run default, full execution with confirmation). Explicitly deferred to a future release.
Partially Implemented#
Plugin Catalog Distribution & Runtime Loading#
Source: plugins.md , solutions.md , catalog.md
What’s done:
- gRPC plugin architecture (
hashicorp/go-plugin):pkg/plugin/ - Protobuf definitions, client/server, provider wrapper
bundle.pluginstype onSolutionstruct- Plugin vendoring at build time:
pkg/solution/bundler/vendor_plugins.go - Version constraint checking:
pkg/solution/bundler/plugin.go - Lock file integration
What’s missing:
build pluginCLI command (onlybuild solutionexists)
What’s been implemented:
- Dynamic plugin auto-fetching from remote catalogs at runtime (
pkg/plugin/fetcher.go,pkg/catalog/plugin_fetcher.go) - Multi-platform support via OCI annotations (
pkg/plugin/platform.go,pkg/catalog/plugin_fetcher.go) - Content-addressed plugin cache (
pkg/plugin/cache.go) - Catalog chain resolution — local-first, then remote OCI catalogs (
pkg/catalog/chain.go,pkg/catalog/chain_builder.go) scafctl plugins installandscafctl plugins listCLI commands (pkg/cmd/scafctl/plugins/)- Wired into solution execution via
prepare.Solution()options - Auth handler plugin runtime:
AuthHandlerPlugininterface, gRPC service (AuthHandlerServicewith 7 RPCs), client/server/wrapper (pkg/plugin/grpc_auth.go,pkg/plugin/wrapper_auth.go), fetcher integration (RegisterFetchedAuthHandlerPlugins), preparation pipeline (prepare.WithAuthRegistry)
GCP Auth Handler Documentation#
Source: gcp-auth-handler.md
What’s done:
- All code: 5 auth flows (ADC/PKCE, service account, metadata server, workload identity, gcloud ADC), impersonation, CLI wiring
- Most unit tests (9 test files exist)
What’s missing:
- 3 unit test files:
adc_flow_test.go,impersonation_test.go,metadata_test.go - GCP auth tutorial (only
gcp-custom-oauth-tutorial.mdexists, not a general GCP auth tutorial) - GCP auth examples in
examples/auth/
CLI Command Structure vs Design Tree#
Source: cli-contributing.md
What’s done:
- All catalog operations are implemented under
scafctl catalog <verb>(push, pull, tag, save, load, inspect, list, delete, prune)
Divergence from design:
- The design tree in
cli-contributing.mdshowspush,pull,inspect,tag,save,loadas top-level verbs (e.g.,scafctl push solution). In practice, they live underscafctl catalog push. The design tree should be updated to reflect the actual structure, or the commands should be restructured.
Note: The
cli-contributing.mddesign tree also referencesbuild plugin,push plugin,pull plugin,inspect plugin,tag plugin,save pluginwhich don’t exist. These are blocked on the plugin catalog distribution work above.
Not Implemented (Excluding State)#
Note: state.md is excluded from this document — it is still under active design discussion.
No outstanding items at this time. All previously tracked gaps have been implemented or promoted to the Deferred section above.