Exchange
metaculus
Drift Type
CHANGED_REQUEST / NEW_FEATURE
Severity
LOW — new optional capabilities; no runtime breakage if not used
Their Docs
Sources:
1. Social OAuth login — inline gated_action in request body (Jul 28)
Social auth sign-in now accepts an optional gated_action payload in the POST body. It is applied best-effort during the login (never blocks sign-in, logs warning on failure). This is architecturally distinct from the queued_action_token mechanism in #1871 (which stores the action in Redis and retrieves it later). The cached spec models no auth/social endpoints; #1871 does not mention this inline field variant.
2. POST /comments/create/ — gated action routing + atomic Key Factors (Jul 30)
Comment creation now:
3. GET /notebooks/{id}/{slug}/ — Accept: text/markdown content negotiation (Aug 12)
When the request carries Accept: text/markdown, the endpoint returns Content-Type: text/markdown; charset=utf-8 with a YAML frontmatter block (title, type, published_at, authors) followed by the markdown body. Response also carries Vary: Accept, Accept-Language and a Link: <html-url>; rel="canonical" header. The cached spec models no notebooks endpoint at all. #1950 lists notebooks endpoints as newly discovered but does not capture this content-negotiation behavior.
Our Cached Spec
core/specs/metaculus/Metaculus.yaml (generated 2026-03-01). No auth/social, notebooks, or new comment behavior is modelled.
callApi() References at Risk
- Hardcoded bypass at
createOrder.ts:396 for /questions/forecast/ is unrelated, but the equivalent bypass for /comments/create/ may be affected by the rollback behavior change.
Impact
- Inline gated actions during login not leveraged (low urgency — it's additive)
- Comment creation rollback semantics change (previously a Key Factors failure was silent)
- Notebook markdown export not available via typed client
Found by automated spec drift audit — 2026-08-23
Exchange
metaculus
Drift Type
CHANGED_REQUEST / NEW_FEATURE
Severity
LOW — new optional capabilities; no runtime breakage if not used
Their Docs
Sources:
1. Social OAuth login — inline
gated_actionin request body (Jul 28)Social auth sign-in now accepts an optional
gated_actionpayload in the POST body. It is applied best-effort during the login (never blocks sign-in, logs warning on failure). This is architecturally distinct from thequeued_action_tokenmechanism in #1871 (which stores the action in Redis and retrieves it later). The cached spec models no auth/social endpoints; #1871 does not mention this inline field variant.2. POST /comments/create/ — gated action routing + atomic Key Factors (Jul 30)
Comment creation now:
queued_action_token(extending spec-drift [metaculus] MEDIUM: 3 auth/profile additions July 23 2026 — magic-link endpoints, username_set_at field, gated-actions queued_action_token #1871's coverage to the comments endpoint)The cached spec models
/comments/create/as a plain POST. The hardcoded bypass atcreateOrder.ts:396uses this endpoint; if Key Factors fail, the comment (order) now rolls back rather than succeeding without Key Factors.3. GET /notebooks/{id}/{slug}/ —
Accept: text/markdowncontent negotiation (Aug 12)When the request carries
Accept: text/markdown, the endpoint returnsContent-Type: text/markdown; charset=utf-8with a YAML frontmatter block (title, type, published_at, authors) followed by the markdown body. Response also carriesVary: Accept, Accept-Languageand aLink: <html-url>; rel="canonical"header. The cached spec models no notebooks endpoint at all. #1950 lists notebooks endpoints as newly discovered but does not capture this content-negotiation behavior.Our Cached Spec
core/specs/metaculus/Metaculus.yaml(generated 2026-03-01). No auth/social, notebooks, or new comment behavior is modelled.callApi() References at Risk
createOrder.ts:396for/questions/forecast/is unrelated, but the equivalent bypass for/comments/create/may be affected by the rollback behavior change.Impact
Found by automated spec drift audit — 2026-08-23