@goondocks/myco 1.0.8 → 1.0.9

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.
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Myco</title>
8
- <script type="module" crossorigin src="/assets/index-CaDU22cu.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-CxMqTZAR.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-BKQYN3jL.css">
10
10
  </head>
11
11
  <body>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goondocks/myco",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "Collective agent intelligence — Claude Code plugin",
5
5
  "type": "module",
6
6
  "bin": {
@@ -59,7 +59,7 @@
59
59
  "directory": "packages/myco"
60
60
  },
61
61
  "dependencies": {
62
- "@anthropic-ai/claude-agent-sdk": "^0.3.161",
62
+ "@anthropic-ai/claude-agent-sdk": "^0.3.162",
63
63
  "@anthropic-ai/sdk": "^0.100.1",
64
64
  "@inquirer/prompts": "^8.4.2",
65
65
  "@modelcontextprotocol/sdk": "^1.28.0",
@@ -73,11 +73,11 @@
73
73
  "zod": "^4.4.3"
74
74
  },
75
75
  "optionalDependencies": {
76
- "@goondocks/myco-darwin-arm64": "1.0.8",
77
- "@goondocks/myco-darwin-x64": "1.0.8",
78
- "@goondocks/myco-linux-arm64": "1.0.8",
79
- "@goondocks/myco-linux-x64": "1.0.8",
80
- "@goondocks/myco-windows-x64": "1.0.8"
76
+ "@goondocks/myco-darwin-arm64": "1.0.9",
77
+ "@goondocks/myco-darwin-x64": "1.0.9",
78
+ "@goondocks/myco-linux-arm64": "1.0.9",
79
+ "@goondocks/myco-linux-x64": "1.0.9",
80
+ "@goondocks/myco-windows-x64": "1.0.9"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@goondocks/myco-shared": "*",
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: myco-handoff
3
+ description: >-
4
+ Use when handing a coding session off to a new session or another symbiont —
5
+ "hand this off", "prepare a handoff", "continue this in a new session", "pick
6
+ up where I left off", "pass this to another agent", or when context is heavy /
7
+ running low and the work will continue elsewhere, or work has drifted out of
8
+ scope and should restart fresh. PREPARE compresses the current session's
9
+ intention (why we're here, what we're doing, gotchas, dead ends, decisions)
10
+ into a ≤1500-token digest saved on a Myco plan. RECEIVE takes a plan ID,
11
+ rehydrates the context, loads the suggested skills, marks the referenced plans
12
+ in progress, and resumes the work.
13
+ allowed-tools: Read, Bash, Grep, Glob
14
+ user-invocable: true
15
+ argument-hint: prepare [plan-id] | receive <plan-id>
16
+ ---
17
+
18
+ # Myco Handoff
19
+
20
+ Carry a session's working **intention** to another session cleanly. The
21
+ codebase shows *what* exists and the plan shows *what's next* — this skill
22
+ captures the *why* and *how we got here* that neither stores, compresses it to
23
+ ≤1500 tokens, and rides it on a Myco plan (the cross-symbiont shared vehicle).
24
+
25
+ One skill, two modes.
26
+
27
+ ## Routing
28
+
29
+ - `prepare [plan-id]` → build a handoff. The optional `plan-id` targets an
30
+ existing plan to attach the handoff to. → follow `references/preparing.md`.
31
+ - `receive <plan-id>` → consume a handoff. → follow `references/receiving.md`.
32
+ - **No argument** → infer from context: if you are mid-work with something to
33
+ hand off, PREPARE; if you were just given a plan ID to continue, RECEIVE.
34
+ - **Unsure** → ask the user. Do not guess.
35
+
36
+ ## The handoff block
37
+
38
+ The handoff is a single delimited block inside a plan's content, so RECEIVE can
39
+ locate it and PREPARE can replace it idempotently (re-preparing replaces the
40
+ block — a plan never accumulates stale handoffs):
41
+
42
+ ```markdown
43
+ <!-- myco-handoff:start -->
44
+ ## Handoff — <YYYY-MM-DD>
45
+ - **Source session:** <session-id>
46
+ - **Referenced plans:** <plan-id>, <plan-id>
47
+ - **Suggested skills:** myco, <skill>, <skill>
48
+
49
+ ### Digest
50
+ <≤1500-token intention-focused narrative>
51
+ <!-- myco-handoff:end -->
52
+ ```
53
+
54
+ ## Tooling
55
+
56
+ Drive Myco via the ambient MCP tools (`myco_plans`, `myco_sessions`,
57
+ `myco_cortex`, `myco_search`). On a host without MCP, fall back to
58
+ `myco tool call <tool> --json --input '{...}'` via Bash. Load suggested skills
59
+ with the `Skill` tool. Your current session ID is injected at session start
60
+ (look for the `Session::` line); if you cannot find it, ask the user.
@@ -0,0 +1,104 @@
1
+ # Preparing a Handoff
2
+
3
+ Goal: compress this session's intention into a ≤1500-token digest and persist it
4
+ on a Myco plan, with the source session ID, referenced plan IDs, and suggested
5
+ skills, then hand the user the exact line to resume in their next session.
6
+
7
+ ## 1. Resolve the target plan
8
+
9
+ In priority order:
10
+
11
+ 1. **Explicit `[plan-id]` argument** — use it as the target.
12
+ 2. **An existing plan tied to this session** — `myco_plans({"op":"list","session":"<session-id>"})`.
13
+ If exactly one relevant plan comes back, target it. If several, ask the user
14
+ which (or whether to create a new one).
15
+ 3. **Otherwise** — create a new dedicated handoff plan (Step 4b).
16
+
17
+ ## 2. Author the ≤1500-token digest
18
+
19
+ Self-compress your **live working context** — this is a manual compaction. Focus
20
+ on **intention**, the part Myco doesn't already store:
21
+
22
+ - **How we got here / what we're doing & why** — the goal and the path to it.
23
+ - **Gotchas hit** — surprises about how something actually behaves.
24
+ - **Dead ends** — approaches ruled out, and why.
25
+ - **Decisions + rationale** — choices made and the reasoning.
26
+
27
+ **Defer to the plan.** State, next-steps, and open-questions usually already live
28
+ in the plan — do not duplicate them in the digest. Carry them in the digest
29
+ **only** when you are creating a *new dedicated handoff plan* (there is no work
30
+ plan to hold them).
31
+
32
+ **Stay within ≤1500 tokens** (~1100 words). Prefer dense prose over exhaustive
33
+ detail; the receiver can pull more via `myco_search` / `myco_cortex`.
34
+
35
+ **Secret nudge:** don't inline secrets, keys, or PII — reference them by location
36
+ (e.g. "API key in `.myco/secrets.env`").
37
+
38
+ ## 3. Choose suggested skills
39
+
40
+ Decide which skills the receiver will need to resume well. Always include `myco`.
41
+ Add domain skills relevant to the work (e.g. a debugging or subsystem skill).
42
+ List them by name.
43
+
44
+ ## 4. Persist the handoff block
45
+
46
+ Assemble the block:
47
+
48
+ ```markdown
49
+ <!-- myco-handoff:start -->
50
+ ## Handoff — <today's date YYYY-MM-DD>
51
+ - **Source session:** <this session id>
52
+ - **Referenced plans:** <plan-id>, <plan-id>
53
+ - **Suggested skills:** myco, <skill>, <skill>
54
+
55
+ ### Digest
56
+ <the digest from step 2>
57
+ <!-- myco-handoff:end -->
58
+ ```
59
+
60
+ ### 4a. Append/replace onto an existing plan (idempotent)
61
+
62
+ 1. Read current content: `myco_plans({"op":"get","id":"<plan-id>"})`.
63
+ 2. If a `<!-- myco-handoff:start -->…<!-- myco-handoff:end -->` block already
64
+ exists, **replace** it with the new block. Otherwise append the new block to
65
+ the end. Leave all other plan content untouched.
66
+ 3. Save: `myco_plans({"op":"save","id":"<plan-id>","content":"<full updated content>"})`.
67
+ (Updating by `id` preserves the plan's existing status.)
68
+
69
+ ### 4b. Create a new dedicated handoff plan
70
+
71
+ A new, non-file-backed plan **requires `plan_key`** (its stable identity; pass
72
+ `plan_key` OR `source_path`, never both). Use a `plan_key` like
73
+ `handoff-<short-slug>` — re-running `prepare` with the same `session_id` +
74
+ `plan_key` then updates the same plan (idempotent) instead of creating a second.
75
+
76
+ ```json
77
+ myco_plans({
78
+ "op":"save",
79
+ "session_id":"<this session id>",
80
+ "plan_key":"handoff-<short-slug>",
81
+ "title":"Handoff: <short topic>",
82
+ "status":"active",
83
+ "tags":["handoff"],
84
+ "content":"<the handoff block>"
85
+ })
86
+ ```
87
+
88
+ The `save` response returns the new plan `id` — capture it for Step 5.
89
+
90
+ ## 5. Return the resume instruction to the user
91
+
92
+ Tell the user the plan ID and the **exact line** to run next session, plus a
93
+ one-line summary of what was captured. For example:
94
+
95
+ > Handoff saved to plan `<plan-id>`. In your next session, run:
96
+ > `/myco-handoff receive <plan-id>`
97
+ > It carries: <one-line summary of the digest + referenced plans + suggested skills>.
98
+
99
+ ## CLI fallback (no MCP)
100
+
101
+ ```bash
102
+ myco tool call myco_plans --json --input '{"op":"list","session":"<session-id>"}'
103
+ myco tool call myco_plans --json --input '{"op":"save","id":"<plan-id>","content":"..."}'
104
+ ```
@@ -0,0 +1,54 @@
1
+ # Receiving a Handoff
2
+
3
+ Goal: given a plan ID, rehydrate a fresh session from a prepared handoff and
4
+ resume the work.
5
+
6
+ ## 1. Read and parse the handoff
7
+
8
+ `myco_plans({"op":"get","id":"<plan-id>"})` → in the returned `content`, find the
9
+ block between `<!-- myco-handoff:start -->` and `<!-- myco-handoff:end -->`.
10
+ Parse out:
11
+
12
+ - **Source session** (id)
13
+ - **Referenced plans** (ids)
14
+ - **Suggested skills** (names)
15
+ - **Digest** (the narrative)
16
+
17
+ If no handoff block is present, tell the user the plan has no handoff and stop.
18
+
19
+ ## 2. Load the suggested skills
20
+
21
+ For each suggested skill, invoke it with the `Skill` tool. If a skill is not
22
+ available in this symbiont, note it and continue — do not fail the handoff over
23
+ a missing optional skill.
24
+
25
+ ## 3. Mark referenced plans in progress
26
+
27
+ For each referenced work plan:
28
+ `myco_plans({"op":"save","id":"<plan-id>","status":"in_progress"})`.
29
+
30
+ If this *is* a dedicated handoff plan (the plan you received is itself the work
31
+ plan, tagged `handoff`), mark **it** `in_progress`.
32
+
33
+ ## 4. Optional — pull broader context
34
+
35
+ Only when you need richer/broader context than the digest gives:
36
+
37
+ - `myco_cortex({"op":"digest","tier":5000})` — high-fidelity project memory.
38
+ - `myco_search({"query":"<topic from the digest>"})` — related spores/plans;
39
+ follow each result's `retrieve` hint to read the owning entity.
40
+
41
+ Skip this for a narrow, well-scoped resume.
42
+
43
+ ## 5. Summarize the landing and resume
44
+
45
+ Tell the user, in a few lines: where the prior session left off (from the
46
+ digest), which skills you loaded, which plan(s) you marked `in_progress`, and the
47
+ concrete next step you're about to take. Then continue the work.
48
+
49
+ ## CLI fallback (no MCP)
50
+
51
+ ```bash
52
+ myco tool call myco_plans --json --input '{"op":"get","id":"<plan-id>"}'
53
+ myco tool call myco_plans --json --input '{"op":"save","id":"<plan-id>","status":"in_progress"}'
54
+ ```