# ATM Expert Agent Plan

## Goal

Replace `.opencode/agent/computercraft.md` with `atm10-expert`.

The agent targets ATM10 / All The Mods 10, Minecraft `1.21.1`, NeoForge, pack version `7.0` (`0.7.0` accepted as user alias).

## Known Facts

CurseForge project id: `925200`.

ATM10 `7.0` file id: `8091114`.

Server pack file id: `8094893`.

NeoForge version: `21.1.228`.

GitHub source: <https://github.com/AllTheMods/ATM-10>

## Files To Create

Create `.opencode/agent/atm10-expert.md`.

Create `.opencode/agent-context/atm10-expert/INDEX.md`.

Create `.opencode/agent-context/atm10-expert/glossaries/`.

Create `.opencode/agent-context/atm10-expert/scripts/`.

Create `.opencode/agent-context/atm10-expert/modpacks/atm10-7.0.md`.

## Files To Move

Move in-game glossaries only:

`docs/cc_glossary.md` to agent context.

`docs/create_cc_tweaked_glossary.md` to agent context.

`docs/advanced_peripherals_glossary.md` to agent context.

Keep `docs/craftos_pc_glossary.md` in `docs/`.

Update `docs/README.md` links.

## Agent Behavior

Delete old `computercraft` agent.

New agent answers players concisely for in-game terminals.

Use local glossaries first, then websearch/webfetch.

Default to non-technical answers.

Adapt language to the user, usually French.

If a new useful mod documentation source is found, update or create a glossary and update `INDEX.md`.

Keep replies short unless the user asks for detail.

Use MCP bridge carefully: probe first, execute only bounded/read-only Lua unless explicitly asked.

## Permissions

Allow local read/search and web lookup.

Keep MCP bridge `probe-computers` and `exec-lua`.

Make edit/bash approval-gated or tightly limited, because this agent is player-facing.

Allow `just check` for markdown validation.

## ATM10 Mod List Script

Add `.opencode/agent-context/atm10-expert/scripts/fetch-atm10-7.0-mods.sh`.

Script should download CurseForge file `8091114`.

Extract `manifest.json`.

Write raw project/file ids and best available names to `modpacks/atm10-7.0.md`.

If `CURSEFORGE_API_KEY` exists, resolve project names through the CurseForge API.

Without API key, preserve ids and URLs for later glossary enrichment.

## TrapOS AI Context

Update `programs/ai.lua` / `apis/libai.lua` so each prompt includes hidden caller context:

computer id.

computer label, if any.

This helps `atm10-expert` know which in-game computer is calling.

Add tests in `tests/ai.lua`.

Bump `packages/trapos-ai/ccpm.json` and `packages/index.json`.

## Verification

Run `just check`.

Fix Lua lint and markdown link issues.

Restart opencode after agent/config changes.
