Claude Code, Plugin
Python Clean Architecture
Claude Code plugin to scaffold, review, and refactor Python projects with clean code and architecture.
Compatibility: Not stated.
Grade B
Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 9d627ca7bedb, unchanged since the check below.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST SECRETS_PATH_DOTENV
Why this grade
- NETWORK_NO_FIXED_HOST Low
Makes a network call whose host is not written as a fixed address.
skills/clean-architecture/references/context-managers.md, line 228
async def fetch(url: str) -> str: - NETWORK_UNNAMED_HOST Low
Calls a fixed host that the description does not name.
skills/clean-architecture/references/context-managers.md, line 228
async def fetch(url: str) -> str: - SECRETS_PATH_DOTENV Low
Mentions a .env file.
skills/clean-architecture/references/layered-architecture.md, line 421
model_config = ConfigDict(env_file=".env")
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Pass
No shell or command execution found, and no extra permission was declared.
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address. can reach api.example.com. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
skills/clean-architecture/references/context-managers.md, line 228
async def fetch(url: str) -> str:
skills/clean-architecture/references/pythonic-patterns.md, line 562
return requests.get(f"https://api.example.com/price/{symbol}").json()["price"]
skills/clean-architecture/references/patterns/lazy-loading.md, line 62
return requests.get(f"https://api.example.com/rate/{currency}").json()["rate"]
Show more
skills/clean-architecture/references/patterns/retry.md, line 108
response = requests.get(f"https://api.example.com/price/{symbol}")
skills/clean-architecture/references/patterns/retry.md, line 180
response = requests.get(f"https://api.example.com/price/{symbol}")
Secrets
Concern
reads a credential or environment file.
SECRETS_PATH_DOTENV
skills/clean-architecture/references/layered-architecture.md, line 421
model_config = ConfigDict(env_file=".env")
skills/clean-architecture/references/pydantic-validation.md, line 292
model_config = ConfigDict(env_file=".env")
.gitignore, line 2
*.pyc
Show more
skills/clean-architecture/references/layered-architecture.md, line 459
- [ ] **Environment config** - All settings via environment variables or `.env` file (`pydantic-settings`)
skills/clean-architecture/references/project-organization.md, line 375
- **Never commit secrets.** Database credentials, API keys, and passwords must never enter the repository. Use environment variables, `.env` files (added to `.gitignore`), or separ
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 9d627ca7bedb. can reach a host that is not written as a fixed address. can reach api.example.com. The description does not name that host. reads a credential or environment file.
Date and source
Date checked:
github.com
Commit graded: 9d627ca7bedbe0bb9e2fcf3c83d81814a6133dce
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.