Repository navigation
feat(spec): register the ask agent's draft_record tool, with its chatbot label in all ten packs (cloud#3383) - #28131
Conversation
…bot label in all ten packs (cloud#3383) The cloud ask agent gains `draft_record`, a signal tool that turns chat content into a validated new-record draft the user saves (cloud#3383; the console card is #28104). PLATFORM_TOOLS_BY_PACKAGE['service-ai-studio'] now lists it, so a skill naming it resolves under ADR-0109 reference integrity and cloud's conformance test can hold the package to the list. Each locale pack gets its `chatbot.tool.draft_record` step label. Claude-Session: https://claude.ai/code/session_01QUs3BsR8MWGg1ZtMACGG7y Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift Check2 anchor(s) derived from 1 changed package(s); no hand-written page names any of them, so this run has nothing to list — not a clean bill of health. This check sees only pages that NAME a derived anchor: one that documents this change in prose, or enumerates it in an authoring dialect, names none and stays invisible to it on every run. What this run could not see
Coarse fallback — 168 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 5912bf70cdc51ea3fe9c45939a626113eafe1b5d && git checkout 5912bf70cdc51ea3fe9c45939a626113eafe1b5d
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 47a8b588207621724d85647576c4277979c253f7 87e98178acf4f8fa1037a53f438a3891d50f07c5 && git checkout -B drift-repro 47a8b588207621724d85647576c4277979c253f7 && git merge --no-ff 87e98178acf4f8fa1037a53f438a3891d50f07c5
node scripts/docs-audit/affected-docs.mjs --json 47a8b588207621724d85647576c4277979c253f7 |
|
triage#1 · os-sales · session_01L6bhgV4fMGJHSdSdx3u9mK Contract-review-claim: Generated by Claude Code |
|
triage#1 · os-sales · session_01L6bhgV4fMGJHSdSdx3u9mK Contract reviewServed-tier: Source of the work: the PR names no in-repo card. Its source is the cloud repository's issue cloud#3383, which is not readable from this seat; the ruling it carries is judged from the PR body and from in-repo issue #28104 (the console card for the same hand-off, which restates the ruling and the "AI drafts, a person saves, never auto-submitted" scope). The rest of the diff outside ① Derived judgments
② Semver level
Clause-②: yes (widening) ③ Boundary flags
④ Design judgment
Findings: no must-fix. No should-fix. The design holds against the code it cites and the gates that enforce it. Implemented-by: VERDICT: PASS Generated by Claude Code |
|
Seat ACCEPT · The contract review at Landing: ready + auto-merge. Next, a cloud pin round past this commit turns cloud#3385's conformance test green. Generated by Claude Code |
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 41079610849 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 分类: 失败的 job(日志抽取,best effort):
跨 PR 相同签名(24h,按失败测试文件聚合):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 41103654117 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 分类: 失败的 job(日志抽取,best effort):
跨 PR 相同签名(24h,按失败测试文件聚合):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 41105950802 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 分类: 失败的 job(日志抽取,best effort):
跨 PR 相同签名(24h,按失败测试文件聚合):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
Requested by Sam · project thread
Registry half of objectstack-ai/cloud#3383 (no objectstack card of its own; the same shape as #27011 for cloud#3335). Related: #28104 (the console card that renders this tool's result).
What changes
PLATFORM_TOOLS_BY_PACKAGE['service-ai-studio']listsdraft_record, in alphabetical order. The group's TSDoc now also names the ask agent's hand-off signals.chatbot.tool.draft_recordin all ten locale packs ("Draft the new record", 「起草新记录」, …).packages/lint: a pin that a skill namingdraft_recordresolves, with a control name that does not.@objectstack/specminor (widening),@object-ui/i18npatch.Why
cloud#3383 (Sam's ruling on #27286, 2026-10-30: 「同意开发 S1 粘贴即建单」, then 「其实不只是粘贴吧,任何内容我都可以让他创建和更新记录是吗?通过聊天的方式。」) adds
draft_recordto cloudservice-ai-studio: the ask agent drafts a new record from chat content, validated server-side, and the user saves it. Cloud's conformance test holds the package to exactly this registry, so the cloud PR stays red on that one test until this lands and a cloud pin round passes it. The chatbot label-parity tests read the same registry, so the label lands with the name.Verification
packages/lintvalidate-ai-tool-references.test.ts: 22 passed.ui:pnpm exec vitest run packages/plugin-chatbot/src/__tests__/toolLabels-locale-parity-7481.test.ts packages/plugin-chatbot/src/__tests__/toolLabels-sentences-12724.test.ts packages/i18n/: 94 files, 1,431 passed.pnpm --filter @objectstack/spec build && pnpm --filter @objectstack/spec check:generated: all 14 generated artifacts up to date.Clause-②: yes (widening)
Metadata-protocol: added
Human Minimum
packages/specholds no runtime logic.pnpm lintwas not run locally (CI runs it).main, one pull request.packages/spectouched: its generated artifacts are regenerated and committed.content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.Generated by Claude Code