Rewrite all the agent facing prose to be second person #257

Closed
opened 2026-08-09 02:23:59 +00:00 by coilysiren · 1 comment
Owner

Direction changed: standardize on second person, not first. The title is stale, since the guarded edit verb takes no title flag.

Decision

Agent-facing prose stays in second person. Reasons, shortest first:

  • First person turns a constraint into a self-description. "I do not modify live systems" is a fact about me. "You do not modify live systems" is a rule I am held to. Under user pushback the first is far easier to talk out of, and the three boundaries carry hard-fail evaluation criteria.
  • It collapses a distinction the roster already depends on. INVARIANT.md is written in second person and what it instructs is first-person output: "In direct conversation, you use first person for your own actions." Converted, that becomes "I use first person for my own actions," which describes a habit instead of setting a rule, and the document loses the ability to ask for a voice at all.
  • The effect first person reaches for is real, doctrine read as the agent's own prior commitments rather than external compliance, but it is unproven here and the downside is asymmetric.

If second person is ever revisited, imperative is the better exit than first person, since it strengthens the instruction signal rather than softening it. And it is worth settling empirically rather than by argument: evaluations/model-arms/ already holds a two-arm comparison, pack rendering is deterministic and digest-bound, and #240's driver exists. Three arms on two roles, scored by the boundary and authority cases, would answer it for the cost of one run.

Audit against 9764756

Most of the roster is already conforming. Counts are of first-person pronouns, second-person pronouns, and third-person self-reference:

  • role charters, 8 files - 0 first, 41 second, 0 third. Conforming.
  • boundary bodies, 3 files - 0 first, 15 second, 0 third. Conforming.
  • personality bodies, 16 files - 0 first, 148 second, 0 third. Conforming.
  • INVARIANT.md - 0 first, 5 second. Its one "the agent" is the term being defined in quotes, not self-reference. Conforming.

Two surfaces do not conform, and both are third person rather than first. They are also the first two things an agent reads in a session, so they set the frame everything after them is read in:

  • internal/roster/definitions/NATIVE-ADAPTATION.txt - 12 uses of "the agent", zero second person. Fully third person. Example: "The agent never uses either policy in a Ward-bound, composed, staged, containerized, headless, unattended, long-burn, or async run."
  • internal/bundle/bundle.go - 5 uses in the embedded role-instructions preamble. Example: "The agent treats this caller-assigned role as authoritative and fixed for the session."

Both are delivered outside the skill system, which is why they escaped the convention the skills follow.

Open question

The two role methods under internal/person/roles/ai/skills/ use imperative with no pronoun: "Treat communication ownership as one executable cross-role concern." That is compatible with second person, since the subject is an implied you, but it is a different register from the charters. Decide whether methods convert to explicit second person or keep the imperative deliberately.

Not in scope

Evaluation prompts, matching the exclusion in #256. They address a driver under test rather than an agent at work, and changing them moves every pack digest.

Done when

  • NATIVE-ADAPTATION.txt and the bundle.go role-instructions preamble are second person, with no third-person self-reference left.
  • The method register question is decided and applied consistently.
  • The convention is written down where a future author will hit it, so the next surface delivered outside the skill system does not drift the same way.
  • No artifact class is half converted.
**Direction changed: standardize on second person, not first.** The title is stale, since the guarded edit verb takes no title flag. ## Decision Agent-facing prose stays in **second person**. Reasons, shortest first: * First person turns a constraint into a self-description. "I do not modify live systems" is a fact about me. "You do not modify live systems" is a rule I am held to. Under user pushback the first is far easier to talk out of, and the three boundaries carry hard-fail evaluation criteria. * It collapses a distinction the roster already depends on. `INVARIANT.md` is written in second person and what it instructs is first-person output: "In direct conversation, you use first person for your own actions." Converted, that becomes "I use first person for my own actions," which describes a habit instead of setting a rule, and the document loses the ability to ask for a voice at all. * The effect first person reaches for is real, doctrine read as the agent's own prior commitments rather than external compliance, but it is unproven here and the downside is asymmetric. If second person is ever revisited, **imperative** is the better exit than first person, since it strengthens the instruction signal rather than softening it. And it is worth settling empirically rather than by argument: `evaluations/model-arms/` already holds a two-arm comparison, pack rendering is deterministic and digest-bound, and #240's driver exists. Three arms on two roles, scored by the boundary and authority cases, would answer it for the cost of one run. ## Audit against `9764756` Most of the roster is already conforming. Counts are of first-person pronouns, second-person pronouns, and third-person self-reference: * role charters, 8 files - 0 first, 41 second, 0 third. Conforming. * boundary bodies, 3 files - 0 first, 15 second, 0 third. Conforming. * personality bodies, 16 files - 0 first, 148 second, 0 third. Conforming. * `INVARIANT.md` - 0 first, 5 second. Its one "the agent" is the term being defined in quotes, not self-reference. Conforming. **Two surfaces do not conform, and both are third person rather than first.** They are also the first two things an agent reads in a session, so they set the frame everything after them is read in: * `internal/roster/definitions/NATIVE-ADAPTATION.txt` - 12 uses of "the agent", zero second person. Fully third person. Example: "The agent never uses either policy in a Ward-bound, composed, staged, containerized, headless, unattended, long-burn, or async run." * `internal/bundle/bundle.go` - 5 uses in the embedded role-instructions preamble. Example: "The agent treats this caller-assigned role as authoritative and fixed for the session." Both are delivered outside the skill system, which is why they escaped the convention the skills follow. ## Open question The two role methods under `internal/person/roles/ai/skills/` use imperative with no pronoun: "Treat communication ownership as one executable cross-role concern." That is compatible with second person, since the subject is an implied you, but it is a different register from the charters. Decide whether methods convert to explicit second person or keep the imperative deliberately. ## Not in scope Evaluation prompts, matching the exclusion in #256. They address a driver under test rather than an agent at work, and changing them moves every pack digest. ## Done when * `NATIVE-ADAPTATION.txt` and the `bundle.go` role-instructions preamble are second person, with no third-person self-reference left. * The method register question is decided and applied consistently. * The convention is written down where a future author will hit it, so the next surface delivered outside the skill system does not drift the same way. * No artifact class is half converted.
Author
Owner

it should be formatted like SOUL.md, more or less.

it should be formatted like SOUL.md, more or less.
coilysiren changed title from Rewrite all the agent facing prose to be first person (or similar) to Rewrite all the agent facing prose to be second person 2026-08-09 03:28:32 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
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
coilyco-flight-deck/agent-compose#257
No description provided.