Agent Skillsforcedotcom/sf-skills › platform-architecture-analyze

platform-architecture-analyze

GitHub

作为编排器,基于Salesforce Well-Architected框架对项目进行只读架构审查。通过调用现有分析工具并映射结果,从可信、易用、适应力三维度评分,提供代码证据及治理检查清单,辅助评估安全与合规风险。

plugins/builder/salesforce-development/skills/platform-architecture-analyze/SKILL.md forcedotcom/sf-skills

Trigger Scenarios

review the architecture run a Well-Architected check audit this project is this project well-architected? assess security/governor-limit/packageability risk

Install

npx skills add forcedotcom/sf-skills --skill platform-architecture-analyze -g -y
More Options

Non-standard path

npx skills add https://github.com/forcedotcom/sf-skills/tree/main/plugins/builder/salesforce-development/skills/platform-architecture-analyze -g -y

Use without installing

npx skills use forcedotcom/sf-skills@platform-architecture-analyze

指定 Agent (Claude Code)

npx skills add forcedotcom/sf-skills --skill platform-architecture-analyze -a claude-code -g -y

安装 repo 全部 skill

npx skills add forcedotcom/sf-skills --all -g -y

预览 repo 内 skill

npx skills add forcedotcom/sf-skills --list

SKILL.md

Frontmatter
{
    "name": "platform-architecture-analyze",
    "metadata": {
        "cliTools": [
            {
                "tool": [
                    "sf"
                ],
                "semver": ">=2.0.0"
            }
        ],
        "relatedSkills": [
            "dx-code-analyzer-run",
            "platform-lsp-integrate",
            "platform-metadata-retrieve",
            "platform-apex-generate"
        ]
    },
    "description": "Analyze a Salesforce project against the Salesforce Well-Architected framework (Trusted \/ Easy \/ Adaptable). Use when the developer asks to \"review the architecture\", \"run a Well-Architected check\", \"audit this project\", \"is this project well-architected?\", \"assess security\/governor-limit\/packageability risk across the project\", or wants a holistic code-and-metadata health report. Grades the criteria that are observable from code and metadata (sharing\/FLS, bulkification, selective SOQL, trigger-handler separation, legacy tech, packageability) with file:line evidence, and emits a human checklist for governance\/process pillars it cannot see (security matrix, BCP, roadmaps, AI governance). Distinct from `dx-code-analyzer-run` (single-tool Code Analyzer scan of Apex) — this skill is a multi-pillar architectural review that orchestrates several analysis skills and maps findings to Well-Architected. Read-only: it grades and advises, never edits.",
    "allowed-tools": [
        "Bash",
        "Read",
        "Glob",
        "Grep"
    ]
}

Analyzing Architecture (Well-Architected Review)

Grade a Salesforce DX project against the Salesforce Well-Architected framework and produce an honest, evidence-backed report: a pillar-scored table for what's observable in code and metadata, plus a human checklist for the governance/process concerns a local repo can't reveal.

This skill is an orchestrator. It does not re-implement static analysis — it drives the analysis skills the plugin already ships and maps their output onto the Well-Architected pillars. It is read-only: it grades and recommends; it never edits, deploys, or deletes.

It also backs the architecture-review agent, which runs this exact workflow as a dedicated read-only reviewer. Invoke the agent for an end-to-end review; use this skill directly when you want the workflow inline in the current session.

Capability resolution

  1. Skill-orchestrated review (this skill) — runs the observable checks by delegating to existing skills/MCP tools, scores each sub-pillar, and emits the manual checklist.
  2. Direct CLI / grep — used only for the lightweight structural signals the rubric names (sharing keywords, legacy-tech file types, deploy strategy). Fine standalone, but skips the pillar scoring and the governance checklist this skill provides.
  3. API — not applicable.

The rubric (read these first)

Before scoring, read the three reference files — they are the source of truth:

Workflow

Step 1 — Scope the project

# Package directories + API version
cat sfdx-project.json

Establish:

  • Package dirs (from packageDirectories[].path) — where the source lives.
  • Inventory — count Apex classes, triggers, LWC bundles, Aura, Flows, objects:
    find <pkgdir> -name '*.cls' | wc -l
    find <pkgdir> -name '*.trigger' | wc -l
    find <pkgdir> -name '*.js-meta.xml' | wc -l   # LWC bundles
    
  • Tooling signals — does the repo have tests (*Test.cls, __tests__/), CI (.github/workflows/), linting (.eslintrc*, .prettierrc*), a package.xml vs source/package strategy?
  • Org connectionsf org display --json succeeds → org-dependent checks (OWD, permission sets) are in play; otherwise mark them manual.

Record the scope line for the report header.

Step 2 — Run the observable checks (delegate; don't re-scan)

Work through references/observable-checks.md. For the heavy lifting, delegate:

  • Apex security + performancedx-code-analyzer-run. It runs sf code-analyzer and classifies findings by severity. Map its rules onto the rubric:
    • ApexSOQLInjection, ApexCRUDViolation, ApexInsecureEndpoint, ApexBadCryptoSecure
    • ApexSharingViolationsSecure (sharing) / Composable (separation)
    • OperationWithLimitsInLoop, OperationWithHighCostInLoopReliable / Automated
    • AvoidDebugStatementsAutomated
  • Inline SOQL parse + selectivity, compile-level diagnosticsplatform-lsp-integrate (apex_diagnostics, lwc_diagnostics, check_soql_selectivity) when lsp_health is green → Reliable / Automated.
  • OWD / sharing model / permission setsplatform-metadata-retrieve + sf org inspection, only if an org is connected → Secure.

For the lightweight structural signals, grep directly (patterns in references/observable-checks.md), e.g.:

# Secure — classes missing a sharing keyword
grep -rLE 'with(out)? sharing|inherited sharing' --include='*.cls' <pkgdir>

# Intentional — legacy tech still present
find <pkgdir> -name '*.workflow-meta.xml' -o -name '*.flowDefinition-meta.xml'
grep -rl '@future' --include='*.cls' <pkgdir>

# Composable — deploy strategy
ls manifest/package.xml 2>/dev/null            # package.xml-driven (anti-pattern past PoC)
grep -l '"path"' sfdx-project.json             # source/package strategy

# Composable — runtime config in custom settings vs CMT
find <pkgdir> -path '*objects*' -name '*.object-meta.xml' | xargs grep -l 'CustomSetting' 2>/dev/null

Collect every finding with file:line evidence. A check with no evidence is not a pass and not a fail — it's "not observable" and moves to the manual checklist.

Step 3 — Score each observable sub-pillar

Assign ✅ / ⚠️ / ❌ per sub-pillar using the thresholds in references/observable-checks.md:

  • no anti-patterns found in the observable checks for that sub-pillar.
  • ⚠️ low/moderate findings, or only some criteria observable.
  • critical/high findings (e.g. SOQL injection, FLS bypass, SOQL-in-loop at scale).

Then roll the sub-pillar verdicts up to a pillar verdict (worst-of, with a note).

Step 4 — Emit the manual checklist

Copy the [manual] criteria from references/manual-review-checklist.md into the report as unchecked items, grouped by pillar. Label the section clearly: "not auto-graded — assess with your team." Do not guess at these; the point is to hand the developer a structured governance checklist, not to fake a score.

Step 5 — Report

Produce one report using the format below. Lead with pillar verdicts, then observable findings (Trusted/Secure first — never bury security under style), then the manual checklist, then recommended next steps that name the skill which would apply each fix.

Well-Architected Review — <project name>
Scope: <pkg dirs>, <N classes / M triggers / K LWC>, tests: <y/n>, CI: <y/n>, org: <connected alias / none>

PILLAR VERDICTS
  🛡️ Trusted     <✅|⚠️|❌>  (Secure …, Compliant …, Reliable …)
  ⚡ Easy         <✅|⚠️|❌>  (Intentional …, Automated …, Engaging …)
  🔁 Adaptable    <✅|⚠️|❌>  (Resilient …, Composable …)

OBSERVABLE FINDINGS  (graded from code + metadata)
  Sub-pillar | Verdict | Finding | Evidence (file:line / tool)

MANUAL REVIEW  (not auto-graded — assess with your team)
  [ ] <item>  …

RECOMMENDED NEXT STEPS
  - <highest-signal fix> → via `<skill>`

Examples

Example 1 — "Is this project well-architected?"

Scope the project, run all observable checks (delegating Apex analysis to dx-code-analyzer-run), score all three pillars, emit the full manual checklist, and report. This is the default full review.

Example 2 — "Review my project's security and governor-limit risk"

Narrow to the Secure and Reliable/Automated sub-pillars: run dx-code-analyzer-run with a security + performance selector, use platform-lsp-integrate check_soql_selectivity for selectivity, grep for missing sharing keywords. Score those sub-pillars; still emit the Secure/Compliant manual items (security matrix, encryption strategy). Skip the Adaptable deep-dive unless asked.

Example 3 — "Run a Well-Architected check before we package this for release"

Full review, weighting Composable (packageability — CMT vs custom settings, loose coupling, LATEST aliasing, no package.xml-driven deploys) and Resilient (source-tracked, CI, no failed deploys). Lead the report with the packageability readiness verdict.

Failure modes

Symptom Cause Recovery
dx-code-analyzer-run reports the analyzer isn't installed Code Analyzer v5 missing Note it in the report; fall back to grep-based structural checks for Apex and mark PMD-only criteria "not observable".
sf org display fails No org connected Mark OWD / permission-set / org-metadata criteria as manual; grade only file-based criteria.
LSP tools return lsp_disabled / no_apex_workspace LSP off or no workspace Skip the LSP-grounded checks; rely on dx-code-analyzer-run + grep. Note the gap.
No sfdx-project.json Not an SFDX project Stop — this skill reviews SFDX projects. Tell the developer.
Huge repo, scan is slow Project-wide PMD + graph build Scope dx-code-analyzer-run to the package dir; note that cross-file (sfge) findings may be partial.

Rules

  • Read the three references/*.md files before scoring — the rubric is the source of truth.
  • Delegate observable detection to existing skills/MCP tools; grep only for the lightweight structural signals the rubric names.
  • Every observable finding carries file:line (or tool-result) evidence. No evidence → manual checklist, not the scored table.
  • Never score a [manual] governance criterion from inference — list it for human review.
  • Read-only: recommend fixes and name the skill that applies them (platform-apex-generate for Apex authoring / trigger refactoring); never edit, deploy, or delete.
  • Lead with Trusted/Secure findings; don't bury security under style nits.
  • Surface zero-finding sub-pillars briefly ("no issues found in observable checks") rather than omitting them.

Version History

  • 1.33.0 Current 2026-08-05 13:00

Same Skill Collection

plugins/builder/salesforce-development/skills/automation-flow-generate/SKILL.md
plugins/builder/salesforce-development/skills/platform-apex-logs-debug/SKILL.md
plugins/builder/salesforce-development/skills/platform-capability-search/SKILL.md
plugins/builder/salesforce-development/skills/platform-custom-application-generate/SKILL.md
plugins/builder/salesforce-development/skills/platform-custom-tab-generate/SKILL.md
plugins/builder/salesforce-development/skills/platform-deploy-validate/SKILL.md
plugins/builder/salesforce-development/skills/platform-destructive-deploy/SKILL.md
plugins/builder/salesforce-development/skills/platform-lightning-app-coordinate/SKILL.md
plugins/builder/salesforce-development/skills/platform-list-view-generate/SKILL.md
plugins/builder/salesforce-development/skills/platform-metadata-deploy/SKILL.md
plugins/builder/salesforce-development/skills/platform-permission-set-generate/SKILL.md
plugins/builder/salesforce-development/skills/platform-quick-deploy/SKILL.md
plugins/builder/salesforce-development/skills/platform-validation-rule-generate/SKILL.md
skills/automation-flow-generate/SKILL.md
skills/commerce-b2b-open-code-components-integrate/SKILL.md
skills/commerce-b2b-store-create/SKILL.md
skills/data360-activate/SKILL.md
skills/data360-code-extension-generate/SKILL.md
skills/data360-prepare/SKILL.md
skills/data360-schema-get/SKILL.md
skills/design-systems-slds-apply/SKILL.md
skills/dx-org-permission-set-assign/SKILL.md
skills/dx-org-switch/SKILL.md
skills/experience-lwc-generate/SKILL.md
skills/experience-ui-bundle-file-upload-generate/SKILL.md
skills/experience-ui-bundle-site-generate/SKILL.md
skills/external-diagram-mermaid-generate/SKILL.md
skills/external-diagram-visual-generate/SKILL.md
skills/platform-apex-logs-debug/SKILL.md
skills/platform-custom-application-generate/SKILL.md
skills/platform-custom-lightning-type-generate/SKILL.md
skills/platform-custom-tab-generate/SKILL.md
skills/platform-lightning-app-coordinate/SKILL.md
skills/platform-list-view-generate/SKILL.md
skills/platform-metadata-deploy/SKILL.md
skills/platform-permission-set-generate/SKILL.md
skills/platform-validation-rule-generate/SKILL.md
plugins/builder/salesforce-development/skills/agentforce-generate/SKILL.md
plugins/builder/salesforce-development/skills/agentforce-observe/SKILL.md
plugins/builder/salesforce-development/skills/agentforce-test/SKILL.md
plugins/builder/salesforce-development/skills/dx-code-analyzer-configure/SKILL.md
plugins/builder/salesforce-development/skills/dx-code-analyzer-custom-rule-create/SKILL.md
plugins/builder/salesforce-development/skills/dx-code-analyzer-run/SKILL.md
plugins/builder/salesforce-development/skills/dx-org-manage/SKILL.md
plugins/builder/salesforce-development/skills/dx-project-create/SKILL.md
plugins/builder/salesforce-development/skills/platform-apex-anonymous-run/SKILL.md
plugins/builder/salesforce-development/skills/platform-apex-generate/SKILL.md
plugins/builder/salesforce-development/skills/platform-apex-test-generate/SKILL.md
plugins/builder/salesforce-development/skills/platform-apex-test-run/SKILL.md

Metadata

Files
0
Version
1.33.0
Hash
fdaa47c9
Indexed
2026-08-05 13:00

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-05 21:56
浙ICP备14020137号-1 $Map of visitor$