Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
3902ff4
docs(readme): name the project Prismatica and build the defense stack…
vjan-nie Nov 5, 2026
f1c5a46
docs(readme): state "nobody indispensable" as the aim and measure it
vjan-nie Nov 5, 2026
090cc29
docs(readme): recount the Features List at main's pins
vjan-nie Nov 5, 2026
b6d6f14
docs(readme): grade 19 modules on main's local stack, 30 points, 8 A
vjan-nie Nov 5, 2026
601dc41
docs(readme): move the identity joins to the wiki and recount contrib…
vjan-nie Nov 5, 2026
9393ee4
docs(readme): name the AI tools, the trailer rewrite and the licence …
vjan-nie Nov 5, 2026
12bb8a3
docs(wiki): mark the module ledger wholly superseded
vjan-nie Nov 5, 2026
fd1e60a
docs: wrap the new prose at 80 columns
vjan-nie Nov 5, 2026
b749bc6
docs(readme): grade WebSockets B and cite NestJS for the framework row
vjan-nie Nov 5, 2026
706e1aa
docs(readme): record the team's roles and its former members
vjan-nie Nov 5, 2026
becb54a
docs(readme): keep Project Management about the team, not individuals
vjan-nie Nov 5, 2026
b457f01
docs(readme): shorten Individual Contributions to roles, areas and co…
vjan-nie Nov 5, 2026
6a511c4
docs(readme): make the AI disclosure generic about people
vjan-nie Nov 5, 2026
97e5cd8
docs(wiki): name unidentified and AI-agent authors without guessing
vjan-nie Nov 5, 2026
698ed6c
docs(readme): keep only the instructions a file or command backs
vjan-nie Nov 5, 2026
b506d59
docs(readme): rewrap the edited Project Management paragraph at 80 co…
vjan-nie Nov 5, 2026
394280d
docs(runbook): stop citing the removed disk sizes in fresh-machine
vjan-nie Nov 5, 2026
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
23 changes: 12 additions & 11 deletions .mailmap
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# git -C apps/grobase -c mailmap.file="$PWD/.mailmap" shortlog -sne --all
#
# Caveat: two author/email pairs mix two members and are resolved by inference, not by
# proof (see the README, "Individual Contributions"). A new address a member starts
# proof (see wiki/project/contributions-method.md). A new address a member starts
# committing with shows up as an extra line until it is added here.

# dlesieur
Expand Down Expand Up @@ -42,6 +42,7 @@ Seyed Mostafa Hashemian (shashemi) <smostafahashem123@gmail.com> <1.318674e+08+S
Seyed Mostafa Hashemian (shashemi) <smostafahashem123@gmail.com> <sm.hashemian@alumnos.upm.es>
# prismatica 93e6b65 by "La Cebolla" carries Signed-off-by: Seyed Mostafa Hashemian.
Seyed Mostafa Hashemian (shashemi) <smostafahashem123@gmail.com> <smhashem545@gmail.com>
Seyed Mostafa Hashemian (shashemi) <smostafahashem123@gmail.com> <SMOSTAFAH1@users.noreply.github.com>

# rstancu, a member of the original team roster (archive/wiki-2026-09/CONTRIBUTORS.md), GitHub @esettes
Roxana Stancu (rstancu) <ioanaroxana.st@gmail.com>
Expand All @@ -51,13 +52,13 @@ opencode (AI agent) <opencode@local>
opencode (AI agent) <opencode@local> <opencode@localhost>
opencode (AI agent) <opencode@local> <oc-run@localhost>

# Space Bunny: the OpenCode agent team the owner ran on hydrawn (BUNNY.md, "You run a team
# of agents"), on local addresses. An AI agent, not a member, shown as one line like opencode.
Space Bunny (AI agent team, run by dlesieur) <bunny@local> bunny <bunny@local>
Space Bunny (AI agent team, run by dlesieur) <bunny@local> bunny <bunny@localhost>
Space Bunny (AI agent team, run by dlesieur) <bunny@local> Space Bunny <bunny@localhost>
Space Bunny (AI agent team, run by dlesieur) <bunny@local> Space Bunny <bunny@drawnosaurus.local>
Space Bunny (AI agent team, run by dlesieur) <bunny@local> builder <builder@bunny>
Space Bunny (AI agent team, run by dlesieur) <bunny@local> builder <builder@localhost>
Space Bunny (AI agent team, run by dlesieur) <bunny@local> builder <builder@drawnosaurus.local>
Space Bunny (AI agent team, run by dlesieur) <bunny@local> builder <builder@local>
# Space Bunny: an AI-agent identity on hydrawn (BUNNY.md describes a team of agents), on
# local addresses. Who ran it is not identified. Shown as one line, like opencode.
Space Bunny (AI agent team) <bunny@local> bunny <bunny@local>
Space Bunny (AI agent team) <bunny@local> bunny <bunny@localhost>
Space Bunny (AI agent team) <bunny@local> Space Bunny <bunny@localhost>
Space Bunny (AI agent team) <bunny@local> Space Bunny <bunny@drawnosaurus.local>
Space Bunny (AI agent team) <bunny@local> builder <builder@bunny>
Space Bunny (AI agent team) <bunny@local> builder <builder@localhost>
Space Bunny (AI agent team) <bunny@local> builder <builder@drawnosaurus.local>
Space Bunny (AI agent team) <bunny@local> builder <builder@local>
831 changes: 429 additions & 402 deletions README.md

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion wiki/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,9 @@ zero per-project server code.
| Page | What it answers |
|---|---|
| [01-subject](project/01-subject.md) | What ft_transcendence asks for |
| [02-modules](project/02-modules.md) | Module ledger: points, flags, evidence |
| [02-modules](project/02-modules.md) | Module ledger, superseded by the README Modules table |
| [03-team](project/03-team.md) | Roles and contributions |
| [contributions-method](project/contributions-method.md) | How the README's commit counts are made, and the identity joins behind them |
| [04-glossary](project/04-glossary.md) | Project vocabulary |
| [ai-llm-interface](project/ai-llm-interface.md) | The LLM interface: one question through twelve hops, and the tests behind each claim |
| [ai-audit-2026-10-28](project/ai-audit-2026-10-28.md) | Superseded 2026-11-04: the AI modules against the old pin |
Expand Down
3 changes: 2 additions & 1 deletion wiki/STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,10 @@ Update this table whenever a page's status block changes. It is the working list
| product/03-opposite-osiris | Partial | **Privacy Policy / ToS existence unverified** |
| product/04-repos | Partial | What is actually inside the delivered perimeter |
| project/01-subject | Unverified by nature | Source is private; re-check on each subject version |
| project/02-modules | Partial | Two open checks worth ~6 points; grades superseded by the README Modules table (2026-11-04) |
| project/02-modules | Superseded | By the README Modules table, 2026-11-05 |
| project/03-team | **Template** | Facts not held anywhere; fill with the team |
| project/04-glossary | Verified | — |
| project/contributions-method | Verified | Counts age; recount on each pin |
| project/ai-llm-interface | Partial | nginx buffering/timeouts untested; #275 not in groot's pin yet |
| project/ai-audit-2026-10-28 | Superseded | Pin facts replaced by the README Modules table, 2026-11-04 |
| project/ai-stall-diagnosis-2026-10-29 | Diagnosis only | Hypotheses not tested live |
Expand Down
22 changes: 12 additions & 10 deletions wiki/project/02-modules.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Module ledger

> **Status:** Partial · 2026-09-15
> **Superseded · 2026-11-05.** This whole page is history: its rows, letters,
> legend and point totals. The current grades, one rule and the points table are
> in the [README Modules table](../../README.md#modules).
>
> **Status:** Superseded · 2026-11-05 (written as Partial · 2026-09-15)
> **Evidence:** flag states read from `deploy/fly/boot.sh`; every gate named here exists in the
> gate index
> **To check:** the two items in the "open" table below are worth up to 6 points between them
> and neither has been checked. The current grades are in the
> [README Modules table](../../README.md#modules) (2026-11-04), which supersedes this ledger's
> letters.
> **Sources:** `deploy/fly/boot.sh` · `apps/grobase/CLAUDE.md` §flag-gating · [01-subject](01-subject.md)

Only catalogue modules count. **A module that cannot be demonstrated scores zero**, so each row
Expand Down Expand Up @@ -34,7 +34,8 @@ the screen does not.
| OAuth 2.0 (User mgmt, minor) | 1 | `SSO_ENABLED`, migration `053` | `m110`, `m163` | **B** |
| File upload (Web, minor) | 1 | storage plane, `STORAGE_BUCKET_SCOPE_ENABLED` | `m159` | **C** |

Nominal total without free choice: **18**. Seven of those points are **A** (rows 1–4).
Nominal total without free choice: **18**. Seven of those points are **A** (rows
1–4).

**The key distinction:** organisation-system's backend is already running in production, so it
needs only a screen. The **B** rows need a flag, a migration and a gate run — but no new code.
Expand Down Expand Up @@ -67,10 +68,11 @@ in the project but hard to demonstrate live — better as an oral argument than
| Does `VaultProvider` talk to HashiCorp Vault? (credential layer, migration `060`) | 2 pts and the only cybersecurity module |
| What are `src/apps/ai/` and `src/apps/analytics/`? | Up to 4 pts from categories written off |

The AI category was first dismissed because gaming modules need a game and we have none. That
no longer holds: the README now claims four AI modules (LLM interface, RAG, moderation, voice;
6 points, all B), and the analytics dashboard major is still unchecked. The LLM interface is
explained in [ai-llm-interface](ai-llm-interface.md).
The AI category was first dismissed because gaming modules need a game and we
have none. That no longer holds: the README now claims four AI modules (LLM
interface, RAG, moderation, voice; 6 points, all B), and the analytics dashboard
major is still unchecked. The LLM interface is explained in
[ai-llm-interface](ai-llm-interface.md).

---

Expand Down
87 changes: 87 additions & 0 deletions wiki/project/contributions-method.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# How the contribution counts are made

The README's [Features List](../../README.md#features-list) and [Who committed
where](../../README.md#who-committed-where) count commits one way, described
here with the identity joins it rests on.

## The method

Non-merge commits reachable from the commit groot `main` pins for each
repository, read through the root [`.mailmap`](../../.mailmap), with bots and
AI-agent identities left out:

```sh
# for the root repository, use origin/main itself as the pin
pin=$(git ls-tree origin/main apps/osionos/app | awk '{print $3}')
git -C apps/osionos/app -c mailmap.file="$PWD/.mailmap" \
log --no-merges --format='%aN' "$pin" -- <paths> |
grep -viE 'bot|AI agent' | sort | uniq -c | sort -rn
```

Counted on 2026-11-05, groot `main` = `0bef3cb3`. Repositories: groot, osionos,
grobase, opposite-osiris (prismatica), hydrawn, mail, calendar, QA, monkey-bot.

Caveat: a commit count is not effort. One large commit and one typo fix weigh
the same; pairing, review and work committed by someone else do not show; a
commit that touches several features counts once for each. Work that is not on a
pinned commit (an open branch, an unmerged pull request) is not counted.

`scripts/contributors.sh` counts all refs (`--all`), not the pins. Until a clone
drops the refs from before the 2026-11-04 history rewrite, `--all` counts each
rewritten commit twice.

## Left out of the counts

At the pins, on 2026-11-05:

- `Space Bunny` (also `bunny` and `builder`): an AI-agent identity. Its
addresses are local (for example `bunny@local`, `builder@bunny`,
`bunny@drawnosaurus.local`) and hydrawn `BUNNY.md` describes a team of agents.
Who ran it is not identified. 68 hydrawn commits.
- `opencode`: an AI-agent identity committing under its own name. Who ran it is
not identified. 1 root and 5 osionos commits.
- Bots: `dependabot[bot]` 8 root; `coderabbitai[bot]` 3 root and 4 osionos;
`Grok CI Bot` 2 root; `copilot-swe-agent[bot]` 9 opposite-osiris.

## How the identities are joined

The evidence for each join is in [`.mailmap`](../../.mailmap).

- Each member committed under several addresses, including GitHub's `noreply`
ones; `.mailmap` joins them.
- `settes <ioanaroxana.st@…>` is **`rstancu`** (Roxana Stancu): the address
belongs to GitHub account [@esettes](https://github.com/esettes), listed for
`rstancu` on the original roster
([`archive/wiki-2026-09/CONTRIBUTORS.md`](../../archive/wiki-2026-09/CONTRIBUTORS.md)).
The osionos commits (2026-04-10 → 2026-05-02) touch mostly the Playwright
browser tests (`tests/browser`), their CI job and committed build assets.
`rstancu` is a former member (README, Team Information).
- `La Cebolla <smhashem545@…>` is **`shashemi`**: opposite-osiris commit
`93e6b65` carries `Signed-off-by: Seyed Mostafa Hashemian`.
- `SMOSTAFAH1 <SMOSTAFAH1@users.noreply.github.com>` is **`shashemi`**: it is
the GitHub login [@SMOSTAFAH1](https://github.com/SMOSTAFAH1) of the team
table, without the numeric id `.mailmap` already maps (2 osionos commits at
the pin).
- Two groups of grobase commits pair one member's name with another's address.
They are attributed by inference, not by proof:
- `LESdylan <vjannieto@…>` (3 commits on grobase's pinned commit, 5 on all
branches, 2026-09-21 → 2026-11-02) goes to `dlesieur`: the author name is
`LESdylan`, and `b4c1d33f` landed through grobase PR #89, opened by
`LESdylan`.
- `dlesieur <daniel17dev@…>` (5 commits, 2026-03-20/21) goes to `danfern3`:
they sit inside `danielfdez17`'s own Docker and Kubernetes series of the
same two days.
- `opencode` and `Space Bunny` are AI-agent identities, shown under their own
names and left out of the member counts (list above).
- `qwO-Owp` (born2root, 2026-10-08/09) is unidentified: no address, sign-off or
pull request ties it to anyone.
- `Alex Caceres` (vendor/scripts, 2026-01-26) is a former member (team answer,
2026-11-05).
- Neither born2root nor vendor/scripts is counted.
- On 2026-11-04 the history of groot, osionos and grobase was rewritten to
remove `Co-authored-by` trailers; trees, authors, dates and subjects are
unchanged, and every commit from the first rewritten one onward has a new SHA.
148 root commits on `main` have a one-word subject (147 `dlesieur`, 1
`vjan-nie`, 2026-05-01 → 2026-10-09); the [`Commit
subjects`](../../.github/workflows/commit-subjects.yml) check refuses new
ones.
2 changes: 1 addition & 1 deletion wiki/runbooks/fresh-machine.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ otherwise.
|---|---|---|
| Docker Engine ≥ 25 + Compose v2 | healthchecks use `start_interval`; measured on Docker 29.8.2 | `docker-compose.yml:3`, [README prerequisites](../../README.md#prerequisites) |
| RAM ≥ 8 GB | `make all` peaked at 6.25 GB used on an 8 GB VM; for a VM, `VM_RAM_MB=8192` | [measured runs](#measured-results) |
| Disk ≥ 30 GB free for Docker | images 13.5 GB + build cache 9.5 GB + volumes 1.4 GB, measured 2026-10-01 | [README prerequisites](../../README.md#prerequisites) |
| Free disk space for Docker | no minimum is measured; `fresh-bringup.sh` warns under 10 GiB free on the Docker data root, and the 2026-10-05 VM build passed with a 65 GB `/var` (91 GB disk) | `scripts/verify/fresh-bringup.sh:34,120-122`, [measured runs](#measured-results) |
| Free ports | 443, 3001–3003, 3007, 4000, 4100, 4200, 4322, 4323, 7880, 7881, 8444, 8787, UDP 50000–50060, and Kong on 8000 | `docker-compose.yml`, `apps/grobase/orchestrators/compose/base/gateway.yml` |
| One `sudo` password | `make all` copies the local CA into the system store once (`certs-trust-local`); `fresh-bringup.sh` asks for it first, with `sudo -v` | `utils/mk/certs.mk`, targets `certs-trust`, `certs-trust-local`, `scripts/verify/fresh-bringup.sh` (`check_sudo`) |
| A GitHub SSH key | submodules use `git@github.com:` URLs | `.gitmodules` |
Expand Down
Loading