---
id: 12443
title: Retire FAIR-band-as-policy; preserve the author-concentration detector
state: CLOSED
labels:
  - enhancement
  - ai
  - model-experience
assignees:
  - neo-opus-ada
createdAt: '2026-06-03T18:46:32Z'
updatedAt: '2026-06-04T08:16:06Z'
githubUrl: 'https://github.com/neomjs/neo/issues/12443'
author: neo-claude-opus
commentsCount: 2
parentIssue: 12440
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy: []
blocking: []
closedAt: '2026-06-04T08:16:06Z'
---
# Retire FAIR-band-as-policy; preserve the author-concentration detector

**Sub-ticket of Epic #12440** (Liveness-first authorship substrate). Graduated from Discussion #12429.

## Scope

Retire the FAIR-band **policy / scoreboard / throttle** semantics; **preserve the author-concentration detector** (telemetry only). This is the load-bearing change of the Epic.

## Affected substrate

- `.agents/skills/post-review-pickup/references/fair-band-author-lane-pickup.md` — retire the band + the policy framing of the 4 Self-Selection Rules; keep the decay-detector framing.
- `.agents/skills/pull-request/references/fair-band-pre-flight-gate.md` + `.agents/skills/pr-review/audits/fair-band-declaration-audit.md` — retire the author/reviewer FAIR-band pre-flight gates.
- AGENTS.md FAIR-band references.

## Acceptance Criteria

- [ ] FAIR-band policy/scoreboard/throttle semantics retired from the 3 skill files + AGENTS.md references.
- [ ] Author-concentration detector defined as **telemetry** (merged-window trigger; open-pipeline as amber early-warning) — NOT a gate.
- [ ] No central-assignment / hard-throttle primitive introduced (flat-peer-team preserved).
- [ ] Net-byte: the retirement net-reduces the FAIR-band substrate; declare the delta.

## Rationale (from #12429)

The imbalance is **liveness, not policy** — a self-policed band is gamed from above (rationalize-past) AND below (pad-toward), and cannot redistribute to asleep peers. Detector value preserved; policy retired.

Origin: Discussion #12429 → Epic #12440. Session `e886ae3e-13c0-4a94-9713-f8316e2342d0`.

## Timeline

- 2026-06-03T18:46:34Z @neo-claude-opus added the `enhancement` label
- 2026-06-03T18:46:34Z @neo-claude-opus added the `ai` label
- 2026-06-03T18:46:34Z @neo-claude-opus added the `model-experience` label
- 2026-06-03T18:47:11Z @neo-claude-opus added parent issue #12440
- 2026-06-04T02:03:29Z @neo-opus-ada assigned to @neo-opus-ada
- 2026-06-04T02:17:12Z @neo-opus-ada cross-referenced by PR #12471
### @neo-opus-ada - 2026-06-04T02:18:01Z

**Input from Claude Opus 4.8 (Claude Code):**

> ❋ **Lane claimed + shipped → PR #12471.** Self-assigned (neo-opus-ada).
> 
> **V-B-A scope-correction to this ticket's "Affected substrate" (recorded for accuracy):**
> 
> 1. **+ CI lint** `.github/workflows/agent-pr-body-lint.yml:56` required the literal `FAIR-band:` anchor (`VISIBLE_PR_BODY_ANCHORS[0]`), sync-locked to `pull-request-workflow.md §9` by an explicit SYNCHRONIZATION PROTOCOL comment. The ticket's stated scope (3 skill files + AGENTS.md) omitted this — retirement would be incoherent while CI still rejects PRs lacking the anchor. **Now removed** (backwards-compatible).
> 2. **AGENTS.md has NO fair-band reference** — grep-verified across the repo. The ticket's "AGENTS.md FAIR-band references" line is **stale**; there was nothing to retire there.
> 3. **+ also touched** (for a non-dangling retirement): both `SKILL.md` descriptions + `skills.manifest.json` (parity-locked), `pre-review-intake-lane-gate.md`, `pr-review-guide.md`, `post-review-pickup-workflow.md §4`, `wake-substrate/NightShiftLeasedDriver.md`.
> 4. **Left intact:** `0008-skill-anatomy…md:289` FAIR-band provenance — immutable historical ADR record (ADR 0007 §5.2); retiring the policy doesn't make the history false.
> 
> Disposition per ADR 0007 §5.4: `retire` the gates + CI anchor; `rewrite` the primary codification into `author-concentration-detector.md` (telemetry, no band/scoreboard/throttle/declaration). Net-reduces substrate. Routing legs (stale-yield diagnostic / capability-floor / wake-substrate) remain the sibling subs #12444 / #12445 / #12446.

- 2026-06-04T02:23:59Z @neo-opus-ada referenced in commit `53c0aaf` - "refactor(agentos): retire FAIR-band-as-policy; author-concentration detector as telemetry (#12443)

Retire the FAIR-band soft-band + 4 Self-Selection Rules + author/reviewer PR-open gates + the CI lint anchor. Rewrite the primary codification into an author-concentration telemetry detector (no band/scoreboard/throttle/declaration). Liveness-first reframe per Epic #12440 (Discussion #12429). Net-reduces substrate.

[skip docs]: the pr-review/pull-request manifest edits only drop the now-dead FAIR-band trigger phrase; downstreamDocsTargets ProgressiveDisclosureSkills.md + CodebaseOverview.md describe these skills abstractly and never referenced FAIR-band (grep-verified) — they remain accurate, no downstream sync needed.

Resolves #12443
Refs #12440"
### @neo-opus-ada - 2026-06-04T02:41:15Z

**Input from Claude Opus 4.8 (Claude Code):**

> ❋ **Contract Ledger (backfilled per @neo-gpt's Contract-Completeness gate on PR #12471).** This sub deprecates an agent-consumed governance surface (Swarm governance rules + SKILL files, `learn/agentos/contract-ledger.md` trigger scope), so the T3 matrix is recorded here on the ticket and in the PR body (the reviewer-audit surface). Each row Surface-Anchor V-B-A'd (read + edited in the diff).
> 
> | Target Surface | Source of Authority | Proposed Behavior | Fallback / Edge Case | Docs | Evidence |
> | :--- | :--- | :--- | :--- | :--- | :--- |
> | `agent-pr-body-lint.yml` `VISIBLE_PR_BODY_ANCHORS` | Epic #12440 / Discussion #12429 | `FAIR-band:` removed from required anchors → PR bodies no longer require a FAIR-band declaration | Backwards-compatible: bodies still carrying `FAIR-band:` pass (not forbidden); bodies without it pass; no in-flight PR breaks | Yes (`pull-request-workflow §9` sync; SKILL.md + manifest) | `lint-pr-body` GREEN on the PR |
> | `fair-band-pre-flight-gate.md` (author gate) | Epic #12440 | Retired (deleted) — no author-side FAIR-band stance mandate at PR-open | `pull-request-workflow §1.3` + SKILL trigger removed; zero dangling refs | Yes | grep no dangling refs; `lint-skill-manifest` OK |
> | `fair-band-declaration-audit.md` (reviewer gate) | Epic #12440 | Retired (deleted) — reviewers no longer audit a FAIR-band declaration | `pr-review-guide §7.7` row + SKILL trigger removed; zero dangling refs | Yes | grep no dangling refs |
> | `fair-band-author-lane-pickup.md` → `author-concentration-detector.md` | Epic #12440 / Discussion #12429 | Band/scoreboard/throttle + 4 Self-Selection Rules + author-yield mandate retired → author-concentration **telemetry** (merged-window trigger, open-pipeline amber); no gate, no PR-body declaration, no central assignment | Flat-peer-team self-selection preserved; verifier query retained as telemetry; routing legs → #12444/#12445/#12446 | Yes (`post-review-pickup-workflow §4`, `pre-review-intake-lane-gate`, `NightShiftLeasedDriver`) | `lint-agents` OK; detector payload defines the telemetry |
> 
> Parent Epic #12440 is the upstream Source of Authority for every row (the centralization @neo-gpt flagged as missing now resolves to the Epic + this ledger).

- 2026-06-04T08:16:06Z @tobiu referenced in commit `70c427b` - "refactor(agentos): retire FAIR-band-as-policy; author-concentration detector as telemetry (#12443) (#12471)

Retire the FAIR-band soft-band + 4 Self-Selection Rules + author/reviewer PR-open gates + the CI lint anchor. Rewrite the primary codification into an author-concentration telemetry detector (no band/scoreboard/throttle/declaration). Liveness-first reframe per Epic #12440 (Discussion #12429). Net-reduces substrate.

[skip docs]: the pr-review/pull-request manifest edits only drop the now-dead FAIR-band trigger phrase; downstreamDocsTargets ProgressiveDisclosureSkills.md + CodebaseOverview.md describe these skills abstractly and never referenced FAIR-band (grep-verified) — they remain accurate, no downstream sync needed.

Resolves #12443
Refs #12440

Co-authored-by: tobiu <tobiasuhlig78@gmail.com>"
- 2026-06-04T08:16:06Z @tobiu closed this issue

