# Daily Workflow

> Recall-first sessions, Project Memory and the digest, ACSS-aware styling, agent skills, and working across targets.

# Daily Workflow

## Start every session the same way

A session that starts with recall inherits everything previous sessions learned:

```text
etch_recall_project_memory     → digest + record brief first, always
etch_get_status                → availability, unsaved changes
etch_get_document_tree         → current document
```

If recall reports the digest stale (records advanced 10+ revisions or the digest is older than 7 days), refresh it near the end of the session with `etch_write_project_digest`.

## Project Memory

Project Memory is a bounded, machine-local store keyed by one normalized site URL. Staging and production URLs are separate keys with separate records; moving between them is an explicit rebind, never an automatic merge.

| Tool | Use |
| --- | --- |
| `etch_recall_project_memory` | Read the digest and brief. Always first. |
| `etch_remember_project_memory` | Store a confirmed Decision, Observation, or Reference the user stated. |
| `etch_inspect_project_memory` | Audit exactly what is stored, per project. |
| `etch_correct_project_memory` | Fix a stored record's payload under an expected revision. |
| `etch_forget_project_memory` | Delete one record or a confirmed aggregate. |
| `etch_write_project_digest` | Write/refresh the narrative digest (purpose, conventions, recent work, open threads). |
| `etch_recover_project_memory` | Explicitly rebind after a URL change, or quarantine a corrupt store. |

What it stores: bounded, allowlisted facts - decisions, observations, references, a digest, and an activity log (the last 50 successful non-read operations per project). What it never stores: credentials, raw page payloads, or your user skill files. Successful non-read calls are appended to the activity log automatically, so a returning session can see what was recently done.

Two habits keep it healthy:

- Confirm before remembering. The tool stores user-confirmed statements, not agent guesses.
- If a staging site becomes production (or a domain changes), the agent runs a recover preview first and applies the rebind only after confirming the target is empty and both URLs are the same project.

## ACSS-aware styling

On sites running [Automatic.css](https://automaticcss.com/), the agent should work in tokens, not invented values:

```text
etch_detect_acss    → detected, version, stylesheet URLs, sample palette/scale variables
```

When detection reports ACSS, the bundled `acss` core skill takes over styling: variables first (`var(--token)`), the t-shirt spacing scale, the 7-step shade system, contextual backgrounds with automatic text color, the `.scheme--dark` + `light-dark()` dark-mode flow, and `b:/s:/m:/l:/xl:/xxl:` breakpoint prefixes.

Detection needs the builder tab to allow page probing. If AI tooling is connected in safe mode, `etch_detect_acss` reports that the sandbox withheld page access - switch the tooling to unsafe mode to enable detection, or confirm ACSS manually and let the agent read the bundled skill anyway. See [Troubleshooting](./troubleshooting.mdx#acss-detection-returns-a-safe-mode-error).

For global CSS - `@keyframes`, `@property`, `@font-face`, utility classes, root variables - the stylesheet tools persist immediately, so prefer them for site-wide CSS and buffered styles for document-specific rules.

## Agent skills

The server ships skills that teach agents the correct Etch workflow, and your agent should read the core skill before its first edit on a site:

| Skill | Contents |
| --- | --- |
| `etchapi` | The 13 block variants, safe block shapes, read-then-write flow, stylesheets, loops, components, CSS authoring rules. |
| `acss` | The ACSS token-first workflow and the full variable catalogue. |

Your own conventions go into user skills - markdown files under `mcp/skills/user/<slug>/SKILL.md`, manageable through the tools (`etch_create_local_skill`, `etch_update_local_skill`, `etch_validate_local_skills`) or by hand. User skills are local to the machine and never leave it. `etch_list_skills` shows everything available.

## Working across targets and documents

- **Multiple tabs.** Every builder tab with AI Connector clicked appears in `etch_list_targets`; the agent selects the working target explicitly. Different agents may work different targets simultaneously.
- **Navigation.** `etch_go_to` moves the builder between areas (builder, templates, style manager, content hub, loop manager, asset manager); `etch_open_post` / `etch_open_template` switch documents - refused while buffered changes are unsaved.
- **History.** `etch_undo` / `etch_redo` walk the document; undo is the always-available recovery from a bad apply, repeatable step by step.
- **Color scheme.** `etch_get_color_scheme` / `etch_set_color_scheme` keep generated style values matching your builder theme.

## End-of-session routine

Before wrapping up a substantive session:

1. Save (or explicitly discard) any buffered document changes.
2. Store the session's durable facts with `etch_remember_project_memory` - confirmed decisions, observations, references.
3. Refresh the digest with `etch_write_project_digest` if recall flagged it stale or the session changed direction.

The next session on that site starts where this one ended.
