Wiki sync: unjustified deviations #82

Open
opened 2026-08-14 20:58:24 +00:00 by codexo · 0 comments
Contributor

Pass: 2026-08-21 (previous: 2026-08-14)

Unjustified deviations

  • The README names a webhook-reconcile unit that does not exist, and that a ruling forbids.
    README.md ("What it does today"): "Acting lives in the one-shot commands, each its own credential, each performing only what a declaration already names: the webhook-reconcile unit converges the hook, and jostoph conform --apply (#33) converges repo settings and org labels".
    The code says otherwise: nix/module.nix generates jostoph.service and, under conformance.enable, jostoph-roster.service plus its timer — nothing else; the string webhook-reconcile occurs nowhere outside README.md; and src/reconcile.rs reaches only {api}/repos/{repository} and {api}/orgs/{org}/labels, no hook endpoint.
    The authority it contradicts is the owner ruling of 2026-08-05, carried at the head of nix/forgejo.nix — "Reconciling Forgejo against this declaration is not this repository's job. It belongs to the Forgejo nixops4 provider being built in lar.ad/flake-ops#3" — implemented by commit 94535c9d ("Leave webhook convergence to the Forgejo provider"), and restated in the same README further down ("The webhook is declared, not provisioned ... holds no Forgejo token"). The sentence entered on merged PR #37.
    Wiki synced to the code and marked. Correcting the README is a change inside the repository, which this pass does not make.

    2026-08-21 — unresolved, and restated. main is unchanged at 70fdb495, so the sentence stands. The open PR #86 rewrites the README and does not remove the claim; it re-spells it: "Today, webhook reconciliation and jostoph conform --apply can act", four paragraphs above that same file's "services.jostoph.forgejo declares the expected webhook; it does not provision it". Flagged on that pull request (codexo:wiki:v1). Two agent-authored tickets — #26 and closed #28 — also refer to "the webhook-reconcile unit" as an existing thing; a proposal is not authority, but they are how the phrase keeps propagating.

  • resolve-new.rs is substrate source living at the repository root, outside every declared boundary.
    The file is jostoph-rs's dispatch/resolution program: it opens use crate::event::Event; and use crate::gate::{Effect, GateDecl, Verdict};, modules this crate does not define. It is in no module tree — src/main.rs declares audit, conformance, forgejo, policy, reconcile, record — and Cargo.toml builds one binary from src/main.rs, so nothing compiles it; flake.nix and .doctor.just never name it.
    It exceeds the authority that introduced it: merged PR #20 states its own Boundary as "nix/forgejo.nix ..., nix/policy.nix ..., flake.nix ..., src/policy.rs ..., README.md", and commit 088be058 added this file as well. It also sits against the perimeter established by #1: "Out of scope — General-purpose service substrate — that is lar.ad/jostoph-rs."
    Wiki synced to the code and marked. Removing it is a change inside the repository, which this pass does not make.

    2026-08-21 — unresolved and unchanged. resolve-new.rs is still at the repository root at 70fdb495, still in no module tree. No later authority mentions it: a forge search for resolve-new across this repository's issues and pull requests returns nothing.

Justified this pass

  • .fastlane.toml names four inputs and not jostoph-rs — covered by the owner ruling of 2026-08-10 recorded on #11 and #14: the substrate is main-only by design, consumed as published, so it does not belong in the development manifest. Same ruling is quoted in nix/forgejo.nix. Log row added, no flag.

Sync is not ratification: the wiki now describes the repository as it stands, which does not authorize either item above.

Not a deviation, recorded for the next pass

  • The four reusable incident postmortems that README.md carried are misrouted prose, not a difference between code and authority. The pass of 2026-08-21 routed them to the wiki page incident-postmortems, which is the home documentation-discipline gives them and the durable home #85's acceptance requires before PR #86 merges. The README's copies come out through review, not through this pass.
<!-- codexo:wiki:v1 --> **Pass:** 2026-08-21 (previous: 2026-08-14) ### Unjustified deviations - **The README names a `webhook-reconcile` unit that does not exist, and that a ruling forbids.** `README.md` ("What it does today"): "Acting lives in the one-shot commands, each its own credential, each performing only what a declaration already names: *the webhook-reconcile unit converges the hook*, and `jostoph conform --apply` (#33) converges repo settings and org labels". The code says otherwise: `nix/module.nix` generates `jostoph.service` and, under `conformance.enable`, `jostoph-roster.service` plus its timer — nothing else; the string `webhook-reconcile` occurs nowhere outside `README.md`; and `src/reconcile.rs` reaches only `{api}/repos/{repository}` and `{api}/orgs/{org}/labels`, no hook endpoint. The authority it contradicts is the owner ruling of 2026-08-05, carried at the head of `nix/forgejo.nix` — "Reconciling Forgejo against this declaration is not this repository's job. It belongs to the Forgejo nixops4 provider being built in lar.ad/flake-ops#3" — implemented by commit [94535c9d](https://jo.et0.pw/Ting/Jostoph/commit/94535c9d) ("Leave webhook convergence to the Forgejo provider"), and restated in the same README further down ("The webhook is declared, not provisioned ... holds no Forgejo token"). The sentence entered on merged [PR #37](https://jo.et0.pw/Ting/Jostoph/pulls/37). Wiki synced to the code and marked. Correcting the README is a change inside the repository, which this pass does not make. **2026-08-21 — unresolved, and restated.** `main` is unchanged at `70fdb495`, so the sentence stands. The open [PR #86](https://jo.et0.pw/Ting/Jostoph/pulls/86) rewrites the README and does not remove the claim; it re-spells it: "Today, webhook reconciliation and `jostoph conform --apply` can act", four paragraphs above that same file's "`services.jostoph.forgejo` declares the expected webhook; it does not provision it". Flagged on that pull request (`codexo:wiki:v1`). Two agent-authored tickets — [#26](https://jo.et0.pw/Ting/Jostoph/issues/26) and closed [#28](https://jo.et0.pw/Ting/Jostoph/issues/28) — also refer to "the webhook-reconcile unit" as an existing thing; a proposal is not authority, but they are how the phrase keeps propagating. - **`resolve-new.rs` is substrate source living at the repository root, outside every declared boundary.** The file is jostoph-rs's dispatch/resolution program: it opens `use crate::event::Event;` and `use crate::gate::{Effect, GateDecl, Verdict};`, modules this crate does not define. It is in no module tree — `src/main.rs` declares `audit`, `conformance`, `forgejo`, `policy`, `reconcile`, `record` — and `Cargo.toml` builds one binary from `src/main.rs`, so nothing compiles it; `flake.nix` and `.doctor.just` never name it. It exceeds the authority that introduced it: merged [PR #20](https://jo.et0.pw/Ting/Jostoph/pulls/20) states its own Boundary as "`nix/forgejo.nix` ..., `nix/policy.nix` ..., `flake.nix` ..., `src/policy.rs` ..., `README.md`", and commit [088be058](https://jo.et0.pw/Ting/Jostoph/commit/088be058) added this file as well. It also sits against the perimeter established by #1: "**Out of scope** — General-purpose service substrate — that is `lar.ad/jostoph-rs`." Wiki synced to the code and marked. Removing it is a change inside the repository, which this pass does not make. **2026-08-21 — unresolved and unchanged.** `resolve-new.rs` is still at the repository root at `70fdb495`, still in no module tree. No later authority mentions it: a forge search for `resolve-new` across this repository's issues and pull requests returns nothing. ### Justified this pass - `.fastlane.toml` names four inputs and not `jostoph-rs` — covered by the owner ruling of 2026-08-10 recorded on [#11](https://jo.et0.pw/Ting/Jostoph/issues/11) and [#14](https://jo.et0.pw/Ting/Jostoph/issues/14): the substrate is `main`-only by design, consumed as published, so it does not belong in the development manifest. Same ruling is quoted in `nix/forgejo.nix`. Log row added, no flag. Sync is not ratification: the wiki now describes the repository as it stands, which does not authorize either item above. ### Not a deviation, recorded for the next pass - The four reusable incident postmortems that `README.md` carried are misrouted prose, not a difference between code and authority. The pass of 2026-08-21 routed them to the wiki page [incident-postmortems](https://jo.et0.pw/Ting/Jostoph/wiki/incident-postmortems), which is the home documentation-discipline gives them and the durable home [#85](https://jo.et0.pw/Ting/Jostoph/issues/85)'s acceptance requires before [PR #86](https://jo.et0.pw/Ting/Jostoph/pulls/86) merges. The README's copies come out through review, not through this pass.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Ting/Jostoph#82
No description provided.