Development
Local development, release checks, naming guidance, and contribution notes for AgentPack maintainers.
Development
Public Naming And Ranking
AgentPack works better when public surfaces carry domain context. Prefer domain-revealing names for files, exported functions/classes, CLI commands, tests, and config/env identifiers.
verify_otpis better thanhandleStripeWebhookHandleris better thanProcessorsession_token_expiry_testis better thantest_flow
This is guidance, not a lint rule. Local variable names are out of scope for AgentPack ranking.
Clone and run locally:
git clone https://github.com/vishal2612200/agentpack.git
cd agentpack
python -m pip install -e ".[dev,mcp]" build
pytest
Useful checks before opening a PR:
agentpack dev-check
agentpack release-check --skip-benchmark --skip-build
pytest tests/test_agent_integration_matrix.py -q
agentpack benchmark --release-gate --no-public-table
agentpack doctor
The CLI is the package-user source of truth for repeated workflows:
agentpack work "describe the task"
agentpack next --fix-all-safe
agentpack diagnose-selection
agentpack ignore suggest
agentpack benchmark capture --since HEAD~1 --task "describe the task"
agentpack finish --since main
agentpack verify-wheel
agentpack release prepare
agentpack ci init
The Makefile remains maintainer convenience:
make help
make release-fast
make release
make verify-wheel
THREAD=codex-local make context-thread
The underlying release command wraps the public release gate:
agentpack release-check
agentpack release-check --profile auto
agentpack release-check --skip-benchmark --json
release-check verifies version/changelog sync, runs tests, builds into a
temporary directory, and runs agentpack benchmark --release-gate for full
release gates. The default --profile auto keeps that full path for code
changes, but uses the docs/plugin profile for docs, agent-rule, plugin, and
native-integration-only diffs. It does not mutate tracked files.
make verify-wheel is the packaged-CLI smoke: it builds the project, installs
the latest wheel into a temporary venv, then runs
agentpack benchmark --release-gate --no-public-table from that installed
command.
For npm publish, configure GitHub secret NPM_TOKEN. The token must publish to the npm scope in npm/package.json (@vishal2612200 today): use a token from that npm user, or create an npm org with that scope and grant the token owner publish access. If npm publish reaches the registry and then fails with E404 Not Found - PUT ... @scope/package, the token is authenticated but does not own or have write access to that scope. agentpack doctor warns locally when neither NPM_TOKEN nor NODE_AUTH_TOKEN is present, and the npm publish workflow fails early when the secret or scope access is wrong.
Good contribution areas:
- More real-world benchmark fixtures and public repo eval cases
- Better Windows ergonomics beyond the supported PowerShell + Git for Windows path
- Better symbol extraction for Go, Rust, Java, and Kotlin
- More precise import/dependency resolution for framework-heavy repos
- Ranking regressions with
expected_filescases that reproduce misses - npm wrapper improvements that preserve the Python CLI as the source of truth
Please include tests for ranking changes. A good ranking PR usually adds one focused unit test and one scenario in tests/test_ranking_evals.py.
Optional dependencies
pipx inject agentpack-cli "agentpack-cli[mcp]" # expose agentpack as MCP server tools
pipx inject agentpack-cli "agentpack-cli[all]" # default deps + mcp