一键导入
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: