agentleFS
krishagelkrishagel/geoffrey/skills/redrover-manager/SKILL.md

redrover-manager

Skill9 starsChanged 11 months agoMITView on GitHub

Access Red Rover absence management data for PSD staff attendance tracking and reporting

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    All requests require both:

    line 33
  2. Very specific:

    All scripts are in skills/redrover-manager/scripts/.

    line 41

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Red Rover Manager Skill

Overview

Red Rover is an absence management system used by PSD to track staff absences and substitute coverage. This skill provides access to absence data for reporting and analysis.

Configuration

  • Base URL: https://connect.redroverk12.com/
  • Org ID: 1305 (Peninsula School District)
  • Authentication: HTTP Basic Auth + API Key header
  • Credentials: Stored in 1Password as "RedRover"
  • Rate Limit: 100 requests/minute

Authentication

All requests require both:

  1. Authorization: Basic [base64(username:password)] header
  2. apiKey: [key] header (obtained from organization endpoint)

The organization endpoint returns a dynamic API key that should be used for subsequent requests.

Scripts

All scripts are in skills/redrover-manager/scripts/. Run with bun:

get_organization.js

Fetch organization info and validate credentials.

bun get_organization.js

Returns: Organization ID, name, and API key.

get_absences.js

Fetch raw absence/vacancy data for a date range.

bun get_absences.js <start_date> <end_date> [filled|unfilled|all]

Examples:

bun get_absences.js 2026-01-20 2026-01-27
bun get_absences.js 2026-01-27 2026-01-27 unfilled

Note: Max date range is 31 days.

get_daily_summary.js

Get daily absence summary (all staff) with counts by school, reason, and fill status.

bun get_daily_summary.js [date]

Date options:

  • today (default)
  • yesterday
  • Day names: monday, tuesday, etc.
  • last wednesday, last friday
  • Specific date: 2026-01-27

get_certificated_summary.js

Get daily absence summary for certificated staff only (Teachers, ESA, CTE).

bun get_certificated_summary.js [date]

Same date options as above. This is the most commonly requested report - focuses on classroom coverage.

get_weekly_summary.js

Get weekly trends and patterns.

bun get_weekly_summary.js [weeks_ago]

Options:

  • 0 = this week (default)
  • 1 = last week
  • 2 = two weeks ago

API Endpoints Used

Organization

GET /api/v1/organization
Security: Basic Auth
Returns: Array with org info including dynamic apiKey

Vacancy Details (Primary data endpoint)

GET /api/v1/{orgId}/Vacancy/details
Security: Basic Auth + apiKey header
Query Params:
  - fromDate: datetime (required)
  - toDate: datetime (required)
  - filled: boolean (optional - filter filled/unfilled)
  - pageSize: int (default 10, max 100)
  - page: int (default 1)
Returns: Paginated vacancy/absence data

Common Workflows

"How many absences yesterday?"

bun get_daily_summary.js yesterday

"Show unfilled positions for today"

bun get_daily_summary.js today
# Look at unfilled_positions array in output

"Weekly absence trends"

bun get_weekly_summary.js

"Last week's summary"

bun get_weekly_summary.js 1

Output Format

Daily Summary

{
  "date": "yesterday",
  "date_iso": "2026-01-26",
  "total_absences": 110,
  "filled": 75,
  "unfilled": 35,
  "fill_rate": 68,
  "by_school": {
    "PENINSULA HIGH SCHOOL": 13,
    "GIG HARBOR HIGH SCHOOL": 10
  },
  "by_reason": {
    "SICK LV > 1 SICK": 54,
    "OTH PAID LV > PERSONAL": 15
  },
  "by_position_type": {
    "Teacher": 55,
    "Paraprofessional": 36
  },
  "unfilled_positions": [
    {
      "school": "PENINSULA HIGH SCHOOL",
      "position": "MATH",
      "employee": "JANE DOE",
      "start": "2026-01-26T07:00:00",
      "end": "2026-01-26T14:30:00"
    }
  ]
}

Weekly Summary

{
  "week": "Jan 20-24, 2026",
  "week_label": "this week",
  "total_absences": 450,
  "daily_average": 90,
  "filled": 380,
  "unfilled": 70,
  "fill_rate": 84,
  "peak_day": { "day": "Monday", "count": 120 },
  "slow_day": { "day": "Friday", "count": 65 },
  "by_day": {
    "Monday": 120,
    "Tuesday": 95,
    "Wednesday": 90,
    "Thursday": 80,
    "Friday": 65
  },
  "trends": [
    { "type": "info", "message": "Monday had 120 absences (50%+ above average)" }
  ]
}

Data Fields

Key fields in vacancy data:

  • absenceDetail.employee - Employee who is absent
  • absenceDetail.reasons[0].name - Reason category (SICK, PERSONAL, etc.)
  • location.name - School name
  • position.title - Position title
  • position.positionType.name - Position category (Teacher, Paraprofessional, etc.)
  • substitute - If present, position is filled
  • start / end - Absence time range
  • needsReplacement - Whether sub is required

Schools in PSD

Common school names in data:

  • PENINSULA HIGH SCHOOL
  • GIG HARBOR HIGH SCHOOL
  • HENDERSON BAY HIGH SCHOOL
  • GOODMAN MIDDLE SCHOOL
  • HARBOR RIDGE MIDDLE SCHOOL
  • KEY PENINSULA MIDDLE SCHOOL
  • KOPACHUCK MIDDLE SCHOOL
  • ARTONDALE ELEMENTARY SCHOOL
  • DISCOVERY ELEMENTARY SCHOOL
  • EVERGREEN ELEMENTARY SCHOOL
  • HARBOR HEIGHTS ELEMENTARY SCHOOL
  • MINTER CREEK ELEMENTARY SCHOOL
  • PIONEER ELEMENTARY SCHOOL
  • PURDY ELEMENTARY SCHOOL
  • SWIFT WATER ELEMENTARY SCHOOL
  • VAUGHN ELEMENTARY SCHOOL
  • VOYAGER ELEMENTARY SCHOOL

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.