A guide to using constraint-first thinking beyond software engineering.
Manifold's constraint-first approach translates well to non-programming domains, with varying effectiveness:
| Domain | Applicability | Best For |
|---|---|---|
| Research/Analysis | HIGH | Methodology design, study planning |
| Business | HIGH | Strategic decisions, expansion planning |
| Personal | HIGH | Major life decisions, career choices |
| Creative | MODERATE | Project planning (not creative direction) |
To activate non-software mode, pass --domain=non-software when initializing a manifold:
/manifold:m0-init career-change --domain=non-software --outcome="Make the right career move"This flag does two things:
- Switches constraint categories from software-specific (Business, Technical, UX, Security, Operational) to universal categories (Obligations, Desires, Resources, Risks, Dependencies)
- Switches artifact generation from code artifacts to decision artifacts (decision brief, scenario stress-tests, narrative guide, recovery playbook, risk watch list)
The flag defaults to software when omitted, so all existing workflows are unaffected. The reasoning mechanics (constraint types, tension analysis, backward reasoning) are identical in both modes -- only the vocabulary and output artifacts change.
The five universal categories replace the software-centric categories when --domain=non-software is active:
| Universal Category | Core Question | Replaces (Software) |
|---|---|---|
| Obligations | What must/must-not be true? | Business + Security |
| Desires | What does success look like? | UX + Business goals |
| Resources | What can I bring to this? | Technical (capability limits) |
| Risks | What could break irreversibly? | Security (broadened) |
| Dependencies | What else must hold outside me? | Operational |
Constraint types (INVARIANT / GOAL / BOUNDARY) are unchanged. The categories change; the type taxonomy does not.
-
Tension Analysis is Universally Valuable
- Every domain tested produced meaningful tensions
- Hidden dependencies emerged naturally
- Trade-offs became explicit rather than implicit
-
The "Risks" Category Surprises
- Maps naturally to different concepts per domain:
- Business: Financial/market risks
- Personal: Exit strategies, safety nets
- Research: Validity threats
- Often surfaces considerations that emotional thinking overlooks
- Maps naturally to different concepts per domain:
-
Constraint Types Transfer Directly
- Invariant (must never violate): Works in all domains
- Goal (should optimize): Works in all domains
- Boundary (hard limit): Works in all domains
-
Creative Contexts
- Framework better for planning than direction
- Consider softer names: "Vision" instead of "Obligations"
- Don't force structure on inherently fluid processes
-
Time Expectations
- 5-10 minutes is sufficient for most decisions
- Complex decisions may warrant 30+ minutes
- Don't over-engineer simple choices
- Decision has multiple stakeholders or competing interests
- Stakes are high enough to warrant structured thinking
- You suspect hidden constraints or trade-offs
- Previous decisions in this area have gone poorly
- Decision is simple or low-stakes
- Creative exploration is the goal (not planning)
- Time pressure makes structured analysis impractical
- Intuition is likely sufficient
- Initialize with the non-software flag:
/manifold:m0-init my-decision --domain=non-software --outcome="Desired outcome" - Brainstorm constraints across all 5 universal categories (2 min each)
- Identify tensions between conflicting constraints
- Resolve or accept each tension
- Decide with full constraint visibility
What must/must-not be true?
Ask yourself:
- What are the non-negotiable requirements?
- What legal, ethical, or contractual commitments apply?
- What must absolutely happen -- or absolutely not happen?
What does success look like?
Ask yourself:
- What does the ideal outcome feel like?
- What would make stakeholders genuinely satisfied?
- What experience is unacceptable?
What can I bring to this?
Ask yourself:
- What time, money, skills, and energy are available?
- What are the hard limits on what I can invest?
- What capabilities exist today vs. what must be built?
What could break irreversibly?
Ask yourself:
- What's the worst-case scenario?
- What's my exit strategy if this goes wrong?
- What would I regret that I can't undo?
What else must hold outside me?
Ask yourself:
- What external factors must remain stable?
- Who else must act, and when?
- What assumptions about the environment am I making?
When --domain=non-software is active, m4-generate produces these artifacts instead of code:
| Non-Software Artifact | Software Equivalent | Function |
|---|---|---|
| Decision brief | Implementation code | Decision with full constraint traceability |
| Scenario stress-tests | Test suite | Verifies decision holds under adversarial conditions |
| Narrative guide | Documentation | Reasoning survives time and personnel changes |
| Recovery playbook | Runbooks | Pre-decided responses to watch-list risks |
| Risk watch list + review triggers | Dashboards + alerts | What to monitor; when to reopen |
See m4-generate-nonsoftware.md for full artifact templates.
Tensions surface naturally when constraints conflict:
| Type | Meaning | Example |
|---|---|---|
| Trade-off | Can't fully satisfy both | Career growth vs family time |
| Resource Tension | Not enough to meet both | Speed vs quality with fixed budget |
| Hidden Dependency | One requires the other first | Customer experience requires local hiring |
Which Manifold commands work for non-programming decisions?
| Command | Applicable? | Notes |
|---|---|---|
/manifold:m0-init |
Yes | Use --domain=non-software to activate universal categories |
/manifold:m1-constrain |
Yes | Discovers constraints across 5 universal categories |
/manifold:m2-tension |
Yes | Surface conflicts between constraints |
/manifold:m3-anchor |
Yes | Backward reasoning works for any outcome |
/manifold:m4-generate |
Yes | Generates decision artifacts (not code) in non-software mode |
/manifold:m5-verify |
Yes | Verifies completeness against constraints |
/manifold:m6-integrate |
No | Code-specific wiring |
/manifold:m-status |
Yes | Track decision progress |
Key Insight: With the --domain=non-software flag, all phases through m5-verify are fully applicable. The artifact phases produce decision-appropriate outputs rather than code artifacts.
For personal decisions containing sensitive information:
- All manifolds are local - Files stay in
.manifold/on your machine - No data leaves your system - Framework operates entirely locally
- You control the files - Delete anytime, no external dependencies
- Private by default - No telemetry, no cloud sync, no sharing
Recommendations for sensitive decisions:
- Use generic/anonymized scenario names
- Keep manifold files outside version-controlled repositories
- Delete manifold files after decisions are made if desired
See scenario-template.md for a reusable template.
- Business Decision: Startup expansion
- Personal Decision: Job relocation
- Creative Project: Novel planning
- Research Study: Methodology selection
Manifold's constraint-first approach is not limited to software engineering. The core insight - that making ALL constraints visible BEFORE deciding leads to better outcomes - applies broadly to complex decisions.
The framework is most effective when:
- Constraints exist across multiple categories
- Trade-offs are not immediately obvious
- The decision warrants structured analysis
For simpler decisions, the cognitive overhead may not be justified. But for the decisions that really matter, surfacing constraints and tensions before committing leads to fewer surprises later.