Found while implementing #543; deferred as a small documentation correction rather than mixing an unrelated historical example into identity recovery.
Evidence
docs/diagnostics.md under Human-owned placeholders still says collect_placeholders names a list item by its own text and shows agent.declared_purpose.CHANGE_ME. The implementation in cli/discovery/placeholders.py walks YAML nodes and emits agent.declared_purpose[0] with the source line. Existing tests/test_setup_control.py explicitly rejects the older path shape, including flow-style YAML.
An integration author copying the guide would match a path the current producer does not emit. The field ownership itself is correctly enforced; this is a stale explanation, not a newly observed routing bypass.
Proposed correction
Update the example and explanation against the actual helper output; check nearby diagnostics examples for the same obsolete list-path spelling. Preserve the existing schema and ownership model.
Acceptance
Related: #543. This documentation debt does not block its recovery implementation.
Found while implementing #543; deferred as a small documentation correction rather than mixing an unrelated historical example into identity recovery.
Evidence
docs/diagnostics.mdunder Human-owned placeholders still sayscollect_placeholdersnames a list item by its own text and showsagent.declared_purpose.CHANGE_ME. The implementation incli/discovery/placeholders.pywalks YAML nodes and emitsagent.declared_purpose[0]with the source line. Existingtests/test_setup_control.pyexplicitly rejects the older path shape, including flow-style YAML.An integration author copying the guide would match a path the current producer does not emit. The field ownership itself is correctly enforced; this is a stale explanation, not a newly observed routing bypass.
Proposed correction
Update the example and explanation against the actual helper output; check nearby diagnostics examples for the same obsolete list-path spelling. Preserve the existing schema and ownership model.
Acceptance
agent.declared_purpose[0]for both block and flow-style list placeholders.Related: #543. This documentation debt does not block its recovery implementation.