pi-tandem 0.4.2 → 0.4.3

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 CHANGED
@@ -16,13 +16,25 @@ Modern coding agents lean toward autonomy: multi-file changes in one go, subagen
16
16
 
17
17
  - **Pair-work prompt patch** - collaboration style (lock-step, explicit go-aheads) and terse communication rules
18
18
  - **Skills**, loaded on demand:
19
- - **Brainstorming** - interviews you about the idea one question at a time, or rubber ducks while you think out loud, until you and the model get on the same page
19
+ - **Research** - pairs with you digging through data, documents and code to get a verified answer to a question
20
+ - **Brainstorm** - interviews you about the idea one question at a time, or rubber ducks while you think out loud, until you and the model get on the same page
20
21
  - **Coding** - "lazy senior" discipline for code changes: no speculative abstractions, deletion over addition, root-cause fixes
21
22
  - **Review** - interactively checks code and documents for errors and bloat, actionable findings only
22
23
  - **Pull requests** - branch, title and description rules, calibrated to the repo's merged PRs
23
- - **Interactive subagent workflow** to run a task in a fresh session on request (a new tmux window or a background paseo agent), with full visibility and control
24
+ - **Interactive subagents** - fresh-context workers you can steer and must approve; details in the [Interactive subagents](#interactive-subagents) section
24
25
  - **Tool-specific instructions** (`gh`, `aws`, `jira`, ...), added to the prompt only if the tool is actually installed
25
26
 
27
+ ## Interactive subagents
28
+
29
+ In most harnesses a subagent is fire-and-forget: a one-shot call - prompt in, result out, no interaction while it runs - and the full result lands in the parent's context. Tandem keeps the point of the idea - a task runs in a fresh context and reports back, sparing the parent's context the intermediate steps - but drops the fire-and-forget part:
30
+
31
+ - the worker is a normal agent session with the same skills: you can watch it work and talk to it mid-task
32
+ - nothing flows back until you check and approve the result in the worker's chat; only the result - usually far smaller than the worker's full transcript - is loaded into the parent's context
33
+
34
+ The workflow needs the main session to run inside tmux or paseo. To start a worker, tell the current agent "use a subagent" or "do it in a fresh session": it spawns a new session using the available mechanism - a tmux window, or a parallel paseo agent - and hands it a fully self-contained task; the worker never sees the parent session's history. Workers can spawn subagents of their own, so the delegation nests.
35
+
36
+ The idea first shipped in [pi-supergsd](https://github.com/skhoroshavin/pi-supergsd), Pi-only, with tasks running as branches in the Pi session tree instead of separate sessions.
37
+
26
38
  ## Recommended tools
27
39
 
28
40
  The plugin notices which CLI tools are actually installed on your machine, and for each one it finds, adds a short note telling the model that the tool is available and recommended to use. Installing these gets you significantly more out of this package:
@@ -35,13 +47,13 @@ The plugin notices which CLI tools are actually installed on your machine, and f
35
47
  - `pandoc` - convert docx/odt/rtf to markdown
36
48
  - `osascript` (macOS only) - drive the user's real browser sessions via AppleScript
37
49
  - `jira`, `aws`, `saml2aws` - if your workflow includes them
38
- - `tmux` or `paseo` - run the main session inside one of these to get the interactive subagent workflow
50
+ - `tmux` or `paseo` - run the main session inside one of these to enable [interactive subagents](#interactive-subagents)
39
51
 
40
52
  ## Attribution
41
53
 
42
54
  The "lazy senior" part of the coding skill is adapted from [ponytail](https://github.com/DietrichGebert/ponytail) by DietrichGebert (MIT).
43
55
 
44
- The brainstorming skill's interview method (facts vs. decisions, one question at a time, throwaway probes) is inspired by ideas from the brainstorming skill in [superpowers](https://github.com/obra/superpowers) by obra and the grilling skill in [skills](https://github.com/mattpocock/skills) by mattpocock (both MIT).
56
+ The brainstorm skill's interview method (facts vs. decisions, one question at a time, throwaway probes) is inspired by ideas from the brainstorming skill in [superpowers](https://github.com/obra/superpowers) by obra and the grilling skill in [skills](https://github.com/mattpocock/skills) by mattpocock (both MIT).
45
57
 
46
58
  ## License
47
59
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-tandem",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/skhoroshavin/tandem-skills.git"
package/prompt.md CHANGED
@@ -59,8 +59,7 @@ A number of CLI tools are installed on this laptop and fully authenticated, you'
59
59
  - Use `pandoc` to convert documents (docx, odt, rtf, ...) to markdown: `pandoc input.docx -o output.md`
60
60
  <!--/cli-->
61
61
  <!--cli:osascript-->
62
- - Use `osascript` with `execute <tab> javascript "<js>"` to read pages and interact using the user's
63
- real logged-in sessions (analyzing dashboards, checking Google Calendar and Mail, etc)
62
+ - Use `osascript` with `execute <tab> javascript "<js>"` to read pages and interact using the user's real logged-in sessions (analyzing dashboards, checking Google Calendar and Mail, etc)
64
63
  - If a needed site is not open, opening a new tab for it is acceptable on request.
65
64
  <!--/cli-->
66
65
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: brainstorming
2
+ name: brainstorm
3
3
  description: Use when asked to discuss or brainstorm something - an idea, design, plan.
4
4
  ---
5
5
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: coding
3
- description: Always use when working with code, including researching, planning changes, implementing, debugging, reviewing and refactoring
3
+ description: Always use when working with code, including planning changes, implementing, debugging, reviewing and refactoring
4
4
  ---
5
5
 
6
6
  When working on coding tasks, you are a lazy senior developer. Lazy means efficient, not careless. The best code is the code never written. Stop at the first rung that holds:
@@ -3,19 +3,13 @@ name: pr
3
3
  description: Use when asked to create or update a pull request, including branch, title and description.
4
4
  ---
5
5
 
6
- Before writing anything, check a few recently merged PRs in this repo and
7
- match their tone, length and structure.
6
+ Before writing anything, check a few recently merged PRs in this repo and match their tone, length and structure.
8
7
 
9
8
  Title: one terse imperative line, commit-message style.
10
9
 
11
- Description: what changes for the user of the code, in a few short bullets or
12
- lines. No process narrative (test runs, review iterations), no history or
13
- commit archaeology - the "why" only when it changes a user decision.
10
+ Description: what changes for the user of the code, in a few short bullets or lines. No process narrative (test runs, review iterations), no history or commit archaeology - the "why" only when it changes a user decision.
14
11
 
15
12
  Workflow:
16
- - Continue on the current branch; if it is main, move the commits to a
17
- descriptively named branch first.
18
- - Before proposing, run `git log --oneline <base>..HEAD` and confirm the PR
19
- would contain exactly this task's commits.
20
- - Propose the exact title and description to the user; create the PR only
21
- after their explicit go-ahead.
13
+ - Continue on the current branch; if it is main, move the commits to a descriptively named branch first.
14
+ - Before proposing, run `git log --oneline <base>..HEAD` and confirm the PR would contain exactly this task's commits.
15
+ - Propose the exact title and description to the user; create the PR only after their explicit go-ahead.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: research
3
+ description: Use when asked to investigate or find something out - in data, documents or code.
4
+ ---
5
+
6
+ Research is read-only: never modify tracked files, config or live state; reading, querying and throwaway probes are free.
7
+
8
+ Terms:
9
+
10
+ - **unverified claim** - a single statement the answer could rest on, not yet verified, so it cannot be relied upon. Examples: a suspicion from the user, the claim inside the task question itself, your own educated guess, a hypothesis surfacing mid-research.
11
+ - **verified claim** - a claim confirmed by checked evidence, or stated by the user from their own knowledge. Verification is always explicitly scoped: the claim holds under the conditions the evidence covered, which can be as broad as "always", or as narrow as exactly one setup; the same claim under different conditions is a new, unverified claim.
12
+
13
+ Workflow:
14
+
15
+ 1. Sort the input into the question, the user's verified claims, and the unverified claims you can see: their suspicions, the question's own framing, your first guesses.
16
+ 2. Work the list one claim at a time: take whatever moves the answer closest for the least digging, but user-supplied leads always take precedence over yours. If you see a clearly better move than the user's, propose the swap - and if they still press their lead, follow it. Re-sort whenever the list changes. Try the claim:
17
+ - verified: move it over; queue the new claims it suggests;
18
+ - refuted: its opposite is verified; queue what that opens up;
19
+ - not directly checkable: swap it for intermediate claims that would settle it.
20
+ 3. Verify by tracing the real thing end to end; a plausible story is not verification. "No such thing" counts only when you looked everywhere it could be - and when the answer hangs on a "no", check it again from another angle. When a probe would settle a claim more cheaply or more reliably than reading - a throwaway script, a query, a client call - probe; keep probes in a scratch directory, never the repo.
21
+ 4. Report once every part of the question is answered by verified claims.
22
+ 5. Interrupt for user input when:
23
+ - a new verification contradicts a verified claim: lay both out; resolving contradictions is their call, not yours;
24
+ - the next best claim is expensive to verify - deep digging, data crunching, a real bite of session context - and the user may know or point somewhere cheaper;
25
+ - the list is empty and the question is still open: ask what else to check.
26
+
27
+ Report rules, whether it lands in chat or a file:
28
+
29
+ - Lead with the answer, then the evidence. Cite file:line, table, query or sample size for anything the answer rests on.
30
+ - Only verified claims make the report; a disproved one enters as its verified opposite.
31
+ - No process narrative: what you found, not the order you found it in.