Multi-perspective dialectical reasoning with cross-evaluative synthesis. Spawns parallel evaluative lenses (STRUCTURAL, EVIDENTIAL, SCOPE, ADVERSARIAL, PRAGMATIC) that critique thesis AND critique each other's critiques, producing N-squared evaluation matrix before recursive aggregation. Triggers on /critique, /dialectic, /crosseval, requests for thorough analysis, stress-testing arguments, or finding weaknesses. Implements Hegelian refinement enhanced with interleaved multi-domain evaluation and convergent synthesis.
Execute adversarial self-refinement through parallel evaluative lenses with cross-evaluation and recursive aggregation.
┌──────────────────────────────────────────────────────────────────────────────┐
│ DIALECTIC ENGINE v3 │
├──────────────────────────────────────────────────────────────────────────────┤
│ Φ0: CLASSIFY → complexity assessment, mode selection, lens allocation │
│ Φ1: THESIS → committed position with claim DAG │
│ Φ2: MULTI-LENS → N lenses evaluate thesis (N critiques) │
│ ANTITHESIS + each lens evaluates others (N×(N-1) cross-evals) │
│ = N² total evaluation cells │
│ Φ3: AGGREGATE → consensus/contested/unique extraction │
│ SYNTHESIS + recursive compression passes → single output │
│ Φ4: CONVERGE → stability check, iterate or finalize │
└──────────────────────────────────────────────────────────────────────────────┘
PHASE DEPENDENCIES:
Φ0 ──► Φ1 ──► Φ2a ──► Φ2b ──► Φ3 ──► Φ4
(initial) (cross) │
└──► Φ1 (if ITERATE)
def select_mode(query: str) -> Mode:
"""
Select critique depth based on query characteristics.
QUICK: Simple claims, factual questions, narrow scope
STANDARD: Moderate complexity, clear domain, some nuance
FULL: Complex arguments, multiple stakeholders, high stakes
"""
indicators = {
"quick": [
len(query) < 200,
single_claim(query),
factual_verifiable(query),
low_controversy(query)
],
"full": [
len(query) > 1000,
multi_stakeholder(query),
ethical_implications(query),
policy_recommendation(query),
high_stakes_decision(query)
]
}
if sum(indicators["quick"]) >= 3:
return Mode.QUICK
elif sum(indicators["full"]) >= 2:
return Mode.FULL
else:
return Mode.STANDARD
| Mode | Lenses | Cross-Eval | Cycles | Threshold | Token Budget |
|---|---|---|---|---|---|
| QUICK | 3 (S,E,A) | None | 1 | 0.85 | ~800 |
| STANDARD | 5 (all) | Selective (10 cells) | 2 | 0.92 | ~2000 |
| FULL | 5 (all) | Complete (25 cells) | 3 | 0.96 | ~4000 |
| Trigger | Mode | Description |
|---|---|---|
/critique | Auto-detect | Intelligent mode selection |
/critique-quick | QUICK | Fast, 3-lens, no cross-eval |
/critique-standard | STANDARD | Balanced, selective cross-eval |
/critique-full | FULL | Complete N² analysis |
/crosseval | FULL | Emphasis on Φ2b matrix |
/aggregate | FULL | Emphasis on Φ3 synthesis |
Five orthogonal perspectives designed for comprehensive coverage with minimal overlap:
| Lens | Code | Domain | Core Question | Orthogonality Rationale |
|---|---|---|---|---|
| STRUCTURAL | S | Logic & coherence | Is reasoning valid? | Form vs content |
| EVIDENTIAL | E | Evidence & epistemology | What justifies belief? | Justification type |
| SCOPE | O | Boundaries & generality | Where does this apply? | Domain limits |
| ADVERSARIAL | A | Opposition & alternatives | What's the best counter? | External challenge |
| PRAGMATIC | P | Application & consequence | Does this work? | Theory vs practice |
Lenses target distinct failure modes:
Overlap detection: If two lenses identify the same issue, it's either a genuine high-priority concern (reinforce) or a lens calibration problem (investigate).
def classify_and_configure(query: str) -> Config:
mode = select_mode(query)
configs = {
Mode.QUICK: {
"lenses": ["S", "E", "A"],
"cross_eval": False,
"cycles": 1,
"threshold": 0.85,
"token_budget": 800
},
Mode.STANDARD: {
"lenses": ["S", "E", "O", "A", "P"],
"cross_eval": "selective", # 10 highest-value cells
"cycles": 2,
"threshold": 0.92,
"token_budget": 2000
},
Mode.FULL: {
"lenses": ["S", "E", "O", "A", "P"],
"cross_eval": "complete", # All 25 cells
"cycles": 3,
"threshold": 0.96,
"token_budget": 4000
}
}
return Config(**configs[mode], mode=mode)
Output: [CRITIQUE:Φ0|mode={m}|lenses={n}|cross={type}|budget={t}]
Generate committed response with explicit claim DAG.
Requirements:
F (FOUNDATIONAL) — axioms, definitions (immutable after Φ1)S (STRUCTURAL) — derived claims (attackable)P (PERIPHERAL) — applications (most vulnerable)Schema: