From 5db160c123b70e37c98bb8a534e51d3ae9af8a71 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 30 Jun 2026 11:27:05 +0200 Subject: docs: sync CLAUDE.md (errors.py, SKILL.md upkeep) Co-Authored-By: Claude Opus 4.8 --- CLAUDE.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'CLAUDE.md') diff --git a/CLAUDE.md b/CLAUDE.md index e140abc..d98a427 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -9,8 +9,9 @@ The Firefly III source is cloned at `../GITHUB/firefly-iii/` for reference only ## Architecture - `firefly_cli/` package. Shared primitives: `config.py` (env over TOML file), - `client.py` (HTTP + auth + error surfacing), `resolver.py` (name->id), - `output.py` (JSON default, `--human` tables), `registry.py` + `context.py`. + `client.py` (HTTP + auth + error surfacing), `errors.py` (FireflyError + hierarchy), `resolver.py` (name->id), `output.py` (JSON default, `--human` + tables), `registry.py` + `context.py`. - Commands live in `firefly_cli/commands/`, one module per group. Each command registers via the `@registry.command("group leaf", ...)` decorator. - `cli.py` builds argparse subparsers from the registry. `commands/__init__.py` @@ -23,6 +24,7 @@ The Firefly III source is cloned at `../GITHUB/firefly-iii/` for reference only `fn(args, ctx) -> int`. `ctx` has `.client`, `.resolver`, `.human`. 3. If it is a new module, add it to the import line in `commands/__init__.py`. 4. Write a unit test under `tests/unit/` (mock `ctx.client` / `ctx.resolver`). +5. Update `SKILL.md` (the agent-operating guide) with the new command. No other files change. ## Conventions @@ -39,5 +41,10 @@ No other files change. `FIREFLY_TEST_URL` / `FIREFLY_TEST_TOKEN`, skipped otherwise. Write tests create-then-delete their own records. NEVER point these at real data. +## Agent guide +`SKILL.md` documents how an agent drives the `firefly` command (the JSON/exit +contract, name resolution, task recipes). Keep it in sync when commands change. +It carries skill frontmatter and is symlinked into the Claude Code skills dir. + ## License GPLv2-only. Per-file header: `Copyright (C) 2026 Danilo M. `. -- cgit v1.2.3