@hobin/developer 0.1.3 → 0.1.5
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 +160 -38
- package/extensions/developer.ts +483 -68
- package/extensions/machine.ts +344 -0
- package/extensions/state.ts +128 -98
- package/extensions/tool-policy.ts +54 -25
- package/extensions/tui.ts +407 -202
- package/package.json +7 -2
- package/skills/abstraction-review/SKILL.md +6 -5
- package/skills/adversarial-eval/SKILL.md +7 -3
- package/skills/model/SKILL.md +13 -4
- package/skills/naming-judgment/SKILL.md +9 -3
- package/skills/schedule/SKILL.md +6 -3
- package/skills/signal/SKILL.md +6 -3
- package/skills/sketch/SKILL.md +29 -10
- package/skills/specify/SKILL.md +11 -2
- package/skills/verify/SKILL.md +10 -4
- package/skills/visualize/SKILL.md +5 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hobin/developer",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Adaptive product-development reasoning and evidence for Pi.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": ["pi-package", "pi", "developer", "skills"],
|
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
"scripts": {
|
|
29
29
|
"check": "node scripts/check-package.mjs && node --test tests/*.test.ts",
|
|
30
30
|
"eval": "node scripts/eval-rpc.mjs",
|
|
31
|
-
"eval:json": "node scripts/eval-json.mjs"
|
|
31
|
+
"eval:json": "node scripts/eval-json.mjs",
|
|
32
|
+
"eval:live": "node scripts/eval-live.mjs --transport rpc",
|
|
33
|
+
"eval:live:json": "node scripts/eval-live.mjs --transport json"
|
|
32
34
|
},
|
|
33
35
|
"pi": {
|
|
34
36
|
"extensions": ["./extensions/developer.ts"],
|
|
@@ -39,5 +41,8 @@
|
|
|
39
41
|
"@earendil-works/pi-coding-agent": "*",
|
|
40
42
|
"@earendil-works/pi-tui": "*",
|
|
41
43
|
"typebox": "*"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"xstate": "5.32.5"
|
|
42
47
|
}
|
|
43
48
|
}
|
|
@@ -21,11 +21,12 @@ rejected, or deferred?
|
|
|
21
21
|
|
|
22
22
|
## Output
|
|
23
23
|
|
|
24
|
-
Lead with the caller's concrete failure mode; keep review labels secondary.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
Lead with the caller's concrete failure mode; keep review labels secondary. Use
|
|
25
|
+
a review card or table with `Candidate`, `Pressure`, `Caller contract`, `Hidden
|
|
26
|
+
detail`, `Failure`, `Stop check`, and `Evidence gap`. Add a boundary diagram or
|
|
27
|
+
before/after interface snippet when the candidate changes layers or callers.
|
|
28
|
+
End with one prominent decision: `keep`, `revise-surface`, `revise-model`,
|
|
29
|
+
`split`, `reject`, or `defer`. When used inside a larger task, return:
|
|
29
30
|
|
|
30
31
|
```text
|
|
31
32
|
Status: resolved | needs-evidence | not-applicable | blocked
|
|
@@ -21,9 +21,13 @@ What adversarial evidence would expose the target's real failure modes?
|
|
|
21
21
|
## Output
|
|
22
22
|
|
|
23
23
|
Lead with the target claim and observed failure mode; keep eval labels secondary.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
Render the escalation ladder as an ordered matrix with source/version,
|
|
25
|
+
fixture, verifier, expected falsifier, mutation scope, and stop condition. After
|
|
26
|
+
execution, append observations to the evidence table below and show round
|
|
27
|
+
progression as a compact `smoke → visible → … → stop` line. Do not replace exact
|
|
28
|
+
commands or fixture provenance with narrative summaries. Produce target
|
|
29
|
+
provenance, claims and risk model, observed feedback, failure taxonomy, stop
|
|
30
|
+
rule, and residual risks. When used inside a larger task, return:
|
|
27
31
|
|
|
28
32
|
```text
|
|
29
33
|
Status: resolved | needs-evidence | not-applicable | blocked
|
package/skills/model/SKILL.md
CHANGED
|
@@ -19,10 +19,19 @@ Which cases, rules, states, or transitions make the claim precise?
|
|
|
19
19
|
|
|
20
20
|
## Output
|
|
21
21
|
|
|
22
|
-
Lead with the user's product language; keep modeling labels secondary.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
Lead with the user's product language; keep modeling labels secondary. Render
|
|
23
|
+
the lightest executable model, not a prose-only explanation. Choose the surface
|
|
24
|
+
that matches the condition space:
|
|
25
|
+
|
|
26
|
+
- case, decision, or truth table for finite combinations;
|
|
27
|
+
- state-transition table or ASCII state diagram when order matters;
|
|
28
|
+
- rules plus forbidden-state table for policy and invariants;
|
|
29
|
+
- guarantee map linking each rule to its owner and verification target.
|
|
30
|
+
|
|
31
|
+
Show predicates, data shapes, equations, or solver-like rules in a fenced code
|
|
32
|
+
block when they are part of the model. Produce domain, facts, rules, forbidden
|
|
33
|
+
cases, transitions or objectives when relevant, guarantee placement, and
|
|
34
|
+
verification targets. When used inside a larger task, return:
|
|
26
35
|
|
|
27
36
|
```text
|
|
28
37
|
Status: resolved | needs-evidence | not-applicable | blocked
|
|
@@ -21,9 +21,15 @@ change boundary should it preserve?
|
|
|
21
21
|
|
|
22
22
|
## Output
|
|
23
23
|
|
|
24
|
-
Lead with the user's product language; keep naming theory secondary.
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
Lead with the user's product language; keep naming theory secondary. Use a
|
|
25
|
+
rename map as the primary inspection surface:
|
|
26
|
+
|
|
27
|
+
| Current | What it says | What callers rely on | Proposed | Scope |
|
|
28
|
+
| --- | --- | --- | --- | --- |
|
|
29
|
+
|
|
30
|
+
For callable APIs or placement moves, add a minimal before/after caller snippet
|
|
31
|
+
showing how the proposed name reads in context. Keep prose for the decisive
|
|
32
|
+
sense boundary, hidden or overexposed detail, failure mode, and intentionally
|
|
27
33
|
deferred names. When used inside a larger task, return:
|
|
28
34
|
|
|
29
35
|
```text
|
package/skills/schedule/SKILL.md
CHANGED
|
@@ -30,9 +30,12 @@ timing follows directly from the current invariant does not need the reference.
|
|
|
30
30
|
## Output
|
|
31
31
|
|
|
32
32
|
Lead with the user's current risk and cost of delay; keep timing labels secondary.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
Use a compact timing matrix with `Pressure`, `Do now`, `Delay`, `Reversibility`,
|
|
34
|
+
and `Evidence`, followed by a prominent `now`, `after`, or `never` decision. For
|
|
35
|
+
`after`, show the reopen condition as an observable trigger; use a short timeline
|
|
36
|
+
only when ordering between behavior and structure is consequential. Produce the
|
|
37
|
+
rationale, invariant pressure, risks, and reopen condition for deferred work.
|
|
38
|
+
When used inside a larger task, return:
|
|
36
39
|
|
|
37
40
|
```text
|
|
38
41
|
Status: resolved | needs-evidence | not-applicable | blocked
|
package/skills/signal/SKILL.md
CHANGED
|
@@ -30,9 +30,12 @@ observation with no proposed movement does not need the reference.
|
|
|
30
30
|
## Output
|
|
31
31
|
|
|
32
32
|
Lead with the observed code or product pressure; keep signal labels secondary.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
Make the comparison visible. For two or more artifacts, use a table with
|
|
34
|
+
`Artifact`, `Same responsibility`, `Smallest difference`, and `Evidence`; then
|
|
35
|
+
show the proposed behavior-preserving movement as a compact before/after code
|
|
36
|
+
snippet or ASCII relation map when code or boundaries are involved. Finish with
|
|
37
|
+
a one-line classification card containing `no-signal`, `horizontal`, `vertical`,
|
|
38
|
+
or `ambiguous` plus confidence. Include model-code mismatch and a concrete
|
|
36
39
|
review candidate only when vertical or ambiguous. When used inside a larger
|
|
37
40
|
task, return:
|
|
38
41
|
|
package/skills/sketch/SKILL.md
CHANGED
|
@@ -57,10 +57,23 @@ purpose, cases, data flow, and first item are already clear needs none.
|
|
|
57
57
|
|
|
58
58
|
## Output
|
|
59
59
|
|
|
60
|
-
Lead with the user's product language; keep design labels secondary.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
Lead with the user's product language; keep design labels secondary. A resolved
|
|
61
|
+
sketch must be inspectable as an implementation shape, not only narrated in
|
|
62
|
+
paragraphs. Produce:
|
|
63
|
+
|
|
64
|
+
1. a compact case/check table;
|
|
65
|
+
2. concrete data or state definitions;
|
|
66
|
+
3. wishful top-level code, pseudocode, or an interaction skeleton in a fenced
|
|
67
|
+
code block;
|
|
68
|
+
4. a wished-interface table with contract, owner, hidden detail, and stop check;
|
|
69
|
+
5. a small ordered implementation queue and explicitly deferred abstractions;
|
|
70
|
+
6. an ASCII flow, relation map, state transition, or boundary diagram whenever
|
|
71
|
+
two or more components, states, or collaborations are materially related.
|
|
72
|
+
|
|
73
|
+
Use prose only to explain why those artifacts have their shape. Route
|
|
74
|
+
`visualize` separately when choosing the visual form is itself consequential;
|
|
75
|
+
do not require that extra route for a straightforward inline table or ASCII
|
|
76
|
+
map. When used inside a larger task, return:
|
|
64
77
|
|
|
65
78
|
```text
|
|
66
79
|
Status: resolved | needs-evidence | not-applicable | blocked
|
|
@@ -77,8 +90,10 @@ routing to the caller.
|
|
|
77
90
|
|
|
78
91
|
Finish when the first implementation item is small enough to execute and check,
|
|
79
92
|
and non-local or invariant-bearing candidates are explicit rather than silently
|
|
80
|
-
assumed.
|
|
81
|
-
|
|
93
|
+
assumed. `resolved` is not valid for a prose-only sketch: the output must show
|
|
94
|
+
the code or interaction skeleton and the checks that make the first item
|
|
95
|
+
executable. Revisit when implementation evidence breaks the ownership or
|
|
96
|
+
data-flow assumptions.
|
|
82
97
|
|
|
83
98
|
## Method
|
|
84
99
|
|
|
@@ -87,11 +102,15 @@ assumptions.
|
|
|
87
102
|
3. Derive relevant data or state definitions and their ownership pressure.
|
|
88
103
|
4. List representative cases before choosing code shape.
|
|
89
104
|
5. Derive the template from data, state, traversal, or ownership flow.
|
|
90
|
-
6. Write wishful top-level code, pseudocode, or interaction flow
|
|
105
|
+
6. Write wishful top-level code, pseudocode, or interaction flow in a fenced
|
|
106
|
+
code block. Show every wished interface in context rather than merely naming
|
|
107
|
+
helpers in prose.
|
|
91
108
|
7. For each wished interface, state its purpose, contract, owner, hidden detail,
|
|
92
|
-
and representative stop check.
|
|
93
|
-
8.
|
|
94
|
-
|
|
109
|
+
and representative stop check in a table.
|
|
110
|
+
8. Draw the smallest inline map that exposes non-trivial data flow,
|
|
111
|
+
collaboration, state movement, or ownership boundaries.
|
|
112
|
+
9. Separate design artifacts, implementation items, and deferred candidates.
|
|
113
|
+
10. Keep the queue small; do not turn the sketch into a project plan.
|
|
95
114
|
|
|
96
115
|
## Missing Evidence
|
|
97
116
|
|
package/skills/specify/SKILL.md
CHANGED
|
@@ -21,8 +21,17 @@ What must be true, in scope, and not guessed?
|
|
|
21
21
|
## Output
|
|
22
22
|
|
|
23
23
|
Lead with the user's product language; keep specification labels secondary.
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
Make the contract inspectable rather than burying it in prose. Default to:
|
|
25
|
+
|
|
26
|
+
- a scope table separating in scope, out of scope, and intentionally unchanged;
|
|
27
|
+
- a contract table with `Must be true`, `Evidence or owner`, and `Violating counterexample`;
|
|
28
|
+
- a short assumptions/decisions list that visibly distinguishes provisional facts
|
|
29
|
+
from human-owned choices.
|
|
30
|
+
|
|
31
|
+
A single obvious invariant may use compact bullets, but multiple constraints or
|
|
32
|
+
scope boundaries must use the tables. Produce product meaning, invariant, scope
|
|
33
|
+
and non-scope, constraints, counterexamples, and blocking unknowns. When used
|
|
34
|
+
inside a larger task, return:
|
|
26
35
|
|
|
27
36
|
```text
|
|
28
37
|
Status: resolved | needs-evidence | not-applicable | blocked
|
package/skills/verify/SKILL.md
CHANGED
|
@@ -30,10 +30,16 @@ relevant evidence does not need the reference.
|
|
|
30
30
|
## Output
|
|
31
31
|
|
|
32
32
|
Lead with the user's claim and observed evidence; keep verification labels secondary.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
Use an evidence matrix as the primary surface:
|
|
34
|
+
|
|
35
|
+
| Claim | Evidence | Strength/relevance | Wrong case that could pass | Status |
|
|
36
|
+
| --- | --- | --- | --- | --- |
|
|
37
|
+
|
|
38
|
+
Follow it with a concise residual-risk and unverified-claims list. When source
|
|
39
|
+
compatibility matters, add requested-versus-exercised provenance as a separate
|
|
40
|
+
row or table. Produce the strongest scoped satisfaction judgment, target and
|
|
41
|
+
counterexample coverage, assumptions, and residual risk. When used inside a
|
|
42
|
+
larger task, return:
|
|
37
43
|
|
|
38
44
|
```text
|
|
39
45
|
Status: resolved | needs-evidence | not-applicable | blocked
|
|
@@ -21,9 +21,11 @@ What visual surface would materially lower judgment cost?
|
|
|
21
21
|
## Output
|
|
22
22
|
|
|
23
23
|
Use the user's concepts as labels; keep visualization terminology secondary.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
When a visual is useful, render the completed table, ASCII/Mermaid diagram,
|
|
25
|
+
timeline, tree, or matrix in the response; do not stop at recommending a form.
|
|
26
|
+
When prose is better, state that decision and use the smallest structured list
|
|
27
|
+
that answers the inspection question. Include what the surface reveals and what
|
|
28
|
+
it must not imply. When used inside a larger task, return:
|
|
27
29
|
|
|
28
30
|
```text
|
|
29
31
|
Status: resolved | needs-evidence | not-applicable | blocked
|