docs: record the own-scorer decision as deferred for later revision
Capture the recommendation in AGENTS.md (and mirror it in TRUST_SCORE.md): do not build the cvm-server per-observer GrapeRank scorer yet. The full confidence model is provider-side and consumed via NIP-85; the client has a local confidence gate; the blockers are the per-observer signing key and 8-hop compute plus lifecycle/deploy/monitoring, with ~zero users making the ROI negative. A house-perspective scorer is the cheaper path; revisit when there are users, no trustworthy provider, or skate-specific signals to bake in.
This commit is contained in:
parent
db7f4a2707
commit
dde52eb1a7
2 changed files with 23 additions and 6 deletions
21
AGENTS.md
21
AGENTS.md
|
|
@ -2575,12 +2575,27 @@ shared `filterAdminHidden` drops muted authors across every list; the flagged
|
|||
notice has a Mute action. **Alerts landed:** `useNetworkAlerts` + `/alerts`
|
||||
(`pages/NetworkAlertsPage.tsx`) list accounts you follow that trusted people
|
||||
reported/muted, with Ignore/Unfollow/Mute/Report; Settings → Trust links to it
|
||||
with a count (ignored set in `skatespots:trust:alerts-ignored`). Still open:
|
||||
running our own GrapeRank-style scorer in `cvm-server` — the full confidence
|
||||
model is provider-side today. Check
|
||||
with a count (ignored set in `skatespots:trust:alerts-ignored`). Deferred: our
|
||||
own GrapeRank-style scorer — see the dated note below. Check
|
||||
`TRUST_SCORE.md` before touching `useTrustScore` / `useRelatrScore` /
|
||||
`trustFilter`.
|
||||
|
||||
**Own GrapeRank-style scorer — DEFERRED (2026-10-09).** Do NOT build the
|
||||
`cvm-server` per-observer scorer yet. The full confidence model is provider-side
|
||||
and already consumed via NIP-85, and the client fallback now has a local
|
||||
confidence gate (`useViewerGraph`, `FOF_MIN_RATERS`). Why hold: personalized
|
||||
kind-30382 needs a **per-observer signing key** (server key custody or per-user
|
||||
delegation — a trust/key-management burden, not a checkbox); an 8-hop traversal is
|
||||
heavy without a graph store; plus a provider identity, the publish/delete
|
||||
lifecycle, deploy to the external host and monitoring. With ~zero users the ROI is
|
||||
negative. Cheaper path if a controlled score is ever wanted: a
|
||||
**house-perspective** scorer (one key, one observer, computed on a schedule,
|
||||
publishes kind-30382) — Settings → Trust's provider choice consumes it with no
|
||||
client change. **Revisit when:** there are users, no trustworthy provider exists,
|
||||
or there are skate-specific signals (vouches, trade attestations) worth baking
|
||||
into a score only we can compute. The client is already provider-ready
|
||||
(`useTrustAssertions` + kind-10040 choice), so this decision costs nothing today.
|
||||
|
||||
**Keep the door open (cheap):** admin keys and relay sets must stay *data you can
|
||||
swap*, not constants. Hardcoded `ADMIN_PUBKEYS` is fine now — converting it later
|
||||
is a small refactor, not a trap.
|
||||
|
|
|
|||
|
|
@ -91,9 +91,11 @@ flagged notice's reporter breakdown, and Settings → Trust.
|
|||
`deriveLocalScore` returns `verified` only at `FOF_MIN_RATERS` (2) or more. A
|
||||
lone endorsement no longer reads as trust.
|
||||
- Provider assertions are unaffected: the full GrapeRank confidence model lives
|
||||
in the provider and we consume it via NIP-85. Running our own scorer (planned
|
||||
for `cvm-server`, publishing kind-30382) remains the open item — it is the only
|
||||
way to get the real confidence gate and a server-published score.
|
||||
in the provider and we consume it via NIP-85. Running our own scorer is
|
||||
**deferred** — see the dated decision in `AGENTS.md` ("Own GrapeRank-style
|
||||
scorer — DEFERRED"): the per-observer signing key and 8-hop compute are the
|
||||
blockers, and the client is already provider-ready. A house-perspective scorer
|
||||
(one key, one observer) is the cheaper path if ever wanted.
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue