Skip to main content

vitorpamplona/amethyst

Latest recorded source activity
SkillsMP catalog refreshed
skills collected
15
GitHub stars
1,608
GitHub forks
224

Loading the repository README…

Skills in this repository

classification pending

Showing 15 of 15 collected skills.

occupation
unclassified
description

Building on Quartz, the Kotlin Multiplatform Nostr library (com.vitorpamplona.quartz): NostrClient + a WebsocketBuilder, fetchAll/fetchFirst/fetchAllPages/publishAndConfirm, typed event builders, NostrSigner, NIP-19/NIP-05/NIP-44. Use in projects that depend…

updated
occupation
unclassified
description

Account, LocalCache, User/Note and feeds in commons/model + commons/feeds: per-user XState objects (.flow), FeedFilter/AdditiveFeedFilter, FeedViewModel. Use when adding an account setting or list, a feed, or choosing LocalCache vs account flows.

updated
occupation
unclassified
description

amy CLI in cli/: adding an `amy <verb>` command, Main.kt dispatch, Output.emit/--json contract, exit codes 0/1/2/124, ~/.amy layout, cli/tests harnesses. Use when touching cli/. Enforces the thin-assembly rule: logic goes to commons/quartz.

updated
occupation
unclassified
description

Android shim in `amethyst/`: MainActivity, AndroidManifest/intent filters, :napplet process, play/fdroid flavors, R8 + tools/r8-verify, permissions, Intent/Context ports. Use when editing amethyst/. NOT for screens/navigation (compose-expert).

updated
occupation
unclassified
description

NostrSigner in Amethyst: NostrSignerInternal (local key), NostrSignerRemote (NIP-46 bunker), NostrSignerExternal (NIP-55 Android app). Use when signing/encrypting, adding a signer kind, login flows, or debugging sign timeouts.

updated
occupation
unclassified
description

Shared Compose UI in `commonsUI/`: screens, components, the nav shell (`ScreenLayoutSpec`, `AppShellLayout`, Navigation 3 back stacks), component catalog, `RichTextParser`, Compose API/perf review. Use when writing or reviewing shared UI.

updated
occupation
unclassified
description

Desktop JVM shim in desktopApp/.../desktop/app/: AmethystDesktop window, DesktopMenuBar shortcuts, platform ports, OS keyring; run/package (:desktopApp:run, packageDmg/Msi/Deb/Rpm). Use when touching desktopApp. NOT for shared screens/navigation.

updated
occupation
unclassified
description

Quartz IEventStore/SQLite store contract (STORE-* rules) and NIP-50 search: filter semantics, replaceable/deletion/expiry writes, counts, FTS, which kinds are SearchableEvent. Use for store parity, geode, or making a kind searchable.

updated
occupation
unclassified
description

Translation audits of `strings.xml` locales in `commonsUI/.../composeResources` and `amethyst/src/main/res`: missing or untranslated keys, CLDR plural categories, Crowdin sync rules, lint gates. Use before translating or seeding locale files.

updated
occupation
unclassified
description

Coroutines/Flow in Amethyst: picking IO vs Default, scopes and cancellation (CancellationException, withTimeout), StateFlow/SharedFlow/Channel and stateIn choices, runTest. Use when writing or reviewing async Kotlin code.

updated
occupation
unclassified
description

KMP placement and Gradle in Amethyst: which module or source set, expect/actual vs ports, verifyKmpPurity, extracting Android composables to commonsUI, build.gradle.kts/libs.versions.toml edits, secp256k1 JNI variants, R8.

updated
occupation
unclassified
description

Opening, revising or merging a PR via `gh` (GitHub) or `ngit` (nostr proposals: `pr/feat/*` branches, gitworkshop.dev, `nostr://` remote). Use when a PR task touches either path; finds remotes by URL, covers the three-mains gate and slow pushes.

updated
occupation
unclassified
description

NIP-85 trusted assertions in Quartz: kind 10040 provider lists, 30382-30385 assertion cards, RankTag/HopsTag/ServiceType, GrapeRank publisher, contact-card nicknames. Use when building, parsing or ranking on these events.

updated
occupation
unclassified
description

Quartz Nostr code: event classes, kinds, tags, TagArrayBuilder, EventFactory, NIP-19 bech32, NIP-44, hex/time/hash utils, resolving npub/nprofile/NIP-05 to a pubkey, looking up a NIP spec. Use before writing protocol code in quartz/.

updated
occupation
unclassified
description

Compose-scoped relay subscriptions in commons/relayClient: observeUser*/EventFinder, FilterAssemblers, EOSE managers, ComposeSubscriptionManager. Use when a screen must load events from relays while visible.

updated
Showing 15 of 15 collected skills.

Install with an AI assistant

Copy this prompt into the AI assistant you're using.