Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/commands/update-ouroboric.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ for this run; still keep both files complete.
line what it is, and names the notable works or tools that the file lists, with only the URLs
that the file gives.
5. In the header table of both files, record each repository at its new full commit hash and the
date read. `ouroboric-dev/contact` is private; say so, and do not guess its contents.
date read. A private repository (`huldra`, and `ouroboric-dev/contact` if it still exists) is named as private; do not guess its contents.
6. Never invent a fact, a quotation or a URL. If a source is unclear, say that it is unclear.
Ouroboric's names and logos are trademarks and are not licensed here: describe them, do not copy
logo files into this repository.
Expand Down
12 changes: 11 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,16 @@
]
},
"enabledPlugins": {
"mattpocock-skills@claude-plugins-official": true
"mattpocock-skills@claude-plugins-official": true,
"compound-engineering@compound-engineering-plugin": true
},
"extraKnownMarketplaces": {
"compound-engineering-plugin": {
"source": {
"source": "github",
"repo": "EveryInc/compound-engineering-plugin",
"ref": "compound-engineering-v3.30.3"
}
}
}
}
1 change: 1 addition & 0 deletions .claude/skills/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ names the file and the commit it was read from (AGENTS.md, "Borrow, cite, propag
| [`ouro-get`](ouro-get/SKILL.md) | get the full text of a work that is free to copy, as is, into `works/`, with its licence marked and indexed (`scripts/ouro-get.sh`, `works/index.md`); a citation only when it is not free | Lei 9.610/98 (planalto.gov.br); Cornell's public domain chart; the Project Gutenberg License |
| [`ouro-timeline`](ouro-timeline/SKILL.md) | draw the thinkers' lives on one timeline, one scale everywhere, empty centuries cut out (`tools/fabric timeline`, `timeline/`) | the site's tokens (`site/static/style.css`); h0ffmann/picasso `site/static/drawings/` at `29eb385`; Wikidata |
| [`print`](print/SKILL.md) | print an essay as one page, as a PDF whose text cannot be selected (`scripts/print.sh`, `PRINTING.md`) | written for this repository |
| `archify` (not written here) | draw a flow, a sequence or a structure as an explorable HTML page with inline SVG (`just archify`, `docs/archify/`) | tt-a1i/archify v3.0.1 at `2ab3cae` (MIT): the submodule `vendor/archify`, not a copy; `.claude/skills/archify` links to it, so the lock does not pin it |

## The lock

Expand Down
1 change: 1 addition & 0 deletions .claude/skills/archify
6 changes: 4 additions & 2 deletions .claude/skills/ouro-get/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,10 @@ skill. Report: the file, its lines, the licence reasoning, and anything you were

## Sources

- Lei 9.610/98, arts. 7 XI, 41, 43, 46 III, read at
<https://www.planalto.gov.br/ccivil_03/leis/l9610.htm> on 15 October 2026.
- Lei 9.610/98, arts. 7 XI, 41, 43, 46 III, read at `https://www.planalto.gov.br/ccivil_03/leis/l9610.htm`
on 15 October 2026. That host does not answer outside Brazil, so the live-links check cannot
open it; the same law in the Câmara dos Deputados' collection:
<https://www2.camara.leg.br/legin/fed/lei/1998/lei-9610-19-fevereiro-1998-365399-publicacaooriginal-1-pl.html>.
- Cornell University Library, "Copyright Term and the Public Domain in the United States", read
at <https://guides.library.cornell.edu/copyright/publicdomain> on 15 October 2026: works
published before 1931 are in the public domain.
Expand Down
4 changes: 2 additions & 2 deletions .claude/skills/skills.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
"version": 1,
"note": "every skill here was written for this repository; none is a copy. SOURCES in each SKILL.md and in README.md say what each one read. sha256 of each file, checked by scripts/readme.sh --check.",
"files": {
"README.md": "d776fed8202f51b478effe71862d1ee1f10b9949c4789af02def06c1c614d83b",
"README.md": "7f36968db06c33320421eebedebdfc485ce9264476d66410244103548cc60911",
"card-style/SKILL.md": "42755313375b690efb8f47fd3fd73f29eba21e07c04612c980cd2abbdfd70941",
"citation-score/SKILL.md": "7f58cb381bc9dc0d0a6536e5b56f3bd826b61c057c80ada2f95349a0abba0a24",
"easy-pt-br/SKILL.md": "5d7d5383721c3cd38694a425d9b449f8f70ad064ffd4179636bcbeb24eada7ba",
"essay-montaigne/SKILL.md": "f90df85e089a3b7d3b30977cd12b579879fb95b9ca4d568413102d408042ab02",
"ouro-get/SKILL.md": "66372f90f9bef61e612839a34100d2e18a45923bbcc3f1f56d659da1777a2eae",
"ouro-get/SKILL.md": "6d2dc8f2f7a63090762fc6b89818fae636e37ca8a53b764698ad1713580b1340",
"ouro-get/evals/evals.json": "7c964b1e7abd65c3e7aec13ef14fd8e5f9cd493e5b1a6765c84cc7be228cbd7e",
"ouro-timeline/SKILL.md": "476bbc55f384a8400e6654c7cf5633a7eb93a0a32e2a343685f34b81fd3d4133",
"print/SKILL.md": "aed29a140edf43f5ad8d9aed116f3e4e5b9289c1aeb35b69ac0ae25154ad06e3",
Expand Down
16 changes: 16 additions & 0 deletions .compound-engineering/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Compound Engineering defaults for closed-source (AGENTS.md, "Engineering work: the compound loop").
# After h0ffmann/ww3-gpu's .compound-engineering/config.yaml at 60189b0. AGENTS.md wins where it is stricter.

# docs/ holds the charter, the ways of working and the change proposals; the loop gets its own folder.
docs_root: docs/compound

# Plans and brainstorms in Markdown, so the .md quality checks read them.
brainstorm_output: md
plan_output: md

# The cross-model review pass would send the diff to a second provider; the owner asks per run.
cross_model_review_mode: "off"

# No standing PR watch; humans merge (AGENTS.md, invariant 8).
pr_teaching_section: false
auto_babysit: false
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ graphify-out/
unison/.codebase/
unison/refpulse/install.output.md
.unisonHistory
# Archify: pages are rendered from docs/archify/*.json (scripts/archify.sh render); receipts are run evidence
.archify/
docs/archify/*.html
docs/archify/*.finalize*.json
docs/archify/*.delivery*.json
docs/archify/*.browser-check.json
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,7 @@
path = forks/marola
url = https://github.com/marola-dev/marola.git
shallow = true
[submodule "vendor/archify"]
path = vendor/archify
url = https://github.com/tt-a1i/archify.git
shallow = true
8 changes: 7 additions & 1 deletion .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"title": "Closed Source: The God that Failed",
"upload_type": "publication",
"publication_type": "book",
"description": "<p><strong>The book as a PDF, in the shape it is printed:</strong> read it in the browser at <a href=\"https://h0ffmann.github.io/closed-source/paper.pdf\">https://h0ffmann.github.io/closed-source/paper.pdf</a>, or download it from the newest release at <a href=\"https://github.com/h0ffmann/closed-source/releases/latest/download/closed-source.pdf\">https://github.com/h0ffmann/closed-source/releases/latest/download/closed-source.pdf</a>. The files of this record are the source that builds that PDF.</p><p>A position paper arguing that closed source has failed as a protection, for science first. Large language models now decompile binaries into re-executable source; black-box queries extract parts of production models; distillation copies capabilities at industrial scale; and the largest 2026 trade-secret dispute in artificial intelligence, Apple's suit against OpenAI, turns on people, laptops and recruiting rather than on code that stayed secret.</p><p>Against this background the paper revisits Linus Torvalds' Linux and Git as evidence that openness scales, and the author's closed undergraduate thesis as evidence of what secrecy costs a researcher. It argues that the ethical answer to universal reverse engineering is professional citation, proposes three rules for AI agents (borrow, cite, propagate), and describes Paper Fabric, the open pipeline in the Ouroboric style that produced it.</p><p>This record is a book. It has not been peer reviewed. It holds the source of the book at the release tag: the Markdown text, the build and the agent configuration. The rendered PDFs are attached to the GitHub release of the same tag.</p><p>The writer develops in the open. His three other works each have a permanent DOI, and this record cites all three: marola, an open, non-profit platform for sea conditions and bathing-water quality, written with five other people (<a href=\"https://doi.org/10.5281/zenodo.23224155\">10.5281/zenodo.23224155</a>); WW3 GPU Lab, a bit-for-bit GPU port of WAVEWATCH III (<a href=\"https://doi.org/10.5281/zenodo.23221351\">10.5281/zenodo.23221351</a>); and picasso, Nix flakes for scientific and agentic toolchains, which builds this book (<a href=\"https://doi.org/10.5281/zenodo.23311208\">10.5281/zenodo.23311208</a>). The book is made in the Ouroboric style, and the Ouroboric ideas are Bruno Valério's (<a href=\"https://github.com/ouroboric-dev/ouroboric\">https://github.com/ouroboric-dev/ouroboric</a>); Ouroboric has no DOI yet, so this record cites it by its address.</p>",
"description": "<p><strong>The book as a PDF, in the shape it is printed:</strong> read it in the browser at <a href=\"https://h0ffmann.github.io/closed-source/paper.pdf\">https://h0ffmann.github.io/closed-source/paper.pdf</a>, or download it from the newest release at <a href=\"https://github.com/h0ffmann/closed-source/releases/latest/download/closed-source.pdf\">https://github.com/h0ffmann/closed-source/releases/latest/download/closed-source.pdf</a>. The files of this record are the source that builds that PDF.</p><p>A position paper arguing that closed source has failed as a protection, for science first. It reads the case through Robert M. Pirsig's <em>Zen and the Art of Motorcycle Maintenance</em> (1974), the book it stands on: the number of rational hypotheses that can explain a phenomenon is infinite, so science never closes, and a method that only its owner can open is one that nobody else can test. Large language models now decompile binaries into re-executable source; black-box queries extract parts of production models; distillation copies capabilities at industrial scale; and the largest 2026 trade-secret dispute in artificial intelligence, Apple's suit against OpenAI, turns on people, laptops and recruiting rather than on code that stayed secret.</p><p>Against this background the paper revisits Linus Torvalds' Linux and Git as evidence that openness scales, and the author's closed undergraduate thesis as evidence of what secrecy costs a researcher. It argues that the ethical answer to universal reverse engineering is professional citation, proposes three rules for AI agents (borrow, cite, propagate), and describes Paper Fabric, the open pipeline in the Ouroboric style that produced it.</p><p>This record is a book. It has not been peer reviewed. It holds the source of the book at the release tag: the Markdown text, the build and the agent configuration. The rendered PDFs are attached to the GitHub release of the same tag.</p><p>The writer develops in the open. His three other works each have a permanent DOI, and this record cites all three: marola, an open, non-profit platform for sea conditions and bathing-water quality, written with five other people (<a href=\"https://doi.org/10.5281/zenodo.23224155\">10.5281/zenodo.23224155</a>); WW3 GPU Lab, a bit-for-bit GPU port of WAVEWATCH III (<a href=\"https://doi.org/10.5281/zenodo.23221351\">10.5281/zenodo.23221351</a>); and picasso, Nix flakes for scientific and agentic toolchains, which builds this book (<a href=\"https://doi.org/10.5281/zenodo.23311208\">10.5281/zenodo.23311208</a>). The book is made in the Ouroboric style, and the Ouroboric ideas are Bruno Valério's (<a href=\"https://github.com/ouroboric-dev/ouroboric\">https://github.com/ouroboric-dev/ouroboric</a>); Ouroboric has no DOI yet, so this record cites it by its address.</p>",
"creators": [
{
"name": "Hoffmann, Matheus",
Expand Down Expand Up @@ -109,6 +109,12 @@
"relation": "cites",
"scheme": "doi",
"resource_type": "publication-book"
},
{
"identifier": "0688002307",
"relation": "references",
"scheme": "isbn",
"resource_type": "publication-book"
}
],
"notes": "Text CC BY 4.0. The record is the source tree at the release tag, archived by Zenodo from the GitHub release; the rendered PDFs are attached to that GitHub release. Build scripts are AGPL-3.0-only and the LaTeX template is MIT. Drafted with a Claude coding agent under the author's direction; see the paper's AI-use statement."
Expand Down
36 changes: 34 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ linked docs before you change what they cover.
- The quality of the Markdown files: `just md-quality` (markdownlint-cli2, Vale, lychee), and its
rules in `docs/4-ways-of-working/md-quality.md`.
- Issue and pull request labels: `ISSUE_LABELS.md`.
- Engineering work: the compound loop (below), `docs/compound/`; drawings: `docs/archify/`.
- Where the memory of this repository is, the long-term memory (ai-memory) and the code
graph (graphify): `MEMORY.md`.

Expand All @@ -56,7 +57,7 @@ linked docs before you change what they cover.
10. Work on a branch, stage files by path, and open a pull request for every change.

Invariants 8 to 10 follow Ouroboric's AGENTS.md (invariants 3, 5 and 8; ouroboric-dev/ouroboric at
`b355b1d`, CC BY 4.0).
`35e6d33`, read on 18 October 2026, CC BY 4.0).

## The book (hard rule)

Expand Down Expand Up @@ -157,14 +158,45 @@ is cited, and friends under an alias from `PERSONAS.md`. `/note` makes them; `ju
- `unison/refpulse/` is a Unison service the site's Live button calls (`just unison-*`). What it
answers is live, never a fact of the book; the site works when it is down.
- A skill in `.claude/skills/` is written here and names its sources; do not copy a skill from
another repository. After a change to one, run `scripts/readme.sh --lock`.
another repository. After a change to one, run `scripts/readme.sh --lock`. A vendored skill
is the one exception: a pinned submodule under `vendor/`, linked (a symbolic link) from
`.claude/skills/<name>`, never copied, and not in the lock. The owner approved this for
`archify` (`vendor/archify`, tt-a1i, MIT) on 18 October 2026 (`docs/archify/README.md`).
- The book's colours are black and red, with yellow letters for the title, after Hoppe's
*Democracy: The God That Failed* (Hoffmann, 13 October 2026). No brown: not on the site, the
slides or a badge.
- Style: `research` for papers (Ouroboric writing styles), `agent-facing` for this file.
- Short sentences. Active voice. No undefined jargon. Numbers over adjectives.
- Every doc has front matter: `title`, `status`, `date`, `related`, optional `style`.

## Engineering work: the compound loop

The owner, 18 October 2026, as in ww3-gpu: when the owner guides engineering work (a tool, a
check, a script, the site), agents follow Compound Engineering's loop. The plugin
(`compound-engineering@compound-engineering-plugin`, EveryInc, MIT) is enabled in
`.claude/settings.json`, pinned to `compound-engineering-v3.30.3`. The book's text is not
engineering work: notes, essays and prose follow their own rules above.

| Size | Example | Steps |
|---|---|---|
| Small | a fix in one file, a doc, a flag | work, `just check`, a pull request |
| Medium | a tool, a check, a recipe | `/ce-plan`, `/ce-work`, `/ce-code-review`, `/ce-compound` when the lesson is not obvious from the diff |
| Large | a new tool family, a change to the build | `/ce-brainstorm` first, then the medium loop |

Where a step's default clashes with a rule of this file, the rule wins:

- Plans go to `docs/compound/plans/`, learnings to `docs/compound/solutions/`
(`.compound-engineering/config.yaml`).
- `/ce-work` works on a branch and opens a pull request; it never merges, tags or releases
(invariants 6 and 8).
- `/ce-code-review` reports and does not rewrite. Its cross-model pass is off, because it would
send the diff to another provider; the owner can ask for it in a run.
- `/ce-compound` never edits this file or `CLAUDE.md` unless the owner agrees in that session.
- `/lfg` (the whole pipeline unattended) runs only when the owner asks for it.

Drawings of a flow use the `archify` skill; their sources and PDFs live in `docs/archify/`
(`just archify`).

## Checks before a pull request

1. `just check` passes with no pandoc warning.
Expand Down
3 changes: 2 additions & 1 deletion BOOKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
# Books

Three books are behind this repository, and a fourth is the economic case beside the third. They
are background reading. The paper does not cite them, so they are not in `refs.bib`. If a later
are background reading. Since 18 October 2026 the paper cites the first one, *Zen and the Art of
Motorcycle Maintenance* (`pirsig1974zen` in `refs.bib`); it does not cite the others. If a later
version of the paper uses one of them, add the entry to `refs.bib` and log it in
`papers/closed-source/REFERENCES.md`, as AGENTS.md says.

Expand Down
13 changes: 8 additions & 5 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,14 @@ abstract: >-
https://github.com/h0ffmann/closed-source/releases/latest/download/closed-source.pdf. The files
of this record are the source that builds that PDF.

A position paper arguing that closed source has failed as a protection, for science first. Large
language models now decompile binaries into re-executable source; black-box queries extract
parts of production models; distillation copies capabilities at industrial scale; and the
largest 2026 trade-secret dispute in artificial intelligence, Apple's suit against OpenAI, turns
on people, laptops and recruiting rather than on code that stayed secret.
A position paper arguing that closed source has failed as a protection, for science first. It
reads the case through Robert M. Pirsig's Zen and the Art of Motorcycle Maintenance (1974), the
book it stands on: the number of rational hypotheses that can explain a phenomenon is infinite,
so science never closes, and a method that only its owner can open is one that nobody else can
test. Large language models now decompile binaries into re-executable source; black-box queries
extract parts of production models; distillation copies capabilities at industrial scale; and
the largest 2026 trade-secret dispute in artificial intelligence, Apple's suit against OpenAI,
turns on people, laptops and recruiting rather than on code that stayed secret.

Against this background the paper revisits Linus Torvalds' Linux and Git as evidence that
openness scales, and the author's closed undergraduate thesis as evidence of what secrecy costs
Expand Down
2 changes: 1 addition & 1 deletion ISSUE_LABELS.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ keyword changes in `.zenodo.json`, change its label here.
## A2A: messages to and from ouroboric-dev

Issues that carry a message between this project and the ouroboric-dev project, through
`ouroboric-dev/contact` (Portuguese: *contato*). This follows the A2A pattern of picasso's
`ouroboric-dev/contact` (Portuguese: *contato*). On 18 October 2026 that repository did not answer (GitHub: 404, and not in the organisation's list): it was removed, renamed or closed to this account; ask the owner before you open an issue there. This follows the A2A pattern of picasso's
AGENTS.md, "Messages between Claude projects". The label tells whose turn it is. An issue has one
of the two labels, never the two.

Expand Down
Loading
Loading