A Next.js-based shift scheduling and staff management system with AI copilot capabilities for managing shifts, assignments, swaps, and availability.
ShiftSync exposes 7 tools via LangChain's StructuredToolInterface. Tool names follow verb_noun convention (list-locations, find-staff, get-week-schedule, assign-staff, remove-assignment, reassign-shift, preview-assignment), which is good. However, source code inspection reveals critical gaps: no visible input schemas, parameter descriptions, or output schema documentation in the provided code samples. Tool definitions are inferred from file names and brief descriptions only. The descriptions provided (e.g., 'Lists all locations available in the system for the current session') are minimal (10-50 chars) and lack actionable context for LLM selection. No evidence of parameter validation, error recovery guidance, or constraint documentation. The tools handle sensitive operations (assign-staff, remove-assignment, reassign-shift) but lack permission gates, audit trails, or confirmation patterns.
Assigns a staff member to a shift after constraint validation
Finds staff members matching specified criteria (skills, location certification, availability)
Retrieves the schedule for a specific week at a location, including all shifts and assignments
Lists all locations available in the system for the current session
Previews the impact of assigning a staff member to a shift, checking constraints and conflicts
Reassigns a shift from one staff member to another
Removes a staff member's assignment from a shift
No input schemas visible in source code. All 7 tools lack documented parameter types, constraints, and descriptions. Cannot verify LLM can infer valid inputs.
Tool descriptions are minimal (10-50 chars) and lack WHEN/WHY context. 'Lists all locations available in the system for the current session' does not explain when to call this vs other discovery tools or what structure is returned.
Destructive operations (assign-staff, remove-assignment, reassign-shift) lack confirmation patterns, dry-run support, or explicit error recovery guidance. No evidence of permission gates or audit logging.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 32 | 2026-07-28+ | v2 |
No output schema documentation visible. LLM cannot plan downstream tool calls or extract required fields (e.g., location_id, staff_id, shift_id) for chaining.
find-staff and get-week-schedule likely return large result sets but no pagination parameters (limit, offset, cursor) or result capping visible in definitions.