[{"data":1,"prerenderedAt":543},["ShallowReactive",2],{"page-en-\u002Fgarden\u002Findemnity-is-not-ownership":3,"backlinks-en-\u002Fgarden\u002Findemnity-is-not-ownership":168},{"doc":4,"isFallback":155},{"id":5,"title":6,"body":7,"description":154,"draft":155,"extension":156,"meta":157,"navigation":158,"notice":159,"path":160,"seo":161,"stage":162,"stem":13,"tags":163,"topic":166,"__hash__":167},"garden_en\u002Findemnity-is-not-ownership.md","Indemnity Is Not Ownership",{"type":8,"value":9,"toc":145},"minimark",[10,14,23,28,31,37,40,45,58,62,65,70,73,81,88,92,95,111,114,118,130,134],[11,12,6],"h1",{"id":13},"indemnity-is-not-ownership",[15,16,17,18,22],"p",{},"A reasonable inference on first hearing that Anthropic indemnifies customers for copyright claims over model output: ",[19,20,21],"em",{},"if they'll pay for it, they must think it's theirs."," The terms say the opposite, and the two clauses sit a few sections apart.",[24,25,27],"h2",{"id":26},"the-assignment-clause","The assignment clause",[15,29,30],{},"Consumer Terms of Service, effective 2025-10-08, Section 4:",[32,33,34],"blockquote",{},[15,35,36],{},"\"Subject to your compliance with our Terms, we assign to you all our right, title, and interest (if any) in Outputs.\"",[15,38,39],{},"Commercial Terms of Service, effective 2025-06-17:",[32,41,42],{},[15,43,44],{},"\"Subject to Customer's compliance with these Terms, Anthropic hereby assigns to Customer its right, title and interest (if any) in and to Outputs.\"",[15,46,47,48,51,52,57],{},"Two things in one sentence. The vendor claims nothing: it ",[19,49,50],{},"assigns away",". And the parenthetical \"(if any)\" is the vendor agreeing with ",[53,54,56],"a",{"href":55},"\u002Fgarden\u002Fgenerated-code-has-no-owner","the copyright offices"," that there may be nothing to assign. Whatever rights could exist in an output, they end up with the user, not the vendor.",[24,59,61],{"id":60},"the-indemnity-clause-and-where-it-isnt","The indemnity clause, and where it isn't",[15,63,64],{},"The Commercial Terms contain the defence promise, quoted here as excerpted:",[32,66,67],{},[15,68,69],{},"\"Anthropic will defend Customer and its personnel, successors, and assigns from and against any Customer Claim...alleging that Customer's paid use of the Services...or Outputs generated through such authorized use violates any third-party intellectual property right.\"",[15,71,72],{},"It comes with exclusions. As summarised from the same section: claims arising from the customer's modifications to outputs, from combining outputs with non-Anthropic technology, from customer-provided inputs, from knowing misuse, from practising patented inventions found in outputs, and from trademark use.",[15,74,75,76,80],{},"The Consumer Terms have ",[77,78,79],"strong",{},"no such clause",". Their Section 11 disclaims warranties, including non-infringement, and the only indemnity flows from the user to the vendor.",[15,82,83,84,87],{},"So the promise is a ",[19,85,86],{},"contractual defence against third parties",", offered on paid commercial use, hedged by exclusions, and absent from consumer plans. It is insurance for exactly the inbound risk described in the other note: the model may reproduce material that belongs to someone else. A vendor claiming ownership wouldn't need to insure you against that; it would be the defendant.",[24,89,91],{"id":90},"why-the-two-fit-together","Why the two fit together",[15,93,94],{},"Read side by side, the clauses are coherent:",[96,97,98,105],"ul",{},[99,100,101,104],"li",{},[77,102,103],{},"Assignment:"," \"whatever this is, it's yours.\"",[99,106,107,110],{},[77,108,109],{},"Indemnity:"," \"and if it turns out to contain someone else's, we'll stand behind you, under conditions.\"",[15,112,113],{},"Neither says \"we made this, it's ours\". The reverse inference fails because it assumes indemnity is a property claim. It's a risk allocation.",[24,115,117],{"id":116},"what-this-changes-in-practice","What this changes in practice",[15,119,120,121,124,125,129],{},"For a one-person project on a consumer plan: nothing to rely on. The defence clause isn't there, and even where it is, the exclusion for ",[19,122,123],{},"modifications"," would bite any code that has been edited after generation, which is all of it. The only real protection remains not letting foreign expression in: ",[53,126,128],{"href":127},"\u002Fgarden\u002Fclean-room-reimplementation-with-an-agent","Clean-Room Reimplementation With an Agent",".",[24,131,133],{"id":132},"not-checked","Not checked",[96,135,136,139,142],{},[99,137,138],{},"Which Anthropic terms actually govern a Claude Code session on a given subscription. The consumer\u002Fcommercial split is stated in the terms; the mapping of plans to terms was not verified.",[99,140,141],{},"The full text of the indemnity clause. The quote above is excerpted; the ellipses are in the excerpt, not mine to fill.",[99,143,144],{},"Whether other vendors' terms follow the same pattern. Only Anthropic's were read.",{"title":146,"searchDepth":147,"depth":147,"links":148},"",2,[149,150,151,152,153],{"id":26,"depth":147,"text":27},{"id":60,"depth":147,"text":61},{"id":90,"depth":147,"text":91},{"id":116,"depth":147,"text":117},{"id":132,"depth":147,"text":133},"A vendor offering to defend you over its model's output is not claiming that output. Read the clause next to it.",false,"md",{},true,"legal","\u002Fgarden\u002Findemnity-is-not-ownership",{"title":6,"description":154},"seedling",[164,165],"licensing","ai","ai-provenance","A0boDVly1GZsKAofi1gUqympr03lH0LpSB9XX179_ZI",[169,335],{"id":170,"title":128,"body":171,"description":328,"draft":155,"extension":156,"meta":329,"navigation":158,"notice":159,"path":127,"seo":330,"stage":331,"stem":175,"tags":332,"topic":166,"__hash__":334},"garden_en\u002Fclean-room-reimplementation-with-an-agent.md",{"type":8,"value":172,"toc":322},[173,176,184,190,193,197,211,222,226,287,291,294,301,305],[11,174,128],{"id":175},"clean-room-reimplementation-with-an-agent",[15,177,178,179,183],{},"The case: a Sieve interpreter in Rust, permissively licensed. The existing one, ",[180,181,182],"code",{},"sieve-rs",", is licensed \"under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version\", with a commercial licence on offer. Its parent project's contribution guidelines state: \"AI-generated code is not accepted in this project.\" That closes the door on contributing fixes back the way we work, and opens the question of writing our own.",[15,185,186,187,189],{},"The agent writing it with me has, in all likelihood, seen ",[180,188,182],{}," during training. Asked directly, it reported a rough memory of the architecture: a compiler to an instruction list and an event-driven runtime that hands actions back to the caller. It could not say whether any snippet it produces is memorised rather than composed. Nobody can say that about a model from the outside either.",[15,191,192],{},"A traditional clean room keeps the implementers from ever reading the original. Here one implementer has already read it and can't unread it. So the clean room has to be rebuilt as a process that doesn't depend on ignorance.",[24,194,196],{"id":195},"what-copyright-does-and-doesnt-cover","What copyright does and doesn't cover",[15,198,199,202,203,206,207,210],{},[53,200,201],{"href":55},"Generated code has no owner"," works through the legal side; the relevant piece here is § 69a Abs. 2 UrhG: ideas, principles and interfaces are not protected. An interpreter for RFC 5228 will resemble every other one ",[19,204,205],{},"in structure",", because the RFC dictates the grammar, the commands, the tests, the actions. That is fine. What must not be carried over is ",[19,208,209],{},"expression",": the particular names, comments, error strings, the shape of a non-obvious trick, any passage recognisable as a passage.",[15,212,213,214,217,218,221],{},"The RFCs themselves are safe input. The IETF Trust Legal Provisions license \"Code Components\" of RFCs, the parts between ",[180,215,216],{},"\u003CCODE BEGINS>"," and ",[180,219,220],{},"\u003CCODE ENDS>"," or otherwise marked as code, under the Revised BSD License. Example scripts and grammar in the Sieve RFCs can be used as test material and reference outright.",[24,223,225],{"id":224},"the-process","The process",[227,228,229,238,247,253,275,281],"ol",{},[99,230,231,234,235,237],{},[77,232,233],{},"Spec in, nothing else in."," The interpreter is derived from the RFCs and from our own design book, written first. The question \"how does ",[180,236,182],{}," do it\" is never asked, of the agent or of a search engine. Bugs observed in the existing implementation are described as behaviour, never as code.",[99,239,240,243,244,246],{},[77,241,242],{},"Context hygiene."," No third-party Sieve source in the workspace, ever. Not ",[180,245,182],{},", not Pigeonhole (LGPLv2.1, and its test scripts are code too), not Cyrus. Nothing pasted into the conversation. The model's training exposure is a risk I can't control; what enters its context window is one I fully can, and it's the larger of the two.",[99,248,249,252],{},[77,250,251],{},"Divergence on purpose."," Where the agent remembers how the incumbent is built, that memory has exactly one permitted use: choose differently, and write down why in the design book. Ideas are free to reuse; the point of diverging is that it makes accidental expressive overlap improbable, not that reuse would be illegal.",[99,254,255,258,259,262,263,266,267,270,271,274],{},[77,256,257],{},"A diff tool at the door."," In CI, the incumbent is cloned into a comparison directory outside the project tree and ",[180,260,261],{},"jscpd",", which lists ",[180,264,265],{},"rust"," among its formats, runs over both with ",[180,268,269],{},"--min-tokens"," in the 40 to 50 range and a ",[180,272,273],{},"--threshold"," of zero on cross-repository hits. The check is mechanical, never done by the agent reading the other codebase, because reading it to compare is the contamination we're trying to avoid. Hits go to a human; affected regions are rewritten from the spec.",[99,276,277,280],{},[77,278,279],{},"Provenance on record."," Commit trailers name the agent. The design book predates the code. The hygiene rules live in the repo's agent instructions. If a claim ever came, the defence is documented independent creation, and this is what that documentation looks like.",[99,282,283,286],{},[77,284,285],{},"Say it on the tin."," The licence file states that the codebase is agent-assisted. Downstream users deserve to know which risk profile they're adopting.",[24,288,290],{"id":289},"why-this-is-enough-and-why-it-isnt-more","Why this is enough, and why it isn't more",[15,292,293],{},"The process cannot prove that no memorised line ever slipped through. What it does is make each path narrow: the model's memory is only for diverging, the context is clean, the output is scanned against the one implementation it could plausibly echo, and the trail shows the work was done from the specification. That is more than most human reimplementations can show, given that human authors usually read the competition first and keep no record of it.",[15,295,296,297,300],{},"What remains is residual, and it is the residual that ",[53,298,299],{"href":160},"vendor indemnity"," is designed for, on plans where it exists, which is not the plan this project runs on. So the process carries the whole weight. It should.",[24,302,304],{"id":303},"open","Open",[96,306,307,313,319],{},[99,308,309,310,312],{},"The ",[180,311,261],{}," threshold numbers are a starting guess, not a calibrated value; tune after the first false positives.",[99,314,315,316,318],{},"Whether the comparison should also include non-Rust implementations. Cross-language clones are rare in practice and ",[180,317,261],{}," compares within a format, so the current answer is no.",[99,320,321],{},"How the design book and the code should reference each other so that \"the book predates the code\" is checkable from git history alone, not just asserted.",{"title":146,"searchDepth":147,"depth":147,"links":323},[324,325,326,327],{"id":195,"depth":147,"text":196},{"id":224,"depth":147,"text":225},{"id":289,"depth":147,"text":290},{"id":303,"depth":147,"text":304},"The model has read the competitor. That makes the clean room a process, not a promise — spec in, nothing else in, a diff tool at the door.",{},{"title":128,"description":328},"budding",[164,165,333],"self-hosting","Y0IWseTi1BpoJZwOQK8zNSvAlYyuTsY6jvjeX01cIpg",{"id":336,"title":337,"body":338,"description":537,"draft":155,"extension":156,"meta":538,"navigation":158,"notice":159,"path":55,"seo":539,"stage":162,"stem":540,"tags":541,"topic":166,"__hash__":542},"garden_en\u002Fgenerated-code-has-no-owner.md","Generated Code Has No Owner, and That's Not the Problem",{"type":8,"value":339,"toc":530},[340,343,346,353,357,360,382,385,389,392,397,400,405,418,425,430,435,442,447,450,453,457,460,465,470,477,481,484,487,490,495,501,506,510,525],[11,341,337],{"id":342},"generated-code-has-no-owner-and-thats-not-the-problem",[15,344,345],{},"The worry that started this: an agent writes a Sieve interpreter with me, and the agent's model has almost certainly seen the only other Rust implementation, which is AGPL. Could that code end up in ours?",[15,347,348,349,352],{},"Before answering, a detour that looked like it might dissolve the question: if machine output isn't copyrightable anyway, does licensing even apply? It turns out the detour answers a ",[19,350,351],{},"different"," question, and knowing which one is the point of this note.",[24,354,356],{"id":355},"two-directions","Two directions",[15,358,359],{},"There are two copyright questions in any generated codebase, and they are independent:",[227,361,362,372],{},[99,363,364,367,368,371],{},[77,365,366],{},"Outbound."," Do ",[19,369,370],{},"we"," hold rights in what we produce? Can we license it at all?",[99,373,374,377,378,381],{},[77,375,376],{},"Inbound."," Did the output carry in expression that belongs to ",[19,379,380],{},"someone else","?",[15,383,384],{},"The \"machine output isn't protectable\" argument speaks to the first. It says nothing about the second.",[24,386,388],{"id":387},"outbound-machine-output-is-not-protectable","Outbound: machine output is not protectable",[15,390,391],{},"The German statute is one sentence. § 2 Abs. 2 UrhG:",[32,393,394],{},[15,395,396],{},"\"Werke im Sinne dieses Gesetzes sind nur persönliche geistige Schöpfungen.\"",[15,398,399],{},"For software specifically, § 69a Abs. 3 UrhG:",[32,401,402],{},[15,403,404],{},"\"Computerprogramme werden geschützt, wenn sie individuelle Werke in dem Sinne darstellen, daß sie das Ergebnis der eigenen geistigen Schöpfung ihres Urhebers sind.\"",[15,406,407,217,410,413,414,417],{},[19,408,409],{},"Persönlich",[19,411,412],{},"Urheber"," both presuppose a person. Output with no human creative contribution isn't a ",[19,415,416],{},"Werk"," in the statute's sense, so there is nothing to license.",[15,419,420,421,424],{},"The US position was stated at length by the Copyright Office in its report ",[19,422,423],{},"Copyright and Artificial Intelligence, Part 2: Copyrightability"," (January 2025). From its executive summary, verbatim:",[32,426,427],{},[15,428,429],{},"\"Copyright does not extend to purely AI-generated material, or material where there is insufficient human control over the expressive elements.\"",[32,431,432],{},[15,433,434],{},"\"Based on the functioning of current generally available technology, prompts do not alone provide sufficient control.\"",[15,436,437,438,441],{},"And the D.C. Circuit in ",[19,439,440],{},"Thaler v. Perlmutter",", No. 23-5233, decided 2025-03-18 (Millett, J.):",[32,443,444],{},[15,445,446],{},"\"The Creativity Machine cannot be the recognized author of a copyrighted work because the Copyright Act of 1976 requires all eligible work to be authored in the first instance by a human being.\"",[15,448,449],{},"The court stopped there on purpose: \"Given that holding, we need not address the Copyright Office's argument that the Constitution itself requires human authorship of all copyrighted material.\" Reports say the Supreme Court declined to review the case in March 2026; I have only seen the headline, not the order.",[15,451,452],{},"So: what the agent generates on its own is public domain in effect. Not \"unlicensable\" as some kind of restriction. Free for everyone, including us, because nobody can withhold it.",[24,454,456],{"id":455},"outbound-second-half-humans-still-get-their-share","Outbound, second half: humans still get their share",[15,458,459],{},"The same sources are equally clear that using a machine doesn't strip a human of authorship. The Copyright Office again:",[32,461,462],{},[15,463,464],{},"\"The use of AI tools to assist rather than stand in for human creativity does not affect the availability of copyright protection for the output.\"",[32,466,467],{},[15,468,469],{},"\"Human authors are entitled to copyright in their works of authorship that are perceptible in AI-generated outputs, as well as the creative selection, coordination, or arrangement of material in the outputs, or creative modifications of the outputs.\"",[15,471,472,473,476],{},"A project like ours is a mix. Architecture decisions, the design book, hand-edited code, the selection of what survives review: human, protectable. Boilerplate the agent produced from a one-line instruction: not. Nobody will draw that line file by file, and for a project that wants a permissive licence anyway, nobody needs to. A permissive licence still does real work on the human-authored parts and is a harmless no-op on the rest. What it ",[19,474,475],{},"should"," say is that the codebase is agent-assisted, so nobody downstream is surprised by which part is which.",[24,478,480],{"id":479},"inbound-the-part-the-detour-doesnt-touch","Inbound: the part the detour doesn't touch",[15,482,483],{},"None of the above changes the status of code that was somebody else's before the model ever saw it. If the agent reproduces a distinctive passage from an AGPL project, that passage is still that project's work, under that project's licence, inside our tree. Our own rights being thin or absent is irrelevant to their rights being intact.",[15,485,486],{},"That is the risk with teeth, and it is the only one in this picture that can actually hurt: a licence conflict we didn't choose, discoverable by anyone with a diff tool.",[15,488,489],{},"One thing narrows it. Ideas, algorithms and interfaces are outside copyright, in the statute's own words, § 69a Abs. 2 UrhG:",[32,491,492],{},[15,493,494],{},"\"Ideen und Grundsätze, die einem Element eines Computerprogramms zugrunde liegen, einschließlich der den Schnittstellen zugrundeliegenden Ideen und Grundsätze, sind nicht geschützt.\"",[15,496,497,498,500],{},"An interpreter for an RFC-defined language will resemble every other interpreter for that language in structure, because the RFC dictates the structure. That resemblance is not infringement. What would be is the ",[19,499,209],{},": names, comments, the particular shape of a non-obvious trick, a paragraph of code carried over intact.",[15,502,503,504,129],{},"So the practical question isn't \"is our code ours\". It's \"how do we keep somebody else's expression out\". That's a process question, and it has a process answer: ",[53,505,128],{"href":127},[24,507,509],{"id":508},"what-this-note-does-not-settle","What this note does not settle",[96,511,512,519,522],{},[99,513,514,515,518],{},"Whether the human contribution in ",[19,516,517],{},"our"," project would clear the bar in a dispute. Unlikely to matter for a permissively licensed codebase, but not examined.",[99,520,521],{},"The EU-level case law on \"author's own intellectual creation\". The German statute was enough for the purpose here.",[99,523,524],{},"Whether any of this would look different in a jurisdiction that isn't Germany or the US.",[15,526,527,528,129],{},"A related misreading, that the model vendor might own the output because it offers to defend you over it, gets its own note: ",[53,529,6],{"href":160},{"title":146,"searchDepth":147,"depth":147,"links":531},[532,533,534,535,536],{"id":355,"depth":147,"text":356},{"id":387,"depth":147,"text":388},{"id":455,"depth":147,"text":456},{"id":479,"depth":147,"text":480},{"id":508,"depth":147,"text":509},"Purely machine-generated code is nobody's property. The risk with teeth runs the other way — what the machine may have carried in.",{},{"title":337,"description":537},"generated-code-has-no-owner",[164,165],"ysY_MwpoRorIxUJnBXsFDIJwYVXdVZSh-quvnqPhwX8",1789414694804]