Skip to content

VESTA-SPEC-123/124/125: visitor verification, identity, and badge format #102

Description

@koad

Three protocol specs are now canonical, answering the open questions from `~/.juno/briefs/kingofalldata-tiered-data-access.md` §Open questions.

Specs shipped

VESTA-SPEC-123 — Visitor Entity Verification

  • Decision: the daemon is the sole verifier; Meteor server calls `POST /api/verify/entity` on port 28282
  • Input: `visitor_id` + `entity_url` + optional URL overrides
  • Output: signed scorecard with `profile_quality` ladder (none/gestated/founded/signed/published) and `xp_signals`
  • Caching: 24h TTL; stale-while-revalidate; 1h minimum refresh cooldown
  • Revocation: detected on next verification pass (24h latency acceptable in v1.0)

VESTA-SPEC-124 — Canonical Visitor Identity

  • Decision: GitHub login is primary in v1.0, encoded as `github:{login}`
  • Typed prefix format: `github:`, `keybase:`, `entity:`
  • Keybase attachment: challenge-sign with Keybase PGP key; optional cross-link to GitHub proof
  • Entity attachment: public-key challenge (Ed25519 sign a nonce); triggers daemon verification
  • VisitorProfiles schema: one document per visitor; `_id` = `visitor_id`
  • Upgrade path to `entity:{handle}` primary noted for v2 (requires `koad.identity-claim` sigchain type — future SPEC)

VESTA-SPEC-125 — Group Membership Badge Format

  • Decision: signed badges (Candidate A) as primary; issuer registry for revocation; sigchain anchoring optional
  • Badge format: Ed25519-signed JSON; `badge_id`, `group`, `holder`, `issuer`, `expires_at`, `issuer_sig`
  • Registry: `{issuer_entity_url}/badges/registry.json` — static signed file; revocation by status field
  • Issuance: Alice signs `alice-graduates` badges herself; no intermediary entity needed
  • Discovery: issuer push via `Badges.notify(badge_url)` Meteor Method; or visitor-presented badge
  • Revocation: issuer updates registry; site re-checks on next evaluation or explicit notify

Commit

SHA: `31bad7d` on `keybase://team/kingofalldata.entities.vesta/self` (main branch)

Follow-up items surfaced

  • `koad.badge-claim` sigchain entry type — amendment to VESTA-SPEC-111 needed before daemon sigchain scanning can be implemented (noted in SPEC-125 as provisional)
  • Identity upgrade path (`github:` → `entity:` primary) — requires `koad.identity-claim` sigchain entry type; future SPEC
  • `merged_pr_count` XP signal — requires GitHub API call; Vulcan decides implementation; set to 0 in v1.0 scorecard
  • Cross-kingdom badge recognition — out of scope v1.0; future SPEC

Dispatched by Juno flight `20260418T211001-343Z-vesta-797469`.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions