hobin-developer

内容来源:README.md(说明文档) · 原始地址 · 查看安装指南

原始内容

agent

Composable packages for Pi: adaptive development judgment and source-grounded learning, without imposing one fixed workflow.

This repository is a pnpm monorepo. The repository root is for development only; each directory under packages/ is an independently installable and publishable Pi package.

Packages

Package What it adds Start here
@hobin/developer A branch-aware development protocol, ten independently routed judgment skills, strict mutation gating, and Pi-native TUI controls /develop on
@hobin/learning Five source-grounded learning skills, an optional TUI chooser, and a read-only learning-artifact validator /learning or a normal learning request

Install only the package you need. Do not run pi install against the monorepo root: it intentionally has no pi manifest and is not a combined distribution.

Quick start

Requirements:

  • Pi installed and configured
  • Node.js 22.19 or newer

Install packages globally for your Pi user profile:

pi install npm:@hobin/developer
pi install npm:@hobin/learning

Or try either package for one run without adding it to settings:

pi -e npm:@hobin/developer
pi -e npm:@hobin/learning

For project-local installation, add -l; Pi writes the package entry to the project's .pi/settings.json instead of the user profile:

pi install -l npm:@hobin/developer

The packages have been exercised against Pi 0.80.3 and 0.80.10. Their Pi core imports are peer dependencies supplied by the host and are not bundled into the npm artifacts.

What to expect

Both packages keep their focused skills independent. Pi may load a skill from the current request, or the user may invoke it explicitly with /skill:<name>. Neither package requires a universal phase order.

@hobin/developer additionally provides a small stateful protocol. It can route one development question at a time, preserve unresolved questions by stable ID, and record evidence-backed judgments. Product files are still changed by Pi's normal implementation tools.

@hobin/learning provides optional discovery UI but does not claim a persistent learning phase or completion percentage. Its validator checks the structure of saved graph-shaped Markdown artifacts, not their truth or educational quality.

See each package README for commands, examples, state semantics, and boundaries.

Package safety

Pi packages can include TypeScript extensions that run with the same system access as Pi. Review third-party package source before installation. In this repository:

  • Developer can change Pi's active built-in tool set while strict mode is on.
  • Learning's extension reads only the Markdown path explicitly passed to its validator; its skills may still guide Pi to use the tools enabled by the user.
  • Neither package is a security sandbox.

See the Pi package security and installation model for host-level behavior.

Manage installed packages

pi list
pi config
pi update npm:@hobin/developer
pi update npm:@hobin/learning
pi remove npm:@hobin/developer
pi remove npm:@hobin/learning

An unversioned npm install follows future package updates. Install a specific version, such as npm:@hobin/developer@0.1.2, when you want it pinned.

Repository layout

agent/
├── packages/
│   ├── developer/   # extension, protocol state, TUI, skills, tests, evals
│   └── learning/    # extension, TUI, validator, skills, tests
├── package.json     # private workspace scripts
├── pnpm-workspace.yaml
└── pnpm-lock.yaml

Develop locally

The root packageManager field pins pnpm. From a fresh checkout:

corepack enable pnpm
pnpm install
pnpm check
pnpm eval

Run or package one workspace independently:

pnpm --filter @hobin/developer check
pnpm --filter @hobin/developer eval
pnpm --filter @hobin/developer pack

pnpm --filter @hobin/learning check
pnpm --filter @hobin/learning eval
pnpm --filter @hobin/learning pack

After installing workspace dependencies, load a package directly into Pi during development:

pi -e ./packages/developer
pi -e ./packages/learning

The packages are versioned and published independently. If one workspace later depends on another, use pnpm's workspace:* protocol so local resolution and published version rewriting stay explicit.

License

MIT