Skip to content
alyn
LeoYeAI

Access Lifecycle skill

Use when preparing or running a user access review, checking that leavers lost their access, finding orphaned or ownerless service accounts, answering an auditor's access-control request for SOC 2, ISO 27001, PCI DSS, HIPAA or NIST 800-53, or checking whether a finished review campaign will hold up. Diffs the HR roster against account exports, tests the campaign for coverage, self-review, unremoved revokes and rubber

$npx skills add LeoYeAI/agent-master-skills --skill access-lifecycle
View this skill on GitHubLeoYeAI/agent-master-skills/skills/access-lifecycle/SKILL.md
Pack stars
2,186
Pack installs
499
Alyn Score
59/99
Updated
5 days ago
License
MIT
– views – installs via Alyn

LeoYeAI

Access Lifecycle

Install Access Lifecycle

Pick your agent. Every command is ready to paste.

$npx skills add LeoYeAI/agent-master-skills --skill access-lifecycle

The open skills CLI detects your agents (Claude Code, Cursor, Codex and 70+ more) and installs to the right folder. Add -g to install globally.

01

Install it

Run the command above, or upload the folder in Claude.

02

Ask naturally

Describe the task. Your agent loads access-lifecycle when the request matches its description.

03

Name it if needed

If it does not trigger, say “use the access-lifecycle skill”. In Codex, type $access-lifecycle.

The skill itself

SKILL.md

FolderGitHub

Access Lifecycle

Portability: 3 stdlib scripts, no network, no IdP or HR connection. Export CSV, run, keep the output as evidence. Not audit advice. Periods and thresholds are your policy; the scripts make you state them.

Access reviews fail audits in four ordinary ways: the review ran on an incomplete export, someone approved their own access, a revoke was decided and never carried out, and leavers kept working accounts nobody looked at. Each script catches one class of these before the auditor does.

Workflow

# 1 - Diff: who has access that the HR roster says they should not?
python scripts/access_diff.py --roster hr_roster.csv --accounts accounts.csv \
  --inactive-days 90 --privileged-review-days 90 --as-of 2026-10-31
# 2 - Campaign: did the review cover everything, and did the revokes happen?
python scripts/access_review_campaign.py --decisions campaign.csv --population accounts.csv \
  --remediation-days 10 --close-date 2026-10-20
# 3 - Map: which controls do the exceptions break, and what evidence do you keep?
python scripts/control_evidence_mapper.py --diff diff.json --campaign campaign.json --framework soc2,iso27001

Step 1 joins each account to the roster on employee ID, then email. A terminated person with an enabled account is a blocker; one who logged in after their exit date is a worse one. Accounts that match nobody are orphans; service accounts need a named owner. Inactivity and privileged-review age use your periods.

Step 2 checks the campaign against the export it was built from. An enabled account missing from the campaign means the review did not cover the population, whatever the sign-off sheet says. It also catches undecided lines, self-review, revokes not removed inside your window, late decisions, and a reviewer who kept every line of a large batch at machine speed.

Step 3 turns findings into a per-control table: FAIL, EXCEPTIONS, NO_EXCEPTIONS, PARTLY_TESTED, NOT_TESTED or NOT_COVERED, each with what an auditor tests and the evidence to keep. There is no PASS.

The gates block on (exit 4)

  1. A leaver with an enabled account, or any login after the exit date.
  2. A privileged orphan account, or a privileged service account with no owner.
  3. An enabled account the campaign never reviewed.
  4. An undecided line, a self-review, or a decision with no reviewer named.
  5. A revoke or modify with no removal recorded past your remediation window.

Hard rules

  • Periods are policy. --inactive-days and --remediation-days have no default. PCI DSS 8.2.6 says 90 days; your policy may differ.
  • Prove removals by re-export. A closed ticket is not evidence the access is gone.
  • The export is evidence too. Keep the query, the pull time and the row count (PCAOB AS 1105.10).
  • A rubber-stamp flag is a signal, not proof. Ask the reviewer what they checked; do not call it fraud.
  • No PASS from a script. Operating effectiveness is the auditor's conclusion.

Scripts

Script Role Exit codes
scripts/access_diff.py Roster vs account export: leavers, orphans, ownerless service accounts, movers, privileged review age, inactivity 0 clean · 2 findings · 3 bad input · 4 blocked
scripts/access_review_campaign.py Population coverage, undecided, self-review, unremoved revokes, late decisions, rubber-stamp signal 0 · 2 · 3 · 4 incomplete
scripts/control_evidence_mapper.py Findings → per-control status for ISO 27001, SOC 2, NIST 800-53, PCI DSS, HIPAA, SOX IPE 0 · 2 exceptions · 3 · 4 fail

All support --help, --sample and --output json.

References and assets

Tips for Access Lifecycle

  • • Start a fresh session after installing so your agent picks up the new skill.
  • • This skill ships scripts. Read them before the first run, and run it in a project without secrets first.
  • • It bundles reference files. The agent reads them only when needed, so they cost no context until then.
  • • It is part of a pack with 29 skills. Install only the ones you need with --skill to keep triggers precise.
  • • If two skills overlap, mention the one you want by name.

Questions about Access Lifecycle

What does the Access Lifecycle skill do?

Use when preparing or running a user access review, checking that leavers lost their access, finding orphaned or ownerless service accounts, answering an auditor's access-control request for SOC 2, ISO 27001, PCI DSS, HIPAA or NIST 800-53, or checking whether a finished review campaign will hold up. Diffs the HR roster against account exports, tests the campaign for coverage, self-review, unremoved revokes and rubber

How do I install Access Lifecycle?

Run "npx skills add LeoYeAI/agent-master-skills --skill access-lifecycle" in your project. The skills CLI installs it for Claude Code, Cursor, Codex and 70+ other agents. In Claude on the web, upload the skill folder as a ZIP under Customize > Skills.

Does Access Lifecycle work in Cursor and Codex?

Yes. Access Lifecycle uses the open SKILL.md format, so it works in Claude Code, Claude, Cursor, OpenAI Codex, Gemini CLI, GitHub Copilot and other agents that support agent skills.

Is Access Lifecycle free?

Access Lifecycle is open source on GitHub under the MIT license. It is free to install; check the license before commercial use.

Who made Access Lifecycle?

Access Lifecycle is published by LeoYeAI in the LeoYeAI/agent-master-skills repository, together with 28 other skills.

Similar skills. From other creators.