Cutdown Capability Policy
Principle
Capabilities are deny-by-default.
No extension may assume access to file system, network, process execution, or similar external resources unless explicitly declared and explicitly allowed by the host environment.
Capability Manifest
Every extension must define a capability manifest entry:
capabilities: list of required capability IDscapability_reason: short justification per capability
If no external access is needed, use capabilities: [].
Standard Capability IDs
fs.readfs.writenetwork.fetchprocess.exec
Additional IDs may be introduced only with Language owner approval.
Enforcement Rules
- Extension behavior requiring a capability must be gated by explicit allowlist.
- If a required capability is not granted, behavior must degrade deterministically to documented fallback.
- Capability denial must emit a structured diagnostic code and recovery mode.
Observability
Consumers should expose effective capability grants in parse/runtime metadata for reproducibility and auditability.
At minimum include:
- extension ID,
- requested capabilities,
- granted capabilities.
Governance Integration
Any new extension proposal must include:
- capability manifest,
- denied-capability fallback behavior,
- conformance vectors for granted and denied capability states.