Constraint Identification
Purpose: Systematically discover what could prevent a candidate from being implemented. Uses Theory of Constraints to find bottlenecks, TRIZ to surface contradictions, and Pre-mortem to anticipate failures before they occur.
When to use:
- A candidate looks promising but you need to stress-test its viability
- Stakeholders want to know what could go wrong before committing
- You need a structured inventory of blockers with severity and removability assessments
Budget
| Metric |
Target |
| Constraints identified |
>= 3 per candidate |
| Hard constraints classified |
>= 1 |
| Removal paths designed |
>= 1 per removable constraint |
State Ledger
| Key |
Type |
Description |
| candidate |
object |
The candidate under assessment |
| constraints[] |
array |
All identified constraints |
| hard_constraints[] |
array |
Non-negotiable blockers |
| soft_constraints[] |
array |
Constraints that can be worked around |
| assumptions[] |
array |
Unvalidated beliefs that may become constraints |
| removal_paths{} |
map |
Constraint -> removal path mapping |
Available Tactics
| Tactic |
When |
| constraint-drilling |
Default — full constraint discovery, classification, and removal path design |
Available SOPs
| SOP |
Purpose |
| constraint-identification-sop |
Discover constraints |
| constraint-classification |
Sort into hard/soft/assumptions |
| removability-assessment |
Score how removable each constraint is |
| removal-path |
Design steps to remove a constraint |
Execution Guidance
- Deploy
constraint-identification-sop to discover all constraints using TOC, TRIZ, and Pre-mortem
- Feed discovered constraints to
constraint-classification to sort them
- For each non-trivial constraint, run
removability-assessment
- For constraints with removability score > 0.3, design
removal-path
- Aggregate findings into state ledger
Output Format
constraint_analysis:
candidate: <name>
total_constraints: N
hard_constraints:
- {constraint, severity, rationale}
soft_constraints:
- {constraint, severity, workaround_sketch}
assumptions:
- {assumption, risk_if_false, validation_method}
removal_paths:
- {constraint, removability: 0.X, steps: [...], timeline, resources}
showstopper_verdict: <yes/no>
showstopper_reason: <if yes>
Available Tactics
Optional, no fixed order; the final leaf is always a sop.
| Tactic |
When to use |
| constraint-drilling |
Identify constraints, classify them by type and severity, assess removability, and design removal paths for removable constraints. |
1---2name: constraint-identification3description: Find blockers and showstoppers using TOC, TRIZ contradiction analysis, and Pre-mortem techniques.4---56# Constraint Identification78**Purpose:** Systematically discover what could prevent a candidate from being implemented. Uses Theory of Constraints to find bottlenecks, TRIZ to surface contradictions, and Pre-mortem to anticipate failures before they occur.910**When to use:**11- A candidate looks promising but you need to stress-test its viability12- Stakeholders want to know what could go wrong before committing13- You need a structured inventory of blockers with severity and removability assessments1415## Budget1617| Metric | Target |18|--------|--------|19| Constraints identified | >= 3 per candidate |20| Hard constraints classified | >= 1 |21| Removal paths designed | >= 1 per removable constraint |2223## State Ledger2425| Key | Type | Description |26|-----|------|-------------|27| candidate | object | The candidate under assessment |28| constraints[] | array | All identified constraints |29| hard_constraints[] | array | Non-negotiable blockers |30| soft_constraints[] | array | Constraints that can be worked around |31| assumptions[] | array | Unvalidated beliefs that may become constraints |32| removal_paths{} | map | Constraint -> removal path mapping |3334## Available Tactics3536| Tactic | When |37|--------|------|38| constraint-drilling | Default — full constraint discovery, classification, and removal path design |3940## Available SOPs4142| SOP | Purpose |43|-----|---------|44| constraint-identification-sop | Discover constraints |45| constraint-classification | Sort into hard/soft/assumptions |46| removability-assessment | Score how removable each constraint is |47| removal-path | Design steps to remove a constraint |4849## Execution Guidance50511. Deploy `constraint-identification-sop` to discover all constraints using TOC, TRIZ, and Pre-mortem522. Feed discovered constraints to `constraint-classification` to sort them533. For each non-trivial constraint, run `removability-assessment`544. For constraints with removability score > 0.3, design `removal-path`555. Aggregate findings into state ledger5657## Output Format5859```yaml60constraint_analysis:61 candidate: <name>62 total_constraints: N63 hard_constraints:64 - {constraint, severity, rationale}65 soft_constraints:66 - {constraint, severity, workaround_sketch}67 assumptions:68 - {assumption, risk_if_false, validation_method}69 removal_paths:70 - {constraint, removability: 0.X, steps: [...], timeline, resources}71 showstopper_verdict: <yes/no>72 showstopper_reason: <if yes>73```7475<!-- BEGIN available-tables (generated) -->7677## Available Tactics7879Optional, no fixed order; the final leaf is always a sop.8081| Tactic | When to use |82| --- | --- |83| constraint-drilling | Identify constraints, classify them by type and severity, assess removability, and design removal paths for removable constraints. |8485<!-- END available-tables (generated) -->