Agent skill

Pharmacy Stock Check

by CALLE-AI in CALLE-AI/awesome-phone-call-agents

Call a list of pharmacies to find out which one has a specific medication in stock, at what price, and whether they will hold it.

MITAuto-check passedProductivity & Automation

Install Pharmacy Stock Check

skills CLI
$ npx skills add CALLE-AI/awesome-phone-call-agents --skill pharmacy-stock-check -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install CALLE-AI/awesome-phone-call-agents pharmacy-stock-check --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/CALLE-AI/awesome-phone-call-agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/pharmacy-stock-check .claude/skills/pharmacy-stock-check && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
pharmacy-stock-check
GitHub stars
107
Token cost
~4.2k tokens
SKILL.md length
2,175 words
Files
9 (incl. scripts, references)
Skills in repo
101
Repo updated
First seen
Licence
MIT

At a glance

Call a list of pharmacies to find out which one has a specific medication in stock, at what price, and whether they will hold it.

  • Works in 6 steps: Collect the request → Build the goal → One run per pharmacy → …
  • Someone needs to locate a medication nearby and would otherwise ring round manually
  • SKILL.md covers Before you start, Safety boundaries, Workflow and Cost and safety controls, plus 6 more sections
  • Runs Python scripts from its folder; calls python3

What it does

Pharmacy Stock Check is an agent skill from CALLE-AI/awesome-phone-call-agents. Call a list of pharmacies to find out which one has a specific medication in stock, at what price, and whether they will hold it. Use when someone needs to locate a medication nearby and would otherwise ring round manually. Returns one structured record per pharmacy with a confidence score and the call transcript as evidence.

Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 10 other files, including scripts and reference files (for example `references/calle-mcp-integration.md`, `references/examples.md` and `references/safety.md`).

It sits in Productivity & Automation, covering Meeting notes and agendas. The repository describes itself as: Portable phone-call Agent Skills, apps, examples, adapters, and scheduler recipes for AI agents. The licence is MIT.

When your agent uses it

  • Someone needs to locate a medication nearby and would otherwise ring round manually
  • Tasks that involve Meeting notes and agendas

Example prompts

  • “/pharmacy-stock-check”

Requirements

  • Python 3

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Collect the request
  2. Build the goal
  3. One run per pharmacy
  4. Execute
  5. Read the result — but only if the call actually completed
  6. Report

What it can do on your machine

Read from SKILL.md and the folder at commit 38d4118. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 4 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Pharmacy Stock Check loads about 4.2k tokens when it runs, and up to ~12k if it reads all its reference files. Until then it costs about 87 tokens; SKILL.md has 2,175 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~87
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~12k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from CALLE-AI/awesome-phone-call-agents at commit 38d4118, republished under its MIT licence (© CALLE-AI). 2,175 words, ~4,236 tokens.

Download SKILL.mdSave it as .claude/skills/pharmacy-stock-check/SKILL.md (or your agent's skills folder). This skill also uses 8 other files; get the full folder from GitHub.
name
pharmacy-stock-check
description
Call a list of pharmacies to find out which one has a specific medication in stock, at what price, and whether they will hold it. Use when someone needs to locate a medication nearby and would otherwise ring round manually. Returns one structured record per pharmacy with a confidence score and the call transcript as evidence.

Pharmacy stock check

Finding a medication that is actually in stock means calling pharmacies one at a time and asking the same four questions. This skill does the calling and returns a ranked answer.

It is a good fit for CALL-E's design: low-frequency, personal, high-stakes phone work that was never worth automating with a traditional call platform.

Before you start

This skill places real phone calls to real businesses. Confirm with the user:

  • the medication, dosage and quantity
  • which pharmacies to call, as E.164 numbers
  • that they want calls placed now

Never infer a phone number. Never call a number the user did not supply or approve.

Safety boundaries

This skill gathers availability and pricing information only.

  • It does not give medical advice, recommend a medication, or suggest a substitute. If a pharmacist offers an alternative, report it verbatim as something the pharmacist said — never as a recommendation.
  • It does not place an order, reserve stock, or commit to a purchase on the user's behalf.
  • It is not for emergencies. If someone needs medication urgently, they should contact emergency services or an urgent care provider, not wait on an agent.
  • Prescription requirements are reported, never worked around.
  • Report the pharmacist's answer and the confidence score. Do not present a low-confidence result as fact — the user may travel somewhere while unwell on the strength of it.

Workflow

1. Collect the request

Required: medication name, dosage, quantity, recipient region, and the list of pharmacy phone numbers in E.164 format.

Validate every number before anything else happens. E.164 is a plus, a non-zero country code digit, then 7–14 more digits — ^\+[1-9]\d{7,14}$. Reject anything else and ask the user; never guess a country code. A local number silently reaching the planner is how the wrong person gets called.

2. Build the goal

CALL-E's MCP surface has no result_schema parameter, so the fields you want must be named in the goal text. CALL-E honours them reliably and emits them in result.summary.

text
You are calling a pharmacy on behalf of a patient looking for a medication.
Identify yourself as an automated assistant immediately, and keep the call
brief and polite.

Find out whether they currently have {drug} {dosage} in stock. The patient
needs {quantity}.

Capture these fields in the structured result, using exactly these key names:
- in_stock: yes, no, partial, or unknown. Use partial if they have some but
  fewer than the patient needs.
- form_available: brand, generic, both, or unknown
- quantity_available: integer units they have
- unit_price: number, price per unit
- currency: three-letter currency code
- requires_prescription: yes, no, or unknown
- can_hold: yes, no, or unknown
- hold_duration_hours: number of hours they will hold it
- alternative_suggested: any alternative or other branch they mention
- pharmacist_notes: anything else useful, one short sentence

If they do not have it, still ask about alternatives or another branch. Do not
place an order or commit to anything on the patient's behalf. Thank them and
end the call. If nobody answers, report that the pharmacy could not be reached;
do not treat that as a successful stock check.

Identifying as an automated assistant in the first line is not optional. It is the difference between a pharmacist answering and a pharmacist hanging up.

3. One run per pharmacy

to_phones accepts an array, but batching returns an aggregated summary for the whole batch. This workflow needs per-pharmacy attribution — which pharmacy has 10 units at £5 — so place one run per pharmacy and run them concurrently. The call cost is identical.

4. Execute
text
plan_call    → ready_to_run + confirm_token   (free, places no call)
run_call     → run_id                          (spends len(to_phones))
get_call_run → poll until terminal, following next_step.action

plan_call is free. Iterate on the goal text as much as you like before spending anything.

5. Read the result — but only if the call actually completed

Check result.outcome.task_completed and the run status first. A call that failed, went to voicemail or was cut off can still carry a partially filled summary. Treating that as a stock check is how a patient gets sent somewhere on the strength of a sentence nobody finished.

If the run did not reach COMPLETED with task_completed: true, report "could not be reached" and emit no stock fields at all. Do not scrape what's there.

Only when the call completed, parse the extracted fields from result.summary as key=value pairs — not from result.extracted, see references/calle-mcp-integration.md. Values contain commas and the separator is not stable (both , and ; observed), so split on key= boundaries.

result.outcome also gives a confidence score and specific evidence strings.

6. Report

Verification outranks stock status. Rank verified results first — those that completed with confidence at or above 0.6 — then by stock, then price, then hold. A low-confidence "yes" must never outrank a high-confidence "no". Someone may travel while unwell on the strength of this, which makes an unreliable positive worse than a reliable negative.

Mark anything unverified as such, visibly.

Mask phone numbers in summaries — show the pharmacy name and the last four digits.

Masking covers derived text too, not just the number you dialled. The provider's activity feed quotes the call as it happens, and fields like pharmacist_notes and alternative_suggested are lifted straight out of the conversation. A pharmacist reading out a branch number ends up in both. Printing either verbatim puts a third party's words into terminal scrollback, CI logs and screen recordings.

So: scrub anything number-shaped from free text before it is logged or printed, and withhold realtime speech events entirely unless the operator explicitly asks for them. Prices, quantities and hold durations must survive — redact runs of eight or more digits, not every number.

The stored record keeps the original. It is the evidence, and it is protected by being 0600 and out of the working directory.

Offer the transcript. Every claim should be checkable against what was said.

Cost and safety controls

  • Count phones, not calls. to_phones is an array, so one plan can spend N calls. Charge len(to_phones) against any budget before dialling.

  • Reserve atomically, under the same lock as the ledger read. A check-then-write budget is not a ceiling: two processes read the same spent, both pass the check, and both dial. The up-front whole-batch check is a convenience so a batch fails before the first call rather than halfway; the per-call atomic reserve is what actually enforces the limit.

  • Deduplicate recipients before dispatch. The same number listed twice is a data-entry mistake, not a request to ring someone twice — and rows are dispatched concurrently, so nothing downstream spaces them out. A file lock won't catch this: both rows run in one process and share a pid, so the in-flight set has to be tracked in-process as well.

  • Store credentials and transcripts owner-only (0600), and ignore them. The ledger holds confirm_tokens that authorise placing a call; run dumps hold a third party's recorded voice. Default umask leaves both readable by every account on the machine, and file permissions are no protection at all against being committed. Write them to a dedicated directory and add that directory to .gitignore — this skill ships one covering its own runtime state.

  • Bind the auth token to the endpoint you are calling, and refuse if you can't. A bearer token is issued for one origin; sending it elsewhere hands a working credential to a party it was never meant for. That's a disclosure, not a routing mistake.

    Ask the CLI which endpoint it authenticated against (calle auth status reports server_url and cache_path) rather than inferring it from the cache directory hash. Refuse on mismatch.

    A single cache with no endpoint recorded is not acceptable either. "Only one exists" is not evidence that it belongs to this provider. If nothing binds the credential, stop and make the operator name it explicitly.

  • Keep the exclusion claim separate from the reconciliation identity. These are two different questions and they need different granularity.

    "Is there an unresolved call to this person about this thing?" must be answered on recipient and purpose alone. Fold endpoint, account or region into that key and changing any of them makes a live call look absent — which permits a second dial to someone already being rung.

    "Can I resume this particular plan?" needs the full configuration. So nest it: a coarse claim keyed on sha256(phone|goal), with the attempt's endpoint, principal, region, plan_id and run_id recorded underneath.

    On a configuration mismatch, do neither. Don't resume — a plan_id from one endpoint or account is meaningless under another. Don't redial — the earlier call may still be live. Surface it and let a human resolve it.

  • Bind unfinished state to a stable principal, or fail closed. Don't namespace on the credential cache directory: CALL-E derives that from the server URL, so re-authenticating as a different account on the same endpoint reuses it — and an account-A run could be resumed with account-B credentials.

    Derive the principal from the account itself (an id recorded in the cache, or the sub claim of a JWT). If it can't be established, new calls may proceed, but an unresolved call can no longer be confirmed as yours — so refuse to reconcile it rather than guessing. CALLE_ACCOUNT_ID overrides.

    Version the ledger. When claim keys change, old entries won't match anything you compute, so unfinished ones must be refused rather than read as absent.

  • Persist plan_id and run_id to disk as soon as you receive them. plan_id is CALL-E's idempotency key, but it only protects you if it survives a crash. On restart, resume the stored run instead of re-planning.

    The ledger is the thing standing between a crash and a second call to a real person, so it has to be written like one:

    • Lock it. Read-modify-write under an exclusive file lock. Without it, two processes both see "no entry" and both dial.
    • Write atomically. Temp file, fsync, then rename. A partial write must never replace a good ledger.
    • Fail loudly on corruption. An unreadable ledger means quarantine it and stop. Substituting an empty one presents every in-flight run as new and redials the lot.
    • Record the terminal result before retiring the entry. Clearing first opens a window where a crash loses both the result and the claim.
    • Treat an ambiguous create as un-retryable. If run_call was sent and the response was lost, whether the phone rang is unknown. Mark that state before the call, and require a human decision to clear it — never retry automatically.
  • Never re-dial to recover data you already paid for.

  • No recurring schedules. This is a one-shot workflow. If a user wants repeat checks, create them explicitly and tell the user how to cancel.

Show full SKILL.md (627 more words)Show less

Dry run

scripts/pharmacy_search.py is dry-run by default, and the dry run is fully offline: it reads no credentials, opens no socket, and sends nothing anywhere. It validates every number and prints the exact payload it would send.

That matters here. A dry run that still transmits the recipient's phone number and the medication being sought — by calling the planning endpoint — is not a dry run. In a medical-adjacent workflow it leaks who is looking for what.

Numbers are masked in the printed payload too. Masking covers anything printed or logged, not just what reaches the user: terminal output ends up in scrollback, CI logs and screen recordings.

bash
python3 scripts/pharmacy_search.py --pharmacies pharmacies.csv        # offline
python3 scripts/pharmacy_search.py --pharmacies pharmacies.csv --live # calls

Tests

bash
python3 scripts/test_pharmacy_search.py

Standard library only. No network, no credentials, no calls placed.

The suite exists because the same invariant has broken twice in ways that were silent — the code planned and submitted a second call to a real person, and nothing in the output said so. test_resume_does_not_redial asserts on which MCP tools were invoked rather than on return values, because whether run_call was called is the only thing that distinguishes "resumed" from "dialled again".

Verifying end to end without a real pharmacy

Use a standards-reserved fictional number to exercise the offline planning path. The example cannot be dialed and must not be used for live verification.

bash
printf 'name,phone,address\nFictional Pharmacy,+14155550132,Reserved offline example\n' \
  > pharmacies.hotline.csv

python3 scripts/pharmacy_search.py --pharmacies pharmacies.hotline.csv

This checks planning without network access. Use the offline test suite to verify durable-run and duplicate-call behavior.

Example

Request: amoxicillin 500mg, 21 capsules, three pharmacies in GB.

Result from one pharmacy:

json
{
  "pharmacy": "Test Pharmacy (…0100)",
  "in_stock": "partial",
  "quantity_available": 10,
  "unit_price": 5.0,
  "currency": "GBP",
  "requires_prescription": "yes",
  "can_hold": "yes",
  "hold_duration_hours": 48,
  "pharmacist_notes": "They have only 10 units available, less than the requested 21 capsules.",
  "confidence": 0.82
}

Worth noting what CALL-E got right there: the pharmacist said "10 units" against a request for 21, and the result is partial rather than yes. It also converted "just two days" into hold_duration_hours: 48.

Known limitations

Stated rather than discovered, because each one is a boundary on a guarantee this skill otherwise makes.

The exclusion lock is single-host. It uses flock on a sidecar file, which coordinates processes on one machine. It does not coordinate across machines, and its behaviour on NFS and some network filesystems is unreliable. Two operators running this against a shared drive get no mutual exclusion, and the duplicate-dial protection is only as good as the lock. A multi-host deployment needs a real lease — a database row, or a lock service.

Principal resolution currently returns nothing on CALL-E, so resume needs CALLE_ACCOUNT_ID. Identity is looked for in an id recorded alongside the credential, then in the sub claim of a JWT. As of writing, the CALL-E CLI cache records server_url, auth_base_url, issued_at, expires_at and token — no account identifier — and the token is opaque rather than a JWT.

So no principal can be established, and unfinished state fails closed rather than risk resuming one account's run under another's credentials. That is the safe behaviour, but it means cross-process resume does not work out of the box:

bash
export CALLE_ACCOUNT_ID=me@example.com    # any stable value you control

Any consistent string works — it only has to change when the authenticated account changes. Endpoint binding is unaffected: server_url is recorded, so credentials are still bound to the right origin automatically.

This resolves itself if the provider exposes an account identifier in the credential cache or issues a token with a subject claim.

Test coverage is behavioural, not exhaustive. scripts/test_pharmacy_search.py covers the invariants that have actually regressed — crash-and-resume, exclusion across configuration changes, budget ceilings, validation — with no network, no credentials and no calls placed:

bash
python3 scripts/test_pharmacy_search.py

It does not cover the live provider surface. Reaching the real API still means the hotline path above.

The budget ceiling is local. It counts what this installation has spent. It does not know the provider-side balance, so it protects against a runaway loop, not against a quota consumed elsewhere.

References

Read references/calle-mcp-integration.md for MCP surface behaviour, including where extraction actually lands.

Read references/safety.md for boundaries on medical-adjacent phone workflows.

See references/examples.md for worked conversations, including when to decline to call.

© CALLE-AI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 8 other files (scripts, references) in skills/pharmacy-stock-check of CALLE-AI/awesome-phone-call-agents.

  • SKILL.md
  • .gitignore
  • references/calle-mcp-integration.md
  • references/examples.md
  • references/safety.md
  • scripts/pharmacies.csv
  • scripts/pharmacies.hotline.csv
  • scripts/pharmacy_search.py
  • scripts/test_pharmacy_search.py

Open the folder on GitHubat commit 38d4118

Compare with similar skills

Pharmacy Stock Check next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Pharmacy Stock Check compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Pharmacy Stock Check this skillCALLE-AI/awesome-phone-call-agents107—~4.2kAutomated safety check: PassMIT
Meeting Notesoutline/outline41k—~551Automated safety check: PassCustom licence
Management Talkthananon/9arm-skills3.2k—~3.2kAutomated safety check: PassNone
Challenge Baseline ModelAgibotTech/genie_sim1.4k—~2.4kAutomated safety check: PassCustom licence
Handwriting Stand Uplimin112/min-skill454—~2.5kAutomated safety check: PassNone
Daily Journalravila4/claude-adhd-skills158—~2.5kAutomated safety check: PassMIT

Similar skills

  • Meeting Notes

    outline/outline

    Create meeting notes in Outline from a template; use when the user wants an agenda, notes, or a follow-up document for a meeting.

    41k GitHub stars~551 tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Management Talk

    thananon/9arm-skills

    Rewrite engineer-to-engineer content for engineering-org leadership (VPs, directors, PMs, release managers, execs in an engineering-savvy company) and shape it for the channel it is going to — JIRA…

    3.2k GitHub stars~3.2k tokensUpdated 3 mo ago
    Productivity & AutomationAuto-check passed
  • Challenge Baseline Model

    AgibotTech/genie_sim

    Provision and launch the Simulation Challenge baseline inference model end to end: clone the inference code from a given git repo/branch, download the checkpoints from ModelScope into the repo's…

    1.4k GitHub stars~2.4k tokensUpdated 1 mo ago
    Productivity & AutomationAuto-check passed
  • Handwriting Stand Up

    limin112/min-skill

    Turn a screen recording of handwriting (or a photo of handwritten text) into a single-file HTML "continuation" — the recording plays, the ink lifts off the page as solid 3D letters, a short animated…

    454 GitHub stars~2.5k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed
  • Daily Journal

    ravila4/claude-adhd-skills

    Draft, organize, or update development journal entries. An agent skill from ravila4/claude-adhd-skills.

    158 GitHub stars~2.5k tokensUpdated 7 mo ago
    Productivity & AutomationAuto-check passed
  • Granola

    ArtemXTech/claude-code-obsidian-starter

    Query and sync Granola meetings to Obsidian vault. An agent skill from ArtemXTech/claude-code-obsidian-starter.

    225 GitHub stars~905 tokensUpdated 5 days ago
    Productivity & AutomationAuto-check passed

More from CALLE-AI/awesome-phone-call-agents

All 101 skills in this repo
  • Accessible Outing Verifier

    CALLE-AI/awesome-phone-call-agents

    Demonstrates advisory accessibility-planning checks with offline fixtures and a proposed bounded CALL-E workflow; use for exploring unknown or qualified venue claims without making calls.

    107 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Ground Truth Gate

    CALLE-AI/awesome-phone-call-agents

    A skill your agent uses when an agent holds some evidence for a physical-world claim but the evidence is broader, narrower, or older than the exact question asked, and it must first decide whether a…

    107 GitHub stars~3.3k tokensUpdated yesterday
    Auto-check passed
  • Is It Accessible

    CALLE-AI/awesome-phone-call-agents

    Call a venue and ask the accessibility questions that matter to one specific person — step-free entry, hearing loop, guide dogs, quiet hours, changing places — then return a per-need verdict backed…

    107 GitHub stars~4.3k tokensUpdated yesterday
    Auto-check passed
  • Landmark Navigation Assist

    CALLE-AI/awesome-phone-call-agents

    Turns a pre-written, building-level location config into a CALL-E outbound phone-call task that guides a delivery driver through the last few hundred metres to a specific building using landmarks…

    107 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Research Gap Call Verifier

    CALLE-AI/awesome-phone-call-agents

    Turn cited business research into a bounded, approval-gated phone-call plan that asks only unresolved factual questions, then reconcile CALL-E-compatible results without treating voicemail, refusal…

    107 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Structured Outcome Followup Call

    CALLE-AI/awesome-phone-call-agents

    Place a goal-driven CALL-E call that collects specific structured answers, score those answers against a deterministic rubric you supply, and conditionally trigger a follow-up action — all runnable…

    107 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed

Questions about Pharmacy Stock Check

What does Pharmacy Stock Check do?

Call a list of pharmacies to find out which one has a specific medication in stock, at what price, and whether they will hold it. Pharmacy Stock Check is an agent skill from CALLE-AI/awesome-phone-call-agents. Call a list of pharmacies to find out which one has a specific medication in stock, at what price, and whether they will hold it.

When should I use Pharmacy Stock Check?

Pharmacy Stock Check fits situations like: someone needs to locate a medication nearby and would otherwise ring round manually; tasks that involve Meeting notes and agendas.

How do I install Pharmacy Stock Check in Claude Code?

Run `npx skills add CALLE-AI/awesome-phone-call-agents --skill pharmacy-stock-check -a claude-code`. Or copy the skill folder (skills/pharmacy-stock-check in CALLE-AI/awesome-phone-call-agents) into .claude/skills/pharmacy-stock-check in your project. Claude Code loads it when a task matches its description.

How do I install Pharmacy Stock Check in Codex?

Run `npx skills add CALLE-AI/awesome-phone-call-agents --skill pharmacy-stock-check -a codex`. Or copy the skill folder (skills/pharmacy-stock-check in CALLE-AI/awesome-phone-call-agents) into .agents/skills/pharmacy-stock-check in your project. Codex loads it when a task matches its description.

Can I use Pharmacy Stock Check in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add CALLE-AI/awesome-phone-call-agents --skill pharmacy-stock-check -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pharmacy-stock-check, .gemini/skills/pharmacy-stock-check, .github/skills/pharmacy-stock-check and .opencode/skills/pharmacy-stock-check in your project.

What does Pharmacy Stock Check need to run?

Going by SKILL.md and its folder, Pharmacy Stock Check needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Pharmacy Stock Check access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Pharmacy Stock Check safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Pharmacy Stock Check use?

Pharmacy Stock Check is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Pharmacy Stock Check use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 7.9k tokens, read only when the agent opens those files.

What are the alternatives to Pharmacy Stock Check?

Skills that share tags, products or a category with Pharmacy Stock Check: Meeting Notes (outline/outline, 41k stars), Management Talk (thananon/9arm-skills, 3.2k stars), Challenge Baseline Model (AgibotTech/genie_sim, 1.4k stars) and Handwriting Stand Up (limin112/min-skill, 454 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Pharmacy Stock Check?

CALLE-AI (a GitHub organization) maintains it in CALLE-AI/awesome-phone-call-agents, which has 107 GitHub stars. The repository holds 101 skills in this directory. The repository was last updated on October 10, 2026.

Source: CALLE-AI/awesome-phone-call-agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.