diff --git a/profile/README.md b/profile/README.md
index a2a04ea..3b9b7f8 100644
--- a/profile/README.md
+++ b/profile/README.md
@@ -27,25 +27,27 @@
## Projects
-| | Project | What it is | Licence |
-|:---:|---|---|---|
-|
| [**pirsig**](https://github.com/h0ffmann/pirsig) | A second brain: PARA and a Zettelkasten slip-box in one place. A Rust app with a desktop app, a REST API and a terminal CLI, `psg`, on one model layer. | MPL-2.0 |
-|
| [**ptbr-writer**](https://github.com/h0ffmann/ptbr-writer) | Rewrites technical text in Brazilian Portuguese so that it reads once: explicit subject, one proposition per sentence. A Claude Code plugin; it marks with `โ ` what it did not check. | MPL-2.0 |
-|
| [**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. | MPL-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. | text CC BY 4.0, code AGPL-3.0 |
-| ๐ถ | **ihero** | A FOSS music player and game, in Rust. Coming. | 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. | MPL-2.0 |
-
-The drawings load from each project's repository at a pinned commit; none is copied here.
+| | Project | What it is | Website | Licence |
+|:---:|---|---|---|---|
+|
| [**pirsig**](https://github.com/piabrota/pirsig) | A second brain: PARA and a Zettelkasten slip-box in one place. A Rust app with a desktop app, a REST API and a terminal CLI, `psg`, on one model layer. | none yet (piabrota.art/pirsig, coming) | MPL-2.0 |
+|
| [**gramatico**](https://github.com/piabrota/gramatico) | Rewrites technical text in Brazilian Portuguese so that it reads once: explicit subject, one proposition per sentence. A Claude Code plugin; it marks with `โ ` what it did not check. | [piabrota.github.io/gramatico](https://piabrota.github.io/gramatico/) | MPL-2.0 |
+|
| [**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 |
+|
| [**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 |
+
+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.
## How it fits
-
+
How to read this figure
-**Takeaway.** Six open projects, each on its own; three of them meet the web at piabrota.art.
+**Takeaway.** Seven 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/fabric.json b/profile/archify/fabric.json
index 65f7613..c48ddc3 100644
--- a/profile/archify/fabric.json
+++ b/profile/archify/fabric.json
@@ -2,7 +2,7 @@
"schema_version": 2,
"diagram_type": "workflow",
"meta": {
- "title": "The piabrota fabric: six open projects, and where they meet the web",
+ "title": "The piabrota fabric: seven open projects, and where they meet the web",
"locale": "en",
"quality_profile": "showcase",
"legend": {
@@ -34,11 +34,11 @@
],
"nodes": [
{
- "id": "ptbr",
+ "id": "gramatico",
"lane": "think",
"col": 0,
"type": "backend",
- "label": "ptbr-writer",
+ "label": "gramatico",
"sublabel": "plain pt-BR, a Claude Code plugin",
"width": 240
},
@@ -69,6 +69,15 @@
"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",
diff --git a/profile/archify/figures.lock b/profile/archify/figures.lock
index 4192c0c..704586a 100644
--- a/profile/archify/figures.lock
+++ b/profile/archify/figures.lock
@@ -1 +1 @@
-fabric f678a086c420dbfe-208acba
+fabric be029bbedb8bdd52-208acba
diff --git a/profile/img/fabric.png b/profile/img/fabric.png
index e78c4f3..1665716 100644
Binary files a/profile/img/fabric.png and b/profile/img/fabric.png differ