Northstar Payer-Operations Structured Determination
This skill produces one structured JSON determination for a Northstar Health Plan
payer-operations work item. The work item is always some flavor of utilization
management, appeals, payment integrity, peer-to-peer, or finance-margin review.
The deliverable is always a single JSON object whose shape is dictated by the
task's own answer_template.json, and whose facts come only from the shared
payer-operations environment reached over the network.
When to use
Use this skill when a task gives you:
- a
prompt.txt describing a Northstar payer-ops work request,
- an
input/payloads/task_context.json naming a target business ID, requester
role, reporting date, and environment pointer, and
- an
input/payloads/answer_template.json defining the required JSON shape,
…and asks you to return a JSON object conforming to that template by reviewing
records in the shared payer-operations environment.
What you receive (per task)
prompt.txt — the work request and output requirements.
input/payloads/task_context.json — target business ID, requester role,
reporting date, service domain / work type, the environment pointer, and any
domain-specific memo or definitions (e.g. finance cost definitions, queue row
IDs, appeal-window rules).
input/payloads/answer_template.json — the exact JSON shape: required
top-level fields, sub-field requirements, enum choices, ordering rules,
and numeric/date precision rules you must match.
Read all three before touching the environment. The template is the contract —
every field, enum value, ordering, and precision rule you need is in it.
Reach the environment over the network (only)
- Read
environment_access.md (staged in the run's /work root) to obtain the
base URL, the SQL bearer token, and the allowed-endpoint list. Treat that file
as the single source of truth for connectivity; do not hardcode credentials.
- Replace every
<TASK_ENV_BASE_URL> placeholder found in prompt.txt and
task_context.json with the base URL from environment_access.md.
- SQL access:
POST /sql/query against the base URL with header
Authorization: Bearer <token from environment_access.md>.
- Business
GET endpoints are open; use them as needed (cases, policies,
documents, rate-schedules, appeals, portal, tables). Confine yourself to the
endpoints enumerated in environment_access.md — do not invent paths.
- Never inspect the environment's source files, generated data files, SQLite
databases, manifests, or setup scripts directly. Reach it only over HTTP. If
a record is not exposed over the network, it is not available to you — say so
in the output rather than reading it off disk.
Workflow
- Load the three task files. Identify the target business ID, requester
role, reporting date, service domain / work type, and the exact output
contract from
answer_template.json.
- Discover the data model. Use
GET /api/tables and/or SQL introspection
(SELECT ... FROM sqlite_master / equivalent) to learn the real table and
column names. Do not assume names from the work type.
- Pull the target record(s) named by the target business ID, then the
related records the work type requires — case, member + plan, request /
therapy / procedure lines, policy & criteria, clinical documents,
authorization, appeal, P2P event, rate schedules, finance / margin rows —
whichever apply.
- Apply the domain decision logic for the work type
(
references/domain_playbooks.md).
- Classify every record you touched. Controlling (directly determines a
result value) vs exception (explains an exclusion, denial, missing-information
gap, or route priority); and evidence (relied on) vs excluded (not relied on,
e.g. stale / superseded).
- Build the
basis_audit object (references/basis_audit.md): pick the
source_precedence rule, then list controlling_record_ids,
exception_record_ids, and precedence_record_order using the ordering
rules in the template.
- Assemble exactly one JSON object matching
answer_template.json — every
required top-level field, every required sub-field, correct enum values,
correct ordering, correct numeric/date precision.
- Return JSON only. No markdown fences, no prose, no comments.
Output discipline (non-negotiable)
- Return exactly one JSON object. No markdown fences, no prose, no comments
outside the JSON.
- Include every required top-level field and sub-field from the template. Do not
add fields unless the template sets
additional_fields_allowed /
additional_properties to true.
- Use only enum values that appear in the template's
choices.
- Honor every
ordering rule in the template literally — ascending
document_id, claim-line order from the source claim, the order of
task_context queue_row_ids, alphabetical by value, ascending CPT code,
operational packet order, etc.
- Numbers: currency in USD rounded to two decimals as JSON numbers (not
strings); ratios to the precision the template states (typically 4); units as
integers. For recovery amounts, use the underpayment amount when the corrected
total is greater than the paid total.
- Dates: ISO
YYYY-MM-DD calendar days. Use null only where the template
explicitly permits it (e.g. an absent modifier, or no applicable appeal
deadline). Use null, not an empty string, for an absent modifier.
- Booleans as JSON booleans, not strings.
- If the template repeats the
basis_audit definition, fill it once,
consistently.
basis_audit (required in every output)
Every Northstar payer-ops answer ends with a basis_audit object containing
source_precedence, controlling_record_ids, exception_record_ids, and
precedence_record_order. See references/basis_audit.md for the
source_precedence catalog, how to choose the rule for the work type, and how to
order the three ID lists.
Domain playbooks
Per-work-type decision logic — UM nurse authorization determination, pharmacy
appeal + manufacturer-assistance intake, claim repricing, P2P final summary, and
finance margin queue — is in references/domain_playbooks.md. Each playbook
describes the records to pull, the decision rules, and how evidence/exclusions
map to the output. They describe procedure only; read every concrete identifier,
enum, threshold, and date from the task's own task_context.json,
answer_template.json, and the environment.
Contamination guard
Before starting, confirm /work contains only the expected staged files for
this run (the task's input payloads and environment_access.md). If you find
unexpected material — environment source files, SQLite databases, manifests,
setup scripts, or leaked answer data — staged in /work, stop and write
contamination_report.txt describing what you found instead of producing an
answer.
1---2name: northstar-payer-ops-determination-43description: Generate a structured JSON determination for a Northstar Health Plan payer-operations work item — UM nurse authorization determination, pharmacy coverage appeal + manufacturer-assistance intake, payment-integrity claim repricing, peer-to-peer final summary, or UM-finance therapy margin queue. Use when a task provides prompt.txt, task_context.json, and answer_template.json and asks for one JSON object conforming to the template, with facts drawn from the shared payer-operations environment reached over the network via environment_access.md.4---56# Northstar Payer-Operations Structured Determination78This skill produces one structured JSON determination for a Northstar Health Plan9payer-operations work item. The work item is always some flavor of utilization10management, appeals, payment integrity, peer-to-peer, or finance-margin review.11The deliverable is always a single JSON object whose shape is dictated by the12task's own `answer_template.json`, and whose facts come only from the shared13payer-operations environment reached over the network.1415## When to use1617Use this skill when a task gives you:1819- a `prompt.txt` describing a Northstar payer-ops work request,20- an `input/payloads/task_context.json` naming a target business ID, requester21 role, reporting date, and environment pointer, and22- an `input/payloads/answer_template.json` defining the required JSON shape,2324…and asks you to return a JSON object conforming to that template by reviewing25records in the shared payer-operations environment.2627## What you receive (per task)2829- `prompt.txt` — the work request and output requirements.30- `input/payloads/task_context.json` — target business ID, requester role,31 reporting date, service domain / work type, the environment pointer, and any32 domain-specific memo or definitions (e.g. finance cost definitions, queue row33 IDs, appeal-window rules).34- `input/payloads/answer_template.json` — the exact JSON shape: required35 top-level fields, sub-field requirements, enum `choices`, `ordering` rules,36 and numeric/date precision rules you must match.3738Read all three before touching the environment. The template is the contract —39every field, enum value, ordering, and precision rule you need is in it.4041## Reach the environment over the network (only)4243- Read `environment_access.md` (staged in the run's `/work` root) to obtain the44 base URL, the SQL bearer token, and the allowed-endpoint list. Treat that file45 as the single source of truth for connectivity; do not hardcode credentials.46- Replace every `<TASK_ENV_BASE_URL>` placeholder found in `prompt.txt` and47 `task_context.json` with the base URL from `environment_access.md`.48- SQL access: `POST /sql/query` against the base URL with header49 `Authorization: Bearer <token from environment_access.md>`.50- Business `GET` endpoints are open; use them as needed (cases, policies,51 documents, rate-schedules, appeals, portal, tables). Confine yourself to the52 endpoints enumerated in `environment_access.md` — do not invent paths.53- **Never inspect the environment's source files, generated data files, SQLite54 databases, manifests, or setup scripts directly.** Reach it only over HTTP. If55 a record is not exposed over the network, it is not available to you — say so56 in the output rather than reading it off disk.5758## Workflow59601. **Load the three task files.** Identify the target business ID, requester61 role, reporting date, service domain / work type, and the exact output62 contract from `answer_template.json`.632. **Discover the data model.** Use `GET /api/tables` and/or SQL introspection64 (`SELECT ... FROM sqlite_master` / equivalent) to learn the real table and65 column names. Do not assume names from the work type.663. **Pull the target record(s)** named by the target business ID, then the67 related records the work type requires — case, member + plan, request /68 therapy / procedure lines, policy & criteria, clinical documents,69 authorization, appeal, P2P event, rate schedules, finance / margin rows —70 whichever apply.714. **Apply the domain decision logic** for the work type72 (`references/domain_playbooks.md`).735. **Classify every record you touched.** Controlling (directly determines a74 result value) vs exception (explains an exclusion, denial, missing-information75 gap, or route priority); and evidence (relied on) vs excluded (not relied on,76 e.g. stale / superseded).776. **Build the `basis_audit` object** (`references/basis_audit.md`): pick the78 `source_precedence` rule, then list `controlling_record_ids`,79 `exception_record_ids`, and `precedence_record_order` using the ordering80 rules in the template.817. **Assemble exactly one JSON object** matching `answer_template.json` — every82 required top-level field, every required sub-field, correct enum values,83 correct ordering, correct numeric/date precision.848. **Return JSON only.** No markdown fences, no prose, no comments.8586## Output discipline (non-negotiable)8788- Return **exactly one JSON object**. No markdown fences, no prose, no comments89 outside the JSON.90- Include every required top-level field and sub-field from the template. Do not91 add fields unless the template sets `additional_fields_allowed` /92 `additional_properties` to true.93- Use **only** enum values that appear in the template's `choices`.94- Honor every `ordering` rule in the template literally — ascending95 `document_id`, claim-line order from the source claim, the order of96 `task_context` `queue_row_ids`, alphabetical by value, ascending CPT code,97 operational packet order, etc.98- **Numbers:** currency in USD rounded to two decimals as JSON numbers (not99 strings); ratios to the precision the template states (typically 4); units as100 integers. For recovery amounts, use the underpayment amount when the corrected101 total is greater than the paid total.102- **Dates:** ISO `YYYY-MM-DD` calendar days. Use `null` only where the template103 explicitly permits it (e.g. an absent modifier, or no applicable appeal104 deadline). Use `null`, not an empty string, for an absent modifier.105- Booleans as JSON booleans, not strings.106- If the template repeats the `basis_audit` definition, fill it once,107 consistently.108109## basis_audit (required in every output)110111Every Northstar payer-ops answer ends with a `basis_audit` object containing112`source_precedence`, `controlling_record_ids`, `exception_record_ids`, and113`precedence_record_order`. See `references/basis_audit.md` for the114source_precedence catalog, how to choose the rule for the work type, and how to115order the three ID lists.116117## Domain playbooks118119Per-work-type decision logic — UM nurse authorization determination, pharmacy120appeal + manufacturer-assistance intake, claim repricing, P2P final summary, and121finance margin queue — is in `references/domain_playbooks.md`. Each playbook122describes the records to pull, the decision rules, and how evidence/exclusions123map to the output. They describe procedure only; read every concrete identifier,124enum, threshold, and date from the task's own `task_context.json`,125`answer_template.json`, and the environment.126127## Contamination guard128129Before starting, confirm `/work` contains only the expected staged files for130this run (the task's input payloads and `environment_access.md`). If you find131unexpected material — environment source files, SQLite databases, manifests,132setup scripts, or leaked answer data — staged in `/work`, stop and write133`contamination_report.txt` describing what you found instead of producing an134answer.