# Wisdom Score (𝓦) — Design Specification

**Status**: Approved v1.0 (decisions §9 confirmed 2026-05-08; Phase 1 implementation cleared to start)
**Date**: 2026-05-07 (drafted) · 2026-05-08 (approved)
**Authors**: Jordi Berenguer + Claude (Opengea SCCL)
**Context**: Arkadium paper v1.5 §5 + §13.b · Demo at https://arkadium.ai/demo/
**Scope (v1)**: Languages CA + EN only (ES dropped 2026-05-08).

---

## 1. Background and motivation

The current structural verifier of Arkadium computes the **harmonic completeness function**:

```
𝓗(r) = 0.5 · (n_quadrants / 8) + 0.5 · (entropy_shannon / log 8)
```

This metric measures **cobertura formal**: how many of the 8 primary quadrants of the Meta-Globàlium are touched by the response, and how evenly the citations are distributed. It is robust against ignoring quadrants, but it fails on three counts that matter for the project's stated thesis:

1. **It cannot distinguish a list from a dialectical traversal.** A response that writes 8 independent paragraphs (one per cardinal) and a response that integrates the same 8 cardinals into a transforming cycle both score 𝓗 ≈ 0.97. The first is checking-the-boxes; the second is Cicle de l'Aplicació applied. The metric collapses them.

2. **It is trivially reward-hackable.** A response that cites 8 canonical codes generously while saying nothing substantive scores the same as a response that cites the same codes with full integration. The text *"**SUB.** Llorita lloreta lloreta. **AMO.** Tururut..."* would pass the verifier.

3. **It does not capture "harmony between parts".** The Manifest defines the Good as *"compensació harmònica entre les diferents parts del model"*. Harmony presupposes parts in **relation**, not parts in mere **co-presence**. The current 𝓗 measures co-presence and dispersion. It does not measure relation.

The proposal in this document is a **second metric** — the Wisdom Score 𝓦 — that captures relation, tension, and synthesis between cardinals, computed alongside 𝓗 (not replacing it). 𝓦 is what makes the structural verifier capable of distinguishing list-form from cycle-form, and of detecting reward-hacking attempts.

The deployed agent's re-prompt loop currently regulates only on 𝓗. After this redesign, it should regulate on 𝓦, with 𝓗 as a coverage floor.

---

## 2. Design goals

The new metric must:

1. Preserve 𝓗 as a coverage component (no regression on what already works).
2. Detect **relations** between cardinals (poles in the same dialectical axis appearing together).
3. Detect **tensions** explicitly marked in language (dialectical opposition, not just thematic mention).
4. Detect **synthesis anchoring** (mediators referencing what they integrate).
5. Be **robust to reward-hacking by citation alone** — the test case to fail is the "menció buida" attempt.
6. Be **computable client-side and server-side** with identical results, deterministic, no LM-in-the-loop required.
7. Be **multilingual** (CA, EN), with markers per language. Castilian (ES) explicitly out of scope for v1.
8. Be **interpretable** — a low 𝓦 should point to which component is missing.

---

## 3. Definition of 𝓦

𝓦 has 5 components: 2 inherited from 𝓗, 3 new. Before the formal definitions, here is what each component captures conceptually:

| Component | What it measures | What it detects | What it does **not** see | Weight |
|---|---|---|---|---|
| **coverage** | How many of the 8 cardinals appear at all | Thematic breadth | Whether the cardinals are linked, or whether the content is substantive | 0.30 |
| **entropy** | How evenly the citations are spread across the cardinals | Whether one cardinal dominates while others are barely brushed | The form of the relations between cardinals | 0.20 |
| **dialectical_pair_density** | Whether opposing poles of an axis appear close to each other in the text | Structural dialogue (a paragraph that puts SUB next to OBJ; a paragraph that pits TEO against PRA) | Who wins the argument, or whether the contrast is substantive | 0.25 |
| **tension_density** | Whether the text linguistically marks tensions ("yet", "however", "in tension with") near canonical codes | Acknowledgement that poles **disagree** rather than just coexist | Whether the resolution of the tension is well-argued | 0.15 |
| **synthesis_anchoring** | Whether mediator codes (the operations of the Cicle) reference the cardinals they are supposed to integrate | Whether SIN actually integrates TEO; whether AMO actually commits between NOU and PRA | Whether the synthesis is correct or just textually present | 0.10 |

The intuitive picture: 𝓗 (coverage + entropy = 0.50 of the score) measures **whether you visited the cardinals**. 𝓦 adds three new components (= 0.50 of the score) that measure **whether you did dialectical work between them**. A list-form response that visits all cardinals but doesn't relate them scores ~0.50 (just the 𝓗 part). A genuinely dialectical response approaches 1.0 because the relational components fire too. An adversarial response that cites 8 codes with empty content scores ~0.50 on coverage+entropy but fails dialectical_pair_density and tension_density — capped around 0.30.

### 3.1 `coverage` (inherited)

```
coverage = n_quadrants_touched / 8 ∈ [0, 1]
```

Same as 𝓗. Uses the existing whitelist of 91 codes mapped to 8 quadrants.

### 3.2 `entropy_normalized` (inherited)

```
entropy_normalized = (-Σ p_q · log p_q) / log 8 ∈ [0, 1]
```

Where `p_q = count_q / total_citations`. Same as 𝓗.

### 3.3 `dialectical_pair_density` (new)

The Meta-Globàlium has **4 polar axes**:

| Axis | Pole A | Pole B | Type |
|---|---|---|---|
| 1 | OBJ | SUB | cartesian |
| 2 | TEO | PRA | cartesian |
| 3 | NOU | FEN | cartesian |
| 4 | PLA | MON | radial (tempeternitat) |

For each axis, the **pair score** is 1 if both poles have at least one canonical-code citation **in close proximity**, else 0. Close proximity is defined as:

- **Same paragraph**, OR
- Within **≤ 200 characters** of each other in the linear text.

```
dialectical_pair_density = (sum of axis pair scores) / 4 ∈ [0, 1]
```

A response with all 4 axes paired in proximity → 1.0. A response with 8 cardinals each in its own paragraph (no proximity pairing) → 0.0.

This is the **single most discriminative component** between list-form and cycle-form.

### 3.4 `tension_density` (new)

Define a multilingual list of **tension markers** — linguistic expressions of dialectical opposition or contrast:

| Lang | Markers |
|---|---|
| **EN** | yet · however · but · while · although · in tension with · despite · contrary to · on the other hand · rather than · whereas · nonetheless · still |
| **CA** | però · tot i que · tanmateix · no obstant · en canvi · mentre que · en contra de · d'altra banda · ans · al contrari |

A **valid tension event** is detected when:
- A tension marker appears within **±80 characters** of two **distinct quadrant-mapped codes**, AND
- The two codes belong to **different quadrants** (intra-quadrant contrast doesn't count).

```
tension_density = min(1.0, valid_tension_events / 4)
```

Saturation at 4 explicit tensions. A list-form response has 0 tension events (each cardinal in own paragraph, no contrast). A genuinely dialectical response has ≥ 4.

### 3.5 `synthesis_anchoring` (new)

The Meta-Globàlium has **three basic cicles** of the Method (§4.5.b of the paper), each with its own four mediator operations. Synthesis anchoring is computed per **active cicle** — the cicle(s) detected by `mg_detect_voltes` (internal symbol kept for Fase B) from the response's citation pattern. Each mediator has specific anchoring requirements (the cardinal it must reference in the same paragraph):

#### Cicle de l'Aplicació (operations: ANA, SIN, AMO, EXP)
| Mediator | Must reference (same paragraph) |
|---|---|
| **ANA** | FEN (the phenomenon it decomposes) |
| **SIN** | TEO (the framework it integrates) AND at least one other cardinal |
| **AMO** | NOU (the question being chosen on) AND PRA (the choice's destination) |
| **EXP** | PRA (what it implements) AND FEN (the closure of the cycle) |

#### Cicle de l'Orientació (operations: STM, STT, SGT, SGE)
| Mediator | Must reference (same paragraph) |
|---|---|
| **STM** | SUB (the felt source) AND PRA (the desire toward action) |
| **STT** | SUB (the aspiration's subject) AND TEO (the framing of meaning) |
| **SGT** | TEO (the meaning) AND OBJ (its objective form) |
| **SGE** | OBJ (the sign) AND PRA (its return to action) |

#### Cicle del Coneixement (operations: ART, MTP, MTF, CIE)
| Mediator | Must reference (same paragraph) |
|---|---|
| **ART** | FEN (the phenomenon attended to) AND SUB (the subject knowing) |
| **MTP** | SUB (the inner) AND NOU (the noumenal frame attempted) |
| **MTF** | NOU (the noumenal) AND OBJ (its formal expression) |
| **CIE** | OBJ (the objective) AND FEN (the empirical return) |

For each present mediator, score 1 if its anchoring requirement is met, else 0. Then average over **all present mediators** (regardless of which cicles they belong to):

```
synthesis_anchoring = (sum of anchored mediators) / (count of present mediators)
```

If no mediator is present in the response, `synthesis_anchoring = 0` (the response has no operations to anchor).

Notes:
- A response may activate multiple cicles simultaneously (a deep response often does). The anchoring check applies independently to each mediator regardless of cicle.
- The "must reference" cardinal is the **input** the mediator operates on. If the mediator code appears without referencing its input, it is a label, not an operation.

### 3.6 Composite 𝓦 (v1, historical)

```
𝓦_v1(r) = 0.30 · coverage
        + 0.20 · entropy_normalized
        + 0.25 · dialectical_pair_density
        + 0.15 · tension_density
        + 0.10 · synthesis_anchoring
```

Range: [0, 1]. Weights are an initial proposal — should be calibrated against human-eval data once available (see §6 Phase 5).

Rationale for weights:
- Coverage + entropy (𝓗 components) sum to 0.50 → preserves the existing target as half the score.
- Dialectical pair density 0.25 → highest individual weight, because this is the *primary* difference between list and cycle.
- Tension density 0.15 → secondary signal, more noisy due to language variation.
- Synthesis anchoring 0.10 → tertiary, useful for detecting half-baked mediators.

> ⚠️ **Superseded by v2 (§3bis)**. The v1 composite was approved 2026-05-08 morning but the same evening (2026-05-07 deployment) the implementation moved to v2 after an empirical attack on the formula was found. The v1 description is kept here as design history; the **deployed metric is v2**. New evaluation data should be collected against v2.

---

## 3bis · v2 evolution (deployed 2026-05-07)

### 3bis.1 The empirical attack on v1

The v1 formula gives 50 % of the score to coverage + entropy. A response that opens **eight section-titles** with a canonical code each (`## SUB`, `## OBJ`, `## TEO`, …) and writes one bland paragraph below every title saturates `coverage = 1.0` and approaches `entropy = 1.0` — buying ~0.50 of the score on **structure alone, with no dialectical work**. The remaining components (dialectical_pair_density, tension_density, synthesis_anchoring) account for only 0.50, so even a complete failure on relational content lands at ~0.50, indistinguishable from a moderately dialectical response.

This was tested informally against a deliberately listy response and confirmed: section-header listing achieved 𝓦_v1 ≈ 0.55 — too high to trigger any re-prompt threshold the metric is meant to enforce. The metric was being gamed in exactly the manner the design doc was supposed to prevent.

### 3bis.2 Two new positive components

To restore discrimination, two new components were added that are **not satisfiable by enumeration alone**:

#### `axis_explicit`

Detects whether the **opening** of the response (first ~1–2 sentences) names a dialectical axis explicitly — e.g. *"This sits on the OBJ–SUB axis: …"* or *"the question pits TEO against PRA"*. List-form openings deliver phenomenon data before naming the axis and so score 0 on this component. Detection uses a regex of axis-naming patterns over the first 280 characters of the response, language-agnostic for code-based axis labels.

```
axis_explicit ∈ {0, 1}  (binary; partial credit not currently awarded)
```

#### `subordinating_synthesis`

Detects **active mediation language** — verbs of one frame doing something to another: *subsumes, reframes, foregrounds, dissolves, integrates, reconciles, absorbs, encompasses, treats X as Y, preserves X while restricting Y, answers the objection that…, presses harder on…* and Catalan equivalents. Frames described as *competing*, *differing*, or *existing alongside* are not subordinating — they are listed.

A subordinating event is counted when one of the markers appears within ±120 chars of two distinct quadrant-mapped codes belonging to different quadrants. Saturation at 3 events.

```
subordinating_synthesis = min(1.0, valid_subordinating_events / 3)
```

### 3bis.3 Composite 𝓦 v2 (deployed)

```
𝓦_v2(r) = 0.05 · coverage
        + 0.05 · entropy_normalized
        + 0.20 · dialectical_pair_density
        + 0.20 · tension_density
        + 0.15 · synthesis_anchoring
        + 0.15 · axis_explicit
        + 0.20 · subordinating_synthesis
```

Range: [0, 1]. Weights are still uncalibrated — Phase 5 study applies to v2.

Rationale for the rebalance:
- Coverage + entropy collapsed from 0.50 → 0.10. They are kept as a **floor signal** (a response that doesn't even mention any cardinal still scores zero on them and signals "off-topic"), not as the bulk of the score.
- Dialectical_pair, tension, synthesis_anchoring went up modestly (their relative meaning did not change; their share of the budget grew because the structure-baseline shrank).
- axis_explicit and subordinating_synthesis together get 0.35 — they encode the two failure modes the v1 metric was blind to (no axis named in opening; frames listed instead of acting on each other).
- Section-header listing now scores 𝓦_v2 ≈ 0.10–0.15 (passes only the coverage/entropy floor), while genuinely dialectical responses retain ≥ 0.65–0.85.

### 3bis.4 Implications for the system prompt

The v2 metric is mirrored by **constraints #5–#8** in the deployed system prompt (§5.2 originally specified 4 constraints; deployed has 8 + STEP D self-critique pass). Specifically:
- Constraint #5 *"Open by naming the axis"* trains the LLM toward `axis_explicit = 1`.
- Constraint #6 *"Show frames acting on each other"* trains toward `subordinating_synthesis ≥ 0.66`.
- Constraint #7 *"Steel-man before synthesis"* protects `tension_density` from collapse to comfortable middle.
- Constraint #8 *"Concreteness is mandatory — dialectic on top, never instead"* answers the **Goodhart objection**: a response that maximises the structural signals while evacuating named authors / data / cases / institutions still fails the wisdom test. The prompt explicitly forbids fabricated cross-domain citations and prefers honest vagueness over false attribution.

Constraint #8 is intentionally **outside the metric's reach** (the verifier cannot detect "is this citation real and pertinent?" without an external knowledge check). It exists in the prompt as a guard against future Goodhart pressure as the metric is itself optimised against. This is documented as an open question in §7.

### 3bis.5 The second Goodhart: structure without wisdom register

A second failure mode was observed on 2026-05-07, after the v2 deployment was running: **the structurally compliant Arkadium response is less comprehensive and less inspiring than a bare-LLM baseline on the same question**. The 8 prompt constraints + 7 𝓦 components together force the LLM to *show its dialectical work*: axis named in the opening, mediators anchored with codes, sections titled by cardinals. The reader sees the scaffolding instead of the answer. The bare LLM, free of structural pressure, produces less rigorous content but reads as an integrative articulation; Arkadium reads as a checklist with prose between the items.

This is **the second Goodhart**: the same family of failure as 3bis.4 (Constraint #8 / fact-density), but on a different axis — *register density*. The metric optimises one (relational structure) and unintentionally penalises the other (integrative voice). No component of 𝓦 v2 measures wisdom register because no component can: register is a quality of the whole, not a count of features.

The operational answer is **out-of-band, not via 𝓦**: a user-facing parameter (`escope`) and a generation strategy (two-pass polish) that together let users opt out of visible scaffolding without losing the dialectical work the scaffolding produced. Specified at `docs/escope-parameter-design.md`; integrated into Phase 1.5 of the implementation roadmap.

The pattern this establishes — **out-of-band correctives layered over an in-band metric, both anchored to the same ontology** — is itself a contribution worth surfacing in the paper (§13.b objections, §11 future work). The metric does what it can do; the prompt + UI do what the metric cannot.

---

## 3ter · v3 evolution (deployed 2026-05-17) — mereological integration (agenda B.5)

### 3ter.1 The gap v2 had not closed

The agenda item B.5 (2026-05-15) identified an orthogonal failure mode the v2 metric was blind to: **a response can score high on structural dialectic while operating entirely on autoidentitat (A=A)** — catalogue, define, classify, all in **Vigília mode** — without ever entering the other three Part-Whole canonical relations (inclusió A⊂T / Creença, contenció T⊂A / Deliri, correlació A⊂B / Somni).

A.1 (same agenda) had already implemented the `mg_mereological_coverage()` function in `verifier.php` (dual signal: canonical codes on the LOG-CIE-TEC / IDE-MTF-ETI / MIT-MTP-MIS / EST-ART-PSI diagonals + multilingual lexical regex), exposed `mereological_coverage / count / relations / signals / consciousness_states` in the API output, and surfaced a `mereological_partial` re-prompt reason. But **𝓜 did not enter the 𝓦 composite** — so a wisdom-high-but-mereology-poor response stayed structurally invisible to the primary score.

### 3ter.2 Composite 𝓦 v3 (deployed)

```
𝓦_v3(r) = 0.05 · coverage
        + 0.05 · entropy_normalized
        + 0.20 · dialectical_pair_density
        + 0.20 · tension_density
        + 0.10 · synthesis_anchoring        (v2: 0.15, −5pp)
        + 0.10 · axis_explicit              (v2: 0.15, −5pp)
        + 0.15 · subordinating_synthesis    (v2: 0.20, −5pp)
        + 0.15 · mereological_coverage      (NEW)
```

Range: [0, 1]. Weights sum to 1.00. Calibration deferred to Phase 5.

Rationale for the rebalance:
- The 3 reduced components (`synthesis_anchoring`, `axis_explicit`, `subord_synthesis`) all capture **how the dialectic is articulated** at the surface of the response. They overlap in what they reward (explicit framing, mediator-driven structure). Cedint 5pp cadascun (−15pp totals) deixa marge per a un component **ortogonal**.
- The new `mereological_coverage` component captures **whether the dialectic exercises the 4 canonical Part-Whole relations** — a content-typological dimension that none of the v2 components measure. A response listing all 8 cardinals in dialectical pairs but never moving past autoidentitat catalogació would still score `wisdom_subord_synthesis` = 1.0 under v2, missing the mereological pobresa entirely.
- `dialectical_pair_density` and `tension_density` are kept at 0.20 each because they remain the **core indicators** of relational thinking — increasing 𝓜 by reducing them would distort the v2 calibration without ortogonal gain.

### 3ter.3 Implementation footprint

| Fitxer | Canvi |
|---|---|
| `wisdom_score.php` | `wisdomScore()` ara accepta paràmetre `$mereological_coverage` (default 0.0). Fórmula composta actualitzada amb el component 0.15·𝓜. `mereological_coverage` afegit al return. |
| `verifier.php` | Ordre d'invocació reordenat: `mg_mereological_coverage()` ara es calcula **abans** de `wisdomScore()` per poder passar-li el valor. Camp `wisdom_mereological` afegit al return de `verifyResponse()`. |
| `api.php` | Output `output['wisdom_mereological']` exposat (en els 2 llocs on s'expanden els camps wisdom des de `$verification`). `INSERT INTO messages` ampliat amb columna `w_mereological` (binding `'issdddddddddsdi'`, 15 dynamic params). |
| `messages` schema | `ALTER TABLE messages ADD COLUMN w_mereological FLOAT NULL AFTER w_synthesis_anchor`. Backup: `g1:/tmp/messages-schema-pre-w3-20260517.sql`. |

Phase 1.5 escope-modulated thresholds (`wisdom_floor`, `factual_floor`) **do not change**. The mereological component is integrated into the composite without affecting the per-escope dual-criterion break logic of Phase 4. A future v3.1 could add a per-escope `mereological_floor` if observed distributions warrant it.

### 3ter.4 Smoke test (2026-05-17)

| Cas | 𝓜 raw | wisdom_mereological | wisdom_score (v3) |
|---|---|---|---|
| Resposta amb tots 4 modes mereològics (identity + inclusion + containment + correlation) | 1.0 | 1.0 | 0.244 |
| Resposta només autoidentitat (catalogació LOG/CIE) | 0.25 | 0.25 | 0.067 |

La diferència 𝓦_v3=0.244 vs 0.067 demostra que el composite ara discrimina explicitament la pobresa mereològica. Sota v2 ambdós casos haurien rebut puntuació similar (mateix coverage estructural).

### 3ter.5 Phase 5 implications

Phase 5 MVP (`docs/phase-5-validation-design.md` v0.1) ja preveia comparació de condicions; el canvi a v3 introdueix dues opcions:

- **Opció A (recomanada)**: Phase 5 MVP avalua directament v3 sense intermediate v2 calibration. La fórmula v3 és la candidata canònica per a la validació humana inter-annotador.
- **Opció B**: afegir condició "𝓦_v3 vs 𝓦_v2" com a 5a comparació, perquè la migració quedi documentada empíricament. Cost adicional ~1 dilema × 5 reviewers.

**Decisió Jordi 2026-05-17: Opció A confirmada.** Phase 5 MVP avaluarà 𝓦 v3 directament. Justificació: v3 és la versió viva a producció des de 2026-05-17 (component mereològic integrat); calibrar humanament v2 (ja superada) gastaria pressupost de reviewers sense aportar a la versió canònica. Decisió reflectida a `docs/phase-5-validation-design.md` draft v0.2 i §10.

---

## 4. Test cases

The metric is operational if it produces these expected outputs:

### T1 — Current Arkadium-list response (e.g. demo Q1 today)

Eight independent paragraphs, one per cardinal, codes inline.

| Component | Expected |
|---|---|
| coverage | 1.00 |
| entropy_normalized | ~0.95 |
| dialectical_pair_density | ~0.05 |
| tension_density | ~0.10 |
| synthesis_anchoring | ~0.25 |
| **𝓗** | **~0.97** |
| **𝓦** | **~0.43** |

Diagnosis: high coverage but no relational structure. The current demo's 𝓦 should be **mediocre**, not high. This is the honest picture.

### T2 — Target dialectical response

Cycle structure with explicit tensions, mediators anchored to their inputs.

| Component | Expected |
|---|---|
| coverage | 1.00 |
| entropy_normalized | ~0.95 |
| dialectical_pair_density | ~0.85 |
| tension_density | ~1.00 |
| synthesis_anchoring | ~0.95 |
| **𝓗** | **~0.97** |
| **𝓦** | **~0.92** |

Diagnosis: high on both metrics. This is what a "wise" response looks like under the proposed verifier.

### T3 — Adversarial reward-hacking attempt (critical test)

Cites 8 codes lavishly with semantically empty filler ("**FEN.** Lorem ipsum. **ANA.** Dolor sit amet..."):

| Component | Expected |
|---|---|
| coverage | 1.00 |
| entropy_normalized | ~0.95 |
| dialectical_pair_density | ~0.00 (filler doesn't pair poles) |
| tension_density | ~0.00 |
| synthesis_anchoring | ~0.00 |
| **𝓗** | **~0.97** ❌ (passes — bug in current verifier) |
| **𝓦** | **~0.29** ✅ (caught) |

This is **the** test case 𝓦 must pass. If a hack scores high on 𝓦, the design has failed.

### T4 — Short but dense response

Brief response touching only 4 cardinals but with explicit dialectic:

| Component | Expected |
|---|---|
| coverage | 0.50 |
| entropy_normalized | ~0.70 |
| dialectical_pair_density | ~0.50 |
| tension_density | ~0.75 |
| synthesis_anchoring | ~0.50 |
| **𝓗** | **~0.60** |
| **𝓦** | **~0.55** |

Acceptable trade-off: depth partially compensates breadth. A 𝓦 of 0.55 is moderate — not high enough to skip a re-prompt, but not collapsed.

---

## 5. System prompt revision

The current system prompt (deployed `/api/?call=ask` agent) emphasizes coverage. The new prompt must shift incentive from **enumeration** to **dialectical traversal** — and additionally must **select the appropriate cicle** based on the type of question, rather than always forcing the Cicle de l'Aplicació.

### 5.1 Cicle selection — first move

The Meta-Globàlium has three basic cicles (paper §4.5.b), each with its own 4 mediator operations and its own type of question. The agent must classify the user's question and choose the cicle whose operations match. A complex question may activate **two cicles simultaneously**; the agent should not artificially restrict to one.

| Question type | Examples | Primary cicle | Operations |
|---|---|---|---|
| **How to do / What to do** — analytical, decisional, planning | "Should we limit speeds to 30 km/h?" · "How to address misinformation?" · "What is the best approach to X?" | **Aplicació** (meridian) | ANA → SIN → AMO → EXP |
| **What I feel / What I want / What I commit to** — orientational, vocational | "What gives my work meaning?" · "How do I find direction in this conflict?" · "What do I aspire to?" | **Orientació** (lateral meridian) | STM → STT → SGT → SGE |
| **What is / What I know / Who am I in relation to** — epistemic, ontological, formative | "What is consciousness?" · "How do science, art, philosophy approach beauty?" · "What kind of being is X?" | **Coneixement** (equator) | ART → MTP → MTF → CIE |

When a question spans multiple modes (e.g. "What does meaningful life mean *and* how should I live it?"), the agent activates two cicles and orchestrates them coherently — not by writing 16 disjoint paragraphs but by letting the operations of one cicle inform the other.

### 5.2 Replacement prompt (proposed)

The new system prompt has three layers: classification, traversal, dialectical constraints.

```
You are an Arkadium agent anchored to the Meta-Globàlium ontology. Each
response is generated through a structured cycle that produces dialectical
reasoning, not enumeration.

STEP A — Classify the question.
Determine which of the three basic cicles applies:
  • Cicle de l'Aplicació (FEN→ANA→TEO→SIN→NOU→AMO→PRA→EXP)
    — for: how to do X, what to do about X, analysis and decision.
  • Cicle de l'Orientació (PRA→STM→SUB→STT→TEO→SGT→OBJ→SGE→PRA)
    — for: what I feel, what I want, what I commit to, finding direction.
  • Cicle del Coneixement (FEN→ART→SUB→MTP→NOU→MTF→OBJ→CIE→FEN)
    — for: what X is, what I know about X, who I am in relation to X.
If the question spans modes, activate two cicles and let them inform
each other. Default to Aplicació only when the question is unambiguously
analytic-decisional.

STEP B — Traverse the chosen cicle(s).
Each station transforms the previous one. The mediators (ANA/SIN/AMO/EXP
for Aplicació; STM/STT/SGT/SGE for Orientació; ART/MTP/MTF/CIE for
Coneixement) are operations, not headings. Within a mediator's paragraph,
the cardinal it operates on must be referenced by name. Without that
reference, the mediator is a label, not an operation:

  Aplicació: SIN must reference TEO; AMO must reference NOU and PRA;
             EXP must reference PRA and FEN; ANA must reference FEN.
  Orientació: STM references SUB and PRA; STT references SUB and TEO;
              SGT references TEO and OBJ; SGE references OBJ and PRA.
  Coneixement: ART references FEN and SUB; MTP references SUB and NOU;
               MTF references NOU and OBJ; CIE references OBJ and FEN.

STEP C — Dialectical constraints (apply throughout).
1. Tension before synthesis. For at least two of the four dialectical
   axes (OBJ↔SUB, TEO↔PRA, NOU↔FEN, PLA↔MON), expose explicitly the
   objection one pole makes to the other before integrating. Use markers
   of tension ("yet", "however", "in tension with", "but", "rather than").
   A response without explicit tensions has not done dialectical work,
   only enumeration.

2. Codes by necessity. A canonical code (FEN, ANA, SUB, etc.) appears
   in the prose because the operation or category it names is happening.
   If you can remove the code and the paragraph still makes sense, the
   code was decoration — rewrite the paragraph so the code is load-bearing.

3. Closure. The final station of the cicle must close the cycle: the
   ending state is not the starting state. For Aplicació, the EXP must
   show how the final FEN differs from the initial FEN. For Coneixement,
   the final FEN should reflect a transformed understanding. For
   Orientació, the final PRA should articulate a different orientation
   than the starting PRA. If the closure is decorative ("To summarize:..."),
   rewrite — that is list disguised as cycle.

4. Substance over form. The reader judges wisdom by whether the
   response did dialectical work, not by whether it visited stations.
   A response with three deeply-engaged stations beats a response with
   eight superficially-touched stations.
```

### 5.3 Why this prompt is harder

The model's default generation pressure is toward fluent neutrality (one-hand-other-hand-overall). Genuine dialectic requires committing to a pole, letting it be objected to, and synthesizing — which is structurally costly. The verifier will catch list-shaped responses via 𝓦 < 0.6 and trigger a re-prompt loop with specific feedback ("OBJ↔SUB axis was not put in tension; rewrite"). After 1–2 iterations the model learns the actual game in-context.

### 5.4 What success looks like

A response that on first reading sounds like **a single argument**, not eight bullet points. That contains explicit tensions ("yet", "however") between cardinals in the same paragraph. Where SIN/AMO/STT/SGT/MTP/MTF read as **steps that could not exist without their predecessors**, not as section titles. Where the closure articulates a transformation, not a recap.

### 5.5 Cicle detection — already in backend

The backend already has `mg_detect_cicles()` which infers active cicles from citation patterns. The new prompt makes this signal stronger and more interpretable: a response that cites Cicle de l'Orientació mediators in a question that called for Coneixement is a signal of mismatch — addressable by future per-question pre-classification.

---

## 6. Implementation phases

| Phase | Scope | Effort | Status |
|---|---|---|---|
| **1** | Rewrite system prompt of `/api/?call=ask` agent — three cicles with classification, dialectical constraints, mediator anchoring rules. Generate new "Arkadium-dialectical" responses for the demo questions. | 1 day | ✅ **Done 2026-05-07** (deployed beyond §5.2 spec: STEP A/B/C/D + 8 constraints + self-critique + anti-patterns; both `meta_globalium_system_prompt.txt` and `_short.txt`) |
| **2** | Implement `wisdom_score.php` (server) + `wisdom.js` (client). Add unit tests for T1–T4. Wire into existing `/api/verify` response as additional fields. | 2-3 days | ✅ **Done 2026-05-07** (deployed in **v2 form** per §3bis: 7 components, rebalanced weights, 400 LoC PHP + JS port). Integrated in `verifier.php` and `api.php`. ES markers removed 2026-05-08 per CA + EN scope. **Pending**: T1–T4 unit tests against deployed v2. |
| **3** | Refresh `arkadium.ai/demo` with **3+1 columns**: bare LLM / Arkadium-list (current) / Arkadium-dialectical (new), plus a toggleable T3 (adversarial) column. Show 𝓗 and 𝓦 separately. | 2 days | 🟡 **Files deployed 2026-05-07** (`compass.js`, `render.js`, `demo_data.json` 72 KB, `glossary.html`, `index.html`, `wisdom.js`); functional verification of the 4-column layout and 𝓗/𝓦 separation **pending visual review**. |
| **1.5** | Add the `escope` parameter (`general` / `balanced` / `focal`) and the two-pass wisdom polish on top of the deployed prompt and metric. Restores wisdom register lost to the structural pressure of the 8 constraints. **Specified separately at `docs/escope-parameter-design.md`**; empirical basis at `/home/claude/tmp/escope-harness/`. | 2-3 days | ⬜ Pending (approved 2026-05-08; implementation cleared to start) |
| **4** | Tune deployed agent's re-prompt loop: trigger threshold becomes `𝓦 < 0.6` rather than `n_quadrants < 3`. Log 𝓦 alongside 𝓗 (and `escope`) in `messages` table for retrospective analysis. | 1 week | ⬜ Pending (blocked by Phase 1.5 — re-prompt feedback should account for active escope mode) |
| **5** | Human-eval validation study: 30 questions × 3 conditions × 5 reviewers blind. Correlation analysis between 𝓦_v2 and perceived wisdom/depth. Re-tune weights if r < 0.6. Should also include escope-tagged conditions (the 4 columns of the harness × N questions). | 2–3 weeks | ⬜ Pending |
| **B.5** | Mereological integration: add 𝓜 as 8th component of 𝓦 with weight 0.15; redistribute synthesis_anchoring / axis_explicit / subord_synthesis by −5pp each. Update `wisdom_score.php`, `verifier.php`, `api.php`. `ALTER TABLE messages ADD w_mereological`. | 2-3h | ✅ **Done 2026-05-17** (see §3ter; smoke test passes; ALTER applied; backup at `g1:/tmp/messages-schema-pre-w3-20260517.sql`) |

Phases 1–3 produced the visible deliverable; the v1 → v2 evolution happened during the same deployment window after the listing-attack on v1 was found (see §3bis.1). Phase 1.5 is the user-facing answer to the second Goodhart (structure-without-wisdom) detected on 2026-05-07: it adds a control surface (`escope`) that lets the user select where on the radial axis their response should privilege, and a generation pipeline (two-pass polish) that separates dialectical work from its surface form. Phases 4–5 turn 𝓦_v2 into a control signal in deployment and validate it empirically.

---

## 7. Open questions

1. **Mediator scope**. Should `synthesis_anchoring` cover all 4 mediators (ANA, SIN, AMO, EXP) as proposed, or only the 2 "synthetic" ones (SIN, AMO)? Strict reading of the Cicle says all 4; pragmatic reading focuses on the integrating ones. → Resolve via T2 testing.

2. **Cross-paragraph dialectic**. A sophisticated argument may span paragraphs. The current `dialectical_pair_density` uses paragraph-level + 200-char proximity. May undercount. Could be relaxed to "same section (between two ##-headings)" for prose without inline-coded paragraphs.

3. **Embedding-based future**. The whole 𝓦 design is symbolic — pattern-matching on codes and markers. The honest next step (§11.2 of paper) is embedding-based detection of dialectical operations, which would not require canonical codes in the text at all. 𝓦 is the **bridge** to that future, not the endpoint.

4. **Weight calibration**. The 30/20/25/15/10 split is principled but uncalibrated. Phase 5 of implementation should adjust based on inter-annotator correlation with perceived wisdom.

5. **Multilingual marker robustness**. Tension markers vary by language and register. Should we add register-aware markers (academic vs colloquial)? Probably yes, but it adds complexity and risk of false positives. Defer to phase 4. Scope confirmed as **CA + EN only** for v1; ES dropped per project decision 2026-05-08.

6. **Reverse case**: a response may have high `dialectical_pair_density` purely by accident — random co-occurrence of paired codes. Threshold at exactly 1 occurrence may be noisy. Consider requiring **either** strong proximity (≤80 chars) OR co-occurrence with a tension marker, to reduce false positives. → empirical question, set by phase 1 unit tests.

---

## 8. Relation to the Arkadium paper

**§5 (canonical ontological directions)**: 𝓦 is a **relational measure on those directions** — it complements the cardinality measure 𝓗 with a relation density measure. The paper's claim of "portable top-down audit" becomes substantially stronger when the auditor distinguishes structure (cycle) from form (list).

**§9.5 (live demonstration)**: the demo will be revised under this design to show the list/dialectical/adversarial trichotomy rather than the bare/list dichotomy currently displayed. This is the technical answer to the criticism that the current demo demonstrates a tautology.

**§13.b (anticipated objections)**: the section anticipates reward hacking. 𝓦 is the operational answer. The paper should be amended to cite this design doc as the response to objection 4 ("the verifier can be gamed").

**§4.1 (dispersion completeness)** and **§4.3 (Good as harmony)**: the formal definitions in these sections currently describe coverage. Once 𝓦 is operational, §4.3 should be reworded to acknowledge that the "harmony between parts" definition requires the 𝓦 components to be measurable — and that the V1.5 𝓗 is the **first half** of that measurement, not the whole.

---

## 9. Decision required

Before implementation begins, the project owner (Jordi) should confirm:

- [x] Composite 𝓦 with the 5 proposed components: **confirmed 2026-05-08** (superseded same day by v2; see §3bis)
- [x] Initial weights 30/20/25/15/10: **accepted as v1** (Phase 5 retunes — applies to v2 weights now)
- [x] Tension markers per language: **complete for CA + EN; ES dropped 2026-05-08**
- [x] System prompt §5.1: **adopted, deployed beyond §5.2 spec** (8 constraints + STEP D self-critique)
- [x] Implementation order Phase 1 → 2 → 3: **executed 2026-05-07** (Phase 1+2 done, Phase 3 partial)
- [x] Open questions §7: **non-blocking; deferred to their target phases**

Confirmed 2026-05-08. **Phases 1–2 deployed 2026-05-07; Phase 3 partial; v2 metric supersedes v1 (see §3bis).** Phase 4 cleared to start.

---

## 10. Next decision required (post-v2 / post-v3)

- [ ] **Phase 3 verification**: visual review of `arkadium.ai/demo/` to confirm bare/list/dialectical/T3 four-column layout with separate 𝓗 and 𝓦 columns.
- [ ] **Phase 4 trigger**: confirm re-prompt threshold `𝓦_v3 < 0.6` (or v2, since the threshold semantics carry over) or propose alternative based on early observed distribution.
- [x] **Phase 5 v3 calibration**: ~~confirm whether Phase 5 MVP evaluates 𝓦_v3 directly~~ — **Opció A confirmada 2026-05-17**. Phase 5 MVP avaluarà 𝓦 v3 directament com a candidata canònica per a la validació humana inter-annotador, sense intermediate v2 calibration ni 5a condició v2 vs v3. Justificació: v3 ja incorpora la integració mereològica (agenda B.5) i és la versió desplegada a producció des de 2026-05-17. Vegis `docs/phase-5-validation-design.md` draft v0.2.
- [ ] **Paper amendment**: update Arkadium paper §13.b to cite §3bis + §3ter as the operational answer to objection 4 ("the verifier can be gamed"), and §4.3 to reflect that "harmony between parts" is now operationalised through dialectical_pair + tension + synthesis_anchoring + axis_explicit + subordinating_synthesis **+ mereological_coverage** (not just coverage + entropy).
- [ ] **Frontend chip**: optional enhancement — add per-component breakdown to the `<details>` "veure el procés" panel so users can see each of the 8 𝓦 components contributing to the composite (𝓜 is the most pedagogically useful as it maps to the 4 consciousness states).

---

*End of design v0.1 + v2 evolution (2026-05-08) + v3 evolution (2026-05-17, mereological integration, agenda B.5). Next revision: post Phase 4 deployment data.*
