diff --git a/profile/README.md b/profile/README.md
index 4f3b725..1261909 100644
--- a/profile/README.md
+++ b/profile/README.md
@@ -2,7 +2,7 @@
# pia, brota
-Open Software Fabric made in RJ · in one minute · projects · how it fits · board · partnerships · license
+Open Software Fabric made in RJ · in one minute · why it is open · projects · how it fits · board · partnerships · license
[](#in-one-minute)
[](#license)
@@ -23,6 +23,17 @@
- **The org's domain is [piabrota.art](https://piabrota.art).** Projects come to it one path at a
time.
+## Why it is open
+
+- **Read it, use it, and build your own.** You can have your own ideas by reading or using piabrota's
+ repositories. They are live documentation, and proof of the human work behind the scenes, so that
+ others can build their own.
+- **Built with Claude Code, on the way to FOSS.** Claude Code builds piabrota's projects most of the
+ time, but we keep a permanent effort to make the piabrota platform [F]OSS.
+- **A philosophy, not only a saving.** Token optimization and open-source models, on Ollama and
+ Ollaya, are how we build open-source software on open-source software, as agentic and as affordable
+ as possible.
+
## Projects
| | Project | What it is | Website | Licence |
@@ -32,20 +43,23 @@
|
| [**alerts**](https://github.com/piabrota/alerts) | A generic alert platform. It collects alerts from official sources only, and delivers them to Discord and an Atom feed with CAP 1.2. The first hazard is floods in the south of Brazil. | none yet (piabrota.art/alerts, coming) | MPL-2.0 |
|
| [**rax**](https://github.com/piabrota/rax) | Rustic Agentic Runtime: a pure-Rust port of AX, the declarative orchestrator for agentic tasks on Agent Substrate. It keeps AX's API, so a manifest written for AX works here. | none | MPL-2.0, parts from AX Apache-2.0 |
|
| [**closed-source**](https://github.com/h0ffmann/closed-source) | *The god that failed*: a book on why closed source failed as a protection, for science first. Markdown in, PDF out, every reference checked, every release citable. | [h0ffmann.github.io/closed-source](https://h0ffmann.github.io/closed-source/) | text CC BY 4.0, code AGPL-3.0 |
-| 🎶 | **ihero** | A FOSS music player and game, in Rust. Coming. | none yet | MPL-2.0 |
+| 🎶 | [**ihero**](https://github.com/piabrota/ihero) | A FOSS music player and game, in Rust. Coming: the repository holds only its licence. | none yet | MPL-2.0 |
|
| [**nix-os**](https://github.com/piabrota/nix-os) | The NixOS configuration of the small VPS that serves piabrota.art/nixos. Every change is judged by what it adds to the closure and to memory. | [piabrota.art/nixos](https://piabrota.art/nixos) | MPL-2.0 |
+| 🤖 | [**agents**](https://github.com/piabrota/agents) | Small agents that watch nix-os and its VPS, and report on GitHub as piabrota-ops. They open pull requests and never merge. | none | MPL-2.0 |
+|
| [**mu**](https://github.com/piabrota/mu) | The company chart: the dogma, the standards, the journal and the index of the org's repositories. | none | CC BY 4.0, AGPL-3.0, MPL-2.0 |
+| 道場 | [**dojo**](https://github.com/piabrota/dojo) | The umbrella of the piabrota projects. Being set up. | none yet | MPL-2.0 |
-The drawings load from each project's repository at a pinned commit; none is copied here. ihero
-has no repository yet, so it has no drawing.
+The drawings load from each project's repository at a pinned commit; none is copied here. ihero,
+agents and dojo have no drawing yet.
## How it fits
-
+
How to read this figure
-**Takeaway.** Seven open projects, each on its own; three of them meet the web at piabrota.art.
+**Takeaway.** Ten open projects, each on its own; three of them meet the web at piabrota.art.
**How to read.** One lane per kind of work. An arrow means "is served at", and its label is the
path; "coming" means planned, not live. The red border marks the domain.
diff --git a/profile/archify/crop.tsv b/profile/archify/crop.tsv
index e18aef5..216981a 100644
--- a/profile/archify/crop.tsv
+++ b/profile/archify/crop.tsv
@@ -1 +1 @@
-fabric 560
+fabric 680
diff --git a/profile/archify/fabric.json b/profile/archify/fabric.json
index c48ddc3..453f152 100644
--- a/profile/archify/fabric.json
+++ b/profile/archify/fabric.json
@@ -1,129 +1 @@
-{
- "schema_version": 2,
- "diagram_type": "workflow",
- "meta": {
- "title": "The piabrota fabric: seven open projects, and where they meet the web",
- "locale": "en",
- "quality_profile": "showcase",
- "legend": {
- "mode": "hidden"
- },
- "output": "fabric.html"
- },
- "lanes": [
- {
- "id": "think",
- "label": "Think and write"
- },
- {
- "id": "serve",
- "label": "Warn and host"
- },
- {
- "id": "play",
- "label": "Play and listen"
- },
- {
- "id": "web",
- "label": "On the web"
- }
- ],
- "mainPath": [
- "pirsig",
- "site"
- ],
- "nodes": [
- {
- "id": "gramatico",
- "lane": "think",
- "col": 0,
- "type": "backend",
- "label": "gramatico",
- "sublabel": "plain pt-BR, a Claude Code plugin",
- "width": 240
- },
- {
- "id": "pirsig",
- "lane": "think",
- "col": 1,
- "type": "frontend",
- "label": "pirsig",
- "sublabel": "a second brain, PARA and slip-box",
- "width": 240
- },
- {
- "id": "closed",
- "lane": "think",
- "col": 2,
- "type": "backend",
- "label": "closed-source",
- "sublabel": "a book, markdown in, PDF out",
- "width": 240
- },
- {
- "id": "alerts",
- "lane": "serve",
- "col": 0,
- "type": "backend",
- "label": "alerts",
- "sublabel": "official flood alerts, CAP 1.2",
- "width": 240
- },
- {
- "id": "rax",
- "lane": "serve",
- "col": 1,
- "type": "backend",
- "label": "rax",
- "sublabel": "an agentic runtime on k8s, Rust",
- "width": 240
- },
- {
- "id": "nixos",
- "lane": "serve",
- "col": 2,
- "type": "database",
- "label": "nix-os",
- "sublabel": "the NixOS VPS",
- "width": 240
- },
- {
- "id": "ihero",
- "lane": "play",
- "col": 2,
- "type": "frontend",
- "label": "ihero",
- "sublabel": "a music player and game, Rust",
- "width": 240
- },
- {
- "id": "site",
- "lane": "web",
- "col": 1,
- "type": "external",
- "label": "piabrota.art",
- "sublabel": "the org's domain",
- "width": 240
- }
- ],
- "edges": [
- {
- "id": "e1",
- "from": "alerts",
- "to": "site",
- "label": "/alerts"
- },
- {
- "id": "e2",
- "from": "pirsig",
- "to": "site",
- "label": "/pirsig, coming"
- },
- {
- "id": "e3",
- "from": "nixos",
- "to": "site",
- "label": "/nixos"
- }
- ]
-}
+{"schema_version": 2, "diagram_type": "workflow", "meta": {"title": "The piabrota fabric: ten open projects, and where they meet the web", "locale": "en", "quality_profile": "showcase", "legend": {"mode": "hidden"}, "output": "fabric.html"}, "lanes": [{"id": "company", "label": "The company"}, {"id": "think", "label": "Think and write"}, {"id": "serve", "label": "Warn and host"}, {"id": "play", "label": "Play and listen"}, {"id": "web", "label": "On the web"}], "mainPath": ["pirsig", "site"], "nodes": [{"id": "mu", "lane": "company", "col": 0, "type": "database", "label": "mu", "sublabel": "the company chart", "width": 200}, {"id": "dojo", "lane": "company", "col": 1, "type": "database", "label": "dojo", "sublabel": "the umbrella, being set up", "width": 200}, {"id": "gramatico", "lane": "think", "col": 0, "type": "backend", "label": "gramatico", "sublabel": "plain pt-BR, a plugin", "width": 200}, {"id": "pirsig", "lane": "think", "col": 1, "type": "frontend", "label": "pirsig", "sublabel": "a second brain", "width": 200}, {"id": "closed", "lane": "think", "col": 2, "type": "backend", "label": "closed-source", "sublabel": "a book, md in, PDF out", "width": 200}, {"id": "alerts", "lane": "serve", "col": 0, "type": "backend", "label": "alerts", "sublabel": "official flood alerts", "width": 200}, {"id": "rax", "lane": "serve", "col": 1, "type": "backend", "label": "rax", "sublabel": "an agentic runtime", "width": 200}, {"id": "nixos", "lane": "serve", "col": 2, "type": "database", "label": "nix-os", "sublabel": "the NixOS VPS", "width": 200}, {"id": "ihero", "lane": "play", "col": 2, "type": "frontend", "label": "ihero", "sublabel": "music and a game, Rust", "width": 200}, {"id": "site", "lane": "web", "col": 1, "type": "external", "label": "piabrota.art", "sublabel": "the org's domain", "width": 200}, {"id": "agents", "lane": "serve", "col": 3, "type": "backend", "label": "agents", "sublabel": "watch nix-os, report", "width": 200}], "edges": [{"id": "e1", "from": "alerts", "to": "site", "label": "/alerts"}, {"id": "e2", "from": "pirsig", "to": "site", "label": "/pirsig, coming"}, {"id": "e3", "from": "nixos", "to": "site", "label": "/nixos"}]}
diff --git a/profile/archify/figures.lock b/profile/archify/figures.lock
index 704586a..a67f535 100644
--- a/profile/archify/figures.lock
+++ b/profile/archify/figures.lock
@@ -1 +1 @@
-fabric be029bbedb8bdd52-208acba
+fabric 8f7431072134975f-208acba
diff --git a/profile/img/fabric.png b/profile/img/fabric.png
index 1665716..ab270a0 100644
Binary files a/profile/img/fabric.png and b/profile/img/fabric.png differ