Skill 詳細
accounting
Performs genuine expense and reconciliation work but is narrowly tied to one institution.
使用前に確認
自動レビューは関連性のみを確認し、安全性や推奨を保証しません。使用前に出典の説明を読んでください。
SKILL.md
これはレビュー時に保存された抜粋です。完全で最新の内容は外部ソースを確認してください。
---
name: accounting
description: "Process receipts, track expenses in Google Sheets, reconcile records, and generate entertainment supplement tables for Field Museum procurement card accounting"
---
# Accounting Skill
Use this skill when the user wants to:
- Process new receipts and add expense records
- Reconcile receipts against spreadsheet records
- Generate entertainment supplement tables
- Check budget or fund balances
- Organize procurement card accounting
Keywords: receipt, expense, accounting, budget, fund, supplement, p-card, procurement, GL code, reconcile
## Available Resources
- `references/gl_codes.md` — GL code reference table with entertainment flags
- `references/supplement_guide.md` — Supplement form layout and filing rules
- `references/smartdata_reports.md` — SmartData report formats, parsing, the 1% international fee, and pairing rules
- `scripts/parse_smartdata.py` — parses a SmartData Account Statement XLSX and pairs international fees
- `scripts/check_missing_receipts.py` — flags posted charges missing from the expenses sheet
## Session Start
**Run this skill from the accounts and receipts working folder.** Every path below is relative to it, and `{working_folder}` means that directory — the current one. The folder's location is deliberately not recorded in this repo.
**One exception:** `scripts/` and `references/` name this skill's own files and resolve against the **skill's** directory — the one holding this `SKILL.md` — not the working folder. `{skill_dir}` below means that directory; substitute it when running a command, since the current directory is the working folder and `python3 scripts/…` would not be found there. Every other path in this file, `{year}/…` included, is relative to the working folder.
If the current directory holds neither `spreadsheet_links.yaml` nor a `{year}/` directory, this is the wrong folder: say so and ask the user to restart the session from the right one. Do not go searching the filesystem for it.
1. **Detect year**: Determine the current year from today's date. Confirm with the user: "Working on **{year}** expenses — correct?"
2. **Get spreadsheet link**: Check for `spreadsheet_links.yaml` in the working folder.
- If a link for this year **already exists** in the YAML, show it and ask: "Using this spreadsheet — correct? {url}"
- If the file is missing or has no entry for this year, ask the user for the Google Sheet link.
Save/update the link:
```yaml
{year}:
spreadsheet_id: "{extracted_id}"
url: "{full_url}"
```
3. **Read current expenses**: Detect the environment by testing whether this is a local Mac session — `command -v open` succeeds and the `{year}/receipts/` directory is present. Then:
- **On cowork (local Mac)**:
Open the spreadsheet in Chrome so the user can interact with it:
```bash
open -a "Google Chrome" "{full_url}"
```
Also fetch the expenses tab via WebFetch CSV export:
```
https://docs.google.com/spreadsheets/d/{SPREADSHEET_ID}/gviz/tq?tqx=out:csv&sheet=expenses
```
If the WebFetch CSV export fails or returns an auth/login page, note this and ask the user to manually export the sheet as CSV and provide the file path.
- **Not on cowork (cloud/remote — no local receipts tree)**:
Fetch directly via WebFetch CSV export:
```
https://docs.google.com/spreadsheets/d/{SPREADSHEET_ID}/gviz/tq?tqx=out:csv&sheet=expenses
```
If this fails, ask the user to paste the spreadsheet data or provide a downloaded CSV file.
Parse the expenses data to understand existing records and the receipt numbers already used. **Analyze patterns** in existing records to learn Fund and GL code assignment conventions — e.g., which vendors consistently map to which funds and GL codes. Use these precedents when proposing values for new receipts rather than defaulting to a single fund.
**Expenses CSV file for `check_missing_receipts.py`** (the *expenses-CSV
recipeGitHub で全文を読む (外部ページ)