Skip to content

Commit d1535d2

Browse files
committed
Update change
1 parent ecf0bbb commit d1535d2

1 file changed

Lines changed: 5 additions & 9 deletions

File tree

  • openspec/changes/arch-03-module-lifecycle-management

openspec/changes/arch-03-module-lifecycle-management/proposal.md

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
## Why
44

5+
56
`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.
67

78
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.
89

910
## What Changes
1011

12+
1113
- **NEW**: Add module lifecycle validation at registration time for dependency existence/enabled state and `core_compatibility` version constraints.
1214
- **NEW**: Extend module manifests with `core_compatibility` (PEP 440 specifier string) across all module packages.
1315
- **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
2022
- **EXTEND**: Update user-facing documentation and changelog/version synchronization for lifecycle management behavior and module manifest schema.
2123

2224
## Capabilities
23-
2425
- **module-lifecycle-management**: Enforce module dependency integrity, version compatibility, safe-disable semantics, and module boundary hygiene.
2526

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.
27+
---
3328

3429
## Source Tracking
3530

31+
<!-- source_repo: nold-ai/specfact-cli -->
3632
- **GitHub Issue**: #203
3733
- **Issue URL**: <https://github.com/nold-ai/specfact-cli/issues/203>
38-
- **Repository**: nold-ai/specfact-cli
3934
- **Last Synced Status**: proposed
35+
<!-- content_hash: d31176ea7ec82ec0 -->

0 commit comments

Comments
 (0)