WYRE-AI/msp-claude-plugins/msp-claude-plugins/inforcer/inforcer/skills/assessments/SKILL.md
Inforcer Assessments
Inforcer assessments: listing a tenant's assessments (read-only) and triggering an assessment run — the one mutating action in the entire Inforcer surface. Covers what a run refreshes (the data behind alignment, secure score, and drift), its tenant-scoping, and the confirmation discipline it requires.
- Source repository stars
- 42
- Declared platforms
- 0
- Static risk flags
- 0
- Last source update
- 2026-08-28
- Source checked
- 2026-08-28
Decision brief
What it does: where it fits
An Inforcer assessment is the evaluation that produces a tenant's alignment, secure score, and drift data. This skill covers two things: listing assessments (read-only) and running one — which is the single mutating action in the entire Inforcer plugin. Everything else Inforcer…
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/inforcer/inforcer/skills/assessments"Inspect the Agent Skill "Inforcer Assessments" from https://github.com/WYRE-AI/msp-claude-plugins/blob/5005f73ba2f52cd299f58aa6bb79f4e70ae87103/msp-claude-plugins/inforcer/inforcer/skills/assessments/SKILL.md at commit 5005f73ba2f52cd299f58aa6bb79f4e70ae87103. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Workflow patterns
ctid = resolve("Acme") integer Client Tenant ID prior = inforcerassessmentslist(clientTenantId=ctid) is a recent run enough?
ctid = resolve("Acme") integer Client Tenant ID prior = inforcerassessmentslist(clientTenantId=ctid) is a recent run enough? - 02
Anti-triggers
"Run a compliance check on this tenant" — if the intent is CIPP's
"Run a compliance check on this tenant" — if the intent is CIPP'sReading the results — a run only refreshes data. Scores and driftChanging the tenant — a run re-measures; it never deploys policy, - 03
Tools
List the assessments for a tenant — past runs and their status/results metadata.
List the assessments for a tenant — past runs and their status/results metadata.Use this to see when a tenant was last assessed and whether prior runs completed. Check this before running a new assessment — if a recent run already covers what you need, you don't need to trigger another. Page contin…Trigger a new assessment run for a tenant. This is the one action in the Inforcer surface that changes state: it kicks off an evaluation that refreshes the data feeding alignment scores, secure score, and drift detail. - 04
inforcerassessmentslist (read-only)
List the assessments for a tenant — past runs and their status/results metadata.
List the assessments for a tenant — past runs and their status/results metadata.Use this to see when a tenant was last assessed and whether prior runs completed. Check this before running a new assessment — if a recent run already covers what you need, you don't need to trigger another. Page contin… - 05
inforcerassessmentsrun (WRITE — requires confirmation)
Trigger a new assessment run for a tenant. This is the one action in the Inforcer surface that changes state: it kicks off an evaluation that refreshes the data feeding alignment scores, secure score, and drift detail.
Trigger a new assessment run for a tenant. This is the one action in the Inforcer surface that changes state: it kicks off an evaluation that refreshes the data feeding alignment scores, secure score, and drift detail.HIGH-IMPACT ACTION — confirm first. Unlike every other Inforcer tool, this one does something. Before invoking it you MUST: 1. Confirm the exact tenant — state the resolved display name and the integer Client Tenant ID…
Permission review
Static risk signals and limitations
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 92/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 42 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- WYRE-AI/msp-claude-plugins
- Skill path
- msp-claude-plugins/inforcer/inforcer/skills/assessments/SKILL.md
- Commit
- 5005f73ba2f52cd299f58aa6bb79f4e70ae87103
- License
- Apache-2.0
- Collected
- 2026-08-28
- Default branch
- main
View the original SKILL.md
Inforcer Assessments
An Inforcer assessment is the evaluation that produces a tenant's
alignment, secure score, and drift data. This skill covers two things:
listing assessments (read-only) and running one — which is the
single mutating action in the entire Inforcer plugin. Everything else
Inforcer exposes is read-only; inforcer_assessments_run is the one
exception, so it carries a confirmation discipline that the read tools do
not.
Read api-patterns first for the gateway headers, the region requirement, the envelope, and pagination, and tenant-management for resolving a tenant to its integer Client Tenant ID. Assessment calls are tenant-scoped by that integer id.
Anti-triggers
- "Run a compliance check on this tenant" — if the intent is CIPP's
standards evaluation, that is
cipp_run_standards_checkincipp-standards. The two are different products with different baselines; running the wrong one produces a report against a template nobody asked about. - Reading the results — a run only refreshes data. Scores and drift
are read in
inforcer-compliance-reportingandinforcer-baseline-alignment. - Changing the tenant — a run re-measures; it never deploys policy,
remediates drift, or restores configuration. Those M365 changes are
cipp-standards,cipp-security, or the Inforcer UI.
Tools
inforcer_assessments_list (read-only)
List the assessments for a tenant — past runs and their status/results metadata.
inforcer_assessments_list(clientTenantId=1423)
Use this to see when a tenant was last assessed and whether prior runs
completed. Check this before running a new assessment — if a recent run
already covers what you need, you don't need to trigger another. Page
continuationToken to completion.
inforcer_assessments_run (WRITE — requires confirmation)
Trigger a new assessment run for a tenant. This is the one action in the Inforcer surface that changes state: it kicks off an evaluation that refreshes the data feeding alignment scores, secure score, and drift detail.
inforcer_assessments_run(clientTenantId=1423) # only after explicit confirmation
HIGH-IMPACT ACTION — confirm first. Unlike every other Inforcer tool, this one does something. Before invoking it you MUST:
- Confirm the exact tenant — state the resolved display name and the integer Client Tenant ID you are about to run against. A run against the wrong tenant is a real, unintended side effect.
- Get explicit user confirmation — do not trigger a run as a convenience step, in a loop, or to "refresh data" without the user asking. Wait for an explicit yes.
- Check
inforcer_assessments_listfirst — avoid kicking off a redundant run when a recent assessment already exists.Treat it like any change action: announce intent, name the target, pause for confirmation, then execute. Never batch-run assessments across the portfolio without per-tenant (or explicitly-scoped) confirmation.
When a run is warranted
| Situation | Run? |
|---|---|
| Alignment/secure-score data looks stale before a report | Yes — after confirming the tenant and checking the last run |
| Just deployed/changed policy in the Inforcer UI and want fresh drift | Yes — to re-measure against the baseline |
| A recent completed run already covers the window | No — read the existing results instead |
| "Refresh everything" across many tenants, unprompted | No — that's a batch of side effects; confirm scope explicitly first |
Workflow patterns
Safe single-tenant refresh
ctid = resolve("Acme") # integer Client Tenant ID
prior = inforcer_assessments_list(clientTenantId=ctid) # is a recent run enough?
# If a fresh run is genuinely needed AND the user confirmed for THIS tenant:
inforcer_assessments_run(clientTenantId=ctid)
State the tenant name + integer id, confirm, then run. After the run, read
results via inforcer_assessments_list and the
compliance-reporting /
baseline-alignment tools — the run
produces the data; those skills interpret it.
Caveats
inforcer_assessments_runis the only write in the Inforcer surface. Running an assessment refreshes evaluation data — it does not deploy policy, remediate drift, back up, or restore configuration. Do not imply that triggering an assessment changes the tenant's actual M365 configuration; it only re-measures it.- The API is community-sourced (no official public docs); the assessment
object shape, status values, and the run parameters are illustrative and
credited to
royklo/InforcerCommunity. Verify on first use. - Assessment calls are tenant-scoped by the integer Client Tenant ID — resolve the tenant first, and double-check the id specifically before a run, since this is the one place a wrong id has a side effect rather than just an empty read.
Related Skills
- tenant-management - resolve and confirm the integer Client Tenant ID before a run
- baseline-alignment - the alignment/drift data a fresh assessment refreshes
- compliance-reporting - read posture from assessment results
- api-patterns - envelope, pagination, region, and the read-only-except-this caveat
Frequently asked questions
What to verify before installation and use
What does the Inforcer Assessments source document cover?
An Inforcer assessment is the evaluation that produces a tenant's alignment, secure score, and drift data. This skill covers two things: listing assessments (read-only) and running one — which is the single mutating action in the entire Inforcer plugin. Everything else Inforcer…
How do I install Inforcer Assessments?
The source record exposes this install command: npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/inforcer/inforcer/skills/assessments". Inspect the command and pinned source before running it.
Alternatives
Compare before choosing
garrytan/gbrain
bulk-ingestion
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
app-store-optimization
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
wanshuiyin/Auto-claude-code-research-in-sleep
citation-audit
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
prowler-cloud/prowler
postgresql-indexing
PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance