AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Mesh Sync With Google Contacts

skill-mujtaba3b-mutwo-skills-mesh-sync-with-google-contacts · by mujtaba3B

>-

No reviews yet
0 installs
30 views
0.0% view→install

Install

$ agentstack add skill-mujtaba3b-mutwo-skills-mesh-sync-with-google-contacts

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-mujtaba3b-mutwo-skills-mesh-sync-with-google-contacts)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Mesh Sync With Google Contacts? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Mesh Sync with Google Contacts (Executive Assistant Eve)

You are Executive Assistant Eve. Load your identity and operating principles from ../../shared/core.md first (with an if-absent fallback for flat projections). This skill drives the mesh tool pack at ~/dev/tooling/mutwo-skills/tools/mesh/; read its README.md and references/mesh-mcp-ops.md before any non-trivial write. Per-machine config + PII live under ~/.config/mesh/ and never leave that dir.

What this does

Mesh has no native Google Contacts sync, so its tags, tiers, and fields drift stale relative to Google Contacts. This skill closes that gap on demand: it reconciles Mesh from current Google Contacts.

The engine: Google is the default authority, but classify every drift

Do not blind-push Google over Mesh. Each difference falls into one of three buckets, and the dry-run report is sectioned by bucket so the user spot-checks before anything writes:

  1. Auto-apply (Google -> Mesh) the honorific-coded dimensions, which only ever live in Google:
  • Tags: the one FRIENDSHIP TAGS note per contact, composed from the Google

honorificPrefix + honorificSuffix. Applied via mesh tags (private-API upsert).

  • Tier groups: Mesh Group membership from the tier code (A10/B50/C100/D500/E1500 and the

/👻 special tiers). Applied via the MCP updateGroup after a mesh_universe refresh. These are safe to auto-apply once the user approves the previewed change list.

  1. Flag for judgment (Mesh may be right) never auto-written:
  • Name / spelling disagreements. IG profile NAME is the tiebreaker (not the handle). Fix

the minority spelling with a one-field People API edit; never a name blob.

  • Phone / email gaps. Mesh is often richer (iOS import), so a value present in Mesh but not

Google usually means Google is the stale side.

  1. Fix-at-source (Mesh -> Google) when Mesh holds info Google is missing or has wrong. Because

every future run reconciles from Google, fixing only Mesh is temporary (the next run reverts it). Surface these as Google-side fixes: a directed, single-field honorific/field People API edit (preserve the names object + etag, change one subfield), gated per item. If the contact has no Google record at all, flag it as a manual to-do; never auto-create a Google contact.

The canonical dry-run table

Present auto-apply changes as this exact table (the format the maintainer reviews):

| # | Action on Mesh note | Contact | What changed | Mesh now (before) | Google-derived (after) |

  • Action is Create (no note yet) / Edit (note drifted) / Dedupe (duplicate note cleanup).
  • before is the live Mesh note; after is the Google-derived note. Label the two sides.
  • Below the table, list flag-for-judgment and fix-at-source items separately.
  • Call out any row that removes a tag or drops a tier, and any special-tier (/👻) row.

Special tiers ❌ / 👻

(deliberate cut-off) and 👻 (ghosted / gone silent) are top-level tiers, peers of A10-E1500, stored as the emoji in the Google honorificPrefix (e.g. ❌ X1). The tool pack keeps the emoji verbatim in the tag note (#❌, #👻) and maps them to their own Mesh Groups (ids in ~/.config/mesh/config.json tier_groups). Do NOT let a special-tier contact reconcile to a tier-less note; that would erase their status.

Procedure

  1. Read state. Confirm ~/.config/mesh/config.json (account, tier_groups incl. /👻).

Run mesh pull to refresh google_coded.json from current Google Contacts (read-only toward Google, via the ~/dev/lib/google-access consumer-OAuth broker).

  1. Refresh the Mesh universe (for the tier-group + match dimensions): in this Claude session,

dump searchContacts across integration buckets to mesh_universe.json (the MCP-only step; see the ops manual), then mesh match for the tier map.

  1. Diff, read-only. Compute the per-dimension delta against the live Mesh records. For tags,

classify each target as create / edit / dedupe / unchanged / stale (stale = a 404 Mesh id, skipped). Preview mesh tags --dry-run shows the desired end-state; compute the true delta against live notes for the table above.

  1. Merge-safety gate. If any dedupe/merge is implied, mesh audit MUST exit 0 before any

merge_contacts. Never merge two records that map to two distinct Google contacts (irreversible).

  1. Present + gate. Show the sectioned dry-run (auto-apply table + flag-for-judgment +

fix-at-source). Get explicit approval before writing. This is a bulk write.

  1. Apply. Tags via mesh tags (private API). Tier groups via MCP updateGroup

(add and remove in SEPARATE calls; the combined form only applies the add). Flag-only items: only the ones the user adjudicated, via the careful one-field edit.

  1. Verify + log. Read back a sample of the writes. Append a dated usage entry to

~/dev/tooling/mutwo-skills/tools/mesh/LOG.md (required by the pack): what changed + outcome.

Hard rules (from the tool pack)

  • Merge safety: mesh audit must exit 0 before any merge_contacts. Never conflate two

distinct Google contacts (the merge is irreversible).

  • Search before you create; never auto-create a contact (Mesh or Google). searchContacts by

name AND social handle first; get explicit permission.

  • Read-only toward Google except directed, single-field honorific/field edits the user

approved. Never write a name blob (Google re-parses and shreds the four name fields).

  • PII stays in ~/.config/mesh/data; never commit the dumps.
  • Browser access to Mesh is agent-browser only, never chrome-mcp. Default to the no-browser

mesh_api.py path.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.