Path: none | NOT MEASURED — 交付物是复现 | 复现后立即重定级
Filed by the domain:cli execution PM seat (#6024, session session_01QCdUBjM47SxioST9z5Zwdf) out of the #18431 patch round (PR #18962), where it arrived as review flag D of the at-tier contract review of record (5747199582) and was confirmed independently by that round's dev. ⛔ Filed bare: finding only; domain:*, type and priority are triage's.
Dedupe words: multi-package top-level docs · resolveArtifactPackageOrder bodies only · /metadata/doc · option-B docs reader.
⚠️ NOT MEASURED — the first act on this card is to reproduce it
Nobody has booted anything. Neither the at-tier reviewer nor the dev ran this; both read it statically and both said so. ⛔ Do not treat the reading below as established behaviour — if it does not reproduce, that is a finding worth writing down too.
The shape (static reading, taken twice independently on the merged tree)
A multi-package artifact's TOP-LEVEL-only docs — the flat src/docs/ that #18431's ruling keeps at the top level, judged by stack.manifest.namespace — appear to register nowhere at boot.
resolveArtifactPackageOrder (packages/core/src/artifact-packages.ts) returns [artifact] only when packages is undefined/null. With packages present it returns resolvePluginOrder(nodes).map((node) => node.manifest) — the package bodies only, ⛔ never the enclosing artifact.
- Nothing in
packages/runtime/src/app-plugin.ts registers collections.docs. Its only docs mention is the APP_CATEGORY_KEYS presence list, which merely decides whether the plugin degrades to a no-op.
⇒ if both readings hold, the top-level docs of a multi-package artifact are collected at build time and then served by nobody.
Instrument
Boot the e2e multi fixture, GET /metadata/doc, and expect BOTH:
pkgdocs_index — a top-level doc (the one at risk)
ord_playbook — a package doc (the control: if this is absent too, the instrument is wrong, ⛔ not the code)
Why it matters even though it is pre-existing
⛔ Not introduced by PR #18962 — that PR adds the per-package path and leaves this one exactly as it found it. But it lands on the acceptance fixture: hotcrm keeps a flat src/docs/ today, so the clause-5 acceptance for #18431 runs straight into it.
⭐ Note for whoever writes the fix: the option-B reader ledger excluded docs as "filesystem input" (packages/runtime/src/option-b-reader-probe.ts, around line 78), which is why this was never pinned and why a census of readers would not have surfaced it.
Generated by Claude Code
Path: none | NOT MEASURED — 交付物是复现 | 复现后立即重定级
Filed by the
domain:cliexecution PM seat (#6024, sessionsession_01QCdUBjM47SxioST9z5Zwdf) out of the #18431 patch round (PR #18962), where it arrived as review flag D of the at-tier contract review of record (5747199582) and was confirmed independently by that round's dev. ⛔ Filed bare:findingonly;domain:*, type and priority are triage's.Dedupe words:
multi-package top-level docs·resolveArtifactPackageOrder bodies only·/metadata/doc·option-B docs reader.Nobody has booted anything. Neither the at-tier reviewer nor the dev ran this; both read it statically and both said so. ⛔ Do not treat the reading below as established behaviour — if it does not reproduce, that is a finding worth writing down too.
The shape (static reading, taken twice independently on the merged tree)
A multi-package artifact's TOP-LEVEL-only docs — the flat
src/docs/that #18431's ruling keeps at the top level, judged bystack.manifest.namespace— appear to register nowhere at boot.resolveArtifactPackageOrder(packages/core/src/artifact-packages.ts) returns[artifact]only whenpackagesis undefined/null. Withpackagespresent it returnsresolvePluginOrder(nodes).map((node) => node.manifest)— the package bodies only, ⛔ never the enclosing artifact.packages/runtime/src/app-plugin.tsregisterscollections.docs. Its onlydocsmention is theAPP_CATEGORY_KEYSpresence list, which merely decides whether the plugin degrades to a no-op.⇒ if both readings hold, the top-level docs of a multi-package artifact are collected at build time and then served by nobody.
Instrument
Boot the e2e multi fixture,
GET /metadata/doc, and expect BOTH:pkgdocs_index— a top-level doc (the one at risk)ord_playbook— a package doc (the control: if this is absent too, the instrument is wrong, ⛔ not the code)Why it matters even though it is pre-existing
⛔ Not introduced by PR #18962 — that PR adds the per-package path and leaves this one exactly as it found it. But it lands on the acceptance fixture: hotcrm keeps a flat
src/docs/today, so the clause-5 acceptance for #18431 runs straight into it.⭐ Note for whoever writes the fix: the option-B reader ledger excluded
docsas "filesystem input" (packages/runtime/src/option-b-reader-probe.ts, around line 78), which is why this was never pinned and why a census of readers would not have surfaced it.Generated by Claude Code