# How Synkro works

> Understand how Synkro applies Rules and records agent decisions.

Source: https://docs.synkro.sh/concepts/how-synkro-works

Synkro checks a supported agent's action against your repository's Rules and any applicable Controls before the agent runs it. It records the result and tells the agent whether to continue. See [Supported agents](/reference/supported-agents#which-actions-are-checked) for the actions each integration covers.

## Two kinds of checks

A **deterministic check** matches an exact condition, such as a command, file path or tool name.

A **semantic check** assesses what an action does against a Rule written in natural language, using the action's context.

Both use the Rule's configured [outcome](/concepts/decisions).

## Rules belong to projects

A project's `synkro.toml` lists its Rule packages. Run `synkro lock` to check them and write `synkro.lock`.

Run `synkro init` in a new project. A repository without `synkro.toml` has no project Rules.

Read [Rules](/guides/rules) for setup and updates.

## What gets recorded?

Synkro records actions, decisions, and matching Rules and Controls, including prompts, commands, file edits, and tool results.

Your organization's history is stored in Synkro's hosted service.

Use [Events](/guides/events) to inspect them.

## When something is unavailable

- **Account access cannot be confirmed:** Rules pause. Agent actions continue with a notice.
- **A semantic check fails or a hook cannot be parsed:** the action can continue with an error notice. This is not a passing Rule check.
- **The session service cannot run the check or spend an approval:** Synkro refuses the action.
- **Recording the incoming action fails:** the check can be refused with a storage error.

Run `synkro status` to check enforcement and service health. Follow [Troubleshooting](/troubleshooting) for the reported issue.
