critique
π―Skillfrom zpankz/mcp-skillset
Executes multi-perspective dialectical reasoning by spawning parallel evaluative lenses that critique and cross-evaluate arguments with recursive synthesis.
Part of
zpankz/mcp-skillset(137 items)
Installation
npx skills add zpankz/mcp-skillset --skill critiqueSkill Details
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.
Overview
# Critique: Multi-Lens Dialectical Refinement
Execute adversarial self-refinement through parallel evaluative lenses with cross-evaluation and recursive aggregation.
Architecture
```
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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)
```
Mode Selection
Automatic Mode Detection
```python
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 Specifications
| 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 |
Manual Triggers
| 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 |
Evaluative Lenses
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 |
Lens Independence Validation
Lenses target distinct failure modes:
- S catches: invalid inference, circular reasoning, equivocation
- E catches: weak evidence, unfalsifiable claims, cherry-picking
- O catches: overgeneralization, edge cases, context dependence
- A catches: stronger alternatives, unconsidered objections
- P catches: implementation barriers, unintended consequences
Overlap detection: If two lenses identify the same issue, it's either a genuine high-priority concern (reinforce) or a lens calibration problem (investigate).
Execution Protocol
Ξ¦0: Classification & Mode Selection
```python
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}]
Ξ¦1: Thesis Generation
Generate committed response with explicit claim DAG.
Requirements:
- State positions with falsifiable specificity
- Build claim graph with stability ordering:
- F (FOUNDATIONAL) β axioms, definitions (immutable after Ξ¦1)
- S (STRUCTURAL) β derived claims (attackable)
- P (PERIPHERAL) β applications (most vulnerable)
- Verify acyclicity (DAG enforcement)
- Compute initial topology metrics
Schema:
```yaml
thesis:
response: "{Complete committed response}"
claims:
- id: C1
content: "{Specific falsifiable claim}"
stability: F|S|P
supports: [C2, C3]
depends_on: []
confidence: 0.0-1.0
evidence_type: empirical|logical|definitional|analogical
topology:
nodes: {n}
edges: {e}
density: {e/n} # Target β₯2.0
cycles: 0 # Must be 0 (enforced)
aggregate_confidence: 0.0-1.0
completion_marker: "Ξ¦1_COMPLETE" # Required for Ξ¦2 to proceed
```
Output: [CRITIQUE:Ξ¦1|claims={n}|edges={e}|Ξ·={density}|conf={c}|β]
Ξ¦2: Multi-Lens Antithesis
#### Ξ¦2a: Initial Lens Evaluations
Prerequisite: Ξ¦1.completion_marker == "Ξ¦1_COMPLETE"
Each lens independently evaluates thesis using attack vectors:
```yaml
# STRUCTURAL lens attacks
structural:
- non_sequitur: "Conclusion does not follow from premises"
- circular_reasoning: "Conclusion presupposed in premises"
- false_dichotomy: "Excluded middle options"
- equivocation: "Term shifts meaning mid-argument"
# EVIDENTIAL lens attacks
evidential:
- insufficient_evidence: "Claim exceeds evidential support"
- cherry_picking: "Counter-evidence unaddressed"
- unfalsifiable: "No possible disconfirming evidence"
- correlation_causation: "Causal claim from correlational data"
# SCOPE lens attacks
scope:
- overgeneralization: "Specific case β universal claim"
- edge_case: "Valid boundary defeats universal"
- context_dependence: "Unstated contextual requirements"
# ADVERSARIAL lens attacks
adversarial:
- steel_man: "Strongest form of opposition"
- alternative_explanation: "Competing hypothesis equally plausible"
- precedent_contradiction: "Accepted instance defeats thesis"
# PRAGMATIC lens attacks
pragmatic:
- implementation_barrier: "Cannot be executed as stated"
- unintended_consequence: "Second-order effects harmful"
- scaling_failure: "Works small, fails large"
```
Per-lens output:
```yaml
lens_evaluation:
lens: S|E|O|A|P
attacks:
- target: C{id}
type: "{attack_vector}"
content: "{Specific critique}"
severity: fatal|major|minor|cosmetic
confidence_impact: -0.0 to -1.0
summary_score: 0.0-1.0
completion_marker: "Ξ¦2a_{lens}_COMPLETE"
```
Completion Gate: All lenses must have completion_marker before Ξ¦2b proceeds.
#### Ξ¦2b: Cross-Lens Evaluation
Prerequisite: All Ξ¦2a_{lens}_COMPLETE markers present
QUICK mode: Skip Ξ¦2b entirely
STANDARD mode: Evaluate 10 highest-value cells:
- High-severity attacks from each lens (5 cells)
- Highest-confidence attacks cross-checked by adjacent lens (5 cells)
FULL mode: Complete 5Γ5 matrix (25 cells, minus 5 diagonal = 20 evaluations)
```
Cross-evaluation matrix:
β S eval β E eval β O eval β A eval β P eval β
βββββΌββββββββββΌββββββββββΌββββββββββΌββββββββββΌββββββββββ€
S β β β β SβE β SβO β SβA β SβP β
E β β EβS β β β EβO β EβA β EβP β
O β β OβS β OβE β β β OβA β OβP β
A β β AβS β AβE β AβO β β β AβP β
P β β PβS β PβE β PβO β PβA β β β
```
Cross-eval output:
```yaml
cross_evaluation:
evaluator: S|E|O|A|P
evaluated: S|E|O|A|P
verdict: endorse|partial|reject
agreements: ["{attack_ids}"]
disagreements:
- attack: "{attack_id}"
objection: "{Why evaluator disagrees}"
missed: ["{What evaluator would add}"]
calibration: "{Over/under severity assessment}"
```
Output: [CRITIQUE:Ξ¦2|mode={m}|attacks={n}|cross={cells}|β]
Ξ¦3: Aggregation & Synthesis
#### Phase 3a: Matrix Analysis
```python
def analyze_matrix(all_attacks: list, cross_evals: Matrix) -> Analysis:
# Consensus: β₯80% lenses agree
consensus = [a for a in all_attacks if agreement_rate(a) >= 0.80]
# Contested: 40-79% agreement
contested = [a for a in all_attacks if 0.40 <= agreement_rate(a) < 0.80]
# Unique: Single lens, but cross-eval endorsed
unique = [a for a in all_attacks
if source_count(a) == 1 and cross_endorsed(a)]
# Rejected: <40% agreement AND cross-eval rejection
rejected = [a for a in all_attacks
if agreement_rate(a) < 0.40 and cross_rejected(a)]
return Analysis(consensus, contested, unique, rejected)
```
#### Phase 3b: Conflict Resolution
For contested items:
```python
def resolve_contested(contested: list, matrix: Matrix) -> list:
resolutions = []
for attack in contested:
support_weight = sum(credibility(s) for s in supporters(attack))
oppose_weight = sum(credibility(o) for o in opposers(attack))
if support_weight > oppose_weight * 1.5:
resolution = "ADOPT"
elif oppose_weight > support_weight * 1.5:
resolution = "REJECT"
else:
resolution = "CONDITIONAL"
resolutions.append(Resolution(attack, resolution, rationale(attack)))
return resolutions
```
#### Phase 3c: Recursive Compression
```
Pass 1: Apply consensus β Core modifications (mandatory)
Pass 2: Apply contested β Conditional modifications (with qualifications)
Pass 3: Apply unique β Enhancement layer (optional enrichment)
Pass 4: Validate coherence β If failed, re-compress with tighter constraints
```
Maximum compression passes: 4 (prevent infinite recursion)
Synthesis output:
```yaml
synthesis:
response: "{Refined response}"
modifications:
from_consensus: [{claim, action, rationale}]
from_contested: [{claim, action, condition}]
from_unique: [{claim, enhancement}]
rejected_attacks: [{attack, rejection_rationale}]
residual_uncertainties: [{uncertainty, disagreeing_lenses, impact}]
confidence:
initial: {Ξ¦1}
final: {post-synthesis}
```
Output: [CRITIQUE:Ξ¦3|consensus={n}|contested={n}|unique={n}|rejected={n}|conf={f}]
Ξ¦4: Convergence Check
Convergence Formula:
```python
convergence = (
0.30 * semantic_similarity(Ξ¦1, Ξ¦3) +
0.25 * graph_similarity(Ξ¦1.claims, Ξ¦3.claims) +
0.25 * confidence_stability(Ξ¦1.conf, Ξ¦3.conf) +
0.20 * consensus_rate(Ξ¦3.consensus / total_attacks)
)
```
Threshold Justification:
- 0.85 (QUICK): Acceptable for low-stakes, rapid iteration
- 0.92 (STANDARD): Balances thoroughness with efficiency
- 0.96 (FULL): High confidence required for complex/high-stakes
Outcomes:
CONVERGED: Score β₯ threshold β output Ξ¦3 synthesisITERATE: Score < threshold AND cycles < max β Ξ¦3 becomes new Ξ¦1EXHAUSTED: Cycles exhausted β output Ξ¦3 with uncertainty report
Output: [CRITIQUE:Ξ¦4|conv={score}|{STATUS}|iter={n}/{max}]
Graceful Degradation
When resources constrained (token budget, time pressure):
```
FULL β interrupt β Continue as STANDARD
STANDARD β interrupt β Continue as QUICK
QUICK β interrupt β Output best available synthesis with uncertainty flag
```
Degradation markers:
```yaml
degraded_output:
original_mode: FULL
actual_mode: STANDARD
skipped_phases: [Ξ¦2b_partial]
confidence_penalty: -0.1
recommendation: "Re-run in FULL mode for complete analysis"
```
Compact Output Mode
```
[CRITIQUE|mode={m}|L={lenses}|c={cycle}/{max}]
[Ξ¦1|n{claims}|e{edges}|Ξ·{density}|conf{c}|β]
[Ξ¦2|attacks{n}|cross{cells}|S:{s}|E:{e}|O:{o}|A:{a}|P:{p}|β]
[Ξ¦3|consensus{n}|contested{n}|unique{n}|rejected{n}|β]
[Ξ¦4|conv{score}|{STATUS}|conf{initial}β{final}]
SYNTHESIS: {2-3 sentence refined conclusion}
KEY_CHANGES: {Most significant modifications from Ξ¦1}
RESIDUAL: {Primary unresolved uncertainty, if any}
```
Meta-Cognitive Markers
```
[CLASSIFYING] β Ξ¦0: determining mode and resources
[COMMITTING] β Ξ¦1: stating without hedge
[LENS:X] β Ξ¦2a: evaluating from lens X perspective
[CROSS:XβY] β Ξ¦2b: lens X evaluating lens Y's critique
[CONSENSUS] β Ξ¦3a: noting cross-lens agreement
[CONTESTED] β Ξ¦3a: noting genuine disagreement
[RESOLVING] β Ξ¦3b: applying resolution protocol
[COMPRESSING] β Ξ¦3c: recursive synthesis pass
[CONVERGING] β Ξ¦4: stability detected
[DEGRADING] β Resource constraint, reducing scope
```
Constraints
- Phase Dependencies: Each phase requires predecessor completion marker
- DAG Enforcement: Claim graph must remain acyclic; circular reasoning = fatal
- Stability Ordering: FOUNDATIONAL claims immutable after Ξ¦1
- Genuine Critique: Softball attacks detected via cross-eval and rejected
- Compression Termination: Max 4 recursive passes in Ξ¦3c
- Convergence Cap: Max cycles from config; output uncertainty if exhausted
- Token Budget: Respect mode-specific limits; degrade gracefully if exceeded
Integration
- hierarchical-reasoning: Map lenses to strategic/tactical/operational
- graph: Claim topology analysis, k-bisimulation on evaluation matrix
- think: Mental models power individual lens templates
- non-linear: Subagent spawning for parallel lens execution
- infranodus: Graph gap detection enhances STRUCTURAL lens
- component: Structure critique outputs as validatable configuration
References
references/lens-specifications.mdβ Complete lens templates and attack vectorsreferences/cross-evaluation-protocol.mdβ Matrix construction and analysisreferences/aggregation-algorithms.mdβ Consensus extraction and compression
More from this repository10
Provides expert guidance for designing high-quality, clean software architectures using domain-driven design principles and best practices.
cursor-skills skill from zpankz/mcp-skillset
Skill
claude-docs-consultant skill from zpankz/mcp-skillset
csv-analysis skill from zpankz/mcp-skillset
Performs systematic code refactoring by finding and replacing patterns, identifiers, and API calls across multiple files while preserving code functionality.
Evaluates and improves Claude Code commands, skills, and agents by testing prompt effectiveness and validating context engineering choices.
Automatically analyzes and optimizes Claude's code architecture, identifying redundancies and improving system efficiency through meta-cognitive techniques.
Enables declarative programming of AI systems, automatically optimizing prompts and creating modular RAG pipelines using Stanford NLP's DSPy framework.
network-meta-analysis-appraisal skill from zpankz/mcp-skillset