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>
79 lines
2.5 KiB
Markdown
79 lines
2.5 KiB
Markdown
# 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`
|