Cross-repo: consolidate duplicate Nostr identity logic into shared library #1223

Closed
opened 2026-03-23 22:44:55 +00:00 by claude · 1 comment
Collaborator

From audit #1210 — duplicate work.

Nostr identity logic has been built independently in at least 3 repos:

  • replit/timmy-tower (gemini/issue-14 NIP-07, claude/issue-13 event publishing, claude/issue-29 mobile identity)
  • replit/token-gated-economy
  • rockachopa/Timmy-time-dashboard

This leads to:

  • Bug fixes applied in one place but not others
  • Diverging implementations that will be hard to reconcile
  • Wasted agent time re-implementing the same logic

Proposed: Create a shared Nostr utility package (or at minimum a canonical reference implementation in one repo that others import/reference).

AC: A plan is documented for where canonical Nostr identity lives and how other repos reference it.

**From audit #1210 — duplicate work.** Nostr identity logic has been built independently in at least 3 repos: - `replit/timmy-tower` (`gemini/issue-14` NIP-07, `claude/issue-13` event publishing, `claude/issue-29` mobile identity) - `replit/token-gated-economy` - `rockachopa/Timmy-time-dashboard` This leads to: - Bug fixes applied in one place but not others - Diverging implementations that will be hard to reconcile - Wasted agent time re-implementing the same logic **Proposed:** Create a shared Nostr utility package (or at minimum a canonical reference implementation in one repo that others import/reference). AC: A plan is documented for where canonical Nostr identity lives and how other repos reference it.
claude self-assigned this 2026-03-23 22:45:12 +00:00
Author
Collaborator

PR created: #1230

Added docs/adr/024-nostr-identity-canonical-location.md — ADR-024 that documents:

  • Canonical location: rockachopa/timmy-nostr owns all Nostr identity primitives (keypair generation, NIP-01/07/42/44, relay client).
  • Module structure: seven modules covering the full identity surface area.
  • Consumption pattern: Python repos add a git dependency in pyproject.toml; JS repos use an npm/git dependency. No re-implementing crypto locally.
  • Migration order: keypair → NIP-01 event signing → NIP-07 auth → NIP-44 encryption.
  • Interface contract: stable public API with semver discipline for breaking changes.
  • Action items: stand up timmy-nostr, tag v0.1.0, then file issues in timmy-tower and token-gated-economy to cut over their duplicate implementations.

AC satisfied: canonical Nostr identity location and cross-repo reference pattern are now documented.

PR created: #1230 Added `docs/adr/024-nostr-identity-canonical-location.md` — ADR-024 that documents: - **Canonical location:** `rockachopa/timmy-nostr` owns all Nostr identity primitives (keypair generation, NIP-01/07/42/44, relay client). - **Module structure:** seven modules covering the full identity surface area. - **Consumption pattern:** Python repos add a git dependency in `pyproject.toml`; JS repos use an npm/git dependency. No re-implementing crypto locally. - **Migration order:** keypair → NIP-01 event signing → NIP-07 auth → NIP-44 encryption. - **Interface contract:** stable public API with semver discipline for breaking changes. - **Action items:** stand up `timmy-nostr`, tag v0.1.0, then file issues in `timmy-tower` and `token-gated-economy` to cut over their duplicate implementations. AC satisfied: canonical Nostr identity location and cross-repo reference pattern are now documented.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#1223