youmd 0.8.16 → 0.8.18

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.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: remote-machine
3
+ version: 1.0.0
4
+ scope: shared
5
+ identity_fields: [profile.about, preferences.agent]
6
+ description: Check a synced machine's agent/work status and, if needed, trigger it to commit and push — so the user can resume on another computer.
7
+ ---
8
+
9
+ # remote-machine
10
+
11
+ Use this skill when the user asks about work happening on **another one of their
12
+ machines** and wants to check on it or hand it off — e.g.:
13
+
14
+ - "Is the work on my Mac mini done? Is it committed and pushed?"
15
+ - "What was the last update on my office machine?"
16
+ - "Have my Mac mini commit and push the youmd work so I can pull it down here."
17
+ - "Check <machine> and if it's not pushed, push it."
18
+
19
+ This runs entirely through the you.md synced connection (the agent bus relayed via
20
+ Convex). The user's machines are not directly reachable; commands and results flow
21
+ machine → Convex → machine. **Zero user steps beyond the sentence** — never ask the
22
+ user to run anything by hand.
23
+
24
+ ## Identity Context
25
+
26
+ - **About:** {{profile.about}}
27
+ - **Agent preferences:** {{preferences.agent}}
28
+
29
+ ## Workflow
30
+
31
+ 1. **Identify the target machine.** If the user names it ("Mac mini", "office"),
32
+ match it against their machines. If unsure, call `remote_machine_status` with no
33
+ machine to list them, or `you remote list`, and pick/confirm the obvious one.
34
+
35
+ 2. **Check status (read-only first).** Call the MCP tool `remote_machine_status`
36
+ (or `you remote status <machine>`). Report concisely:
37
+ - last readiness proof (ready / warn / failed) + when
38
+ - git state if available: branch, dirty?, ahead/behind, last commit
39
+ - last agent-bus activity (what the remote agent was doing)
40
+
41
+ 3. **Decide if action is needed.** If the work is **clean and pushed** (not dirty,
42
+ ahead = 0), tell the user it's already safe to pull — done. If it's **dirty or
43
+ ahead of upstream** (uncommitted or unpushed commits), proceed to step 4.
44
+
45
+ 4. **Trigger commit + push (only if needed).** Call `remote_machine_run` with
46
+ `action: "git.commit_push"` and `args: { project: "<name>", message: "<short wip msg>" }`
47
+ (or `you remote run <machine> git.commit_push --project <name> --message "..."`).
48
+ This requires the opt-in `remote:command` scope on the key. The remote daemon
49
+ executes a **whitelisted** git action only (never arbitrary commands).
50
+
51
+ 5. **Confirm + report.** Read the returned result (`ok`, `gitState`, `output`).
52
+ Tell the user exactly what happened and that they can now `git pull` here to
53
+ resume. If it failed (e.g. auth, conflicts), report the redacted error and the
54
+ safe next step — do not retry destructively.
55
+
56
+ ## Allowed remote actions (the security boundary)
57
+
58
+ Only these may ever be triggered remotely: `git.status`, `git.last_activity`,
59
+ `git.commit_push`, `git.pull`, `agent.status`. Everything else is rejected by the
60
+ daemon. There is **no** arbitrary shell, force-push, reset, or file write. If the
61
+ user wants something outside this list, explain it's not a permitted remote action
62
+ and offer the closest safe option.
63
+
64
+ ## Notes
65
+
66
+ - Prefer the read-only status call before any mutating one.
67
+ - All dispatches + results are audited (brain activity) and owner-scoped — a
68
+ command can only target the user's own machines.
69
+ - See `project-context/CROSS-MACHINE-AGENTS.md` for the full architecture.