PeopleOps Control Task Skill
1. Access & Setup
- Open the solver application at
<TASK_ENV_BASE_URL>. - Login:
ops.lead@peopleops.local/PeopleOps#2026. - Identify the task type from the business task description and the fields in
input/payloads/answer_template.json. - Extract all stated identifiers, statuses, amounts, and dates from the application before applying any rules.
2. Universal Precedence Rules
Apply these hierarchies across all task types:
- Status:
submitted>draft>superseded - Leave source: Approved assignment (current period) > Employee profile summary > Case summary only
- Payroll source: Submitted assignment is authoritative; draft and superseded are excluded
- Candidate/Offer: Accepted offer is the only valid trigger for payroll handoff
- Nulls: Use JSON
nullfor missing identifiers, never the string"null". Use[]for empty exclusion lists. - Enums: Always use exact allowed values from the answer template. Never paraphrase.
3. Template 1: Onboarding Closeout (Leave + Payroll)
Identify by: Fields leave_source, payroll_assignment_id, closeout_action, final_control_result.
Data to collect: Employee ID; all leave assignments (status, policy, days); profile summary; all payroll assignments (status, base salary).
Field rules:
leave_source:leave_assignment_historyif approved assignment exists for current period and linked payroll issubmittedemployee_profile_summaryif (approved assignment exists but payroll isdraft) or (no approved assignment but profile summary exists)case_summary_onlyotherwise
annual_days: From the actual leave source;nullifcase_summary_onlyassignment_id: Approved assignment ID if one exists for current period, elsenullpayroll_assignment_id: Thesubmittedpayroll ID if available; otherwise the only available payroll ID (even ifdraft)excluded_payroll_ids: All payroll IDs with statusdraftorsupersededexcluded_leave_ids: All leave assignment IDs that aredraft,superseded, or not the current effective approved assignmentleave_precedence_source:approved_assignment_current_periodif approved assignment exists for current periodprofile_summary_current_periodif no approved assignment but profile summary existscase_summary_onlyotherwise
payroll_source_status: Status of thepayroll_assignment_idcloseout_action:approve_onboarding_closeif payroll issubmittedAND leave source is NOTcase_summary_onlyblock_close_and_reissue_noticeif payroll isdraftOR leave source iscase_summary_only
approval_closeout_gate:approval_sufficient_when_records_cleanifcloseout_actionisapprove_onboarding_closeapproval_not_sufficient_when_folder_or_notice_defectiveifcloseout_actionisblock_close_and_reissue_notice
final_control_result:approve_closeoutif approved assignment exists AND payroll issubmittedAND leave sourced from assignment historyready_with_monitoringif leave sourced fromemployee_profile_summary(no approved assignment) AND payroll issubmittedhold_for_folder_and_notice_defectsif payroll isdraftOR leave source iscase_summary_only
4. Template 2: Case Document & Notice Review
Identify by: Fields case_id, folder_ready, notice_quality, closeout_blockers, escalation_action.
Data to collect: Case ID; approval history (decision, authority, event ID); folder contents and required tags; notice packet and defects; audit events.
Field rules:
folder_ready:falseif any required files are missing;trueotherwisemissing_files: List all missing required filenamesrequired_tag_present: Boolean from folder metadatanotice_quality:defectiveif any notice defects exist;validotherwisenotice_defects: List specific defects from the template allowed valuesnext_action:block_close_and_reissue_noticeif folder not ready OR notice defectiveapprove_onboarding_closeif fully cleanopen_records_remediationfor severe records issues
approval_closeout_gate:approval_not_sufficient_when_folder_or_notice_defectiveif any defects;approval_sufficient_when_records_cleanif cleancloseout_blockers: Map defects to blockers (missing_required_files,missing_required_tags,defective_formal_notice)evidence_source_order:approval_history_folder_notice_auditif approval history + folder + notice + audit all existfolder_notice_auditif no approval historyaudit_onlyif only audit events exist
folder_required_tag_action:no_tag_actionif tag present;add_required_tagif missingnotice_evidence_source:notice_packet_inspectionfor formal notice packetsmessage_notice_inspectionfor message-based noticescase_summary_onlyfor case-only data
escalation_action:open_records_remediationfor missing files/records issuesblock_close_and_reissue_noticefor notice defectsno_actionif clean
records_remediation_owner:Recordsfor file issuesPeople Ops Compliancefor compliance gapsPayroll QAfor payroll issues
notice_remediation_action:reissue_defective_noticesif notice defective;no_notice_actionif validfinal_control_result:hold_for_folder_and_notice_defectsif any folder/notice defectsapprove_closeoutif fully cleanready_with_monitoringfor minor non-blocking issues
5. Template 3: Recruitment Selection & Offer Handoff
Identify by: Fields opening_id, selected_candidate, waitlisted_candidates, onboarding_handoff, handoff_control_result.
Data to collect: Opening ID; all candidates (selected, waitlisted, rejected); offer details (ID, base salary, status); recruitment cost ledger; interview feedback.
Field rules:
selected_candidate: Candidate with accepted offer or highest committee rankingwaitlisted_candidates: Candidates explicitly marked waitlistedrejected_candidates: Candidates explicitly marked rejectedoffer_id/offer_base_salary: From the accepted offerrecruitment_cost_total: Sum fromrecruitment_cost_ledgerif availablenotice_followup_required: Combinewaitlisted_candidates+rejected_candidatesonboarding_handoff:create_payroll_precheckif selected candidate hasacceptedoffer;no_payroll_handoffotherwisecandidate_status_source:interview_feedback_and_offerif offer process completedmessage_onlyif only messagescase_summary_onlyif only case data
candidate_outcome_control:committee_decision_with_offer_confirmationif committee decided with offermessage_status_onlyif based on messagescase_summary_onlyif based on case
selected_offer_status:accepted,draft,withdrawn, ornonecost_source:recruitment_cost_ledgerif ledger data exists;case_summary_onlyif estimatednotice_quality_source:notice_packet_inspectionif formal packets existwaitlisted_followup_action:send_waitlist_noticerejected_followup_action:send_rejection_noticepayroll_handoff_gate:accepted_offer_onlyif handoff triggered by accepted offerpayroll_assignment_status_required:submitted_after_acceptanceif assignment must be submitted post-acceptancedraft_payroll_allowed:falsefor new-hire payroll (never allow draft)offer_exclusion_reason_for_waitlisted:no_accepted_status_or_offerif waitlisted never had accepted offerhandoff_control_result:submitted_handoff_required_after_acceptanceif handoff required after acceptancesubmitted_handoff_requiredif always requiredno_handoff_requiredotherwise
6. Template 4: Leave Precedence Audit
Identify by: Fields precedence_source, profile_policy_ignored, audit_result, leave_precedence_source.
Data to collect: Employee ID; approved leave assignment (policy, balance days); employee profile summary leave policy; audit events.
Field rules:
effective_leave_policy: From the approved assignment (authoritative source)assignment_id: The approved assignment IDbalance_days: From the approved assignmentprecedence_source:approved_assignment_over_profileif approved assignment exists and differs from profileemployee_profile_summaryif no assignmentcase_summary_onlyif neither
profile_policy_ignored:trueif approved assignment overrides profile;falseif profile is usedaudit_result:profile_summary_staleif profile differs from assignmentready_with_monitoringif profile matches but no assignmentblock_closefor serious issues
next_action:update_employee_summaryif profile is staleopen_records_remediationif records issueno_actionif clean
leave_precedence_source:approved_assignment_current_periodif approved assignment existsprofile_summary_current_periodif no assignment but profile existscase_summary_onlyotherwise
supporting_audit_event_ids: Relevant audit events that support the findingexcluded_audit_event_ids: Irrelevant or superseded audit eventsaudit_scope:leave_source_precedence_only
7. Template 5: Payroll Assignment Readiness
Identify by: Fields salary_assignment_id, accrual_ready, draft_exclusion_rule, control_result.
Data to collect: Employee ID; all payroll assignments (submitted, draft, superseded with base salary and effective date); accrual batch ID; audit event ID.
Field rules:
salary_assignment_id: Thesubmittedpayroll assignment IDbase_salary/effective_date: From the selected submitted assignmentexcluded_assignment_id: Thedraftpayroll assignment ID if one exists and is being excludedaccrual_ready:trueif a submitted assignment exists AND accrual batch is providedpayroll_source_status:submitteddraft_exclusion_rule:exclude_draft_assignmentif a draft was excludedexclude_superseded_onlyif only superseded was excludeddraft_allowedif no exclusion needed
audit_scope:payroll_assignment_readinesscontrol_result:ready_with_monitoringif submitted selected but draft coexistedapprove_closeoutif only clean submitted existshold_for_folder_and_notice_defectsif issues
8. Common Pitfalls
- Do not confuse
leave_source(where leave data came from) withleave_precedence_source(which source has authority for the current period). - In Template 1,
assignment_idalways reflects the approved assignment ID (ornull), even whenleave_sourcefalls back toemployee_profile_summary. - In Template 1,
payroll_assignment_idmay be a draft ID when no submitted payroll exists; it will simultaneously appear inexcluded_payroll_ids. - In Template 5,
excluded_assignment_idis a single string, not a list. final_control_result,control_result, andhandoff_control_resultare template-specific and not interchangeable.- Always verify that exclusion lists contain every draft/superseded record mentioned in the application, not just the obvious ones.