You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
_resolved_locally in src/specify_cli/bundler/services/references.py gives three of the four component kinds a "is it bundled with Spec Kit?" check before the installed-in-project check. steps is the exception:
kind
bundled check
installed check
presets
_locate_bundled_preset
PresetManager(root).get_pack
extensions
_locate_bundled_extension
ExtensionManager(root).registry.is_installed
workflows
_locate_bundled_workflow
WorkflowRegistry(root).is_installed
steps
none
StepRegistry(root).is_installed
StepRegistry tracks community step types installed under .specify/workflows/steps/. Spec Kit ships 11 step types as built-ins registered in STEP_REGISTRY.
So a bundle that declares a dependency on any built-in step type is reported as an unresolved reference — a hard error with --allow-network, a warning offline. Those are exactly the step types a bundle is most likely to depend on.
Fix
There is no _locate_bundled_step to mirror, because step types are not an on-disk asset directory — they are registered in code. STEP_REGISTRYis the bundled-with-Spec-Kit check for this kind, and it is what specify workflow step info already reports as "built-in":
from ...workflowsimportSTEP_REGISTRY
...
ifcomponent.idinSTEP_REGISTRY:
returnTruereturnStepRegistry(root).is_installed(component.id)
The import stays lazy and inside the function, matching every other branch. Importing specify_cli.workflows runs _register_builtin_steps(), exactly as workflow step info relies on.
No breaking change. This only makes previously-unresolvable ids resolve. A second new test pins that an unknown step id (no-such-step-type) still errors, so the guard has not made everything resolve.
Verification
Fail-before / pass-after:test_builtin_step_type_resolves fails on unpatched src and passes with the fix. File: 1 failed → 5 passed.
Scoped regression over tests/unit: failure set identical to the clean-main baseline captured on 81bf741 (2 pre-existing in scope).
uvx ruff@0.15.0 check src tests → clean
Tests sit beside test_bundled_extension_resolves, the exact sibling assertion for the bundled-with-Spec-Kit case.
Written with assistance from Claude Code. Bug found, reproduced, and verified by me on current main.
Problem
_resolved_locallyinsrc/specify_cli/bundler/services/references.pygives three of the four component kinds a "is it bundled with Spec Kit?" check before the installed-in-project check.stepsis the exception:presets_locate_bundled_presetPresetManager(root).get_packextensions_locate_bundled_extensionExtensionManager(root).registry.is_installedworkflows_locate_bundled_workflowWorkflowRegistry(root).is_installedstepsStepRegistry(root).is_installedStepRegistrytracks community step types installed under.specify/workflows/steps/. Spec Kit ships 11 step types as built-ins registered inSTEP_REGISTRY.Reproduction on current
main(81bf741)So a bundle that declares a dependency on any built-in step type is reported as an unresolved reference — a hard error with
--allow-network, a warning offline. Those are exactly the step types a bundle is most likely to depend on.Fix
There is no
_locate_bundled_stepto mirror, because step types are not an on-disk asset directory — they are registered in code.STEP_REGISTRYis the bundled-with-Spec-Kit check for this kind, and it is whatspecify workflow step infoalready reports as "built-in":The import stays lazy and inside the function, matching every other branch. Importing
specify_cli.workflowsruns_register_builtin_steps(), exactly asworkflow step inforelies on.No breaking change. This only makes previously-unresolvable ids resolve. A second new test pins that an unknown step id (
no-such-step-type) still errors, so the guard has not made everything resolve.Verification
test_builtin_step_type_resolvesfails on unpatchedsrcand passes with the fix. File: 1 failed → 5 passed.tests/unit: failure set identical to the clean-mainbaseline captured on81bf741(2 pre-existing in scope).uvx ruff@0.15.0 check src tests→ cleanTests sit beside
test_bundled_extension_resolves, the exact sibling assertion for the bundled-with-Spec-Kit case.Written with assistance from Claude Code. Bug found, reproduced, and verified by me on current
main.