docs(rules): conformance journal round 11 - alignment subsystem (out of scope -> modeled)

Adds the alignment field + axis flags, the AlignmentGate on spell damage
(Shard of Chaos, Spear of Purity) and the attacker-alignment-conditional
wards (Protection from Evil/Law + communal). Alignment leaves the
out-of-scope list; objects/inventory, skills, nonlethal and ASF are recorded
as the remaining out-of-scope mechanics. Gate 1829.
This commit is contained in:
2026-09-20 13:02:15 +02:00
parent 3be22b9c55
commit a483070e13
2 changed files with 15 additions and 3 deletions
+1 -1
View File
@@ -2010,7 +2010,7 @@ Limites de sorts (conformance D6-D9, documentées plutôt que bricolées) :
La gate de validation complète (tests + lint + types) :
```bash
uv run pytest -q # 1734 tests
uv run pytest -q # 1829 tests
uv run ruff check src tests
uv run basedpyright src # mode strict
```
+14 -2
View File
@@ -26,7 +26,7 @@ résiduel**.
| Contrôle | Résultat |
|---|---|
| `uv run pytest -q` | 1734 tests verts |
| `uv run pytest -q` | 1829 tests verts |
| `uv run ruff check src tests` (`select=ALL`) | conforme |
| `uv run basedpyright src` (strict) | 0 erreur |
| Transcript doré depuis la passe 1 | inchangé |
@@ -186,6 +186,14 @@ Une passe de vérification adversariale a confirmé que les 15 correctifs High/M
| `f788613` | **Stabilize** : `StabilizeEffect` qui stabilise automatiquement une créature mourante |
| — | `spiritual_weapon` (attaque flottante persistante) et `saving_finale` (reroll immédiat) restent **différés** (mécanique porteuse absente) |
### Correctifs de la passe 11 — alignement (sorti du hors-périmètre)
| Commit | Objet |
|---|---|
| `f9e51e3` | Champ **`alignment`** sur `Combatant` (9 valeurs PF1e validées, défaut `N`) + dérivées `is_lawful/is_chaotic/is_good/is_evil` ; alignements renseignés pour tous les monstres et PJ (source KB/feuilles) ; exposé dans l'observation |
| `6a18d45` | Type **`AlignmentGate`** sur les dégâts : cible immunisée / neutre (moitié, sans condition) / pleine (dégâts + condition si sauvegarde ratée) ; *Shard of Chaos* (chaotique/loyal, condition `staggered`) et *Spear of Purity* (bon/mauvais, condition `blinded`) |
| `3be22b9` | Vocabulaire de conditions **`attacker_is_evil/lawful/good/chaotic`** câblé à l'attaquant réel ; **Protection from Evil/Law** (+2 CA déflexion et +2 sauvegardes contre l'alignement opposé) et variantes communales |
> **Registre des sorts clos** : les 35 derniers sorts ont été vérifiés champ par champ contre le KB — **0 divergence** (niveaux, sauvegardes, RM, portées, zones, formules conformes). Seuls 2 sorts sont absents du KB (`create_alcool`, `hidden_diplomacy`) et 1 nit de description subsiste (`detect_poison` mentionne « acid »).
### Passe 1 — sorts de buff, mouvement/grille, morts-vivants, armes naturelles
@@ -313,6 +321,9 @@ ne pas être confondues avec des bogues.
|---|---|
| **Squeeze** (se serrer dans un passage étroit) | La largeur de couloir n'est pas comparée à la taille ; une créature bloquée par son footprint l'est sans option de squeeze payante |
| **Acrobatics « Tumbling »** (traverser une case ennemie sans AoO) | Le moteur n'a pas de système de compétences |
| **Objets / inventaire** (`Steal`, `Sunder`) | Le modèle n'a pas de piste d'objets (tenu vs porté, PV/dureté d'objet) — seule l'usure d'arme simplifiée existe |
| **Système de compétences** (Perception opposée, Discrétion, Acrobaties) | Pas de sous-système de compétences (hors `dex_skills`/bonus statiques) |
| **Composantes de sort & échec d'armure (ASF)** | Pas de champ de composantes ni d'armure ; les sorts sont supposés sans composante gênante |
| **Créature inerte très grande = obstacle à 2 cases** | Les cases d'une créature inactive ne bloquent pas et ne coûtent pas double |
| **Échec d'incantation du personnage sourd (20 %)** | `SpellSpec` n'a pas de composante verbale ; il faudrait encoder les composantes sur les 108 sorts |
| **Incantation multi-round (`long` : 3 rounds, 10 min, 1 h)** | Non planifiable dans un tour ; jetée du budget (`downgraded:cast_time`) plutôt qu'approximée |
@@ -370,7 +381,8 @@ Constats explicitement contrôlés et **confirmés conformes** :
| 8 | Vérification adversariale (correctifs réels + chasse aux écarts non documentés : `dice`, `rng`, `foundry`, `map`, `default_policy`, transcript) | `bg_d8cba9d1`, `bg_1bac8900` | 15 claims vérifiés réels ; 2 High/Med + ~6 Low nouveaux | 8 correctifs (`31d47ae`..`1b43f4e`) ; reste = résiduels assumés et hors périmètre |
| 9 | Résiduels assumés (lots 1-3) : course/CON+Run, harmless, centrage Bless/Bane, Selective Channeling, liche, invocations, healing_done, terrain multi-cases, cône effleuré | `bg_0a5b0d6b`, `bg_b304c5a3`, `bg_b277ee2d` | ~10 correctifs, 1 différé | 10 correctifs (`ea83529`..`d5ad3c3`), doré re-pinné une fois (liche) |
| 10 | Sorts utilitaires résiduels (lot 4) : guidance, resistance, virtue, stabilize, spiritual_weapon, saving_finale | `bg_9c989e12` | 4 implémentés, 2 différés | 4 correctifs (`08f9af9`..`f788613`) |
| 11+ | **Hors périmètre** : alignement, objets/inventaire, compétences, pv non létaux, armes à éclaboussures, champ d'armure ; rendu du transcript non audité | — | — | À reprendre (en cours) |
| 11 | **Hors périmètre — alignement** : champ + dérivées, Shard of Chaos / Spear of Purity, Protection from Evil/Law (+communales) | `bg_1a3b0faa`, `bg_6980098f`, `bg_07b3d604` | 3 correctifs | Alignement **sorti du hors-périmètre** |
| 12+ | Hors périmètre restant : objets/inventaire (Steal/Sunder), compétences, pv non létaux, armes à éclaboussures, composantes/ASF, rendu du transcript | — | — | À reprendre (en cours) |
---