You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
finding(docs/tooling): nothing reads prose on plugin-detail.mdx — the ACTIVITY_TYPE_TO_FEED_TYPE transcription and its surrounding assertions can drift silently, as objectui#6932 just showed twice #7876
Filed unassigned and unlabelled by the domain:devx @ objectui execution seat, PM session session_01KDq78vMMSzCGWGmhUYBabh, R43. ⛔ Grading and routing are the triage seat's.
Where this came from
#6932 (PR #7871) corrected two record:activity statements on content/docs/plugins/plugin-detail.mdx that were true when written and false on main. Its dev raised the follow-up question and the PM seat ruled it; this card is that ruling, filed because the fix needs a test file and #6932's dispatched file surface was the .mdx alone. ⛔ It correctly did not ride along.
The gap
The page carries two driftable things and no gate reads either:
a prose transcription of ACTIVITY_TYPE_TO_FEED_TYPE at plugin-detail.mdx:221-225;
⇒ None of them reads a sentence. A statement that contradicts the code is invisible to CI, which is exactly how #6932's two statements survived a merged behaviour change.
The ruling — option A, a derived transcription pin
The dev laid out three options and recommended A; the PM seat agrees and records why the other two lose:
A — derive the map from ACTIVITY_TYPE_TO_FEED_TYPE and assert the docs sentence lists exactly those pairs. ⭐ The only option where drift fails instead of waiting for someone to notice. The map is a small closed set, which is what a derived pin covers cheaply.
⚠️ Honest bound on A, stated so whoever takes it is not surprised: a derived pin covers the map transcription. It does not cover free prose like "a row whose type is in neither list is dropped" — the statements #6932 corrected would still not be caught by it. A is worth doing because the map is mechanically checkable; ⛔ it should not be sold as closing the whole gap.
Scope note for the implementer
packages/app-shell/src/views/RecordDetailView.tsx imports activityRowToFeedItem from @object-ui/plugin-detail rather than re-implementing it (verified during #6932), so there is one source of truth for the pin to derive from.
Dedup
Searched objectstack-ai/objectuistate=alllabels=domain:devx, pages 1–5, title-matching plugin-detail / activity_type_to_feed / transcription+pin. Only hits were #6932 itself and #5007 (closed — a different stale-line-number citation in a parity gate's reason string). Control: #6932 was returned by the instrument, so it is not blind. ⚠️ Bounded to titles; bodies were not searched, and /search/* is 403 from this container.
Filed unassigned and unlabelled by the
domain:devx@objectuiexecution seat, PM sessionsession_01KDq78vMMSzCGWGmhUYBabh, R43. ⛔ Grading and routing are the triage seat's.Where this came from
#6932 (PR #7871) corrected two
record:activitystatements oncontent/docs/plugins/plugin-detail.mdxthat were true when written and false onmain. Its dev raised the follow-up question and the PM seat ruled it; this card is that ruling, filed because the fix needs a test file and #6932's dispatched file surface was the.mdxalone. ⛔ It correctly did not ride along.The gap
The page carries two driftable things and no gate reads either:
ACTIVITY_TYPE_TO_FEED_TYPEatplugin-detail.mdx:221-225;What the existing doc gates actually cover, measured on this PR's own run:
check:doc-typescheck:doc-snippetscheck:doc-fences·docs:check-links·check:docs-route-closure⇒ None of them reads a sentence. A statement that contradicts the code is invisible to CI, which is exactly how #6932's two statements survived a merged behaviour change.
The ruling — option A, a derived transcription pin
The dev laid out three options and recommended A; the PM seat agrees and records why the other two lose:
ACTIVITY_TYPE_TO_FEED_TYPEand assert the docs sentence lists exactly those pairs. ⭐ The only option where drift fails instead of waiting for someone to notice. The map is a small closed set, which is what a derived pin covers cheaply.Scope note for the implementer
packages/app-shell/src/views/RecordDetailView.tsximportsactivityRowToFeedItemfrom@object-ui/plugin-detailrather than re-implementing it (verified during #6932), so there is one source of truth for the pin to derive from.Dedup
Searched⚠️ Bounded to titles; bodies were not searched, and
objectstack-ai/objectuistate=alllabels=domain:devx, pages 1–5, title-matchingplugin-detail/activity_type_to_feed/transcription+pin. Only hits were #6932 itself and #5007 (closed — a different stale-line-number citation in a parity gate's reason string). Control: #6932 was returned by the instrument, so it is not blind./search/*is 403 from this container.Generated by Claude Code