NAP-5: Feed topic family - #36
Closed
dskvr wants to merge 5 commits into
Closed
Conversation
This was referenced Jun 14, 2026
Rebased onto current master; spec only. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The feed open payload, origin variants, and NIP-01 filter shape now use CDDL-style schema notation, and the INC transport example no longer carries TypeScript highlighting. Constraint: Keep this branch scoped to NAP-5. Confidence: high Scope-risk: narrow Tested: git diff --check Tested: rg found no TypeScript code fences or declarations in naps/NAP-5.md
The numbered topic NAP is a language-neutral wire contract. The shell.supports example is not TypeScript-specific, so it now uses an untyped code fence. Constraint: Keep this branch scoped to its numbered NAP file. Confidence: high Scope-risk: narrow Tested: git diff --check Tested: rg found no ts or typescript code fences in the changed file
The feed topic payload should read as a transport contract, not a code-like schema block. This replaces the CDDL payload fence with tables for payload fields, provenance, behavior, origin variants, and NIP-01 filter fields. Constraint: PR #36 is scoped to NAP-5. Rejected: Rewrite inc.emit example | it is a concrete transport example, not a type definition. Confidence: high Scope-risk: narrow Tested: rg found no cddl, TypeScript, or ts schema fences in NAP-5 Tested: git diff --check -- naps/NAP-5.md
Open NAP proposal branches need reader-visible changelogs that track semantic spec changes without recording formatting-only migrations. Constraint: Changelog entries are one bullet per semantic commit-change. Rejected: Include schema-table or formatting-only commits | they do not change the spec contract or boundary. Confidence: high Scope-risk: narrow Directive: Keep future changelog entries semantic; omit changelog-only and formatting-only commits. Tested: git diff --check Not-tested: Rendered Markdown
Contributor
Author
|
Closing this because numbered NAPs are being removed from the registry. Cross-napplet payload shapes should converge as unnumbered conventions, without sequence assignment or Suggested alternative: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Defines the
feed:*topic family carried over NAP-INC. Its primary topic,feed:open, passes one or more NIP-01 filters plus an optionaloriginthat names relay-pinned or outbox-routed sourcing. It is the wire format for "show me this feed."draftinc— rides NAP-INC transport (inc.subscribe/inc.event)feed/openshell.supports("inc", "NAP-5")Changes
naps/NAP-5.mdwith thefeed:openpayload schema and producer/consumer rules.filtersarray with NIP-01 OR semantics.origin:{ type: "relay", relays }or{ type: "outbox", authors?, strategy? }.Downstream
Feed producers can describe criteria and optional origin hints without gaining relay access. Feed consumers validate filters and source events through their own authorized relay/outbox policy. The
Serves: feed/openheader self-registers this protocol as the recommended open contract for thefeedarchetype; no README or ARCHETYPES file is changed in this PR.Web binding: NIP-5D.
Changelog
ec0adad- Introduced NAP-5 as the feed topic family.