summaryrefslogtreecommitdiffstats
path: root/SKILL.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-07-02 09:10:46 +0200
committerDanilo M. <danix@danix.xyz>2026-07-02 09:10:46 +0200
commit166f82d0bfdc598099c088275d68dc42499694f9 (patch)
tree4a4220fc737a8a5e38c15380a5c879a891dbf923 /SKILL.md
parent1802450e437de9d31b9044089c162993866f023d (diff)
downloadfirefly-cli-166f82d0bfdc598099c088275d68dc42499694f9.tar.gz
firefly-cli-166f82d0bfdc598099c088275d68dc42499694f9.zip
feat: tx add --from-id/--to-id to disambiguate same-name accounts (v0.3.7)v0.3.7
ISSUES.md #2: two accounts can share a name (e.g. expense id 52 and revenue id 129 both "Nexi"), making --from/--to ambiguous and unresolvable. Add --from-id/--to-id to target an account by numeric id. Per side, exactly one of the name flag or the id flag; sides independent. The id path fetches the account (resolver.account_by_id), validating existence before writing. Name-only callers unchanged; JSON/exit unchanged, so PATCH. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'SKILL.md')
-rw-r--r--SKILL.md7
1 files changed, 6 insertions, 1 deletions
diff --git a/SKILL.md b/SKILL.md
index 53ebd6f..33e5ffc 100644
--- a/SKILL.md
+++ b/SKILL.md
@@ -37,6 +37,11 @@ If `firefly` is not on PATH, run from the repo with `python -m firefly_cli ...`
account is a HARD error that lists the candidates and exits 1. When that
happens, read the candidates, pick the right one, and retry. NEVER guess an
account, a wrong account moves real money.
+- **Two accounts can share a name** (e.g. an expense and a revenue both named
+ "Nexi"); `--from`/`--to` then error as ambiguous. Target one by id with
+ `tx add --from-id <id>` / `--to-id <id>` (from the candidate list). Per side,
+ supply exactly one of the name flag or the id flag, never both; the two sides
+ are independent (`--from NAME --to-id 129` is fine). The id is validated.
- **Categories and tags auto-create.** `--category NAME` and `--tags a,b` are
passed straight to Firefly, which creates the category/tag if it does not
exist. No resolution, no error on a new name. Reuse an existing name (see
@@ -55,7 +60,7 @@ firefly account get <name|id>
firefly account balance <name|id> [--at YYYY-MM-DD]
firefly account create <name> --type asset|expense|revenue
[--opening-balance N] [--currency CODE]
-firefly tx add <amount> --from <acct> --to <acct>
+firefly tx add <amount> (--from <acct> | --from-id <id>) (--to <acct> | --to-id <id>)
[--desc TEXT] [--date YYYY-MM-DD] [--category NAME] [--tags a,b] [--type T]
[--dry-run] [--skip-dupes]
firefly tx edit <id>