{
  "description": "Staff rotas from who is available, what each shift needs and the working-time rules: a week or fortnight built and drawn as a grid, shown only once a script has checked every shift's cover and skills, and every person's hours, rest between shifts and days in a row.",
  "display_name": "Operations manager",
  "keywords": [
    "rota",
    "roster",
    "schedule",
    "shifts",
    "staffing",
    "workforce",
    "coverage",
    "working time"
  ],
  "links": {
    "documentation": "https://sananthanarayan.github.io/skilldrop/packs/operations-manager/"
  },
  "maintainers": [
    {
      "name": "sananthanarayan"
    }
  ],
  "first-value": {
    "audience-posture": "non-technical",
    "prerequisites": [
      "Who works for you, what they can do, and when they can't work",
      "The shifts you need covered, with how many people of each kind",
      "Python 3 on the machine, which the rota check and week drawing run on"
    ],
    "starter-task": "Get next week's rota, with every shift covered and nobody short of rest",
    "starter-prompt": "Make next week's rota for the café, Monday to Saturday. Every day: an opening shift 06:30–14:30 and a closing shift 14:00–21:00, each needing one keyholder and one barista. Staff: Amira (keyholder, barista, max 40 h), Ben (barista, max 24 h, not Wednesdays), Chloe (keyholder, barista, max 32 h), Dev (keyholder, barista, max 40 h), Ema (barista, max 24 h, not Mondays or Tuesdays), Fay (barista, max 32 h). At least 11 hours between shifts, nobody more than 5 days in a row.",
    "verification": "shift-roster leads with the rota as a table of days by people, says which shifts it couldn't fill and why, lists the rules it assumed, and saves a week grid drawn from a check that found every shift covered and no rest, hours or consecutive-day rule broken.",
    "recovery": "If shift-roster does not activate, ask for it by name (\"use shift-roster\"). If it says a week can't be covered, it names the smallest change that would; give it that change or say which rule may bend."
  },
  "requires": [
    "core"
  ],
  "journey": {
    "when": "You need next week's rota, or want to know whether the one you drew breaks any rule.",
    "you_bring": [
      "your staff, with what each can do and their hours",
      "when each person can't work",
      "the shifts, with times and how many of each role they need",
      "your rules: rest between shifts, days in a row, hours in a day"
    ],
    "steps": [
      {
        "skill": "shift-roster",
        "you_do": "Give it the staff, the shifts and the rules, or a rota you've already drawn.",
        "you_get": "A rota that passes every rule, as a table and a week grid, or the problems in yours with the fix for each.",
        "decide": "Publish the rota, or say which preference to trade (a person's day off, a rule that may bend)."
      },
      {
        "skill": "shift-roster",
        "you_do": "Tell it what changed: someone off sick, a swap two people asked for.",
        "you_get": "The rota re-checked with the change, and who can cover any shift it leaves short."
      }
    ],
    "you_end_with": "A rota you can publish, checked shift by shift and person by person."
  }
}
