What happenedA session opened with the working directory set to a product project, but every file it produced lived in the global config tree — a new skill, a new hook, an updated settings file. Zero changes to the product's source. The work was real, useful, and shipped. But the wrap-up would have logged it under the wrong project. Three different hooks watched this session. None flagged the mismatch.
Rule triggeredOwnership Follows Output Path, Not Working Directory — when a session's outputs live in shared territory (skills, hooks, global config), the governance owner is the hub project, regardless of where the editor was pointed. The dashboard, milestone log, and project tracker all index by ownership, not by working directory.
Without the SOPWithout the rule, the session's archive would have shown 'the product project: 0 files changed' and the actual work — a new user-facing skill plus an enforcement hook — would never be recorded against the hub project. Two months later, an audit would find shipped infrastructure with no documented origin: an 'orphaned asset' problem that compounds with every misattributed session.
What actually happenedThe session honestly self-flagged the violation in its own outcome notes — making the case study possible at all. New rule added: when output path and working directory diverge, ownership follows output path. Both projects' dashboards updated (the working-directory project records 'no changes,' the output-path project records the actual work). A hook upgrade was queued: detect output/cwd mismatch automatically and tag the session as cross-territory.
Honesty beats correctness. Sessions that admit they drifted off-course are repairable. Sessions that hide it become tomorrow's mystery commits.