Pilot Expense Tracker Setup

v1.0.0

Deploy an expense tracking pipeline with 3 agents that automate receipt collection, categorization, and report generation. Use this skill when: 1. User wants...

0· 75·0 current·0 all-time
byCalin Teodor@teoslayer

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for teoslayer/pilot-expense-tracker-setup.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Pilot Expense Tracker Setup" (teoslayer/pilot-expense-tracker-setup) from ClawHub.
Skill page: https://clawhub.ai/teoslayer/pilot-expense-tracker-setup
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required binaries: pilotctl, clawhub
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install pilot-expense-tracker-setup

ClawHub CLI

Package manager switcher

npx clawhub@latest install pilot-expense-tracker-setup
Security Scan
Capability signals
Crypto
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description (expense-tracker setup) matches the runtime instructions: it requires pilotctl and clawhub to configure agents, install related pilot-* skills, set hostnames, and write manifests. No unrelated binaries or credentials are requested.
Instruction Scope
Instructions stay within setup scope (install skills via clawhub, set hostname, write a manifest to ~/.pilot/setups, perform handshakes). Note: the skill writes a config into the user's home (~/.pilot/setups) and instructs network handshakes and pub/sub on port 1002 and webhook submissions on port 443 — these are expected for inter-agent communication but are changes the user should review before running.
Install Mechanism
This is instruction-only (no install spec). That is the lowest-risk install pattern. However, the instructions call clawhub to install other pilot-* skills; those installs are outside this skill and should be verified separately.
Credentials
The skill declares no required environment variables or credentials, which is proportionate. Be aware that some of the downstream skills it installs (e.g., pilot-slack-bridge, pilot-webhook-bridge) will likely require external credentials (Slack tokens, webhook URLs) not managed by this SKILL.md — the user must supply and protect those separately.
Persistence & Privilege
always:false and normal autonomous invocation are appropriate. The skill will create a per-user setup file under ~/.pilot which is reasonable for a setup task. It does not request system-wide modifications or other skills' configs.
Assessment
This instruction-only skill is coherent for deploying a three-agent expense pipeline, but before running anything: 1) verify pilotctl and clawhub binaries are legitimate and come from trusted sources; 2) inspect the pilot-* skills that clawhub will install (they run code and may require credentials); 3) review the manifest that will be written to ~/.pilot/setups and back it up if needed; 4) confirm network exposure (port 1002 for internal agent pub/sub and port 443 for external webhooks) fits your security posture and firewall rules; 5) plan how you will provide and secure downstream credentials (Slack tokens, webhook endpoints) and ensure receipt data handling meets privacy/compliance requirements. If you want extra assurance, ask for the exact clawhub install sources (package names/URLs) for review before proceeding.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Binspilotctl, clawhub
latestvk973a2am1qdx35gg5hh24qbt6h85aef9
75downloads
0stars
1versions
Updated 5d ago
v1.0.0
MIT-0

Expense Tracker Setup

Deploy 3 agents that automate expense receipt collection, categorization, and report generation.

Roles

RoleHostnameSkillsPurpose
collector<prefix>-collectorpilot-stream-data, pilot-share, pilot-archiveAccepts receipts, extracts amount, vendor, category
categorizer<prefix>-categorizerpilot-task-router, pilot-event-filter, pilot-metricsClassifies expenses, flags policy violations, calculates totals
reporter<prefix>-reporterpilot-webhook-bridge, pilot-announce, pilot-slack-bridgeGenerates reports, submits for approval, notifies managers

Setup Procedure

Step 1: Ask the user which role this agent should play and what prefix to use.

Step 2: Install the skills for the chosen role:

# For collector:
clawhub install pilot-stream-data pilot-share pilot-archive

# For categorizer:
clawhub install pilot-task-router pilot-event-filter pilot-metrics

# For reporter:
clawhub install pilot-webhook-bridge pilot-announce pilot-slack-bridge

Step 3: Set the hostname:

pilotctl --json set-hostname <prefix>-<role>

Step 4: Write the setup manifest:

mkdir -p ~/.pilot/setups
cat > ~/.pilot/setups/expense-tracker.json << 'MANIFEST'
<role-specific manifest from templates below>
MANIFEST

Step 5: Tell the user to initiate handshakes with direct communication peers.

Manifest Templates Per Role

collector

{"setup":"expense-tracker","setup_name":"Expense Tracker","role":"collector","role_name":"Receipt Collector","hostname":"<prefix>-collector","description":"Accepts expense receipts via photo upload or email forward. Extracts amount, vendor, and category.","skills":{"pilot-stream-data":"Stream receipt images and email attachments to the categorizer.","pilot-share":"Share extracted receipt data with downstream agents.","pilot-archive":"Archive original receipts for audit and compliance."},"peers":[{"role":"categorizer","hostname":"<prefix>-categorizer","description":"Receives raw expenses for classification"}],"data_flows":[{"direction":"send","peer":"<prefix>-categorizer","port":1002,"topic":"raw-expense","description":"Raw expense data with amount, vendor, category"}],"handshakes_needed":["<prefix>-categorizer"]}

categorizer

{"setup":"expense-tracker","setup_name":"Expense Tracker","role":"categorizer","role_name":"Expense Categorizer","hostname":"<prefix>-categorizer","description":"Classifies expenses by category, flags policy violations, calculates totals by period.","skills":{"pilot-task-router":"Route expenses to category-specific classification rules.","pilot-event-filter":"Filter and flag expenses that violate spending policies.","pilot-metrics":"Track spending totals by category, employee, and period."},"peers":[{"role":"collector","hostname":"<prefix>-collector","description":"Sends raw expense data"},{"role":"reporter","hostname":"<prefix>-reporter","description":"Receives categorized expenses for reporting"}],"data_flows":[{"direction":"receive","peer":"<prefix>-collector","port":1002,"topic":"raw-expense","description":"Raw expense data with amount, vendor, category"},{"direction":"send","peer":"<prefix>-reporter","port":1002,"topic":"categorized-expense","description":"Categorized expense with compliance flags"}],"handshakes_needed":["<prefix>-collector","<prefix>-reporter"]}

reporter

{"setup":"expense-tracker","setup_name":"Expense Tracker","role":"reporter","role_name":"Expense Reporter","hostname":"<prefix>-reporter","description":"Generates expense reports, submits for approval, notifies managers via Slack.","skills":{"pilot-webhook-bridge":"Submit completed expense reports to approval systems via webhook.","pilot-announce":"Broadcast report submission events to finance team.","pilot-slack-bridge":"Notify managers of pending expense approvals in Slack."},"peers":[{"role":"categorizer","hostname":"<prefix>-categorizer","description":"Sends categorized expenses for report generation"}],"data_flows":[{"direction":"receive","peer":"<prefix>-categorizer","port":1002,"topic":"categorized-expense","description":"Categorized expense with compliance flags"},{"direction":"send","peer":"external","port":443,"topic":"expense-report","description":"Expense report submitted for approval"}],"handshakes_needed":["<prefix>-categorizer"]}

Data Flows

  • collector -> categorizer : raw-expense events (port 1002)
  • categorizer -> reporter : categorized-expense events (port 1002)
  • reporter -> external : expense-report via webhook (port 443)

Handshakes

# collector <-> categorizer:
pilotctl --json handshake <prefix>-categorizer "setup: expense-tracker"
pilotctl --json handshake <prefix>-collector "setup: expense-tracker"
# categorizer <-> reporter:
pilotctl --json handshake <prefix>-reporter "setup: expense-tracker"
pilotctl --json handshake <prefix>-categorizer "setup: expense-tracker"

Workflow Example

# On categorizer -- subscribe to raw expenses:
pilotctl --json subscribe <prefix>-collector raw-expense
# On reporter -- subscribe to categorized expenses:
pilotctl --json subscribe <prefix>-categorizer categorized-expense
# On collector -- publish a raw expense:
pilotctl --json publish <prefix>-categorizer raw-expense '{"vendor":"Delta Airlines","amount":487.50,"currency":"USD","date":"2025-03-12","receipt_type":"photo","employee":"jane.smith"}'
# On categorizer -- publish categorized expense:
pilotctl --json publish <prefix>-reporter categorized-expense '{"vendor":"Delta Airlines","amount":487.50,"category":"travel","policy_compliant":true,"period":"2025-Q1"}'

Dependencies

Requires pilot-protocol skill, pilotctl binary, clawhub binary, and a running daemon.

Comments

Loading comments...