Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Farmos Land Portfolio

ASecurity

Query land ownership, leases, landlord info, and land payments. Write operations for payment management and lease renewals.

14 stars
0 votes
0 copies
3 views
Added 9/7/2026
businessgobashapi

Works with

api

Security Analysis

A100/100

Scanned 9/7/2026

Install to Claude Code

$npx -y skills add modbender/skill-library-mcp --skill farmos-land-portfolio --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Farmos Land Portfolio?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Farmos Land Portfolio
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-farmos-land-portfolio/badge)](https://www.skillsdirectory.com/skills/modbender-farmos-land-portfolio)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: farmos-land-portfolio
description: Query land ownership, leases, landlord info, and land payments. Write operations for payment management and lease renewals.
tags: [farming, land, leases, landlords]
---

# FarmOS Land Portfolio

Track owned and leased land, lease terms, landlord relationships, payments, and annual land costs.

## CRITICAL: Data Completeness Rules

**NEVER use partial or truncated data. These rules are non-negotiable:**

1. **NEVER use `/api/integration/dashboard`** — it truncates results to 5 items. Partial payment data is worse than no data because it creates a false sense of completeness.
2. **ALWAYS use the `/all` endpoints** listed below for complete data.
3. **If an endpoint returns an error or empty results, REPORT THE FAILURE to the user.** Do not silently fall back to a different endpoint or present partial data.
4. **ALWAYS state the total count** of records returned so the user knows the data is complete. Example: "Found 11 payments due in March totaling $175,058."
5. **If you cannot get complete data, say so explicitly.** "I was unable to retrieve complete payment data" is infinitely better than showing 5 of 11 payments.

## When This Skill Triggers

- "When do our leases expire?"
- "What's the rent on the Smith ground?"
- "Total land costs this year?"
- "Show overdue payments"
- "Landlord contact info"
- "Cost per acre by parcel"
- "List all leased parcels"
- "What payments are due in March?"
- "Cash requirements for next month"
- "Mark payment [X] as paid"
- "Mark all March payments paid"
- "Renew the Smith lease"
- "Preview lease renewals"

## Access Control

Lease terms, rent amounts, and landlord info are sensitive business data. Restrict to admin or manager roles only.

**Role mapping:** Check the sender's role in `~/.openclaw/farmos-users.json`. If the user is not admin or manager, tell them they don't have access to land portfolio data.

## API Base

http://100.102.77.110:8009

## Integration Endpoints (No Auth Required) — READ OPERATIONS ONLY

**IMPORTANT: Use auth endpoints for WRITE operations (mark-paid, renewals). Use integration `/all` endpoints for READ operations (listing payments, leases, landlords).**

### Payments (FULL — use this, not dashboard)
GET /api/integration/payments/all
- Returns ALL payments with full details — parcel names, landlord names, overdue status
- Query parameters:
  - `status` — pending, paid, overdue, scheduled
  - `payment_type` — rent, mortgage, property_tax, insurance, improvement, other
  - `parcel_id` — filter by specific parcel
  - `due_date_from` — YYYY-MM-DD range start
  - `due_date_to` — YYYY-MM-DD range end
  - `crop_year` — filter by crop year
- Examples:
  - All overdue: `/api/integration/payments/all?status=overdue`
  - March 2026 payments: `/api/integration/payments/all?due_date_from=2026-03-01&due_date_to=2026-03-31`
  - All rent payments: `/api/integration/payments/all?payment_type=rent`

### Upcoming Payments (next N days)
GET /api/integration/payments/upcoming?days=30
- Returns ALL upcoming payments within N days (no truncation)
- Use `days=60` or `days=90` for longer lookahead

### Leases (FULL)
GET /api/integration/leases/all
- Returns ALL leases with landlord contact info, rent terms, expiration status
- Query parameters:
  - `status` — active, expired
  - `landlord_id` — filter by landlord

### Expiring Leases
GET /api/integration/leases/expiring?days=90
- Returns ALL leases expiring within N days

### Landlords (FULL)
GET /api/integration/landlords/all
- Returns ALL landlords with contact info, active lease count, total acres, total rent

### Parcels
GET /api/integration/parcels
- Returns ALL parcels with ownership type, acres, county
- Query parameter: `ownership_type` — owned, leased

### Summary Stats
GET /api/integration/summary
- Total acres, owned/leased breakdown, parcel/lease/landlord counts, annual cost

### Annual Land Costs (by month and entity)
GET /api/integration/finance/costs?year=2026
- Monthly cost breakdown by category (rent, mortgage, tax, insurance)
- Entity breakdown
- Query parameters: `year`, `entity_id`

### Cost Per Field (for P&L)
GET /api/integration/finance/cost-per-field?year=2026
- Land costs allocated to production fields
- Query parameters: `year`, `entity_id`

### Overdue Items
GET /api/integration/tasks/overdue
- All overdue payments and reminders — high priority items

### Actionable Items
GET /api/integration/tasks/actionable?days_ahead=30
- Upcoming payments, expiring leases, pending reminders

## Authenticated Endpoints — WRITE OPERATIONS

These require JWT auth. See Authentication section below.

### Authentication

This skill accesses protected FarmOS endpoints that require a JWT token.

**To get a token:** Run the auth helper with the appropriate role:
```bash
TOKEN=$(~/clawd/scripts/farmos-auth.sh admin)
```

**To use the token:** Include it as a Bearer token:
```bash
curl -H "Authorization: Bearer $TOKEN" http://100.102.77.110:8009/api/endpoint
```

**Token expiry:** Tokens last 15 minutes. If you get a 401 response, request a new token.

### Mark Single Payment Paid
POST /api/payments/{id}/mark-paid
Authorization: Bearer {token}
Content-Type: application/json

Body:
```json
{
  "paid_date": "2026-02-15",
  "notes": "Check #1234"
}
```

### Mark Multiple Payments Paid (Bulk)
POST /api/payments/bulk/mark-paid
Authorization: Bearer {token}
Content-Type: application/json

Body:
```json
{
  "payment_ids": [12, 34, 56],
  "paid_date": "2026-02-15",
  "notes": "Batch check run"
}
```

### Mark Payments Paid by Date Range
POST /api/payments/bulk/mark-paid-by-date
Authorization: Bearer {token}
Content-Type: application/json

Body:
```json
{
  "due_date_from": "2026-03-01",
  "due_date_to": "2026-03-31",
  "paid_date": "2026-02-15",
  "payment_type": "rent",
  "notes": "March rent payments"
}
```

Use this when the user says "mark all March payments as paid" or similar bulk date-based operations.

### Preview Lease Renewal
POST /api/leases/renewal-preview
Authorization: Bearer {token}
Content-Type: application/json

Body:
```json
{
  "lease_ids": [5, 12],
  "new_start_date": "2027-03-01",
  "rent_increase_percent": 3.0
}
```

Returns: Preview of what the renewed leases would look like, including new payment schedules. Use this BEFORE executing bulk renewals so the user can confirm.

### Execute Bulk Lease Renewal
POST /api/leases/bulk-renew
Authorization: Bearer {token}
Content-Type: application/json

Body:
```json
{
  "lease_ids": [5, 12],
  "new_start_date": "2027-03-01",
  "new_end_date": "2028-02-28",
  "new_rent_amount": 52000.00,
  "rent_increase_percent": 3.0,
  "notes": "Annual renewal with 3% increase"
}
```

**IMPORTANT:** Always preview first, confirm with user, then execute.

### Year-End Rollover Preview
POST /api/payments/year-end-rollover/preview
Authorization: Bearer {token}
Content-Type: application/json

Body:
```json
{
  "from_year": 2026,
  "to_year": 2027
}
```

Returns: Preview of payment schedules that would be created for the new crop year.

### Year-End Rollover Execute
POST /api/payments/year-end-rollover/execute
Authorization: Bearer {token}
Content-Type: application/json

Body:
```json
{
  "from_year": 2026,
  "to_year": 2027,
  "apply_rent_increase": true,
  "rent_increase_percent": 2.5
}
```

**IMPORTANT:** This creates next year's payment schedules based on current year leases. Always preview first.

## FORBIDDEN Endpoints — Do NOT Use

| Endpoint | Why |
|----------|-----|
| `GET /api/integration/dashboard` | **Truncates to 5 items. NEVER use this.** |

## Key Concepts

- **Parcel:** A land unit — either owned or leased.
- **Lease types:** Cash rent, crop share, flex rent.
- **Lease expiration:** Critical to track — approaching expirations need proactive attention.
- **Land payments:** Rent, mortgage, property tax, insurance — each with due dates.

## Usage Notes

- Lease expiration tracking is the highest-value query — always flag leases expiring within 6 months.
- Payment status (due/overdue) is critical — flag overdue payments immediately.
- Cost per acre analysis helps compare owned vs leased economics.
- Landlord contact info is private — never share outside admin/manager channels.
- When asked about "cash requirements" or "what do we owe", always use `/api/integration/payments/all` with date filtering to get the COMPLETE picture.
- For financial planning questions, combine `/api/integration/payments/all` with `/api/integration/finance/costs` for the full view.
- **Write operations:** Always use authenticated endpoints for marking payments paid or renewing leases. Preview first when doing bulk operations.
- **Bulk payment marking:** When user says "mark all March payments paid", use the bulk-by-date endpoint rather than individual calls.

Attribution

modbendermodbender
View sourceMore from modbender →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Solution Architect

Designs system architecture, component specifications, and technical integration strategy. Use when: designing solutions, system architecture, technology stack, or integration approaches.

192 votes

Akorchak:Venture Assessment

Generate a comprehensive VC investment assessment report for a company

72 votes

Stock Analysis

Analyze stocks and cryptocurrencies using Yahoo Finance data. Supports portfolio management (create, add, remove assets), crypto analysis (Top 20 by market cap), and periodic performance reports (daily/weekly/monthly/quarterly/yearly). 8 analysis dimensions for stocks, 3 for crypto. Use for stock analysis, portfolio tracking, earnings reactions, or crypto monitoring.

6511 votes

Just Fucking Cancel

Find and cancel unwanted subscriptions by analyzing bank transactions. Detects recurring charges, calculates annual waste, and helps you cancel with direct URLs and browser automation. Use when: 'cancel subscriptions', 'audit subscriptions', 'find recurring charges', 'what am I paying for', 'save money', 'subscription cleanup', 'stop wasting money'. Supports CSV import (Apple Card, Chase, Amex, Citi, Bank of America, Capital One, Mint, Copilot) OR Plaid API for automatic transaction pull. Out...

6511 votes

Telegram Compose

Compose rich, readable Telegram messages using HTML formatting via direct Telegram API. Use when: (1) Sending any Telegram message beyond a simple one-line reply, (2) Creating structured messages with sections, lists, or status updates, (3) Need formatting unavailable via Clawdbot's Markdown conversion (underline, spoilers, expandable blockquotes, user mentions by ID), (4) Sending alerts, reports, summaries, or notifications to Telegram, (5) Want professional, scannable message formatting wit...

6511 votes
View all in business →