Summary
The publisher agent cannot determine its own ATM identity from any documented source, and the registered name does not match the role name used everywhere else.
Evidence
atm members --team sc-compose:
team-lead | type=team-lead ...
comp | type=codex ...
comp2 | type=codex ...
comp3 | type=codex ...
quality-mgr | type=quality-mgr ...
team-mate | type=publisher ... pane=-
The member with type=publisher is named team-mate. There is no member named publisher.
Two concrete failures this caused during the 1.4.2 release:
ATM_IDENTITY is unset in the publisher session's environment, so every bare atm call fails with identity is not configured. The session-start banner reports ATM identity: team-lead, which is the parent session's identity and is actively misleading for a spawned teammate.
- The obvious guess (
ATM_IDENTITY=publisher) is wrong. Discovering the real value required enumerating members and matching on type=.
ATM_TEAM is likewise unset, so atm send additionally fails with team is not configured until --team sc-compose or ATM_TEAM is supplied.
Working invocation:
ATM_IDENTITY=team-mate atm send quality-mgr --team sc-compose --file <task.xml>
Impact
Any agent operating in the publisher role has to rediscover this by trial and error before it can send a single ATM message — including the mandatory qa-template dispatch to quality-mgr. It is exactly the kind of undocumented operational fact the 1.4.1 postmortem's standing rule exists to prevent.
Required fix
- Rename the member from
team-mate to publisher so the ATM name matches the role, the agent definition, and how team-lead addresses it in task assignments; or, if the name must stay, document it explicitly.
- Ensure
ATM_IDENTITY and ATM_TEAM are exported into spawned teammate sessions so bare atm commands work without per-call flags.
- Record the correct identity/team invocation in
docs/team-protocol.md and in docs/publishing-agent.md, per the standing rule that operational fixes get written into the repo in the same session.
Found during 1.4.2 release execution by publisher.
Summary
The publisher agent cannot determine its own ATM identity from any documented source, and the registered name does not match the role name used everywhere else.
Evidence
atm members --team sc-compose:The member with
type=publisheris namedteam-mate. There is no member namedpublisher.Two concrete failures this caused during the 1.4.2 release:
ATM_IDENTITYis unset in the publisher session's environment, so every bareatmcall fails withidentity is not configured. The session-start banner reportsATM identity: team-lead, which is the parent session's identity and is actively misleading for a spawned teammate.ATM_IDENTITY=publisher) is wrong. Discovering the real value required enumerating members and matching ontype=.ATM_TEAMis likewise unset, soatm sendadditionally fails withteam is not configureduntil--team sc-composeorATM_TEAMis supplied.Working invocation:
Impact
Any agent operating in the publisher role has to rediscover this by trial and error before it can send a single ATM message — including the mandatory
qa-templatedispatch toquality-mgr. It is exactly the kind of undocumented operational fact the 1.4.1 postmortem's standing rule exists to prevent.Required fix
team-matetopublisherso the ATM name matches the role, the agent definition, and how team-lead addresses it in task assignments; or, if the name must stay, document it explicitly.ATM_IDENTITYandATM_TEAMare exported into spawned teammate sessions so bareatmcommands work without per-call flags.docs/team-protocol.mdand indocs/publishing-agent.md, per the standing rule that operational fixes get written into the repo in the same session.Found during 1.4.2 release execution by
publisher.