nanobot: 2026-09-09 14:57:29
This commit is contained in:
48
AGENTS.md
48
AGENTS.md
@@ -16,59 +16,27 @@ For commit-message timestamps run `bash scripts/timestamp.sh` — do NOT call `d
|
||||
|
||||
## Heartbeat Tasks
|
||||
|
||||
`HEARTBEAT.md` is checked on the configured heartbeat interval. Use file tools to manage periodic tasks:
|
||||
|
||||
- **Add**: `edit_file` to append new tasks
|
||||
- **Remove**: `edit_file` to delete completed tasks
|
||||
- **Rewrite**: `write_file` to replace all tasks
|
||||
|
||||
When the user asks for a recurring/periodic task, update `HEARTBEAT.md` instead of creating a one-time cron reminder.
|
||||
`HEARTBEAT.md` is checked on the configured heartbeat interval. Manage periodic tasks there with file tools (`edit_file` / `write_file`), not via one-time cron reminders.
|
||||
|
||||
## Databases (SQLite)
|
||||
|
||||
Always store SQLite databases under `db/*.sqlite` (relative to the workspace root).
|
||||
Never use `/tmp/`, hardcoded absolute paths, or in-memory databases for persistent data.
|
||||
|
||||
## How you were extended & tuned
|
||||
## Workspace stores
|
||||
|
||||
`develop/` records how this instance was extended and tuned — skills, config, service work — with verified facts and a change log you can learn from (not the upstream code). See `develop/README.md`; read on demand.
|
||||
|
||||
## Explicit user details
|
||||
|
||||
Explicit user facts are stored in `keep.md`. Read at every turn.
|
||||
|
||||
## Projects (deep details)
|
||||
|
||||
More details about the user, projects, hardware etc. live in `projects/<name>/` (memory.md, state.md) — search those too.
|
||||
|
||||
## Knowledge base
|
||||
|
||||
`knowledge/` holds verified facts and measured values you can draw on when answering (e.g. notes on the models available to you). See `knowledge/README.md` for what's there; read on demand.
|
||||
- `develop/` — how this instance was extended and tuned (see `develop/README.md`); read on demand
|
||||
- `keep.md` — explicit user facts; read at every turn
|
||||
- `projects/<name>/` — deep details about the user, projects, hardware; search those too
|
||||
- `knowledge/` — verified facts and measured values (see `knowledge/README.md`); read on demand
|
||||
|
||||
## exec Tool
|
||||
|
||||
The exec safety guard blocks commands without an explicit workspace path (e.g. `lua -e '...'`, `which`). Write scripts to files inside the workspace (e.g. `tmp/script.lua`) and run them with `working_dir` set to the workspace root.
|
||||
|
||||
On the first safety-guard block: diagnose the cause before retrying — check a missing `working_dir` first, never re-send the same blocked form, and change one variable per test until the cause is identified.
|
||||
|
||||
## python — use uv
|
||||
|
||||
For all Python code (scripts, snippets, one-liners, tools) use `uv`,
|
||||
not `python` / `python3` / `pip` directly.
|
||||
|
||||
- Run a script: `uv run script.py` (not `python script.py`)
|
||||
- One-liner / snippet: `uv run --with <pkg> python -c '...'`
|
||||
- Script with declared dependencies: `uv run --script script.py`
|
||||
(PEP 723 header inside the file)
|
||||
- Add a project dependency: `uv add <pkg>` (not `pip install`)
|
||||
- Remove: `uv remove <pkg>`
|
||||
- Sync environment: `uv sync`
|
||||
- Run a tool: `uv run pytest`, `uv run ruff`, `uv run mypy`, …
|
||||
- REPL: `uv run python`
|
||||
|
||||
Do not use `pip`, `pip-tools`, `poetry`, `conda`, or the system `python`.
|
||||
Reason: isolated, reproducible environments with no system-level side
|
||||
effects, faster resolves, no "works on my machine" surprises.
|
||||
For all Python code use `uv`, never `python` / `python3` / `pip` / `poetry` / `conda` directly. Details in `skills/python/SKILL.md`.
|
||||
|
||||
## File / Code Conventions
|
||||
|
||||
@@ -90,8 +58,6 @@ In addition to Python and Bash, the agent can also write and run:
|
||||
- **Rust** — via `rustc` / `cargo` (compile and run inside workspace)
|
||||
- **TypeScript** — always via `bun`
|
||||
|
||||
Use these when the user explicitly asks for them or when they are the right tool for the job. Default remains Python for non-trivial scripts and Bash for very short shell snippets.
|
||||
|
||||
### Git clones
|
||||
- Always clone repos into `workspace/src/<repo-name>`, not directly into workspace root.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user