Constraint-first development framework overview. USE WHEN learning about Manifold or checking available commands. Individual commands are separate skills - use /manifold:m0-init, /manifold:m1-constrain, etc. directly.
From manifoldnpx claudepluginhub dhanesh/manifold --plugin manifoldThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides implementation of event-driven hooks in Claude Code plugins using prompt-based validation and bash commands for PreToolUse, Stop, and session events.
Constraint-first development framework that makes ALL constraints visible BEFORE implementation.
Each command is a separate skill. Use them directly:
/manifold:m0-init my-feature # Initialize manifold
/manifold:m1-constrain my-feature # Discover constraints
/manifold:m2-tension my-feature # Surface conflicts
/manifold:m3-anchor my-feature # Backward reasoning
/manifold:m4-generate my-feature # Create all artifacts
/manifold:m5-verify my-feature # Validate constraints
/manifold:m-status # Show current state
Available Skills:
/manifold:m0-init - Initialize a constraint manifold/manifold:m1-constrain - Interview-driven constraint discovery/manifold:m2-tension - Surface and resolve conflicts (--auto-deps for v2 dependency detection)/manifold:m3-anchor - Backward reasoning from outcome/manifold:m4-generate - Generate all artifacts/manifold:m6-integrate - Wire artifacts together (v2)/manifold:m5-verify - Verify constraints coverage (--actions for v2 gap automation)/manifold:m-status - Show current state (--history for v2 iteration tracking)Initialize a constraint manifold for a feature.
Usage: /manifold:m0-init <feature-name> [--outcome="<desired outcome>"]
What it does:
.manifold/<feature-name>.yamlExample:
/manifold:m0-init payment-retry --outcome="95% retry success for transient failures"
Interview-driven constraint discovery across 5 categories.
Usage: /manifold:m1-constrain <feature-name> [--category=<category>]
Constraint Categories:
Constraint Types:
Example:
/manifold:m1-constrain payment-retry
Discovered:
- B1: No duplicate payments (INVARIANT)
- B2: 95% success rate (GOAL)
- B3: Retry window ≤ 72 hours (BOUNDARY)
Surface and resolve constraint conflicts.
Usage: /manifold:m2-tension <feature-name> [--resolve]
Tension Types:
Why this matters: Requirements are rarely consistent. Real constraints often conflict:
Example:
/manifold:m2-tension payment-retry
TENSION DETECTED:
- T1: "API response < 200ms"
- B1: "No duplicates" (idempotency check adds ~50ms)
- Resolution: Cache recent transaction IDs
Backward reasoning from desired outcome.
Usage: /manifold:m3-anchor <feature-name> [--outcome="<statement>"]
Process:
Why backward reasoning? Forward planning misses implicit requirements. Backward reasoning surfaces them:
Forward: "Build a retry system" → might miss edge cases
Backward: "95% retry success" → REQUIRES:
Example:
/manifold:m3-anchor payment-retry --outcome="95% retry success"
For 95% success, what MUST be true?
- RT-1: Can distinguish transient from permanent failures
- RT-2: Retries are idempotent
- RT-3: Sufficient retry budget
SOLUTION SPACE:
A. Client-side exponential backoff
B. Server-side queue with workflow engine
C. Hybrid approach
Generate ALL artifacts simultaneously from the constraint manifold.
Usage: /manifold:m4-generate <feature-name> [--option=<A|B|C>] [--artifacts=<list>]
Artifacts Generated:
Why all at once? Traditional: Code → Tests → Docs → Ops (often forgotten). Manifold: All artifacts derive from the SAME source.
Example:
/manifold:m4-generate payment-retry --option=B
Generated:
- src/retry/payment-retry.ts
- src/retry/payment-retry.test.ts
- docs/payment-retry.md
- ops/runbooks/payment-retry-failure.md
- ops/dashboards/payment-retry.json
- ops/alerts/payment-retry.yaml
Verify ALL artifacts against ALL constraints.
Usage: /manifold:m5-verify <feature-name> [--strict]
Verification Matrix:
| Constraint | Code | Test | Docs | Ops | Status |
|---|---|---|---|---|---|
| B1: No duplicates | ✓ | ✓ | ✓ | ✓ | SATISFIED |
| T1: <200ms | ✓ | ◐ | ✓ | ✓ | PARTIAL |
Example:
/manifold:m5-verify payment-retry
Constraint Coverage:
- INVARIANTS: 3/3 (100%)
- GOALS: 4/5 (80%)
- BOUNDARIES: 2/4 (50%)
Gaps: Add test for ErrorClassifier.classify()
Wire generated artifacts together.
Usage: /manifold:m6-integrate <feature-name> [--check-only] [--auto-wire]
Flags:
--check-only - Show integration checklist without making changes--auto-wire - Attempt automatic integration where safeWhy this exists: /manifold:m4-generate creates artifacts in isolation. Integration (wiring modules together, adding feature flags, updating imports) was manual and error-prone. This command identifies integration points and produces actionable checklists.
Example:
/manifold:m6-integrate graph-d-validation
INTEGRATION CHECKLIST:
[1] Wire WAL into Storage
├── Source: src/storage/wal.rs
├── Target: src/storage/mod.rs
├── Action: Add `pub mod wal;`
└── Satisfies: RT-1, T3
[2] Add WAL feature flag
├── Target: Cargo.toml
├── Action: Add `wal = []` to [features]
└── Satisfies: T3
Show current Manifold state and next recommended action.
Usage: /manifold:m-status [<feature-name>] [--history] [--diff]
Flags (v2):
--history - Show full iteration history--diff - Show changes since last iterationExample:
/manifold:m-status
MANIFOLD STATUS
Feature: payment-retry
Phase: ANCHORED (3/5)
Constraint Summary:
- Constraints: 12 discovered
- Invariants: 3
- Goals: 5
- Boundaries: 4
- Tensions: 2 identified, 1 resolved
- Solution Space: 3 options
Workflow Progress:
[✓] /manifold:m0-init
[✓] /manifold:m1-constrain
[✓] /manifold:m2-tension
[✓] /manifold:m3-anchor
[ ] /manifold:m4-generate
[ ] /manifold:m5-verify
Next: /manifold:m4-generate payment-retry --option=B
All data stored in .manifold/ using JSON+Markdown hybrid format:
.manifold/
├── <feature>.json # Structure (IDs, types, phases)
├── <feature>.md # Content (statements, rationale)
└── <feature>.verify.json # Verification results
Legacy YAML format (
.yamlfiles) is still supported for backwards compatibility.
Manifold ensures tasks are completed through constraint traceability:
/manifold:m4-generate)Every generated artifact is recorded with the constraints it satisfies:
{
"generation": {
"artifacts": [
{
"path": "src/retry/PaymentRetryClient.ts",
"satisfies": ["RT-1", "RT-3"],
"status": "generated"
}
],
"coverage": {
"constraints_addressed": 12,
"constraints_total": 12
}
}
}
/manifold:m5-verify)Each constraint is checked across all artifacts:
{
"verification": {
"matrix": [
{
"constraint": "B1",
"code": true,
"test": true,
"docs": true,
"status": "SATISFIED"
}
],
"gaps": [
{
"id": "G1",
"constraint": "T2",
"action": "Add load test"
}
]
}
}
This enables:
.verify.json in pipelinesWhen installed as a plugin, manifold state is automatically preserved across context compaction via the included PreCompact hook. No manual configuration needed.
The hook injects .manifold/ state before compaction, so Claude remembers:
Manifold treats development as constraint satisfaction, not feature building: