docs(automation,releases,plugins): back-fill the accuracy audit #4161 never got - #4219
Merged
Merged
Conversation
…never got The drift comment on #4161 was computed by the mapper bug #4206 fixed: the service-automation change collapsed to `packages/services`, so these four docs were attributed to the wrong package — and a service-automation-only diff would have reported none of them. Re-derived with the fixed mapper and audited against the implementation. flows.mdx carries the #4161 axis itself: a `runAs:'user'` run that resolved no trigger user has its data operations refused. Also documents `node.type` as an open string checked against the live registry (ADR-0018), the script executor as naming a callable with logger-backed `email`/`slack` markers, the `.strict()` shells, and six previously undocumented node keys. implementation-status.mdx gains the real `/api/v1` route prefixes, the memory driver's actual `InMemoryDriver.supports` matrix, and the ADR-0090 D3 `Role` -> `Position` rename — which ratchets the role-word baseline down by one, so that gate-mandated update ships here too. Gates: docs build, check:doc-authoring, check:role-word, check:nul-bytes, check:release-notes, check:skill-examples (198 prose examples). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J2x8Tie9WT1VgWFifqMKrR
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
os-zhuang
marked this pull request as ready for review
July 31, 2026 00:38
This was referenced Jul 31, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #4206 (which fixed #4162). That PR fixed the mapper; this one pays the debt the mapper's bug left behind on #4161.
Why these four docs
#4161's drift comment was computed by the broken mapper: the change to
packages/services/service-automationcollapsed into the container directory, so the docs were attributed topackages/servicesrather than the package. Re-derived with the fixed mapper, the change maps to four docs via@objectstack/service-automation— and on a service-automation-only diff the old mapper would have reported none of them:Audited with the
docs-accuracy-auditworkflow (8 agents: one auditor + one adversarial verifier per doc). 44 evidence-backed fixes, 5 repaired by the verifier.What changed
automation/flows.mdx(11 fixes, 2 verifier repairs) — carries the #4161 axis itself:runAsnow states that a'user'run which resolved no trigger user has its data operations refused, and that schedule / time-relative / API triggers need'system'. Also:node.typedocumented as an openstringchecked against the live action registry atregisterFlow()(ADR-0018) rather than a closed enum; thescriptexecutor described as naming a callable, with'email'/'slack'called out as logger-backed markers that record intent without delivering anything; the.strict()flow/node/edge/variable shells; and six previously undocumented node keys (timeoutMs,inputSchema,waitEventConfig,boundaryConfig,successMessage,errorMessage).releases/implementation-status.mdx(19 fixes, 2 verifier repairs) — every REST row carries its real/api/v1prefix; the memory-driver capability list replaced with whatInMemoryDriver.supportsactually declares; Cache / Encryption / Dataset / Sorting statuses corrected; themswcolumn dropped (not a workspace package);Role→Positionper ADR-0090 D3.plugins/packages.mdx(13 fixes, 1 verifier repair) — package inventory corrected, and the claim that plugins are never exported ascreate*factories removed (contradicted bycreateRestApiPlugin,createDispatcherPlugin,createPlatformObjectsPluginand ~8 more).releases/v9.mdx(1 fix) — notes thatos package publish --visibilityhas since shipped (private/org/marketplace, defaultorg).scripts/role-word-baseline.json— not an unrelated edit: theRole→Positionrename removes the file's last "role" occurrence, andcheck-role-wordis a ratchet that fails on a decrease too, requiring the baseline to be updated and committed.Verification beyond the workflow
The verifier on
implementation-status.mdxonly reviewed 4 of 19 fixes (its input fix-log was truncated), so I re-checked that file's claims myself and found one error the workflow missed: the doc citedInMemoryDriver.capabilities, but the real property isInMemoryDriver.supports(memory-driver.ts:153— the test name says "capabilities" while assertingdriver.supports.transactions). Fixed in this PR. The substantive capability list checks out line-by-line againstsupports. Independently confirmed as well:CoreServiceNamehas nopermissionentry,field.zod.tshas nocheckbox/arraytypes, the four.strict()shells,rest-route-ledger.ts, and the--visibilityoptions and default inpublish.ts:170-174.Gates run locally, all green:
pnpm --filter @objectstack/docs build(410+ pages),check:doc-authoring,check:role-word,check:nul-bytes,check:release-notes, andcheck:skill-examples(198 prose examples type-check).Residual — reported, not guessed at
18 items the agents could not resolve without a code-owner decision are recorded in the changeset rather than edited. Two look like genuine code/doc contradictions worth their own issues:
implementation-status.mdxcalls it "Future" andartifactSource: { mode: 'artifact-api' }"reserved", faithfully mirroring the comment atpackages/metadata/src/plugin.ts:145-148. But_loadFromArtifactApi()exists atplugin.ts:723-752and is dispatched from the bootstrap switch. The code is self-contradictory; the doc is only echoing it.maxRetriesdefault —FlowSchemasets.default(0)while the engine readserrorHandling.maxRetries ?? 3(engine.ts:3500). Which wins depends on whether the flow was parsed through the schema first.🤖 Generated with Claude Code
https://claude.ai/code/session_01J2x8Tie9WT1VgWFifqMKrR
Generated by Claude Code