attributes-collect
Installation
SKILL.md
/attributes:collect
Collect structured codebase health attributes with severity and remediation actions.
When to Use This Skill
| Use this skill when... | Use another approach when... |
|---|---|
| Need structured health assessment before routing | Quick health score only (use /health:check) |
| Want machine-readable attribute JSON | Human-readable report (use /attributes:dashboard) |
| Planning which agents to invoke | Already know what needs fixing |
| Comparing health across repos | Checking specific component only |
Parameters
| Parameter | Description |
|---|---|
--output <path> |
Write JSON to file (default: stdout) |
--categories <list> |
Comma-separated categories to check: docs,tests,security,quality,ci |
Execution
Perform these checks and output structured JSON.
Step 1: Documentation Attributes
Check for these files and emit attributes:
| Check | Attribute ID | Severity |
|---|---|---|
| README.md exists | missing-readme |
high |
| README.md > 200 chars | short-readme |
low |
| CLAUDE.md exists | missing-claude-md |
medium |
| docs/ directory exists | no-docs-directory |
low |
| LICENSE file exists | missing-license |
low |
Score: Start at 0, add points per check (max 20).
Step 2: Testing Attributes
| Check | Attribute ID | Severity |
|---|---|---|
| tests/ or test/ directory exists | no-test-directory |
high |
| Test config file exists (vitest, jest, pytest, etc.) | no-test-config |
medium |
| CI workflow runs tests | no-ci-tests |
high |
Test configs to look for: vitest.config.{ts,js}, jest.config.{js,ts}, pytest.ini, conftest.py, playwright.config.ts
Step 3: Security Attributes
| Check | Attribute ID | Severity |
|---|---|---|
| .gitignore exists | missing-gitignore |
high |
| .env file NOT committed | env-file-committed |
critical |
| Pre-commit hooks configured | no-pre-commit-hooks |
medium |
| Security scanning in CI | no-security-scanning |
high |
| Dependabot configured | no-dependabot |
low |
Step 4: Code Quality Attributes
| Check | Attribute ID | Severity |
|---|---|---|
| Linter configured (eslint, biome, ruff) | no-linter-configured |
medium |
| Formatter configured (prettier, biome, ruff) | no-formatter |
medium |
| Type checking (tsconfig, pyright, mypy) | no-type-checking |
low |
Step 5: CI/CD Attributes
| Check | Attribute ID | Severity |
|---|---|---|
| CI workflows exist | no-ci-workflows |
high |
| Workflows dir has files | empty-workflows-dir |
medium |
Step 6: Output
Output JSON matching this schema:
{
"version": "1",
"repo": "<path>",
"timestamp": "<ISO 8601>",
"attributes": [
{
"id": "missing-readme",
"category": "docs",
"severity": "high",
"description": "Missing README.md",
"source": "attributes-collect",
"actions": [
{"type": "agent", "target": "docs", "args": "create README.md", "auto_fixable": true}
]
}
],
"scores": {
"overall": 72,
"grade": "C",
"max_score": 100,
"categories": {"docs": 15, "tests": 12, "security": 8, "quality": 17, "ci": 20}
}
}
If --output is specified, write the JSON to that file.
Agentic Optimizations
| Context | Command |
|---|---|
| Full attribute collection | /attributes:collect |
| Save to file | /attributes:collect --output .claude/attributes.json |
| Specific categories | /attributes:collect --categories security,tests |
| Check README exists | test -f README.md && echo exists || echo missing |
| Check test dir | test -d tests || test -d test && echo exists || echo missing |
| Count README chars | wc -c < README.md 2>/dev/null || echo 0 |
Weekly Installs
6
Repository
laurigates/clau…-pluginsGitHub Stars
28
First Seen
7 days ago
Security Audits