FarmOS Workforce
name: farmos-workforce
by brianppetty · published 2026-03-22
$ claw add gh:brianppetty/brianppetty-farmos-workforce---
name: farmos-workforce
description: Query employee data, time clock entries, schedules, and requests. Requires authentication — employees see own data, managers see team.
tags: [farming, workforce, employees, timeclock]
---
# FarmOS Workforce
Employee profiles, time clock, skills tracking, employee requests, and team calendar.
When to Use This
**What this skill handles:** Time clock (clock in/out), schedules, availability, time-off requests, certifications, employee profiles, overtime tracking, and payroll exports.
**Trigger phrases:** "I need [day] off", "who's working", "schedule", "clock in/out", "who's clocked in?", "overtime this week?", "any pending time-off requests?", "employee list", "CDL certifications"
**What this does NOT handle:** Task assignments or work orders (use farmos-tasks), equipment scheduling or maintenance (use farmos-equipment), pay rates or financial compensation questions (restricted to admin only via farmos-finance).
**Minimum viable input:** Any mention of schedule, availability, time off, or who is working. "I need Friday off" is enough.
Data Completeness
1. **Always state the count** of employees, time entries, or requests returned: "Found 8 active employees" or "12 time entries this pay period."
2. **Time entry queries are date-bounded** — always include `start_date` and `end_date` parameters to get the full picture for the requested period.
3. **If an endpoint fails**, report it — don't silently present empty results as "no employees" or "no time entries."
4. **For payroll exports**, verify the date range covers the full pay period before exporting.
Authentication
This skill accesses protected FarmOS endpoints that require a JWT token.
**To get a token:**
TOKEN=$(~/clawd/scripts/farmos-auth.sh manager)**Role mapping:** Check `~/.clawdbot/farmos-users.json` for the sender's role.
API Base
http://100.102.77.110:8006
Integration Endpoints (No Auth)
Employee List (for assignments)
GET /api/integration/employees
Returns: All employees with id, name, role. Use for task assignment dropdowns.
Active Employees
GET /api/integration/employees/active
Returns: Currently active employees only.
Authenticated Endpoints (JWT Required)
Employee Profiles
GET /api/employees — List all employees (manager+)
GET /api/employees/{id} — Employee detail (manager+ or own profile)
GET /api/employees/me — Current user's profile
Time Clock
POST /api/time/clock-in — Clock in (with optional GPS)
POST /api/time/clock-out — Clock out
GET /api/time/status — Current clock status for user
GET /api/time/entries?start_date=2026-02-01&end_date=2026-02-13 — Time entries
Timesheet Approval (Manager)
POST /api/time/entries/{id}/approve — Approve timesheet entry
GET /api/time/export?start_date=2026-02-01&end_date=2026-02-13&format=csv — Payroll export
Employee Requests
POST /api/requests — Submit time off/leave request
GET /api/requests/my — My requests
GET /api/requests/pending — Pending approvals (manager)
POST /api/requests/{id}/approve — Approve
POST /api/requests/{id}/reject — Reject with reason body: {"reason": "..."}
Calendar
GET /api/calendar/events?start=2026-02-01&end=2026-02-28 — Team calendar
Skills & Certifications
GET /api/skills — Skill definitions
GET /api/employees/{id}/skills — Employee's skills and certifications
Usage Notes
---
Conversational Schedule Capture
Crew members communicate schedule needs casually. Recognize these patterns and capture them without making it feel like paperwork.
Capture Patterns
| What They Say | What It Is | Action |
|--------------|-----------|--------|
| "I need Thursday afternoon off" | Time-off request | Log time-off, notify manager |
| "I can come in early tomorrow" | Availability note | Log availability change |
| "I'll be late Monday, doctor appointment" | Schedule note | Log late arrival, note reason |
| "Can I swap shifts with Jake on Friday?" | Shift swap request | Route to Brian/manager for approval |
| "I'm not going to be able to make it Saturday" | Absence notification | Log absence, notify manager |
| "I've got a thing next Wednesday" | Vague time-off | Log it — don't ask what "thing" is |
Bot Behavior
**Extract from message:**
**Response pattern:**
**Routing:**
Availability Updates
When crew mentions availability changes mid-conversation (not a formal request), still capture it:
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...