scc-universal 1.1.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/.claude-plugin/plugin.json +44 -0
- package/.cursor/agents/deep-researcher.md +142 -0
- package/.cursor/agents/doc-updater.md +219 -0
- package/.cursor/agents/eval-runner.md +335 -0
- package/.cursor/agents/learning-engine.md +210 -0
- package/.cursor/agents/loop-operator.md +245 -0
- package/.cursor/agents/refactor-cleaner.md +119 -0
- package/.cursor/agents/sf-admin-agent.md +127 -0
- package/.cursor/agents/sf-agentforce-agent.md +126 -0
- package/.cursor/agents/sf-apex-agent.md +117 -0
- package/.cursor/agents/sf-architect.md +426 -0
- package/.cursor/agents/sf-aura-reviewer.md +369 -0
- package/.cursor/agents/sf-bugfix-agent.md +101 -0
- package/.cursor/agents/sf-flow-agent.md +155 -0
- package/.cursor/agents/sf-integration-agent.md +141 -0
- package/.cursor/agents/sf-lwc-agent.md +123 -0
- package/.cursor/agents/sf-review-agent.md +357 -0
- package/.cursor/agents/sf-visualforce-reviewer.md +465 -0
- package/.cursor/hooks/adapter.js +81 -0
- package/.cursor/hooks/after-file-edit.js +26 -0
- package/.cursor/hooks/after-mcp-execution.js +12 -0
- package/.cursor/hooks/after-shell-execution.js +30 -0
- package/.cursor/hooks/after-tab-file-edit.js +12 -0
- package/.cursor/hooks/before-mcp-execution.js +11 -0
- package/.cursor/hooks/before-read-file.js +13 -0
- package/.cursor/hooks/before-shell-execution.js +29 -0
- package/.cursor/hooks/before-submit-prompt.js +23 -0
- package/.cursor/hooks/pre-compact.js +7 -0
- package/.cursor/hooks/session-end.js +10 -0
- package/.cursor/hooks/session-start.js +10 -0
- package/.cursor/hooks/stop.js +18 -0
- package/.cursor/hooks/subagent-start.js +10 -0
- package/.cursor/hooks/subagent-stop.js +10 -0
- package/.cursor/hooks.json +107 -0
- package/.cursor/skills/aside/SKILL.md +115 -0
- package/.cursor/skills/checkpoint/SKILL.md +50 -0
- package/.cursor/skills/configure-scc/SKILL.md +160 -0
- package/.cursor/skills/continuous-agent-loop/SKILL.md +260 -0
- package/.cursor/skills/mcp-server-patterns/SKILL.md +142 -0
- package/.cursor/skills/model-route/SKILL.md +81 -0
- package/.cursor/skills/prompt-optimizer/SKILL.md +366 -0
- package/.cursor/skills/refactor-clean/SKILL.md +133 -0
- package/.cursor/skills/resume-session/SKILL.md +111 -0
- package/.cursor/skills/save-session/SKILL.md +183 -0
- package/.cursor/skills/search-first/SKILL.md +140 -0
- package/.cursor/skills/security-scan/SKILL.md +142 -0
- package/.cursor/skills/sessions/SKILL.md +124 -0
- package/.cursor/skills/sf-agentforce-development/SKILL.md +449 -0
- package/.cursor/skills/sf-apex-async-patterns/SKILL.md +324 -0
- package/.cursor/skills/sf-apex-best-practices/SKILL.md +421 -0
- package/.cursor/skills/sf-apex-constraints/SKILL.md +79 -0
- package/.cursor/skills/sf-apex-cursor/SKILL.md +336 -0
- package/.cursor/skills/sf-apex-enterprise-patterns/SKILL.md +344 -0
- package/.cursor/skills/sf-apex-testing/SKILL.md +407 -0
- package/.cursor/skills/sf-api-design/SKILL.md +237 -0
- package/.cursor/skills/sf-approval-processes/SKILL.md +312 -0
- package/.cursor/skills/sf-aura-development/SKILL.md +260 -0
- package/.cursor/skills/sf-build-fix/SKILL.md +120 -0
- package/.cursor/skills/sf-data-modeling/SKILL.md +274 -0
- package/.cursor/skills/sf-debugging/SKILL.md +362 -0
- package/.cursor/skills/sf-deployment/SKILL.md +291 -0
- package/.cursor/skills/sf-deployment-constraints/SKILL.md +153 -0
- package/.cursor/skills/sf-devops-ci-cd/SKILL.md +322 -0
- package/.cursor/skills/sf-docs-lookup/SKILL.md +100 -0
- package/.cursor/skills/sf-e2e-testing/SKILL.md +321 -0
- package/.cursor/skills/sf-experience-cloud/SKILL.md +248 -0
- package/.cursor/skills/sf-flow-development/SKILL.md +376 -0
- package/.cursor/skills/sf-governor-limits/SKILL.md +319 -0
- package/.cursor/skills/sf-harness-audit/SKILL.md +139 -0
- package/.cursor/skills/sf-help/SKILL.md +156 -0
- package/.cursor/skills/sf-integration/SKILL.md +479 -0
- package/.cursor/skills/sf-lwc-constraints/SKILL.md +128 -0
- package/.cursor/skills/sf-lwc-development/SKILL.md +302 -0
- package/.cursor/skills/sf-lwc-testing/SKILL.md +387 -0
- package/.cursor/skills/sf-metadata-management/SKILL.md +285 -0
- package/.cursor/skills/sf-platform-events-cdc/SKILL.md +372 -0
- package/.cursor/skills/sf-quickstart/SKILL.md +170 -0
- package/.cursor/skills/sf-security/SKILL.md +330 -0
- package/.cursor/skills/sf-security-constraints/SKILL.md +125 -0
- package/.cursor/skills/sf-soql-constraints/SKILL.md +129 -0
- package/.cursor/skills/sf-soql-optimization/SKILL.md +353 -0
- package/.cursor/skills/sf-tdd-workflow/SKILL.md +332 -0
- package/.cursor/skills/sf-testing-constraints/SKILL.md +198 -0
- package/.cursor/skills/sf-trigger-constraints/SKILL.md +88 -0
- package/.cursor/skills/sf-trigger-frameworks/SKILL.md +343 -0
- package/.cursor/skills/sf-visualforce-development/SKILL.md +259 -0
- package/.cursor/skills/strategic-compact/SKILL.md +205 -0
- package/.cursor/skills/update-docs/SKILL.md +162 -0
- package/.cursor/skills/update-platform-docs/SKILL.md +86 -0
- package/.cursor-plugin/plugin.json +26 -0
- package/LICENSE +21 -0
- package/README.md +522 -0
- package/agents/deep-researcher.md +145 -0
- package/agents/doc-updater.md +222 -0
- package/agents/eval-runner.md +340 -0
- package/agents/learning-engine.md +211 -0
- package/agents/loop-operator.md +247 -0
- package/agents/refactor-cleaner.md +122 -0
- package/agents/sf-admin-agent.md +131 -0
- package/agents/sf-agentforce-agent.md +132 -0
- package/agents/sf-apex-agent.md +124 -0
- package/agents/sf-architect.md +435 -0
- package/agents/sf-aura-reviewer.md +372 -0
- package/agents/sf-bugfix-agent.md +105 -0
- package/agents/sf-flow-agent.md +159 -0
- package/agents/sf-integration-agent.md +146 -0
- package/agents/sf-lwc-agent.md +127 -0
- package/agents/sf-review-agent.md +366 -0
- package/agents/sf-visualforce-reviewer.md +468 -0
- package/assets/logo.svg +18 -0
- package/docs/ARCHITECTURE.md +133 -0
- package/docs/authoring-guide.md +373 -0
- package/docs/hook-development.md +578 -0
- package/docs/token-optimization.md +139 -0
- package/docs/workflow-examples.md +645 -0
- package/examples/agentforce-action/README.md +227 -0
- package/examples/apex-trigger-handler/README.md +114 -0
- package/examples/devops-pipeline/README.md +325 -0
- package/examples/flow-automation/README.md +188 -0
- package/examples/integration-pattern/README.md +416 -0
- package/examples/lwc-component/README.md +180 -0
- package/examples/platform-events/README.md +492 -0
- package/examples/scratch-org-setup/README.md +138 -0
- package/examples/security-audit/README.md +244 -0
- package/examples/visualforce-migration/README.md +314 -0
- package/hooks/hooks.json +338 -0
- package/hooks/memory-persistence/README.md +73 -0
- package/manifests/install-modules.json +217 -0
- package/manifests/install-profiles.json +17 -0
- package/mcp-configs/mcp-servers.json +19 -0
- package/package.json +89 -0
- package/schemas/hooks.schema.json +123 -0
- package/schemas/install-modules.schema.json +76 -0
- package/schemas/install-profiles.schema.json +28 -0
- package/schemas/install-state.schema.json +73 -0
- package/schemas/package-manager.schema.json +18 -0
- package/schemas/plugin.schema.json +112 -0
- package/schemas/scc-install-config.schema.json +29 -0
- package/schemas/state-store.schema.json +111 -0
- package/scripts/cli/install-apply.js +170 -0
- package/scripts/cli/uninstall.js +193 -0
- package/scripts/hooks/check-console-log.js +101 -0
- package/scripts/hooks/check-hook-enabled.js +17 -0
- package/scripts/hooks/check-platform-docs-age.js +48 -0
- package/scripts/hooks/cost-tracker.js +78 -0
- package/scripts/hooks/doc-file-warning.js +63 -0
- package/scripts/hooks/evaluate-session.js +98 -0
- package/scripts/hooks/governor-check.js +220 -0
- package/scripts/hooks/learning-observe.sh +206 -0
- package/scripts/hooks/mcp-health-check.js +588 -0
- package/scripts/hooks/post-bash-build-complete.js +34 -0
- package/scripts/hooks/post-bash-pr-created.js +43 -0
- package/scripts/hooks/post-edit-console-warn.js +61 -0
- package/scripts/hooks/post-edit-format.js +79 -0
- package/scripts/hooks/post-edit-typecheck.js +98 -0
- package/scripts/hooks/post-write.js +168 -0
- package/scripts/hooks/pre-bash-git-push-reminder.js +35 -0
- package/scripts/hooks/pre-bash-tmux-reminder.js +47 -0
- package/scripts/hooks/pre-compact.js +51 -0
- package/scripts/hooks/pre-tool-use.js +163 -0
- package/scripts/hooks/pre-write-doc-warn.js +9 -0
- package/scripts/hooks/quality-gate.js +251 -0
- package/scripts/hooks/run-with-flags-shell.sh +32 -0
- package/scripts/hooks/run-with-flags.js +135 -0
- package/scripts/hooks/session-end-marker.js +29 -0
- package/scripts/hooks/session-end.js +311 -0
- package/scripts/hooks/session-start.js +202 -0
- package/scripts/hooks/sfdx-scanner-check.js +142 -0
- package/scripts/hooks/sfdx-validate.js +119 -0
- package/scripts/hooks/stop-hook.js +170 -0
- package/scripts/hooks/suggest-compact.js +67 -0
- package/scripts/lib/agent-adapter.js +82 -0
- package/scripts/lib/apex-analysis.js +194 -0
- package/scripts/lib/hook-flags.js +74 -0
- package/scripts/lib/install-config.js +73 -0
- package/scripts/lib/install-executor.js +363 -0
- package/scripts/lib/install-state.js +121 -0
- package/scripts/lib/orchestration-session.js +299 -0
- package/scripts/lib/package-manager.js +124 -0
- package/scripts/lib/project-detect.js +228 -0
- package/scripts/lib/schema-validator.js +190 -0
- package/scripts/lib/skill-adapter.js +100 -0
- package/scripts/lib/state-store.js +376 -0
- package/scripts/lib/tmux-worktree-orchestrator.js +598 -0
- package/scripts/lib/utils.js +313 -0
- package/scripts/scc.js +164 -0
- package/skills/_reference/AGENTFORCE_PATTERNS.md +112 -0
- package/skills/_reference/APEX_CURSOR.md +159 -0
- package/skills/_reference/API_VERSIONS.md +78 -0
- package/skills/_reference/APPROVAL_PROCESSES.md +105 -0
- package/skills/_reference/ASYNC_PATTERNS.md +163 -0
- package/skills/_reference/AURA_COMPONENTS.md +146 -0
- package/skills/_reference/DATA_MIGRATION_PATTERNS.md +151 -0
- package/skills/_reference/DATA_MODELING.md +124 -0
- package/skills/_reference/DEBUGGING_TOOLS.md +140 -0
- package/skills/_reference/DEPLOYMENT_CHECKLIST.md +87 -0
- package/skills/_reference/DEPRECATIONS.md +79 -0
- package/skills/_reference/DOCKER_CI_PATTERNS.md +138 -0
- package/skills/_reference/ENTERPRISE_PATTERNS.md +122 -0
- package/skills/_reference/EXPERIENCE_CLOUD.md +143 -0
- package/skills/_reference/FLOW_PATTERNS.md +113 -0
- package/skills/_reference/GOVERNOR_LIMITS.md +77 -0
- package/skills/_reference/INTEGRATION_PATTERNS.md +105 -0
- package/skills/_reference/LWC_PATTERNS.md +79 -0
- package/skills/_reference/METADATA_TYPES.md +115 -0
- package/skills/_reference/NAMING_CONVENTIONS.md +84 -0
- package/skills/_reference/PACKAGE_DEVELOPMENT.md +150 -0
- package/skills/_reference/PLATFORM_EVENTS.md +121 -0
- package/skills/_reference/REPORTING_API.md +143 -0
- package/skills/_reference/SCRATCH_ORG_PATTERNS.md +126 -0
- package/skills/_reference/SECURITY_PATTERNS.md +127 -0
- package/skills/_reference/SHARING_MODEL.md +120 -0
- package/skills/_reference/SOQL_PATTERNS.md +119 -0
- package/skills/_reference/TESTING_STANDARDS.md +96 -0
- package/skills/_reference/TRIGGER_PATTERNS.md +114 -0
- package/skills/_reference/VISUALFORCE_PATTERNS.md +121 -0
- package/skills/aside/SKILL.md +118 -0
- package/skills/checkpoint/SKILL.md +53 -0
- package/skills/configure-scc/SKILL.md +163 -0
- package/skills/continuous-agent-loop/SKILL.md +264 -0
- package/skills/mcp-server-patterns/SKILL.md +146 -0
- package/skills/model-route/SKILL.md +84 -0
- package/skills/prompt-optimizer/SKILL.md +369 -0
- package/skills/refactor-clean/SKILL.md +136 -0
- package/skills/resume-session/SKILL.md +114 -0
- package/skills/save-session/SKILL.md +186 -0
- package/skills/search-first/SKILL.md +144 -0
- package/skills/security-scan/SKILL.md +146 -0
- package/skills/sessions/SKILL.md +127 -0
- package/skills/sf-agentforce-development/SKILL.md +450 -0
- package/skills/sf-apex-async-patterns/SKILL.md +326 -0
- package/skills/sf-apex-best-practices/SKILL.md +425 -0
- package/skills/sf-apex-constraints/SKILL.md +81 -0
- package/skills/sf-apex-cursor/SKILL.md +338 -0
- package/skills/sf-apex-enterprise-patterns/SKILL.md +348 -0
- package/skills/sf-apex-testing/SKILL.md +409 -0
- package/skills/sf-api-design/SKILL.md +238 -0
- package/skills/sf-approval-processes/SKILL.md +315 -0
- package/skills/sf-aura-development/SKILL.md +263 -0
- package/skills/sf-build-fix/SKILL.md +121 -0
- package/skills/sf-data-modeling/SKILL.md +278 -0
- package/skills/sf-debugging/SKILL.md +363 -0
- package/skills/sf-deployment/SKILL.md +295 -0
- package/skills/sf-deployment-constraints/SKILL.md +155 -0
- package/skills/sf-devops-ci-cd/SKILL.md +325 -0
- package/skills/sf-docs-lookup/SKILL.md +103 -0
- package/skills/sf-e2e-testing/SKILL.md +324 -0
- package/skills/sf-experience-cloud/SKILL.md +249 -0
- package/skills/sf-flow-development/SKILL.md +377 -0
- package/skills/sf-governor-limits/SKILL.md +323 -0
- package/skills/sf-harness-audit/SKILL.md +142 -0
- package/skills/sf-help/SKILL.md +159 -0
- package/skills/sf-integration/SKILL.md +483 -0
- package/skills/sf-lwc-constraints/SKILL.md +130 -0
- package/skills/sf-lwc-development/SKILL.md +303 -0
- package/skills/sf-lwc-testing/SKILL.md +388 -0
- package/skills/sf-metadata-management/SKILL.md +288 -0
- package/skills/sf-platform-events-cdc/SKILL.md +375 -0
- package/skills/sf-quickstart/SKILL.md +173 -0
- package/skills/sf-security/SKILL.md +334 -0
- package/skills/sf-security-constraints/SKILL.md +127 -0
- package/skills/sf-soql-constraints/SKILL.md +131 -0
- package/skills/sf-soql-optimization/SKILL.md +354 -0
- package/skills/sf-tdd-workflow/SKILL.md +336 -0
- package/skills/sf-testing-constraints/SKILL.md +200 -0
- package/skills/sf-trigger-constraints/SKILL.md +90 -0
- package/skills/sf-trigger-frameworks/SKILL.md +347 -0
- package/skills/sf-visualforce-development/SKILL.md +260 -0
- package/skills/strategic-compact/SKILL.md +208 -0
- package/skills/update-docs/SKILL.md +165 -0
- package/skills/update-platform-docs/SKILL.md +90 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: save-session
|
|
3
|
+
description: >-
|
|
4
|
+
Use when saving current Salesforce development session state. Persist org context, Apex progress, and pending work to a dated file for future session resumption.
|
|
5
|
+
disable-model-invocation: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Save Session — Capture and Persist Session Context
|
|
9
|
+
|
|
10
|
+
Capture everything that happened in this session — what was built, what worked, what failed, what's left — and write it to a dated file so the next session can pick up exactly where this one left off.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
- End of a work session before closing Claude Code
|
|
15
|
+
- Before hitting context limits (run this first, then start a fresh session)
|
|
16
|
+
- After solving a complex Salesforce problem you want to remember
|
|
17
|
+
- Any time you need to hand off context to a future session
|
|
18
|
+
|
|
19
|
+
## Process
|
|
20
|
+
|
|
21
|
+
### Step 1: Gather context
|
|
22
|
+
|
|
23
|
+
Before writing the file, collect:
|
|
24
|
+
|
|
25
|
+
- Read all files modified during this session (use git diff or recall from conversation)
|
|
26
|
+
- Review what was discussed, attempted, and decided
|
|
27
|
+
- Note any errors encountered and how they were resolved (or not)
|
|
28
|
+
- Check current test/sf-deployment status if relevant
|
|
29
|
+
- Note org-specific details (scratch org alias, connected org, CLI version)
|
|
30
|
+
|
|
31
|
+
### Step 2: Create the sessions folder if it doesn't exist
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
mkdir -p ~/.claude/sessions
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### Step 3: Write the session file
|
|
38
|
+
|
|
39
|
+
Create `~/.claude/sessions/YYYY-MM-DD-<short-id>-session.md`, using today's actual date and a short-id:
|
|
40
|
+
|
|
41
|
+
- Allowed characters: lowercase `a-z`, digits `0-9`, hyphens `-`
|
|
42
|
+
- Minimum length: 8 characters
|
|
43
|
+
- No uppercase letters, no underscores, no spaces
|
|
44
|
+
|
|
45
|
+
Full valid filename example: `2026-03-18-apex-trig-session.md`
|
|
46
|
+
|
|
47
|
+
The short-id should include the project name to enable cross-project isolation (e.g., `myapp-apex-trig` instead of just `apex-trig`). This prevents session file collisions when working across multiple Salesforce projects that share the same `~/.claude/sessions/` directory.
|
|
48
|
+
|
|
49
|
+
### Step 4: Populate the file with all sections below
|
|
50
|
+
|
|
51
|
+
Keep session files under ~500 lines. Focus on decisions, blockers, and next steps — not full code dumps. If you need to reference large code blocks, point to file paths instead.
|
|
52
|
+
|
|
53
|
+
Write every section honestly. Do not skip sections — write "Nothing yet" or "N/A" if a section genuinely has no content.
|
|
54
|
+
|
|
55
|
+
### Step 5: Show the file to the user
|
|
56
|
+
|
|
57
|
+
After writing, display the full contents and ask:
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
Session saved to [actual resolved path to the session file]
|
|
61
|
+
|
|
62
|
+
Does this look accurate? Anything to correct or add before we close?
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Wait for confirmation. Make edits if requested.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Session File Format
|
|
70
|
+
|
|
71
|
+
```markdown
|
|
72
|
+
# Session: YYYY-MM-DD
|
|
73
|
+
|
|
74
|
+
**Started:** [approximate time if known]
|
|
75
|
+
**Last Updated:** [current time]
|
|
76
|
+
**Project:** [project name or path]
|
|
77
|
+
**Topic:** [one-line summary of what this session was about]
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## What We Are Building
|
|
82
|
+
|
|
83
|
+
[1-3 paragraphs describing the feature, bug fix, or task. Include enough
|
|
84
|
+
context that someone with zero memory of this session can understand the goal.
|
|
85
|
+
Include: what it does, why it's needed, how it fits into the Salesforce org.]
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## What WORKED (with evidence)
|
|
90
|
+
|
|
91
|
+
[List only things that are confirmed working. For each item include WHY you
|
|
92
|
+
know it works — test passed, deployment succeeded, scratch org validated, etc.
|
|
93
|
+
Without evidence, move it to "Not Tried Yet" instead.]
|
|
94
|
+
|
|
95
|
+
- **[thing that works]** — confirmed by: [specific evidence]
|
|
96
|
+
|
|
97
|
+
If nothing is confirmed working yet: "Nothing confirmed working yet."
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## What Did NOT Work (and why)
|
|
102
|
+
|
|
103
|
+
[This is the most important section. List every approach tried that failed.
|
|
104
|
+
For each failure write the EXACT reason so the next session doesn't retry it.
|
|
105
|
+
Be specific: "threw X error because Y" is useful. "didn't work" is not.]
|
|
106
|
+
|
|
107
|
+
- **[approach tried]** — failed because: [exact reason / error message]
|
|
108
|
+
|
|
109
|
+
If nothing failed: "No failed approaches yet."
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## What Has NOT Been Tried Yet
|
|
114
|
+
|
|
115
|
+
[Approaches that seem promising but haven't been attempted.]
|
|
116
|
+
|
|
117
|
+
- [approach / idea]
|
|
118
|
+
|
|
119
|
+
If nothing is queued: "No specific untried approaches identified."
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Current State of Files
|
|
124
|
+
|
|
125
|
+
[Every file touched this session. Be precise about what state each file is in.]
|
|
126
|
+
|
|
127
|
+
| File | Status | Notes |
|
|
128
|
+
| ----------------- | -------------- | -------------------------- |
|
|
129
|
+
| `path/to/file.cls` | Complete | [what it does] |
|
|
130
|
+
| `path/to/file.cls` | In Progress | [what's done, what's left] |
|
|
131
|
+
| `path/to/file.js` | Broken | [what's wrong] |
|
|
132
|
+
|
|
133
|
+
If no files were touched: "No files modified this session."
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## Decisions Made
|
|
138
|
+
|
|
139
|
+
[Architecture choices, tradeoffs accepted, approaches chosen and why.]
|
|
140
|
+
|
|
141
|
+
- **[decision]** — reason: [why this was chosen over alternatives]
|
|
142
|
+
|
|
143
|
+
If no significant decisions: "No major decisions made this session."
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Blockers & Open Questions
|
|
148
|
+
|
|
149
|
+
[Anything unresolved that the next session needs to address.]
|
|
150
|
+
|
|
151
|
+
- [blocker / open question]
|
|
152
|
+
|
|
153
|
+
If none: "No active blockers."
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Exact Next Step
|
|
158
|
+
|
|
159
|
+
[The single most important thing to do when resuming.]
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Environment & Setup Notes
|
|
164
|
+
|
|
165
|
+
[Only fill if relevant — scratch org alias, connected org, SF CLI version, etc.]
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Notes
|
|
171
|
+
|
|
172
|
+
- Each session gets its own file — never append to a previous session's file
|
|
173
|
+
- The "What Did NOT Work" section is the most critical — future sessions will blindly retry failed approaches without it
|
|
174
|
+
- The file is meant to be read by Claude at the start of the next session via the resume-session skill
|
|
175
|
+
- Use the canonical global session store: `~/.claude/sessions/`
|
|
176
|
+
|
|
177
|
+
## Examples
|
|
178
|
+
|
|
179
|
+
```
|
|
180
|
+
/save-session
|
|
181
|
+
/save-session Save progress on the AccountManagement feature refactor
|
|
182
|
+
/save-session Checkpoint before switching to the hotfix branch
|
|
183
|
+
```
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: search-first
|
|
3
|
+
description: >-
|
|
4
|
+
Use when researching existing Salesforce tools, Apex libraries, or metadata patterns before writing custom code. Search-first workflow with agent. Do NOT use for implementing code — only for discovery and evaluation.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /search-first — Research Before You Code
|
|
8
|
+
|
|
9
|
+
Systematizes the "search for existing solutions before implementing" workflow.
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
- Before writing any custom utility, library, or integration code
|
|
14
|
+
- When evaluating whether to use npm, AppExchange, or MCP packages for a requirement
|
|
15
|
+
- When starting a new feature that likely has existing open-source or platform solutions
|
|
16
|
+
- When deciding between adopting, extending, composing, or building custom code
|
|
17
|
+
- When the user asks to "add X functionality" and you're about to write net-new code
|
|
18
|
+
|
|
19
|
+
## Workflow
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
+---------------------------------------------+
|
|
23
|
+
| 1. NEED ANALYSIS |
|
|
24
|
+
| Define what functionality is needed |
|
|
25
|
+
| Identify language/framework constraints |
|
|
26
|
+
+---------------------------------------------+
|
|
27
|
+
| 2. PARALLEL SEARCH (general-purpose agent) |
|
|
28
|
+
| +----------+ +----------+ +----------+ |
|
|
29
|
+
| | npm / | | MCP / | | GitHub / | |
|
|
30
|
+
| | AppExch | | Skills | | Web | |
|
|
31
|
+
| +----------+ +----------+ +----------+ |
|
|
32
|
+
+---------------------------------------------+
|
|
33
|
+
| 3. EVALUATE |
|
|
34
|
+
| Score candidates (functionality, maint, |
|
|
35
|
+
| community, docs, license, deps) |
|
|
36
|
+
+---------------------------------------------+
|
|
37
|
+
| 4. DECIDE |
|
|
38
|
+
| +---------+ +----------+ +---------+ |
|
|
39
|
+
| | Adopt | | Extend | | Build | |
|
|
40
|
+
| | as-is | | /Wrap | | Custom | |
|
|
41
|
+
| +---------+ +----------+ +---------+ |
|
|
42
|
+
+---------------------------------------------+
|
|
43
|
+
| 5. IMPLEMENT |
|
|
44
|
+
| Install package / Configure MCP / |
|
|
45
|
+
| Write minimal custom code |
|
|
46
|
+
+---------------------------------------------+
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Decision Matrix
|
|
50
|
+
|
|
51
|
+
| Signal | Action |
|
|
52
|
+
|--------|--------|
|
|
53
|
+
| Exact match, well-maintained, MIT/Apache | **Adopt** — install and use directly |
|
|
54
|
+
| Partial match, good foundation | **Extend** — install + write thin wrapper |
|
|
55
|
+
| Multiple weak matches | **Compose** — combine 2-3 small packages |
|
|
56
|
+
| Nothing suitable found | **Build** — write custom, but informed by research |
|
|
57
|
+
|
|
58
|
+
## How to Use
|
|
59
|
+
|
|
60
|
+
### Quick Mode (inline)
|
|
61
|
+
|
|
62
|
+
Before writing a utility or adding functionality, mentally run through:
|
|
63
|
+
|
|
64
|
+
0. Does this already exist in the repo? -> `rg` through relevant modules/tests first
|
|
65
|
+
1. Is this a common problem? -> Search npm/AppExchange
|
|
66
|
+
2. Is there an MCP for this? -> Check `~/.claude/settings.json` and search
|
|
67
|
+
3. Is there a skill for this? -> Check `~/.claude/skills/`
|
|
68
|
+
4. Is there a GitHub implementation/template? -> Run GitHub code search
|
|
69
|
+
|
|
70
|
+
### Full Mode (agent)
|
|
71
|
+
|
|
72
|
+
For non-trivial functionality, launch a general-purpose agent:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
Task(subagent_type="general-purpose", prompt="
|
|
76
|
+
Research existing tools for: [DESCRIPTION]
|
|
77
|
+
Language/framework: [LANG]
|
|
78
|
+
Constraints: [ANY]
|
|
79
|
+
|
|
80
|
+
Search: npm/AppExchange, MCP servers, Claude Code skills, GitHub
|
|
81
|
+
Return: Structured comparison with recommendation
|
|
82
|
+
")
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Salesforce-Specific Tool Discovery
|
|
86
|
+
|
|
87
|
+
| Category | Tools to Check | Notes |
|
|
88
|
+
|----------|---------------|-------|
|
|
89
|
+
| **Testing** | ApexMocks, FFLib, at4dx, Apex Replay Debugger | FFLib is the industry standard |
|
|
90
|
+
| **CI/CD** | CumulusCI, sfdx-git-delta, sf scanner, GitHub Actions | sfdx-git-delta for delta deployments |
|
|
91
|
+
| **Data** | SFDX Data Loader, DLRS (Declarative Lookup Rollup Summary), DataWeave | DLRS replaces rollup trigger code |
|
|
92
|
+
| **Security** | Shield Platform Encryption, Event Monitoring, SF Code Analyzer | Scanner catches PMD violations |
|
|
93
|
+
| **Documentation** | ApexDox, SfApexDoc | Auto-generate Apex docs |
|
|
94
|
+
| **MCP** | @salesforce/mcp (official), community MCP servers | Check official first |
|
|
95
|
+
| **Package Mgmt** | CumulusCI, SFDX Package commands | For managed/unlocked packages |
|
|
96
|
+
|
|
97
|
+
### MCP Server Evaluation
|
|
98
|
+
|
|
99
|
+
Before building custom tooling, check if an MCP server handles it:
|
|
100
|
+
|
|
101
|
+
1. **@salesforce/mcp** (official) — orgs, metadata, data, testing, code-analysis, LWC, DevOps
|
|
102
|
+
2. **Community MCP servers** — search npm for `mcp` + your domain
|
|
103
|
+
3. **Build custom only if** — no existing server covers your specific business logic
|
|
104
|
+
|
|
105
|
+
### Salesforce Decision Examples
|
|
106
|
+
|
|
107
|
+
**Scenario 1: "We need rollup summary fields on lookup relationships"**
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
Search: AppExchange "rollup summary lookup"
|
|
111
|
+
Found: DLRS (Declarative Lookup Rollup Summaries) — 4.8★, 5000+ installs
|
|
112
|
+
Decision: ADOPT — install DLRS, configure declaratively
|
|
113
|
+
Result: Zero custom Apex code for rollup calculations
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**Scenario 2: "We need delta deployments in CI"**
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
Search: npm "salesforce delta deployment"
|
|
120
|
+
Found: sfdx-git-delta — actively maintained, 1000+ stars
|
|
121
|
+
Decision: ADOPT — add as sf plugin, configure in GitHub Actions
|
|
122
|
+
Result: Deploy only changed metadata, 10x faster CI
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Scenario 3: "We need custom approval routing based on territory"**
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
Search: AppExchange "dynamic approval routing territory"
|
|
129
|
+
Found: Several packages but none match exact business rules
|
|
130
|
+
Decision: BUILD — custom Apex approval process with territory-based routing
|
|
131
|
+
Result: Custom code, but informed by research (knew no package fit)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Anti-Patterns
|
|
135
|
+
|
|
136
|
+
- **Jumping to code**: Writing a utility without checking if one exists
|
|
137
|
+
- **Ignoring MCP**: Not checking if an MCP server already provides the capability
|
|
138
|
+
- **Over-customizing**: Wrapping a library so heavily it loses its benefits
|
|
139
|
+
- **Not checking AppExchange**: Many common patterns have managed packages with support
|
|
140
|
+
- **Reinventing DLRS**: Writing rollup trigger code when DLRS handles it declaratively
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: security-scan
|
|
3
|
+
description: >-
|
|
4
|
+
Use when scanning Salesforce org Claude Code configuration for security vulnerabilities, deploy misconfigurations, and injection risks in CLAUDE.md, hooks, and MCP servers. Do NOT use for Apex code review — use sf-security.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
> **External tool:** AgentShield is published as `ecc-agentshield` on npm by affaan-m.
|
|
8
|
+
> It is a third-party security scanner, not part of SCC itself.
|
|
9
|
+
> **Maintenance risk:** This package has no SLA or maintenance guarantee. If it becomes unavailable, use the manual scanning section below as a fallback.
|
|
10
|
+
|
|
11
|
+
# Security Scan Skill
|
|
12
|
+
|
|
13
|
+
Audit your Claude Code configuration for security issues using [AgentShield](https://github.com/affaan-m/agentshield).
|
|
14
|
+
|
|
15
|
+
## When to Use
|
|
16
|
+
|
|
17
|
+
- Before submitting an AppExchange managed package for security review
|
|
18
|
+
- When running a pre-deployment security gate in CI/CD pipelines
|
|
19
|
+
- When auditing a new codebase for SOQL injection, XSS, or FLS violations
|
|
20
|
+
- When a PMD or Checkmarx scan surfaces violations that need triaging
|
|
21
|
+
- When validating that new Apex contributors follow secure coding patterns
|
|
22
|
+
|
|
23
|
+
## What It Scans
|
|
24
|
+
|
|
25
|
+
| File | Checks |
|
|
26
|
+
|------|--------|
|
|
27
|
+
| `CLAUDE.md` | Hardcoded secrets, auto-run instructions, prompt injection patterns |
|
|
28
|
+
| `settings.json` | Overly permissive allow lists, missing deny lists, dangerous bypass flags |
|
|
29
|
+
| `mcp.json` | Risky MCP servers, hardcoded env secrets, npx supply chain risks |
|
|
30
|
+
| `hooks/` | Command injection via interpolation, data exfiltration, silent error suppression |
|
|
31
|
+
| `agents/*.md` | Unrestricted tool access, prompt injection surface, missing model specs |
|
|
32
|
+
|
|
33
|
+
## Salesforce-Specific Security Checks
|
|
34
|
+
|
|
35
|
+
Beyond configuration scanning, watch for these Salesforce vulnerability patterns:
|
|
36
|
+
|
|
37
|
+
### SOQL Injection
|
|
38
|
+
|
|
39
|
+
```apex
|
|
40
|
+
// VULNERABLE — user input concatenated into query
|
|
41
|
+
String query = 'SELECT Id FROM Account WHERE Name = \'' + userInput + '\'';
|
|
42
|
+
|
|
43
|
+
// SAFE — bind variables
|
|
44
|
+
List<Account> results = [SELECT Id FROM Account WHERE Name = :userInput];
|
|
45
|
+
|
|
46
|
+
// SAFE — Database.queryWithBinds for dynamic SOQL
|
|
47
|
+
Map<String, Object> binds = new Map<String, Object>{ 'userInput' => userInput };
|
|
48
|
+
List<Account> results = Database.queryWithBinds(
|
|
49
|
+
'SELECT Id FROM Account WHERE Name = :userInput',
|
|
50
|
+
binds, AccessLevel.USER_MODE
|
|
51
|
+
);
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### FLS/CRUD Bypass
|
|
55
|
+
|
|
56
|
+
| Pattern | Risk | Fix |
|
|
57
|
+
|---------|------|-----|
|
|
58
|
+
| SOQL without `WITH USER_MODE` | Reads fields user can't see | Add `WITH USER_MODE` |
|
|
59
|
+
| `Database.insert(records)` without AccessLevel | Skips FLS on write | Use `AccessLevel.USER_MODE` |
|
|
60
|
+
| `WITH SECURITY_ENFORCED` | Throws on inaccessible fields, no sharing enforcement | Prefer `WITH USER_MODE` |
|
|
61
|
+
|
|
62
|
+
### Sharing Model Violations
|
|
63
|
+
|
|
64
|
+
- `without sharing` on class with `@AuraEnabled` methods — privilege escalation
|
|
65
|
+
- `without sharing` on class with `@RemoteAction` — same risk via Visualforce
|
|
66
|
+
- Missing sharing declaration — inherits calling class context
|
|
67
|
+
|
|
68
|
+
### XSS Patterns
|
|
69
|
+
|
|
70
|
+
- **Visualforce:** `{!userInput}` without `JSENCODE`, `HTMLENCODE`, or `URLENCODE`
|
|
71
|
+
- **LWC:** `lwc:dom="manual"` with `innerHTML` from user data
|
|
72
|
+
- **Aura:** `$A.util.isEmpty()` doesn't sanitize — validate before DOM insertion
|
|
73
|
+
|
|
74
|
+
## Usage
|
|
75
|
+
|
|
76
|
+
### AgentShield Scan
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Install and scan
|
|
80
|
+
npm install -g ecc-agentshield
|
|
81
|
+
npx ecc-agentshield scan
|
|
82
|
+
|
|
83
|
+
# With severity filter and JSON output for CI
|
|
84
|
+
npx ecc-agentshield scan --min-severity medium --format json
|
|
85
|
+
|
|
86
|
+
# Auto-fix safe issues
|
|
87
|
+
npx ecc-agentshield scan --fix
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Severity Levels
|
|
91
|
+
|
|
92
|
+
| Grade | Score | Meaning |
|
|
93
|
+
|-------|-------|---------|
|
|
94
|
+
| A | 90-100 | Secure configuration |
|
|
95
|
+
| B | 75-89 | Minor issues |
|
|
96
|
+
| C | 60-74 | Needs attention |
|
|
97
|
+
| D | 40-59 | Significant risks |
|
|
98
|
+
| F | 0-39 | Critical vulnerabilities |
|
|
99
|
+
|
|
100
|
+
## Manual Scanning (Without AgentShield)
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
# SOQL Injection — string concatenation in queries
|
|
104
|
+
grep -rn "Database.query" force-app/ --include="*.cls" | grep -v "bind"
|
|
105
|
+
|
|
106
|
+
# Missing sharing declaration
|
|
107
|
+
grep -rEL "with sharing|without sharing|inherited sharing" force-app/main/default/classes/*.cls
|
|
108
|
+
|
|
109
|
+
# Hardcoded Salesforce IDs (15 or 18 char)
|
|
110
|
+
grep -rnE "'00[0-9a-zA-Z]{12,15}'" force-app/ --include="*.cls"
|
|
111
|
+
|
|
112
|
+
# Missing CRUD/FLS on DML
|
|
113
|
+
grep -rn "insert \|update \|delete \|upsert " force-app/ --include="*.cls" | grep -v "stripInaccessible\|USER_MODE\|SECURITY_ENFORCED\|isAccessible\|@IsTest"
|
|
114
|
+
|
|
115
|
+
# Hardcoded endpoints
|
|
116
|
+
grep -rn "https://\|http://" force-app/ --include="*.cls" | grep -v "Named\|test\|mock\|example.com"
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## SF Code Analyzer Integration
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# Full PMD scan
|
|
123
|
+
sf code-analyzer run --target force-app --format table
|
|
124
|
+
|
|
125
|
+
# Security-focused scan
|
|
126
|
+
sf code-analyzer run --target force-app --category "Security" --format table
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Remediation Patterns
|
|
130
|
+
|
|
131
|
+
| Finding | Vulnerable Code | Fixed Code |
|
|
132
|
+
|---------|----------------|------------|
|
|
133
|
+
| **SOQL Injection** | `Database.query('...WHERE Name=\'' + name + '\'')` | `[SELECT Id FROM Account WHERE Name = :name]` |
|
|
134
|
+
| **Missing Sharing** | `public class MyService {` | `public with sharing class MyService {` |
|
|
135
|
+
| **FLS Bypass** | `insert records;` | `Database.insert(records, AccessLevel.USER_MODE);` |
|
|
136
|
+
| **Hardcoded ID** | `'012000000000ABC'` | `Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Customer').getRecordTypeId()` |
|
|
137
|
+
| **XSS (VF)** | `{!userInput}` | `{!HTMLENCODE(userInput)}` |
|
|
138
|
+
|
|
139
|
+
## Related
|
|
140
|
+
|
|
141
|
+
- Constraint: sf-security-constraints (co-activates for enforcement rules)
|
|
142
|
+
- Action: sf-security (CRUD/FLS implementation procedures)
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sessions
|
|
3
|
+
description: >-
|
|
4
|
+
Use when managing Salesforce Claude Code session history. List, load, alias, and inspect saved Apex and org development sessions stored in ~/.claude/sessions/.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Sessions — Session History Management
|
|
8
|
+
|
|
9
|
+
Manage Claude Code session history - list, load, alias, and inspect sessions stored in `~/.claude/sessions/`.
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
- Listing all saved sessions to find a specific one
|
|
14
|
+
- Loading a previous session by ID, date, or alias
|
|
15
|
+
- Creating memorable aliases for frequently referenced sessions
|
|
16
|
+
- Inspecting session metadata and statistics
|
|
17
|
+
- Managing session aliases (create, remove, list)
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
`/sessions [list|load|alias|info|aliases|help] [options]`
|
|
22
|
+
|
|
23
|
+
`/sessions help` shows this usage guide.
|
|
24
|
+
|
|
25
|
+
## Actions
|
|
26
|
+
|
|
27
|
+
### List Sessions
|
|
28
|
+
|
|
29
|
+
Display all sessions with metadata, filtering, and pagination.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
/sessions # List all sessions (default)
|
|
33
|
+
/sessions list # Same as above
|
|
34
|
+
/sessions list --limit 10 # Show 10 sessions
|
|
35
|
+
/sessions list --date 2026-03-18 # Filter by date
|
|
36
|
+
/sessions list --search apex # Search by session ID
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Load Session
|
|
40
|
+
|
|
41
|
+
Load and display a session's content (by ID or alias).
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
/sessions load <id|alias> # Load session
|
|
45
|
+
/sessions load 2026-03-18 # By date
|
|
46
|
+
/sessions load apex-trig # By short ID
|
|
47
|
+
/sessions load my-alias # By alias name
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Create Alias
|
|
51
|
+
|
|
52
|
+
Create a memorable alias for a session.
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
/sessions alias <id> <name> # Create alias
|
|
56
|
+
/sessions alias 2026-03-18 trigger-work
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Remove Alias
|
|
60
|
+
|
|
61
|
+
Delete an existing alias.
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
/sessions alias --remove <name> # Remove alias
|
|
65
|
+
/sessions unalias <name> # Same as above
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Session Info
|
|
69
|
+
|
|
70
|
+
Show detailed information about a session.
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
/sessions info <id|alias> # Show session details
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### List Aliases
|
|
77
|
+
|
|
78
|
+
Show all session aliases.
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
/sessions aliases # List all aliases
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Arguments
|
|
85
|
+
|
|
86
|
+
- `list [options]` - List sessions
|
|
87
|
+
- `--limit <n>` - Max sessions to show (default: 50)
|
|
88
|
+
- `--date <YYYY-MM-DD>` - Filter by date
|
|
89
|
+
- `--search <pattern>` - Search in session ID
|
|
90
|
+
- `load <id|alias>` - Load session content
|
|
91
|
+
- `alias <id> <name>` - Create alias for session
|
|
92
|
+
- `alias --remove <name>` - Remove alias
|
|
93
|
+
- `unalias <name>` - Same as `--remove`
|
|
94
|
+
- `info <id|alias>` - Show session statistics
|
|
95
|
+
- `aliases` - List all aliases
|
|
96
|
+
- `help` - Show this help
|
|
97
|
+
|
|
98
|
+
## Examples
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# List all sessions
|
|
102
|
+
/sessions list
|
|
103
|
+
|
|
104
|
+
# Create an alias for today's session
|
|
105
|
+
/sessions alias 2026-03-18 trigger-work
|
|
106
|
+
|
|
107
|
+
# Load session by alias
|
|
108
|
+
/sessions load trigger-work
|
|
109
|
+
|
|
110
|
+
# Show session info
|
|
111
|
+
/sessions info trigger-work
|
|
112
|
+
|
|
113
|
+
# Remove alias
|
|
114
|
+
/sessions alias --remove trigger-work
|
|
115
|
+
|
|
116
|
+
# List all aliases
|
|
117
|
+
/sessions aliases
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Notes
|
|
121
|
+
|
|
122
|
+
- Sessions are stored as markdown files in `~/.claude/sessions/`
|
|
123
|
+
- Session IDs can be shortened (first 4-8 characters usually unique enough)
|
|
124
|
+
- Use aliases for frequently referenced sessions
|