OpenWOP openwop.dev

This file is the canonical record of who has merge authority on github.com/openwop/openwop and what's expected of them. The maintainer set drives the decision rules in GOVERNANCE.md and the RFC process in RFCS/.

Recruitment of additional maintainers is out of band: this file documents the criteria and the process. It does not commit to a hiring schedule. The vendor-neutral-org migration tripwire in ROADMAP.md activates when this file lists at least one maintainer not affiliated with the original steward.

Current maintainers

NameGitHubAffiliationRoleActive since
David Tufts@davidscotttuftsOpenWOPLead maintainer2026-04

The lead maintainer is the tiebreaker for unresolved disagreement (per GOVERNANCE.md §"Decision making"). The lead-maintainer role is transitional and is replaced by a steering-committee vote once the path-to-working-group conditions in GOVERNANCE.md are met.

Maintainer expectations

A maintainer is expected to:

1. Respond. Acknowledge issues and pull requests in their area within five business days. Acknowledgment may be a substantive reply or a "I'll get to this by ~date" — silence is the failure mode this rule exists to prevent. 2. Gate quality. Merge only changes that pass the CI gates listed in CONTRIBUTING.md §"The CI gate." A failing CI run is never a "fix-forward" rationale on main. 3. Follow the spec change process. Per GOVERNANCE.md §"Spec change process" — editorial / non-normative-addition / normative-addition / breaking each have their own decision rule and comment window. RFCs follow RFCS/0001-rfc-process.md. 4. Disclose conflicts. Any commercial relationship, funding source, or employment that could bias a decision is disclosed in the PR or RFC thread. Recusal is the default for direct conflicts. 5. Honor compatibility. Apply COMPATIBILITY.md strictly. v1.x stays additive-only by default; safety/security breaks follow the §3 process; v2 is the parallel track for everything else. 6. Update governance docs in lockstep. Changes to maintainer status (additions, removals, role changes) update this file via PR. Changes to GOVERNANCE.md decision rules go through the RFC process. 7. Uphold registry policy. Maintainers acting as registry approvers apply the submission, trust-tier, and signing rules in RFCS/0043-registry-and-extension-policy.md §B (indexed at docs/governance/registry-policy.md) — including the registry-root-key rotation dual-control requirement (§B.4).

Promotion process

A contributor becomes a maintainer through these steps:

1. Sustained contribution. Six months of substantive review or PR activity on the openwop corpus. "Substantive" means non-trivial spec / schema / SDK / conformance contributions, not just typo fixes. 2. Nomination. An existing maintainer opens a PR adding the contributor to this file. The PR explains why the contributor meets the criteria. 3. Lazy-consensus window. Seven calendar days during which any existing maintainer may object. Substantive objections move the proposal to a discussion in the PR thread; unresolved objections are settled by lead-maintainer tiebreaker per GOVERNANCE.md. 4. Onboarding. The new maintainer is added to repository admin, CODEOWNERS for their declared area, the security advisory team (SECURITY.md), and announced in CHANGELOG.md under ### Governance.

A contributor may decline maintainer nomination at any time without explanation.

Stepping down

A maintainer may step down by opening a PR that:

  • Moves their entry from "Current maintainers" to "Past maintainers" below.
  • Lists their last active month.
  • Optionally hands off ownership of any RFCs or open PRs in their queue.

Stepping down is acknowledged by lazy consensus (the PR merges with one approval). Past maintainers are not silently removed — the table preserves the history.

Removal for cause

A maintainer may be removed by lazy consensus of the remaining maintainers for:

  • Sustained inactivity. No substantive activity for six months, with no advance notice.
  • Code-of-conduct violation. Per CODE_OF_CONDUCT.md. Removal is by majority of remaining maintainers; the lead maintainer recuses if the violation involves them.
  • Conflict-of-interest violation. Failure to disclose a conflict that materially affected a decision. Removal follows the code-of-conduct process.

A removed maintainer's entry moves to "Past maintainers" with a brief note on the removal reason. The note is factual; it doesn't repeat any private investigation detail.

Affiliation policy

Maintainers list their primary affiliation in the table. The affiliation field exists so:

  • Cross-organization decision rules (per GOVERNANCE.md §"Decision making" — required for breaking changes once multiple orgs are represented) can be evaluated.
  • External implementers can assess governance neutrality.
  • The vendor-neutral-org migration tripwire in ROADMAP.md can be checked mechanically.

A maintainer who changes affiliation updates this file in the same PR. Multiple affiliations may be listed if they're material to recusal decisions.

Past maintainers

_None yet._

Recruitment log

The vendor-neutral-org migration tripwire in ROADMAP.md activates when this file lists ≥1 maintainer not affiliated with OpenWOP. Recruitment is out-of-band: this section tracks attempts (and their outcomes) so the project's recruitment posture is auditable, but it doesn't commit to a hiring schedule.

External host implementations

Recruitment targets per docs/recruitment/external-host.md (drafts ready 2026-05-11; freshness re-verified 2026-08-13 — content DID drift and was corrected: three quoted conformance pass rates came from a suite ~40 versions old and now point at dated, re-derivable measurements instead. Outreach still not sent — but as of 2026-08-13 it is sendable: external-host.md carries zero unfilled placeholders, the four scheduling slots that required a Calendly link the steward may not have are now plain "name two or three windows" asks, and every quoted figure points at a dated measurement. Sending is the remaining act and it is the tripwire for RFC 0035 and RFC 0038 both — neither is blocked on the world having declined, only on nobody having asked).

TargetOutreach sentFirst replyStatusNotes
LangChain / LangGraph adapterDraftedTier 1; cites README's six-borrowed-idioms section. See docs/recruitment/external-host.md §"Tier 1".
RestateDraftedTier 2; durable-execution-runtime fit.
DBOSDraftedTier 3; Postgres-native transactional workflows.
InngestDraftedTier 4; TS-native event-driven runtime.

When a target replies positively + commits to a draft adapter PR within 30 days, move their row's status to in-progress. When their host appears on INTEROP-MATRIX.md, status → live.

External pack authors

Recruitment targets per docs/recruitment/external-pack-author.md (drafts ready 2026-05-11; freshness re-verified 2026-08-13 — no numeric drift found in this file; outreach still not sent). Initial Tier-1 shortlist below; the recruitment doc's criteria gate adding more.

TargetOutreach sentFirst replyStatusNotes
Linear (Issues / Cycles API → vendor.linear.workflows)Pending outreachTier 1: dev-tools vendor with workflow-shaped public API. Best fit: Linear's GraphQL issueCreate + cycleCreate mutations as openwop nodes.
Sourcegraph (Code Search / Cody → vendor.sourcegraph.code-search)Pending outreachTier 1: code-intelligence vendor; an existing MCP server can be wrapped as an openwop pack for the workflow surface.
Vercel (Build / Edge Functions → vendor.vercel.deploy)Pending outreachTier 1: deploy-on-workflow-event is a common HITL pattern.
Resend (transactional email → vendor.resend.send)Pending outreachTier 1: smallest possible pack scope (1 node, 1 envelope); good first-pack proof point.
Stripe (payment workflows → vendor.stripe.charge / vendor.stripe.refund)Pending outreachTier 1: payment-with-HITL-approval is the canonical openwop use case from interrupt.md §"approval".

When a target replies, fill in Outreach sent + First reply, advance Status through in-discussionpack-draftedpublished. When their pack lands on packs.openwop.dev, status → live.

Follow-up cadence: Day +5 / +12 / +28 nudges per docs/recruitment/follow-up-cadence.md. After Day +28 with no reply, the lead is cold — re-contact only on a real trigger (new release, new endorsement, new evidence) at Day +90.

Governance migration trigger

When the first non-steward maintainer is added to the "Current maintainers" table above:

1. Add the recruitment log row that produced them. 2. Open the vendor-neutral-org migration RFC per RFCS/0001-rfc-process.md (Phase 4 T4.1 in docs/PROTOCOL-GAP-CLOSURE-PLAN.md).

Bootstrap-phase RFC waivers

**⚠️ The grant below authorises less than has been done under it (audited 2026-08-20 — see

docs/WAIVER-AUDIT-2026-08-20.md).** It permits

additive RFCs, Draft → Active. At least five RFCs — 0147, 0148, 0149, 0150, 0156 — are

non-additive and were promoted to Accepted. RFC 0147 additionally forbids waiving

the comment window for RFCs touching identity, authorization, idempotency, replay or

certification (§A.6), and was itself waived while affecting four of them. Reconciling the

text with the practice is on the maintainer's desk; nothing has been reversed on this basis.

Completeness is now gated. scripts/check-waiver-ledger.mjs (step 6 of openwop:check)

fails if an RFC the tree shows as waived has no row here. The ledger drifted to 26 rows

against 41 derived before that gate existed.

Per CONTRIBUTING.md §"Bootstrap-phase notes," additive RFCs MAY be promoted Draft → Active by steward decision when the comment window would only serve as a delay against zero external reviewers. This section tracks every RFC that has used the waiver so future maintainers can audit the velocity of bootstrap-phase decisions. The waiver is retired automatically when the first non-steward maintainer joins.

RFCTitleDraft dateActive dateComment-window durationWaiver rationale
0009Production-Profile Conformance2026-05-112026-05-11< 1 dayAdditive; INTEROP-MATRIX Postgres row already claimed production-profile.md without mechanical evidence — closing the gap was higher-value than the 7-day delay
0010Auth-Profile Conformance2026-05-112026-05-12< 1 dayAdditive; consolidates four production-auth profile claims from auth-profiles.md (FINAL v1) into mechanical conformance — same posture as RFC 0009
0011Auth-Scoped Discovery Advertisement2026-05-122026-05-12< 1 dayAdditive; closes ROADMAP Track 2 "next add auth-scoped discovery variants when a host advertises them" by formalizing capabilities.discovery.authScoped as a capability flag and adding the three conformance subtests called out in capabilities-change-detection.md §"Conformance expectations"
0012Memory Compaction Profile2026-05-132026-05-15< 2 daysAdditive; closes the SR-1 carry-forward gap for host-managed memory compaction and shipped with Postgres reference behavior plus conformance scenarios before external reviewers existed
0022core.dispatch + core.subWorkflow runtime variable mapping2026-05-182026-05-18< 1 dayAdditive; closes the symmetric input-mapping gap on both workflow-invocation primitives, identified via the MyndHyve Launch Studio production rebuild. Ships with schema deltas (dispatch-config.schema.json + capabilities.schema.json), spec prose update (node-packs.md §"core.subWorkflow contract"), and four conformance scenarios capability-gated on agents.dispatchMapping + subWorkflow.inputMapping. Promoted to Accepted same-day (2026-05-18) after the Postgres reference host implemented both §A + §B end-to-end and all four primary conformance scenarios (HVMAP-1a/1b/1c/2) graduated from it.todo() to live behavioral tests against the host (the mockDispatchPlan supervisor-mock extension at §"Unresolved questions" #6 landed alongside to unblock the dispatch trio).
0042Experimental capability tier2026-05-222026-05-297 days elapsed (window waived, not run)Additive tier/experimentalUntil vocabulary; steward acceptance after the §A/§B/§D wire surface reconciled into capabilities.md.
0050SAML / SCIM enterprise identity profiles2026-05-242026-06-018 days elapsed (window waived, not run)Additive auth profiles; the full auth-profiles.md SAML/SCIM/LDAP wire surface had already landed on main before the flip.
0065Workflow node primary-output annotation2026-05-252026-05-29< 4 daysAdditive single optional advisory field (outputRole); wire surface landed atomically with the flip.
0066x-openwop-form vendor extension2026-05-252026-05-29< 4 daysAdditive UX-hint vocabulary on pack configSchema; normative surface landed atomically with the flip.
0067Provider-catalog conventions2026-05-262026-05-29< 3 daysAdditive aiProviders.authModes + provider-name vocabulary; surface already on main, no steward prerequisite owed.
0068Memory consolidation + standing commitments2026-05-262026-05-29< 3 daysAdditive capabilities + content-free events; the gated scenarios shipped in @openwop/openwop-conformance@1.14.0 as the steward prerequisite.
0071Artifact-type packs + chat card packs (Phase 1)2026-05-262026-05-26< 1 dayAdditive pack kinds; architect pass resolved all six original design questions and the Phase-1 wire surface landed atomically.
0072Agent inventory + dispatch normative surface2026-05-262026-05-29< 3 daysAdditive read surface; full §A wire surface landed atomically on main (same-day Draft → Active → Accepted).
0076Pack runtime requirements + host safe-fetch2026-05-282026-05-29< 1 dayAdditive; flipped after a MyndHyve (second-host) wire-shape review resolved Q1–Q4; §A surface + conformance landed with the flip.
0077Agent run lifecycle + live manifest dispatch2026-05-292026-05-29< 1 dayAdditive; all five Unresolved questions resolved via MyndHyve T4 co-design (architect-validated) before the flip.
0078Portable tool catalog + tool session contract2026-05-292026-05-30< 1 dayAdditive; gated scenarios authored + published in @openwop/openwop-conformance@1.14.0; MyndHyve wire-shape review preceded the flip.
0079Credential provenance + egress policy2026-05-292026-05-30< 1 dayAdditive; same batch + same review posture as RFC 0078 (egress-audience-binding keystone published in 1.14.0).
0080Agent memory capability reconciliation2026-05-292026-05-30< 1 dayAdditive reconciliation of the memory capability model; all 4 Unresolved questions resolved as proposed after MyndHyve wire-shape review.
0083Durable trigger + channel bridge profile2026-05-292026-05-30< 1 dayAdditive composition of RFC 0052/0053/0017/0040; flipped after MyndHyve wire-shape review.
0084Budget, quota, and cost policy2026-05-292026-05-30< 1 dayAdditive; the gated budget-enforcement scenario published in @openwop/openwop-conformance@1.16.0 as the steward prerequisite.
0085openwop-agent-platform meta-profile2026-05-292026-05-30< 1 dayAdditive operational annex; the capstone, flipped LAST in the agent-platform arc after MyndHyve wire-shape review (all hard predicate terms ≥ Active).
0090Agent verifier turn + convergence criteria2026-06-072026-06-07< 1 dayAdditive (agent.verified event + verifier capability + executionModel.version 6); steward wire-shape review; verifier-no-content-leak invariant + always-on shape test landed with the flip.
0091Multimodal perception input2026-06-072026-06-07< 1 dayAdditive (ContentPart[] widening gated on aiProviders.input.modalities[]); steward wire-shape review during the bootstrap phase.
0092Agent-level capability requirements2026-06-072026-06-07< 1 dayAdditive (AgentManifest.requiresCapabilities[] reusing the RFC 0072 degraded[] projection); steward wire-shape review during the bootstrap phase.
0093Protocol hardening (webhook delivery egress, interrupt-token lifecycle, retryable-response caching, approval-gate timeout/override)2026-06-112026-06-11< 1 daySecurity/correctness pins from the 2026-06-11 corpus review; bootstrap-phase waiver.
0094Wire-shape reconciliation (schema/prose defect repairs + schema-closure policy)2026-06-112026-06-11< 1 dayDefect repairs of self-contradictory published artifacts from the 2026-06-11 corpus review; bootstrap-phase waiver.
0163SCIM ⟷ SAML subject-linking hardening (declarable link-key class + same-IdP trust-root MUST)2026-09-012026-09-01< 1 dayAdditive; binds only hosts already opting into RFC 0159 subjectLinking:true, of which none exist in production discovery (INTEROP-MATRIX; MyndHyve live doc has no auth block; openwop-app advertises the profiles only behind seams), so a window would delay against zero external reviewers. Three pre-lock amendments were made by an architect pass rather than by a comment window: enum collapsed to classes, schema conditional added, trust-root representation pinned — each recorded in the RFC's Updated field and Alternatives 6–7. Same rule RFC 0159 and RFC 0050 used.
0164Mandatory SCIM ⟷ SAML subject linking for combined hosts (RFC 0159 UQ1 / RFC 0163 UQ1 resolved)2026-09-022026-09-02< 1 dayAdditive by an empirical argument recorded in the RFC: the §4 default-on row's harm set (hosts that advertise both profiles without the flag) is empty — INTEROP-MATRIX lists none, MyndHyve's live discovery has no auth block, openwop-app advertises the profiles only behind seams and already derives the flag. Same lineage and same rule as the RFC 0159 and 0163 waivers; the RFC 0147 §A.6 identity clause is named in the RFC header rather than hidden. Counterfactual recorded: safety-fix + 90 days had any combined host existed.
0165v2 preparation — additive wire shapes (protocolVersions[], the Subject record, header dual emission)2026-09-022026-09-02< 1 dayAdditive per COMPATIBILITY §2.1 — every field optional, no MUST relaxed; window waived under GOVERNANCE §"Sole-steward operation" (one maintainer, both hosts steward-owned). RFC 0147 §A.6 (identity RFCs complete the full window) is overridden and named in the RFC header — the 0159/0163/0164 precedent, stated rather than performed. Evidence gate not waived: Active → Accepted requires both host legs.
0166Register dispositions, terminal states, witness classes (process)2026-09-022026-09-02< 1 dayProcess/additive (governance amendment carried by an RFC because it adds an RFC 0001 status state); window waived under GOVERNANCE §"Sole-steward operation". Evidence gate: Active → Accepted requires the three corpus gates green AND the mechanical witness classification to have started being reviewed (ratchets moved).
0167OpenWOP v2 — the program RFC (umbrella for children 0168–0178)2026-09-032026-09-03< 1 daybreaking (the v2 major) — the RFC 0001 §4 30-day window waived under GOVERNANCE §"Sole-steward operation" (one maintainer, one organization, both matrix hosts steward-owned, no external adopter to wait for); the §5 cross-org note carried in the header; RFC 0147 §A.6 overridden and named (this RFC touches identity, authorization, isolation, idempotency, replay, external effects and certification — all seven). Evidence gate not waived: Accepted only at the v2.0 cut on the §G.2 predicates; every child needs a witnessed bundle. Adversarial /architect pass recorded in place of external review.
0168v2 evidence and conformance (RFC 0167 child C.1)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent (the bundle is the artifact every security claim rests on). Evidence gate not waived: Accepted at Phase 3 on suite 2.0.0's seven self-tests and openwop-app's verifying v2-rc bundle.
0169v2 discovery and capabilities (RFC 0167 child C.2)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent. Evidence gate not waived: Accepted at Phase 3 on the five v2 scenarios. Adversarial /architect pass recorded in the RFC.
0172v2 versioning and release (RFC 0167 child C.5)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent. Evidence gate not waived: Accepted at Phase 3 on the dual-stack scenario from both majors on openwop-app. Adversarial /architect pass recorded in the RFC.
0174v2 governance (RFC 0167 child C.7)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent; this RFC amends the decision rule, and the two-approval requirement in GOVERNANCE §"Amendments" is waived and recorded here under the same paragraph (approval-count waived) — the first RFC tested by its own check-waiver-authority.mjs. Evidence gate not waived: Accepted at Phase 3 on the corpus gates.
0178v2 assurance registers and deprecation machinery (RFC 0167 child C.11)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent. Evidence gate not waived: Accepted at Phase 3 on the annotation generator and removal-date gate.
0179Root preferredVersion (v1.x additive half of RFC 0172 §A.1)2026-09-032026-09-03< 1 dayadditive; 7-day window waived under GOVERNANCE §"Sole-steward operation"; no RFC 0147 §A.6 surface. Evidence gate not waived: Accepted when openwop-app advertises it and suite 2.0.0's dual-stack-negotiation reads it.
0180Vendor-org registration procedure for spec/v2/declaration.json extensions2026-09-062026-09-06< 1 dayadditive (COMPATIBILITY.md §2.1); window waived under GOVERNANCE §"Sole-steward operation". Process-only: no schema, field, MUST, or error-code change — declaration.schema.json already pinned the entry shape and key pattern. Evidence gate not waived, and deliberately not faked: §Conformance records A.1 as negative-existence (a host reading a private registry that happens to agree is indistinguishable on the wire) rather than minting a scenario that would pass vacuously; A.5 is already witnessed by the two legs of v2-unmapped-type-refused. Filed because the registry shipped at 2.0.0 admitting one reserved org with no procedure for a second — found from outside by a live host whose 31 types were correctly, and permanently, refused.
0181Vendor path namespace — /host/&lt;org&gt;/… for host-proprietary operations under major 22026-09-102026-09-10< 1 dayadditive (COMPATIBILITY.md §2.1); window waived under GOVERNANCE §"Sole-steward operation". v2 prose (versioning.md §5 decision, §1.4 scoping) plus declaration rows (two org registrations under RFC 0180 A.2, two reserved segments); no field, MUST relaxation, error-code or v1 change; no RFC 0147 §A.6 surface. Evidence gate not waived: Accepted when a tier-1 host serves /host/&lt;org&gt;/… for its registered org and advertises the mount under extensions.&lt;org&gt;; the suite deliberately never measures a vendor path and §Conformance says so. Filed the day two production hosts measured the gap versioning.md §5 had recorded as undecided (1,062 and 11 proprietary roots; one façade already answering under /host/ by accident).
0182listRuns — a portable, tenant-scoped, paginated run list under major 2 (GET /runs, family runList)2026-09-112026-09-11< 1 dayadditive (COMPATIBILITY.md §2.1); window waived under GOVERNANCE §"Sole-steward operation". One new OPTIONAL operation gated on a new core family; response reuses RunSnapshot; no existing field, MUST, error-code or v1 change; no RFC 0147 §A.6 surface (tenant scoping is enforced by identity §5's existing bound-id rule, not a new authorization primitive). Evidence gate not waived: Accepted when the reference host (tier-1) or a tier-2 host advertises runList and passes v2-run-list; the scenario ships in the same release (suite 2.1.0). Filed after RFC 0181 §Unresolved-1 was corrected: the operation was never in v1, and the interop gap (every UI grows its own list) is real.
0170v2 identity (RFC 0167 child C.3)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent (identity and authorization are this child's whole surface). Evidence gate not waived: Accepted at Phase 3 on the nine v2 scenarios with the seam-gated legs recorded as such.
0171v2 wire envelope (RFC 0167 child C.4)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent (replay and external effects through the event log and the error registry). Evidence gate not waived: Accepted at Phase 3 on the ten v2 scenarios; the fork-a-v1-run leg on both matrix hosts.
0173v2 security defaults (RFC 0167 child C.6)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent (authorization, isolation, replay, external effects). Evidence gate not waived: Accepted at Phase 3 on the nine v2 scenarios with the effect-seam manifest as the replay witness.
0175v2 transports and embedded protocols (RFC 0167 child C.8)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent (identity and authorization at the peer boundary). Evidence gate not waived: Accepted at Phase 3 on the eight v2 scenarios and the interop threat model's existence.
0176v2 persisted data and coexistence (RFC 0167 child C.9)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent (replay and fork read persisted identity and effect records). Evidence gate not waived: Accepted at Phase 3 on the seven v2 scenarios with the three consumers pinned.
0177v2 registry, packs, and the extension tail (RFC 0167 child C.10)2026-09-032026-09-03< 1 daybreaking (v2) under the RFC 0167 program; window waived under GOVERNANCE §"Sole-steward operation"; RFC 0147 §A.6 override inherited from and named in the parent (pack trust path and signing). Evidence gate not waived: Accepted at Phase 3 on the seven v2 scenarios and a green registry-check.sh over registry/v2/.

When the count gets uncomfortable (e.g., > 5 waivers within a 30-day window, or > 15 total before the first non-steward maintainer joins), that's a signal to slow down and stage at least one RFC through a real 7-day window even without external reviewers — exercising the process is itself a credibility surface.

Tripwire status (2026-06-11): crossed. This ledger now records 26 waivers with no non-steward maintainer yet — past the > 15-total threshold above (and the 2026-05-25 – 2026-05-30 cluster alone exceeded the 5-in-30-days signal). Per the policy this is the signal to slow down: the slow-down response should be evaluated now, and at least one upcoming RFC should be staged through a real 7-day comment window even without external reviewers. The 2026-06-11 backfill itself is part of the response — the ledger had silently lagged at 5 rows while ≥ 19 RFCs carried "comment window waived" language; every discoverable waiver is now recorded. The tripwire is deliberately retained, not raised.

Waivers not annotated at the time (added 2026-08-20)

These twenty-one RFCs used the waiver but were never entered above. The rationale column is absent rather than reconstructed — nobody recorded why at the time, and a plausible after-the-fact reconstruction would be worse than an honest gap: it would read as a decision that was made. What is below is derived from each RFC's own header.

RFCTitleCreatedFirst promotionStatus
0043Registry and extension-policy2026-05-222026-07-07Accepted
0101Multi-party group conversation (shared transcript, speaker attribution)2026-06-142026-06-22Accepted
0103Localized Content Surface — durable, authored, structured localized content (p2026-06-172026-06-17Accepted
0105Speech synthesis adapter (ctx.callSpeechSynthesizer) — text-to-speech as a f2026-06-202026-06-21Accepted
0106?
0108Self-hosted / OpenAI-compatible provider class (aiProviders.selfHosted[])2026-06-232026-06-24Accepted
0109Conversation-turn model provenance (agent.model)2026-06-242026-06-24Accepted
0110?
0121?
0124?
0147Protocol Integrity and Standards-Readiness Program2026-08-112026-08-16Accepted
0148Non-Vacuous Conformance and Certification Evidence2026-08-112026-08-16Accepted
0149Machine-Contract and Version Reconciliation2026-08-112026-08-16Accepted
0150Effect Identity, Replay, and Split-Brain Safety2026-08-112026-08-12Accepted
0151Compensation and Partial-Failure Profile2026-08-112026-08-17Accepted
0152A2A 1.0 Versioned Composition2026-08-112026-08-16Accepted
0153MCP 2026-07-28 Versioned Composition2026-08-112026-08-16Accepted
0154Workload Identity, Delegation, Telemetry, and Provenance Assurance2026-08-112026-08-16Accepted
0155Core Profile and Extension Discipline2026-08-112026-08-16Accepted
0156Governance, Independent Assurance, and Claims Policy2026-08-112026-08-12Accepted
0157Chain fragments carry compensation (RFC 0013 revision × RFC 0151 §B)2026-08-162026-08-16Accepted

Anyone with first-hand knowledge of one of these decisions should move its row into the curated table above with the real rationale.

Spec version bump runbook

The repo currently hosts spec/v1/ rendered at /spec/v1/. Under v1.x compatibility rules the major version is the URL-stability boundary; minor bumps (v1.1, v1.2, …) edit spec/v1/ in place. A new major version (spec/v2/) materializes only when v2 work actually starts. This section is the runbook for that day.

Minor bump inside v1.x (the common case)

The release manager:

1. Lands the additive prose / schema / RFC content directly inside spec/v1/. Each touched file's status banner updates to the new minor: Status: Stable · v1.2 (YYYY-MM-DD). 2. Adds a ## [1.2.0] section to CHANGELOG.md. 3. Tags + publishes the release per PUBLISHING.md.

The public site is published from a separate repoopenwop/openwop-site renders this corpus, tracking openwop main pinned to an exact commit. The site (homepage hero, spec table, changelog, /spec/v1/, badges) re-renders and redeploys when openwop-site advances its OPENWOP_REF pin (its pin-bump workflow opens that PR daily as main moves; merging it deploys). No site steps, public/index.html edits, build-site.sh runs, or firebase deploy --only hosting:docs happen in this repo anymore.

Major bump to v2.x (rare)

Rewritten 2026-09-02 from the v2 charter's downstream audit: the earlier text pointed at site/src/build.mjs, which moved to the openwop-site repository in the 2026-06 split, and covered only the site. A major touches nine repositories. The release manager, in this order:

In this repository (openwop/openwop):

1. Creates spec/v2/ alongside spec/v1/ (spec/v2/core/ under the word budget the v2 RFC sets; spec/v2/ext/<name>/ for everything else, each with a witness class and maturity in its header). v1 stays in place and remains supported under COMPATIBILITY.md §5's host-inventory rule. 2. Creates schemas/v2/ with every $id under https://openwop.dev/spec/v2/. schemas/ (flat, v1 $ids) is left untouched and becomes read-only. 3. Regenerates api/openapi.yaml, api/asyncapi.yaml, api/grpc/openwop.proto (if the transport survives the cut) and the seams document from the v2 declaration file; the operation-path-manifest.json is regenerated for both operations and channels. 4. Enforces spec/v1/deprecations.json: every entry whose removeIn is 2.0 is absent from spec/v2/ and schemas/v2/, and the check script fails otherwise. 5. Publishes @openwop/openwop-conformance@2.0.0 per PUBLISHING.md (tarball contains dist, fixtures, vectors only; the v2 suite ships bundle v3 and the dual-major scenario). 6. CHANGELOG entry: ## [2.0.0] — the breaking-change-permitted release. Updates spec/v1/auth.md's status legend to reference both majors' legend pages.

In openwop/openwop-site:

7. Refactors site/src/build.mjs::buildSpecDocs() to iterate over spec/v/ instead of hard-coding spec/v1 (twelve sites at the time of writing, including a FATAL guard and the nav label): discover versions via readdirSync('spec').filter(d => /^v\d+$/.test(d)); render each at /spec/{version}/{slug}.html; render the highest version's index plus /spec/latest/; add an "Other versions" link slot. scripts/build-site.sh copies schemas/v2/ to public/spec/v2/ beside the v1 copy. 8. Updates firebase.json redirects: /spec/latest{,/:path}/spec/v2/…; the /spec/v1.1{,/:path*}/spec/v1/… entries stay.

In openwop/openwop-sdks:

9. Publishes @openwop/openwop@2.0.0 (npm), openwop-client==2.0.0 (PyPI), and the Go module under a /v2 directory (the module path has no version suffix today, so this is a directory move, not a tag; fix the stale sdk/smoke module path first). Old majors stay available for the PUBLISHING.md retention floor.

In openwop/openwop-registry:

10. Publishes registry/v2/ (re-signed manifests, or a signed compatibility overlay) and the peer-dependency alias table generated from the v2 declaration file. A v2 host treats an absent engines.openwop ceiling as <2.0.0.

In openwop/openwop-examples, openwop/openwop-cli:

11. The four reference hosts pass the 2.0.0 floor and commit fresh v3 bundles; the CLI's disposition (rewritten onto SDK 2, or frozen v1-only) is recorded in its README.

Hosts (INTEROP-MATRIX.md):

12. Each host advertises both majors via protocolVersions[] during the overlap, produces a non-vacuous v2 bundle, and gets a matrix row. The v1 deprecation date is then computed per COMPATIBILITY.md §5.

Anti-pattern. Do not create spec/v1.2/ as a directory. Inside v1.x, minor bumps are in-place edits of spec/v1/. A new directory is reserved for a new major version. The /spec/v1.1/ redirect entry in firebase.json exists only as an inbound-link safety net for citations that hard-coded the minor number; it does not imply a parallel directory.

See also

  • GOVERNANCE.md — decision rules, role definitions, path to working group.
  • RFCS/0001-rfc-process.md — formal RFC mechanism that maintainer approvals operate on.
  • COMPATIBILITY.md — what counts as additive vs. breaking; what maintainers gate.
  • CODE_OF_CONDUCT.md — behavioral expectations enforced under "Removal for cause."
  • ROADMAP.md — the vendor-neutral-org migration tripwire that depends on this file.
  • docs/recruitment/external-host.md — per-target host-recruitment outreach drafts.
  • docs/recruitment/external-pack-author.md — external pack-author recruitment.