@leing2021/super-pi 0.18.1 → 0.19.0
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/README.md +13 -7
- package/extensions/ce-core/index.ts +25 -4
- package/extensions/ce-core/tools/bash-output-filter.ts +1 -1
- package/package.json +3 -4
- package/skills/04-review/SKILL.md +2 -2
- package/skills/04-review/references/handoff.md +1 -1
- package/skills/{05-compound → 05-learn}/SKILL.md +2 -2
- package/skills/06-next/SKILL.md +1 -1
- package/skills/06-next/references/recommendation-logic.md +4 -4
- package/skills/08-status/SKILL.md +1 -1
- package/skills/09-help/SKILL.md +2 -2
- package/skills/09-help/references/workflow-sequence.md +1 -1
- /package/skills/{05-compound → 05-learn}/assets/solution-template.md +0 -0
- /package/skills/{05-compound → 05-learn}/references/category-map.md +0 -0
- /package/skills/{05-compound → 05-learn}/references/overlap-rules.md +0 -0
- /package/skills/{05-compound → 05-learn}/references/solution-schema.yaml +0 -0
- /package/skills/{05-compound → 05-learn}/references/solution-search-strategy.md +0 -0
package/README.md
CHANGED
|
@@ -29,8 +29,8 @@ Super Pi's answers:
|
|
|
29
29
|
## The Five-Step Loop
|
|
30
30
|
|
|
31
31
|
```
|
|
32
|
-
01-brainstorm → 02-plan → 03-work → 04-review → 05-
|
|
33
|
-
think plan build review
|
|
32
|
+
01-brainstorm → 02-plan → 03-work → 04-review → 05-learn
|
|
33
|
+
think plan build review learn
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
Each step has a dedicated skill + tool pair. Not just prompts — structured toolchains.
|
|
@@ -73,7 +73,7 @@ Breaks requirements into implementation units, each following strict **RED → G
|
|
|
73
73
|
|
|
74
74
|
**Browser QA (optional)**: Uses `agent-browser` to open your app, click through pages, screenshot bugs, fix by severity, up to 3 auto-fix iterations. Can auto-generate regression tests. Like having a QA engineer run acceptance tests.
|
|
75
75
|
|
|
76
|
-
### 05-
|
|
76
|
+
### 05-learn: Compound Learnings
|
|
77
77
|
|
|
78
78
|
`pattern_extractor` scans existing artifacts, extracts and categorizes patterns. Turns "the pitfall we hit this time" into a YAML-tagged solution card in `docs/solutions/`.
|
|
79
79
|
|
|
@@ -93,7 +93,7 @@ Next time `02-plan` or `04-review` runs, a grep-first search strategy automatica
|
|
|
93
93
|
| `02-plan` | Break into units, TDD gates, incremental updates | `plan_diff` |
|
|
94
94
|
| `03-work` | Parallel execution, checkpoint resume, error recovery | `session_checkpoint`, `task_splitter`, `parallel_subagent` |
|
|
95
95
|
| `04-review` | Persona-routed review + live browser testing | `review_router` |
|
|
96
|
-
| `05-
|
|
96
|
+
| `05-learn` | Pattern extraction → knowledge card compounding | `pattern_extractor` |
|
|
97
97
|
| `06-next` | Not sure what to do next? Ask this | `workflow_state`, `session_history` |
|
|
98
98
|
| `07-worktree` | Git worktree isolated development | `worktree_manager` |
|
|
99
99
|
| `08-status` | Scan artifacts, report progress | `workflow_state`, `session_history` |
|
|
@@ -174,7 +174,7 @@ You: continue
|
|
|
174
174
|
|
|
175
175
|
→ 03-work parallel execution, checkpoint resume
|
|
176
176
|
→ 04-review code review + optional browser QA
|
|
177
|
-
→ 05-
|
|
177
|
+
→ 05-learn knowledge compounding
|
|
178
178
|
```
|
|
179
179
|
|
|
180
180
|
### Adding a feature
|
|
@@ -183,7 +183,7 @@ You: continue
|
|
|
183
183
|
You: I want to add user authentication to the project
|
|
184
184
|
|
|
185
185
|
→ 01-brainstorm CE mode, multi-round dialog: OAuth2? JWT? MFA?
|
|
186
|
-
→ Requirements doc → 02-plan → 03-work → 04-review → 05-
|
|
186
|
+
→ Requirements doc → 02-plan → 03-work → 04-review → 05-learn
|
|
187
187
|
```
|
|
188
188
|
|
|
189
189
|
### Resume after interruption
|
|
@@ -219,7 +219,7 @@ your-project/
|
|
|
219
219
|
├── docs/
|
|
220
220
|
│ ├── brainstorms/ # Requirements (01-brainstorm)
|
|
221
221
|
│ ├── plans/ # Execution plans (02-plan)
|
|
222
|
-
│ └── solutions/ # Knowledge cards (05-
|
|
222
|
+
│ └── solutions/ # Knowledge cards (05-learn)
|
|
223
223
|
└── .context/
|
|
224
224
|
└── compound-engineering/
|
|
225
225
|
├── checkpoints/ # Breakpoint files (session_checkpoint)
|
|
@@ -351,6 +351,12 @@ Not a fork. Not a wrapper. Methodologies extracted and rebuilt with Pi's native
|
|
|
351
351
|
|
|
352
352
|
## Changelog
|
|
353
353
|
|
|
354
|
+
### 0.19.0 — 0.69.0 alignment + learn rename
|
|
355
|
+
- TypeBox migration: `@sinclair/typebox` → `typebox` (zero old-path imports)
|
|
356
|
+
- Peer/dev dependency upgrade: pi-coding-agent `0.67.6` → `0.69.0`
|
|
357
|
+
- Tool termination: 6 pure-query tools now return `terminate: true` to reduce unnecessary LLM rounds
|
|
358
|
+
- Skill rename: `05-compound` → `05-learn` for clarity
|
|
359
|
+
|
|
354
360
|
### 0.18.0 — Progressive rules
|
|
355
361
|
- Built-in `rules/` directory with 13 language layers + common + web (78 Markdown files)
|
|
356
362
|
- New `10-rules` skill: progressive on-demand loading, zero waste
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent"
|
|
2
|
-
import { Type } from "
|
|
2
|
+
import { Type } from "typebox"
|
|
3
3
|
import { createArtifactHelperTool, type ArtifactType } from "./tools/artifact-helper"
|
|
4
4
|
import { createAskUserQuestionTool } from "./tools/ask-user-question"
|
|
5
5
|
import { createSubagentTool } from "./tools/subagent"
|
|
@@ -124,7 +124,10 @@ const parallelSubagentTaskSchema = Type.Object({
|
|
|
124
124
|
})
|
|
125
125
|
|
|
126
126
|
const parallelSubagentParams = Type.Object({
|
|
127
|
-
tasks: Type.
|
|
127
|
+
tasks: Type.Union([
|
|
128
|
+
Type.Array(parallelSubagentTaskSchema),
|
|
129
|
+
Type.String({ description: "JSON stringified array of tasks" }),
|
|
130
|
+
], { description: "Array of independent tasks to run concurrently (can be a JSON string)" }),
|
|
128
131
|
inheritSkills: Type.Optional(Type.Boolean({ description: "Whether subagents should inherit skills. Default: false" })),
|
|
129
132
|
})
|
|
130
133
|
|
|
@@ -335,6 +338,7 @@ export default function ceCoreExtension(pi: ExtensionAPI) {
|
|
|
335
338
|
return {
|
|
336
339
|
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
337
340
|
details: result,
|
|
341
|
+
terminate: true,
|
|
338
342
|
}
|
|
339
343
|
},
|
|
340
344
|
})
|
|
@@ -389,6 +393,7 @@ export default function ceCoreExtension(pi: ExtensionAPI) {
|
|
|
389
393
|
return {
|
|
390
394
|
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
391
395
|
details: result,
|
|
396
|
+
terminate: true,
|
|
392
397
|
}
|
|
393
398
|
},
|
|
394
399
|
})
|
|
@@ -396,12 +401,24 @@ export default function ceCoreExtension(pi: ExtensionAPI) {
|
|
|
396
401
|
pi.registerTool({
|
|
397
402
|
name: parallelSubagent.name,
|
|
398
403
|
label: "Parallel Subagent",
|
|
399
|
-
description: "Run multiple skill-based subagent tasks concurrently.",
|
|
404
|
+
description: "Run multiple skill-based subagent tasks concurrently. IMPORTANT: Provide 'tasks' as a clean JSON array object. If the environment forces a string, provide a valid JSON array string.",
|
|
400
405
|
parameters: parallelSubagentParams,
|
|
401
406
|
async execute(_toolCallId, params, signal) {
|
|
407
|
+
let tasks: any[]
|
|
408
|
+
if (typeof params.tasks === "string") {
|
|
409
|
+
try {
|
|
410
|
+
const cleaned = params.tasks.replace(/^```json\s*|```$/g, "").trim()
|
|
411
|
+
tasks = JSON.parse(cleaned)
|
|
412
|
+
} catch (e) {
|
|
413
|
+
throw new Error(`Failed to parse tasks string as JSON: ${e instanceof Error ? e.message : String(e)}`)
|
|
414
|
+
}
|
|
415
|
+
} else {
|
|
416
|
+
tasks = params.tasks
|
|
417
|
+
}
|
|
418
|
+
|
|
402
419
|
const result = await parallelSubagent.execute(
|
|
403
420
|
{
|
|
404
|
-
tasks
|
|
421
|
+
tasks,
|
|
405
422
|
inheritSkills: params.inheritSkills,
|
|
406
423
|
},
|
|
407
424
|
createSubagentRunner(pi, signal),
|
|
@@ -432,6 +449,7 @@ export default function ceCoreExtension(pi: ExtensionAPI) {
|
|
|
432
449
|
return {
|
|
433
450
|
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
434
451
|
details: result,
|
|
452
|
+
terminate: true,
|
|
435
453
|
}
|
|
436
454
|
},
|
|
437
455
|
})
|
|
@@ -471,6 +489,7 @@ export default function ceCoreExtension(pi: ExtensionAPI) {
|
|
|
471
489
|
return {
|
|
472
490
|
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
473
491
|
details: result,
|
|
492
|
+
terminate: true,
|
|
474
493
|
}
|
|
475
494
|
},
|
|
476
495
|
})
|
|
@@ -512,6 +531,7 @@ export default function ceCoreExtension(pi: ExtensionAPI) {
|
|
|
512
531
|
return {
|
|
513
532
|
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
514
533
|
details: result,
|
|
534
|
+
terminate: true,
|
|
515
535
|
}
|
|
516
536
|
},
|
|
517
537
|
})
|
|
@@ -533,6 +553,7 @@ export default function ceCoreExtension(pi: ExtensionAPI) {
|
|
|
533
553
|
return {
|
|
534
554
|
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
535
555
|
details: result,
|
|
556
|
+
terminate: true,
|
|
536
557
|
}
|
|
537
558
|
},
|
|
538
559
|
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leing2021/super-pi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Pi-native Compound Engineering package for iterative development workflows",
|
|
@@ -36,11 +36,10 @@
|
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"@mariozechner/pi-coding-agent": "*",
|
|
39
|
-
"
|
|
39
|
+
"typebox": "*"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@mariozechner/pi-coding-agent": "0.
|
|
43
|
-
"@sinclair/typebox": "0.34.41",
|
|
42
|
+
"@mariozechner/pi-coding-agent": "0.69.0",
|
|
44
43
|
"bun-types": "^1.3.12"
|
|
45
44
|
},
|
|
46
45
|
"pi": {
|
|
@@ -16,7 +16,7 @@ Use this skill after implementation to review changes against the diff, the rele
|
|
|
16
16
|
- Search solutions with grep-first strategy: extract keywords from the task → `bash grep -rl "tags:.*keyword" docs/solutions/ ~/.pi/agent/docs/solutions/` → read only frontmatter (first 15 lines) of matching files → score by severity + tag relevance → fully read top 3. Search both project-level (`docs/solutions/`) and global-level (`~/.pi/agent/docs/solutions/`). If no matches, report "No relevant solutions found" and proceed.
|
|
17
17
|
- Produce **structured findings** using `references/findings-schema.md`.
|
|
18
18
|
- When findings are **autofixable**, apply fixes and re-review (max 3 iterations).
|
|
19
|
-
- End with a handoff that can point toward fixes, re-review, or `05-
|
|
19
|
+
- End with a handoff that can point toward fixes, re-review, or `05-learn`.
|
|
20
20
|
|
|
21
21
|
## Review discipline — technical evaluation
|
|
22
22
|
|
|
@@ -69,5 +69,5 @@ After QA:
|
|
|
69
69
|
After review (and optional QA) is complete, hand off using `references/handoff.md`:
|
|
70
70
|
1. Summarize all findings (code review + QA if run).
|
|
71
71
|
2. Note fix commits if any were applied.
|
|
72
|
-
3. Recommend `05-
|
|
72
|
+
3. Recommend `05-learn` if learnings are worth capturing.
|
|
73
73
|
4. Recommend `03-work` if fixes need further implementation.
|
|
@@ -6,7 +6,7 @@ When the review is complete:
|
|
|
6
6
|
2. State whether fixes or re-review are needed.
|
|
7
7
|
3. If findings are **autofixable**, apply the fixes and re-review the changes.
|
|
8
8
|
4. After autofix, report what was changed and whether re-review confirms the fix.
|
|
9
|
-
5. Recommend `05-
|
|
9
|
+
5. Recommend `05-learn` when the review surfaced a reusable learning or newly solved problem.
|
|
10
10
|
6. Mention any relevant plan or solution artifacts referenced during review.
|
|
11
11
|
|
|
12
12
|
## Autofix loop
|
package/skills/06-next/SKILL.md
CHANGED
|
@@ -34,4 +34,4 @@ Use this skill when the user wants to know what to run next in the Compound Engi
|
|
|
34
34
|
- `02-plan` — turn requirements into implementation units
|
|
35
35
|
- `03-work` — execute the plan
|
|
36
36
|
- `04-review` — review changes with structured findings
|
|
37
|
-
- `05-
|
|
37
|
+
- `05-learn` — capture learnings as solution artifacts
|
|
@@ -26,18 +26,18 @@ If code changes have been made (detected by git diff) and no recent review exist
|
|
|
26
26
|
- Recommend `04-review`
|
|
27
27
|
- Reason: Implementation is done. Review the changes with structured findings.
|
|
28
28
|
|
|
29
|
-
## Rule 5: After review,
|
|
29
|
+
## Rule 5: After review, learn
|
|
30
30
|
|
|
31
31
|
If a review has been completed and `solutions.count` has not increased since the last workflow cycle:
|
|
32
|
-
- Recommend `05-
|
|
32
|
+
- Recommend `05-learn`
|
|
33
33
|
- Reason: A review was completed. Capture key learnings as a durable solution artifact.
|
|
34
34
|
|
|
35
35
|
## Rule 6: All artifacts exist
|
|
36
36
|
|
|
37
37
|
If brainstorm, plan, and solution all exist:
|
|
38
|
-
- Recommend `05-
|
|
38
|
+
- Recommend `05-learn` if no recent solution was added
|
|
39
39
|
- Otherwise recommend `01-brainstorm` for a new cycle
|
|
40
|
-
- Reason: A full loop may be complete. Either
|
|
40
|
+
- Reason: A full loop may be complete. Either learn learnings or start a new cycle.
|
|
41
41
|
|
|
42
42
|
## Fallback
|
|
43
43
|
|
|
@@ -26,7 +26,7 @@ If `workflow_state` is not available, fall back to `bash` with `ls` and `find` t
|
|
|
26
26
|
- If a recent brainstorm exists but there is no matching plan in `docs/plans/`, recommend `02-plan` next.
|
|
27
27
|
- If a recent plan exists and implementation appears incomplete, recommend `03-work` next.
|
|
28
28
|
- If code has changed after planning, recommend `04-review` next.
|
|
29
|
-
- If a problem was just solved and there is no matching learning in `docs/solutions/`, recommend `05-
|
|
29
|
+
- If a problem was just solved and there is no matching learning in `docs/solutions/`, recommend `05-learn` next.
|
|
30
30
|
- If multiple artifacts exist, summarize them briefly and name the single best next step.
|
|
31
31
|
|
|
32
32
|
## Output format
|
package/skills/09-help/SKILL.md
CHANGED
|
@@ -13,7 +13,7 @@ Use this skill when the user asks how to use the package, which workflow step co
|
|
|
13
13
|
- `02-plan` — use when requirements are clear enough to turn into implementation units. After planning, user can optionally run a CEO-style strategic review or strict review (error maps, failure modes, test diagrams).
|
|
14
14
|
- `03-work` — use when there is a plan or a tightly scoped task ready for controlled execution.
|
|
15
15
|
- `04-review` — use after code changes to produce structured findings. After code review, user can optionally extend to browser-based QA testing (find visual/functional bugs with agent-browser) and regression test generation.
|
|
16
|
-
- `05-
|
|
16
|
+
- `05-learn` — use after solving a problem so the repo gains a durable learning in `docs/solutions/`.
|
|
17
17
|
- `08-status` — use when the user wants to know which artifact already exists and what the next workflow step should be.
|
|
18
18
|
|
|
19
19
|
## Recommended flow
|
|
@@ -29,7 +29,7 @@ Use this skill when the user asks how to use the package, which workflow step co
|
|
|
29
29
|
4. Run `04-review` after implementation.
|
|
30
30
|
- Optionally extend to **Browser QA** for visual and functional bug finding.
|
|
31
31
|
- Or **Browser QA + Regression Tests** to also generate automated test coverage.
|
|
32
|
-
5. Capture key learnings with `05-
|
|
32
|
+
5. Capture key learnings with `05-learn`.
|
|
33
33
|
6. Use `08-status` at any point to inspect repo-local workflow state.
|
|
34
34
|
|
|
35
35
|
## Output
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
2. `02-plan` → break it into concrete units (optionally + CEO Review / Strict Review)
|
|
5
5
|
3. `03-work` → execute the plan
|
|
6
6
|
4. `04-review` → inspect the changes (optionally + Browser QA / QA + Regression Tests)
|
|
7
|
-
5. `05-
|
|
7
|
+
5. `05-learn` → save key learnings
|
|
8
8
|
|
|
9
9
|
Use `08-status` at any point to see where you are.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|