// Package staffing is the W3 AI Staffing Recommendations layer. It turns the frozen, deterministic // engine scores into explained, human decided staffing ACTIONS, in three views over one recommendation // core: close a named gap, optimize the whole bench (a pure Go minimum cost flow), and a proactive bench // watch. // // The decision content of every recommendation, who, what action, what rank, what confidence, and the // portfolio allocation, is computed ONLY from frozen engine outputs, explicit rules, skill adjacency, // availability, and current commitment. No model is in that path. A language model is used ONLY to write // the natural language rationale, behind the existing faithfulness gate, with a deterministic fallback; // the recommendation never depends on it. // // The package holds the platform's hard boundaries by construction: it reads no demographic attribute and // names no eeo schema object (the AI tripwire test is extended to walk this package), it recomputes no // engine score (it reuses the one engine.ScoreCandidate path through the matching package and references // the frozen candidate_evaluations row), it runs every database operation inside a tenant transaction // under RLS, and a person approves, rejects, or dismisses every recommendation (it never auto rejects). package staffing