ワンクリックで
redrover-manager
Access Red Rover absence management data for PSD staff attendance tracking and reporting
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Access Red Rover absence management data for PSD staff attendance tracking and reporting
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Automate the version bump ritual — three independent tracks (marketplace, psd-coding-system, psd-productivity)
Auto-evolve the plugin — compounds learnings into CLAUDE.md/patterns/agents then prunes them, checks releases, compares competition, contributes patterns
Autonomous build-to-done — implement, verify the full Definition of Done (build/lint/typecheck/full suite/Playwright + screenshots), open a PR with visual evidence, then watch CI and the AI reviewers and fix every round until 100% clean. Does not stop until done.
Clarify intent, research in parallel, design the approach, and emit a task breakdown + a machine-checkable Definition of Done — optionally filing contract-compliant GitHub issues that /lfg can pick up and drive to done.
Sign, notarize, and package a macOS .app into a .pkg for PSD Jamf Self Service deployment — full Apple Developer ID pipeline (sign → notarize → staple → pkgbuild → notarize pkg → verify). Triggers on "sign app", "notarize app", "package for jamf", "build pkg".
Configure this project's verification gate and review agents — writes .psd/verify.json (build/lint/test/typecheck/e2e commands, E2E flows, strictness, AI-reviewer logins, learnings, active review agents)
| name | redrover-manager |
| description | Access Red Rover absence management data for PSD staff attendance tracking and reporting |
| triggers | ["redrover","red rover","absences","staff attendance","teacher absences","substitute","sub coverage","unfilled positions"] |
| allowed-tools | Read, Bash |
| version | 0.1.0 |
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.
https://connect.redroverk12.com/All requests require both:
Authorization: Basic [base64(username:password)] headerapiKey: [key] header (obtained from organization endpoint)The organization endpoint returns a dynamic API key that should be used for subsequent requests.
All scripts are in skills/redrover-manager/scripts/. Run with bun:
Fetch organization info and validate credentials.
bun get_organization.js
Returns: Organization ID, name, and API key.
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 absence summary (all staff) with counts by school, reason, and fill status.
bun get_daily_summary.js [date]
Date options:
today (default)yesterdaymonday, tuesday, etc.last wednesday, last friday2026-01-27Get 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 trends and patterns.
bun get_weekly_summary.js [weeks_ago]
Options:
0 = this week (default)1 = last week2 = two weeks agoGET /api/v1/organization
Security: Basic Auth
Returns: Array with org info including dynamic apiKey
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
bun get_daily_summary.js yesterday
bun get_daily_summary.js today
# Look at unfilled_positions array in output
bun get_weekly_summary.js
bun get_weekly_summary.js 1
{
"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"
}
]
}
{
"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)" }
]
}
Key fields in vacancy data:
absenceDetail.employee - Employee who is absentabsenceDetail.reasons[0].name - Reason category (SICK, PERSONAL, etc.)location.name - School nameposition.title - Position titleposition.positionType.name - Position category (Teacher, Paraprofessional, etc.)substitute - If present, position is filledstart / end - Absence time rangeneedsReplacement - Whether sub is requiredCommon school names in data: