# Update content with AI

> For Jenks — change site content through the admin console, CLI, REST API or admin MCP, with validation, multi-file commits and dev previews.

## Four ways in, one set of rules

All admin edits go through the same admin API, guarded by your personal token
(`agent-env:JENKSGUO_ADMIN_TOKEN` in the Keychain). Pick whichever fits the moment:

| Interface | Best for |
| --- | --- |
| Console at `https://jenksguo.xyz/admin` | Browsing and editing by hand with a live preview |
| CLI `jenks admin …` | Quick edits from a terminal or a script |
| Admin MCP (`/mcp/admin` or `jenks mcp --admin`) | Letting an AI agent such as Claude Code do the work |
| REST `/api/admin/*` | Your own automations |

Every write is validated against the content schema and committed to git. CI then re-translates
changed entries into all languages, rebuilds and deploys.

## Load the token

```bash
export JENKSGUO_ADMIN_TOKEN="$(security find-generic-password -s agent-env:JENKSGUO_ADMIN_TOKEN -w)"
jenks admin whoami
```

## Read before you write

```bash
jenks admin schema                         # fields, tags, lenses, writable paths
jenks admin ls content/corpus/experiences  # files and their sha
jenks admin get linktree-partner-solutions-lead
```

## Validate, then write

Edit the file locally, validate it, then commit it:

```bash
jenks admin get linktree-partner-solutions-lead > linktree.md
# …edit linktree.md…
jenks admin validate content/corpus/experiences/linktree-partner-solutions-lead.md linktree.md
jenks admin put content/corpus/experiences/linktree-partner-solutions-lead.md linktree.md \
  -m "Linktree: add developer portal launch detail" --branch dev
```

A write that fails validation is refused, so a bad edit can never break the build.

## Let the AI draft it

```bash
jenks admin ai-edit tooronga-toastmasters "correct the period to 2019 — 2021" --branch dev
jenks admin ai-edit tooronga-toastmasters "correct the period to 2019 — 2021" --branch dev --apply
```

The first call returns the proposal, a diff and any validation problems. The second commits it.

## Change several files in one commit

Use `admin_commit_changes` (MCP) or `jenks admin commit` with a JSON file:

```json
{
  "changes": [
    { "path": "content/corpus/community/murrumbeena-school-council.md", "content": "---\n…" },
    { "path": "content/corpus/capabilities.md", "content": "…" }
  ]
}
```

```bash
jenks admin commit changes.json -m "School council: confirm dates" --branch dev
```

To remove a file, use `{ "path": "…", "delete": true }`.

## Asking an agent to do it

With the admin MCP server connected, instruct the agent plainly, for example:

> Read the schema. Update the Virginia Park Childcare entry so the period reads 2019 — 2024. Validate
> it, commit to dev with a clear message, then show me the deploy status.

A well-behaved agent will call `admin_schema`, `admin_read_file`, `admin_validate`,
`admin_write_file` and `admin_deploy_status`, in that order.

## Rules worth keeping

- **Use `dev` for anything non-trivial**, check `https://dev.jenksguo.xyz`, then promote. See
  [Preview and promote](/agents/docs/how-to/preview-and-promote).
- **Facts only.** Content feeds the Ask Jenks assistant, which treats it as true. Do not let an AI add
  numbers, titles or claims you cannot back up.
- **Never put secrets in content** — no tokens, phone numbers, home addresses or referee details.
  Everything under `content/` is public.
- **Write in English.** Translations into the six other languages are generated by CI; the glossary
  in `content/corpus/i18n/glossary.json` fixes headings and lens names.
- **Undo is a commit away.** Git history keeps every version.
