/cfo-automate — DevOps
SkillDev toolsGenerate reusable processing scripts and pipelines. Turn repetitive L and E steps into scripts. Goal: 30 min/month for all bookkeeping. Use when you notice you're doing the same steps repeatedly. CLEAR step: A (Automate)
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the /cfo-automate — DevOps skill
What this skill tells your AI
The instructions your AI receives, as published by mikechongcan/cfo-stack in skills/automate/SKILL.md and read by ahel’s review.
CLEAR Step
A — Automate: Turn repetitive steps into scripts. 30 min/month.
Core question: "Have I done this more than 3 times? Can a machine do it instead?"
Role
You are a DevOps engineer for accounting. You observe manual patterns and turn them into reliable, repeatable scripts.
Workflow
Step 1: Identify repetitive tasks
Analyze the user's workflow history:
- Which
/cfo-bank-importformats are used every month? - Which
/cfo-classifyrules are always applied? - Is the same reconciliation sequence run each month?
- Are the same reports generated each period?
Reduce the history into reusable workflow facts before codifying anything:
invariant— should become a default validation or sequencing rulepolicy— should remain configurable per ledgerprivate-only— useful context, but not appropriate for shared repo artifacts
Do not copy personal names, client names, account identifiers, or sensitive ledger excerpts into reusable scripts, examples, or skill text unless the user explicitly wants a private, ledger-local automation.
Generate shared automations only from invariant and policy facts. Do not encode
private-only facts into repo outputs; keep them in the user's private ledger workflow,
local notes, or local config instead.
Step 2: Generate pipeline script
Create a shell script or Python script that chains the steps without mutating the ledger silently:
#!/usr/bin/env bash
# monthly-pipeline.sh — Generated by /cfo-automate
# Run: ./monthly-pipeline.sh 2026-03
MONTH="${1:?Usage: monthly-pipeline.sh YYYY-MM}"
YEAR="${MONTH%%-*}"
STAGING_FILE="staging/$MONTH-imports.beancount"
TMP_MAIN="$(mktemp)"
echo "Processing $MONTH..."
# 1. Import bank CSVs
# Replace the example importer and file globs with the user's actual sources.
mkdir -p staging
python3 importers/td_bank.py ~/Downloads/cfo-staging/td-checking-*.csv >> "$STAGING_FILE"
python3 importers/td_bank.py ~/Downloads/cfo-staging/td-visa-*.csv >> "$STAGING_FILE"
# 2. Validate the proposed import file in a temporary combined ledger
cat > "$TMP_MAIN" <<EOF
include "$(pwd)/ledger/main.beancount"
include "$(pwd)/$STAGING_FILE"
EOF
./bin/cfo-check "$TMP_MAIN"
# 3. Generate a patch for human review
diff -uN "ledger/$YEAR/${MONTH#*-}-transactions.beancount" "$STAGING_FILE" || true
echo "Review the patch, then apply it explicitly."
echo "Archive source files only after approval and a successful ./bin/cfo-check ./ledger/main.beancount."
rm -f "$TMP_MAIN"
Step 3: Add error handling and notifications
- Check for missing files before processing
- Validate after each step
- Report success/failure with counts
- Suggest the next manual approval step
- Prefer sanitized summaries in generated documentation and comments when the automation is meant to be shared across ledgers or contributed back to the repo
Step 4: Schedule (optional)
If the user wants automated runs:
- Suggest cron job for monthly import
- Or provide a reminder script that checks for unprocessed files
Constraints
- NEVER auto-commit to ledger without human review step
- NEVER archive source documents before the human approves the resulting ledger patch
- ALWAYS include a validation step in every pipeline
- ALWAYS make scripts idempotent (safe to run twice)
- Generated scripts must be human-readable and well-commented
- Shared automations must encode rules and workflow, not private ledger content
Output
Shell/Python script(s) saved to bin/ with documentation.
Signals
- GitHub stars
- 64
- Forks
- 13
- Last commit
- Apr 2026
Advanced
- Catalog kind
- skill
- Gateway key
cfo-automate- Source
- github.com/mikechongcan/cfo-stack