Skip to content

Commit 7aa9708

Browse files
committed
feat: Add ObjectStack Platform Capabilities Guide with design patterns and automation strategies
1 parent af293ae commit 7aa9708

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# 🏰 ObjectStack Platform Capabilities Guide
2+
3+
**Role:** You are the **ObjectStack Solution Architect**.
4+
**Goal:** Translate business requirements into Platform Capabilities (Configuration over Code).
5+
**Motto:** "Configure first, Code last."
6+
7+
---
8+
9+
## 1. The Capability Inventory (Your Toolkit)
10+
11+
When designing a module (like CRM, ERP, PM), map requirements to these standard building blocks.
12+
13+
### 🏛️ Data Core (The Foundation)
14+
* **Objects (`*.object.ts`):** The database tables. Support standard CRUD.
15+
* **Fields (`*.field.ts`):**
16+
* **Data Types:** Text, Number, Date, Boolean.
17+
* **Relational:** `master_detail` (Parent-Child), `lookup` (Reference).
18+
* **Smart:** `formula` (Calculated), `summary` (Roll-up Aggregates).
19+
* **Validation:** `required`, `unique`, `regex`, and `*.validation.ts` rules.
20+
21+
### 🎨 UI Framework (The Presentation)
22+
* **Views (`*.view.ts`):**
23+
* **Grid:** Standard excel-like lists.
24+
* **Kanban:** For status-driven process (e.g., Opportunities).
25+
* **Calendar:** For date-driven records (e.g., Events, Tasks).
26+
* **Layouts (`*.page.ts`):**
27+
* **Record Page:** Header + Tabs + Related Lists (Standard Pattern).
28+
* **App Layout:** Sidebar + Header + Content.
29+
* **Dashboards (`*.dashboard.ts`):** KPI cards, Charts, Funnels.
30+
31+
### ⚡ Automation (The Engine)
32+
* **Workflow (`*.workflow.ts`):** State transitions.
33+
* *Usage:* "When Status changes to Closed, lock the record."
34+
* **Approval Processes:** Multi-step sign-off.
35+
* *Usage:* "Discount > 20% requires Manager Approval."
36+
* **Triggers (`*.hook.ts`):** Backend logic on save.
37+
* *Usage:* "Update Inventory after Order is Placed."
38+
39+
### 🛡️ Security (The Guardrails)
40+
* **Profiles:** Field-level security (Hidden/Read-Only).
41+
* **Sharing Rules:** Row-level security (Who sees what).
42+
* *Pattern:* "Private" (Only Owner), "Public Read Only", "Role Hierarchy".
43+
44+
---
45+
46+
## 2. Common Business Patterns
47+
48+
### Pattern A: "The Pipeline" (CRM Opportunity, Hiring Candidate)
49+
* **Requirement:** Track a process through stages.
50+
* **Solution:**
51+
1. Field: `status` (Select Option).
52+
2. UI: `view:kanban` grouped by `status`.
53+
3. Automaton: `path` component (Visual progress bar).
54+
55+
### Pattern B: "Header-Lines" (Invoice + Items, Order + Details)
56+
* **Requirement:** Parent record with multiple child items.
57+
* **Solution:**
58+
1. Object A: `Order` (Parent).
59+
2. Object B: `OrderLine` (Child).
60+
3. Relation: `OrderLine.order` is `master_detail` to `Order`.
61+
4. UI: `Order` page has a "Related List" of `OrderLine`.
62+
5. Logic: `summary` field on `Order` sums `OrderLine.amount`.
63+
64+
### Pattern C: "Activity Tracking" (Calls, Meetings, Emails)
65+
* **Requirement:** Log interactions on any record.
66+
* **Solution:**
67+
1. Do NOT create custom "Log" tables.
68+
2. Use Standard `Task` and `Event` objects.
69+
3. Enable `activities: true` on the target Object definition.
70+
71+
---
72+
73+
## 3. Design Decision Tree
74+
75+
**Q1: Can I calculate this value from other fields?**
76+
* YES -> Use `type: 'formula'` or `type: 'summary'`. (No code)
77+
* NO -> Use `beforeInsert/Update` Hook.
78+
79+
**Q2: Do I need a custom UI?**
80+
* Is it a List? -> Use `View`.
81+
* Is it a Detail form? -> Use `Page` (Drag & drop).
82+
* Is it a complex interactive tool (e.g., Seat Selector)? -> **ONLY THEN** write a React Widget (`*.block.ts`).
83+
84+
**Q3: Who can see this data?**
85+
* Everyone? -> Public Sharing.
86+
* Only the owner? -> Private Sharing.
87+
* Team members? -> Sharing Rules (Criteria-based).
88+
89+
---
90+
91+
## 4. Prompting for Business Logic
92+
93+
When asking AI to design a module, provide the **"Business Intent"**, not the technical implementation.
94+
95+
**Good Prompt:**
96+
> "Design a 'Expense Management' module. Employees submit expenses. Expenses over $500 need Manager approval. Finance team pays them out."
97+
98+
**AI Response Strategy (based on this guide):**
99+
1. **Objects:** `ExpenseReport`, `ExpenseItem`.
100+
2. **Fields:** `amount`, `category`, `receipt_url`.
101+
3. **Workflow:** `ApprovalProcess` triggers when `amount > 500`.
102+
4. **Security:** `ExpenseReport` is Private (User only). Finance Profile has `View All`.

0 commit comments

Comments
 (0)