Skip to content

NAP-CLASS-1: Strict baseline posture (sub-track) - #17

Draft
dskvr wants to merge 2 commits into
masterfrom
nub-class-1
Draft

NAP-CLASS-1: Strict baseline posture (sub-track)#17
dskvr wants to merge 2 commits into
masterfrom
nub-class-1

Conversation

@dskvr

@dskvr dskvr commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

Status: Draft
Parent: NAP-CLASS
Class number: 1

Summary

NAP-CLASS-1 is the strict baseline posture for napplets that do not declare any class-contributing NAP capabilities. Shells emit a restrictive Content Security Policy with connect-src 'none', show no consent prompt, and send class.assigned with class: 1.

CSP Posture

connect-src 'none'

Shells emitting the NAP-CLASS-1 posture MUST include connect-src 'none' in the runtime CSP served with the napplet's HTML. Other directives in the baseline CSP (script-src, default-src, img-src, etc.) are shell-policy concerns and are NOT specified by NAP-CLASS-1 — only the connect-src value is the class's defining characteristic.

Scope

  • Manifest Prerequisites — default posture; reached when no other class-contributing NAP's trigger conditions are met. Future NAP-CLASS-$N ($N > 1) MUST document their own triggers.
  • Shell Responsibilities — emit baseline CSP with connect-src 'none', skip consent prompt, send terminal class.assigned with class: 1.
  • User Consent — no consent state; resolves to NAP-CLASS-1 at first load, every subsequent load, under every shell that implements the base protocol, independent of user action.
  • Security Considerations — zero direct-network surface; napplet cannot fetch/WebSocket/EventSource any host. Indirect network still available via shell-mediated NAPs (e.g., NAP-RESOURCE).

Non-Goals

  • Dynamic promotion — a napplet that starts as NAP-CLASS-1 stays NAP-CLASS-1 for its lifecycle; promotion to a higher class requires manifest change + aggregateHash change + new iframe.
  • Defining shell CSP policies beyond connect-src — not in scope.

Implementations

(none yet)

Changelog

  • 71ad6a1 - Introduced NAP-CLASS-1 as the strict baseline posture sub-track.

dskvr added a commit that referenced this pull request Apr 21, 2026
@dskvr
dskvr marked this pull request as draft April 22, 2026 09:01
@dskvr dskvr changed the title NUB-CLASS-1: Strict baseline posture (sub-track) NAP-CLASS-1: Strict baseline posture (sub-track) Jun 3, 2026
@dskvr dskvr added the DEFERRED label Jun 17, 2026
Rebased onto current master; spec only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant