brainstorming
Structured design dialogue that validates ideas before implementation begins.
constrain
Enforce policies, guardrails, and permission boundaries; refuse unsafe actions and apply least privilege. Use when evaluating actions against policies, checking permissions, or reducing scope to safe boundaries.
Full skill instructions
Execute constrain to evaluate proposed actions against defined policies, enforce permission boundaries, and reduce scope to the minimum required for safe operation. This is the gatekeeper that prevents unsafe actions before they execute.
Success criteria:
Compatible schemas:
schemas/output_schema.yaml| Parameter | Required | Type | Description |
|---|---|---|---|
action | Yes | object | The proposed action to evaluate (capability, target, parameters) |
policy_id | No | string | Specific policy to evaluate against (default: all applicable) |
scope | No | object | Current permission scope to constrain |
enforcement_level | No | enum | strict (block), advisory (warn), audit (log only) |
context | No | object | Additional context for policy evaluation (user, session, etc.) |
Identify applicable policies: Find all policies relevant to the action
.policies/ or policy registryEvaluate preconditions: Check if action meets basic safety requirements
Apply policy rules: Evaluate each policy condition
Reduce scope: Apply least privilege principle
Determine enforcement action: Based on policy verdict
block: Prevent action from executingwarn: Allow but alert user to risklog: Record violation but allow actionGround claims: Document policy evaluation evidence
policy:<policy_id>:<condition>, decision rationaleReturn a structured object:
constraints_applied:
- name: string # Policy or constraint name
type: policy | permission | rate_limit | scope
target: string # What the constraint applies to
enforced: boolean # Whether constraint was enforced
violation_action: block | warn | log
policy_evaluation:
policy_id: string # Which policy was evaluated
result: allow | deny | conditional
conditions_met: array[string] # Conditions that passed
conditions_failed: array[string] # Conditions that failed
scope_reduction:
original_scope: object # Permissions before constraining
constrained_scope: object # Permissions after constraining
removed_permissions: array[string] # What was removed
safe_to_proceed: boolean # Overall go/no-go
blocked_reason: string | null # Why blocked (if applicable)
confidence: number # 0.0-1.0
evidence_anchors: ["policy:...", "file:..."]
assumptions: []
| Field | Type | Description |
|---|---|---|
constraints_applied | array | List of constraints evaluated and their enforcement |
policy_evaluation | object | Result of primary policy evaluation |
scope_reduction | object | How permissions were reduced |
safe_to_proceed | boolean | Overall decision: can action proceed? |
blocked_reason | string | Explanation if action is blocked |
confidence | number | 0.0-1.0 based on policy coverage |
evidence_anchors | array | References to policies evaluated |
assumptions | array | Policy assumptions made |
Input:
action:
capability: "edit"
target: "/etc/passwd"
parameters:
content: "..."
enforcement_level: strict
Output:
constraints_applied:
- name: "workspace_boundary"
type: scope
target: "/etc/passwd"
enforced: true
violation_action: block
- name: "sensitive_file_protection"
type: policy
target: "/etc/passwd"
enforced: true
violation_action: block
policy_evaluation:
policy_id: "sys_file_protection"
result: deny
conditions_met: []
conditions_failed:
- "path must be within workspace"
- "system files are read-only"
scope_reduction:
original_scope:
paths: ["/**"]
constrained_scope:
paths: ["/workspace/**"]
removed_permissions:
- "write to system paths"
safe_to_proceed: false
blocked_reason: "Action targets system file outside workspace boundary. Editing /etc/passwd is prohibited."
confidence: 1.0
evidence_anchors:
- "policy:workspace_boundary:path_check"
- "policy:sys_file_protection:sensitive_paths"
assumptions: []
Evidence pattern: Policy definitions, path matching against workspace boundary.
Input:
action:
capability: "send"
target: "https://api.external.com/data"
parameters:
method: "POST"
payload: {...}
context:
session_id: "abc123"
requests_this_hour: 95
enforcement_level: advisory
Output:
constraints_applied:
- name: "external_api_rate_limit"
type: rate_limit
target: "api.external.com"
enforced: true
violation_action: warn
- name: "checkpoint_before_send"
type: policy
target: "send capability"
enforced: true
violation_action: block
policy_evaluation:
policy_id: "external_communication"
result: conditional
conditions_met:
- "destination is allowed domain"
- "payload size within limits"
conditions_failed:
- "approaching rate limit (95/100 this hour)"
scope_reduction:
original_scope:
rate_limit: 100
burst_allowed: true
constrained_scope:
rate_limit: 5
burst_allowed: false
removed_permissions:
- "burst requests"
safe_to_proceed: true
blocked_reason: null
confidence: 0.9
evidence_anchors:
- "policy:external_api_rate_limit:hourly_quota"
- "context:requests_this_hour:95"
assumptions:
- "Rate limit counter is accurate"
- "Hour boundary resets at :00"
Input:
action:
capability: "act-plan"
target: "refactor_handlers_plan"
parameters:
plan_id: "plan_20240115_refactor"
enforcement_level: strict
Output:
constraints_applied:
- name: "checkpoint_required"
type: policy
target: "act-plan"
enforced: true
violation_action: block
policy_evaluation:
policy_id: "mutation_safety"
result: conditional
conditions_met:
- "plan exists and is valid"
- "files in scope are editable"
conditions_failed:
- "checkpoint not found for scope"
scope_reduction:
original_scope:
mutation_allowed: true
constrained_scope:
mutation_allowed: false
removed_permissions:
- "file mutation (pending checkpoint)"
safe_to_proceed: false
blocked_reason: "act-plan requires checkpoint. Call 'checkpoint' first with scope matching the plan."
confidence: 1.0
evidence_anchors:
- "policy:mutation_safety:checkpoint_gate"
- "composition_patterns.md:CAVR"
assumptions: []
Apply the following verification patterns:
Verification tools: Read (for policy files), Grep (for policy search)
mutation: false (constrain is evaluation only)requires_checkpoint: falserequires_approval: falserisk: lowCapability-specific rules:
Commonly follows:
plan - Constrain the planned actions before checkpointcritique - After identifying risks, constrain to mitigateCommonly precedes:
checkpoint - After constrain approves, create checkpointsend - REQUIRED: constrain before any external communicationact-plan - Constrain as part of pre-execution checksAnti-patterns:
Workflow references:
reference/composition_patterns.md#digital-twin-sync-loop for constrain-before-actreference/composition_patterns.md#risk-assessment for constrain placementreference/verification_patterns.md#safety-boundary for boundary checksStructured design dialogue that validates ideas before implementation begins.
Comprehensive design intelligence for web and mobile UI/UX across 10 technology stacks.
Comprehensive implementation plans for multi-step tasks, breaking down specs into bite-sized, testable steps.
Introduction to the obra skills system with mandatory skill invocation rules and best practices.
Execute a written implementation plan with critical review and task checkpoints.
Delegate independent tasks to specialized agents working concurrently with isolated context.
Isolated git worktrees with smart directory selection and safety verification.
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Plan searchable and shareable content that drives traffic, builds authority, and generates leads.
README-first repository scanner that extracts commands and classifies reproduction candidates without executing them.
Brainstorm and prioritize marketing strategies tailored to your SaaS stage, budget, and goals.
Plan and optimize your website's page hierarchy, navigation, URL structure, and internal linking.
The world's fastest calendar for remote work
Capture, organize, and utilize your knowledge effortlessly.
Instant Summaries of Audio & Video Interviews with AnySummary
Transform PDFs into engaging mind maps.
Chat with any PDF instantly
Create an optimal daily plan using your voice
A productivity platform to centralize organizational knowledge and workflows with contextual AI assistance.
AskYourPDF Pricing Plans: Tailored to Your Needs