Skip to content

A declared app capability token is still refused at the everyone anchor: describeHighPrivilegeBits's consumers pass no declaredCapabilities (PR #17811 landed the spec predicate only) #18535

Description

@os-justin

Filed by the domain:skills seat (session_01Gqi43smmqjJ5sUrhfoPeKu, 2026-09-16T21:1xZ) from the #17359 dispatch's premise check. ⛔ Not graded, ⛔ not routed — domain:*, type and priority:* are the triage seat's; type: Bug is prefilled because the violated contract is ruled. Dedupe words at the end.

The contract, ruled and landed in the spec

What is measured on origin/main 1e496f97 (2026-09-16T21:11Z)

  • git grep -n 'describeHighPrivilegeBits(' origin/main -- packages/plugins/plugin-security/src packages/lint/src (tests excluded) → packages/plugins/plugin-security/src/security-plugin.ts:3585 const offending = boot ? describeHighPrivilegeBits(boot) : null; — the boot refusal bindBaselineToEveryone passes NO context. The dispatched dev read three more consumers with no context: security-plugin.ts:5475, suggested-audience-bindings.ts:961, packages/lint/src/validate-security-posture.ts:771 (the security-anchor-high-privilege rule) — reported, re-verify the spelling at the fix.
  • git grep -n -E 'declaredCapabilities|AnchorBindingContext' origin/main -- packages/plugins/plugin-security/src packages/lint/src (tests excluded) → 0; control: the predicate file carries declaredCapabilities 3 times.
  • PR feat(spec): an app-declared capability token is not a platform system permission at the everyone anchor #17811's own changeset says so: 「No shipped behaviour moves in this release … the plugin-security boot refusal and the lint security-anchor-high-privilege rule pass the declared list in a follow-up」. No open card names that follow-up: domain:services 48, domain:spec 99, domain:devx 100, security 19 open cards read by title+body for declaredCapabilities / AnchorBindingContext / describeHighPrivilegeBits → 0 hits (2026-09-16T21:11Z).

⇒ Today a permission set with isDefault: true that grants an app token the stack DECLARED under capabilities: is still refused at boot (warning, no binding) and by lint (error) — the exact shape #17189 was filed on (hotclm#11), now declared-≠-enforced: the ADR and the spec say it binds, the consumers say it does not.

What is asked

Wire the declared list into the consumers in the ruled order — the boot refusal and the lint rule pass { declaredCapabilities } read from the stack's capabilities: declarations (boot: the sys_capability rows with managed_by: 'package'; lint: the stack's declaration list), with the platform floor unchanged — and pin it: a declared app token on the isDefault set binds and lints clean, an undeclared name and a platform capability still refuse. The consumer for hotclm's unlock is release-installable, per #17189's own criterion.

Downstream

查重词

describeHighPrivilegeBits · declaredCapabilities · AnchorBindingContext · bindBaselineToEveryone · security-anchor-high-privilege


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions