C8: The class sigil on pronouns #75
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Meta/Campaign
Meta/Epic
Meta/Session
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Curated
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Scope/Campaign
Status/Abandoned
Status/Blocked
Status/Conflicted
Status/In Progress
Status/In Review
Status/Need Grooming
Status/Need More Info
Status/Ready
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
#45 Epic 2.1: Curation counsel
Ting/Jostoph
Reference
Ting/Jostoph#75
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
M2frontierOwner ruling 2026-08-12 (flake-ops #89, #2): every forge identity declares its class through a sigil, and the sigil rides the
pronounsprofile field.pronounsbegins with@<persona>@~<name>~Live already on jo.et0.pw (Forgejo 15.0.6):
GET /api/v1/users/larandarreturns{"login": "larandar", "full_name": "~Larandar", "pronouns": "~"}. The login is untouched by this rule and stays bare.The prefix is a prefix, not the whole field.
~he/himand@xe/xerare correct and complete values. A bare~is also correct. The sigil is one character at position zero; everything after it is the person's own pronouns and is none of the steward's business.In scope
pronounsand compare its first character against the class the policy declares. Report drift both ways — an agent without@, a bare account wearing one.pronounsvalue,PATCH-shaped, one identity per effect line, ready for the executor.Out of scope
full_name. It carries the human-facing rendering (~Larandar), which is a person's presentation of their own name — reported as drift if it disagrees, never rewritten by the steward.Boundary — and this is the whole ticket
The steward edits exactly one character: the sigil at position zero. It prepends a missing one, replaces a wrong one, removes one an undeclared class must not have. Everything from position one onward is copied byte for byte into the new value and is never normalized, expanded, reordered, translated, corrected, or dropped.
The steward never infers pronouns, never fills an empty field with anything but the bare sigil, and never treats a value it does not recognize as an error —
@ey/em,@ille/em,~any,~ask meare all simply correct. A person's pronouns are theirs; the class prefix is the estate's. This ticket claims only the second, and a diff that touches the first is a defect of the highest severity in this repo, not a style disagreement.Boundary — the power to perform it
Writing another account's profile is
PATCH /api/v1/admin/users/{username}: site-admin, strictly stronger than the repo standing Jostoph holds for every other effect it performs. V0's law says the steward that judges the forge holds no identity. Two readings, and this ticket's first decision:admin:usersand nothing else, on the X1 custody pattern.Reading 1 is the safer default and the one consistent with V0's framing; naming it here so it is decided rather than assumed at implementation.
Acceptance
pronounsyields exactly one effect setting it to@, and a second run yields none.pronounsofhe/himyields@he/him— the two characters added, the four preserved exactly.~xe/xeryields no effect and no finding.full_nameis reported and never performed.Source: owner ruling 2026-08-12; flake-ops#89 (declaration surface), flake-ops#2 (birth provider). Extends #29's roster conformance to the profile fields the class ruling added.