docs(audits): recheck the §3 naming-drift list; fix the os doctor lookupFilters hint (#1878) - #3677
Merged
Merged
Conversation
…kupFilters hint (#1878) Re-verified all nine spec-key-vs-consumed-key drifts against current code in both repos (including the os:check TypeScript blocks inside skills/*/SKILL.md, which compile against the spec and are real consumers). Six of nine were already resolved -- the list was stale, not the code: referenceFilters (-> lookupFilters), maxRating (-> max), page visibility (-> visibleWhen), dashboard title/label (dual-read + strict widget schema), flow http, agent knowledge.topics (alias folded #1891), webhook keys (#3489); action disabled was fixed this month (objectui#2863). skill requiredPermissions was never a drift -- the original audit described prose drift in the docs, not a spec-vs-runtime mismatch. Still real: the coupled page pair type->pageType + label->title, which mis-renders every non-record page today (fixed in the companion objectui PR), and two snake-only max_length readers. - Add 2026-07-naming-drift-recheck.md with per-item file:line evidence, the gate-coverage finding (bare z.object silently strips; the dashboard-widget .strict() + naming error map is the only mechanism that teaches), and the three items left as owner decisions (app badgeVariant/separator decayed when NavigationRenderer was replaced by UnifiedSidebar; skill.permissions has no gate; agent.knowledge is inert). - Annotate README §3 with the recheck summary. - Fix os doctor: the reference_filters rule pointed at the REMOVED referenceFilters key instead of the live lookupFilters. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
Contributor
📓 Docs Drift CheckThis PR changes 1 package(s): 18 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:
|
…derer exists My first pass claimed NavigationRenderer had been deleted; it has not. The component (layout/src/NavigationRenderer.tsx, 1327 lines) is publicly exported and SDUI-registered as `navigation-renderer`, and fully implements separator (:906) + badge/badgeVariant (:983-985, :1024-1025). The error came from a truncated grep (head -3 showed only CHANGELOG/ROADMAP hits). Corrected classification: badge/badgeVariant/separator are SURFACE-CONDITIONAL, not dead — they render through the SDUI component but not through UnifiedSidebar, which is what actually renders app.navigation in the console. Disposition flips from enforce-or-prune to port-the-three-branches. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jul 27, 2026
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.
Third and last recheck of the 2026-06 liveness audit's problem clusters (after §1 security-props #3503 and the §2 report slice #3496). Companion objectui fix: objectstack-ai/objectui#2867.
Finding: six of nine were already resolved — the list was stale, not the code
Re-verified every §3 item against current code in both repos, including the
<!-- os:check -->TypeScript blocks insideskills/*/SKILL.md(they compile against the spec and are real consumers — the gap that bit #3605).referenceFilterslookupFiltersis read + scopes the pickermaxRatingmax,RatingFieldreadsmaxvisibilityvisibleWhen;SchemaRendererconsumes ittitle/label.strict()+ naming error map (#1894)httpHTTP_TYPE='http'knowledge.topicssources; test asserts'topics' in parsed === falseobject/isActivedisabledrequiredPermissionsSkillSchema; the original audit described prose/label drift in the docsStill real (fixed in the companion objectui PR): the coupled page pair
type→pageType+label→title, which mis-renders every non-record page today (showcasecapability_map,active_projects,command_center_jsx), plus two snake-onlymax_lengthreaders.The systemic finding
For every item, authoring the wrong key is silently stripped —
FieldSchemaandPageSchemaare barez.object(verified empirically: parsing a page withpageType+titlereturns neither, no error). The dashboard-widget.strict()+ fixable naming error map (#1894) is the only mechanism in the codebase that turns a silent no-op into a teaching error. Extending it toPageSchema/FieldSchemais the structural fix for this whole class; per-item wiring is the tactical one.Changes
docs/audits/2026-07-naming-drift-recheck.md— per-item verdicts with file:line evidence, the gate-coverage analysis, and three items left as owner decisions.os doctor— its snake→camel table advised "UsereferenceFilters", a key removed in [11.0][A2] Remove dead author-facing metadata properties (ADR-0049 enforce-or-remove) #2377 that the schema silently strips. Now matches both spellings and names the livelookupFilters.Left as decisions (recorded, not fixed)
badge/badgeVariant+ navseparator— surface-conditional, port rather than prune. The capability is fully implemented inlayout/src/NavigationRenderer.tsx(:906separator,:983-985badge), a publicly exported + SDUI-registered (navigation-renderer) component. It is missing fromUnifiedSidebar, which is what actually rendersapp.navigationin the console. So the same authored key works on one surface and silently vanishes on the other. (An earlier revision of this PR claimedNavigationRendererhad been deleted — that was wrong, from a truncated grep; corrected in the second commit.)skill.permissionshas no gate — mis-filed as naming drift; it's an aspirational-config item (§4). The ledger marks itliveon a preview renderer's evidence while the identically-unenforcedtool.permissionsisdead+authorWarn, so authors get silence where they should get a warning. Note the cloud runtime documents the intent in a comment ("Layer permissions viaSkill.permissionsindependent of the agent's permissions") without implementing it.agent.knowledgeis inert — naming fixed by [P2] Naming drift → silent no-ops (spec key ≠ consumed key) #1891, butsearch_knowledgetakessourceIdsfrom the LLM's tool-call args, never from the authored block, so a declared knowledge scope constrains nothing.Refs #1878, #3503, #3496.
🤖 Generated with Claude Code