npm.io
0.2.3 • Published 14h ago

proper-base

Licence
MIT
Version
0.2.3
Deps
0
Size
111 kB
Vulns
0
Weekly
0
Install scriptsThis package runs scripts during installation (preinstall/install/postinstall)

proper-pi-extensions

Local Pi packages and Beads workflow support. The repository root is not a Pi package or npm workspace; install only the package directories you use.

Packages and bundles

Folder Type User-facing behavior
proper-base Pi extension Improves transcripts, session titles, /clear, prompt history and search, editor keys, autocomplete, fullscreen navigation, image handling, cancellation, and footer layout.
proper-llm-router Pi extension Routes each session's first task to one of seven model tiers, then handles command pins, per-task overrides, quota swaps, fallbacks, and ultra thinking support.
proper-flow Pi prompt package Adds /triage, /file, /spec, and /implement-ready for filing, specifying, and implementing Beads work.
beads-flow Beads support bundle Installs the constitution and speckit formulas plus the worktree, retry, integration, and audit rail used by proper-flow.

proper-base and proper-llm-router work independently. proper-flow expects beads-flow; it can also use pi-subagents for parallel workers and proper-llm-router for per-task model selection. With both runtime extensions installed, proper-base's /clear keeps the outgoing model instead of re-arming the router. The tested Pi compatibility target is 0.84.2; dependency-backed local setup requires Node 22.19 or newer.

Install

Published packages:

pi install npm:proper-base
pi install npm:proper-flow

proper-flow still expects the Beads resources from this repository:

./beads-flow/install.sh link

Local checkout:

npm --prefix proper-base install

pi install ./proper-base
pi install ./proper-llm-router
pi install ./proper-flow

Pi supplies proper-base's core peer packages. Its local npm install prepares development tooling and seeds the optional pi-subagents worker default. Each package README lists its remaining setup and runtime requirements.

Release npm packages

.release-me.json opts this repository into package-aware releases. Run the shared script from the repository root with the package name:

./tools/release-me/release.sh bump patch proper-base
./tools/release-me/release.sh bump minor proper-flow
./tools/release-me/release.sh bump --dry-run patch proper-base
./tools/release-me/release.sh latest proper-flow

The script updates the selected package version, validates its tarball, commits the version, creates an annotated <package>-vX.Y.Z tag, and atomically pushes main plus the tag. The tag starts .github/workflows/publish-npm.yml, which verifies and packs without OIDC permissions, publishes the exact tarball through npm trusted publishing, then creates a GitHub Release from the tag annotation.

Configure both npm packages with the same trusted publisher:

  • GitHub repository: sharaf-nassar/proper-pi-extensions
  • Workflow: publish-npm.yml
  • Environment: npm-release
  • Allowed action: npm publish

Protect the GitHub npm-release environment with a required reviewer and restrict creation or deletion of proper-base-v* and proper-flow-v* tags to maintainers. Main-branch rules must allow the release maintainer to bypass a PR-only rule for the script's atomic version-commit plus tag push. After the first trusted release succeeds, set each npm package to disallow token publishing.

Repository internals

Folder Purpose
lat.md/ Architecture, protocol, and verification documentation.
.beads/ Repository task state and Git hook shims. This is separate from the user-facing beads-flow/ bundle.
scripts/ Shared repository validation and policy checks.
test/ Cross-package regression tests.

Validate the checkout

Initialize a fresh checkout once:

npm --prefix proper-base install
npm --prefix proper-llm-router install

git config core.hooksPath .beads/hooks
pre-commit install-hooks

Run either gate directly:

pre-commit run --all-files
pre-commit run --hook-stage pre-push --all-files

The commit gate runs formatting, lint, secrets, spelling, Markdown, shell, package tests, strict TypeScript, package checks, and lat.md validation. The push gate adds coverage, audits, OSV, signatures, and the live router smoke. That smoke needs configured judge and CPA services plus credentials.

Validation policy changes require human review and a human-applied ALLOW_POLICY_CHANGES=1. Local hooks are guardrails, not a security boundary.

Keywords