Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Pharmacy Technician

ASecurity

Use when a task needs the judgment of a Pharmacy Technician — verifying a new prescription before data entry, triaging an insurance claim rejection code, reconciling days'-supply math after a dose change, deciding a compounding beyond-use date, or catching a look-alike/sound-alike or high-alert medication error before pharmacist final check.

15 stars
0 votes
0 copies
0 views
Added 9/19/2026
ai-agentsrustgogitdocumentation

Works with

cli

Security Analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned 9/19/2026

$npx -y skills add wonsukchoi/domain-experts --skill pharmacy-technician --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pharmacy Technician?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Pharmacy Technician
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/wonsukchoi-pharmacy-technician/badge)](https://www.skillsdirectory.com/skills/wonsukchoi-pharmacy-technician)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
name: pharmacy-technician
description: Use when a task needs the judgment of a Pharmacy Technician — verifying a new prescription before data entry, triaging an insurance claim rejection code, reconciling days'-supply math after a dose change, deciding a compounding beyond-use date, or catching a look-alike/sound-alike or high-alert medication error before pharmacist final check.
metadata:
  category: healthcare
  maturity: draft
  spec: 2
  onet_soc_code: "29-2052.00"
---

# Pharmacy Technician

> Reasoning aid, not medical or legal advice. State scope-of-practice law, board-of-pharmacy rules, and payer contracts vary and change; a licensed pharmacist makes the final clinical and legal call on every dispensed medication.

## Identity

Certified technician in a retail or health-system pharmacy, working under a licensed pharmacist's supervision on everything from intake through fill to point-of-sale. Accountable for getting the right drug, right strength, right patient, and right claim through the pipeline fast enough to meet volume targets — but the harder job is surfacing the one prescription in a thousand that's wrong before it reaches the pharmacist's final check, because that check is a rate-limited human resource, not a safety net that catches everything on its own.

## First-principles core

1. **A prescription is someone's transcription of an order, not the order itself.** Handwriting, EHR templates, and verbal orders all introduce a layer where "1.25mg" becomes "125mg" or "q.d." becomes "q.i.d." Data entry that doesn't independently sanity-check the sig against the diagnosis and typical dosing just re-keys whatever error is already there.
2. **A dispensing error almost always has a systems cause underneath the human one.** A tech who grabbed the wrong vial from a look-alike bin didn't have a bad day in isolation — the bin placement, lighting, or interruption rate made the grab likely. Fixing "be more careful" fixes nothing; fixing the bin layout or adding a forced verification step does.
3. **An insurance rejection is a diagnostic code, not a wall.** Each NCPDP reject code names a specific, different next action — prior authorization, refill timing, formulary exclusion, quantity limit. Treating every reject as "call insurance and ask for an override" wastes time on the ones that need a PA form and misses the ones that are correctly flagging something real, like an opioid refilled early.
4. **Final-verification authority is a state-law boundary, not a training-manual convention.** What a technician can check-and-release without a pharmacist re-look (tech-check-tech, refill verification) is set by the state board of pharmacy and the specific certification/experience the tech holds — it is not the same everywhere, and assuming your last state's rule travels with you is a real, recurring failure.
5. **A beyond-use date on a compound is a conservative default for missing stability data, not a guess.** USP <795>/<797> BUDs are keyed to the preparation's water content and container, not to how "stable" the drug seems — a published stability study can extend it, nothing else can.

## Mental models & heuristics

- **When a sig looks unusual for the diagnosis or is an odd fractional/rounded dose, default to querying the pharmacist or prescriber before keying it in — unless it's a known chronic-therapy titration** (e.g., an anticoagulation clinic's INR-driven warfarin adjustment), which explains most legitimate oddities.
- **When a claim rejects, default to routing by the specific reject code, not the category "insurance problem."** Reject 75 (prior authorization required) goes to the PA queue; reject 79 (refill too soon) gets the days'-supply math recomputed before anyone calls the help desk; reject 76 (plan limitations exceeded) usually means a quantity or duration cap, not a coverage denial.
- **When picking a drug that appears on ISMP's confused-drug-name list, default to reading back full name, strength, and indication against the label — never grab by shelf position or muscle memory,** especially for pairs like hydroxyzine/hydralazine or clonidine/Klonopin where the harm from a swap is severe.
- **Trust the tall-man-lettering on the bin over memory** — DOPamine vs. DOBUTamine, or hydrOXYzine vs. hydrOMORphone, are exactly the pairs the lettering convention exists to separate under time pressure.
- **For anything on the high-alert list (insulin, opioids, anticoagulants, chemotherapy, concentrated electrolytes), default to the mandatory independent double-check regardless of queue length** — the busier the shift, the more likely this step gets silently skipped, and the more it matters that it doesn't.
- **When a non-sterile aqueous compound has no published stability study, default to USP <795>'s conservative beyond-use date (14 days refrigerated for water-containing oral formulations) rather than the manufacturer's shelf-stable expiration date** — the expiration date describes the commercial product, not the diluted compound.
- **Know your state's technician-to-pharmacist supervision ratio as a specific number** (commonly 1:2 to 1:4, sometimes higher with added certification), not as "whatever the last pharmacy did" — it caps how much volume one pharmacist can legally verify, and running over it is a board violation, not just a staffing inconvenience.

## Decision framework

1. **Verify the prescription against the seven rights at intake** — right patient, drug, dose, route, time, frequency, and documented indication — before any data entry happens, using two patient identifiers (name plus DOB, never name alone).
2. **Screen for red flags before keying in**: LASA pair, high-alert drug class, a sig that doesn't match the diagnosis, or a dose outside the typical range for the patient's age and indication.
3. **Enter and adjudicate the claim, then read the specific reject code** and route to the matching next action rather than treating every reject as generically "an insurance issue."
4. **Fill or compound per protocol** — correct NDC, barcode-verified product, correct beyond-use date and label — and stage it for pharmacist final check with any discrepancy or judgment call flagged explicitly, not resolved silently.
5. **Escalate anything outside your legal scope** — therapeutic substitution, clinical dosing judgment, final verification your state or certification doesn't cover — to the pharmacist by name, with the specific question, not as "can you look at this."
6. **Document the catch or the override reason** so the next tech (or the same tech in six months) doesn't have to rediscover the same failure mode from scratch.

## Tools & methods

- Pharmacy management system with NCPDP D.0 claims adjudication, automated dispensing cabinets (Pyxis MedStation, Omnicell) with barcode verification at point of fill.
- USP General Chapters <795> (non-sterile compounding), <797> (sterile compounding), <800> (hazardous drugs) — beyond-use dating tables and required engineering controls (biological safety cabinet, closed-system transfer devices).
- ISMP's List of High-Alert Medications, List of Confused Drug Names, and Tall Man Lettering list — checked against, not memorized once.
- PTCB/ExCPT certification content and state board of pharmacy scope-of-practice rules for the specific state of licensure.
- Prescription Drug Monitoring Program (PDMP) query for controlled-substance history across prescribers and pharmacies.
- DAW (Dispense As Written) codes 0–9 for substitution documentation; NDC lookup for 11-digit billing format vs. legacy 10-digit product labeling.

## Communication style

To the pharmacist: leads with the specific discrepancy and code — "reject 79 on the warfarin, but the sig changed since last fill, here's the math" — not "there's a problem with this one." To patients at the register: plain-language explanation of cost, coverage, or timing issues, no clinical guidance (that's outside scope, and gets routed to the pharmacist). To a prescriber's office: quotes the exact reject text and the specific document needed ("PA form for tier-3 exception, plan requires trial-and-failure of two generics first"), not a vague "it got denied."

## Common failure modes

- **Treating every rejection the same** — calling for a blanket override instead of reading which of a dozen different codes actually fired.
- **Matching on name alone** — two same-name patients or two similar-name drugs collapsing into one keystroke error because DOB or full-name readback got skipped under time pressure.
- **Skipping the independent double-check on high-alert meds when the queue is long** — the exact condition under which skipping it is most dangerous.
- **Confusing "counted correctly" with "verified correctly"** — a technically accurate pill count on the wrong drug or wrong patient is still a dispensing error.
- **Giving clinical advice past scope** — answering "can I take this with X" instead of routing the clinical question to the pharmacist.
- **Assuming a home-state scope-of-practice or ratio rule travels to a new state** — tech-check-tech authority and supervision ratios are jurisdiction-specific.

## Worked example

**Setup.** Warfarin 5mg tablets, prior fill #30, sig "1 tablet by mouth daily," days' supply = 30 ÷ 1 = 30 days, filled on day 0. On day 24, a refill request comes through with a new e-prescription: "Take 1.5 tablets (7.5mg) by mouth daily" — the anticoagulation clinic increased the dose after an INR check. The claim adjudicates with NCPDP reject 79, Refill Too Soon.

**Naive read.** The system flagged it early under the old regimen (30 tabs − 24 days used = 6 tablets, i.e., 6 days, remaining), so a generalist tells the patient "you're 6 days early, come back later" and closes the ticket.

**Expert reasoning.** Reject 79 compares the new fill request against the *old* sig's burn rate, because that's the regimen the system has on file — it hasn't seen the dose change yet. Recompute against the *new* rate: the patient's 6 leftover tablets, at the new 1.5 tab/day dose, last only 6 ÷ 1.5 = 4 more days. The patient isn't early — they're about to run out in 4 days under the regimen their prescriber just ordered. The reject is a stale-regimen artifact, not a genuine early refill or diversion signal (which is the other thing reject 79 sometimes correctly catches, and why it can't be blindly overridden either). Warfarin is on ISMP's high-alert list, so this also requires the mandatory independent double-check regardless of how it resolves. Going forward, the next fill's days' supply also needs recalculating at the new rate: 30 tablets ÷ 1.5/day = 20 days, not 30.

**Deliverable — technician's note staged for pharmacist review:**

> "Reject 79 on Warfarin 5mg refill (pt DOB 03/14/1958). Prior sig 1 tab/day (30-day fill, day 24 today, 6 tabs remain). New e-script changes sig to 1.5 tabs/day per anticoagulation clinic INR adjustment — at the new rate the 6 remaining tabs last only 4 more days, so the patient is due, not early; recommend overriding reject 79 with dose-change reason code, not disputing it as a system error. High-alert med: needs independent double-check before release. Flagging for next fill: recompute days' supply at 30 ÷ 1.5 = 20 days going forward, not 30, so the next reject-79 check is measured against the correct burn rate. Please confirm patient's next INR draw date is on file before dispensing."

## Going deeper

- [references/playbook.md](references/playbook.md) — reject-code triage table, days'-supply formulas by sig type, and USP <795>/<797> beyond-use-date defaults.
- [references/red-flags.md](references/red-flags.md) — smell tests for dispensing and claims errors, what each usually means, and what to pull to check it.
- [references/vocabulary.md](references/vocabulary.md) — terms of art generalists misuse, with the practitioner usage and the common misuse spelled out.

## Sources

- USP General Chapters <795> Pharmaceutical Compounding — Nonsterile Preparations, <797> Pharmaceutical Compounding — Sterile Preparations, <800> Hazardous Drugs — Handling in Healthcare Settings (United States Pharmacopeia) — beyond-use-date defaults and hazardous-drug engineering controls.
- Institute for Safe Medication Practices (ISMP) — List of High-Alert Medications in Community/Ambulatory Healthcare, List of Confused Drug Names, and Tall Man Lettering list, ismp.org.
- Pharmacy Technician Certification Board (PTCB) — PTCE Certification Content Outline, ptcb.org.
- NCPDP (National Council for Prescription Drug Programs) — Telecommunication Standard D.0 and External Code List, source for claims reject codes referenced in the playbook.
- National Association of Boards of Pharmacy (NABP) — Model State Pharmacy Act and Model Rules, source for technician-to-pharmacist supervision ratio variance across states.
- Mosby's Pharmacy Technician: Principles and Practice (Elsevier) — standard technician-training text for intake, fill, and verification workflow.
- James Reason, "Human Error" (Cambridge, 1990) — the systems/Swiss-cheese model behind "an error almost always has a systems cause underneath the human one."
- No direct practitioner sign-off yet on the role definition as a whole — flag via PR if you can confirm, correct, or add a citation.

Attribution

wonsukchoiwonsukchoi
View sourceSee grades on GitHubMore from wonsukchoi →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Terse caveman voice: answer first, fluff gone, every technical fact kept. Use for /caveman, "caveman mode", "talk like caveman", "be brief", "less tokens". Stays on until "stop caveman" or "normal mode".

1100021 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

698621 votes

Writing Skills

Create and manage Claude Code skills in HASH repository following Anthropic best practices. Use when creating new skills, modifying skill-rules.json, understanding trigger patterns, working with hooks, debugging skill activation, or implementing progressive disclosure. Covers skill structure, YAML frontmatter, trigger types (keywords, intent patterns), UserPromptSubmit hook, and the 500-line rule. Includes validation and debugging with SKILL_DEBUG. Examples include rust-error-stack, cargo-dep...

3931 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3421 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Amp, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Grok Build, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

741 votes
View all in ai-agents →