Push
Push sends your committed captures to the remote. It is one direction across the agreement boundary — it never integrates others' work in.
Push is not access sharing. Requests to share with a person or team, inspect recipients, or change public/private visibility belong to is-share.
Rule
- Uncommitted captures? They won't be pushed. Capture/commit first, or ask whether to leave them local.
- Behind the remote? Push refuses — run
is_pullfirst, then push. You can't push over remote work. - Missing auth? Use
is_authonly when push reports credentials are needed.
How
- Inspect state with
is_status. - If staged captures are still uncommitted, commit them first (or leave them local).
- Preview when useful:
is_push({ dry_run: true }). - If behind, pull first with
is_pull, then push. - If the plan is safe, run
is_push. - Report what pushed, or why nothing changed.
If the user invokes /is-push, treat that as the human-facing confirmation path and do not duplicate prompts.
Watch for
- No upstream/remote: suggest
/is-publishif the user wants to host this space remotely. - Auth failure: offer
is_auth action="login", then retry push.
After push
If push followed a meaningful capture, consider is-reflect: does Now, Purpose, or the local agreement still match reality?