Starter bundle for team-shared Pi extensions.
Included tools:
jira_myselfjira_get_issuejira_searchbf_shop_db_querybuild_questionnairerun_fresh_reviewbfh_state
Included commands:
/build <TICKET-123>— existing Jira ticket → production workflow/bfh <TICKET-123> [--no-jira]— lean BFH POC: Jira intake (or local/offline mode) → state file → scout/clarify/implement/verify-review/close/retro loop/bfh-status [TICKET-123|state-path]— show compact current state/bfh-list— list local harness state files/bfh-resume [TICKET-123|state-path]— resume an existing run/bfh-scout [TICKET-123|state-path]— run automated read-only scout subagent and patchstate.scout/bfh-verify [TICKET-123|state-path]— run the combined verify/review helper and auto-transition/bfh-close [TICKET-123|state-path]— enforce close gates and create/reuse a draft PR/bfh-selftest— run local deterministic harness smoke checks
This starter now includes:
.pi/settings.jsonwith:"packages": [".."](loads this package from repo root)"skills": ["../.claude/skills"](loads shared Claude-style skills)
.claude/skills/folder for shared skills
So teammates can clone this repo and run pi directly.
pi install git:git@github.com:your-org/pi-team-tools.git
# or
pi install https://github.com/your-org/pi-team-toolspi install /absolute/path/to/pi-team-tools-starterIn the consuming repo, create .pi/settings.json:
{
"packages": [
"git:github.com/your-org/pi-team-tools@v0.1.0"
],
"skills": [
"../.claude/skills"
]
}Then commit these folders in that consuming repo:
.pi/settings.json.claude/skills/
export JIRA_BASE_URL="https://jira.your-company.com"
export JIRA_TOKEN="..."
# optional:
export JIRA_AUTH_MODE="bearer" # or "basic"
export JIRA_EMAIL="you@company.com" # required for basic modeSupported vars:
DB_HOST(optional, defaultlocalhost)DB_PORT(optional, default3306)DB_NAMEorDB_DATABASEDB_USERorDB_USERNAMEDB_PASSWORD
Env source precedence in current tool:
envFiletool argumentDB_ENV_FILE.envshop/source/.envsource/.env
Exported env vars override .env values.
Start it from the target repository:
pi
/bfh PC-120
# local/offline smoke start without Jira credentials:
/bfh POC-120 --no-jiraThe command fetches the Jira ticket, writes a compact state record to:
.pi/bfh/<TICKET>.state.json
State schema reference:
bfh-state.schema.json
The active agent is then prompted to follow the deterministic phase contract:
intake → scout → clarify? → implement → verify_review
↳ max 2 repair loops back to implement
→ close → retro → done
bfh_state is the state gate. It records patches/evidence and enforces legal advance transitions plus the two-cycle revision cap. Its diff_context action returns compact git diff/status snippets for verify/review without dumping whole files. Its scout_auto action runs a fresh read-only scout subagent and patches state.scout. Its verify_review action runs a fresh reviewer subagent, normalizes findings into state.review, records review evidence, and auto-transitions to implement, close, or failed. Its close_check action verifies readiness and returns a PR body without creating anything. Its close_create action enforces close gates, creates/reuses a draft PR via gh, records PR evidence, and can auto-advance close -> retro.
For quick validation that the extension wiring and transition guards work locally, run:
/bfh-selftestmysql2is declared independenciesand is installed automatically when installed as a Pi package.- Pi core extension imports (
@mariozechner/pi-coding-agent,typebox) are peer dependencies.
- Create GitHub repo (
your-org/pi-team-tools) - Copy this folder contents into that repo
- Commit + push
- Tag a release (for pinned installs), e.g.
v0.1.0 - Teammates install with:
pi install git:git@github.com:your-org/pi-team-tools.git@v0.1.0