docs(voyage): S5 — formalize Handover 1 brief-schema as public contract (v5.4)
Elevate Handover 1 (brief.md → research) from an internal pipeline handover to an explicit PUBLIC CONTRACT — the only public producer↔Voyage integration boundary (Trinity asymmetry invariant: Voyage stays unaware of upstream tiers; any compatible producer may feed it; no producer privileged). Scope = freeze + document (operator-gated, option A). No schema change, no plugin version bump (that is S10 RELEASE). Per S3, phase_signals stays optional and brief_version 2.1 is the frozen public-contract baseline. - docs/HANDOVER-CONTRACTS.md: PUBLIC CONTRACT label + callout on Handover 1 (asymmetry, breaking-for-downstream, additive-vs-breaking, frozen 2.1 baseline); resolve the speculative "v5.4 may promote phase_signals to required → 3.0" line to the S3 freeze decision; fix stale schema-table baseline 2.0 → 2.1; annotate the Stability summary row (symmetric with Handover 3's "external" flag). - CLAUDE.md: Trinity note now points at docs/HANDOVER-CONTRACTS.md §Handover 1. - tests/lib/doc-consistency.test.mjs: +4 failing-first doc-truth pins (Iron Law) — PUBLIC CONTRACT label, callout + breaking-for-downstream guarantee, frozen 2.1 baseline (no stale 2.0), freeze-not-promote. 586/584 pass/0 fail/2 skip. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LqBYc8Ltrk7LipyJmGxXiB
This commit is contained in:
parent
fdd3ad80d7
commit
fa23b16443
3 changed files with 43 additions and 5 deletions
|
|
@ -6,7 +6,7 @@ Voyage — a contract-driven Claude Code pipeline: brief, research, plan, execut
|
|||
|
||||
> **v3.0.0 — architect step extracted from this plugin.** The plan command still auto-discovers `architecture/overview.md` if present, so any compatible producer (architect plugin no longer publicly distributed; the architecture/overview.md slot remains available for any compatible producer) plugs into the same slot. See [CHANGELOG.md](CHANGELOG.md) for migration history.
|
||||
|
||||
> **Trinity context (2026-05-13, informational).** Voyage is Tier 1 (per-task) of a three-tier architecture in active design under the author's private marketplace: Tier 2 `app-creator` (per-app — "what does the app need, what's the next brief?") produces briefs Voyage consumes; Tier 3 `app-factory` (per-portfolio — "which app needs me now?") aggregates state across multiple app-creator instances. Both are pre-implementation and will ship to Forgejo when ready. **Asymmetry is a hard invariant:** Voyage stays unaware of Tier 2/3. Handover 1 (brief format) is the only integration point — any compatible producer can feed Voyage, app-creator is not privileged. Brief-schema changes are therefore breaking changes for downstream consumers, formalized as a public contract in v5.4.
|
||||
> **Trinity context (2026-05-13, informational).** Voyage is Tier 1 (per-task) of a three-tier architecture in active design under the author's private marketplace: Tier 2 `app-creator` (per-app — "what does the app need, what's the next brief?") produces briefs Voyage consumes; Tier 3 `app-factory` (per-portfolio — "which app needs me now?") aggregates state across multiple app-creator instances. Both are pre-implementation and will ship to Forgejo when ready. **Asymmetry is a hard invariant:** Voyage stays unaware of Tier 2/3. Handover 1 (brief format) is the only integration point — any compatible producer can feed Voyage, app-creator is not privileged. Brief-schema changes are therefore breaking changes for downstream consumers, formalized as a public contract in v5.4 — see `docs/HANDOVER-CONTRACTS.md` §Handover 1 (PUBLIC CONTRACT).
|
||||
|
||||
> **Cross-cutting invariant: brief framing must match operator intent (2026-05-15).** Etablert etter residiv. Briefen er pipelinens source of truth; operatørens intent lever i hodet + i memory-filer (`feedback_*`, `project_*`); pipelinen tvinger ikke alignment. Høyere reasoning-kraft polerer feil premiss istedenfor å utfordre det. **Tre lag av forsvar (input-siden), alle BLOCKER ved brudd når v5.5 shipper:** (1) eksplisitt `framing: preserve|refine|replace|new-direction` i brief-frontmatter, `AskUserQuestion`-validert før brief-prosa skrives; (2) memory-alignment check som ny dimensjon i `brief-reviewer` — sammenlikner brief-prosa mot relevante memory-filer og rapporterer eksplisitte motsigelser; (3) obligatorisk `## TL;DR`-seksjon (≤ 5 linjer) øverst i `brief.md`. Implementeres i v5.5 (tracket i `STATE.md` § NESTE STEG når aktivt). Inntil shipping: operatør må manuelt sjekke at briefens framingord ikke motsier intent, særlig etter avvist iterasjon hvor "delta fra forrige" er en farlig default-ankring.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue