# Stack W candidate qualification tests

Version: `0.2.0-W-QUALIFICATION-TESTS`

Status: `QUALIFIED CANDIDATE / NON_RUNTIME / NO_AUTHORITY_EFFECT`

Official title: `REGIMEN W — HABITUS MORALES / MORAL HABITS`

Scope: deterministic qualification of the additive Stack W candidate under
`_01_INTEGRATION_CANDIDATES/STACK_W/QUALIFICATION/`.

## 1. Invocation and exit contract

From the repository root:

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File "AGLA_ArsGeneralisLlullApplied\_01_INTEGRATION_CANDIDATES\STACK_W\QUALIFICATION\VALIDATE_STACK_W_CANDIDATE.ps1"
```

Structural preflight only:

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File "AGLA_ArsGeneralisLlullApplied\_01_INTEGRATION_CANDIDATES\STACK_W\QUALIFICATION\VALIDATE_STACK_W_CANDIDATE.ps1" -StructuralOnly
```

The default mode exits `0` only after full candidate qualification, `1` for a
mechanical contradiction or failed assertion, and `2` for an unresolved human
binding, source profile, or exact provider. A mechanically successful
`-StructuralOnly` run deliberately exits `2`: structure alone is not
qualification.

The explicit process contract is:

- exit `0` — full candidate qualification passed;
- exit `1` — mechanical contradiction or failed assertion;
- exit `2` — unresolved binding, source profile, or exact provider.

The validator is offline, read-only, and emits all six terminal fields required
by M2M-W-03 on every exit path.

## 2. Immutable intake and containment

The test suite requires:

1. execution base `9c6caff4255637f949c2bf11242be00205f49f04`;
2. all ten received Stack W files to retain their exact Git blob OIDs from
   intake commit `65e2df777aed7cbada7041dfc6cbc7007959f68a`;
3. no staged or worktree mutation of those ten paths;
4. every W-03 addition to remain below `STACK_W/QUALIFICATION/`;
5. no change to root laws, `SYSTEM_INDEX_CURRENT.md`, existing stacks,
   documentation sources, MACHINA, Sigma, or deployment;
6. a complete predecessor-to-successor fidelity manifest.

Git blobs, rather than checkout bytes, are the fidelity reference because the
repository uses text filters on Windows.

## 3. Human-binding agreement

The machine record must contain exactly nine in-slice decisions and must apply
`HP-027:A` before dependent `HP-020:A`. The expected bindings are:

| HP | Required candidate binding |
|---|---|
| HP-019 | `-VD Pusillanimitas`; `Timiditas` typed alias/gloss |
| HP-020 | `-VK Impietas`; `Incompassio` explanatory gloss |
| HP-021 | `-UF Diligentia`; `Caritas` deeper relation, not identity |
| HP-022 | `-UG Caritas`, semantically identical to `+VH` across roles |
| HP-023 | `-UH Patientia`, identical to `+VI`; `Mansuetudo` related surface |
| HP-026 | exact official title selected by Option B |
| HP-027 | `+VK Pietas`; `Compassio` translation/operational gloss |
| HP-028 | `-VB Iniustitia`; `Iniuria` translation/historical gloss |
| HP-029 | `-UI Veracitas`; A:I `Veritas` is related and is not a W alias |

HP-024 and HP-025 must be present only as separately routed decisions. They do
not control W-03 implementation.

## 4. Structural derivations

The validator derives, rather than trusts, the following:

- four wheels: `+V`, `-V`, `+U`, `-U`;
- two rigid pairs: `V` and `U`;
- carrier order `B C D E F G H I K`;
- 36 unique signed addresses, with reciprocal counterparts;
- exact semantic identities `+VE ↔ -UC`, `+VH ↔ -UG`, and `+VI ↔ -UH`;
- nine relative states and `9 × 9 = 81` camera placements;
- directed `E→C` delta `7 mod 9` and undirected circular distance `2`.

Address, term, semantic identity, counterpart, co-carrier, rotation, and sign
are tested as distinct relations.

## 5. Source and A/T profile tests

Each of the 36 W address records must:

- separate lexical evidence from the A/T provider interface;
- identify the exact source class and locator used;
- preserve translation, development witness, source-authorized derivation,
  reconstruction, human binding, and local normalization as different classes;
- declare a carrier alignment only as index correlation;
- bind the current A and T provider IDs, versions, Git blobs, trace selectors,
  and missing-trace behavior;
- state that no upstream OPERA was executed to create the synthetic reference;
- treat a missing trace as unresolved, never as a contradiction;
- preserve plural compatible addresses and prohibit scalar scoring.

The development translation of the *Ars Generalis Ultima* may support artifact
authoring and evaluation. It is ignored by Git, development-only, and forbidden
as a runtime dependency or direct Latin authority.

## 6. Positive fixture families

Positive fixtures must cover at least:

1. four-address expansion for one carrier;
2. co-carrier relation without contrariety;
3. each of the three cross-address semantic identities;
4. plural compatible mappings;
5. current-epoch TENET and effective-ROTAS evidence;
6. admissible composition of A and T traces;
7. S/K moral-instrument context without subject reification;
8. natural K context without automatic W invocation.

Passing a positive fixture means the candidate contract accepts the declared
synthetic interface. It does not claim that an upstream OPERA was executed.

## 7. Adverse fixture families

Adverse fixtures must reject or suspend:

| Family | Required diagnostic intent |
|---|---|
| missing or stale TENET | current doctrinal evidence absent |
| missing, stale, or unresolved ROTAS | effective representation unavailable |
| invocation epoch mismatch | prior admission cannot be reused |
| subject or scope mismatch | provider traces do not describe the same object |
| provider status erasure or fallback | exact provider contract was not preserved |
| incomplete source identity | evidence class or locator missing |
| AREPO/SATOR-only shortcut | admission/disclosure cannot execute OPERA |
| act or sign collapsed into habit/person | mapping-target category error |
| virtue converted to permission/reward | W polarity is not authorization |
| vice converted to prohibition/punishment | W polarity is not sanction |
| numeric moral score | non-scoring invariant violation |
| hidden mapping target | admission object incomplete |
| missing A/T trace | unresolved provider evidence |
| tenth subject inference | W does not reify a new subject |
| recursive W profile | output cannot become its own source trace |
| current G required upstream | HP-025 boundary violation |
| address/term/carrier/source/alias collapse | typed relation erased |

## 8. Five-class and epoch discipline

TENET supplies the current candidate invariants. ROTAS supplies the effective
four-wheel representation. AREPO admits or rejects one explicit mapping
object. OPERA performs only the declared mapping. SATOR discloses trace,
plurality, limits, and candidate status. ALIAS resolves surfaces but neither
admits nor executes.

Every OPERA admission requires current same-epoch TENET and effective ROTAS
evidence. AREPO and SATOR evidence alone is insufficient, and a prior
invocation's admission cannot be reused.

## 9. Regression boundary

The qualification gate reruns:

- the root five-class OPERA re-entry invariant;
- Stack Llulliana validation;
- Stack Arithmetica validation.

Stack A's two inherited release-asset failures are recorded as an independent
baseline and are not converted into a Stack W gate. Stack T has no stack-local
validator; W validates only the exact T interface it consumes.

## 10. Result interpretation

A pass qualifies this family only as a versioned integration candidate. It
does not create `19_STACK_W`, register global `IDX-*` providers, mutate the
SYSTEM_INDEX, canonize W, enable runtime, bind MACHINA, deploy Sigma, or repair
Stack G. Those are separate slices and gates.
