org-health-assessment
Assess the health of a Salesforce org across security, automation, permissions, data model, schema limits, license utilization, and large data volumes —…
Skill by jterratsdev
Chalk Labs
Need help deploying org-health-assessment?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/jterratsdev-org-health-assessment
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data, security, sales
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/org-health-assessment
What's inside
- Skill name
org-health-assessment- Description
- Assess the health of a Salesforce org across security, automation, permissions, data model, schema limits, license utilization, and large data volumes — grounded in a full metadata retrieve plus live-org queries, never in grep alone. USE FOR: org assessment, org health check, org audit, org review, brownfield onboarding, pre-go-live audit, implementation diagnostic, technical debt review, automation conflict, permission architecture, license utilization, LDV, data volume. Reusable by Security, Technical Architect, and Admin profiles.
- License
- BSD-3-Clause
- Instructions
- 224 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Salesforce Org Health Assessment This skill carries the per-domain **criteria** for an org assessment. The method **discipline** (grounding, grep-is-a-locator, declare-gaps, root-cause) lives in the behavioral contract — this skill does not re-define it; it applies it per domain. --- ## 0. Declare the assessment PURPOSE first State the purpose up front. It changes the OUTPUT framing only — the grounding discipline is identical in every mode. **Default to neutral baseline reporting:** state configuration as fact; flag a control as a risk only when the evidence shows it. A robust password policy is "robust", not a finding. Do not hunt for fault, and do not presuppose health either — a count is a locator, not a verdict. | `purpose` | Output framing | |-----------|----------------| | `failed-diagnostic` | findings + severity + remediation; root-cause of degradation | | `brownfield-onboarding` | baseline/orientation: what exists, current conventions, the automation/permission/data-model "lay of the land", and the constraints a new feature must respect (existing OWD, automation order on objects you will touch, headroom the feature consumes) | | `pre-go-live` | release-readiness gate against the criteria below | The domains and criteria stay the same across purposes; only the framing (findings vs baseline vs readiness) changes. --- ## 1. Grounding precondition — TWO-PRONGED (do this before any domain analysis) You cannot assess what you did not retrieve, and configuration alone cannot answer runtime questions. Both prongs are mandatory; whatever a prong could not capture is a **declared gap**, never an inference. ### Preflight — verify the connected user can actually read everything (BEFORE the retrieve) A retrieve runs with the connected user's effective permissions and **silently omits any metadata type that user cannot read** — the retrieve still "succeeds", so the gap is invisible unless you check first. **System Administrator profile alone is NOT sufficient:** several assessment-critical reads come from permission sets / permission-set groups, not the profile. Verify access up front; if it is missing, STOP and request elevation rather than producing an assessment over partial metadata. Identify the connected user and check the permissions a full retrieve depends on: ```bash # Who am I, and is this even the right org? sf org display --json # Effective permissions of the connected user (profile + all assigned permission sets) sf data query --use-tooling-api --json --query "SELECT PermissionsModifyAllData, PermissionsViewAllData, PermissionsViewSetup, PermissionsAuthorApex, PermissionsViewAllProfiles, PermissionsManageRoles FROM PermissionSet WHERE Id IN (SELECT PermissionSetId FROM PermissionSetAssignment WHERE AssigneeId = '<connected-user-id>')" ``` Minimum permissions a complete assessment retrieve depends on (held by the profile OR an assigned permission set / PSG — the effective union is what matters): - **View Setup and Configuration** (`PermissionsViewSetup`) — read org-wide setup metadata. - **Modify Metadata Through Metadata API Functions** (or **Modify All Data**) — Metadata API access. - **View All Data** (`PermissionsViewAllData`) — read records across objects for the runtime queries. - **Author Apex** (`PermissionsAuthorApex`) — retrieve Apex classes/triggers in full. - **View All Profiles / Manage Roles** — read the permission-architecture domain. - Feature-gated reads (e.g. Flows, Reports, Connected Apps) that require the corresponding permission set — a user without them yields a retrieve missing those types. Rule: **record the preflight result as evidence.** If the connected user is a System Administrator but lacks a required permission set / PSG, that is a declared gap on every domain that depends on the missing read — do not infer the missing metadata, and do not present the assessment as complete. ### Prong A — Full metadata retrieve (configuration domains) Generate the manifest FROM the org, then retrieve against it. **Default = full retrieve** (all supported types) so every domain analyzes complete metadata. ```bash sf project generate manifest --output-dir ./manifest --from-org <org-username-or-alias> sf project retrieve start --manifest ./manifest/package.xml ``` Rules: 1. **Default is full**, never scoped. A scoped retrieve pre-decides what is irrelevant before the analysis exists — the same grounding failure, upstream. 2. **Any exclusion is explicit and declared** in the output (what was skipped and why). Reports/ListViews/EmailTemplates/Translations are assessment SIGNALS (report sprawl, non-selective filters, dead metadata, localization), not "noise" to filter out. 3. **Capture retrieve fidelity as evidence**: which types and counts came back, and any that FAILED (e.g. Flows not downloaded due to a missing permission — a finding in itself, and a silent gap if unrecorded). 4. **Volume runs on the durable background lane.** A full retrieve of a large org (a real manifest can be ~21k components) is long-running and must survive the chat turn. Do NOT narrow scope just to finish inside one turn. ### Prong B — Live-org queries (runtime domains) Licenses and data volumes do NOT live in metadata. The retrieve brings *configuration*, not *runtime state*. Use the read-only org queries for the runtime domains. **Every number links to the exact query that produced it, persisted as evidence — the query is the evidence, not the assertion.** Report as *used vs allocated (headroom)*, never a bare number. ```bash # Org allocations / headroom (storage, API, async, etc.) sf org list limits --json # User licenses — assigned vs available per type sf data query --query "SELECT Name, TotalLicenses, UsedLicenses FROM UserLicense" --json # Permission-set licenses sf data query --query "SELECT PermissionSetLicense.MasterLabel, AssigneeId FROM PermissionSetLicenseAssign" --json # Managed-package licenses sf data query --query "SELECT AllowedLicenses, UsedLicenses, NamespacePrefix FROM PackageLicense" --json # Row counts per object (the LDV locator) sf data query --query "SELECT COUNT() FROM <Object>" --json # Ownership/lookup skew (a few owners holding >10k records) sf data query --query "SELECT OwnerId, COUNT(Id) FROM <Object> GROUP BY OwnerId" --json ``` A domain that needs runtime data but had no org connection is a **declared gap**, not an
From jterratsdev/smart-deployment, BSD-3-Clause.
More from jterratsdev/smart-deployment
- 0.570score
elements-sync
jterratsdev
Create and update Requirements and Stories in Elements.cloud from story maps, backlog documents, or free-form descriptions.
SkillAFreshness: AClaude Code +9 - 0.565score
sf-code-analyzer
jterratsdev
Run static code analysis on Salesforce projects using sf code-analyzer.
SkillAFreshness: AClaude Code +9 - 0.565score
qa-evidence-pack
jterratsdev
Build reviewable QA evidence packs that map acceptance criteria to observable outcomes, command results, screenshots, traces, videos, API contracts…
SkillAFreshness: AClaude Code +9 - 0.565score
record-adr
jterratsdev
Record an Architecture Decision Record (ADR).
SkillAFreshness: AClaude Code +9 - 0.565score
refine-story-functionally
jterratsdev
ADP Phase 1 — functional story refinement.
SkillAFreshness: AClaude Code +9 - 0.565score
refine-story-technically
jterratsdev
ADP Phase 2 — technical story refinement.
SkillAFreshness: AClaude Code +9 - 0.565score
sf-deploy
jterratsdev
Deploy and validate Salesforce metadata using @jterrats/profiler for complete profile retrieval and @jterrats/smart-deployment for dependency-aware wave…
SkillAFreshness: AClaude Code +9 - 0.565score
backlog-sync
jterratsdev
Push user stories from story maps to issue trackers.
SkillAFreshness: AClaude Code +9 - 0.565score
project-knowledge-bootstrap
jterratsdev
Scan a Salesforce project structure and populate .setup-agents/project-knowledge.md with architecture decisions, naming conventions, label language, and…
SkillAFreshness: AClaude Code +9 - 0.565score
prompt-registry
jterratsdev
Maintain the .generated-prompts/ register: read before creating any artifact to infer project conventions, write/update after creation.
SkillAFreshness: AClaude Code +9 - 0.564score
transcription-evidence
jterratsdev
Transcribe audio/video files and record as workflow evidence
SkillAFreshness: AClaude Code +9 - 0.561score
generate-rom
jterratsdev
Produce a Rough Order of Magnitude (ROM) effort baseline for a story or epic and record it against the local backlog task.
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 14
- Last commit (this folder)
- Aug 5, 2026 (2 months ago)
- Last release
- Sep 29, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- BSD-3-Clause
- Repository
- github.com/jterratsdev/smart-deployment
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from jterratsdev
- 0.570score
elements-sync
jterratsdev
Create and update Requirements and Stories in Elements.cloud from story maps, backlog documents, or free-form descriptions.
SkillAFreshness: AClaude Code +9 - 0.565score
prompt-registry
jterratsdev
Maintain the .generated-prompts/ register: read before creating any artifact to infer project conventions, write/update after creation.
SkillAFreshness: AClaude Code +9 - 0.565score
sf-code-analyzer
jterratsdev
Run static code analysis on Salesforce projects using sf code-analyzer.
SkillAFreshness: AClaude Code +9 - 0.565score
project-knowledge-bootstrap
jterratsdev
Scan a Salesforce project structure and populate .setup-agents/project-knowledge.md with architecture decisions, naming conventions, label language, and…
SkillAFreshness: AClaude Code +9 - 0.565score
qa-evidence-pack
jterratsdev
Build reviewable QA evidence packs that map acceptance criteria to observable outcomes, command results, screenshots, traces, videos, API contracts…
SkillAFreshness: AClaude Code +9 - 0.565score
record-adr
jterratsdev
Record an Architecture Decision Record (ADR).
SkillAFreshness: AClaude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get org-health-assessment running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
org-health-assessment skill. Agent Mart. https://agentmart.dev/skills/jterratsdev-org-health-assessment (last updated 2026-10-24)