# Syncro billing (Wolkin #32369) + skills global-deploy fix + RMM Thoughts backlog ## User - **User:** Mike Swanson (mike) - **Machine:** GURU-5070 - **Role:** admin ## Session Summary Continuation after the Wolkin Law printer fix (logged separately in `clients/wolkin/session-logs/2026-06-07-mike-wolkin-clientfiles-printshare.md`). Three threads: billed the Wolkin ticket, fixed a fleet-wide skills-deployment gap, and stood up an "RMM Thoughts" idea backlog with a rewired feature-request flow. **Billed Syncro #32369 (Wolkin, Robert).** Non-prepaid customer. Posted a hidden internal resolution note, a public success note (client emailed), a 3.5h Emergency Remote labor line (product 26184 @ $225/hr remote-emergency override of the $262.50 onsite default), and created invoice 1650601747 ($787.50, verified). Then a second hidden note for Winter to add 2 ZeroTier Monthly Subscriptions @ $2/mo to recurring billing, surfaced to #bot-alerts. Discovered the `/syncro` command (a slash command, not a skills/ dir) is the authoritative Syncro flow and uses `add_line_item` directly (NOT timer_entry — the command overrides the older time-entry-protocol standard). **Fixed a skills-deployment gap.** The global `~/.claude/skills/` was EMPTY on GURU-5070 (likely wiped during a Mac sync) — that is where Claude Code loads invocable skills (syncro, agy, grok, coord, etc.); the repo `.claude/skills/` was intact but never deployed to global. `sync.sh` deploys commands to global (Phase 5b) but not skills. Added Phase 5c to `sync.sh` mirroring `.claude/skills/` -> `~/.claude/skills/` (idempotent, soft-fail), so a wipe self-heals on the next sync fleet-wide. Manually deployed the 19 skills now; coord-broadcast + todo so other machines re-pull. **Stood up "RMM Thoughts".** Mike wants one shared GuruRMM idea backlog (Mike + Howard) with a pipeline: Thought (Raw) -> Discuss -> Spec (/shape-spec) -> Roadmap -> Build. Renamed the parked-notes doc to `projects/msp-tools/guru-rmm/docs/RMM_THOUGHTS.md`, added the backlog header + how-to-add + status legend (3 existing thoughts: alert- lifecycle redesign, tiered telemetry cadence, MSP360 deep-link button). Earlier parked the MSP360 console deep-link idea (Feature 3) after verifying the URL pattern. Saved a feedback memory so all sessions route ideas there. Rewired `/feature-request`: it now captures a request into RMM Thoughts at Status: Raw + notifies Mike, instead of auto- generating a full SPEC + roadmap entry (that heavy work is now `/shape-spec`, decision-gated). ## Key Decisions - Syncro emergency billing: 26184 at qty=actual hours, price_retail overridden to $225 for remote (vs onsite $262.50 default), per the /syncro skill non-prepaid rule. - `sync.sh` is the right home for skills deployment (mirrors the commands deploy), so the fix is durable + automatic for every machine, not a one-off manual copy. - `/feature-request` rewired to feed RMM Thoughts (Raw), not auto-spec — aligns with the new pipeline where spec/roadmap are decision-gated downstream stages. ## Problems Encountered - `post-bot-alert.sh` returned 400 (invalid JSON) on a message containing an em-dash / `$` — the helper does not escape those into its JSON. Sanitized ASCII message worked. Minor helper bug to fix later. - Laptop-side `Add-Printer` (Wolkin, prior thread) failed with SMB error 67 / RPC 1702; Mike completed it manually. (Captured in the printshare log.) - MSP360 deep-link: we store `provider_specific_id` = MSP360 PlanId, but the console URL needs the `ComputerHid` (different GUID) — capture gap recorded in RMM_THOUGHTS Feature 3. ## Configuration Changes - `.claude/scripts/sync.sh` — added Phase 5c (skills -> global deploy). - `.claude/commands/feature-request.md` — rewired to RMM Thoughts capture flow. - `.claude/memory/feedback_rmm_thoughts_backlog.md` (new) + MEMORY.md pointer. - `projects/msp-tools/guru-rmm/docs/RMM_THOUGHTS.md` — renamed from `PARKED_alert-lifecycle-and-telemetry-cadence.md`, restructured as the backlog (gururmm commits `9ea20c6` Feature 3, `da49f1f` backlog header). - `~/.claude/skills/` — 19 skills deployed (global, machine-local). ## Credentials & Secrets - Syncro API (mike): key baked in `/syncro` command + vault `msp-tools/syncro.sops.yaml` (`credentials.credential`). No new secrets. ## Infrastructure & Servers - Syncro: computergurusyncromsp.com; ticket #32369 id 112000321, customer 796910 (Wolkin, Robert); invoice 1650601747; product 26184 (Emergency, $262.50 onsite default). - Coord API 172.16.3.30:8001; GuruRMM 172.16.3.30:3001. ## Commands & Outputs - Invoice verify: 26184, qty 3.5, $225 -> total $787.50. - Skills: `ls ~/.claude/skills` 0 -> 19 dirs. sync.sh Phase 5c "Global skills already current". - Coord: broadcast 8a6b03fb (ALL_SESSIONS), todos 59b5d542 (skills), 4a089618 (msp360 deep-link). - gururmm commits: 9ea20c6, 6bdd8fc (rename), da49f1f (RMM_THOUGHTS header). ## Pending / Incomplete Tasks - Syncro #32369 status still "New" — Mike to decide if it moves to Invoiced. - Wolkin: confirm Julie prints a real test page; disable Bidirectional Support if driver UI balks; consolidate the 3 Wolkin client slugs (wolkin / wolkin-law / rswolkin). - `post-bot-alert.sh` JSON-escaping bug (em-dash/$ -> 400). - RMM Thoughts: 3 thoughts at Status: Raw/Discussed awaiting decision to spec. - Jupiter VM `ACG-DWP-X-BB` no-DHCP (paused, DHCP-vs-static decision). ## Reference Information - RMM Thoughts backlog: `projects/msp-tools/guru-rmm/docs/RMM_THOUGHTS.md`. - Memory: `.claude/memory/feedback_rmm_thoughts_backlog.md`, `.claude/memory/feedback_stream_of_thought_design.md`. - MSP360 console deep-link template: `https://mspbackups.com/AP/Computers/%7B%7D?sidepanel=backup&tab=backup-plans`.