75 lines
3.1 KiB
Markdown
75 lines
3.1 KiB
Markdown
# AGENTS.md
|
|
|
|
## Authority
|
|
|
|
- `PRODUCT.md` is the durable product orientation and product boundary for `mim`.
|
|
- `REQUIREMENTS.md` is the checkable requirement authority. Cite rows as `req: component/id` in future code, tests, and design notes when a change implements or protects that requirement.
|
|
- User instructions for the current task override these files when they conflict.
|
|
|
|
## Product constraints
|
|
|
|
`mim` is a protocol-first, mobile-first terminal code editor for iPhone SSH sessions. Preserve these constraints unless the user explicitly changes direction:
|
|
|
|
- Server-side editor binary; no native iOS client by default.
|
|
- Terminal UI is the first thin client over the local session socket. See req: session/002 and req: session/003.
|
|
- No runtime config files, plugin system, package manager, hidden tool installers, or public feature-flag matrix. See req: governance/001, req: governance/002, and req: governance/004.
|
|
- Optimize for narrow viewports, QWERTZ/thumb input, and source patching.
|
|
- Treat keyboard layouts as explicit source-patched data backed by terminal traces, not ad-hoc conditionals. See req: input/004 and req: input/005.
|
|
- Common actions must avoid required Esc/Ctrl/Alt/function-key chords. See req: input/001.
|
|
|
|
## Verification
|
|
|
|
Before handing off requirement-affecting work, run the cheapest relevant checks:
|
|
|
|
```sh
|
|
redgate list
|
|
redgate lint
|
|
redgate health
|
|
```
|
|
|
|
Every implementation slice needs carry-their-weight tests: regular tests that prove the intended payoff works, plus adversarial tests for realistic failure, boundary, or regression cases. Prefer protocol/headless/replay/fixture tests over brittle UI snapshots unless rendering behavior is the claim. See req: testing/001 through req: testing/004.
|
|
|
|
Canonical implementation checks:
|
|
|
|
```sh
|
|
zig build
|
|
zig build test
|
|
zig build v1-smoke
|
|
zig build run -- --help
|
|
```
|
|
|
|
Canonical terminal/browser E2E check for terminal rendering, raw input, panels,
|
|
KEYMAP workflows, LSP/tool workflow reachability, viewport/chrome/color behavior,
|
|
or NS10 work:
|
|
|
|
```sh
|
|
zig build terminal-e2e
|
|
```
|
|
|
|
Run `terminal-e2e` after the regular build/test checks for behavior slices that
|
|
touch terminal UI, input, panel focus, workflow routing, or screenshot-visible
|
|
rendering. It writes ignored artifacts under `.zig-cache/terminal-e2e/`; a clean
|
|
source tree must remain clean after the command.
|
|
|
|
Canonical server install verification for a selected profile:
|
|
|
|
```sh
|
|
zig build --prefix /tmp/mim-install verify-install-code
|
|
```
|
|
|
|
Canonical v1 dogfood receipt:
|
|
|
|
- Use `DOGFOOD.md` for the real iPhone SSH session checklist and #41 receipt template.
|
|
- Do not close #41 from fixture/headless evidence alone; it requires a real iPhone SSH edit receipt unless the tracker acceptance is explicitly changed.
|
|
|
|
|
|
## Work tracking
|
|
|
|
Work is tracked in Gitea Issues at `git.tmk241.com/tmk241/mim`.
|
|
|
|
- Parent outcome issues are labeled `northstar`.
|
|
- Executable child issues are labeled `slice` and link to their parent in the issue body.
|
|
- `ready-for-agent` means a child issue has enough scope, acceptance, and verification to start.
|
|
- Do not mirror issues into local files.
|
|
- Do not mutate tracker items unless the user or active goal grants exact issue/parent authority.
|