# strata19.sync_publish
URL: /documentation/reference/tools/sync_publish



{/* GENERATED FILE — do not edit. Sources: src/mcp/facade/tool-projection-registry.ts (availability) + describe() in src/mcp/facade/facade-tools.ts (prose). Regenerate: pnpm exec tsx scripts/docs/site/generate-tool-reference.ts */}

## What it does [#what-it-does]

The ONLY path across the local→hosted boundary, and it is always explicit. `status` reports whether publishing is currently permitted; `authority` answers "does this leave my machine, and which way?" for any object type (pure lookup, no I/O). `preview` builds the sync envelopes for an explicit file selection and reports exactly what would be sent, sending nothing. `publish` attempts the real upward publish of `raw_repository_graph` (premium-gated; fails closed with a named reason). `promote_work_item` promotes one local work item. Nothing here is ever triggered automatically — no watcher, no timer, no save hook.

## When to use it [#when-to-use-it]

**Use when:** "push this file's graph to the backend" · "promote this work item" · "does my source code get uploaded?" · "why won't it sync?"

**Also use when:** after strata19.local\_project\_manage (action: build\_graph), when deciding what to share with a team

## When not to use it [#when-not-to-use-it]

you want to READ hosted state (this direction is upward only — nothing flows down into the local graph); or you want a bulk mirror of the whole repo graph (deliberately not offered)

## Availability [#availability]

|           |                                   |
| --------- | --------------------------------- |
| Tier      | Expert                            |
| Lifecycle | Live                              |
| Taught by | `strata19-resolve-sync-conflicts` |
