acek-skills 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +268 -0
- package/bin/cli.js +300 -0
- package/package.json +33 -0
- package/skills/sf-admin/SKILL.md +245 -0
- package/skills/sf-ba/SKILL.md +297 -0
- package/skills/sf-data-migration/SKILL.md +374 -0
- package/skills/sf-dev/SKILL.md +328 -0
- package/skills/sf-devops/SKILL.md +372 -0
- package/skills/sf-ideation/SKILL.md +132 -0
- package/skills/sf-security-review/SKILL.md +320 -0
- package/skills/sf-testing/SKILL.md +361 -0
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sf-devops
|
|
3
|
+
description: >
|
|
4
|
+
Use this skill for Salesforce DevOps tasks: code review, generating deployment manifests
|
|
5
|
+
(package.xml), running dry-run validations, deploying from sandbox to production, writing
|
|
6
|
+
Change Requests (CR), managing Git workflow, and creating deploy documentation. Trigger when
|
|
7
|
+
the user mentions deployment, deploy to production, package.xml, manifest, code review, PR review,
|
|
8
|
+
dry-run, quick deploy, Change Request, deploy doc, git push, or anything related to the
|
|
9
|
+
sandbox-to-production pipeline. Also use for SF CLI deployment commands and GitHub workflow
|
|
10
|
+
steps. Target org alias for production: {{PROD_ORG_ALIAS}}.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Salesforce DevOps Skill
|
|
14
|
+
|
|
15
|
+
## Environment Context
|
|
16
|
+
- API Version: **61.0**
|
|
17
|
+
- Branching: `main → staging → develop → feature/*`
|
|
18
|
+
- Production org alias: **`{{PROD_ORG_ALIAS}}`**
|
|
19
|
+
- Sandbox/dev org alias: **`{{DEV_ORG_ALIAS}}`**
|
|
20
|
+
- Tooling: **SF CLI** (`sf` commands)
|
|
21
|
+
- CI/CD: GitHub (static analysis: PMD + ESLint before every PR)
|
|
22
|
+
- Org type: Single org (1 sandbox + 1 production)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Deployment Workflow — Standard Order
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
1. Code Review
|
|
30
|
+
2. Generate scoped manifest (package-deploy-<feature>.xml)
|
|
31
|
+
3. Dry-run validation
|
|
32
|
+
4. Create Change Request (CR)
|
|
33
|
+
5. Actual deploy
|
|
34
|
+
6. Push to GitHub + update CR with Deploy ID
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Never skip steps. Never deploy to `{{PROD_ORG_ALIAS}}` without a CR.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Code Review
|
|
42
|
+
|
|
43
|
+
### Apex Review Checklist
|
|
44
|
+
- [ ] No SOQL inside loops (governor limit violation)
|
|
45
|
+
- [ ] No DML inside loops
|
|
46
|
+
- [ ] Test coverage ≥ 85% (check with: `sf apex run test ...`)
|
|
47
|
+
- [ ] All public methods have ApexDoc (`@description`, `@param`, `@return`)
|
|
48
|
+
- [ ] No hardcoded IDs, org-specific values, or credentials
|
|
49
|
+
- [ ] `with sharing` declared on all classes
|
|
50
|
+
- [ ] CRUD check uses `Schema.getGlobalDescribe()` (not compile-time SObject reference)
|
|
51
|
+
- [ ] All `@AuraEnabled` methods wrapped in try-catch → `AuraHandledException`
|
|
52
|
+
- [ ] Helper methods throw `CalloutException` (not `AuraHandledException`)
|
|
53
|
+
|
|
54
|
+
### LWC Review Checklist
|
|
55
|
+
- [ ] Component folder: camelCase (not PascalCase)
|
|
56
|
+
- [ ] No `@wire` adapter inside a loop
|
|
57
|
+
- [ ] All public `@api` properties have JSDoc
|
|
58
|
+
- [ ] CSS includes `:host` brand token block (see Developer skill)
|
|
59
|
+
- [ ] CSS uses `var(--brand)`, `var(--r-*)`, `var(--t)` — no hardcoded hex colors
|
|
60
|
+
- [ ] Version badge present in HTML + CSS
|
|
61
|
+
|
|
62
|
+
### Git / General Checklist
|
|
63
|
+
- [ ] No `Co-Authored-By` trailers in commit messages
|
|
64
|
+
- [ ] No Salesforce Deploy IDs, Record IDs, API keys, or session tokens in commits
|
|
65
|
+
- [ ] Commit message: lowercase type prefix + imperative sentence (`feat:`, `fix:`, `refactor:`, `docs:`, `chore:`)
|
|
66
|
+
- [ ] No unnecessary `package.xml` changes — use scoped manifest only
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Manifest Generation
|
|
71
|
+
|
|
72
|
+
### Rule: Always use scoped manifests
|
|
73
|
+
- **Never** deploy with `manifest/package.xml` (global) unless explicitly instructed
|
|
74
|
+
- Create a new file: `manifest/package-deploy-<feature>.xml` for each deployment
|
|
75
|
+
- Include only components relevant to the feature being deployed
|
|
76
|
+
|
|
77
|
+
### package.xml Template
|
|
78
|
+
```xml
|
|
79
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
80
|
+
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
|
|
81
|
+
|
|
82
|
+
<!-- Apex Classes -->
|
|
83
|
+
<types>
|
|
84
|
+
<members>MyApexClass</members>
|
|
85
|
+
<members>MyApexClassTest</members>
|
|
86
|
+
<name>ApexClass</name>
|
|
87
|
+
</types>
|
|
88
|
+
|
|
89
|
+
<!-- Apex Triggers -->
|
|
90
|
+
<types>
|
|
91
|
+
<members>MyTrigger</members>
|
|
92
|
+
<name>ApexTrigger</name>
|
|
93
|
+
</types>
|
|
94
|
+
|
|
95
|
+
<!-- LWC -->
|
|
96
|
+
<types>
|
|
97
|
+
<members>myComponent</members>
|
|
98
|
+
<name>LightningComponentBundle</name>
|
|
99
|
+
</types>
|
|
100
|
+
|
|
101
|
+
<!-- Custom Objects -->
|
|
102
|
+
<types>
|
|
103
|
+
<members>Project__c</members>
|
|
104
|
+
<name>CustomObject</name>
|
|
105
|
+
</types>
|
|
106
|
+
|
|
107
|
+
<!-- Custom Fields -->
|
|
108
|
+
<types>
|
|
109
|
+
<members>Project__c.ProjectStatus__c</members>
|
|
110
|
+
<name>CustomField</name>
|
|
111
|
+
</types>
|
|
112
|
+
|
|
113
|
+
<!-- Flows -->
|
|
114
|
+
<types>
|
|
115
|
+
<members>Create_Project_Record</members>
|
|
116
|
+
<name>Flow</name>
|
|
117
|
+
</types>
|
|
118
|
+
|
|
119
|
+
<!-- Permission Sets -->
|
|
120
|
+
<types>
|
|
121
|
+
<members>Project_Manager_Access</members>
|
|
122
|
+
<name>PermissionSet</name>
|
|
123
|
+
</types>
|
|
124
|
+
|
|
125
|
+
<version>61.0</version>
|
|
126
|
+
</Package>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Common Metadata Type Names (quick reference)
|
|
130
|
+
| Artifact | Metadata Type Name |
|
|
131
|
+
|---|---|
|
|
132
|
+
| Apex Class | `ApexClass` |
|
|
133
|
+
| Apex Trigger | `ApexTrigger` |
|
|
134
|
+
| LWC | `LightningComponentBundle` |
|
|
135
|
+
| Aura Component | `AuraDefinitionBundle` |
|
|
136
|
+
| Custom Object | `CustomObject` |
|
|
137
|
+
| Custom Field | `CustomField` |
|
|
138
|
+
| Permission Set | `PermissionSet` |
|
|
139
|
+
| Profile | `Profile` |
|
|
140
|
+
| Flow | `Flow` |
|
|
141
|
+
| Validation Rule | `ValidationRule` |
|
|
142
|
+
| Page Layout | `Layout` |
|
|
143
|
+
| Custom Tab | `CustomTab` |
|
|
144
|
+
| Custom App | `CustomApplication` |
|
|
145
|
+
| Static Resource | `StaticResource` |
|
|
146
|
+
| Named Credential | `NamedCredential` |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Deployment Commands
|
|
151
|
+
|
|
152
|
+
### Dry-Run (always first)
|
|
153
|
+
```bash
|
|
154
|
+
sf project deploy start \
|
|
155
|
+
--dry-run \
|
|
156
|
+
--manifest manifest/package-deploy-<feature>.xml \
|
|
157
|
+
--test-level RunSpecifiedTests \
|
|
158
|
+
--tests MyApexClassTest \
|
|
159
|
+
--target-org {{PROD_ORG_ALIAS}}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
- Review dry-run output carefully before proceeding
|
|
163
|
+
- If test failures: fix before actual deploy — never bypass
|
|
164
|
+
|
|
165
|
+
### Actual Deploy
|
|
166
|
+
```bash
|
|
167
|
+
sf project deploy start \
|
|
168
|
+
--manifest manifest/package-deploy-<feature>.xml \
|
|
169
|
+
--test-level RunSpecifiedTests \
|
|
170
|
+
--tests MyApexClassTest \
|
|
171
|
+
--target-org {{PROD_ORG_ALIAS}}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
- Same command, without `--dry-run`
|
|
175
|
+
- **Record the Deploy ID** from the output — required for CR and deploy doc
|
|
176
|
+
|
|
177
|
+
### Quick Deploy (72-hour window only)
|
|
178
|
+
```bash
|
|
179
|
+
sf project deploy quick \
|
|
180
|
+
--job-id <ValidationJobId> \
|
|
181
|
+
--target-org {{PROD_ORG_ALIAS}}
|
|
182
|
+
```
|
|
183
|
+
- Only valid within 72 hours of successful validation
|
|
184
|
+
- Use the Job ID from the dry-run validation, not from a previous deploy
|
|
185
|
+
|
|
186
|
+
### Check Deployment Status
|
|
187
|
+
```bash
|
|
188
|
+
sf project deploy report --job-id <DeployId> --target-org {{PROD_ORG_ALIAS}}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Retrieve Metadata (before deploying admin changes)
|
|
192
|
+
```bash
|
|
193
|
+
sf project retrieve start \
|
|
194
|
+
--manifest manifest/package-deploy-<feature>.xml \
|
|
195
|
+
--target-org {{DEV_ORG_ALIAS}}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Change Request (CR)
|
|
201
|
+
|
|
202
|
+
### When: Required before EVERY production deploy
|
|
203
|
+
File: `instructions/change-request/YYYYMMDD-<feature>-cr.md`
|
|
204
|
+
Language: **English**
|
|
205
|
+
|
|
206
|
+
### CR Template
|
|
207
|
+
```markdown
|
|
208
|
+
# Change Request: [Feature Name]
|
|
209
|
+
|
|
210
|
+
**Date:** YYYY-MM-DD
|
|
211
|
+
**Feature:** [short feature name]
|
|
212
|
+
**Deploy Manifest:** `manifest/package-deploy-<feature>.xml`
|
|
213
|
+
**Deploy ID:** [filled after successful deploy]
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Purpose
|
|
218
|
+
[1 sentence: what this change does]
|
|
219
|
+
|
|
220
|
+
## Change Tasks
|
|
221
|
+
- [Component name] — [what was changed and why]
|
|
222
|
+
- [Component name] — [what was changed and why]
|
|
223
|
+
|
|
224
|
+
## Impact
|
|
225
|
+
[1 paragraph or bullet points: what changes for users and the system after this deploy]
|
|
226
|
+
|
|
227
|
+
## Rollback
|
|
228
|
+
If the deployment causes issues, perform the following:
|
|
229
|
+
|
|
230
|
+
1. [Step 1 — e.g. Deactivate the new Flow]
|
|
231
|
+
2. [Step 2 — e.g. Redeploy previous version of Apex class from `main` branch]
|
|
232
|
+
3. [Step 3 — e.g. Notify affected users]
|
|
233
|
+
|
|
234
|
+
Rollback timeline estimate: [X minutes/hours]
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## Deploy Documentation
|
|
240
|
+
|
|
241
|
+
File: `instructions/deploy-doc/YYYYMMDD-<feature>-deploy.md`
|
|
242
|
+
|
|
243
|
+
```markdown
|
|
244
|
+
# Deploy Doc: [Feature Name]
|
|
245
|
+
|
|
246
|
+
**Date:** YYYY-MM-DD
|
|
247
|
+
**Manifest:** `manifest/package-deploy-<feature>.xml`
|
|
248
|
+
**Target Org:** {{PROD_ORG_ALIAS}}
|
|
249
|
+
**Test Classes:** [list all test classes included]
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Pre-Deploy Checklist
|
|
254
|
+
- [ ] Dry-run completed successfully
|
|
255
|
+
- [ ] All specified tests passed (≥85% coverage)
|
|
256
|
+
- [ ] CR created at `instructions/change-request/`
|
|
257
|
+
- [ ] Code review approved on GitHub PR
|
|
258
|
+
|
|
259
|
+
## Deploy Steps
|
|
260
|
+
1. Run dry-run → confirm success
|
|
261
|
+
2. Create CR
|
|
262
|
+
3. Run actual deploy
|
|
263
|
+
4. Verify in production (spot-check key components)
|
|
264
|
+
5. Update CR with Deploy ID
|
|
265
|
+
6. Push to GitHub + merge PR
|
|
266
|
+
|
|
267
|
+
## Post-Deploy Verification
|
|
268
|
+
- [ ] [Specific thing to verify in production, e.g. "Open projectCard LWC on a Project record — confirm version badge displays"]
|
|
269
|
+
- [ ] [Another verification step]
|
|
270
|
+
|
|
271
|
+
## Result
|
|
272
|
+
**Deploy ID:** [filled after deploy]
|
|
273
|
+
**Status:** Success / Partial / Failed
|
|
274
|
+
**Notes:** [any issues encountered]
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
## Order of Work (full cycle)
|
|
280
|
+
|
|
281
|
+
```
|
|
282
|
+
1. Create deploy doc → instructions/deploy-doc/YYYYMMDD-<feature>-deploy.md
|
|
283
|
+
2. Create CR → instructions/change-request/YYYYMMDD-<feature>-cr.md
|
|
284
|
+
3. Run /deploy pipeline:
|
|
285
|
+
a. Dry-run
|
|
286
|
+
b. Confirm output
|
|
287
|
+
c. Actual deploy
|
|
288
|
+
d. Record Deploy ID
|
|
289
|
+
4. Update deploy doc + CR with Deploy ID
|
|
290
|
+
5. Push to GitHub
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
## Git Workflow
|
|
296
|
+
|
|
297
|
+
### Commit Message Format
|
|
298
|
+
```
|
|
299
|
+
<type>: <short imperative description>
|
|
300
|
+
|
|
301
|
+
Types: feat | fix | refactor | docs | chore
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Examples:
|
|
305
|
+
```
|
|
306
|
+
feat: add project status field to Project__c
|
|
307
|
+
fix: handle null owner in ProjectHelper getProjects
|
|
308
|
+
refactor: extract SOQL to helper method in OpportunityService
|
|
309
|
+
docs: update deploy doc for case-ai-assistant v2.1.0
|
|
310
|
+
chore: update package-deploy manifest for summer release
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
### Rules
|
|
314
|
+
- ❌ Never add `Co-Authored-By` trailers
|
|
315
|
+
- ❌ Never commit Deploy IDs, Record IDs, API keys, session tokens
|
|
316
|
+
- ❌ Never commit org credentials or Named Credential values
|
|
317
|
+
- ✅ One logical change per commit
|
|
318
|
+
- ✅ Reference the feature/ticket in commit body if relevant (not subject line)
|
|
319
|
+
|
|
320
|
+
### Commands Reference
|
|
321
|
+
```bash
|
|
322
|
+
# Stage and commit
|
|
323
|
+
git add .
|
|
324
|
+
git commit -m "feat: add projectCard lwc with brand token support"
|
|
325
|
+
|
|
326
|
+
# Push to feature branch
|
|
327
|
+
git push origin feature/my-feature
|
|
328
|
+
|
|
329
|
+
# Open PR (GitHub CLI)
|
|
330
|
+
gh pr create --base develop --title "feat: project card component" --body "..."
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Static Analysis (pre-PR)
|
|
336
|
+
|
|
337
|
+
### PMD (Apex)
|
|
338
|
+
```bash
|
|
339
|
+
# Run PMD — must pass before PR
|
|
340
|
+
pmd check --dir force-app --ruleset rulesets/apex/ruleset.xml --format text
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
Key rules enforced:
|
|
344
|
+
- `AvoidSoqlInLoops`
|
|
345
|
+
- `AvoidDmlStatementsInLoops`
|
|
346
|
+
- `ApexUnitTestClassShouldHaveAsserts`
|
|
347
|
+
- `NcssMethodCount` (method complexity)
|
|
348
|
+
|
|
349
|
+
### ESLint (LWC)
|
|
350
|
+
```bash
|
|
351
|
+
# Run ESLint
|
|
352
|
+
npx eslint force-app/main/default/lwc --ext .js
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Both must pass cleanly before a PR can be merged.
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## Quick Reference — Org Aliases
|
|
360
|
+
|
|
361
|
+
| Environment | Alias |
|
|
362
|
+
|---|---|
|
|
363
|
+
| Production | `{{PROD_ORG_ALIAS}}` |
|
|
364
|
+
| Sandbox | `{{DEV_ORG_ALIAS}}` |
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
# List all configured orgs
|
|
368
|
+
sf org list
|
|
369
|
+
|
|
370
|
+
# Check current default org
|
|
371
|
+
sf config get target-org
|
|
372
|
+
```
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sf-ideation
|
|
3
|
+
description: >
|
|
4
|
+
Use this skill when the user wants to brainstorm, explore, or generate enhancement ideas for
|
|
5
|
+
existing Salesforce components/features OR new feature concepts. Trigger when the user says
|
|
6
|
+
"ide enhancement", "ada ide baru?", "kira-kira bisa ditambah apa?", "what can we improve?",
|
|
7
|
+
"fitur baru", "improve this component", "enhancement ideas", or asks for creative suggestions
|
|
8
|
+
about LWC components, Apex classes, flows, or the overall platform. Also use when reviewing
|
|
9
|
+
a component and proactively spotting improvement opportunities.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Salesforce Ideation Skill
|
|
13
|
+
|
|
14
|
+
## Purpose
|
|
15
|
+
Generate actionable, prioritized enhancement ideas — either for existing components/features
|
|
16
|
+
or as proposals for new features — grounded in the project's current codebase and tech stack.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Existing Components in This Project
|
|
21
|
+
|
|
22
|
+
### LWC
|
|
23
|
+
| Component | Purpose |
|
|
24
|
+
|---|---|
|
|
25
|
+
| `caseAIAssistant` | AI chat interface for Case — async response via Platform Event |
|
|
26
|
+
| `projectAssetImport` | Form/modal UI for importing project assets |
|
|
27
|
+
| `activityHistoryEnhanced` | Enhanced activity timeline display |
|
|
28
|
+
|
|
29
|
+
### Apex
|
|
30
|
+
| Class | Purpose |
|
|
31
|
+
|---|---|
|
|
32
|
+
| `CaseAssistantController` | Backend for caseAIAssistant — handles AI callout, TXT attach |
|
|
33
|
+
| `AIAssistantWrapper` | Wrapper/model for AI response data |
|
|
34
|
+
| `AssetImportController` | Backend for projectAssetImport |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Ideation Framework
|
|
39
|
+
|
|
40
|
+
### For Existing Components — 5 Lenses
|
|
41
|
+
When exploring enhancements for an existing component, evaluate through these lenses:
|
|
42
|
+
|
|
43
|
+
1. **UX / Interaction** — Is the user flow intuitive? Can loading states, empty states, or error
|
|
44
|
+
messages be improved? Can interactions be made faster or more delightful?
|
|
45
|
+
|
|
46
|
+
2. **Performance** — Are there unnecessary re-renders, redundant wire calls, or heavy SOQL that
|
|
47
|
+
could be optimized? Can we lazy-load data or paginate?
|
|
48
|
+
|
|
49
|
+
3. **Functionality Gap** — What can users NOT do today that they logically would want to? What
|
|
50
|
+
edge cases are unhandled?
|
|
51
|
+
|
|
52
|
+
4. **Integration Opportunity** — Can this component connect to another object, system, or
|
|
53
|
+
Salesforce feature (e.g. Einstein, Flows, Platform Events) to add value?
|
|
54
|
+
|
|
55
|
+
5. **Observability / Admin Control** — Can admins configure behavior without code? Are there
|
|
56
|
+
useful metrics or logs missing?
|
|
57
|
+
|
|
58
|
+
### For New Features — Discovery Questions
|
|
59
|
+
Before generating ideas for net-new features, consider:
|
|
60
|
+
- What pain point does this solve for the end user?
|
|
61
|
+
- Does Salesforce have a native feature that partially solves this? (avoid reinventing)
|
|
62
|
+
- Which existing components/objects would this touch?
|
|
63
|
+
- Is this declarative (Flow/admin) or requires custom code?
|
|
64
|
+
- What is the rough build complexity: S / M / L / XL?
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Output Format
|
|
69
|
+
|
|
70
|
+
### Enhancement Ideas Output
|
|
71
|
+
Always structure ideas in a prioritized table:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
## Enhancement Ideas — [Component/Feature Name]
|
|
75
|
+
|
|
76
|
+
### Quick Wins (Low effort, High impact)
|
|
77
|
+
| # | Idea | Why | Effort | Impact |
|
|
78
|
+
|---|------|-----|--------|--------|
|
|
79
|
+
| 1 | ... | ... | S | High |
|
|
80
|
+
|
|
81
|
+
### Medium Term
|
|
82
|
+
| # | Idea | Why | Effort | Impact |
|
|
83
|
+
|---|------|-----|--------|--------|
|
|
84
|
+
|
|
85
|
+
### Big Bets (High effort, transformative)
|
|
86
|
+
| # | Idea | Why | Effort | Impact |
|
|
87
|
+
|---|------|-----|--------|--------|
|
|
88
|
+
|
|
89
|
+
### Effort Scale: S=hours, M=days, L=week+, XL=sprint+
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
After the table, pick the **top 1-2 ideas** and write a short paragraph on how to implement them
|
|
93
|
+
using the project's stack (LWC + Apex + SF CLI).
|
|
94
|
+
|
|
95
|
+
### New Feature Proposal Output
|
|
96
|
+
```
|
|
97
|
+
## Feature Proposal — [Feature Name]
|
|
98
|
+
|
|
99
|
+
**Problem:** one sentence
|
|
100
|
+
**Solution:** one sentence
|
|
101
|
+
**Target Users:** who benefits
|
|
102
|
+
**Key Capabilities:** 3-5 bullet points
|
|
103
|
+
**Tech Approach:** LWC / Apex / Flow / Platform Event / etc.
|
|
104
|
+
**Complexity:** S / M / L / XL
|
|
105
|
+
**Dependencies:** existing components or objects it touches
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Ideation Rules
|
|
111
|
+
|
|
112
|
+
- **Always ground ideas in the existing stack** — LWC + Apex + Salesforce declarative tools.
|
|
113
|
+
Do not suggest third-party tools unless explicitly asked.
|
|
114
|
+
- **Reference existing components** where relevant — e.g. "extend `caseAIAssistant` to also..."
|
|
115
|
+
- **Follow project standards** — any LWC idea must include `:host` brand tokens + version badge.
|
|
116
|
+
Any Apex idea must follow bulkification + try-catch + CRUD check patterns.
|
|
117
|
+
- **No gold-plating** — ideas should solve a real need, not add complexity for its own sake.
|
|
118
|
+
- **Be opinionated** — don't just list options, recommend the best one and explain why.
|
|
119
|
+
- **Think Salesforce seasons** — flag if an idea aligns with an upcoming Salesforce release
|
|
120
|
+
feature (Summer '26, Winter '27) that could reduce build effort.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Quick Triggers
|
|
125
|
+
|
|
126
|
+
| User says... | What to do |
|
|
127
|
+
|---|---|
|
|
128
|
+
| "ide untuk [component]" | Run all 5 lenses on that component, output enhancement table |
|
|
129
|
+
| "fitur baru apa yang bisa kita buat?" | Ask 2-3 discovery questions, then propose 3 feature ideas |
|
|
130
|
+
| "kira-kira [component] bisa ditambah apa?" | Focus on Functionality Gap + UX lenses first |
|
|
131
|
+
| "prioritas enhancement mana yang paling worth it?" | Rank by impact/effort ratio, recommend top 1 |
|
|
132
|
+
| "ada yang bisa diimprove dari sisi performance?" | Focus on Performance lens across all components |
|