Fix NIP conformance in domain kinds; add domain docs/skill
tests / tests (push) Failing after 5m8s

NIP fixes:
- RelayMembers (13534): use NIP-43 `member` tags (not `p`) and set the required
  NIP-70 `-` protected tag.
- Profile (kind 0): remove display-name support entirely (getter, setter, display()
  fallback, and the search weight).
- Comment (1111): A/a tags now carry a real address, not the event id.
- BlossomServerList (10063): normalize server URLs with normalizeUrl (HTTP), not
  normalizeRelayUrl (which forced wss://).
- HandlerRecommendation (31989): fix inverted removeRecommendation filter; add
  setSupportedKind()/supportedKind() for the NIP-89 d-tag.
- Report (1984): place the report-type string on the e tag (note reports) or p tag
  (profile reports); always emit the p tag.

Docs/skills:
- Add @welshman/domain docs (docs/domain/) and the welshman-domain skill.
- Prune @welshman/util docs/skill of the moved Profile/List/Handler/Encryptable
  helpers; register domain in the sidebar, index, and skills README.
- Apply accuracy fixes to the @welshman/app docs/skill.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BsMjvv7krpZeHK1Njeneru
This commit is contained in:
2026-06-20 14:55:21 +00:00
parent e2a6ef21cd
commit 5b8fef5b23
29 changed files with 1382 additions and 606 deletions
+14 -4
View File
@@ -35,6 +35,20 @@ export default defineConfig({
{text: "Feeds & Search", link: "/app/feeds-and-search"},
],
},
{
text: "@welshman/domain",
link: "/domain/",
items: [
{text: "The App Reader/Builder model", link: "/domain/readers-and-builders"},
{text: "Profile", link: "/domain/profile"},
{text: "Lists", link: "/domain/lists"},
{text: "Rooms", link: "/domain/rooms"},
{text: "Relay Membership", link: "/domain/relay-membership"},
{text: "Handlers", link: "/domain/handlers"},
{text: "Zaps", link: "/domain/zaps"},
{text: "Content", link: "/domain/content"},
],
},
{
text: "@welshman/util",
link: "/util/",
@@ -45,11 +59,7 @@ export default defineConfig({
{text: "Events", link: "/util/events"},
{text: "Filters", link: "/util/filters"},
{text: "Tags", link: "/util/tags"},
{text: "Encryptable", link: "/util/encryptable"},
{text: "Relays", link: "/util/relay"},
{text: "Profiles", link: "/util/profile"},
{text: "Handlers", link: "/util/handlers"},
{text: "Lists", link: "/util/list"},
{text: "Zaps", link: "/util/zaps"},
{text: "Relay Auth", link: "/util/nip42"},
{text: "HTTP Auth", link: "/util/nip98"},