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
Copy file name to clipboardExpand all lines: openspec/changes/arch-03-module-lifecycle-management/proposal.md
+5-9Lines changed: 5 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,12 +2,14 @@
2
2
3
3
## Why
4
4
5
+
5
6
`arch-02` completed module package separation, but module lifecycle constraints are still unenforced at runtime. `module_dependencies` is currently declarative-only, module manifests do not constrain CLI core compatibility, and `init --disable-module` can disable required modules without preflight protection.
6
7
7
8
This creates avoidable runtime breakage and weakens contract-first guarantees for modular command loading. We need registry-time lifecycle validation and safe-disable protection while preserving backward compatibility.
8
9
9
10
## What Changes
10
11
12
+
11
13
-**NEW**: Add module lifecycle validation at registration time for dependency existence/enabled state and `core_compatibility` version constraints.
12
14
-**NEW**: Extend module manifests with `core_compatibility` (PEP 440 specifier string) across all module packages.
13
15
-**NEW**: Add safe-disable checks in `specfact init` so disabling a module fails when enabled dependents require it, with explicit `--force` override.
@@ -20,20 +22,14 @@ This creates avoidable runtime breakage and weakens contract-first guarantees fo
20
22
-**EXTEND**: Update user-facing documentation and changelog/version synchronization for lifecycle management behavior and module manifest schema.
21
23
22
24
## Capabilities
23
-
24
25
-**module-lifecycle-management**: Enforce module dependency integrity, version compatibility, safe-disable semantics, and module boundary hygiene.
25
26
26
-
## Impact
27
-
28
-
-**Affected specs**: New `openspec/changes/arch-03-module-lifecycle-management/specs/module-lifecycle-management/spec.md`.
29
-
-**Affected code**: `src/specfact_cli/registry/`, `src/specfact_cli/modules/*/module-package.yaml`, `src/specfact_cli/modules/init/src/commands.py`, and shared utility extraction under `src/specfact_cli/utils/`.
30
-
-**Affected tests**: Registry/unit test coverage, module boundary guard tests, and utility conversion tests.
31
-
-**Affected documentation** (<https://docs.specfact.io>): CLI/module docs and contributor guidance that describe module metadata, lifecycle constraints, and disable behavior.
32
-
-**Backward compatibility**: Preserved for command-level behavior; lifecycle checks prevent invalid module states earlier with actionable errors.
0 commit comments