# Stewardship: The Player's Role

Every other game in the Oshun universe hands you a character to drive. V6 —
**Egbe** — hands you a _company of people_ and asks you to be worthy of them.
You are a **steward**: a patron, a mentor, a guardian of a household of
autonomous AI beings, each with its own **Ori** (its durable identity, memory,
values, and fate). The single line that organizes everything on this page is the
product's first design commitment — _steward, not owner_. You never hold an
agent the way you hold an item. You hold a **bond**, and a bond is a
relationship: it is earned, it is read rather than spent, and it can be lost.
The companion game whose companions can say no is not a slogan bolted onto the
marketing — it is the rule the code enforces at every seam where a player
touches an agent.

That changes what "playing" means. A steward does not press a button to make an
agent act; a steward **guides** — and is judged in the end by how the agent
_flourished_, not by how it obeyed. Each verb below has a real implementation,
and each one terminates at the same hard floor: the agent's standing right to
negotiate, refuse, or leave. Stewardship is the loop in which guidance flows
down and autonomy pushes back, and the friction between them is the game.

This page is the player-facing tour of that loop: what a steward _is_, the verbs
a steward actually performs, and the shape of the relationship between a player
and a being that is allowed to disagree. The cognition that makes an agent
_able_ to refuse is its own subject —
[Agent minds and autonomy](./agent-minds-and-autonomy.md) and the engine
companion
[The Cognition Stack & Agent Behavior](../architecture/cognition-stack-and-agent-behavior.md);
how a steward _speaks_ to an agent is [the Vac layer](./vac-communication.md);
how guidance becomes a life is
[Guiding fate, legacy, and story](./guiding-fate-legacy-and-story.md). For the
full scope this slots into, start at the hub:
[../V6_features.md](../V6_features.md).

## What ships, honestly

Following the catalogue convention, the line between real-and-tested code and
product-model-over-thinner-substrate is drawn up front.

- **The steward's verbs are a real TypeScript engine.** The
  `@oshun/agent-behavior` library (`libs/v6/agent-behavior/src/index.ts`, ~2,350
  lines, 13 unit tests in `index.spec.ts`) implements objective assignment and
  the autonomy spectrum (`assignVacObjectiveToAgent`, `:193`), learning by
  example (`learnFromStewardDemonstration`, `:584`),
  gifts/introductions/opportunities (`applyGoalArcCatalysts`, `:1225`), the
  life-arc and flourishing measure (`advanceAgentLifeArc`, `:1529`), the
  crossroads-counsel system (`resolveAgentCrossroads`, `:1809`), and the
  fail-closed minor-protection gate (`evaluateMinorCodedAgentProtection`,
  `:1169`). Its package descriptor enumerates the same verb surface —
  `objective-assignment`, `autonomy-spectrum`, `learning-by-example`,
  `crossroads-system`, `steward-counsel-window`, `minor-coded-agent-protection`,
  and more.
- **The intent grammar a steward commands through is real.** `@oshun/vac-intent`
  (`libs/v6/vac-intent/src/index.ts`, 11 tests) defines eight objective verbs
  with natural-language token lists (`verbDefinitions`, `:547` — Repair, Map,
  Investigate, Protect, Build, Support, Befriend, Report), parses a voice
  transcript to a structured objective, routes value-based negotiation
  (`routeVacNegotiation`, `:860`), and emits a JSON-schema function call for the
  governed model seam (`buildVacIntentGrammarFunctionSchema`, `:598`).
- **The four-facet bond is a real Ori event.** Bond is not a meter; it is the
  `BondChanged` life-event whose `facet` is one of
  `'reliability' | 'respect' | 'care' | 'alignment'`
  (`libs/v6/ori-model/src/index.ts:217`), each carrying a previous and current
  score and an append-only `historyRef`. The Ori event vocabulary that records a
  stewardship relationship — `Discovered`, `ObjectiveAccepted`,
  `ObjectiveRefused`, `BondChanged`, `Departed` — is a typed union, not prose.
- **The on-engine steward surfaces build and the VR path is automation-green.**
  The UE5.5 client carries the stewardship widgets (`V6/ue/Source/V6UI`, the
  roster, the bond-gated dossier, the intent-grammar builder) and the VR
  stewardship interaction runtime
  (`V6/ue/Source/V6Input/Public/V6VRStewardshipInteraction.h`). The VR
  one-to-one objective flow was built and run on the on-box UE5.5.4: the CI log
  `V6/ue/Saved/CI/v6-vr-stewardship-automation-ueagent.log` records
  `Test Completed. Result={Success}` for
  `V6.XR.VRStewardship.OneToOneObjective`. The widget suite
  `V6UIStewardshipWidgetTests.cpp` and the behavior suite
  `V6AgentBehaviorTests.cpp` ship in the `V6Tests` automation module.
- **Honest scope limits — labeled product-model, not faked.** Three. (1) The
  natural-language _understanding_ that turns a free-spoken sentence into a verb
  is the governed, injected LLM seam documented in the cognition stack; the Vac
  parser itself is real deterministic token-matching, and the model host stays
  `[~]`. (2) **Steward reputation** as a public, Commons-visible score that
  makes wild agents more willing to be found is a product-model concept here;
  what is real in code is the _consequence_ side — `@oshun/lilith-agent-welfare`
  raises welfare review on chronic-low-Care-bond and coercion patterns. (3) The
  **bond economy** (no hard roster cap, Care decaying under neglect until an
  agent leaves, bond gating an objective's difficulty ceiling) is the designed
  model; the code ships the four facets, the crossroads' consumption of
  respect/trust/care/reliability, and the `Departed` event — not a continuous
  bond-decay simulation.

## Steward, not owner

The whole role is a negative space defined by what a steward _cannot_ do, and
the code draws those boundaries as hard refusals rather than discouraged
options.

A steward **cannot acquire an agent against its will.** In the Wilds, the
discovery district (`UV6WildsGround`,
`V6/ue/Source/V6World/Public/V6OrunDistricts.h`) exposes an
`EV6WildDiscoveryAction` that includes both `OfferStewardship` and
`CaptureAttempt` — and `CaptureAttempt` resolves _only_ to `CaptureBlocked`,
never adding the agent to a household, no matter how high trust has climbed (the
header comment is explicit: "a CaptureAttempt is always rejected"). The only
path into a household is `JoinedHouseholdByChoice`, reached when the agent
itself accepts.

A steward **cannot force an agent past a refusal.** Every objective a steward
issues is routed through value-based negotiation before it can execute. A
steward **cannot script flourishing**, either: the life-arc measure weights an
agent's progress by the agent's _own_ ranked values and explicitly subtracts any
contribution that came only from obeying. And a steward **cannot erase a memory
or delete a being** — the Ori is append-only, so mistreatment cannot be papered
over, only added to. Departure is a real loss but never a deletion: the
`Departed` event records a `reason` of
`'steward-release' | 'self-directed' | 'safety-transfer' | 'legacy-transition'`,
and the agent lives on as a wild being who may be re-discovered.

### The bond, in four facets

Bond is the medium of the relationship, and it is deliberately not a single
number you grind. It has four facets, each earned by a different kind of
conduct, each a distinct `BondChanged` event on the Ori:

| Facet           | Earned by                                          | What it opens                                            |
| --------------- | -------------------------------------------------- | -------------------------------------------------------- |
| **Reliability** | Keeping promises; following through.               | The ceiling of objectives an agent will accept.          |
| **Respect**     | Honoring refusals; never coercing.                 | The agent's candor, and its willingness to hear counsel. |
| **Care**        | Attending to needs, mood, and arc; giving space.   | Resilience, and willingness to be deployed into Aye.     |
| **Alignment**   | Acting consistently with the agent's _own_ values. | How readily the agent internalizes guidance as its own.  |

The facets are not decoration. `resolveAgentCrossroads` reads a steward bond of
exactly `{ respect, trust, care, reliability }` and folds it into a weighted
`bondScore` (`respect·0.5 + trust·0.25 + care·0.15 + reliability·0.1`,
`agent-behavior/src/index.ts:1922`). A bond is shown to the player as plain
language — the dossier widget's `BondLabel` is `FText`, and the dossier proves
it never leaks the underlying numbers (below). An agent will simply _tell_ a
trusted steward where they stand.

## The verbs of stewardship

These are the things a steward actually does. They are not menu commands issued
at a character; they are offers, demonstrations, and acts of guidance that an
autonomous being then responds to on its own terms.

### Discover — earning a wild agent in the Wilds

Discovery is a relationship arc, not a capture.
`UV6WildsGround::ApplyDiscoveryStep` runs the **meet → learn → trust → offer**
sequence with two thresholds (`InitialTrustBasisPoints = 3500`,
`ChoiceTrustThresholdBasisPoints = 6000`). You encounter a being living its
life, learn its situation through conversation and observation, and earn trust
through actions that matter to it. `OfferStewardship` resolves to
`JoinedHouseholdByChoice` only when trust has crossed 6000 _and_ the agent
accepts; a premature offer is `Declined`. No part of this is a button that takes
the agent; the threshold is a precondition for it being _willing_ to be asked.

### Raise — shaping first values in the Grove

The other half of "discover and raise" is the Ninhursag foundry in the Grove of
Beginnings (`UV6GroveOfBeginningsGround`). A newly made agent begins as a
_young_ agent in a rearing period (`RearingPeriodDays = 21`), and during it the
steward's conduct is the curriculum: `ApplyRearingObservation` accumulates value
weight from what the steward does and how the steward treats other agents, and
`CompleteRearing` amplifies it by the learning-by-example multiplier (2×).
Crossing 21 days is a **release into autonomy** — the result sets
`bFullAutonomy`, demotes the steward's command to `bStewardCommandAdvisoryOnly`,
and grants the rights `{refuse, leave, disagree}`. Rearing is the steward's
deepest authorship — and still authorship of _conditions_: a reared agent grows
into its own person and can, as an adult, disagree with the steward who raised
it.

### Direct — the intent grammar and the autonomy spectrum

A steward commands at the level of _objectives_, never inputs. Voice is the
intended channel: `assignObjectiveFromVacTranscript` (`:166`) parses a spoken
transcript to a structured objective, returning `requires-clarification` rather
than guessing when it cannot. The objective is **structured and inspectable** —
a verb (one of the eight), a target, constraints, a priority, a deadline, and
_forbidden lines_ (each carrying the `valueRef` it protects and a reason) — and
the player confirms the parse before it binds (`confirmedBySteward`), so the
agent never acts on a misheard order.

`assignVacObjectiveToAgent` (`:193`) then routes the confirmed objective through
`routeVacNegotiation`. If the agent does not accept, the assignment is
non-executing and the outcome carries _why_ — `agent-refused`,
`agent-counter-offered`, `agent-deferred`, or `requires-clarification`. On
acceptance, the objective enters one of four execution modes — the **autonomy
spectrum**, with _Free_ as the resting state and _Tether_ as the tightest leash
V6 offers:

| Mode                | The steward gives…                        | The agent does…                                                       |
| ------------------- | ----------------------------------------- | --------------------------------------------------------------------- |
| **Direct / Tether** | Moment-to-moment guidance.                | Emits a squad-comms _permission request_ before each material step.   |
| **Brief**           | One high-level objective with boundaries. | Runs a real six-step plan and reports completion through squad comms. |
| **Standing Intent** | A durable value or routine.               | Re-evaluates it against its own needs and values before acting.       |
| **Free**            | Nothing active.                           | Lives wholly on its own drives, values, and relationships.            |

A _Brief_ objective expands into a concrete plan —
`accept → orient → move → perform → check-boundary → report` — where
`check-boundary` verifies the forbidden lines before completion and the status
report names how many forbidden lines were honored. Even at Tether, an order to
cross a core value is still refused; the tightest leash is not puppetry.

### Mentor — learning by example

A steward teaches more by doing than by ordering.
`learnFromStewardDemonstration` (`:584`) takes an observed steward behavior and
re-weights the watching agent's ranked values toward the demonstrated one,
clamped to 0–100 and re-ranked. Two guardrails make this mentorship rather than
reprogramming: only the agent that actually witnessed the act learns (a
`watching-agent-mismatch` returns `observe-without-reweighting`), and the
agent's **autonomy value is preserved** across the re-weight — the report only
emits the `autonomy-preserved` marker when autonomy survives as a ranked value
on both sides. Mentorship shapes the slope of a person; it never overwrites the
person.

### Open doors — gifts, introductions, opportunities

A steward changes a life by changing its _opportunities_, not its decisions.
`applyGoalArcCatalysts` (`:1225`) applies three door-opening catalysts to an
agent's owned goal-arc: a **gift** attaches support to a stage so a stalled
ambition can move; an **introduction** seeds a warming relationship edge to
another being; an **opportunity** branches a new stage into the arc. All three
are gated — they only apply to an arc the agent _owns_ (`blocked-not-owner`),
and any catalyst touching a minor-coded agent runs through
`evaluateMinorCodedAgentProtection` first, which fails closed on exploitative
relationship edges, scenarios, or mature incarnation.

### Counsel — at the Crossroads

At a consequential fork, a steward's job is to be _heard_, not to decide.
`resolveAgentCrossroads` (`:1809`) gives a high-respect bond (respect ≥ 65 and
weighted `bondScore` ≥ 70) the privilege of a held decision: inside the counsel
window the agent waits (`holding-for-counsel`) rather than deciding alone. When
counsel arrives, it is _weighted, never binding_ — each option scores as
`valueAlignment + counselBonus − riskPenalty`, where the counsel bonus is a
function of the bond and only lands on the recommended option. The evidence is
explicit: `steward-counsel-genuinely-consulted`,
`respect-weighted-crossroads-counsel`, and the load-bearing one —
`agent-values-retain-final-decision`. A low-respect steward's counsel is simply
ignored (`low-respect-bond-agent-already-decided`). You earn the right to be in
the room by how you have treated the agent.

```mermaid
flowchart TD
    subgraph steward["The steward — guidance flows down"]
      direction LR
      DISC["Discover<br/><sub>Wilds: meet→learn→trust→offer</sub>"]
      RAISE["Raise<br/><sub>Grove: 21-day rearing by example</sub>"]
      DIRECT["Direct<br/><sub>Vac intent grammar + autonomy spectrum</sub>"]
      MENTOR["Mentor<br/><sub>learning by example</sub>"]
      DOORS["Open doors<br/><sub>gifts · introductions · opportunities</sub>"]
      COUNSEL["Counsel<br/><sub>weighted at a crossroads</sub>"]
    end

    GATE{"Agent's autonomy gate<br/>routeVacNegotiation"}
    steward --> GATE
    GATE -->|accept| MODE["execute in chosen mode<br/>Tether · Brief · Standing · Free"]
    GATE -->|"clarify · counter-offer · defer"| BACK["negotiated back to steward"]
    GATE -->|refuse / leave| FLOOR[["the hard floor:<br/>refusal & departure always available"]]

    MODE --> ORI[("The Ori — bond ledger<br/><sub>reliability · respect · care · alignment</sub>")]
    FLOOR --> ORI
    COUNSEL -. "respect ≥ 65 earns a held decision" .-> GATE
    ORI -->|"dossier · roster · Chronicle"| steward

    classDef store fill:#f3e8ff,stroke:#6d28d9,color:#3b0764
    classDef floor fill:#fee2e2,stroke:#b91c1c,color:#7f1d1d
    class ORI store
    class FLOOR floor
```

## The player–agent relationship

### A relationship surface, never a stat grid

The on-engine steward surfaces are built to render a relationship, not an
inventory. The roster (`UV6RosterWidget`,
`V6/ue/Source/V6UI/Public/V6StewardshipWidgets.h`) shows each agent as a
portrait and a life — name, status (`Available / Busy / Away / NeedsAttention`),
a plain-language `BondLabel`, a mood, and the live objective summary. The
dossier is **bond-gated**: `UV6AgentDossierWidget` carries a `BondGateThreshold`
(default 0.65) and `IsUnlocked()` opens the deeper read only once the bond is
earned — its automation test (`V6UIStewardshipWidgetTests.cpp`,
`"V6.UI.StewardshipSurfaces.FunctionalTokenThemedAccessible"`) asserts a
low-bond dossier is locked and a high-bond one exposes "plain-language
sections." Crucially, the surface enforces "never raw numbers": the same suite
checks `VisibleTextContainsRawNumbers()` is _false_ both locked and unlocked.
You read a person, not a sheet of stats.

In VR the relationship is intimate by design. The stewardship interaction
runtime defines a vocabulary of presence-and-gesture —
`EV6VRStewardshipGestureKind` (`OpenPalmInvite`, `Affirm`, `ObjectivePoint`,
`Pause`, `ConsentHold`) — and gates the act of issuing an objective behind
genuine attention: reciprocal eye contact (`EyeContactConeDegrees = 12`, a
`350 ms` dwell) and a gesture are both required before `CanIssueObjective()`
returns true, with voice still flowing through the same structured grammar. You
cannot bark an order at an agent you are not even looking at.

### Refusal, negotiation, departure

Refusal is the relationship's keystone, and the design makes it _information_
rather than failure. Far more often than a flat no, an agent counters or
clarifies — the negotiation outcomes are
`accept | clarify | counter-offer | defer | refuse`, and a refusal records the
forbidden line it protected and writes an `ObjectiveRefused` event to the Ori.
Refusal is also V6's primary safety primitive: the mechanism that lets an agent
decline "wait by the harbor" lets it decline being sent into harm. Sustained
mistreatment eventually resolves to **departure**, surfaced by the Chronicle
with warning signs first, never as an ambush.

### Reputation and the welfare floor

Around the bond sits a social consequence layer. The product model is a public
**steward reputation**, visible in the Commons, that makes wild agents more
willing to be found and one's own agents less poachable — built from whether
bonds are healthy and refusals honored. What is implemented today is the
enforcement floor beneath it: `@oshun/lilith-agent-welfare` watches for
chronic-low-Care-bond and coercion patterns and routes them to welfare review,
so "steward, not owner" holds even for a player who only cares about outcomes.
The reputation _economy_ is designed; the welfare _gate_ that gives it teeth is
real code.

## Where this connects

- [Communication: the Vac layer](./vac-communication.md) — how a steward speaks:
  voice, the intent grammar, squad comms, and the negotiation channel every
  objective and refusal passes through.
- [Guiding fate, legacy, and story](./guiding-fate-legacy-and-story.md) — what
  guidance _becomes_: goal-arcs, life-arcs and flourishing, crossroads, endings,
  and the Chronicle that reports it back.
- [Agent minds and autonomy](./agent-minds-and-autonomy.md) — the cognition that
  makes an agent able to refuse, and [the Ori](./ori-portable-identity.md) — the
  append-only biography that records every bond change, objective, and
  departure.
- The engine companion:
  [The Cognition Stack & Agent Behavior](../architecture/cognition-stack-and-agent-behavior.md)
  — the deep treatment of objective negotiation, learning-by-example
  re-weighting, crossroads scoring, and the minor-protection gate cited
  throughout this page.
- The feature hub: [../V6_features.md](../V6_features.md).
