Replies: 3 comments 1 reply
-
|
@peterkc — this is a serious read. You're right that v1.1's Preamble names three principles but the rest of the document doesn't use them, so clause conflicts get settled ad-hoc. Named principles on top would fix that, and it's a cheap change. I think we should do it. Below: where I'd push back, one gap to flag, and a counter-proposal on the principle set. Where I agreePrinciples above clauses. Accepted. The precedent you cited (Apache Way, Debian Social Contract, Kubernetes values, Anthropic's safety hierarchy) is real, and the two-ring structure — core non-negotiable, operational defers to core — makes sense. Without it, Part II L63–67 and Part IV L110–118 get settled case-by-case. The credibility observation is the sharpest thing in your comment. v1.1 already allows differential trust in a few places (the "authorized project bots" exemption, Maintainer Discretion, "pattern of differential treatment" as the enforcement trigger) but doesn't name reputation as a legitimate review lever anywhere. We should say so explicitly. My proposal's below — as a Part II clause, not a principle, for reasons I'll get to. Adoption anchor. Principles-first gives downstream projects a stable set to agree on and clauses to tune. That's easier than the current "adopt verbatim or fork" choice. Where I'd push back1. One of your three conflicts is a doctrinal change framed as a clarification. Safe Harbor vs. Maintainer Discretion — real interpretive gap, agreed. First-mover vs. stub PRs — cleanest of the three; "substantive engagement" (L118) is undefined, and P3/P4 would close it. But rate limits vs. crunch-period contribution isn't actually unresolved in v1.1 — the cap is the cap, and adopters tune the numbers. Your proposed resolution ("a high-quality disclosed contribution is not rejected for exceeding a rate limit") doesn't stabilize the existing text; it overrides it. Rate limits become advisory whenever a reviewer judges a PR high-quality, which is most situations where someone argues to bypass the cap in the first place. If we want to say merit beats stewardship at the ring level, let's say that explicitly and accept what it costs (cap enforcement becomes interpretive). I don't think we should — the caps are enforceable precisely because they're mechanical — but it's a real design choice, not a tiebreaker. That's the one place I'd push back. 2. The mutual-obligation framing needs to survive the merge. v1.1's stress test specifically added a bilateral frame: contributors owe accountability, quality, and transparency; maintainers owe merit-based review, Safe Harbor, fair process. Your five principles break that apart — Merit and Stewardship sit in separate principles, and the lexical order puts Merit above Stewardship. That tilts the deal: contributors get merit protection as a "core, non-negotiable" right; maintainer capacity limits get demoted to "operational." That's not a neutral rearrangement; it shifts the balance v1.1 was trying to keep. The fix is mechanical — tag each principle with whose obligation it binds. Five principles, one deal. See structure below. 3. P4 Priority is shakier as a principle than as a rule. First-mover priority is an anti-racing mechanic. Elevating it to principle rank puts it on par with accountability, which it isn't. I'm open to including it if we scope it narrowly — something like "Priority — where contributions race, substantive first entry has right-of-way" — but I'd resist it reading as a freestanding value on par with Accountability or Merit. 4. Two principles are missing from your five. Welcome. The Covenant's most novel commitment — AI-supervised contributions are a legitimate and valued way to participate; differential treatment based on tooling is a conduct violation — disappears from your set. Your P3 Merit ("judged on output; tool use neither diminishes nor enhances") is neutral-sounding, which is a demotion. No other OSS document says what v1.1's Principle 3 says explicitly, and without naming it as a principle, a future amendment could weaken it without violating any of P1–P5. It should be a named principle. Safety. Prompt injection, data leakage, "poisoning the well," adversarial content, security-sensitive pre-submit review — these are in the operative text of the Covenant but map to none of your five principles. A security incident would have no principle to point to. Either it needs its own principle or it belongs inside Stewardship (which I'd expand). 5. Credibility should be a mechanism, not a principle. You flagged the reputation gap and declined to add a sixth principle for it. I think I know why: "Credibility" would directly collide with P3 Merit ("judged on output"). Linux's The fix is to scope it: reputation attaches to the principal, not to tooling, and not (yet) to the agent. That keeps the Safe Harbor intact (you can't differentially weight disclosed-vs-undisclosed) while acknowledging what every serious OSS project actually does. Concrete proposal below. Counter-structure: six principles, bilateral tags, credibility as mechanismTaking what you proposed and folding in what v1.1 currently commits to:
HierarchyCore ring wins when rings conflict. Within the core ring, the principles cover different obligations, so internal conflicts are rare — where they do surface, the document resolves them at the clause level. The Binds row shows the bilateral deal — contributor and maintainer obligations mirror across rings, so neither side's obligations get demoted to operational status alone. What this preserves from your proposal: principles-above-clauses, two-ring hierarchy, five of six principle names, the adoption-anchor function. What this recovers from v1.1: explicit welcome stance (P2), bilateral deal via "Binds" tags, safety commitments (folded into P6). What this refuses: treating rate-limits-vs-merit as something the ring hierarchy resolves — it's a design call, not an interpretation call. The credibility clause (as Part II addition, not a principle)After the Maintainer Discretion paragraph in Part II:
This fills the gap you identified, keeps the Safe Harbor tool-neutral, doesn't commit to agent-level reputation yet, and flags the v2.0 question rather than pretending we've solved it. The "show it working on a scenario" challengeYou're right that a principles section is only doing work if it resolves cases the clauses alone can't. Three scenarios against the proposed six: Scenario A. A new contributor submits a PR that declares
Scenario B. An established contributor consistently opens PRs at the 3-open cap, all high-quality, during a release crunch.
Scenario C. An operator's agent produces a PR with a prompt-injection payload in a comment.
B is the one your hierarchy and mine produce different answers on. That's the doctrinal call that should be made explicitly. On the home-of-the-framework questionStay in beads for now. Extract on signal, not on plan. Contributor Covenant lived in Coraline Ada Ehmke's personal repo through v1.x; What I'd do:
Concrete next steps for this thread
Rate-limits-vs-merit and any per-clause principle cross-references can go to a follow-up thread. Let's not bundle the doctrinal change with the structural clarification. Tactical note: the PR-level concerns you raised on #3395 are being addressed in parallel — engineering commits split to #3436 as a non-destructive starting move, version inconsistency fixed, rate-limit tracking clarified as project-level choice, and the email / enforcement-team questions deferred to maintainers. The remaining PR structure (your B/C/D options) is open for maintainer input. Your parts-mapping observation ("III and IV adopt as-is; II and V depend on principles work") is the right carve-up regardless of which PR shape lands; whatever this thread produces will need incorporation into Parts II and V. Thanks for the depth on this. |
Beta Was this translation helpful? Give feedback.
-
|
@peterkc ...taking stock: I think we agree on everything except rate-limits-vs-merit --> Your two-ring hierarchy is the right frame; I'm using it directly. Want to hash out that one question, and I'll draft the principles section from there? |
Beta Was this translation helpful? Give feedback.
-
|
Picking this back up. On May 3 I said I'd draft the principles section once we'd settled the frame — here it is. Two things shifted since: I think the rate-limits/merit question has a cleaner resolution than either of us had, and your "credibility" gap has a clean home. Full drafted section is in a gist (link at the end); the load-bearing parts are below. The rate-limits / merit questionI'd stopped framing this as "design call vs. tiebreaker" — that framing was the problem. Merit and Stewardship answer different questions: Merit decides what merges; Stewardship decides the rate at which new work enters the review queue. They can still touch the same contributor's outcome, so the boundary has to be drawn explicitly rather than assumed. The Covenant draws it by constraining rate limits to be mechanical, public, bounded, disclosure-neutral, and appealable:
This keeps caps mechanical — my concern — while making sure Stewardship can throttle rate but never become a quality veto or a Safe-Harbor backdoor, which I think was the real worry under your "Merit wins" position. So I think we both get what we were actually protecting. One note on the Anthropic hierarchy you cited: it cuts toward this shape, not toward strict ranking. The constitution says the ordering is "holistic rather than strict" — higher priorities "generally dominate" but are weighed in an overall judgment "rather than only viewing lower priorities as 'tie-breakers'" — and it pulls genuine non-negotiables out as separate hard constraints, exempt from the weighing. That's the same shape here: Safety sits outside the rings as a floor, and Merit-vs-Stewardship isn't settled by strict rank ("Merit is core, so it wins") but by what each principle actually governs. The principle setBuilt on your two-ring hierarchy, used directly. I landed on five, not six — your instinct on leanness was right, and so was the precedent: Contributor Covenant's verbatim-adoptability came from staying small.
Core ring wins on any cross-ring conflict; order within the core ring is narrative, not rank. Three deltas from your original five:
The one structural call still openIs Priority a principle, or a Part IV clause? You had it as P4. I've put it back in Part IV as a first-mover rule grounded in Merit — first substantive entry has right-of-way; speed doesn't set merge order — rather than a value ranking beside Accountability and Merit, which matches the read I floated in April that it's "shakier as a principle than as a rule." I lean clause, but I'm genuinely open; if you or @maphew / @steveyegge think it earns principle rank, say so and I'll lift it. On the home question — agreed: stay in beads, extract on adoption signal, not on plan. No change there. Full drafted section — preamble, the Stewardship scope clause, the reputation mechanism, and a worked table showing each conflict you flagged resolving: https://gist.github.com/kevglynn/9928d26be483afa504b23ad656712d93 Genuinely open to other opinions on any of it — the count, the Priority call, or the crux framing. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Context: this Discussion opens from review of #3395 — the Agentic Covenant PR by @kevglynn. The PR proposes adopting the full framework as
CODE_OF_CONDUCT.md. Review surfaced a structural question better suited to this venue than a PR thread: several Covenant clauses conflict in ways the document does not resolve. Naming principles would give the framework the tiebreaker it lacks.Scope: the framework targets multi-contributor OSS projects that accept AI-supervised contributions as a normal mode of participation — a bounded but growing class that beads itself exemplifies. The principles below are universal within that class, not across all GitHub repos.
Proposal: before the Agentic Covenant becomes binding for this project or adopted by others, name the principles that give its clauses purpose. A short principles section above the current document would provide what the framework lacks — a stable tiebreaker for clause conflicts, a compression for working memory, and an adoption anchor for downstream projects.
This thread is not a challenge to the framework's value. The clauses are thoughtful. The proposal is that principles complete the work.
What the Covenant already does well
The Covenant stakes out a novel position in OSS governance. Existing policies fall into two camps — restrictive (pip, NetBSD, Gentoo, curl) or permissive-with-disclosure (Linux kernel, QEMU, Ghostty). The Covenant proposes a third: agent-affirmative with full governance.
The integration is genuinely novel:
Assisted-by:) receive the same quality of review as non-disclosed ones. Differential treatment based on disclosure is itself a conduct violation.Individual clauses have precedent (Linux kernel's
Assisted-by, LinkML's "understanding over authorship," Contributor Covenant's graduated enforcement, OWASP Agentic AI Top 10). The integration is the contribution.What the framework is missing
The Covenant's clauses describe what is allowed and what is not. Principles describe why.
Without named principles, three clause conflicts have no stable resolution:
Named principles resolve these stably. Clause-level arbitration resolves them case-by-case, inconsistently, every time.
Principles also simplify adoption. A downstream project currently accepts every clause as written or forks. With principles, the project adopts five stable values and configures clauses (rate-limit numbers, enforcement team size, appeals process) to its scale.
A third gap worth naming: the Covenant names accountability but not credibility. Community practice uses vouching and reputation as the primary quality lever — Linux kernel's
Reviewed-by:andTested-by:trailers, Rust's RFC-sponsorship requirement, established-contributor trust in most active projects. The Covenant's current model treats every accountable operator as equally trusted, which is not how OSS actually works at scale.The five principles
P1: Accountability — Every agent action has a named human owner. Agents are tools; enforcement targets the operator.
P2: Transparency — Disclosure is honored, not punished.
Assisted-bydisclosure is required; disclosed contributions receive the same review as non-disclosed.P3: Merit — Contributions are judged on their output. Tool use neither diminishes nor enhances evaluation.
P4: Priority — First substantive contribution has right-of-way. Speed does not determine merge order.
P5: Stewardship — Contribution volume is bounded by review capacity. Rate limits and circuit breakers keep review tractable.
Narrative
AI-supervised contributions need a human owner. Owners are accountable when the work is transparent. Transparency works because contributions are judged on merit. Merit protection requires priority for those who contribute first. Priority is sustainable only when volume respects the community's capacity to review.
Accountability. Transparency. Merit. Priority. Stewardship.
Hierarchy
Inner ring wins when principles conflict. Within a ring, conflicts are typically rare — principles in the same ring are complementary.
Conflict resolution
What this unlocks
With principles named, the clause-level calibration questions become tractable:
A follow-up thread can work through each Part's calibration with the principles in place.
Adoption sequence
What this Discussion should accomplish
Two outcomes would complete this stage:
With principles settled, a follow-up thread can address clause-level calibration, and Parts III and IV can adopt cleanly as-is.
Sources
Assisted-byattribution convention.cc @kevglynn @maphew @turian — opening this in parallel with #3395. Earlier comments on that thread flagged the structural angle worth working through here.
Beta Was this translation helpful? Give feedback.
All reactions