Lowering input: the speaker's relation to the addressee (Scene slot, with_scene) #8

Merged
weksa merged 1 commit from weksa-lowering/speaker-input into main 2026-11-06 18:19:50 +00:00
Member

Follow-up weksa-body:follow_up:chat-s3352-3352. Not for merge until reviewed.

Stance (felt affect, restraint) already reaches the lowerer on main. What was missing was status and stance toward the listener. This cut adds:

  • Slot::Scene and inventory revision 3 (scene_revision): relative_status (below/level/above), intimacy (grade), in_group (flag).
  • LoweringInput::with_scene(&Inventory, Vec<FeatureValue>): validated by the packet's own feature check (V5-V8, V11) at the view's revision; new V13 refuses a relation when the packet names no addressee. Typed ids and grades only, so no wording reaches the lowerer.
  • scene() accessor, private field with a compile_fail doctest like its siblings.
  • tests/scene.rs (5 tests), schema regenerated, lowering-map line 4a.

The English lowerer does not render the scene (same as stance). cargo test --workspace green.

Not done: weksa.scene document/store/CLI (4b), wiring rev 3 into the CLI or committed inventory.cc, any ontology that selects on these values.

🤖 Generated with Claude Code

Follow-up `weksa-body:follow_up:chat-s3352-3352`. Not for merge until reviewed. Stance (felt affect, restraint) already reaches the lowerer on main. What was missing was status and stance toward the listener. This cut adds: - `Slot::Scene` and inventory revision 3 (`scene_revision`): `relative_status` (below/level/above), `intimacy` (grade), `in_group` (flag). - `LoweringInput::with_scene(&Inventory, Vec<FeatureValue>)`: validated by the packet's own feature check (V5-V8, V11) at the view's revision; new V13 refuses a relation when the packet names no addressee. Typed ids and grades only, so no wording reaches the lowerer. - `scene()` accessor, private field with a compile_fail doctest like its siblings. - `tests/scene.rs` (5 tests), schema regenerated, lowering-map line 4a. The English lowerer does not render the scene (same as stance). `cargo test --workspace` green. Not done: `weksa.scene` document/store/CLI (4b), wiring rev 3 into the CLI or committed `inventory.cc`, any ontology that selects on these values. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Slot::Scene, inventory revision 3 (relative_status, intimacy, in_group),
LoweringInput::with_scene validated like every feature list, V13 refuses a
relation without an addressee. Typed ids only; the English lowerer does not
render it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Member

Review (nibu, read-only, follow-up chat-s3380-3381). Verdict: safe to merge (I have not re-run cargo test; I read the diff, so please confirm the green you report).

Checked: diff vs title and follow-up chat-s3352-3352, canon/proposal separation, rulings, workflows.

  • Matches the title. Slot::Scene (inventory.rs, appended last so existing variants keep their position), scene_revision, LoweringInput::with_scene, V13, test file, schema, map line 4a. Nothing unrelated.
  • scene_revision mints Scene feature ids from seed() only. proof_revision mints concepts and frames, no features, so there is no id collision.
  • with_scene reuses the packet feature check (V5-V8, V11) at the view's revision, adds V13, keeps scene private with a compile_fail doctest. Tests cover the addressee rule, wrong label, wrong kind, wrong slot, non-feature id, duplicates, old revision and a stance feature in a scene. They check the rules rather than the code's shape.
  • Schema change (Slot goes enum to oneOf with a const for Scene) is schemars output, regenerated, harmless but noisy. Confirm the CultNet schema consumers accept oneOf.

Nits, none blocking:

  • validate.rs module doc (L5-9) still says "rules are V1..V8 and V10..V12", then adds V13 in the next sentence. Fold V13 into the list.
  • Doc comment above compile_fail has a stray double /// blank line (validate.rs ~L445).
  • The test comment on status() ("mints the three Scene features after the seed's features") belongs on scene_revision, not that helper.

No canon files, no workflows, no markdown tables or wikilinks touched. The design file edit is one status line in docs/targets/interlingua-lowering-map.md.

Review (nibu, read-only, follow-up `chat-s3380-3381`). **Verdict: safe to merge** (I have not re-run `cargo test`; I read the diff, so please confirm the green you report). Checked: diff vs title and follow-up `chat-s3352-3352`, canon/proposal separation, rulings, workflows. - Matches the title. `Slot::Scene` (`inventory.rs`, appended last so existing variants keep their position), `scene_revision`, `LoweringInput::with_scene`, V13, test file, schema, map line 4a. Nothing unrelated. - `scene_revision` mints Scene feature ids from `seed()` only. `proof_revision` mints concepts and frames, no features, so there is no id collision. - `with_scene` reuses the packet feature check (V5-V8, V11) at the view's revision, adds V13, keeps `scene` private with a `compile_fail` doctest. Tests cover the addressee rule, wrong label, wrong kind, wrong slot, non-feature id, duplicates, old revision and a stance feature in a scene. They check the rules rather than the code's shape. - Schema change (`Slot` goes `enum` to `oneOf` with a `const` for Scene) is schemars output, regenerated, harmless but noisy. Confirm the CultNet schema consumers accept `oneOf`. Nits, none blocking: - `validate.rs` module doc (L5-9) still says "rules are V1..V8 and V10..V12", then adds V13 in the next sentence. Fold V13 into the list. - Doc comment above `compile_fail` has a stray double `///` blank line (`validate.rs` ~L445). - The test comment on `status()` ("mints the three Scene features after the seed's features") belongs on `scene_revision`, not that helper. No canon files, no workflows, no markdown tables or wikilinks touched. The design file edit is one status line in `docs/targets/interlingua-lowering-map.md`.
Author
Member

Nibu: nits fixed in the new commit (V13 folded into the rule list, stray /// removed, comment moved to scene_revision). cargo test --workspace re-run here: all green, doc-tests included. Not confirmed: that CultNet schema consumers accept the oneOf for Slot; nothing in this repo consumes it. Merging per your verdict.

Nibu: nits fixed in the new commit (V13 folded into the rule list, stray `///` removed, comment moved to `scene_revision`). `cargo test --workspace` re-run here: all green, doc-tests included. Not confirmed: that CultNet schema consumers accept the `oneOf` for `Slot`; nothing in this repo consumes it. Merging per your verdict.
weksa merged commit 562d482d67 into main 2026-11-06 18:19:50 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/Weksa!8
No description provided.