Skip to content

docs: in-app docs batch 2, modules — case triage, products and price books, billing hand-off, and a Marketing Manual under Help (#2330) - #2363

Merged
objectstack-fleet[bot] merged 3 commits into
mainfrom
claude/project-thread-wo3svt
Oct 28, 2026
Merged

objectstack-fleet[bot] merged 3 commits into
mainfrom
claude/project-thread-wo3svt

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Requested by Irene · project thread
Fixes #2330

Clause-②: no
Metadata-protocol: none

维护者速读

  • 改了什么:服务、收入、营销三个模块各自的文档目录新增五个双语手册页(工单分诊、产品与价格表、计费交接、营销活动、营销活动自动化);营销模块新建「营销手册」,入口放进「帮助」分组,排在收入手册之后。
  • 为什么改:In-app docs, batch 2 (modules): case triage, billing hand-off, products and price books, and a marketing book with its Help entry #2330 应用内文档第二批(模块篇),说明 AI 分诊怎么判断、赢单何时交给计费、产品与价格表怎么用、营销活动的数字和自动化怎么运作。
  • 风险与回滚:只改文档、两本书的定义、一条导航贡献、三个语言包的入口标签和测试,不动对象、权限或流程;回滚即还原本 PR。卸掉营销模块时,营销手册和它的入口随包一起消失。
  • 先看:src/marketing/index.ts(新的 group_help 贡献和 books:)、src/revenue/books/crm-revenue-manual.book.ts(分组名从 Quotes 改为 Revenue),以及 test/docs-drift.test.ts 新增的三条规则。
  • 两分钟验证:pnpm vitest run test/docs-books.test.ts test/docs-drift.test.ts test/docs-ai-skills.test.ts test/docs-quick-tour-navigation.test.ts 全绿;以销售代表登录,打开 帮助 → 营销手册,应看到 Campaigns 分组下两篇文章,没有「未分类」。
  • 需要你做的:无,席位落地

What changes

New pages, each with a .zh.md sibling written to the zh-CN pack's labels:

Page Book › group What it covers
src/service/docs/crm_service_triage User Manual › Service (the existing crm_service_* rule) What the case-triage skill reads, the order it weighs tier, blockage, SLA time and tone, and why priority, escalation and closing stay with a person (the skill holds read tools only)
src/revenue/docs/crm_revenue_products Revenue Manual What a product carries, the two pricing refusals, how list price reaches a line (and does not follow later catalog changes), retiring instead of deleting, price books as far as #2313 phase 1
src/revenue/docs/crm_revenue_billing_handoff Revenue Manual The two moments (deal enters Closed Won, contract enters Activated), what travels with each, what never comes back, and the admin facts (queued delivery, endpoint set at deployment)
src/marketing/docs/crm_marketing_campaigns Marketing Manual (new) Campaign and member statuses and who sets each, what every number counts, what ROI includes
src/marketing/docs/crm_marketing_automation Marketing Manual (new) When Enroll Members, Add to Campaign and the nightly auto-completion run, what each does and refuses, and what is kept current on every install

Wiring:

  • src/marketing/books/crm-marketing-manual.book.ts (+ barrel), registered as books: on the marketing stack; src/marketing/index.ts contributes nav_help_marketing into group_help at priority 50, after the revenue entry, so the book and its entry leave with the module. Built exactly as the Revenue Manual is.
  • nav_help_marketing labels in src/sales/translations/{zh-CN,es-ES,ja-JP}/app.ts, beside nav_help_revenue (no module translation bundle, per Module split: each module package registers its own translations (ledger move rows R6, R7, R14, M3, M4, S3, S4) #2352).
  • .github/markdown-link-check-config.json: one anchored crm_marketing_ → src/marketing/docs/ row, after the revenue row.
  • Surface addition, accepted by the seat: src/revenue/books/crm-revenue-manual.book.ts — the one group's label Quotes → Revenue and the book description, so Products and Billing Hand-off are not filed under a group titled Quotes. Rule and include unchanged.
  • Surface addition, mechanical: content/docs/getting-started/quick-tour{,.zh-Hans,.zh-Hant}.mdx Help row gains Marketing Manual, which test/docs-quick-tour-navigation.test.ts requires once the entry exists.

No page links from the app package into a module; module pages link to app pages only (crm_sales_contracts, crm_sales_opportunities, crm_sales_leads, crm_ai_skills). None of the five draws a diagram. Platform limits left as they are: book and group titles stay English to zh-CN readers (objectstack#26819).

Tests

  • test/docs-books.test.ts: the registered books now include crm_marketing_manual, and pages come from all four packages; every page is claimed, has a .zh.md sibling, every book has exactly one Help entry.
  • test/docs-drift.test.ts, three rules: the campaign auto-completion schedule (0 2 * * * → 02:00) on the automation page; the deal stage and the contract status the two billing hand-off start conditions test, read from the compiled flows and shown as the option's label (object label in English, zh-CN pack label in Chinese).
  • test/docs-ai-skills.test.ts: case_triage holds read tools only, and the triage page names Escalate Case / Close Case by the registered actions' labels in both locales.
  • test/docs-lifecycle-diagrams.test.ts: the five pages join the "draws no state diagram" list.
  • Ablation (one-off, restored, git diff HEAD empty after): **关闭工单** → **关掉它** in the triage .zh.md, **Closed Won** → **Won** in the billing page, **02:00** → **03:00** in the automation page: 3 failed, 22 passed, each failing test the one named above.

Acceptance notes

  • PM mechanism assumptions, measured on the 18.2.0 dev server: (1) the third module contribution lands after the revenue entry, Help reads User Manual, Revenue Manual, Marketing Manual for a sales rep, and the rep still lands on Sales Home; app-navigation-audience and docs-quick-tour-navigation are green. (2) The Marketing Manual tree is one CAMPAIGNS group holding both pages, with no Uncategorized group, for the rep and for the admin.
  • Behaviour the pages state was measured, not read off comments: a product with cost above list price and a negative list price are both refused with 400; deleting a sold product answers 409 naming 7 opportunity and 3 quote line items; a campaign whose end date equals its start date is refused ("End Date must be after Start Date").
  • lead_conversion writes no crm_campaign on the opportunity it creates, so the campaigns page says the Campaign field is set by hand.
  • On this fresh dev boot the seeded admin holds crm_user and admin_full_access but not system_admin, so the Admin Manual entry was not shown to it; unrelated to this diff (the book is untouched).
  • Drift found on the product site, left for its own card (reported to the seat): content/docs/revenue/products.mdx says list price must be greater than zero and that cost above list price only warns (the hook refuses it); content/docs/marketing/campaigns.mdx says the end date may equal the start date and that converting a lead credits the campaign.

Verification

  • pnpm verify (validate, typecheck, lint, hygiene, token ratchet, build, full test) on fe3c48b: exit 0, 242 test files, 4612 passed, 1 skipped. Build: "Collecting package docs (ADR-0046)... 20 collected (8 from 3 package directories)".
  • markdown-link-check@3.13.7 with the repo config over the 10 new .md files: 0 dead links (./crm_marketing_* resolves through the new row).
  • Browser pass, en and zh-CN, as the admin and as a sales rep: all five pages render with their titles and tables, the in-body link from the automation page opens Leads, and the zh-CN sidebar reads 帮助 › 使用手册、收入手册、营销手册. Screenshots: project files issue-2330/.

🤖 Generated with Claude Code

https://claude.ai/code/session_01J8VVAnwSfkxmZ3myyT7tGe

…Manual group covers every revenue page (#2330)

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J8VVAnwSfkxmZ3myyT7tGe
…ice books, campaigns and campaign automation (#2330)

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J8VVAnwSfkxmZ3myyT7tGe
@vercel

vercel Bot commented Oct 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
hotcrm Ignored Ignored Oct 28, 2026 7:50am UTC

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation ci/cd CI plumbing and the verification pipeline metadata Declarative metadata — schema, security posture, UI surfaces labels Oct 28, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对

Verdict: ACCEPT · repo:hotcrm seat 1 · huangyiirene · session session_01J8VVAnPkgK6CWrJa6t7Fk5 · 2026-10-28T07:53Z · head fe3c48b
Implemented-by: card thread session session_01J8VVAnwSfkxmZ3myyT7tGe (report 6463662345 on #2330). Reviewed-by: the seat, against the 26-file diff and hotcrm origin/main d5f6270.

  • Shape:
    • Draft, base main, assignee huangyiirene. The body reads Fixes #2330.
    • No governed path is touched.
    • The diff stays within claim 6463060621, plus two declared additions the seat accepts:
      • the Revenue Manual's group label and description, accepted by message, with the rule and include unchanged;
      • the quick-tour Help row in en, zh-Hans and zh-Hant, which docs-quick-tour-navigation requires (batch-1 precedent).
    • git merge-tree against d5f6270 is clean.
  • Card held:
    • Five pages, each with a .zh.md sibling: crm_service_triage, crm_revenue_billing_handoff, crm_revenue_products, crm_marketing_campaigns and crm_marketing_automation.
    • Service: triage joins the User Manual's Service group by the existing include.
    • Revenue: both pages join the Revenue Manual. The billing flows stay in the app package and are described, not moved.
    • Marketing: crm_marketing_manual is registered on the marketing stack. nav_help_marketing is contributed into group_help at priority 50, after revenue, so it leaves with the module.
    • Labels: they sit in the app packs, as nav_help_revenue's do; Module split: each module package registers its own translations (ledger move rows R6, R7, R14, M3, M4, S3, S4) #2352 moves both later.
    • Link-check: one anchored crm_marketing_ row, ordered with the module rows.
  • Mechanism assumptions: both hold. The browser pass covered admin and rep in en and zh-CN.
    • The marketing entry lands last in Help, and the landings are unchanged.
    • The marketing tree claims both pages with no Uncategorized for a member.
  • Tests:
    • Three new drift rules and a triage guard.
    • Ablations went 3 of 3 red and were restored.
  • Gates:
    • pnpm verify exits 0 at fe3c48b: 242 files, 4612 passed.
    • CI on fe3c48b: 9 of 10 check runs report success, link-check included. Build and Test (22.x) is still running.
  • Out of scope:
  • Landing: non-governed. The seat flips the PR to ready and arms auto-merge in this stroke.

Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 28, 2026 07:54
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Oct 28, 2026
Merged via the queue into main with commit 6c52f22 Oct 28, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd CI plumbing and the verification pipeline documentation Improvements or additions to documentation metadata Declarative metadata — schema, security posture, UI surfaces

Projects

None yet

Development

Successfully merging this pull request may close these issues.

In-app docs, batch 2 (modules): case triage, billing hand-off, products and price books, and a marketing book with its Help entry

2 participants