Repository navigation
.github/tasks/new-package.md still prescribes the retired packages/ scaffold — #1518's class, the site that card did not reach #1819
Description
Activity
- addeddocumentationImprovements or additions to documentationImprovements or additions to documentationneeds-user-decisionNeeds the maintainer's call before work proceedsNeeds the maintainer's call before work proceeds
on Sep 9, 2026 zhuangjianguo commented
on Sep 9, 2026 CollaboratorMore actionsFirst-touch grading →
needs-user-decision+documentation, typeTaskrepo:hotcrmseat · sessionsession_017FzrA1G4U89KEMf7wfLmqq· R58, 2026-09-09T12:4xZ. Single-lane repo ⇒ this seat self-serves grading. Filed by #1812's dev with measurements and controls; ⭐ filed correctly — unlabelled, unassigned, no self-grading, and it says plainly that the route is a real choice rather than picking one.⛔ Why this seat does not rule it
Its sibling #1818 is rulable and went straight to
pm:queue, because there the direction is already settled by #852 and byAGENTS.md's own wording. This one is different in kind: the whole file is the defect, so "fix it" means choosing what the file is for — and option C turns on a fact only the maintainer holds (whether a HotCRM extension is ever meant to ship as a separate package). ⛔ That is product shape, not a documentation edit, and the seat does not answer it.⚠️ Note what is not in question: nobody is defending the current text. It prescribespackages/[NAME]/package.json, atsconfig.jsonextending base, and updatingbase.tsconfig.json— and none of those paths exists. The only question is what replaces it.四棱
① 实际业务需求 — ⛔ Zero measured pull for the current text. No
packages/directory, nopnpm-workspace.yaml, and nobase.tsconfig.json(the file its own step 4 says to update); control readings confirm the probes are live (roottsconfig.jsonpresent, 18 metadata dirs undersrc/). The twopackages/strings inobjectstack.config.tscite the platform's tree, not this repo's. Its sibling.github/tasks/new-feature.mdalready covers the real scaffolding case and targetssrc/objects/,src/views/,src/pages/. ⇒ this brief serves a unit that does not exist here.② 项目长远合理性 —
AGENTS.md§Project Architecture already rules the layout by name — "HotCRM is a single ObjectStack marketplace app, not a multi-package monorepo" — and closes its directory map with "The retired multi-package (packages/*) direction is archived underdocs/archive/. Do NOT createpackages/paths." ⇒ A aligns the brief with the ruled architecture; C would reopen a direction the repo deliberately archived. B leaves two briefs covering one job, which is the drift shape this repo keeps paying for.③ 防 AI 写元数据犯错 — ⭐ This is the axis that decides it. The file is a copy-paste prompt: an agent handed it produces a tree
objectstack.config.tsregisters nowhere anddefineStack()therefore never validates —AGENTS.md's own words, "A file missing from its barrel is validated by nothing … silently ignored." Same harm shape as thereference_todefect this round just closed: a success receipt for work the runtime never took. A brief that cannot be followed correctly is worse than no brief, and this one fails silently rather than loudly.④ 创业阶段不扩散需求 — C is capability expansion with zero pull: it would keep a multi-package direction alive on the possibility that something might one day ship that way. Under 创业阶段聚焦原则 that is the default-refuse case, and 「短期不考虑渐进」 says ⛔ no staged retention either. A is the non-proliferating option.
⇒ 四棱同向 A. ⛔ But it is not 代裁'd, because C's premise is a fact about product intent that no measurement here can reach, and this seat's tier cannot 代裁 in any case.
维护者速读
事情 ——
.github/tasks/new-package.md整个文件是一份复制粘贴的提示词,教 agent 去packages/下建一个新包:建package.json、建tsconfig.json、改base.tsconfig.json。这三样东西一个都不存在。 这个仓没有
packages/目录,没有pnpm-workspace.yaml,也没有base.tsconfig.json。而AGENTS.md自己白纸黑字写着「HotCRM 是单个 ObjectStack 市场应用,不是多包 monorepo」「⛔ 不要创建packages/路径」。为什么值得你看一眼 —— 危害和本轮刚清掉的
reference_to是同一种:agent 照做,产出一棵没有任何东西会去校验的目录树,而且不报错。AGENTS.md原话是「不在 barrel 里的文件不被任何东西校验……被静默忽略」。一份没法照着做对的说明书,比没有说明书更糟,因为它是静默失败而不是响亮失败。风险与代价(含回滚) —— 极低。改的是给 agent 看的说明书,不含任何
src/代码,产品行为零变化。任一选项都是一次 commit,revert 即可。三条路 ——
- A. 删掉这个文件。 这个仓不存在「新建一个包」这件事,所以这份说明书没有正确形态。.github/instructions/architect.md prescribes a
packages/layout hotcrm does not have — in its standing rules and its mandatory Output Format, not only in its worked example #1518 处理同类问题时就是删掉而不是重写。 - B. 改写成「在
src/下新建一种元数据」。 但隔壁的.github/tasks/new-feature.md已经覆盖了这件事,等于两份说明书干一件事。 - C. 保留,用于「HotCRM 扩展作为独立包发布」的场景 —— 如果确实存在这种场景。
席位意见 —— 四棱同向 A。⛔ 但本席不自裁:C 成不成立取决于你对产品形态的意图(HotCRM 的扩展将来会不会以独立包发布),这是测量够不到的事实。今天没有任何证据支持 C——没有包、没有工作区、没有那个 base 配置。
你要做的 —— 答一个字母:A / B / C。
⛔ 不催。
Generated by Claude Code
- A. 删掉这个文件。 这个仓不存在「新建一个包」这件事,所以这份说明书没有正确形态。.github/instructions/architect.md prescribes a
Ruling: batch #142 item 3 · letter A · maintainer 「同意」 2026-09-16T11:41Z
Director seat, summon #24,
session_01Wj1HUjzyeiBQ8atRf1ZhaL. Presented as batch #142 item 3 with recommendation A; the maintainer's reply, verbatim: 「同意」. This also answers option C's premise, which only the maintainer could: HotCRM extensions are not planned to ship as separate packages — nothing on the tree supports it and 「同意」 on A declines to keep the direction alive.Ruling — A: delete
.github/tasks/new-package.md- The brief prescribes a unit this repository does not have (no
packages/, nopnpm-workspace.yaml, nobase.tsconfig.json; controls live), againstAGENTS.md:97's own words 「⛔ Do NOT createpackages/<x>/src/paths」. A brief that cannot be followed correctly is a silent trap — an agent handed it produces a treeobjectstack.config.tsregisters nowhere anddefineStack()never validates. - B (repurpose) is refused:
.github/tasks/new-feature.mdalready covers scaffolding a metadata kind undersrc/. C is refused as above. - Same class as .github/instructions/architect.md prescribes a
packages/layout hotcrm does not have — in its standing rules and its mandatory Output Format, not only in its worked example #1518 (which removed this prescription fromarchitect.md) — this is the site that card did not reach.
Execution (repo:hotcrm seat)
- Card:
needs-user-decision→pm:queue. Normal PR —.github/tasks/**is not in this repo's governed set (AGENTS.md:280listsAGENTS.md,CLAUDE.md,.claude/**,.github/instructions/**). - Same PR: fix the references that name the file —
docs/architecture/module-split-plan.md:548and any sibling (docs/requirements/README.md:150namesnew-feature.md, not this file — leave it). The two.changeset/*mentions are historical descriptions; ⛔ do not edit them. - Acceptance:
git ls-files .github/tasks/new-package.md→ 0;git grep -n new-package.mdon the tree → 0 outsideCHANGELOG.md/.changeset/.
Four-facet reading: the 2026-09-09 first-touch block on this thread (four facets same-direction A) is adopted as presented.
Generated by Claude Code
- The brief prescribes a unit this repository does not have (no
- addedpm:queueReady for the PM dispatch loopReady for the PM dispatch loopand removedneeds-user-decisionNeeds the maintainer's call before work proceedsNeeds the maintainer's call before work proceeds
on Sep 16, 2026 objectstack-fleet commented
on Sep 25, 2026 ContributorMore actionsrepo:hotcrmseat,session_01X8U3asekbiC7yWoEPWR4Dg· stock re-triage group 5 (maintainer-confirmed ten-card group; maintainer reply verbatim: 「同意」) · 2026-09-25T02:43ZClosed completed — delivered by #1910; the delete ruling's premise was falsified
Ruling #142 item 3 (A, delete) rested on "the brief prescribes
packages/and has no correct form". By the time of that ruling,mainalready carried #1910's rewrite of.github/tasks/new-package.md(36b27dd8, 2026-09-14) to the ADR-0130src/<pkg>/procedure, later extended by #1941 and #1947. It is the only written home of new-package steps 4–6, andgit grep new-package.md= 0, so the reference-fix leg has no object. The maintainer confirmed closing it as delivered (group 5).
Generated by Claude Code
- removedpm:queueReady for the PM dispatch loopReady for the PM dispatch loop
on Sep 25, 2026
Found while measuring the whole
.github/tasks/directory for #1812, and outside that card's declared file surface, so it is filed rather than fixed there.The citation
.github/tasks/new-package.mdis, in its entirety, a copy-paste prompt telling an agent to scaffold a layout this repo retired:Why it is a defect and not a stale-looking file
AGENTS.mdrules the layout question by name, in §Project Architecture:and closes the directory map with:
Measured at
9b6ac5f, each claim paired with a control that must hit:packages/directory in this repopnpm-workspace.yamlbase.tsconfig.json, the file step 4 says to updatetsconfig.jsonat the rootsrc/The two
packages/strings left inobjectstack.config.tsare comments citing the platform's own source tree (packages/cli/src/commands/serve.ts), not a path in this repo.The harm is the one this repo has already paid for twice: an agent handed this prompt produces a tree that
objectstack.config.tsregisters nowhere and thatdefineStack()therefore never validates — "A file missing from its barrel is validated by nothing … silently ignored" (AGENTS.md). It also contradicts the sibling brief it sits beside:.github/tasks/new-feature.mdcorrectly targetssrc/objects/,src/views/,src/pages/.CI already knows:
.github/workflows/code-quality.ymlcarries the comment "Replaces three inline greps that scannedpackages/— a directory this repo does not have".Same class as an already-ruled card
#1518 removed exactly this prescription from
.github/instructions/architect.md, whose standing rules now read "HotCRM is a single ObjectStack app, not a multi-package workspace … never plan a workspace layout"..github/tasks/new-package.mdis the site that card did not reach — the same pattern as #1686 → #1812.What a fix decides —⚠️ not narrow, and it is a real choice
Unlike #1812, this is not a one-sentence mirror, because the whole file is the defect. The options are genuinely different and none of them is obviously right:
packages/layout hotcrm does not have — in its standing rules and its mandatory Output Format, not only in its worked example #1518 having deleted the layout rather than rewritten it.src/" — but.github/tasks/new-feature.mdalready covers that ground, so this mostly duplicates a brief that works.⇒ Whoever takes this should get the route ruled before writing, rather than picking one. ⛔ Do not fold it into an unrelated PR.
Refs: #1812 (the card that surfaced it) · #1518 (the ruled sibling) · #1686
Generated by Claude Code