Agent skill

Package Audit

by areed1192 in areed1192/interactive-brokers-api

Perform a comprehensive audit of a Python package and produce a phased improvement plan saved to IMPROVEMENT.md.

MITAuto-check passedBackend & APIs

Install Package Audit

skills CLI
$ npx skills add areed1192/interactive-brokers-api --skill package-audit -a claude-code

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

GitHub CLI
$ gh skill install areed1192/interactive-brokers-api package-audit --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/areed1192/interactive-brokers-api.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/package-audit .claude/skills/package-audit && 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
package-audit
GitHub stars
103
Token cost
~2.9k tokens
SKILL.md length
1,033 words
Files
2 (incl. references)
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Perform a comprehensive audit of a Python package and produce a phased improvement plan saved to IMPROVEMENT.md.

  • Works in 6 steps: Classify the project → Discovery → Write IMPROVEMENT.md → …
  • Someone asks to review a Python package
  • SKILL.md covers Before you start, Critical rule, Workflow and Constraints
  • Calls pytest

What it does

Package Audit is an agent skill from areed1192/interactive-brokers-api. Perform a comprehensive audit of a Python package and produce a phased improvement plan saved to IMPROVEMENT.md. Use this skill whenever someone asks to review a Python package, audit a codebase, plan improvements, modernize a project, assess package quality, or produce an improvement roadmap. Trigger on phrases like "review this package", "audit my project", "what should I improve", "create an improvement plan", "make this package better", "is this project production-ready", "what's wrong with my package", or…

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/best-practices.md`).

It sits in Backend & APIs. It works with Python. The repository describes itself as: A python application used to interact with the Interactive Brokers REST API. The licence is MIT.

When your agent uses it

  • Someone asks to review a Python package
  • Audit a codebase
  • Plan improvements
  • Modernize a project

Example prompts

  • “review this package”
  • “audit my project”
  • “what should I improve”
  • “/package-audit”

Requirements

  • Python 3

Workflow steps

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

  1. Classify the project
  2. Discovery
  3. Write IMPROVEMENT.md
  4. Item format rules
  5. Feature gap research (optional, libraries only)
  6. Present

What it can do on your machine

Read from SKILL.md and the folder at commit 6d19ac2. 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

    Shell commands in SKILL.md call:

    • pytest

    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

Package Audit loads about 2.9k tokens when it runs, and up to ~6.9k if it reads all its reference files. Until then it costs about 163 tokens; SKILL.md has 1,033 words of instructions outside code blocks.

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

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from areed1192/interactive-brokers-api at commit 6d19ac2, republished under its MIT licence (© areed1192). 1,033 words, ~2,925 tokens.

Download SKILL.mdSave it as .claude/skills/package-audit/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
package-audit
description
Perform a comprehensive audit of a Python package and produce a phased improvement plan saved to IMPROVEMENT.md. Use this skill whenever someone asks to review a Python package, audit a codebase, plan improvements, modernize a project, assess package quality, or produce an improvement roadmap. Trigger on phrases like "review this package", "audit my project", "what should I improve", "create an improvement plan", "make this package better", "is this project production-ready", "what's wrong with my package", or any request that involves evaluating a Python package holistically. This skill only PLANS — it does not implement changes.

Package Audit

This skill audits a Python package across eight dimensions, identifies issues, and produces a prioritized, phased improvement plan saved to IMPROVEMENT.md. It does not implement any changes — the output is a plan that the user can review and execute in subsequent sessions.

Before you start

Read the best-practices reference file:

cat references/best-practices.md

Use the checklist in that file as your scanning rubric.

Critical rule

This skill only produces a plan. Do not implement any changes. Every finding goes into IMPROVEMENT.md as an unchecked action item. The user will execute those items later, possibly using other specialized skills.

Workflow

Step 1 — Classify the project

Before auditing, determine what kind of project this is. The project type shapes which audit dimensions apply and how the phased plan is organized.

Look at pyproject.toml, setup.py, the directory structure, and the README to classify into one of:

  • Library — distributed on PyPI, has a public API, users import it. Example signals: [project] table, name on PyPI, from mypkg import ... in examples.
  • CLI tool — primary interface is command-line. Example signals: [project.scripts] entry points, argparse/click/typer in the code, README shows shell commands.
  • Web service — long-running server. Example signals: Flask/FastAPI/Django imports, uvicorn/gunicorn in dependencies, Dockerfile, API routes.
  • Internal application — not distributed, used internally. Example signals: no PyPI publishing, no classifiers, may have deployment configs instead.
  • Data/ML project — notebooks and pipelines. Example signals: .ipynb files, pandas/numpy/scikit-learn in deps, data/ or models/ directories.

Note the classification at the top of the audit. Skip or adjust dimensions that don't apply (e.g., a CLI tool doesn't need a "convenience API" phase; an internal application doesn't need PyPI classifiers).

Step 2 — Discovery

Systematically examine the project across these eight dimensions. Take notes as you go — you'll use them in Step 3.

  1. Project structure

    • List top-level directories and their purposes
    • Identify the layout (src/ vs flat)
    • Check for __init__.py completeness
    • Note any files that shouldn't be tracked (.pyc, __pycache__, .DS_Store, *.egg-info)
  2. Packaging & metadata

    • Is there a pyproject.toml? If only setup.py, that's a finding.
    • Does [project] include: name, version, description, readme, requires-python, license, authors, classifiers, dependencies, [project.urls]?
    • Build backend: Hatchling, Setuptools, Poetry, PDM, Flit?
    • Are optional dependencies grouped ([project.optional-dependencies])?
    • Are classifiers valid PyPI trove classifiers?
  3. Public API

    • What does the package's __init__.py export?
    • Map every public class and function (names not starting with _)
    • Are there type hints on public signatures?
    • Is the API consistent in naming (snake_case functions, PascalCase classes)?
  4. Test coverage

    • Is there a tests/ directory?
    • Which modules have no test file?
    • If possible, run pytest --cov=<package> --cov-report=term-missing
    • Note the overall coverage percentage and uncovered modules
  5. Documentation

    • Does the README exist and cover: what it does, install, quick-start, link to full docs?
    • Are there docstrings on public functions/classes?
    • Is there a CHANGELOG.md?
    • Are there example files or usage notebooks?
    • Is there an API reference (Sphinx, MkDocs)?
  6. CI/CD

    • Is there a .github/workflows/ directory (or GitLab/Bitbucket equivalent)?
    • Are tests run automatically on push/PR?
    • Is there linting in CI?
    • Is there a release workflow (PyPI publishing on tag)?
    • Is Dependabot/Renovate configured?
  7. Security (run these checks if possible)

    • Run bandit -r <package>/ -q and note findings
    • Run pip-audit or check for known vulnerable dependencies
    • Grep for obvious issues: hardcoded passwords/tokens, eval(), exec(), shell=True in subprocess, pickle.load on untrusted data, unsafe XML parsing (xml.etree instead of defusedxml)
    • Check for missing input validation on public API methods
  8. Code quality

    • Are type hints used consistently?
    • Is from __future__ import annotations used (for 3.9 support)?
    • Is logging used instead of print()?
    • Are custom exceptions defined, or does everything use built-ins?
    • Is there dead code (unused imports, unreachable branches)?
    • Naming consistency (PEP 8)
Step 3 — Write IMPROVEMENT.md

Save the audit and plan to IMPROVEMENT.md in the project root, following this exact template:

markdown
# Improvement Plan

**Project type:** <Library / CLI tool / Web service / Internal app / Data/ML>
**Audit date:** <YYYY-MM-DD>
**Audited against:** [Keep a Changelog 1.1.0, Semantic Versioning 2.0.0,
PEP 621, pytest, bandit]

## Audit Summary

### Strengths

- What the project does well. Keep doing these.
- Be specific — "uses modern pyproject.toml with complete metadata" not "good packaging".

### Critical Issues

Security vulnerabilities, broken functionality, missing input validation, hardcoded
credentials. Each issue must cite the file and line number where applicable.

### Code Quality Issues

Inconsistent patterns, missing type hints, poor error handling, dead code.

### Missing Infrastructure

No tests, no CI, no linting, no changelog, outdated packaging.

### Feature Gaps

<Only if Step 1 classified this as a Library. Skip for other project types.>
Features missing compared to similar packages users would expect.

### Developer Experience Gaps

Poor README, no examples, verbose boilerplate, missing convenience features.

---

## Improvement Phases

### Phase 1: Foundation & Safety

Security fixes, input validation, exception handling, packaging modernization,
CI pipeline, basic test coverage.

- [ ] **P0 · S** — Add input validation to `parser.parse_url()` (`src/pkg/parser.py:42`)
      to reject URLs with `file://` scheme
- [ ] **P0 · M** — Replace `xml.etree.ElementTree` with `defusedxml` for untrusted XML
      parsing (`src/pkg/xml_reader.py`)
- [ ] **P1 · M** — Modernize packaging: migrate `setup.py` to `pyproject.toml` with
      full `[project]` metadata
- [ ] **P1 · L** — Add GitHub Actions workflow: lint + test on push/PR

### Phase 2: Code Quality & Reliability

Type hints, consistent error handling, custom exceptions, logging, docstrings.

- [ ] **P1 · M** — Add type hints to all public functions in `src/pkg/api.py`
- [ ] **P1 · S** — Replace `print()` statements with `logging` (`src/pkg/cli.py:15-28`)
- [ ] **P2 · M** — Define custom exception hierarchy (`PkgError`, `PkgValidationError`,
      `PkgConnectionError`)

### Phase 3: Developer Experience

<Skip for internal applications. Adapt heavily for CLI tools and web services —
these care more about user-facing docs than API ergonomics.>

README rewrite, examples, convenience API, sample files.

- [ ] **P1 · L** — Rewrite README with install/quick-start/example sections
- [ ] **P2 · M** — Add `examples/` directory with runnable usage scripts

### Phase 4: Ecosystem & Growth

<Only for libraries with a public user base. Skip for internal apps and new
projects that haven't hit 1.0 yet.>

Optional integrations, serialization helpers, async support, caching.

- [ ] **P2 · L** — Add optional pandas integration via `[project.optional-dependencies]`
- [ ] **P2 · L** — Provide async client under `pkg.aio` module

---

## Progress

| Phase   | Status      | Items Done | Items Total |
| ------- | ----------- | ---------- | ----------- |
| Phase 1 | Not started | 0          | N           |
| Phase 2 | Not started | 0          | N           |
| Phase 3 | Not started | 0          | N           |
| Phase 4 | Not started | 0          | N           |
Show full SKILL.md (417 more words)Show less
Step 4 — Item format rules

Every action item follows this exact format:

- [ ] **<Priority> · <Size>** — <Specific action with file path and/or line numbers>

Priority:

  • P0 — Critical. Security, data loss risk, broken functionality, legal/licensing.
  • P1 — High value. Major quality, reliability, or usability improvement.
  • P2 — Nice to have. Polish, optional features, minor DX improvements.

Size:

  • S — Small. Less than 1 hour of focused work.
  • M — Medium. 1–3 hours.
  • L — Large. 3+ hours, may span a full day.

Specificity rules:

  • Reference actual file paths: src/pkg/parser.py:42 not "the parser"
  • Name the actual thing to change: "add timeout parameter to fetch()" not "improve the fetch method"
  • Each item must be independently actionable — someone reading just that line should know what to do
  • Split compound items: "add type hints AND tests" becomes two items
Step 5 — Feature gap research (optional, libraries only)

If the project is a library and the user asked about feature gaps or ecosystem fit, search PyPI and GitHub for 2–3 similar packages. Compare:

  • What capabilities do competitors offer that this package lacks?
  • What conventions are standard in the space?

Include findings under "Feature Gaps" with source citations.

For non-library projects, skip this step — it doesn't apply to CLI tools, internal apps, or web services in the same way.

Step 6 — Present

After writing IMPROVEMENT.md, present a summary to the user:

  • Total item count and breakdown by priority
  • The top 3 most critical items
  • Which phases are most/least populated

Let the user know they can execute items in future sessions. If the project needs logging improvements, changelog work, or test coverage work specifically, mention the specialized skills that handle those (python-logging-reviewer, changelog-review, test-coverage-review).

Constraints

  • Plan only, never implement. Do not modify any code. Do not create tests. Do not rewrite the README. The only file this skill writes is IMPROVEMENT.md.
  • Be specific. Vague items ("improve security") are useless. Every item must name the file, the method, and the change.
  • Prioritize ruthlessly. A plan with 200 items is a plan no one will execute. Target 15–40 items total. If you find more issues, prioritize the critical ones and note "…and others" in the audit summary.
  • Don't recommend changes that don't serve real users. Adding async support to a synchronous CLI tool with no demand for it is not helpful. Weigh every recommendation against whether a real user would benefit.
  • Adapt phases to project type. Don't force library-specific phases onto a CLI tool or internal application.
  • Respect existing choices. If the project deliberately uses setup.py for reasons visible in comments or commit history, note the modernization option but don't treat it as critical.

© areed1192, 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 1 other file (references) in .github/skills/package-audit of areed1192/interactive-brokers-api.

  • SKILL.md
  • references/best-practices.md

Open the folder on GitHubat commit 6d19ac2

Compare with similar skills

Package Audit 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.

Package Audit compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Package Audit this skillareed1192/interactive-brokers-api103—~2.9kAutomated safety check: PassMIT
Dinobase Connector Builderkappa90/dinobase263—~1.9kAutomated safety check: PassCustom licence
Modaldavila7/claude-code-templates32k8 repos~2.6kAutomated safety check: PassMIT
Junta Leiloeirossickn33/agentic-awesome-skills47k2 repos~1.6kAutomated safety check: PassMIT
Testing Mwaa Workflowaws/agent-toolkit-for-aws2.8k—~3.8kAutomated safety check: PassApache-2.0
Python Projectmajiayu000/spellbook286—~2.7kAutomated safety check: NotesMIT

Similar skills

  • Writes a new Dinobase YAML connector for a REST API that has no verified dlt source, covering auth, pagination, read and write endpoints and incremental loading.

    263 GitHub stars~1.9k tokensUpdated 3 mo ago
    Backend & APIsAuto-check passed
  • Modal

    davila7/claude-code-templates

    Run Python code in the cloud with serverless containers, GPUs, and autoscaling.

    32k GitHub starsUsed in 8 repos~2.6k tokens
    Backend & APIsAuto-check passed
  • Junta Leiloeiros

    sickn33/agentic-awesome-skills

    Coleta e consulta dados de leiloeiros oficiais de todas as 27 Juntas Comerciais do Brasil.

    47k GitHub starsUsed in 2 repos~1.6k tokens
    Backend & APIsAuto-check passed
  • Testing Mwaa Workflow

    aws/agent-toolkit-for-aws

    Official

    Tests Amazon MWAA workflow execution end-to-end: trigger a run and monitor it to completion for Provisioned (Python DAG, via Airflow REST API) and Serverless (YAML workflow, via StartWorkflowRun).

    2.8k GitHub stars~3.8k tokensUpdated today
    Backend & APIsAuto-check passed
  • Python Project

    majiayu000/spellbook

    Modern Python project architecture guide for 2025. An agent skill from majiayu000/spellbook.

    286 GitHub stars~2.7k tokensUpdated today
    Backend & APIsAuto-check: notes
  • Python Repo Quickstart

    ArabelaTso/Skills-4-SE

    Quickly analyzes Python repositories to understand their purpose, structure, and setup requirements.

    253 GitHub stars~2k tokensUpdated 1 mo ago
    Backend & APIsAuto-check: notes

More from areed1192/interactive-brokers-api

  • Changelog Review

    areed1192/interactive-brokers-api

    Audit, enforce, and maintain changelogs in Python projects. An agent skill from areed1192/interactive-brokers-api.

    103 GitHub stars~2.3k tokensUpdated 2 mo ago
    Auto-check passed
  • Python Logging Reviewer

    areed1192/interactive-brokers-api

    Audit, plan, and fix logging in any Python project. An agent skill from areed1192/interactive-brokers-api.

    103 GitHub stars~1.9k tokensUpdated 2 mo ago
    Auto-check passed

Works with

Questions about Package Audit

What does Package Audit do?

Perform a comprehensive audit of a Python package and produce a phased improvement plan saved to IMPROVEMENT.md. Package Audit is an agent skill from areed1192/interactive-brokers-api.md.

When should I use Package Audit?

Package Audit fits situations like: someone asks to review a Python package; audit a codebase; plan improvements; modernize a project.

How do I install Package Audit in Claude Code?

Run `npx skills add areed1192/interactive-brokers-api --skill package-audit -a claude-code`. Or copy the skill folder (.github/skills/package-audit in areed1192/interactive-brokers-api) into .claude/skills/package-audit in your project. Claude Code loads it when a task matches its description.

How do I install Package Audit in Codex?

Run `npx skills add areed1192/interactive-brokers-api --skill package-audit -a codex`. Or copy the skill folder (.github/skills/package-audit in areed1192/interactive-brokers-api) into .agents/skills/package-audit in your project. Codex loads it when a task matches its description.

Can I use Package Audit 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 areed1192/interactive-brokers-api --skill package-audit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/package-audit, .gemini/skills/package-audit, .github/skills/package-audit and .opencode/skills/package-audit in your project.

What does Package Audit need to run?

Going by SKILL.md and its folder, Package Audit needs the command-line tools its instructions call (pytest). Our summary lists: Python 3.

Does Package Audit 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 Package Audit 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. Review the folder before installing.

What licence does Package Audit use?

Package Audit 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 Package Audit use?

About 2.9k tokens (SKILL.md is roughly 12k 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 4k tokens, read only when the agent opens those files.

What are the alternatives to Package Audit?

Skills that share tags, products or a category with Package Audit: Dinobase Connector Builder (kappa90/dinobase, 263 stars), Modal (davila7/claude-code-templates, 32k stars), Junta Leiloeiros (sickn33/agentic-awesome-skills, 47k stars) and Testing Mwaa Workflow (aws/agent-toolkit-for-aws, 2.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Package Audit?

areed1192 (a GitHub user) maintains it in areed1192/interactive-brokers-api, which has 103 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on July 24, 2026.

Source: areed1192/interactive-brokers-api on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.