pi-aia-asf 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -2
- package/index.ts +27 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,12 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
-
## [0.9.
|
|
10
|
+
## [0.9.1] - 2026-10-03
|
|
11
11
|
|
|
12
12
|
### Added
|
|
13
13
|
|
|
14
|
-
- (describe changes for 0.9.
|
|
14
|
+
- (describe changes for 0.9.1)
|
|
15
|
+
|
|
15
16
|
|
|
17
|
+
## [0.9.0] - 2026-09-27
|
|
16
18
|
|
|
17
19
|
### Added
|
|
18
20
|
|
package/index.ts
CHANGED
|
@@ -271,7 +271,14 @@ export default function register(pi: ExtensionAPI): void {
|
|
|
271
271
|
return state.current ? `ASF phase → ${phase}${workType ? ` (${workType})` : ""}` : "ASF session ended.";
|
|
272
272
|
};
|
|
273
273
|
|
|
274
|
-
pi.registerCommand(
|
|
274
|
+
// pi >= 1.0 contract: registerCommand(name, { description, handler }) where
|
|
275
|
+
// handler receives the raw argument STRING and returns void — output goes to
|
|
276
|
+
// ctx.ui.notify(). The command body stays a string-returning function so the
|
|
277
|
+
// gate text is testable without a UI.
|
|
278
|
+
const runAsf = async (
|
|
279
|
+
args: string[],
|
|
280
|
+
ctx: ExtensionCommandContext,
|
|
281
|
+
): Promise<string> => {
|
|
275
282
|
const sub = (args[0] || "").toLowerCase();
|
|
276
283
|
|
|
277
284
|
switch (sub) {
|
|
@@ -420,10 +427,20 @@ export default function register(pi: ExtensionAPI): void {
|
|
|
420
427
|
dependencySummary()
|
|
421
428
|
);
|
|
422
429
|
}
|
|
430
|
+
};
|
|
431
|
+
|
|
432
|
+
pi.registerCommand("asf", {
|
|
433
|
+
description:
|
|
434
|
+
"Agentic Software Factory — /asf new|feature|bugfix|refactor|small|status|verify|health|abort",
|
|
435
|
+
handler: async (args: string, ctx: ExtensionCommandContext) => {
|
|
436
|
+
const argv = args.trim() ? args.trim().split(/\s+/) : [];
|
|
437
|
+
const out = await runAsf(argv, ctx);
|
|
438
|
+
if (out) ctx.ui.notify(out, "info");
|
|
439
|
+
},
|
|
423
440
|
});
|
|
424
441
|
|
|
425
|
-
// Plan-approval helper: /asf
|
|
426
|
-
|
|
442
|
+
// Plan-approval helper: /asf-approve records Gate 5 approval (requires PLAN.md)
|
|
443
|
+
const runApprove = async (ctx: ExtensionCommandContext): Promise<string> => {
|
|
427
444
|
const project = projectName();
|
|
428
445
|
const state = await loadState(project);
|
|
429
446
|
if (!state.current) return "No active ASF session — start one with /asf new|feature|bugfix|refactor.";
|
|
@@ -447,5 +464,12 @@ export default function register(pi: ExtensionAPI): void {
|
|
|
447
464
|
"Test-first, strict codebase isolation, regression test per bug fixed.\n" +
|
|
448
465
|
"Run /asf verify before delivery."
|
|
449
466
|
);
|
|
467
|
+
};
|
|
468
|
+
|
|
469
|
+
pi.registerCommand("asf-approve", {
|
|
470
|
+
description: "Record Gate 5 plan approval (requires PLAN.md) and begin implementation",
|
|
471
|
+
handler: async (_args: string, ctx: ExtensionCommandContext) => {
|
|
472
|
+
ctx.ui.notify(await runApprove(ctx), "info");
|
|
473
|
+
},
|
|
450
474
|
});
|
|
451
475
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-aia-asf",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "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-smart-fetch, and pi-aia-browser.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|