Skip to content

W109 — A Uniform That Makes Its Wearer More Employable #465

Description

@The-Running-Dev

W109 — A Uniform That Makes Its Wearer More Employable

Lets a campaign author write an item or trait whose effect is on how the world regards the
player — a work uniform that makes its wearer more employable, a scandal that fades when it
expires — instead of only on their needs, attributes and skills. Reputation is something the
game already stores and already reads; until now nothing an author could write was able to
move it.

Done when

  • W109.1 A campaign whose Modifier.target is player.reputation.<key> passes Tier 1 validation, and the same campaign is rejected before this unit; the writable prefix set grows by exactly one entry and the calendar.committedTimeUnits exception is unchanged.
  • W109.2 Resolving player.reputation.<key> returns the stored base with every active modifier layered over it in §6.1's fixed add/subtractmultiplyset order, clamped to 0–100 — the same treatment player.skills.* already gets.
  • W109.3 When the effect expires, the same read returns the stored base again, unchanged; nothing was written back to state at any point.
  • W109.4 Resolving a reputation key the actor does not store returns no value rather than 0, matching the player.skills.* precedent line for line.
  • W109.5 A Modifier targeting any of the four formula-only paths still fails Tier 1 read_only_field; state both counts — targets newly accepted, and targets still rejected.
  • W109.6 The replay corpus is byte-identical: no committed fixture moves, because no existing campaign targets reputation.

Agent instructions

Run /slice W109.

  • Scope and criteria: design/30-slices.md § W109 @ 3f2121d
  • Signatures: §6.1's DerivedPath union and its writable/formula-only partition, §6.2's stored reputation record, §7.1's writable-target table, and 90-decisions.md's 2026-09-07 W105.1 entry.
  • Depends on: W108, for scheduling only — this is the first unit of 0.12 and must not land against the verified 0.11 candidate.
  • Out of scope here: travel-time effects — issue W41 Engine package consumer boundary smoke test #108's bicycle is deliberately left unamended and stays unexpressible after this unit; consuming reputation through CheckModifier.source/PerformanceFactor.source, neither of which is dispatched by any resolver today; authoring a campaign that uses the new target.

Stop conditions and procedure: .claude/commands/slice.md. Not restated here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    sliceA W-numbered vertical delivery slice from design/30-slices.md

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions