Skip to content

Commit 27710ab

Browse files
Naaremanclaude
andcommitted
Restructure as Claude Code plugin for public distribution
- Added .claude-plugin/plugin.json (name, version, author, keywords) - Added .claude-plugin/marketplace.json (marketplace catalog) - Moved SKILL.md + references/ into skills/python-package-development/ - Updated README with plugin install instructions (/plugin marketplace add) - Users can now install via: /plugin marketplace add Naareman/python-package-development Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 13f2333 commit 27710ab

File tree

15 files changed

+84
-29
lines changed

15 files changed

+84
-29
lines changed

.claude-plugin/marketplace.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"name": "python-package-development",
3+
"owner": {
4+
"name": "Nareman",
5+
"url": "https://github.com/Naareman"
6+
},
7+
"plugins": [
8+
{
9+
"name": "python-package-development",
10+
"source": ".",
11+
"description": "Build Python packages the right way — R-inspired philosophy for scaffolding, API design, testing, docs, deprecation lifecycle, and PyPI release using uv, rich, pytest, and mkdocs-material.",
12+
"version": "1.0.0",
13+
"author": {
14+
"name": "Nareman"
15+
},
16+
"repository": "https://github.com/Naareman/python-package-development",
17+
"keywords": [
18+
"python",
19+
"packaging",
20+
"scaffold",
21+
"pypi",
22+
"uv",
23+
"pytest",
24+
"mkdocs",
25+
"rich"
26+
]
27+
}
28+
]
29+
}

.claude-plugin/plugin.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "python-package-development",
3+
"description": "Build Python packages the right way — R-inspired philosophy for scaffolding, API design, testing, docs, deprecation lifecycle, and PyPI release.",
4+
"version": "1.0.0",
5+
"author": {
6+
"name": "Nareman",
7+
"url": "https://github.com/Naareman"
8+
},
9+
"repository": "https://github.com/Naareman/python-package-development",
10+
"license": "MIT",
11+
"keywords": [
12+
"python",
13+
"packaging",
14+
"scaffold",
15+
"pypi",
16+
"uv",
17+
"pytest",
18+
"mkdocs",
19+
"rich"
20+
]
21+
}

README.md

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,34 @@
44
55
## What is this?
66

7-
**python-package-development** is a [Claude Code](https://docs.anthropic.com/en/docs/claude-code) skill that teaches Claude how to build Python packages the right way — using the hard-won wisdom of the R package ecosystem.
7+
**python-package-development** is a [Claude Code](https://docs.anthropic.com/en/docs/claude-code) plugin that teaches Claude how to build Python packages the right way — using the hard-won wisdom of the R package ecosystem.
88

99
Python has incredible packages. But it has never had a unified philosophy for *building* them. The R world has one: Hadley Wickham's [*R Packages*](https://r-pkgs.org/) book (with Jenny Bryan), backed by tools like `devtools`, `usethis`, `roxygen2`, `cli`, and `lifecycle`.
1010

11-
This skill translates that philosophy into Python using modern tools: `uv`, `rich`, `pytest`, and `mkdocs-material`.
11+
This plugin translates that philosophy into Python using modern tools: `uv`, `rich`, `pytest`, and `mkdocs-material`.
1212

1313
> Looking for the CLI tool? See [packright](https://github.com/Naareman/packright) — the companion Python package that automates these conventions from the command line.
1414
1515
## Installation
1616

17-
### For all your projects (personal scope)
17+
### Via plugin marketplace (recommended)
1818

19-
```bash
20-
git clone https://github.com/Naareman/python-package-development.git
21-
cp -r python-package-development ~/.claude/skills/python-package-development
19+
```
20+
/plugin marketplace add Naareman/python-package-development
21+
/plugin install python-package-development@python-package-development
2222
```
2323

24-
### For a single project (project scope)
24+
### Manual install (personal scope)
2525

2626
```bash
27-
mkdir -p .claude/skills
28-
cp -r /path/to/python-package-development .claude/skills/python-package-development
27+
git clone https://github.com/Naareman/python-package-development.git
28+
cp -r python-package-development/skills/python-package-development \
29+
~/.claude/skills/python-package-development
2930
```
3031

3132
### Verify it's installed
3233

33-
In Claude Code, run `/python-package-development` — you should see it in the skill list.
34+
In Claude Code, type `/python-package-development` — you should see it in the skill list.
3435

3536
## Usage
3637

@@ -87,32 +88,36 @@ Before diving into details, you should see the whole thing working end-to-end.
8788
| Lifecycle | `lifecycle` package | `warnings` + deprecation conventions |
8889
| Release | `devtools::release()` | GitHub Actions + PyPI |
8990

90-
## Skill Structure
91+
## Plugin Structure
9192

9293
```
9394
python-package-development/
94-
├── SKILL.md # Main skill definition (philosophy + routing)
95-
├── README.md # This file
95+
├── .claude-plugin/
96+
│ ├── plugin.json # Plugin metadata
97+
│ └── marketplace.json # Marketplace catalog
98+
├── skills/
99+
│ └── python-package-development/
100+
│ ├── SKILL.md # Main skill (philosophy + routing)
101+
│ └── references/
102+
│ ├── 01-scaffold.md # Package scaffolding
103+
│ ├── 02-api-design.md # Naming, messages, errors
104+
│ ├── 03-testing.md # pytest conventions
105+
│ ├── 04-docs.md # Docstrings + mkdocs-material
106+
│ ├── 05-lifecycle.md # Deprecation ceremony
107+
│ ├── 06-release.md # PyPI + GitHub Actions
108+
│ ├── 07-common-mistakes.md # Anti-patterns
109+
│ ├── 08-pre-commit.md # Pre-commit hooks
110+
│ ├── 09-cli-entry-points.md # CLI entry points
111+
│ ├── 10-monorepo.md # Monorepo + namespaces
112+
│ └── 11-automated-release.md # Automated releases
96113
├── examples/
97-
│ └── my-package/ # Complete reference implementation (22/22 checks)
98-
├── references/
99-
│ ├── 01-scaffold.md # Package scaffolding (the "whole game")
100-
│ ├── 02-api-design.md # Naming, messages, errors
101-
│ ├── 03-testing.md # pytest conventions and patterns
102-
│ ├── 04-docs.md # Docstrings + mkdocs-material
103-
│ ├── 05-lifecycle.md # Deprecation ceremony + versioning
104-
│ ├── 06-release.md # PyPI publishing + GitHub Actions
105-
│ ├── 07-common-mistakes.md # Python packaging anti-patterns
106-
│ ├── 08-pre-commit.md # Pre-commit hooks setup
107-
│ ├── 09-cli-entry-points.md # Adding a CLI to your package
108-
│ ├── 10-monorepo.md # Monorepo + namespace packages
109-
│ └── 11-automated-release.md # Automated version bumps + changelog
114+
│ └── my-package/ # Reference implementation (22/22 checks)
110115
├── scripts/
111116
│ ├── count-tokens.py # Token budget checker
112-
│ └── check-structure.py # Audit project against conventions
117+
│ └── check-structure.py # Convention audit (22 checks)
113118
└── .github/
114119
└── workflows/
115-
└── check-budget.yml # CI: token budget check on PRs
120+
└── check-budget.yml # CI: token budget on PRs
116121
```
117122

118123
## Token Budget
@@ -124,7 +129,7 @@ Follows [posit-dev/skills](https://github.com/posit-dev/skills) (Posit, the comp
124129
- Reference files: loaded on demand (no hard limit)
125130

126131
```bash
127-
python3 scripts/count-tokens.py .
132+
python3 scripts/count-tokens.py skills/python-package-development/
128133
```
129134

130135
## Contributing

SKILL.md renamed to skills/python-package-development/SKILL.md

File renamed without changes.

references/01-scaffold.md renamed to skills/python-package-development/references/01-scaffold.md

File renamed without changes.

references/02-api-design.md renamed to skills/python-package-development/references/02-api-design.md

File renamed without changes.

references/03-testing.md renamed to skills/python-package-development/references/03-testing.md

File renamed without changes.

references/04-docs.md renamed to skills/python-package-development/references/04-docs.md

File renamed without changes.

references/05-lifecycle.md renamed to skills/python-package-development/references/05-lifecycle.md

File renamed without changes.

references/06-release.md renamed to skills/python-package-development/references/06-release.md

File renamed without changes.

0 commit comments

Comments
 (0)