5.7 KiB
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.shis 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-requestrewired 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.shreturned 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 theComputerHid(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 fromPARKED_alert-lifecycle-and-telemetry-cadence.md, restructured as the backlog (gururmm commits9ea20c6Feature 3,da49f1fbacklog header).~/.claude/skills/— 19 skills deployed (global, machine-local).
Credentials & Secrets
- Syncro API (mike): key baked in
/syncrocommand + vaultmsp-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/skills0 -> 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.shJSON-escaping bug (em-dash/$ -> 400).- RMM Thoughts: 3 thoughts at Status: Raw/Discussed awaiting decision to spec.
- Jupiter VM
ACG-DWP-X-BBno-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<ComputerHid>%7D?sidepanel=backup&tab=backup-plans.