Problem
Policy reads collapse every package.json read/parse failure into an absent configuration. Absent-policy migration mode permits every discovered source, so a broken manifest can silently broaden permissions.
Evidence
A fixture with 100 installed skill packages and intent.skills: [] exposes zero skills. Replacing the root manifest with malformed JSON makes listIntentSkills() expose all 100, accompanied by a parse warning and the absent-policy migration notice. The same permissive read helper is used for inherited exclusions.
Sources: policy manifest reader, policy resolution.
Verified against main at 206e987 (@tanstack/intent 0.3.8), Node v24.12.0 on macOS arm64. Tests used installed dependencies and synthetic local fixtures.
Acceptance criteria
Scope and priority
Priority: High. Type: bug.
Recommended before v0.4.0, in a separate patch-sized PR. Preserve current selector/exclusion semantics and the documented missing-policy migration mode. No new policy storage, content locks, dependencies, or interactive UI changes.
Workspace-boundary discovery is tracked separately in #240: malformed npm root JSON can prevent the workspace itself from being identified. This issue is limited to confirmed project policy files and inherited policy within a resolved workspace.
Problem
Policy reads collapse every package.json read/parse failure into an absent configuration. Absent-policy migration mode permits every discovered source, so a broken manifest can silently broaden permissions.
Evidence
A fixture with 100 installed skill packages and
intent.skills: []exposes zero skills. Replacing the root manifest with malformed JSON makeslistIntentSkills()expose all 100, accompanied by a parse warning and the absent-policy migration notice. The same permissive read helper is used for inherited exclusions.Sources: policy manifest reader, policy resolution.
Verified against
mainat206e987(@tanstack/intent0.3.8), Node v24.12.0 on macOS arm64. Tests used installed dependencies and synthetic local fixtures.Acceptance criteria
Scope and priority
Priority: High. Type: bug.
Recommended before v0.4.0, in a separate patch-sized PR. Preserve current selector/exclusion semantics and the documented missing-policy migration mode. No new policy storage, content locks, dependencies, or interactive UI changes.
Workspace-boundary discovery is tracked separately in #240: malformed npm root JSON can prevent the workspace itself from being identified. This issue is limited to confirmed project policy files and inherited policy within a resolved workspace.