Shoddy Documentation
Who made this, how it was made, and with what tools
Shoddy — the language design, its specification, its documentation, its standard library of machines, its toolchain, its test suite, this website, its name, and its tagline — was conceived, designed, directed, curated, and is owned by Stephen Vincent Foster. Every design decision in the language was a human decision: what Shoddy would be, what it would refuse to be, what entered it, and what was kept out of it. So were its name and the order in which it was built. Copyright in the works of this project is claimed by their author. It is licensed to the public under the MIT License — a permissive open-source license, under which anyone may use, copy, and change the work.
This page exists for two reasons. First, to state that claim plainly and put the evidence for it on the record. Second, to disclose honestly how the work was made — including the use of an AI system as a development tool. Honest disclosure is both the emerging norm and, as it happens, the position the law rewards.
Shoddy was developed with Claude (Anthropic), an AI coding tool. It was used throughout as a drafting instrument: it produced code and prose drafts in response to the author's directions, within constraints the author set, subject to the author's acceptance, rejection, and revision. Development also used compilers — programs that translate source code into runnable form (GCC, the .NET SDK and Roslyn) — editors (VS Code), converters (pandoc), and continuous integration (GitHub Actions — a service that builds and tests the code automatically after every change). This page refers to the AI system only as a tool, because that is what it was in this project's process. It was an instrument operated by a person, in the same category as the compiler and the typesetter — faster than both, and no more the author than either.
The division of labor was consistent from the first message to the last. The tool drafted. The author decided. Nothing entered the language without being commissioned, and nothing stayed in it without being accepted. The author:
The record below shows this in the author's own words.
The development of Shoddy is documented in a contemporaneous conversation log — one kept as the work happened — the DEVLOG. Every message from the author is preserved there verbatim, typos included, deliberately, as part of the record. The table below condenses Part I of that log: the invention of the language, from the first question to the naming, in July 2026. The left column is what the author wrote, exactly as written. The right column is what each instruction did to the language.
| The author's words, verbatim | What the words decided |
|---|---|
| “what would a computer language, built on BASIC, but with structured idents instead of begin/end style, and purely functional look like?” | Framed the entire project in one sentence: BASIC's vocabulary, indentation for structure, purity as law. Everything since is an elaboration of this question. |
| “in stead of algebraic, how 'bout stack? something like forth?” | Chose the concatenative core — a design in which words hand values to each other on a stack, a last-in-first-out pile. This was the single most consequential design decision in the language. The stack engine underneath the algebraic surface exists because of this message. |
| “instead, please make it C” | Chose the implementation language for the reference interpreter. |
| “what would this look like standard parenthesis for arguments? and with type definitions (only describe,dont change deliverables)” | Commissioned the typed algebraic surface — and withheld permission to change anything yet. The two-dialect design, and the discipline of describe-before-build, both start here. |
| “what is the purpose of the [].... seems noisy” | An aesthetic judgment that became the auto-quoting rule. Bare names at quotation-typed positions, sections, and the bracket-reduction ladder all follow from this objection. |
| “can we not get rid of sigis compeltly?” | Abolished BASIC's sigils — the punctuation marks BASIC hangs on a name — entirely: ! % # $ ? are all reserved. The change produced the Is-prefix predicate convention and the de-sigiled string library. |
| “thoughts on changing LIST to VECTOR and adding ARRAY?” … “don't do it yet... just an answer please” | The rename was argued against, and the author accepted the argument. The addition was approved and later built. A feature was proposed, judged, half-refused, and gated — by the author. |
| “what 'bout TUPLE(name AS STRING, age AS NUMBER)?” | Put records into the language. The spelling changed (Type, on QuickBASIC precedent) but the feature is this message's. |
| “is it time for a MATRIX type?” | Produced the library-not-builtin policy — MATRIX yes, builtin no — and forced Include into existence. The standard library exists because of this exchange. |
| “create one for the FOLD and MAP type words -- include the usual suspects.” | Commissioned the sequence machine. Its first real use immediately exposed that quotations were not closures — functions that remember the variables around them — and that forced lexical scoping into the language. |
| “the spec is a bit heavy. keep it...but write a beginners guide. don't presume a deep knowledge of the topic. give examples. show the syntatical sugar differences. before doing this...what would you suggest as the outline?” | Set the documentation program: audience, register, method — and required the outline for approval before the writing. |
| “btw -- did we allow for console input?” … “what other commodity features did we miss?” | Ordered the completeness audit that produced Input, the ^ operator, the math library, string escapes, and short-circuit And/Or. |
| “can we turn that ugly if/then/else in GRADE() into pattern matching?” | Called Select Case into being — as an expression, with all the classic clause forms. |
| “yes, deconstruct the types” | Added destructuring patterns with field binding and Where guards. |
| “if we add the following types, what compexity does that add: bit, short, integer / long, decimal(precision,scale), char” | The great refusal: all five types examined and rejected, preserving the language's one-number-type simplicity. What is not in Shoddy is as authored as what is. |
| “let's add binary block-io. with SEEK(byte-position), and GET/PUT methods, for each type if necessary. specify fixed maximum length for strings. use binary or fixed termination” | Specified the binary record I/O design — down to the seek semantics and the fixed-length string fields — before a line of it was drafted. |
| “now for something more complicated. i need and index-sequential-access-method library. describe approach and words. don't do anythinbg yet” | Commissioned ISAM, the library that proved the language — and again required the design on paper, and approval, before the build. |
| “we have a branding change. no longer 'stackbasic'. 'shoddy', tag line 'making useless things useful, through skill.' update everything, including file names” | Named the language, installed the tagline, and connected the project to the shoddy mills of the West Riding — from which the mill, the machines, and the devil all later took their names. |
The record continues past the naming: the PascalCase restyling, the VS Code extension, the pivot to .NET, the decision that Shoddy would be 100% compiled, and the naming of the mill and its machines. Each followed the same pattern: the author directs, constrains, refuses, and accepts, and the tool drafts within those bounds. The full log, with every reply summarized and every human message untouched, is published here: the DEVLOG.
United States law now speaks clearly to projects made this way. It is worth setting out what the law actually says — both because it supports the claim above and because it disciplines it.
A machine cannot be an author. A person using a machine can be. In Thaler v. Perlmutter, No. 23-5233 (D.C. Cir. Mar. 18, 2025), cert. denied (U.S. Mar. 2, 2026 — meaning the Supreme Court declined to review it), the Court of Appeals held that the Copyright Act requires a human author. A work generated autonomously by a machine — where the human claims no creative role at all — has none. That case is the opposite of this project. Dr. Thaler insisted his machine created the work by itself. The record above shows a person making every decision that shaped this one. The court itself was careful to note that its holding does not reach works made by humans using AI tools.
Using an AI tool does not diminish protection; abdicating to one does. The U.S. Copyright Office's report Copyright and Artificial Intelligence, Part 2: Copyrightability (Jan. 2025) draws the operative line: “there is an important distinction between using AI as a tool to assist in the creation of works and using AI as a stand-in for human creativity.” Assistive use does not limit protection at all. Where a system drafts content, the Office identifies three ways human authorship attaches:
All three describe this project. The report also warns that prompts alone — instructions tossed to a system whose output the human merely adopts — do not make their writer an author. That warning is why this page rests the claim not on the fact that the author wrote the prompts, but on what the record shows those prompts to be. The record shows sustained creative control over the design, contents, arrangement, naming, and acceptance of the whole work. It also shows substantial expression contributed and revised directly by the author across the specification, documentation, tests, and repository.
The registration decisions mark both edges. In Zarya of the Dawn (U.S. Copyright Office, Feb. 2023), the Office registered the human author's text and her creative selection and arrangement of a comic book, while excluding the raw machine-generated images as such. The human contribution was protected. The machine output alone was not. In Thé├ótre D'Opéra Spatial (Review Board, Sept. 2023), registration was refused where the claim rested on prompting alone — a refusal now under challenge in Allen v. Perlmutter, No. 1:24-cv-2665 (D. Colo., pending). Shoddy's claim is built on the Zarya side of that line. The DEVLOG is the evidence that it belongs there: contemporaneous documentation of the human contribution — exactly what the Office and current practice guidance recommend keeping.
And one limit is acknowledged rather than contested. Copyright protects expression, not systems or methods of operation (17 U.S.C. § 102(b); cf. Google v. Oracle, 593 U.S. 1 (2021)). The abstract rules of the Shoddy language — its grammar, its semantics, the idea of a purely functional BASIC over a concatenative core — are a method anyone is free to reimplement. What copyright protects is the expression of this project: the specification's text, the guide, the reference, the tutorials, this site, the machines' source, the tests, and the record itself. Stating that boundary honestly costs the claim nothing. It is where the boundary sits for every programming language ever published.
Claimed: authorship and copyright in the works of this project — the specification, the beginner's guide, the reference, the tutorials, the website, the standard library machines, the mill and its source, the test suite, the DEVLOG, and the name and tagline as used here. These are claimed as works created by a human author exercising creative control. The machine-drafted portions are embodied in them through that author's direction, selection, arrangement, and revision. The claim runs to the full extent United States law protects such works.
Not claimed:
The claim of ownership and the openness of the license are not in tension. One must own a thing to license it, and this page is the account of that ownership.
I conceived Shoddy, directed its design, and made every decision recorded above. I wrote and revised its documents, structured its repository, set its acceptance criteria, and named it. I take responsibility for all of it — including the portions first drafted by a tool at my direction. I used Claude (Anthropic) as a development tool, openly, and this page discloses that use in the interest of honesty and the historical record. I claim authorship and ownership of this project in good faith and to the full extent of the law.
Stephen Vincent Foster
August 2, 2026
Thaler v. Perlmutter, No. 23-5233 (D.C. Cir. Mar. 18, 2025) (opinion), cert. denied (U.S. Mar. 2, 2026) · U.S. Copyright Office, Copyright and Artificial Intelligence, Part 2: Copyrightability (Jan. 2025) · U.S. Copyright Office, Zarya of the Dawn registration decision (Feb. 2023) · Copyright Review Board, Thé├ótre D'Opéra Spatial decision (Sept. 2023) · Copyright Office AI initiative (registration guidance, Mar. 2023) · OpenInfra Foundation AI policy · 17 U.S.C. § 102(b) · Google v. Oracle, 593 U.S. 1 (2021).
This page is a disclosure and a declaration, not legal advice.