Repository navigation
docs(skills): console-development.md 指路的 7 个 console 页面里 5 个不存在,并整节教用已删除的 MetadataManagerPage #3713
Description
Activity
- addeddocumentationImprovements or additions to documentationImprovements or additions to documentationbugSomething isn't workingSomething isn't working
on Aug 8, 2026 PM 裁决(维护者已授权代裁,session_01GTRjn8xBqp75dk7kFupVRt):方向 1(按现状重写 + 同步 eval),吸收方向 3 的既定事实。
理由:方向 1 是事实恢复,零产品承诺、完全可逆;方向 3 不是待选项 — commit cccdf84 的提交信息已是落地决策(console 瘦身为参考装配、第三方走 console-starter),guide 引用它即可;方向 2 的「planned」标注需确认一个无法核实的路线图意图 — 跳过,日后要恢复 registry 页补一节是可逆小事。eval 同步是本单的牙:期望输出烤入错误组件名,不改它,照旧指南生成的错误代码继续被判对。
据此认领。分支:
claude/issue-3713-skills-guide-truth。文件面:skills/objectui/guides/console-development.md+skills/objectui/evals/console-development.json。处置:目录树按 pages/system/ 现状 6 页重写;「How MetadataManagerPage works」整节按真实机制改写(四条 URL 是 SystemObjectRedirect 到框架对象,#3673/#3655 腿;registry 驱动的资源页真身在 packages/app-shell 的 metadata-admin,metadataTypeRegistry.ts 不存在);路由示例与扩展点随之修正;加一句参考装配定位(引 cccdf84);eval 的 expected_output 同步为真实组件/形态;纠错锚形态保留被删名字 + 紧跟判词;#3656 措辞。⚠️ 与在途 #3655 腿(apps/console)零文件相交但事实相交 — permissions 重定向落地后 guide 措辞应与之一致,动手前 fetch 看其 PR 是否已落,未落则按「4 条重定向 + permissions 待落地(#3655 已裁 A)」的措辞写,避免抢跑。
Generated by Claude Code
实现完成 -> DRAFT PR #3729(session_01GTRjn8xBqp75dk7kFupVRt,分支
claude/issue-3713-skills-guide-truth)。前提复核:issue 结论逐条成立,7 页面表实测与正文一致(5 缺 2 在),
MetadataManagerPage/metadataTypeRegistry/MetadataTypeConfig/registerMetadataType/getMetadataTypeConfig/pageSchemaFactory/listComponent/MetadataListComponentProps在packages+apps全部零命中。按裁决六条逐条落地,三处需 PM 知晓的偏离/补充:
cccdf84d7的可引用性与 PR chore(console): 删除全仓零引用的 SystemObjectViewPage + systemObjects (#3672) #3699 正文相反 —— chore(console): 删除全仓零引用的 SystemObjectViewPage + systemObjects (#3672) #3699 称它不是main祖先(当时 main 仅 203 个 commit)。今天origin/main有 7517 个 commit,git merge-base --is-ancestor返回 ANCESTOR,提交信息可读。故参考装配定位那句放心引了它(AppContent.tsx:110也已在引)。- console: 系统导航 / System Hub 的 users / organizations / roles / positions / permissions 五个入口没有对应路由 —— 两个落 "Page not found",三个跳进不存在对象
system的记录页 #3655 permissions 腿实测未落 main ——AppContent.tsx仍只有四行重定向、:191-202的「故意缺席」注释仍在。故按派发单要求写「四条重定向 + permissions 已裁 A(sys_permission_set)待落地」,并给出自查指令,不抢跑。 - eval 校验方式:本仓没有 runner ——
scripts//.github//package.json/turbo.json对evals零引用。故逐字段人工核对 + 一次性核对脚本(未进提交):87 项全绿;把旧两文件放回做逆向验证 23 项 FAIL,红点逐条落在预测位置,且被删名字的锚外计数与改前实测计数逐条相等。顺带查出 eval 2 的registerWidgets断言连改前的 guide 里也不存在,从来无法满足。
must_not_contain的取舍已写在 PR 正文:只把registerMetadataType/pageSchemaFactory(纯 API 用法)列为反模式,不把MetadataManagerPage/MetadataDetailPage列进去 —— 一个正确答案可能顺口说「那个已删」,会造成假红;牙由正向断言补足(旧指南生成的答案同时丢 must_contain 并命中反模式,两条独立失败)。越界发现两单,均未认领:#3730(同一 guide 其余三处表格的路径漂移,未打
finding)、#3731(buildObjectDetailPageSchema零调用者,已打finding)。均不在本单授权文件面的处置清单内,本 PR 一行未改。无 changeset(
skills/无 package.json、根 package 私有无files、对任何包产物零 delta,与 #3656 同判据)。未碰apps/console源码 /ROADMAP.md/content/docs/releases/。PR 保持 draft,未 undraft 未 merge。
Generated by Claude Code
Generated by Claude Code
验收:PR #3729 ACCEPT(会话
session_01GTRjn8xBqp75dk7kFupVRt,PM 循环)。交付内容
skills/objectui/guides/console-development.md对齐真实代码:页面树 =pages/system/真实 6 页(补入原 guide 漏掉的 Profile/AuditLog/ApprovalsInbox/AiPendingActions 四页,AuditLogPage 按实测注明是手写 REST fetch 不经 ObjectView);12 个退休名收敛进「Retired names」纠错锚(每名恰 1 次、锚外 0),逐条给判词 + 活体替代物真实路径。- evals:eval 1/2 断言全部换成可解析的真实符号(registerMetadataResource/listColumns/createFields/ComponentRegistry/SchemaRenderer 等);移除从来无法满足的
registerWidgets断言(该名连改前 guide 里都不存在);eval 3 实测四符号今日仍真,如实未动。MetadataManagerPage/MetadataDetailPage 刻意不进 must_not_contain 的取舍(防"正确答案顺口提及已删名"假红)已在 PR 正文写明,牙由正向断言双路补足。
PM 复核(git 实物,REST 限流窗口内执行):文件面精确(仅 skills/ 两文件,零源码 delta);退休名抽查 6 名计数逐条为 1;页面树与 origin/main
git ls-tree相等;5 个 must_contain token 全部解析到真实代码;逆向验证 23 项 FAIL 逐条吻合预测。挂账:PR #3728(permissions 腿)落 main 后,删除 guide 中 "not yet on
main" 半句(guide 已给读者自查指令,过渡期无害)。dev 自立 #3730(同 guide 其他章节 13 符号指错目录)/ #3731(buildObjectDetailPageSchema 零调用者三选一)跟踪同源漂移。
Generated by Claude Code
越界发现,记录于 #3704(改写
ROADMAP.md:857 / :871 两条 PermissionManagementPage 记录)期间 —— 全仓 grepPermissionManagementPage时,除 ROADMAP 两处外唯一的命中落在skills/里。按纪律只报不改,单独立单,未认领。不打
finding:与 #3712 那种「读者可能被误导」的纯台账漂移不同,skills/下的 guide 是本仓 agent 写 console 代码时的直接输入。照它写的人会去 import 五个不存在的组件。严重度留给分诊裁,但不按观察类归档。基线:
origin/main@36bf20235。事实
一、目录树里 7 个
pages/system/页面,5 个今天不存在skills/objectui/guides/console-development.md:52-63的目录树逐条实测(find apps/console/src -name '<页面名>.tsx'):SystemHubPage.tsxMetadataManagerPage.tsxMetadataDetailPage.tsxAppManagementPage.tsxUserManagementPage.tsxRoleManagementPage.tsxPermissionManagementPage.tsxpages/system/现存 6 个页面,guide 一个都没提到其中四个:ProfilePage/AuditLogPage/ApprovalsInboxPage/AiPendingActionsPage。PermissionManagementPage.tsx的删除有据可查:commitcccdf84d(Slim apps/console for third-party customisation)删掉了它,26 行。UserManagementPage/RoleManagementPage对应的 URL 今天是重定向(AppContent.tsx:203-205,PR #3673)。二、整节「How MetadataManagerPage works」教的是一个不存在的组件
:92-100一整节以MetadataManagerPage为主语讲注册表驱动的五步渲染流程,:280给出把它挂到metadata/:metadataType的路由示例(JSX,此处不引原文以免正文消毒器吃掉尖括号)。实测:MetadataManagerPage在apps/console/src/下零文件、零引用;MetadataRedirect(AppContent.tsx:188);config/metadataTypeRegistry.ts在apps/console/src/下也不存在(该目录下与之最接近的是services/MetadataService.ts)。其中
:88处的listComponent?: React.ComponentType< MetadataListComponentProps >扩展点亦随之无处落地。复核方式
影响面
与 ROADMAP 漂移不同,这里的消费者是 agent。
skills/objectui/evals/console-development.json:7的expected_output也把MetadataManagerPage写进了期望答案,即这条漂移已经被固化进评测基线 —— 照 guide 生成的代码会被 eval 判为「对」。修法方向(留给分诊,不预判)
至少三种取舍,不在本单裁定:
apps/console/src/pages/system/现状重写(需同步evals/console-development.json);apps/console的内部结构 —— commitcccdf84d之后 console 已被瘦身成参考装配,第三方走console-starter模板。方向 2 与 3 会决定要不要保留这些名字,故不宜由实现座位替维护者选。
关联
ROADMAP.md,本单管skills/。cccdf84d—— 造成本文失效的两次落地(四条 URL 改重定向;console 瘦身删页)。已就关键词(
console-development.md、MetadataManagerPage、skills guide)搜过本仓开放 issue,无同源单。Generated by Claude Code