Skip to content

Commit f7ec151

Browse files
committed
Merge remote-tracking branch 'origin/main' into claude/issue-23135-v18-version-pr-red
2 parents 24dc0b3 + d206d08 commit f7ec151

12 files changed

Lines changed: 908 additions & 263 deletions

‎.claude/skills/pm-dispatch/SKILL.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,8 +181,8 @@ PM 的工作是循环:选卡 → 认领 → 派发 → 收集 → 复核 → 报
181181

182182
- **ACCEPT 之后的路径分叉**:翻 ready / 挂 auto-merge / 入队前先取一次 PR 的路径面。
183183
- 路径面用 `get_files` 取,⛔ 不看报告自述;动手之前先分,不是事后对照。
184-
- governed 面统一定义:`docs/adr/**` + `.claude/**`(全量)+ `skills/**` + `docs/NORTH-STAR.md`。
185-
- governed 面同含 `AGENTS.md` + `CLAUDE.md`;`GOVERNED_REPOS` 各仓同治理待遇,执行席恒随落地仓车道。
184+
- governed 面统一定义:`docs/adr/**`+`.claude/**`(全量)+`skills/**`+`docs/NORTH-STAR.md`+`.github/workflows/**`。
185+
- governed 面同含 `AGENTS.md`+`CLAUDE.md`;`GOVERNED_REPOS` 同治理、行可限仓,执行席恒随落地仓车道。
186186
- 路径面命中 Tier H ⇒ ACCEPT 换终局四件套,混合 diff ⛔ 不按比例判;要拆让 dev 单独开 PR。
187187
- 改动 >3000 行(含生成物)同换终局四件套,⛔ 无 Tier S 例外;读数 = PR additions+deletions。
188188
- ① 复核结论照常写在 issue 上;技能面 hunk 须由契约复审档的席复核,档外席先交 skills 席。

‎AGENTS.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -263,9 +263,9 @@ localStorage / auth gotchas.
263263
14. **⛔ A governed surface lands only the way its tier allows — Tier H by the maintainer's hand or by an authorized
264264
approval, Tier S by the owning seat on a contract-tier review of record; before that record no AI seat merges,
265265
queues, or arms auto-merge on a PR whose diff touches one.** The governed surfaces are `docs/adr/**`,
266-
`docs/NORTH-STAR.md`, `.claude/**` (agents, hooks and settings — not only skills), `skills/**`, `AGENTS.md` and
267-
`CLAUDE.md` — the file you are reading is one — and a mixed diff is governed whole on a single path hit. The
268-
register is the `GOVERNED_SURFACES` table in `scripts/pm/check-governed-merges.mjs`, each row carrying its tier;
266+
`docs/NORTH-STAR.md`, `.claude/**` (agents, hooks and settings — not only skills), `skills/**`, `AGENTS.md`,
267+
`CLAUDE.md` — this file is one — and `.github/workflows/**`; a mixed diff is governed whole on one path hit.
268+
The register is the `GOVERNED_SURFACES` table in `scripts/pm/check-governed-merges.mjs`, each row carrying its tier;
269269
adding a surface is an edit *there*, never here, and `pnpm check:pm-governed-prose` reds per-PR when this
270270
paragraph names fewer surfaces than the register — or more. When it reds, name the surface here. A fork PR
271271
(head repo ≠ base repo) is a proposal, never a delivery, whatever its paths: no AI seat readies, queues, arms
@@ -276,7 +276,7 @@ localStorage / auth gotchas.
276276
auto-merge, ⛔ never flip it out of draft to make any of those possible — judged on the PR's **file list**, not
277277
its description; a **mixed diff is not a proportion question**, one path hit is enough; to land the rest, split off
278278
the governed files. **The landing is tiered by the register; one Tier H path makes the whole PR Tier H.** **Tier H**
279-
(人合: `docs/adr/**`, `docs/NORTH-STAR.md`, `skills/**`, `AGENTS.md`, `CLAUDE.md`): those four lift only for an
279+
(人合: every register row except `.claude/**`): those four lift only for an
280280
authorized APPROVED review by an account in `GOVERNED_APPROVERS`, on ANY commit and not dismissed; that word is
281281
spent once per PR — the OWNING seat then lands it, later pushes included; the director seat requests the word as
282282
ONE batch of at most five rows, and the click stays the maintainer's. **Tier S** (席内达档复核落地: all of

‎docs/qa/platform-checklist/areas/access-security.json‎

Lines changed: 14 additions & 11 deletions
Large diffs are not rendered by default.

‎docs/qa/platform-checklist/areas/api-backend.json‎

Lines changed: 21 additions & 13 deletions
Large diffs are not rendered by default.

‎docs/qa/platform-checklist/areas/identity-auth.json‎

Lines changed: 16 additions & 13 deletions
Large diffs are not rendered by default.

‎docs/qa/platform-checklist/areas/platform-core.json‎

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2307,10 +2307,10 @@
23072307
},
23082308
{
23092309
"id": "platform-core.home-admin-cluster-links",
2310-
"title": "Shell-hard-coded Administration targets + the retired System hub: every Administration target URL resolves to a real page (no RouteNotFound, no RecordDetailView for an object named 'system'), /apps/:app/system lands on the settings hub in one hop and every hub entry resolves, the five legacy system/* URLs redirect to their canonical object routes, and a member's shell offers no Administration entry",
2310+
"title": "Shell-hard-coded Administration targets + the retired System hub: every Administration target URL resolves to a real page (no RouteNotFound, no RecordDetailView for an object named 'system'), /apps/:app/system lands on the settings hub in one hop and every hub entry resolves, the five legacy system/* URLs redirect (users and organizations to their object routes, roles, positions and permissions to the Setup metadata catalog), and a member's shell offers no Administration entry",
23112311
"since": "v16",
23122312
"status": "active",
2313-
"revision": 2,
2313+
"revision": 3,
23142314
"priority": "P1",
23152315
"surface": "browser",
23162316
"personas": [
@@ -2331,7 +2331,7 @@
23312331
"as admin, enumerate the Administration target list from source — UnifiedSidebar's adminItems: sys-settings → /apps/setup/system, sys-apps → …/system/apps, sys-marketplace → …/system/marketplace, sys-objects → /apps/setup/metadata/object, sys-datasources → /apps/setup/metadata/datasource, sys-users → …/system/users, sys-orgs → …/system/organizations, sys-roles → …/system/roles, sys-config → …/system/settings (9 entries; the two metadata-admin ones deliberately point at the canonical /metadata/:type routes, #3660/#3739). No sidebar renders this list at the pin (see knownGaps), so it is walked as URLs",
23322332
"navigate to EVERY target URL directly: each lands on a real page — screenshot first, then assert no RouteNotFound, no 'No Apps Configured' empty state, and above all no RecordDetailView rendering for an object literally named 'system' (the historical failure: short words fell through to the record-id tail — objectui#3655's two measured landings)",
23332333
"open /apps/setup/system: it redirects in ONE hop to /apps/setup/system/settings (SystemLandingRedirect — the SystemHubPage card wall, its cards and count badges, was retired by objectui#3743, carried out in objectui#10507), where SettingsHub lists the settings manifests the server returns for this user; click every hub entry the same way. The ungated bare system/ai-approvals route is ai.console-ai-surface-gating's subject, not this walk's",
2334-
"legacy redirects: navigate directly to /apps/setup/system/users, …/organizations, …/roles, …/positions, …/permissions — each redirects to its canonical object route per the #3655 map (users→sys_user, organizations→sys_organization list, roles→sys_position [ADR-0090 D3 rename — 'Roles' and 'Positions' are one surface], positions→sys_position, permissions→sys_permission_set) and the landing page renders",
2334+
"legacy redirects: navigate directly to /apps/setup/system/users, …/organizations, …/roles, …/positions, …/permissions. users and organizations redirect to their object routes per the #3655 map (users→sys_user, organizations→sys_organization list). roles, positions and permissions redirect to the Setup metadata catalog in its environment scope (SystemCatalogRedirect, objectui#7611; positions and permission sets are registry items, ADR-0131 D3): roles→/apps/setup/metadata/position?scope=environment [ADR-0090 D3 rename — 'Roles' and 'Positions' are one surface], positions→the same, permissions→/apps/setup/metadata/permission?scope=environment [#3655 decision A: the permission-set surface]. Each landing page renders",
23352335
"as the plain member, open /home and one app: the shell offers no Administration entry anywhere — /home has no sidebar (HomeLayout omits it) and the top-bar Help menu offers documentation only; the server-side half (Setup app refusal for the member) is platform-core.builtin-apps-nav-render clause 2/3 — cross-reference, do not re-score here"
23362336
],
23372337
"acceptance": [
@@ -2348,9 +2348,9 @@
23482348
"evidence": "the redirect trace + the per-entry verdict table"
23492349
},
23502350
{
2351-
"clause": "the five legacy system/* URLs redirect per the #3655 map and land on rendering pages — bookmarks and the URLs the retired hub once emitted keep working; roles lands on sys_position (the ADR-0090 rename, one surface under two vocabularies), permissions on sys_permission_set (decision A: rules-and-assignments is layer 2)",
2351+
"clause": "the five legacy system/* URLs redirect and land on rendering pages — bookmarks and the URLs the retired hub once emitted keep working. users and organizations land on their object routes (sys_user, the sys_organization list — the #3655 map). roles and positions land on the Setup metadata catalog at /apps/setup/metadata/position?scope=environment (the ADR-0090 rename, one surface under two vocabularies), and permissions at /apps/setup/metadata/permission?scope=environment (decision A: rules-and-assignments is layer 2) — the catalog, not the sys_position / sys_permission_set object routes, since objectui#7611 (ADR-0131 D3: positions and permission sets are registry items)",
23522352
"oracle": "network",
2353-
"verify": "the navigation trace per legacy URL shows the redirect target object route; the landing renders",
2353+
"verify": "the navigation trace per legacy URL shows the redirect target: the object route for users and organizations, the …/metadata/TYPE?scope=environment catalog route for roles, positions and permissions; the landing renders. A roles, positions or permissions URL landing on the sys_position / sys_permission_set object route is the pre-objectui#7611 shape, so suspect the stale-console-bundle trap before scoring it",
23542354
"evidence": "the five redirect traces + landings"
23552355
},
23562356
{
@@ -2369,7 +2369,7 @@
23692369
"source": [
23702370
"objectui packages/app-shell/src/layout/UnifiedSidebar.tsx (homeNavigation: base Home + Documentation, and the isWorkspaceAdmin-gated adminItems cluster with the #3590 /system targeting note and the #3660/#3739 canonical-metadata-route notes — the target list this item walks; mounted only by ConsoleLayout, which sets the app context) + packages/app-shell/src/console/home/HomeLayout.tsx (/home deliberately omits the sidebar)",
23712371
"objectui apps/console/src/AppContent.tsx (SystemLandingRedirect: the bare …/system landing forwards to …/system/settings; SystemHubPage — its cards and count badges — retired by objectui#3743, carried out in objectui#10507) + apps/console/src/pages/settings/SettingsHub.tsx (the registry-driven hub: the settings manifests the server returns for this user)",
2372-
"objectui apps/console/src/AppContent.tsx (SystemObjectRedirect — the five legacy URLs, the #3655 object map with the ADR-0090 roles→sys_position note, and the measured pre-fix landings) + the exported systemRoutes fragment",
2372+
"objectui apps/console/src/AppContent.tsx (SystemObjectRedirect — users and organizations, the #3655 object map and the measured pre-fix landings; SystemCatalogRedirect — roles, positions and permissions onto the Setup catalog in its environment scope since objectui#7611, with the ADR-0090 roles→position note and decision A's permissions→permission note) + packages/app-shell/src/views/metadata-admin/catalog-scope.ts (ENVIRONMENT_SCOPE_QUERY, scope=environment) + the exported systemRoutes fragment",
23732373
"objectui apps/console/src/__tests__/AppContent.systemHubRoutes.test.tsx + AppContent.legacyRedirects.test.tsx (the objectui-side pins — see knownGaps)",
23742374
"platform-core.builtin-apps-nav-render (owns the server-side Setup refusal for the member — this item owns the shell-hard-coded home cluster, which that item does not touch)"
23752375
],
@@ -2385,6 +2385,12 @@
23852385
"date": "2026-10-05",
23862386
"change": "whole-item revision for three clauses #21782 failed (VF4). Clause 2 (stale): objectui 9eea12a2b (objectui#10507, fixing objectui#3743) deleted SystemHubPage before 17.6.0, and /apps/:app/system is now SystemLandingRedirect, one hop to /system/settings, so the clause walks the settings hub (verifier's wording). Clause 4 (retired): the hub count badges went with SystemHubPage, so the clause is dropped, with its badge-honesty negative and the two badge steps. Clause 5 (assertion defect): no /home sidebar exists for any persona, because HomeLayout omits it and UnifiedSidebar is mounted only by ConsoleLayout, which forces the app context; the member clause now asserts that no Administration entry is offered anywhere (verifier's wording). The verifier also found that the Administration cluster itself has no stable rendering surface, so steps 1-3 and 7, clause 1 and negatives 1 and 4 (now 1 and 3) walk the 9 adminItems as target URLs. A knownGap records why. The member persona now reads invite + sign-up (stock invite_only). Re-read at objectui 9dfaca6543: unchanged from the run's 2e818d0b51ec",
23872387
"ref": "#21797"
2388+
},
2389+
{
2390+
"revision": 3,
2391+
"date": "2026-10-13",
2392+
"change": "clause 3, acceptance[2] (the legacy-redirect clause) re-pointed, with step 4, the title and the AppContent source note (stale spec, #23104 A2). Since objectui#7611, roles, positions and permissions no longer land on the sys_position / sys_permission_set object routes: SystemCatalogRedirect forwards them to the Setup metadata catalog in its environment scope (roles and positions to /apps/setup/metadata/position?scope=environment, permissions to /apps/setup/metadata/permission?scope=environment), because ADR-0131 D3 makes positions and permission sets registry items. users and organizations still use SystemObjectRedirect and are unchanged. Read at objectui 1fb1ced36243 (this repo's .objectui-sha): AppContent.tsx's systemRoutes, and the 'the catalog entries reach the Setup catalog (objectui#7611)' block of AppContent.systemHubRoutes.test.tsx. Both files are byte-identical at 7578323a544e",
2393+
"ref": "#23121"
23882394
}
23892395
]
23902396
},

0 commit comments

Comments
 (0)