generated from coulomb/repo-seed
feat(WP-0009): IHF GAAF Compliance Foundation — type registries, extension manifests, architectural contracts
Some checks failed
Test / test (push) Has been cancelled
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>
This commit is contained in:
78
contracts/README.md
Normal file
78
contracts/README.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# IHF Contract Catalog
|
||||
|
||||
**Framework:** GAAF-2026
|
||||
**Last reviewed:** 2026-03-31
|
||||
**Repository:** inter-hub
|
||||
|
||||
This directory contains the versioned, machine-readable contracts for each
|
||||
GAAF-2026 layer. Contract files are the authoritative declaration of
|
||||
interface, invariants, compatibility rules, and validation requirements for
|
||||
every public surface in the framework.
|
||||
|
||||
The canonical implementation of each contract is the PostgreSQL schema and
|
||||
Haskell controllers. These files are the *discoverable declaration* — the
|
||||
human and agent-readable companion that makes intent explicit without
|
||||
requiring the source code to be read.
|
||||
|
||||
---
|
||||
|
||||
## Core Contracts
|
||||
|
||||
| Contract | File | Version | Status |
|
||||
|---|---|---|---|
|
||||
| Widget Envelope | [core/widget-envelope-v1.md](core/widget-envelope-v1.md) | 1.0 | Active |
|
||||
| Append-Only Events | [core/append-only-events-v1.md](core/append-only-events-v1.md) | 1.0 | Active |
|
||||
|
||||
Core contracts are **immutable after activation**. New requirements produce a
|
||||
new version (v1.1, v2.0); the old version remains readable for audit.
|
||||
|
||||
---
|
||||
|
||||
## Functional Contracts
|
||||
|
||||
| Contract | File | Version | Status |
|
||||
|---|---|---|---|
|
||||
| Interaction Reporting API | [functional/interaction-reporting-v1.md](functional/interaction-reporting-v1.md) | 1.0 | Active |
|
||||
| Module Maturity Labels | [functional/module-maturity-labels.md](functional/module-maturity-labels.md) | 1.0 | Active |
|
||||
|
||||
Functional contracts are **evolvable with minor-version notice**. Breaking
|
||||
changes require a major version bump and a deprecation window.
|
||||
|
||||
---
|
||||
|
||||
## Extensions Contracts
|
||||
|
||||
| Contract | File | Version | Status |
|
||||
|---|---|---|---|
|
||||
| Hub Capability Manifest | [extensions/hub-capability-manifest-v1.md](extensions/hub-capability-manifest-v1.md) | 1.0 | Active |
|
||||
|
||||
Extensions contracts govern how domain hubs register their vocabulary and
|
||||
capabilities with the framework.
|
||||
|
||||
---
|
||||
|
||||
## Contract Lifecycle
|
||||
|
||||
```
|
||||
Draft → Active → Superseded
|
||||
↓
|
||||
(never deleted — old versions remain for audit)
|
||||
```
|
||||
|
||||
A contract becomes Active when:
|
||||
- Its corresponding schema and code are deployed
|
||||
- It is referenced in `ARCHITECTURE-LAYERS.md`
|
||||
|
||||
A contract is Superseded when a new version replaces it. The old file
|
||||
remains with a `superseded_by` note at the top.
|
||||
|
||||
---
|
||||
|
||||
## Adding a New Contract
|
||||
|
||||
1. Create the file in the appropriate layer directory
|
||||
2. Follow the header format: name, version, date, status, layer
|
||||
3. Document: interface, invariants, compatibility rules, validation rules,
|
||||
failure mode
|
||||
4. Add an entry to this README table
|
||||
5. Reference it in `ARCHITECTURE-LAYERS.md`
|
||||
Reference in New Issue
Block a user