Published empty on purpose: identity is the expensive part to change later, the feature is the cheap part to add. One route, two placeholder panels, no tables and no sidecar.
41 lines
1.6 KiB
Markdown
41 lines
1.6 KiB
Markdown
# AGENTS.md
|
|
|
|
Guidance for a coding agent working on **this plugin's own repository**. `CLAUDE.md` beside it only
|
|
points here — the two harnesses discover different filenames and one set of instructions has to reach
|
|
both.
|
|
|
|
**This is not what the plugin is.** `README.md` answers that. This file answers "I have to change
|
|
something in here — what will I break?"
|
|
|
|
## Where you are
|
|
|
|
A plugin repository, cloned into `~/officer-dev/plugins/finances`, its own git remote. It is **not** part
|
|
of the platform's repository, and `platform/plugins/finances` is a different thing — that is where this
|
|
plugin gets INSTALLED, by the installer cloning it from gitea. Never edit there; the next install
|
|
overwrites it.
|
|
|
|
## What must not change without knowing why
|
|
|
|
- **Permission key `finances`** — stored as the subject of every grant. Renaming it is a data change.
|
|
- **Panel keys** (`finances-overview`, `finances-detail`) — a user's stored layout names them.
|
|
- **`appName`** — the directory name IS the id: route segment, table prefix, sidecar suffix, install key.
|
|
|
|
## Adding tables
|
|
|
|
There are none yet. When there are, `db/schema.ts`, every table name prefixed `finances_`, and
|
|
`bun db:push` from the platform repo. Uninstall never drops a table; deleting this directory and running
|
|
`db:push` does.
|
|
|
|
## Verifying
|
|
|
|
From the platform repo, which is where the toolchain lives:
|
|
|
|
```bash
|
|
bunx tsgo
|
|
bun run plugins:check
|
|
bunx prettier --write <the files you touched>
|
|
```
|
|
|
|
A change in `api/` or `web/` needs `pm2 restart officer`. A manifest change needs it too — manifests are
|
|
read once per server process.
|