generated from coulomb/repo-seed
Some checks failed
Test / test (push) Has been cancelled
Implements IHUB-WP-0009: closes four GAAF-2026 gaps before domain hub work begins. - TypeRegistry helper + controllers/views (hub_kind, hub_capability_manifest) - HubCapabilityManifest entity with validation and registry linkage - ARCHITECTURE-LAYERS.md + CI-enforced boundary contracts - Alembic migration 1743724800, fitness tests (Test/Architecture/) - GAAF spec, Operational Architecture spec, domain hub extension guide - Updates to CLAUDE.md, SCOPE.md, Schema.sql, Routes, FrontController, Types state_hub_sync: pending (tunnel was STALE at completion time; run fix-consistency) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
85 lines
2.6 KiB
Markdown
85 lines
2.6 KiB
Markdown
# Module Maturity Labels
|
|
|
|
**Name:** module-maturity-labels
|
|
**Version:** 1.0
|
|
**Date:** 2026-03-31
|
|
**Status:** Active
|
|
**Layer:** Functional
|
|
|
|
---
|
|
|
|
## Purpose
|
|
|
|
Defines the four maturity states used to label IHF functional modules and
|
|
contract tables. These labels communicate to domain hub developers which
|
|
surfaces are safe to depend on long-term.
|
|
|
|
---
|
|
|
|
## Labels
|
|
|
|
### Stable
|
|
|
|
The public interface **will not change** within the current major version.
|
|
|
|
- Removing a field, renaming a table, or changing a column type is a **breaking
|
|
change** and requires a major version bump (e.g. IHF v1.0 → v2.0).
|
|
- Adding a nullable or defaulted column is **not** breaking and may occur
|
|
without a version bump, but is documented in the changelog.
|
|
- Suitable for all production use, including domain hub compilation dependencies.
|
|
|
|
### Beta
|
|
|
|
The interface is **finalised for typical use** but edge-case fields may change
|
|
with a minor-version notice (e.g. IHF v0.2 → v0.3).
|
|
|
|
- Core workflow fields are stable; metadata, computed, or supplementary fields
|
|
may be refined.
|
|
- Suitable for production use with awareness: monitor the changelog before
|
|
upgrading.
|
|
- A Beta module will be promoted to Stable once it has been used in at least
|
|
two deployed domain hubs without reported breaking-change issues.
|
|
|
|
### Experimental
|
|
|
|
The interface **may change without notice** between patch releases.
|
|
|
|
- Use only for internal prototyping, spike implementations, or with explicit
|
|
opt-in acknowledgement.
|
|
- Not suitable for domain hub production code.
|
|
- A module remains Experimental until its design is confirmed by real usage.
|
|
|
|
### Deprecated
|
|
|
|
The module or field **will be removed** in the next major version.
|
|
|
|
- A replacement is documented in the contract or in the schema comment.
|
|
- The deprecated item remains functional until the major version boundary.
|
|
- Domain hubs must migrate before upgrading to the next major version.
|
|
|
|
---
|
|
|
|
## Where Labels Are Used
|
|
|
|
| Surface | How the label is expressed |
|
|
|---|---|
|
|
| Functional modules | `docs/functional-modules.md` maturity column |
|
|
| `envelope_emission_contracts` table | `maturity` column (added in IHUB-WP-0009) |
|
|
| `interaction_reporting_contracts` table | `maturity` column |
|
|
| `widget_adapter_specs` table | `maturity` column |
|
|
| Type registry entries | `status` column (`active` / `deprecated`) |
|
|
| Contract files in `/contracts/` | `Maturity:` header field |
|
|
|
|
---
|
|
|
|
## Promotion Path
|
|
|
|
```
|
|
Experimental → Beta → Stable
|
|
↓
|
|
Deprecated → (removed at next major version)
|
|
```
|
|
|
|
Promotions are recorded in the module's entry in `docs/functional-modules.md`
|
|
and the corresponding `maturity` column in the DB is updated.
|