Skip to content

Labelling AI use in your own work: what 0rwx measures and what it leaves out

The 0rwx framework, by Tris Oaten of the No Boilerplate YouTube channel, labels a piece of work by how much AI was involved, in four levels borrowed from unix permissions.1 This page applies it to my own repos, which a coding agent mostly writes, and lists what its single axis cannot express. It is for anyone who builds with an agent and wants a disclosure that says more than “AI made”.

Provenance. Commit counts were measured on 2026-11-08 over the window 2026-10-20 to 2026-11-08, the span covered by the harness’s git audit log (Running agent git commands without per-command approval prompts). Founding conversations come from the cross-client session store described in A cross-client memory store for coding agents, which holds pi, Claude Code, opencode and claude.ai chats back to 2024. The founding asks were checked against the stored messages by session and message number before publishing and are paraphrased here. The origination verdicts are mine and are judgments, not measurements.

TL;DR:

  • 0rwx grades one thing: “your ability to scrutinise the generated work”. By that test nearly everything here is AI:X, “YOU can no longer read your work”. 2,307 of 2,857 commits in the window (81%) were made by the agent, and I do not read most diffs line by line.
  • The founding conversations of 16 projects show I set the goal, the constraints and most of the architecture, including decisions that overruled the agent. One project, a word game, started from a design the agent proposed and I picked. 0rwx has no field for any of this.
  • 0rwx treats reading as the only form of scrutiny. Here the checks are tests, CI, sensor-gated loops, build diffs before deploy, and using the result. 31 of the 69 repos have no test files, most of the deployment repos among them.
  • Patent and copyright tests already separate conception from production, and CRediT separates Conceptualization from writing. KDP classifies the other way: an idea from AI with text written by you is “AI-assisted”, text from AI that you edited heavily is “AI-generated”.
  • A label with one value per axis (idea, design, knowledge, build, check, stakes) describes this work. A single letter does not.

Ideawhat problem, for whomDesignarchitecture, constraintsBuildwho wrote the artifactDomain knowledgewhose expertiseCheckread, test, probe, uselimitsStakeswhat breaks if wrongsets how tight
  1. Idea: who identified the problem and the goal.
  2. Design: who chose the architecture and the constraints.
  3. Domain knowledge: whose expertise the design and the checks rest on. It limits what can be checked.
  4. Build: who produced the artifact. This is the only axis 0rwx grades, through whether you can still read the result.
  5. Check: how the result was verified.
  6. Stakes: what fails if the result is wrong, which sets how tight the check has to be.
SchemeIdeaDesignKnowledgeBuildCheckStakes
0rwxonly implied by levels 0 and Rnonoyes (as readability)reading onlyno
CRediTyes (Conceptualization)yes (Methodology)noyes (Software, Writing)yes (Validation)no
IBM AI Attributionno (records who triggered each AI contribution)nonoyes (human vs AI share)yes (who reviewed and approved)no
Amazon KDPtreated as minornonoyes, decides the labelnono
USPTO inventorshipyes, decides inventorshipyesnoexplicitly not enoughnono
USCO copyrightabilityprompts not enoughselection and arrangementnoyes, decides protectionnono
Ghostty policynononodisclosedhuman must understand all codeno

Sources for each row are in How other schemes split the axes and the sections it links back to.

The site defines four levels, each with a phrase and a badge.1

LevelSite definitionPhraseBadge
AI:0AI can’t read or write to your work“I think”HAND MADE
AI:RAI has read-only permissions“I make”AI INSPIRED
AI:WAI has read-write permissions“I fix”AI COLLABORATION
AI:XYOU can no longer read your work“I curate”AI MADE

The site states the axis directly: “The difference between the 4 levels is not necessarily about what TOOL you use, but your ability to scrutinise the generated work.”1

Oaten’s video introducing it grounds the scale in Lisanne Bainbridge’s 1983 paper “Ironies of automation”2: once automation does nearly all of the work, the operator’s skill decays and their job becomes monitoring the machine.3 From that, the video argues that at Claude Code levels of automation “people who say they read the code are lying to themselves”, and that “Claude tested it for me doesn’t cut it”. It also cites Adam Savage on tolerances: professionals know when a corner can be cut, but only if they know a corner is being cut. For anyone who rejects the levels it offers credit wording instead: an AI research assistant at R, a co-writer when AI output ends up in the work, and “if the project was mostly AI written, own it”. The project’s repository asks for “no AI please” in issues and pull requests.4

Per-repo counts from the commit history, with an agent commit defined as one made within 180 s after an audited agent git commit in the same repo. Four repos whose commits ran outside the audited path, two of them upstream forks, are excluded.

Measure (2026-10-20 to 2026-11-08)Value
Repos with commits in the window69
Commits2,857
Agent commits2,307 (81%)
Repos at or above 80% agent commits43
Repos with test files38
Repos with CI workflows44
Repos with a sensor-gated loop manifest20

31 of the 69 repos have no test files. The deployment repos with the most commits are among them:

RepoCommitsAgentTest filesCI workflowsLoop manifest
router NixOS config4395%00no
NAS compose stacks4693%00yes
monitoring stack3194%00yes
NAS NixOS config2374%00no
DNS Terraform683%00no

The two NixOS repos get a build diff of the activation plan before deploy. The loop manifests in the two compose repos drove a documentation split and a dashboard task, and check nothing about the running stack. Not every deployment repo lacks tests: the DNS resolver repo has 164 test files, and the edge proxy repo, which sits too deep in the directory tree for the scan and is not in the 69, has 63.

The scan covers git repos up to three directories below the home directory, so deeper nested repos are missing from every count. Commit proximity is not authorship. An agent commit can carry text I typed, a commit I made by hand can carry agent text, and Claude Code on another machine never reaches this audit log. The test counts include tests the agent wrote.

By 0rwx’s own definition the answer is AI:X across most of the corpus.

A first pass at this question sampled user prompts from the last 30 days and was wrong. Those are mid-project prompts, written after each design existed. The table below traces each project to the conversation where it started, including renamed predecessors and chats on claude.ai that predate the coding harness.

ProjectStartedFounding ask (paraphrased)Origination
APM tracker (zero-input-latency design)2024-08-21, claude.aia Windows tool that shows average actions per minute, in Rustmine
Edge reverse proxy2024-08-08, claude.aireview of an existing custom Caddy buildmine
Docs site (this one)2025-05-05first commit made by handmine
Film-negative inversion tool2026-03-18, claude.aioptions for leaving a Lightroom and Negative Lab Pro workflow without a subscriptionmine
Docs over SSH2026-04-07an SSH server for browsing documentation sets, starting with the Postgres docsmine
Compose stack manager2026-04-08a lighter alternative to dockge and Portainer, which are wrappers on Docker Compose; TDD, DDD, shadcn on Astro, a Go or Rust backendmine
Jellyfin watch-party sync2026-05-05, claude.aia way for friends to watch the same thing at the same time, possibly self-built on Jellyfinmine
Versus word game2026-05-20whether an open-source Wordle existsmixed
Authoritative DNS on anycast2026-05-23a stack for self-hosted anycast authoritative DNS, with CoreDNS as my first guessmine
Soulseek client for the media stack2026-05-28whether Soulseek beats the existing music automation, and a container for itmine
Discord message retention tool2026-05-28bulk-deleting my own Discord messages, then an owned script after the agent listed third-party wipersmine
Cross-client session store2026-08-08one Postgres store to query session memory from every agent clientmine
Personal knowledge graph2026-08-13a graph database over my old school and university documentsmine
Mouse firmware and web configurator2026-10-23reverse engineering a mouse’s configurator into a web driver alongside its firmware updatermine
Windows latency CLI2026-10-25one CLI with flags and logging to replace a pile of tuning scriptsmine

The sixteenth project, a read-only CLI over the router, started from my question about a VyOS-style CLI for it. Its read-only boundary came from my own earlier planning notes, which the agent quoted back, and the agent coined the name after I set a naming constraint.

Decisions in those conversations that went against the agent’s recommendation:

ProjectAgent proposedI chose
Authoritative DNSKnot first, then PowerDNS once I asked for API controlKnot, with a REST API modelled on Cloudflare’s DNS API built for it
Personal knowledge graphan embedded Kuzu graph plus SQLite, already scaffoldedPostgres on the NAS, as I had assumed from the start
Windows latency CLI“PowerShell module (Recommended)”, reusing the existing scripts“Go single exe”
Discord retention toolexisting third-party wipersan owned script, later a retention daemon with an encrypted archive

What the agent contributed across the 16: most project names, library and plumbing choices, the option menus I picked from, the written design documents and plans (drafted from my direction), and domain work I could not have done, such as decompiling the Lightroom negative-inversion plugin. The word game is the one case where the core design came from the agent. I asked for an open-source Wordle, it listed axes I had not named and proposed a roguelike versus mode, and I selected it.

A project usually starts as a question (“what are my options”, “is there a way”, “what would be a good stack”). The agent surveys, I decide, and the decisions that shape the project are mine.

The scale grades the artifact. A one-line “make me an app” and a project whose author set the architecture, overruled the agent’s stack and specified a zero-input-latency budget both come out as AI:X, and the video’s credit wording (“mostly AI written, own it”) assigns credit by who produced the text.

Patent law draws the line elsewhere. The USPTO’s 2024 guidance on AI-assisted inventions says “Reducing an invention to practice alone is not a significant contribution that rises to the level of inventorship”, that “Merely recognizing a problem or having a general goal or research plan to pursue does not rise to the level of conception”, and that “a significant contribution could be shown by the way the person constructs the prompt in view of a specific problem to elicit a particular solution”.5 Under that test the 0rwx level is beside the point. What counts is whether the human’s contribution to the solution was significant.

Copyright draws it closer to 0rwx. The US Copyright Office’s 2025 report concludes that “prompts do not alone provide sufficient control” over the output, while human selection, coordination or arrangement of AI output can be protected.6

0rwx’s W level is “I read the code” and its X level is “you can no longer read your work”. Reading is the only check it names. The checks used here are test suites, CI, sensor-gated loops that iterate until objective checks pass (Loop or graph: a sensor-gated coding-agent loop), a build diff of the activation plan before a router or NAS deploy, guards that block unverified specifics (Guard extensions that enforce prose and process rules), and using the thing: 4 of 18 mid-project prompts in the first sample were a report of something broken in use, usually a screenshot.

The video’s warning still applies to every one of those. A test written by the agent can pass while asserting the wrong thing, and “the agent tested it” is the sentence the video rejects. Being unable to read the code and being unable to check it are different states, and a label should say which checks exist.

The real limit on checking is where the agent supplied expertise I lack: firmware glitching methods, a protocol’s wire format, a decompiled plugin’s maths. There I cannot judge the output even at AI:W, because reading it does not tell me whether it is right. In a domain I know, a wrong design shows in its behaviour. The closest any policy here comes is Ghostty’s “The human-in-the-loop must fully understand all code”.7 That asks for comprehension of the code, which a reader can have and still be wrong about the domain, and it says nothing about who typed it.

The video’s tolerance argument has no slot in the labels. AI:X on a naming brainstorm and AI:X on the router configuration read the same, and several of the repos that change running systems have no tests. That is where the tolerance should be tightest.

In one repo the AGENTS.md design notes, the constraints and the acceptance are mine and the code is the agent’s. In one session the level moves from R (asking how firmware glitching works) to X (a worker building the plugin). A per-project label averages this away. The unit that fits is the change or the component.

I designed the harness the agent runs in: the guards, the skills, the gates and the routing rules (The pi harness journey). The USPTO guidance counts this kind of contribution too: “a person who designs, builds, or trains an AI system in view of a specific problem to elicit a particular solution could be an inventor”.5 0rwx looks only at the final artifact.

Bainbridge’s argument is about skill decay over time. A label is a snapshot and says nothing about whether the labeller can still do the work by hand.

Grading AI use and disclosing it are separate decisions, and projects handle them separately. Ghostty requires “All AI usage in any form must be disclosed” from outside contributors and exempts its maintainers.7 The Linux kernel removed its Assisted-by trailer on 2026-10-09 after “The Maintainers Summit reached consensus to deprecate the Assisted-by tag”.8 Gentoo has forbidden “any content that has been created with the assistance of Natural Language Processing artificial intelligence tools” since 2024-04-14.9 The harness described here bans AI-attribution trailers in commits, so the repos disclose nothing at any level; this page is the disclosure.

CRediT, a contributor taxonomy journals use to credit co-authors, lists 14 roles, among them Conceptualization, Methodology, Software, Validation, and “Writing - original draft” separately from “Writing - review & editing”.10 It already separates the idea from the writing, though it was designed for human co-authors.

IBM Research’s AI Attribution Toolkit, partly inspired by CRediT, generates a statement appended to a work from three questions: “How much work did the human do relative to the AI? What were the AI’s contributions? Who reviewed and approved the final work?” Its own paper carries “This work was produced without AI assistance (AIA No AI 1.0).”11 The toolkit also asks “Who initiated AI contributions?”, where AI-initiated means “AI made proactive contributions without human request, such as auto-completed suggestions or additions”.12 That records who triggered each AI contribution, not who conceived the work. It records review, which 0rwx does not.

Amazon KDP asks authors to disclose AI-generated content and draws its line by production: content “created by an AI-based tool” is AI-generated “even if you applied substantial edits afterwards”, while “if you used an AI-based tool to brainstorm and generate ideas, but ultimately created the text or images yourself, this is also considered ‘AI-assisted’”, which needs no disclosure.13 That is the reverse of the USPTO test: KDP treats the idea as minor and the production as decisive.

The USPTO and USCO tests and the three project policies are quoted in the sections above.

0rwx’s letters work as values on each axis instead of one per work:

idea:0 design:0/R knowledge:R/X build:X check:test+use stakes:low|prod
AxisValue hereMeaning
idea0the problem and goal are mine
design0, R where I picked from agent proposalsarchitecture and constraints are mine; the word game is R
knowledgeR in domains I know, X where the agent sourced the expertiseX marks the parts I cannot judge
buildXthe agent writes the artifact
checktest, probe, usenamed checks, not reading
stakeslow or prod, per repohow tight the check must be

This page, labelled the same way: idea 0 (the question of what 0rwx leaves out was mine), design R (the agent proposed the structure, I revised it), knowledge R/X (the agent found the legal and policy sources), build X (the agent wrote it), check: a fact-check by a second model that found three wrong claims, plus my review, which anonymised my projects. Stakes low. Under 0rwx alone it is AI:X, the level the framework’s own repository asks contributors to stay away from.

Who is the label for?A conversation abouthow you workReaders of the artifactA patent orcopyright questionOne 0rwx letteris enoughPer-axis label:idea, design, knowledge,build, check, stakesThe conception test(USPTO) or selection andarrangement (USCO)
  1. A quick conversation about how you work with AI: one 0rwx letter is enough, which is the use the video intends.
  2. Readers who will rely on the artifact: give the per-axis label, and name the checks and the stakes.
  3. A patent or copyright question: the 0rwx level is not the test. Use the USPTO conception test or the USCO selection-and-arrangement test.
ClaimHow it was checked
2,307 of 2,857 commits (81%) in 69 repos were agent commitscommit timestamps matched to the git audit log within 180 s, 2026-11-08
31 of 69 repos have no test filesfile listing per repo for test file patterns, same run
Loop manifests in the two compose repos check docs and a dashboardread both .pi/harness.json files
Founding asks and overrideseach checked against the stored message by session and message number, 2026-11-08; paraphrased on the page
Kuzu plus SQLite scaffold before Postgresthe knowledge graph repo’s first commit documents a Kuzu graph
0rwx definitions and the video’s argumentssite fetched and video transcribed, 2026-11-08
Legal and policy quoteseach source page fetched, 2026-11-08
Origination verdictsmy judgment from the quoted turns, not a measurement
  1. T. Oaten, “0rwx,” Namtao Productions, 0rwx.com. https://0rwx.com/ ↩ ↩2 ↩3

  2. L. Bainbridge, “Ironies of automation,” Automatica, vol. 19, no. 6, pp. 775-779, 1983. https://doi.org/10.1016/0005-1098(83)90046-8 ↩

  3. T. Oaten, “The 0rwx Framework,” No Boilerplate, YouTube. https://www.youtube.com/watch?v=E6-1u_savRs ↩

  4. T. Oaten, “0rwx.com,” Namtao Productions, GitHub. https://github.com/NamtaoProductions/0rwx.com/ ↩

  5. USPTO, “Inventorship Guidance for AI-Assisted Inventions,” Federal Register, 2024. https://www.federalregister.gov/d/2024-02623 ↩ ↩2

  6. U.S. Copyright Office, “Copyright and Artificial Intelligence, Part 2: Copyrightability,” 2025. https://www.copyright.gov/ai/Copyright-and-Artificial-Intelligence-Part-2-Copyrightability-Report.pdf ↩

  7. Ghostty, “AI Usage Policy,” GitHub. https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md ↩ ↩2

  8. S. Levin, “docs: remove Assisted-by references,” LWN.net. https://lwn.net/Articles/1099653/ ↩

  9. Gentoo Council, “AI policy,” Gentoo Wiki. https://wiki.gentoo.org/wiki/Project:Council/AI_policy ↩

  10. NISO, “CRediT - Contributor Role Taxonomy,” credit.niso.org. https://credit.niso.org/ ↩

  11. IBM Research, “AI Attribution Toolkit,” IBM Research Blog. https://research.ibm.com/blog/AI-attribution-toolkit ↩

  12. IBM Research, “constants.ts,” aiattribution.github.io source, GitHub. https://github.com/aiattribution/aiattribution.github.io/blob/main/src/lib/components/create-attribution-statement/constants.ts ↩

  13. Amazon, “Content Guidelines,” Kindle Direct Publishing Help. https://kdp.amazon.com/en_US/help/topic/G200672390 ↩