Part of #4707. Execution sub-card cut by the triage seat per the maintainer's 2026-08-06 ruling recorded on that thread (demand 1 = do; demand 2 = decided, do NOT split the flag — that verdict is content for this table, see below).
Task
Write one authoritative table in content/docs listing every behaviour the platform keys off isSystem: true on a write, maintained in one place as the authority. The three known rows, re-verified on origin/main @ e1e7629:
| # | package | behaviour | anchor |
|---|
| 1 | objectql | applySystemFields does not inject owner_id — the row is written with no platform owner | packages/objectql/src/registry.ts (applySystemFields) |
| 2 | write pipeline | readonly stripping is bypassed — a readonly field CAN be written | see also #6640 for the INSERT-side preserveAudit note |
| 3 | plugin-sharing | grant materialisation is skipped — the record-write hooks return early, so no sys_record_share rows are created until boot backfill | packages/plugins/plugin-sharing/src/rule-hooks.ts:157, :165, :180, :194 |
The dev's first job is the sweep the parent card asked for: grep every isSystem consumer across packages and confirm whether a fourth behaviour exists — the table is how it would be found. Behaviour 3's observability half is NOT this card (sibling identity-lane card covers the INFO line).
Must include: the recorded decision on demand 2
The maintainer ruled (#4707, 2026-08-06): the isSystem concept is deliberately NOT being split into separate ownership/readonly/sharing switches — shipped semantics, no business pull, and a three-switch combinatorial surface is judged more error-prone for AI authors than one flag. The ruling explicitly asks that this trade-off be written into the table as a known decision, so readers stop re-proposing the split.
Scope
content/docs only (devx lane); no behaviour changes anywhere.- ⛔ Do not touch
docs/adr/** (2026-08-08 standing discipline: ADRs are maintainer-merged only) and do not touch content/docs/releases/.
Refs: #4707 (anchor card — demands 2 and closure ride on the sub-cards landing), hotcrm#622 / #613 / #640 (the three app-side bugs), #4698.
Part of #4707. Execution sub-card cut by the triage seat per the maintainer's 2026-08-06 ruling recorded on that thread (demand 1 = do; demand 2 = decided, do NOT split the flag — that verdict is content for this table, see below).
Task
Write one authoritative table in
content/docslisting every behaviour the platform keys offisSystem: trueon a write, maintained in one place as the authority. The three known rows, re-verified onorigin/main@e1e7629:applySystemFieldsdoes not injectowner_id— the row is written with no platform ownerpackages/objectql/src/registry.ts(applySystemFields)readonlystripping is bypassed — areadonlyfield CAN be writtenpreserveAuditnotesys_record_sharerows are created until boot backfillpackages/plugins/plugin-sharing/src/rule-hooks.ts:157,:165,:180,:194The dev's first job is the sweep the parent card asked for: grep every
isSystemconsumer across packages and confirm whether a fourth behaviour exists — the table is how it would be found. Behaviour 3's observability half is NOT this card (sibling identity-lane card covers the INFO line).Must include: the recorded decision on demand 2
The maintainer ruled (#4707, 2026-08-06): the
isSystemconcept is deliberately NOT being split into separate ownership/readonly/sharing switches — shipped semantics, no business pull, and a three-switch combinatorial surface is judged more error-prone for AI authors than one flag. The ruling explicitly asks that this trade-off be written into the table as a known decision, so readers stop re-proposing the split.Scope
content/docsonly (devx lane); no behaviour changes anywhere.docs/adr/**(2026-08-08 standing discipline: ADRs are maintainer-merged only) and do not touchcontent/docs/releases/.Refs: #4707 (anchor card — demands 2 and closure ride on the sub-cards landing), hotcrm#622 / #613 / #640 (the three app-side bugs), #4698.