Skip to content

rfc(v4): promote RFC-001 / RFC-002 (v1 core) / RFC-004 from Proposed to Accepted#35

Merged
Davincc77 merged 1 commit into
mainfrom
rfc-v4-promote-accepted
May 24, 2026
Merged

rfc(v4): promote RFC-001 / RFC-002 (v1 core) / RFC-004 from Proposed to Accepted#35
Davincc77 merged 1 commit into
mainfrom
rfc-v4-promote-accepted

Conversation

@Davincc77
Copy link
Copy Markdown
Owner

Summary

Applies the V4 Acceptance Checklist (docs/rfcs/ACCEPTANCE_CHECKLIST_V4.md §3 C1–C16) to the three P0 RFCs that gate v4 GA normative work. Promotes:

  • RFC-001 media_profile v1Proposed → Accepted
  • RFC-002 verification_gates + human_vetov1 core only Proposed → Accepted. v2 §8b additions (claim_status, contract_tests, success_criteria, reversibility, blast_radius, verification_artifacts, error_journal[].rule_created, extended claim_sources.records[]) stay Draft per the RFC's status note.
  • RFC-004 Migration & Backward CompatibilityProposed → Accepted

Acceptance is docs-only. No SDK, schema, vector, envelope, AAD, KDF, or crypto change. No npm / PyPI / Zenodo / IANA publish. No tag, no release, no announcement. Production-recommended format remains v3.5.1; preview track remains v4.0.0-preview.1.

This unblocks the v4 GA P0 chantiers in docs/roadmap/ROAD-TO-V4-GA.md §2.1 (P0-1 SPEC normative v4, P0-2 strict JSON Schema, P0-3 Python SDK, P0-4 JS/TS SDK, P0-5 reference migrator, P0-6 strict vectors), per §4 step 3 and §5 step 4.

Acceptance evidence — C1–C16 per RFC

# Criterion RFC-001 RFC-002 v1 core RFC-004
C1 RFC 2119 language explicit (MUST/SHOULD/MAY uppercased, normative vs illustrative distinguished) ✅ §3 forward-compat, §4 decisions, §5 field rules, §6 V-001..V-012, §7, §8 ✅ §3, §4, §6, §7, §8 ✅ §3, §4, §6, §7, §8
C2 No TBD / TODO in normative sections; open decisions in dedicated §, tagged non-blocking ✅ §11 open questions explicit ✅ §10 open questions explicit; §8b explicitly Draft and additive ✅ §12 open decisions explicit
C3 Status block reflects reality (Accepted only after merge) ✅ Block updated in same PR, takes effect on merge ✅ Block updated, v2 §8b stays Draft ✅ Block updated on merge
C4 Frozen surface enumerated in status note ✅ §4 decisions, §5 illustrative schema, §6 V-001..V-012, §9 error codes ✅ Five gate levels (§6), human_veto_policy, claim_sources v1, error_journal, risk_thresholds, preflight_checks, §4 decisions, §9 G-001..G-006 ✅ §3 sub-principles, §4 decisions, §5.4 staged pipeline, §6 reader-vs-writer matrix, §7 legacy/unknown/x_*, §8 rollback
C5 Out-of-scope additions explicit (no silent expansion at Accepted) ✅ §2 out-of-scope, §10 future work, §11 open questions ✅ §8b v2 sections explicitly remain Draft; status note names every v2 field staying Draft ✅ §2 out-of-scope, §12 open decisions
C6 Dependencies on other RFCs stated; depended-on RFCs ≥ Proposed ✅ No hard RFC dep; cross-refs RFC-002 §7, RFC-004 §9 ✅ Envelope bump shared with RFC-001 (§3); §8 ethics interaction noted ✅ §9 references RFC-001, RFC-002, RFC-003 — RFC-001 & RFC-002 v1 core co-promoted in this PR
C7 SCHEMA_INDEX.md consistent ✅ Preview schema table unchanged (no normative schema added); v4 preview track row still accurate. No edit required. ✅ Same. ✅ Same.
C8 docs/rfcs/README.md consistent ✅ Index row updated to Accepted (2026-05-24) ✅ Index row updated to Accepted (v1 core, 2026-05-24) · Draft (v2 §8b) ✅ Index row updated to Accepted (2026-05-24)
C9 CHANGELOG.md docs-only entry added ✅ New 2026-05-24 block under Unreleased ✅ Same entry ✅ Same entry
C10 At least one non-normative example exists or is referenced examples/media_profile-v1.example.json + examples/v4-media-test-pack/ examples/verification_gates-v1.example.json + v4-media-test-pack project-*.verification_gates.json ✅ §5.1 migration_report sample shape (checklist §3.4 explicitly accepts this for RFC-004)
C11 Open decisions section preserved verbatim ✅ §11 unchanged ✅ §10 unchanged ✅ §12 unchanged
C12 No locked_* change ✅ Out of scope; §8.8 keeps Soul Handoff locked_* untouched ✅ §8 explicitly forbids using gates to weaken ethics.locked_actions ✅ §4 decision #10 escalates to require-owner for consent_change / identity_assertion; no locked_* mutation
C13 No unknown-field-preservation regression ✅ V-010 mandates verbatim preservation of x_* ✅ G-005 mandates round-trip preservation of x_* action classes; §3 forward-compat requires ignore (not delete) ✅ §3.1 lossless-by-default, §4 decision #5 ("Unknown fields are kept, not stripped"), §7 verbatim preservation
C14 No publish trigger (no workflow / tag / CI step that publishes) ✅ Docs-only diff; no workflow change ✅ Same ✅ Same
C15 Maintainer sign-off requested ⏳ Awaiting Accept comment from @Davincc77 referencing this checklist ⏳ Same ⏳ Same
C16 CI is green ⏳ Awaiting test-vectors + verify-npm-preview on the head commit ⏳ Same ⏳ Same

Substance verdict (C1–C14): ✅ all RFCs pass on substance.
Procedural items (C15, C16): awaiting maintainer sign-off and CI run on the head commit — both are the responsibility of the reviewer / CI, not the PR author.

Files changed (6, docs-only)

  • docs/rfcs/RFC-001-media-profile-v1.md — status block Proposed → Accepted + status note rewritten to point at the acceptance checklist.
  • docs/rfcs/RFC-002-verification-gates.md — status block updated to Accepted (v1 core) · Draft (v2 additions); status note rewritten; v2 §8b explicitly stays Draft.
  • docs/rfcs/RFC-004-migration-backward-compatibility.md — status block Proposed → Accepted + status note rewritten.
  • docs/rfcs/README.md — RFC index table updated (RFC-001, RFC-002 v1 core, RFC-004 → Accepted 2026-05-24); promotion note updated.
  • CHANGELOG.md — new 2026-05-24 — RFC-001 / RFC-002 (v1 core) / RFC-004 promoted Proposed → Accepted block under Unreleased — docs-only.
  • docs/roadmap/ROAD-TO-V4-GA.md — §0 RFC-status bullet updated; §5 next-PR sequence updated (steps 1–3 now done, step 4 SPEC normative is unblocked).

What does NOT change

  • ❌ No schema file touched (schema/, schemas/).
  • ❌ No SDK code touched (packages/pypi/klickd, packages/@klickd/core).
  • ❌ No test vector touched (tests/).
  • ❌ No envelope / AAD / KDF / crypto change.
  • ❌ No package version bump.
  • ❌ No npm / PyPI / Zenodo / IANA action.
  • ❌ No tag, no release, no GitHub Release.
  • ❌ No public announcement.
  • v3.5.1 remains the production-recommended format.
  • v4.0.0-preview.1 remains the only preview release with permissive schemas.
  • RFC-003 stays Draft (pending P1-3 benchmark execution).
  • RFC-002 §8b v2 additions stay Draft (may still iterate).
  • RFC-006 / RFC-007 / RFC-008 stay Draft (post-GA).

Test plan

  • CI test-vectors green on head commit (no vector changed; should be a trivial pass).
  • CI verify-npm-preview green on head commit (no package change; trivial pass).
  • Reviewer reads the C1–C16 evidence table above and either marks each box ✅ or blocks merge with a specific failing item.
  • Reviewer confirms the diff touches only the 6 docs files listed above and no schema / SDK / vector / workflow file.
  • @Davincc77 leaves an explicit Accept comment referencing docs/rfcs/ACCEPTANCE_CHECKLIST_V4.md (C15).

Merge recommendation

Merge once C15 (maintainer Accept comment) and C16 (CI green) are satisfied. All other 14 criteria pass on substance with evidence in the table above.

🤖 Generated with Claude Code

…to Accepted

Applies the V4 Acceptance Checklist (docs/rfcs/ACCEPTANCE_CHECKLIST_V4.md §3
C1-C16) to the three P0 RFCs that gate v4 GA normative work. Acceptance is
docs-only: no SDK, schema, vector, envelope, AAD, KDF, or crypto change; no
npm / PyPI / Zenodo / IANA publish; no tag, no release, no announcement.

Promoted to Accepted:
- RFC-001 media_profile v1 (frozen surface: §4 decisions, §5 illustrative
  schema, §6 V-001..V-012, §9 error codes)
- RFC-002 verification_gates + human_veto, v1 CORE ONLY (five gate levels,
  human_veto_policy, claim_sources v1, error_journal, risk_thresholds,
  preflight_checks, §4 decisions, §6 levels, §9 G-001..G-006). v2 §8b
  additions stay Draft (claim_status, contract_tests, success_criteria,
  reversibility, blast_radius, verification_artifacts,
  error_journal[].rule_created, extended claim_sources.records[]).
- RFC-004 Migration & Backward Compatibility "Never break the soul" (§3
  sub-principles, §4 decisions, §5.4 staged pipeline, §6 reader-vs-writer
  matrix, §7 legacy/unknown/x_* rules, §8 rollback model)

Unblocks the v4 GA P0 chantiers (P0-1 SPEC normative v4, P0-2 strict JSON
Schema, P0-3 Python SDK, P0-4 JS/TS SDK, P0-5 reference migrator, P0-6
strict vectors) per docs/roadmap/ROAD-TO-V4-GA.md §4 step 3 and §5 step 4.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@Davincc77
Copy link
Copy Markdown
Owner Author

Audit indépendant — C1–C16 vérifiés ($(date -u +%Y-%m-%d))

Audit re-passé indépendamment sur la branche rfc-v4-promote-accepted contre docs/rfcs/ACCEPTANCE_CHECKLIST_V4.md §3. Aucune divergence trouvée avec la table d'évidence du body de PR.

Substance (C1–C14) — ✅ verts pour les trois RFCs

  • C1 (RFC 2119) — RFC-001 §3/§4/§5/§6, RFC-002 §3/§4/§6, RFC-004 §3/§4/§6 contiennent des MUST/SHOULD/MAY explicites et distinguent normatif vs illustratif.
  • C2 (pas de TBD/TODO)grep -rn 'TBD\|TODO\|FIXME' sur docs/rfcs/ ne renvoie que l'occurrence pédagogique dans le checklist lui-même. Sections "Open questions / Open decisions" présentes et marquées non-bloquantes (§11 RFC-001, §10 RFC-002, §12 RFC-004).
  • C3 — Status blocks mis à jour en cohérence avec la PR (effet au merge).
  • C4 (surface gelée énumérée) — chaque status note nomme explicitement les sections frozen.
  • C5 (out-of-scope explicite) — RFC-002 §8b v2 reste Draft, RFC-001 §10 future work, RFC-004 §2 out-of-scope.
  • C6 (dépendances) — envelope klickd_version: "4.0" partagé RFC-001/002 ; RFC-004 §9 référence RFC-001/002 (co-promues dans cette PR).
  • C7 (SCHEMA_INDEX.md) — vérifié : SCHEMA_INDEX.md documente déjà preview = non-normatif / permissif ; aucune mise à jour requise puisque Accepted ne change pas la nature schéma (seul Implemented le ferait via P0-2).
  • C8 (docs/rfcs/README.md) — table d'index correctement mise à jour.
  • C9 (CHANGELOG.md) — entrée 2026-05-24 sous Unreleased — docs-only présente.
  • C10 (exemples non-normatifs) — fichiers présents : docs/rfcs/examples/media_profile-v1.example.json, verification_gates-v1.example.json, v4-media-test-pack/. Pour RFC-004, §5.1 migration_report shape — autorisé par le checklist §3.4 ("For RFC-004, 'example' = a sample migration_report shape, not a real migrated file.").
  • C11 (open decisions préservées) — diff confirme : §11 RFC-001 / §10 RFC-002 / §12 RFC-004 inchangées.
  • C12 (pas de locked_*)grep -rn 'locked_' ne renvoie que des références descriptives (RFC-002 §8 interdit d'affaiblir ethics.locked_actions ; RFC-004 §5.3 mentionne ethics.locked_actions dans une heuristique de détection de version). Aucune mutation.
  • C13 (préservation champs inconnus) — RFC-001 V-010, RFC-002 G-005, RFC-004 §3.1 + §4 décision docs(rfc): RFC-002 v2 draft — claim grounding + contract tests (v4-B, additive) #5 + §7 — toutes intactes.
  • C14 (pas de publish trigger) — diff inspecté : aucun fichier .github/workflows/, aucun package.json/pyproject.toml/.zenodo.json/CITATION.cff touché.

Procédural (C15–C16)

  • C16 (CI verte) — ✅ les trois checks (Python cross-impl, JS hash-wasm Argon2id, @klickd/core integrity) passent sur le head commit.
  • C15 (sign-off mainteneur) — ⏳ uniquement Vince peut cocher cette case. Un agent autonome ne peut pas auto-valider une promotion Proposed → Accepted (locked rule § gouvernance).

Verdict

PR docs-only, substance prête au merge. Pas de SDK / schéma / vector / publish / tag / version bump. Le seul item restant est l'Accept explicite de @Davincc77 référençant le checklist (C15).

Prochaine étape recommandée (post-merge)

Une fois cette PR mergée (sur décision Vince), démarrer P0-1 — SPEC normative v4 (docs/roadmap/ROAD-TO-V4-GA.md §2.1) via une nouvelle PR docs-first : « spec(v4): begin promoting §33 preview wording toward normative ». Garder la règle §3.10 "Doc d'abord" — la PR de doc précède le code.

— Audit autonome (relecture indépendante, aucune modification proposée).

@Davincc77 Davincc77 merged commit 891e758 into main May 24, 2026
3 checks passed
@Davincc77 Davincc77 deleted the rfc-v4-promote-accepted branch May 24, 2026 16:17
Davincc77 added a commit that referenced this pull request May 24, 2026
…cope corrections (#36)

Intake from a UX/DX comparative review (Mem0, Letta .af, Zep, LangGraph,
AGENTS.md, Cursor, Obsidian, Logseq, 1Password, Bitwarden, KeePassXC,
ComfyUI workflow JSON) summarised into actionable backlog items only —
the source report is not copied into the repo.

Changes:
- ROAD-TO-V4-GA.md §0: explicit V4 scope corrections (maintainer
  validation 2026-05-24) — generic continuity (media/project) is V4 via
  RFC-001; baseline gaming.klickd is V4 conditional on optional +
  registry-based; 3D / spatial / CAD / printing is V5 track and does not
  block v4.0.0.
- ROAD-TO-V4-GA.md §2.4: new UX/DX-driven backlog with R4- IDs and
  P0/P1/P2 priorities — user.klickd 7-step wizard with reload
  verification (R4-P0-1), KLICKD_E_* i18n actionable error messages
  (R4-P0-2), 5 downloadable persona example profiles (R4-P0-3), formal
  deprecation policy (R4-P0-4), minimal media.klickd (R4-P1-1), minimal
  project.klickd + AGENTS.md export (R4-P1-2), published JSON Schema
  v4 + offline validator (R4-P1-3), optional registry-based
  gaming.klickd baseline (R4-P1-4), QR/deeplink onboarding subject to
  zero-server architecture review (R4-P1-5/R4-P2-1), progressive
  compression preview (R4-P2-2), preferred_model routing hint (R4-P2-3),
  shared_context family UI (R4-P2-4), IANA MIME (R4-P2-5).
- ROAD-TO-V4-GA.md §2.4 R4-Anti-Patterns: opposable list A1-A6 — JSON
  wall, silent migration, hidden cloud coupling, schema inflation,
  spec-first without examples, non-actionable errors. Every v4+ PR
  must justify it does not introduce these.
- ROAD-TO-V4-GA.md §5: status updated post-merge PR #35 (SHA 891e758);
  next recommended PR is the SPEC normative v4 promotion (P0-1).
- New V4-UX-DX-RESEARCH-NOTES.md: intake summary linking back to §2.4,
  documenting the comparative sources, decisions, anti-patterns, and
  scope corrections. Non-normative, docs-only.

Strict governance: no SPEC / schema / SDK / vector change; no
publish (npm / PyPI / Zenodo / IANA); no tag; no locked_* field
touched; no destructive change.

Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants