Install
$ agentstack add skill-benmarte-autoimprove-detect-stack ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Detect Stack Skill
Analyse the project root and produce a .claude/autoimprove/config.md that configures the measurement suite for this specific codebase.
Step 1 — Fingerprint the project
Run these checks to identify the stack:
# Language detection
ls *.go go.mod 2>/dev/null && echo "LANG=go"
ls *.rs Cargo.toml 2>/dev/null && echo "LANG=rust"
ls *.py pyproject.toml setup.py requirements.txt 2>/dev/null && echo "LANG=python"
ls package.json 2>/dev/null && echo "LANG=js"
ls *.java pom.xml build.gradle 2>/dev/null && echo "LANG=java"
ls *.rb Gemfile 2>/dev/null && echo "LANG=ruby"
ls *.php composer.json 2>/dev/null && echo "LANG=php"
ls *.cs *.csproj 2>/dev/null && echo "LANG=csharp"
ls *.swift Package.swift 2>/dev/null && echo "LANG=swift"
ls *.kt *.kts 2>/dev/null && echo "LANG=kotlin"
# Framework detection (JS)
cat package.json 2>/dev/null | grep -E '"next"|"nuxt"|"remix"|"astro"|"svelte"|"react"|"vue"'
# Package manager
ls yarn.lock 2>/dev/null && echo "PKG=yarn"
ls pnpm-lock.yaml 2>/dev/null && echo "PKG=pnpm"
ls bun.lockb 2>/dev/null && echo "PKG=bun"
ls package-lock.json 2>/dev/null && echo "PKG=npm"
ls Pipfile 2>/dev/null && echo "PKG=pipenv"
ls poetry.lock 2>/dev/null && echo "PKG=poetry"
ls Cargo.lock 2>/dev/null && echo "PKG=cargo"
# Test runner
cat package.json 2>/dev/null | grep -E '"jest"|"vitest"|"mocha"|"playwright"|"cypress"'
ls pytest.ini pyproject.toml 2>/dev/null | xargs grep -l "pytest" 2>/dev/null
ls *_test.go 2>/dev/null && echo "TEST=go test"
# Linter
ls .eslintrc* eslint.config* 2>/dev/null && echo "LINT=eslint"
ls .golangci.yml .golangci.yaml 2>/dev/null && echo "LINT=golangci-lint"
ls .rubocop.yml 2>/dev/null && echo "LINT=rubocop"
cat pyproject.toml 2>/dev/null | grep -E "ruff|flake8|pylint"
ls Makefile 2>/dev/null && grep -E "lint|check|fmt" Makefile
# Type checker
cat package.json 2>/dev/null | grep '"typescript"'
ls mypy.ini .mypy.ini 2>/dev/null && echo "TYPES=mypy"
cat pyproject.toml 2>/dev/null | grep -E "mypy|pyright"
Step 2 — Build the measurement suite
Based on what you find, map to these commands:
Language → Commands Reference
Go
- Type check:
go build ./... - Test:
go test ./... - Lint:
golangci-lint runorgo vet ./... - Format check:
gofmt -l . | wc -l(unformatted files)
Rust
- Type check:
cargo check - Test:
cargo test - Lint:
cargo clippy -- -D warnings - Format check:
cargo fmt --check
Python
- Type check:
mypy .orpyright(if configured) - Test:
pytestorpython -m pytest - Lint:
ruff check .orflake8 .orpylint src/ - Format check:
ruff format --check .orblack --check .
JavaScript / TypeScript (Node)
- Type check:
npx tsc --noEmit(if tsconfig exists) - Test: detect from package.json scripts (
test,vitest,jest) - Lint:
npx eslint .ornpm run lint - Build:
npm run build/yarn build/pnpm build
Next.js / Nuxt / Remix / Astro
- Same as JS/TS + framework build command
- Bundle size: check build output for size warnings
Ruby
- Type check:
srb tc(if Sorbet configured) - Test:
bundle exec rspecorbundle exec rake test - Lint:
bundle exec rubocop
Java / Kotlin
- Type check / build:
mvn compileor./gradlew compileKotlin - Test:
mvn testor./gradlew test - Lint:
./gradlew ktlintCheckor Checkstyle
C# / .NET
- Type check / build:
dotnet build - Test:
dotnet test - Lint:
dotnet format --verify-no-changes
PHP
- Type check:
./vendor/bin/phpstan analyse - Test:
./vendor/bin/phpunit - Lint:
./vendor/bin/phpcs
Swift
- Build:
swift build - Test:
swift test - Lint:
swiftlint
Makefile / custom
- Look for
make test,make lint,make check,make buildtargets
Step 3 — Assign weights
Use this scoring framework regardless of language:
| Metric | Weight | Notes | |---|---|---| | Type errors / compile errors | 40 pts | Must compile cleanly. Errors × penalty. | | Build / compile success | 20 pts | Binary/artifact builds without error | | Test suite pass rate | 30 pts | (passing / total) × 30 | | Lint / style errors | 10 pts | Errors × penalty, capped at 0 |
If a metric doesn't apply (e.g. no tests yet, no linter configured), redistribute its weight equally to the others and note it.
Step 4 — Write .claude/autoimprove/config.md
Create the directory and config file:
mkdir -p .claude/autoimprove
# .claude/autoimprove/config.md
## Stack
- Language: [detected]
- Framework: [detected or none]
- Package manager: [detected]
## Measurement Commands
### Type Check (40 pts)
\`\`\`bash
[command]
\`\`\`
Error pattern: [regex or grep to count errors]
Penalty: [X] pts per error
### Build (20 pts)
\`\`\`bash
[command]
\`\`\`
Success pattern: [what exit code / output means success]
### Tests (30 pts)
\`\`\`bash
[command]
\`\`\`
Parse pattern: [how to extract pass/fail counts]
### Lint (10 pts)
\`\`\`bash
[command]
\`\`\`
Error pattern: [regex or grep to count errors]
Penalty: [X] pts per error
## Improvement Areas
[list 5-8 language-specific improvement areas based on the detected stack]
## Files to Never Modify
[list lock files, generated files, migration files, .env, etc.]
Step 5 — Confirm with user
Print a summary:
✅ Stack detected: [language] / [framework]
📦 Package manager: [pm]
🧪 Test runner: [runner]
🔍 Linter: [linter]
📐 Type checker: [checker]
Measurement suite written to .claude/autoimprove/config.md.
Run /autoimprove:measure to check your baseline score.
If any tool is missing or not configured, suggest the most popular option for that language and offer to help set it up.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: benmarte
- Source: benmarte/autoimprove
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.