Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions .changeset/version-and-count-claims-match-the-stack.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
'hotcrm': patch
---

Say the right protocol version and the right inventory, and gate both (#728, #729).

Two claims the app makes about itself had drifted away from the app, and both
shipped to customers — one in the published artifact, one on the first page a
prospective customer reads.

`objectstack.config.ts` still declared `engines.protocol: "^17.0.0-rc.1"` while
`objectstack.manifest.json` and the `@objectstack/*` dependency line had moved to
`17.0.0-rc.3`. Two platform upgrades in a row bumped the manifest and the
dependencies and left the config behind, so `dist/objectstack.json` advertised a
protocol version the app was not authored against. Only the major participates in
the runtime handshake, so nothing ever failed — which is why it survived two
releases. It now reads `^17.0.0-rc.3`.

The README banner, the "What you get" table, the fork guide and the docs overview
still advertised 15 objects / 23 flows / 4 dashboards. The real inventory is 17
objects, 24 flows, 5 dashboards and 9 datasets: `crm_event` and
`crm_event_attendee` joined the object table, and the getting-started page — which
was a generation further behind at 13 objects — now agrees with the rest. All
three locale faces of every affected page are updated. The `whats-new` page keeps
its numbers: it is a dated record of what v1.0 shipped, not a claim about today.

Both classes are now gated in `test/docs-drift.test.ts` rather than left to a
comment. One rule holds `objectstack.config.ts`, `objectstack.manifest.json` and
the installed `@objectstack/spec` to a single protocol version. The other compares
every count a doc states — English and Chinese spellings alike — against the
counts read from the registered stack at test time, never against a number written
down in the test, so the guard cannot go stale the way the docs did.
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# HotCRM

> **The reference app for AI-written enterprise software.** A complete CRM —
> 15 objects, 23 flows, 4 dashboards, 6 AI skills, 4 languages — is roughly
> 17 objects, 24 flows, 5 dashboards, 6 AI skills, 4 languages — is roughly
> **170k tokens** of typed [ObjectStack](https://github.com/objectstack-ai/objectstack)
> metadata (~18,000 lines): the entire enterprise CRM fits in a single agent
> context window, so an AI can hold it whole, reason about it, and refactor it.
Expand Down Expand Up @@ -45,7 +45,7 @@ HotCRM is a complete, opinionated CRM built as the **first official application*

## ✨ What you get

**15 business objects** spanning the full Lead-to-Cash cycle:
**17 business objects** spanning the full Lead-to-Cash cycle:

| Sales | Service | Marketing | Revenue |
|---|---|---|---|
Expand All @@ -56,8 +56,10 @@ HotCRM is a complete, opinionated CRM built as the **first official application*
| `crm_opportunity_line_item` | | | |
| `crm_product` | | | |
| `crm_forecast` | | | |
| `crm_event` | | | |
| `crm_event_attendee` | | | |

Plus **6 AI skills** (a skills-only surface — HotCRM defines no agents of its own; the skills attach to the platform `ask` assistant), **4 dashboards**, **23 flows**, **13 actions**, **8 datasets**, **4 language bundles** (en, zh-CN, es-ES, ja-JP), **6 permission profiles**, **12 positions**, and **9 sharing rules**.
Plus **6 AI skills** (a skills-only surface — HotCRM defines no agents of its own; the skills attach to the platform `ask` assistant), **5 dashboards**, **24 flows**, **13 actions**, **9 datasets**, **4 language bundles** (en, zh-CN, es-ES, ja-JP), **6 permission profiles**, **12 positions**, and **9 sharing rules**.

> **Business reader?** The ObjectStack docs tour every one of these capabilities in plain business language — [What Can It Do?](https://objectstack.ai/docs/capabilities) — with HotCRM as the running example on every page.

Expand Down Expand Up @@ -124,12 +126,12 @@ See [docs: Publishing your first marketplace app](content/docs/marketplace/publi
hotcrm/
├── objectstack.config.ts # manifest + defineStack() — single source of truth
├── src/
│ ├── objects/ # *.object.ts — data model (15 objects)
│ ├── objects/ # *.object.ts — data model (17 objects)
│ ├── actions/ # *.actions.ts — server actions + AI tools (13)
│ ├── flows/ # *.flow.ts — visual flows (23): screen, record-change & scheduled
│ ├── flows/ # *.flow.ts — visual flows (24): screen, record-change & scheduled
│ ├── hooks/ # hook registry barrel
│ ├── skills/ # *.skill.ts — AI skills (6) — skills-only surface, no agents
│ ├── datasets/ # *.dataset.ts — analytics semantic layer (8)
│ ├── datasets/ # *.dataset.ts — analytics semantic layer (9)
│ ├── dashboards/, reports/ # analytics UI
│ ├── pages/, views/, apps/ # UI definitions
│ ├── profiles/, sharing/ # security
Expand Down
2 changes: 1 addition & 1 deletion content/docs/getting-started/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ If you're a developer, see [For Developers](/docs/getting-started/for-developers

The system you get on day one already includes:

- **13 business objects** (account, lead, contact, opportunity, product, quote, contract, case, campaign, and more) with industry-standard fields, picklists, and validations.
- **17 business objects** (account, lead, contact, opportunity, product, quote, contract, case, campaign, and more) with industry-standard fields, picklists, and validations.
- **A 10-role hierarchy** mapped to typical sales / service / marketing org structures.
- **Built-in automation** for lead routing, opportunity wins, contract expiration, quote expiration, campaign auto-enrollment, and SLA escalation.
- **Approval processes** for high-value discounts.
Expand Down
2 changes: 1 addition & 1 deletion content/docs/getting-started/introduction.zh-Hans.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ HotCRM 运行于 [**ObjectStack**](https://github.com/objectstack-ai/framework)

你第一天拿到的系统已经包含:

- **13 个业务对象**(客户、线索、联系人、商机、产品、报价单、合同、案例、营销活动等),具备行业标准字段、选择列表和验证。
- **17 个业务对象**(客户、线索、联系人、商机、产品、报价单、合同、案例、营销活动等),具备行业标准字段、选择列表和验证。
- **10 级角色层级**,映射到典型的销售 / 服务 / 市场营销组织结构。
- **内置自动化**,用于线索路由、商机赢单、合同到期、报价单到期、营销活动自动注册和 SLA 升级。
- **审批流程**,用于高价值折扣。
Expand Down
2 changes: 1 addition & 1 deletion content/docs/getting-started/introduction.zh-Hant.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ HotCRM 執行於 [**ObjectStack**](https://github.com/objectstack-ai/framework)

你第一天拿到的系統已經包含:

- **13 個業務物件**(客戶、線索、聯絡人、商機、產品、報價單、合約、案例、行銷活動等),具備產業標準欄位、選擇清單和驗證。
- **17 個業務物件**(客戶、線索、聯絡人、商機、產品、報價單、合約、案例、行銷活動等),具備產業標準欄位、選擇清單和驗證。
- **10 級角色層級**,映射到典型的銷售 / 服務 / 市場行銷組織結構。
- **內建自動化**,用於線索路由、商機贏單、合約到期、報價單到期、行銷活動自動註冊和 SLA 升級。
- **審批流程**,用於高價值折扣。
Expand Down
2 changes: 1 addition & 1 deletion content/docs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ This documentation is organised by **what you want to do**. Pick the section tha
| **Marketing** | Campaigns (8 types), Campaign Members (lead/contact enrollment), ROI tracking |
| **Revenue** | Products, Contracts (5 types), Discount Approvals |
| **AI** | 6 skills on the platform assistant (live data, lead qualification, case triage, email drafting, revenue forecasting, customer 360) |
| **Analytics** | 4 dashboards (CRM / Sales / Service / Executive), 10+ standard reports |
| **Analytics** | 5 dashboards (CRM / Sales / Sales Activity / Service / Executive), 10+ standard reports |
| **Security** | 6 user profiles, role hierarchy, sharing rules, multi-step approvals |

## Roles & where to start
Expand Down
2 changes: 1 addition & 1 deletion content/docs/index.zh-Hans.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ description: AI 原生的企业级 CRM——业务变化时它会自我重写。
| **市场** | 营销活动(8 种类型)、营销活动成员(线索/联系人纳入)、ROI 追踪 |
| **营收** | 产品、合同(5 种类型)、折扣审批 |
| **AI** | 平台助手上的 6 项技能(实时数据、线索资格判定、工单分流、邮件起草、营收预测、客户 360) |
| **分析** | 4 个仪表盘(CRM / 销售 / 服务 / 高管)、10+ 标准报表 |
| **分析** | 5 个仪表盘(CRM / 销售 / 销售活动 / 服务 / 高管)、10+ 标准报表 |
| **安全** | 6 种用户权限档案、角色层级、共享规则、多步审批 |

## 角色与起步路径
Expand Down
2 changes: 1 addition & 1 deletion content/docs/index.zh-Hant.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ description: AI 原生的企業級 CRM——業務變化時它會自我重寫。
| **行銷** | 行銷活動(8 種類型)、行銷活動成員(潛客/聯絡人納入)、ROI 追蹤 |
| **營收** | 產品、合約(5 種類型)、折扣審批 |
| **AI** | 平台助手上的 6 項技能(即時資料、潛客資格判定、工單分流、郵件草擬、營收預測、客戶 360) |
| **分析** | 4 個儀表板(CRM / 銷售 / 服務 / 高階主管)、10+ 標準報表 |
| **分析** | 5 個儀表板(CRM / 銷售 / 銷售活動 / 服務 / 高階主管)、10+ 標準報表 |
| **安全** | 6 種使用者權限設定檔、角色層級、共用規則、多步審批 |

## 角色與起步路徑
Expand Down
2 changes: 1 addition & 1 deletion content/docs/marketplace/fork-hotcrm.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Then update `src/translations/index.ts` to reference the new filename.

### 4. Cut what you don't need

HotCRM ships 15 objects across Sales / Service / Marketing / Revenue. Most apps need fewer:
HotCRM ships 17 objects across Sales / Service / Marketing / Revenue. Most apps need fewer:

```bash
# Example: keep only Sales-related objects
Expand Down
2 changes: 1 addition & 1 deletion content/docs/marketplace/fork-hotcrm.zh-Hans.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ mv src/translations/crm.translation.ts src/translations/acme.translation.ts

### 4. 删除你不需要的部分

HotCRM 在销售 / 服务 / 营销 / 营收领域提供了 15 个对象。大多数应用需要更少:
HotCRM 在销售 / 服务 / 营销 / 营收领域提供了 17 个对象。大多数应用需要更少:

```bash
# Example: keep only Sales-related objects
Expand Down
2 changes: 1 addition & 1 deletion content/docs/marketplace/fork-hotcrm.zh-Hant.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ mv src/translations/crm.translation.ts src/translations/acme.translation.ts

### 4. 刪除你不需要的部分

HotCRM 在銷售 / 服務 / 行銷 / 營收領域提供了 15 個物件。大多數應用程式需要更少:
HotCRM 在銷售 / 服務 / 行銷 / 營收領域提供了 17 個物件。大多數應用程式需要更少:

```bash
# Example: keep only Sales-related objects
Expand Down
7 changes: 5 additions & 2 deletions objectstack.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,11 @@ export default defineStack({
// load with a structured OS_PROTOCOL_INCOMPATIBLE diagnostic (naming the
// `objectstack migrate meta` replay) instead of failing deep in a schema
// parse. Bump together with `specVersion` on every platform upgrade
// (docs/MAINTENANCE.md §3).
engines: { protocol: '^17.0.0-rc.1' },
// (docs/MAINTENANCE.md §3) — `test/docs-drift.test.ts` now enforces that
// pairing against `objectstack.manifest.json` instead of trusting this
// comment, because two platform upgrades in a row (rc.2, then rc.3) moved
// the manifest and left this line behind (#728).
engines: { protocol: '^17.0.0-rc.3' },
},

// ─── Platform capabilities this app needs ─────────────────────────
Expand Down
Loading