pi-aia-asf
Ai Applied Agentic Software Factory — codifies the full software development flow: intake, research, spec capture, adversarial analysis, planning with approval gates, test-first implementation, and release. Requires pi-vigilant, pi-smart-web-search, pi-sm
Package details
Install pi-aia-asf from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:pi-aia-asf- Package
pi-aia-asf- Version
0.9.0- Published
- Sep 27, 2026
- Downloads
- 871/mo · 322/wk
- Author
- bruno_aia
- License
- MIT
- Types
- extension, skill
- Size
- 190.8 KB
- Dependencies
- 0 dependencies · 4 peers
Pi manifest JSON
{
"skills": [
"./skills/aia-asf"
],
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
pi-aia-asf — Ai Applied Agentic Software Factory
Codifies the full, disciplined software development flow used on real projects (conversense, betamaxx, mbee.me, pi-vigilant): classify → intake → research → specs → adversarial analysis → plan with approval gate → test-first implementation → verification & delivery.
It turns "let's build something" into a gated pipeline where nothing is implemented on assumptions, every hard requirement is captured as a verifiable spec, and nothing ships without evidence.
What it does
| Phase | Gate | What happens |
|---|---|---|
| 0. Classify | must be ASF work | New project / feature / major bugfix / refactor — or not ASF (skill stays quiet) |
| 1. Intake | user confirms intent | Ask until goal, success criteria, constraints are all clear |
| 2. Research | approach agreed | SOTA + existing packages via web_search/web_fetch, cited |
| 3. Specs | user signs off | Every hard requirement → capture_spec (shared with pi-vigilant) |
| 4. Adversarial | findings confirmed | Edge cases, failure modes, security, maintainability challenged |
| 5. Plan | explicit approval | PLAN.md in repo root — no implementation before approval |
| 6. Implement | tests green | Test-first, strict codebase isolation, browser-tested UIs |
| 7. Verify & deliver | specs met | Every spec verified with evidence; release offered, never auto-published |
Activation
The skill activates when the user's request is a new software project, significant feature, major bugfix, or architectural refactor. It does not activate for Q&A, one-liners, casual conversation, or non-software tasks. When in doubt, it asks.
You can also force/start a session explicitly:
/asf new — start a new software project
/asf feature — add a feature
/asf bugfix — major bugfix
/asf refactor — architectural refactor
/asf status — show current phase + state
/asf health — run the code health gate (function/module/architecture)
/asf approve — mark PLAN.md as approved (Gate 5)
/asf abort — end the session
Dependencies (required)
| Package | Provides | Install |
|---|---|---|
| pi-vigilant | capture_spec, get_task_specs, update_spec_status, final verification |
pi install npm:pi-vigilant |
| pi-smart-web-search | web_search |
pi install npm:pi-smart-web-search |
| pi-smart-fetch | web_fetch, batch_web_fetch |
pi install npm:pi-smart-fetch |
| pi-aia-browser | browser_init, browser_navigate, … (Playwright + Chromium, auto-installed) |
pi install npm:pi-aia-browser |
Optional: pi-intercom (intercom — message other live pi sessions directly) is not a dependency; ASF works without it. Install it only if you want delegation between sessions: pi install npm:pi-intercom.
The extension warns at startup (and on /asf with no args) when any dependency is missing.
Install
pi install npm:pi-aia-asf
Then /reload.
How it works
- Skill (
skills/aia-asf/SKILL.md) — the workflow itself, with per-phase reference guides inreferences/. The skill uses progressive disclosure: only SKILL.md (the phase flow + gates + a reference index) loads by default; each reference is a small single-concern doc the agent reads on demand when its phase needs it (the index's "Read when" column tells it which). Small work reads at most the testing + code-quality standards; large work reads the ones its phase calls for. - Extension (
index.ts) —/asfcommands, per-project phase state (~/.pi/agent/skills/aia-asf/projects/<project>/state.json), dependency checks. - Specs shared with pi-vigilant — ASF drives
capture_specduring intake; pi-vigilant re-verifies every spec at task end and blocks "done" while MUST specs are open. One spec file, two systems.
Code Health Gate
/asf health measures convolution objectively at three levels — function
(complexity, cognitive complexity, lines, depth, params), module (file lines,
duplication, circular imports) and architecture (optional dependency rules) —
and fails the gate when a threshold is crossed. It is on by default with
conservative thresholds; configure via .asf-code-health.json at the project
root (every level/metric can be disabled independently). For large work it is
Gate 8 in /asf verify. See skills/aia-asf/references/06e-code-health.md.
{
"enabled": true,
"gate": { "mode": "block", "scope": "large" },
"missingTool": "warn",
"function": { "complexity": { "max": 20 }, "maxDepth": { "max": 4 } },
"module": { "duplication": { "thresholdPercent": 5 } }
}
Flags: --diff (compare vs committed .asf-code-health-baseline.json),
--update-baseline, --json. Tools are invoked via npx --no-install — they
must be project devDependencies (eslint, eslint-plugin-sonarjs, jscpd, madge,
dependency-cruiser); the gate never installs anything.
Release policy (configurable)
Publishing is the user's decision by default — the factory prepares the
release and gets explicit approval. A project can define its own release
policy in .asf-release.json at the project root (optional):
{
"when": "when the full suite is green and the bump is patch/minor → publish automatically; when the bump is major → send for final review; when the suite is not green → fix first, never publish",
"how": "To publish: connect with npm using the credentials in ~/.npmrc (2FA token; verify with `npm whoami`), sync git (`git pull --rebase`), run `npm run release <level>`, then verify the published version from the registry in a clean install..."
}
when— user-stated conditional rules the ASF evaluates against the current state (suite green, bump scope, credentials) and acts on.how— user-stated instructions with all technical details; the ASF drives the release with judgment, not as a deterministic command list.- No file → default: always send for final review; standard workflow in
references/07-release.md. - Always test on publish / in production, if applicable — verify the shipped artifact from the registry (clean-room install) or smoke-test prod.
Hygiene rules enforced
- Test-first; only green commits
- Strict codebase isolation — the project never touches other repos unless the user explicitly says so
- Mandatory browser testing of any web interface (real user experience, not just curl)
- Descriptive commits + CHANGELOG entries (no placeholders)
- Publishing is always the user's decision — ASF prepares the release (version + CHANGELOG + tag), optionally offers CI/CD setup, but never auto-publishes
Development
npm run check # typecheck
npm test # see repo for test suites
npm run release patch|minor|major # test → version → CHANGELOG → tag → push
License
MIT © Bruno Jakic, Ai Applied