pattern-pack
Skill1 starsChanged 7 months agoMITView on GitHub
Install, list, or remove argo pattern packs (Agentforce, React, Platform Events, Change Data Capture, External Objects, Big Objects, Field Service, Industries, CMS, Data Cloud). Each pack adds domain-specific patterns, quality-checklist items, and optionally agents/skills to the project.
In this repository53 other files it gives its agents.
- templates/CLAUDE.mdCLAUDE.md
- adrSkill
- agent-deploySkill
- agent-discoverSkill
- agent-eval-trendSkill
- agent-exchange-listSkill
- agent-specSkill
- agent-testSkill
- agent-vs-flow-vs-apexSkill
- before-vs-after-triggerSkill
- code-reviewSkill
- complexitySkill
- coverage-trendSkill
- dead-codeSkill
- dependency-graphSkill
- deploySkill
- destructive-changesSkill
- diff-deploySkill
- erdSkill
- field-impactSkill
- flaky-test-finderSkill
- flow-auditSkill
- flow-vs-apexSkill
- fls-auditSkill
- gateway-configSkill
- generate-docsSkill
- limit-usageSkill
- lwc-vs-reactSkill
- mcp-tool-vs-restSkill
- notifySkill
- onboardSkill
- org-diffSkill
- org-exploreSkill
- package-versionSkill
- perf-reviewSkill
- permset-auditSkill
- pr-prepareSkill
- queueable-vs-batchSkill
- quick-deploySkill
- react-initSkill
- release-notesSkill
- scratch-orgSkill
- security-scanSkill
- sequence-diagramSkill
- sf-initSkill
- sharing-reviewSkill
- slack-agentSkill
- soql-analyzerSkill
- test-coverageSkill
- test-dataSkill
- test-planSkill
- trust-evalSkill
- trust-layer-auditSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 1 is distinctive, and 10 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
10
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 62
Verify the pack exists: ${CLAUDE_PLUGIN_ROOT}/templates/packs/<name>/pack.json
- Very specific: line 78
Verify API version: numerically API_HAVE >= API_REQ (or warn if not)
- Very specific: line 79
Check INSTALL_LOG; if already installed and not --force, exit 1 with a message
- Very specific: line 87
If checklist.md exists, append to docs/quality-checklist.md with the same markers
- Very specific: line 88
If the pack ships agents (pack.json: installs.agents), copy each to .claude/agents/ (project-local — doesn't pollute the plugin)
- Very specific: line 89
If the pack ships skills (pack.json: installs.skills), copy each directory to .claude/skills/
- Very specific: line 90
Update ${INSTALL_LOG} (create if needed):
- Distinctive: line 103
Delete project-local agents/skills shipped by the pack
- Very specific: line 104
Update ${INSTALL_LOG} to remove the entry
- Very specific: line 140
Markers are sacred: Never modify the bracketed install section by hand.
- Very specific: line 141
Don't auto-update: When a newer pack version ships, the user must remove then add (or add --force to upgrade)
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
You are managing pattern packs for the project. Packs are self-contained modules under ${CLAUDE_PLUGIN_ROOT}/templates/packs/; install adds them to the user's project, remove takes them out. Format is defined in ${CLAUDE_PLUGIN_ROOT}/docs/pack-format.md.
Read Project Config First
source "${CLAUDE_PLUGIN_ROOT}/hooks/lib/config.sh"
PATTERNS_DOC="$(sf_config_get '.paths.patternsSalesforceDoc' "$ENV")"
PROJECT_DIR="${CLAUDE_PROJECT_DIR}"
INSTALL_LOG="${PROJECT_DIR}/.claude/argo-packs.json"Input
$ARGUMENTS:
list— list available packs and their install statusadd <pack-name>— install a packremove <pack-name>— remove a previously-installed packinfo <pack-name>— print the pack's README, pattern list, checklist additions--force— overwrite existing pack installation
Steps
list
ls -1 "${CLAUDE_PLUGIN_ROOT}/templates/packs/" 2>/dev/null
# For each, read pack.json and INSTALL_LOG to determine statusOutput a table:
| Pack | Display Name | Status | Version |
|------|--------------|--------|---------|
| platform-events | Platform Events | ✅ installed v1.0.0 | 1.0.0 |
| change-data-capture | Change Data Capture | not installed | 1.0.0 |
| big-objects | Big Objects | not installed | 1.0.0 |
| ...info <pack-name>
PACK="${CLAUDE_PLUGIN_ROOT}/templates/packs/$NAME"
[[ -d "$PACK" ]] || exit 2
cat "$PACK/README.md"
echo "---"
echo "Patterns:"
grep -E '^## ' "$PACK/patterns.md" | sed 's/^## //'
echo "---"
echo "Checklist additions:"
[[ -f "$PACK/checklist.md" ]] && cat "$PACK/checklist.md" || echo "(none)"add <pack-name>
- Verify the pack exists:
${CLAUDE_PLUGIN_ROOT}/templates/packs/<name>/pack.json - Read
pack.json:PACK_JSON="${PACK}/pack.json" API_REQ=$(jq -r '.requires.sfApiVersion // empty' "$PACK_JSON") API_HAVE=$(sf_config_get '.platform.apiVersion' "$ENV") DEPRECATED=$(jq -r '.deprecated // false' "$PACK_JSON") SUPERSEDED_BY=$(jq -r '.supersededBy // empty' "$PACK_JSON") - If the pack is deprecated, refuse the install and print the migration command:
Exit code 1. ([pattern-pack] '<name>' is deprecated and ships no patterns. [pattern-pack] Use '<supersededBy>' instead: /argo:pattern-pack add <supersededBy>remove <name>still works on a deprecated pack — that's how a project pinned to the old name unsticks itself.) - Verify API version: numerically
API_HAVE >= API_REQ(or warn if not) - Check INSTALL_LOG; if already installed and not
--force, exit 1 with a message - Append
patterns.mdto the project's${PATTERNS_DOC}with header markers:<!-- pack:<name>@<version> begin --> <!-- Generated by /argo:pattern-pack add <name> on <iso> --> ...patterns content... <!-- pack:<name> end --> - If
checklist.mdexists, append todocs/quality-checklist.mdwith the same markers - If the pack ships agents (
pack.json: installs.agents), copy each to.claude/agents/(project-local — doesn't pollute the plugin) - If the pack ships skills (
pack.json: installs.skills), copy each directory to.claude/skills/ - Update
${INSTALL_LOG}(create if needed):{ "installed": [ {"name": "platform-events", "version": "1.0.0", "installedAt": "2026-04-28T16:00:00Z"} ] } - Print a summary of what was added
remove <pack-name>
- Locate the begin/end markers in the project's docs and remove the bracketed block
- Delete project-local agents/skills shipped by the pack
- Update
${INSTALL_LOG}to remove the entry
Output
Default after add:
[pattern-pack] Installed 'platform-events' v1.0.0
Added to docs/patterns/salesforce-patterns.md:
- PE-1: Platform Event Publisher
- PE-2: Apex Trigger Subscriber for Platform Events
- PE-3: Platform Event Replay
- PE-4: High-Volume Platform Event Patterns
- PE-5: Platform Event Error Handling
Appended to docs/quality-checklist.md:
- 4 new items under Apex/Async
Project-local agents installed: 0
Project-local skills installed: 0
Suggested next steps:
- Read the pattern descriptions in docs/patterns/salesforce-patterns.md
- Check the worked example in <CLAUDE_PLUGIN_ROOT>/templates/packs/platform-events/examples/
- Re-run /argo:code-review or @qa to factor the new patterns into reviewsCI mode: emit JSON {"installed": "platform-events", "version": "1.0.0", "patternsAdded": 5, "checklistItemsAdded": 4}.
Exit codes
- 0 — operation succeeded
- 1 — already installed (without
--force), or remove on uninstalled pack - 2 — pack not found, version requirement not met, install error
Rules
- Markers are sacred. Never modify the bracketed install section by hand; future
removedepends on the markers being intact - Don't auto-update. When a newer pack version ships, the user must
removethenadd(oradd --forceto upgrade) - Project-local install for agents/skills. Pack-shipped agents/skills go to
.claude/agents/and.claude/skills/in the user's project — not in the plugin's namespace. They're invoked the same way (@agent-name//skill-name), but they're project-specific - Verify api-version. A pack that needs API 60.0 won't work in a project pinned at 58.0
infomode never modifies anything. It's for previewing beforeadd
Available packs
(See /argo:pattern-pack list for the live inventory.)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

