Asteria Fleet Data Quality Hub — Audit & Certification Skill
Purpose
Reconcile, audit, and certify fleet-domain datasets published through the Asteria Fleet Data Quality Hub (a shared, read-only HTTP API). Produce a structured JSON certification report conforming to a supplied answer-template schema.
When to Use
This skill applies whenever a task involves:
An Asteria collection name, case-scope payload, and answer-template payload provided as input files (prompt.txt, payloads/case_scope.json, payloads/answer_template.json).
Runtime connection details supplied in a separate environment_access.md.
Instructions to query the hub, reconcile overlapping source records, compute quality/integrity metrics, assign opaque control codes, and render a certification or close decision.
Input File Contract
The task directory contains:
File
Role
prompt.txt
Natural-language description of the specific audit or certification requested.
JSON Schema or field contract for the required output. Every key, type, enum, and ordering rule is normative.
environment_access.md
(Provided at runtime) Base URL, Authorization header, allowed endpoints, and query syntax.
Environment Bootstrap
Readenvironment_access.md to obtain:
base_url — root of the hub.
credentials.query_authorization_header — full Authorization: Bearer <token> string.
Use only the allowed_endpoints listed in that file. Typical patterns:
GET /api/catalog/collections
GET /api/catalog/schema (query ?collection=<id> to get field definitions)
GET /api/contacts, GET /api/transactions/fuel, GET /api/transactions/freight, GET /api/maintenance/events (domain data)
GET /api/reference/aliases, GET /api/reference/conversions, GET /api/reference/fx (reference data)
GET /api/source-snapshots (?collection=<id> to list snapshots)
POST /api/query — send {"query": "<SQL>"} with the auth header.
Every HTTP request includes the authorization header from step 1.
Discovery & Exploration
Find the Collection
GET /api/catalog/collections returns all collections. Match the collection_id from case_scope.json.
Learn the Schema
GET /api/catalog/schema?collection=<id> returns field names, types, and semantics.
Inspect Source Snapshots
GET /api/source-snapshots?collection=<id> returns every registered snapshot for the collection. Each snapshot has a stable snapshot_id, a row count, and a status (certified, provisional, etc.).
Page Through Large Datasets
For collections larger than one page, use POST /api/query with SQL to retrieve the full dataset or to apply server-side filters. This is the primary mechanism for slicing by date range, region, asset, or other dimensions.
Reconciliation Methodology
Authoritative Snapshot Selection
Identify the snapshot with status certified (or the best available status) whose timestamp is ≤ the business cutoff.
When rows appear in multiple snapshots under the same logical ID, prefer the authoritative snapshot. If equal status, prefer the most recent snapshot within the cutoff.
Duplicate Detection
Within a collection: Group source rows that share the same logical identity key (e.g., contact email, transaction ID, event ID). Each group of ≥2 rows forms a duplicate cluster.
Across snapshots: When the same logical key appears in multiple snapshots, it is a cross-snapshot duplicate. The authoritative snapshot's copy is retained; others count as duplicate raw rows.
Survivor / Master Selection
For each duplicate cluster:
A precedence rule selects one row as the survivor. Precedence may be based on source system priority (stated in the prompt or case scope), snapshot status, recency, or field completeness.
If no explicit rule, default to the authoritative snapshot's row; if same snapshot, prefer the row with the most non-null canonical fields.
The survivor's row ID becomes the canonical entity identifier.
Business Cutoff
All time-stamped data is evaluated as of the business_cutoff / as_of / cutoff_at timestamp in case_scope.json. Records with timestamps after the cutoff are excluded.
Quality & Integrity Metrics
Row-Level Metrics
Metric
Definition
raw_row_count
Total source rows in scope (across all snapshots before dedup).
canonical_entity_count
Distinct canonical entities after deduplication (including quarantined entities).
duplicate_cluster_count
Number of multi-row clusters merged into one canonical entity.
duplicate_raw_count
raw_row_count − logical_*_count (superfluous rows that are duplicates).
quarantine_*_count
Rows/entities excluded from valid totals due to unresolvable data quality issues.
Quarantine Conditions (Domain-Specific)
Quarantine applies when a row cannot contribute to valid totals. Common triggers:
Missing or unparseable timestamp, invalid odometer reading, negative labor hours.
The quarantine rate is: distinct_quarantined_rows / canonical_entity_count, rounded to the precision declared in the answer template.
Integrity Issue Counts
For each integrity dimension declared in the answer template, count distinct rows or events exhibiting the defect. A single row may contribute to multiple counts.
Corrected / Normalized Totals
Exclude quarantined records from all normalized totals.
Unit conversions: Use /api/reference/conversions to convert raw measures to the canonical unit (e.g., L, KG, KM). Apply conversion factors multiplicatively.
Currency normalization: Use /api/reference/fx to convert spend to the base currency (typically USD). Apply the rate valid at the transaction date.
Precision: Follow the precision declarations in the answer template (usually 2 decimal places for amounts, 4 for rates).
Valid totals: Sum over valid (non-quarantined) records only.
Exception Classification
Category/Class Mismatch
When a record has both an expected category (from its declared classification) and a recognized category (from reference data lookup), and they differ, it is a mismatch. Mismatched records are valid for totals (they are not quarantined) but contribute to exception counts.
Unrecognized / Ambiguous
Unrecognized: The record's descriptive field maps to zero canonical categories in the reference data.
Ambiguous: The descriptive field maps to more than one canonical category.
Both are reported in the unrecognized/ambiguous lists (sorted lexicographically).
Invalid Measures
Non-positive or null values for quantity fields (volume, weight, distance, labor hours, odometer reading).
Out-of-range values (e.g., extreme labor hours exceeding a reasonable threshold).
Odometer Regression
Within an asset's maintenance history ordered by timestamp, any event where the odometer reading is less than the previous reading.
Focus-Entity Reporting
For every entity (cluster, asset, person) listed in case_scope.json's focus section:
Resolve the anchor row by its seed/source row ID from the case scope.
Traverse the duplicate cluster to collect all member row IDs (deduplicated, sorted lexicographically).
Select the survivor row ID per the reconciliation methodology.
Populate canonical fields: Apply field-level precedence rules (source system priority) to select the authoritative value for each canonical field (name, email, phone, city, etc.).
Source attribution: For each canonical field, record which source system supplied the value.
Resolution outcome: Classify as SINGLE_SOURCE (no merge needed), FIELD_LEVEL_PRECEDENCE_APPLIED (merged with precedence), CONTESTED_NO_AUTOMERGE (watchlist conflict), or NO_USABLE_CONTACT (quarantined).
Channel / Communication Readiness
For contact-domain tasks:
A usable email is a non-null, well-formed email address.
A usable phone is a non-null phone number with at least one digit.
An entity is readiness-eligible when its record is ACTIVE and has at least one usable channel.
A channel is ready when consent is GRANTED.
Partition entities into four mutually exclusive buckets: both (email+phone ready), email_only, phone_only, not_ready.
Readiness counts are computed across readiness-eligible canonical entities only.
For depot/region rollups, each entity is counted under its canonical region; the disposition counts (dispatchable, blocked-consent, blocked-no-contact, blocked-inactive) sum to the total for that depot.
Control-Code Assignment
The hub emits opaque alphanumeric codes that encode internal policy decisions. The answer template declares the allowed code universe (enums). To assign codes:
Decision Panels
For each scoped public ID (reference alias, transaction, charge, maintenance event, anchor case):
Retrieve the data for each ID from the hub.
Inspect its attributes in the reconciled dataset: source snapshot, category match result, measure validity, deduplication outcome, field provenance.
Infer the code by comparing the ID's data profile against the pattern exhibited by all other IDs assigned the same code in the training data. Codes partition IDs by:
Source basis (SB-*): Whether the record is single-snapshot, multi-snapshot retained, or multi-snapshot duplicate.
Ledger disposition (LD-*): Whether the record is valid, quarantined, mismatched, or unrecognized — routing to different financial treatment.
Reference policy (RB-*): Whether the alias maps uniquely to a recognized class, is ambiguous, or is unrecognized.
Identity (IC-*): Strength of identity resolution — single-source exact match, multi-source consensus, multi-source contested, or weak-link quarantine.
Outreach (OR-*): Contact readiness — both channels ready, single channel, not ready, or inactive.
Field provenance (FP-*): Whether all fields came from one source, mixed sources with agreement, or mixed sources with conflicts.
Maintenance source (MS-*): Source system that originated the maintenance event.
History route (HR-*): Whether the event is a unique occurrence, a duplicate with retained record, or a duplicate with discarded record.
Inference Method
For each code family, classify scoped IDs by their reconciled data profile. The correct code for each ID is the one whose underlying attribute pattern matches the ID's actual state. Do not hardcode mappings — derive them from the data returned by the hub for each ID.
Anchored Control Cases
Each anchored case in control_case_anchors or policy_control_cases ties a case ID to a list of evidence row IDs.
Retrieve each evidence row from the hub. Assign the code that reflects the aggregated data quality profile of those rows (e.g., all-from-one-source → one FP code; mixed → another).
Readiness Partitions
Assign one outreach code (OR-*) to each of the four readiness buckets (both, email_only, phone_only, not_ready). The code reflects the communication richness of that bucket.
Inactive Exclusion
Assign one outreach code to the population of inactive records excluded from readiness.
Rankings
When the case scope requests a ranked list (top-N merchants, carriers, assets):
Compute the primary metric for each entity from reconciled data (e.g., exception count, mismatch spend USD, rejected event count).
Sort by the primary metric descending.
Break ties using the declared tie-break fields (typically entity ID ascending).
Limit to the declared N.
Populate all required per-entity fields for each ranked entry.
Regional / Dimensional Rollups
Group canonical entities by the declared dimension (region, depot, fuel type, service class).
Produce one entry per distinct dimension value present in the reconciled data.
Sort entries lexicographically by the dimension value.
Sum entity counts and normalized measures within each group.
Certification / Close Decision
The final status and action are determined by comparing computed quality metrics against thresholds declared in case_scope.json:
Pattern
Status
Action
All thresholds satisfied (e.g., quarantine rate at or below pass_max_quarantine_rate)
Any critical threshold violated, or specific hard-gate conditions met
HOLD
BLOCK_AND_REMEDIATE
The status_action_map in the case scope defines the exact mapping. When the case scope specifies a hard gate (e.g., "odometer_regression → HOLD"), that condition overrides threshold-based decisions.
Output Compliance
Schema conformance: Every key, type, enum value, required constraint, minItems/maxItems, pattern, multipleOf, and additionalProperties rule in the answer template is binding.
Ordering: Arrays declared with a sort order MUST be sorted accordingly (lexicographically ascending by ID, rank ascending, dimension ascending, etc.).
Deduplication: Arrays declared uniqueItems: true MUST contain no duplicates.
Precision: Numeric values follow the declared precision (2 decimal places for currency/measures, 4 for rates, exact integers for counts).
Stable IDs: All identifiers are the exact stable IDs from the hub or case scope.
JSON only: No Markdown, no commentary, no trailing text.
Execution Checklist
Read environment_access.md for base URL and credentials.
Read payloads/case_scope.json for collection ID, cutoff, focus entities, thresholds.
Read payloads/answer_template.json for output structure, enums, ordering rules.
GET /api/catalog/collections — confirm collection exists.
GET /api/catalog/schema?collection=<id> — learn fields.
GET /api/source-snapshots?collection=<id> — identify authoritative snapshot.
GET /api/reference/aliases, /api/reference/conversions, /api/reference/fx — load reference data.
Retrieve domain data (paged queries as needed) from the relevant endpoint or via POST /api/query.
Assign control codes to every scoped decision-panel entry, anchor case, readiness partition, and exclusion.
Rank entities per case-scope rules.
Compute regional/dimensional rollups.
Apply certification thresholds and hard gates to determine status and action.
Assemble the output JSON, validate against the answer template, and return only that object.
1---2name: fewshot-attempt-03-453description: Asteria Fleet Data Quality Hub — Audit & Certification Skill4---5# Asteria Fleet Data Quality Hub — Audit & Certification Skill67## Purpose89Reconcile, audit, and certify fleet-domain datasets published through the **Asteria Fleet Data Quality Hub** (a shared, read-only HTTP API). Produce a structured JSON certification report conforming to a supplied answer-template schema.1011## When to Use1213This skill applies whenever a task involves:14- An Asteria collection name, case-scope payload, and answer-template payload provided as input files (`prompt.txt`, `payloads/case_scope.json`, `payloads/answer_template.json`).15- Runtime connection details supplied in a separate `environment_access.md`.16- Instructions to query the hub, reconcile overlapping source records, compute quality/integrity metrics, assign opaque control codes, and render a certification or close decision.1718## Input File Contract1920The task directory contains:2122| File | Role |23|---|---|24| `prompt.txt` | Natural-language description of the specific audit or certification requested. |25| `payloads/case_scope.json` | Scoped parameters: collection ID, business cutoff, focus entities, decision-panel IDs, thresholds, ranking rules, anchor cases. |26| `payloads/answer_template.json` | JSON Schema or field contract for the required output. Every key, type, enum, and ordering rule is normative. |27| `environment_access.md` | (Provided at runtime) Base URL, `Authorization` header, allowed endpoints, and query syntax. |2829## Environment Bootstrap30311. **Read** `environment_access.md` to obtain:32 - `base_url` — root of the hub.33 - `credentials.query_authorization_header` — full `Authorization: Bearer <token>` string.342. **Use** only the `allowed_endpoints` listed in that file. Typical patterns:35 - `GET /api/catalog/collections`36 - `GET /api/catalog/schema` (query `?collection=<id>` to get field definitions)37 - `GET /api/contacts`, `GET /api/transactions/fuel`, `GET /api/transactions/freight`, `GET /api/maintenance/events` (domain data)38 - `GET /api/reference/aliases`, `GET /api/reference/conversions`, `GET /api/reference/fx` (reference data)39 - `GET /api/source-snapshots` (`?collection=<id>` to list snapshots)40 - `POST /api/query` — send `{"query": "<SQL>"}` with the auth header.413. **Every** HTTP request includes the authorization header from step 1.4243## Discovery & Exploration4445### Find the Collection4647- `GET /api/catalog/collections` returns all collections. Match the `collection_id` from `case_scope.json`.4849### Learn the Schema5051- `GET /api/catalog/schema?collection=<id>` returns field names, types, and semantics.5253### Inspect Source Snapshots5455- `GET /api/source-snapshots?collection=<id>` returns every registered snapshot for the collection. Each snapshot has a stable `snapshot_id`, a row count, and a status (`certified`, `provisional`, etc.).5657### Page Through Large Datasets5859- For collections larger than one page, use `POST /api/query` with SQL to retrieve the full dataset or to apply server-side filters. This is the primary mechanism for slicing by date range, region, asset, or other dimensions.6061## Reconciliation Methodology6263### Authoritative Snapshot Selection64651. Identify the snapshot with status `certified` (or the best available status) whose timestamp is ≤ the business cutoff.662. When rows appear in multiple snapshots under the same logical ID, prefer the authoritative snapshot. If equal status, prefer the most recent snapshot within the cutoff.6768### Duplicate Detection69701. **Within a collection**: Group source rows that share the same logical identity key (e.g., contact email, transaction ID, event ID). Each group of ≥2 rows forms a duplicate cluster.712. **Across snapshots**: When the same logical key appears in multiple snapshots, it is a cross-snapshot duplicate. The authoritative snapshot's copy is retained; others count as duplicate raw rows.7273### Survivor / Master Selection7475For each duplicate cluster:76- A **precedence rule** selects one row as the survivor. Precedence may be based on source system priority (stated in the prompt or case scope), snapshot status, recency, or field completeness.77- If no explicit rule, default to the authoritative snapshot's row; if same snapshot, prefer the row with the most non-null canonical fields.78- The survivor's row ID becomes the canonical entity identifier.7980### Business Cutoff8182- All time-stamped data is evaluated as of the `business_cutoff` / `as_of` / `cutoff_at` timestamp in `case_scope.json`. Records with timestamps after the cutoff are excluded.8384## Quality & Integrity Metrics8586### Row-Level Metrics8788| Metric | Definition |89|---|---|90| `raw_row_count` | Total source rows in scope (across all snapshots before dedup). |91| `canonical_entity_count` | Distinct canonical entities after deduplication (including quarantined entities). |92| `duplicate_cluster_count` | Number of multi-row clusters merged into one canonical entity. |93| `duplicate_raw_count` | `raw_row_count` − `logical_*_count` (superfluous rows that are duplicates). |94| `quarantine_*_count` | Rows/entities excluded from valid totals due to unresolvable data quality issues. |9596### Quarantine Conditions (Domain-Specific)9798Quarantine applies when a row cannot contribute to valid totals. Common triggers:99100| Domain | Quarantine Trigger |101|---|---|102| Contacts | No usable email AND no usable phone. |103| Fuel | Non-positive quantity, unrecognized fuel category, ambiguous category match. |104| Freight | Unrecognized/ambiguous service-class alias, non-positive weight, non-positive distance. |105| Maintenance | Missing or unparseable timestamp, invalid odometer reading, negative labor hours. |106107The quarantine rate is: `distinct_quarantined_rows / canonical_entity_count`, rounded to the precision declared in the answer template.108109### Integrity Issue Counts110111For each integrity dimension declared in the answer template, count distinct rows or events exhibiting the defect. A single row may contribute to multiple counts.112113### Corrected / Normalized Totals114115- Exclude quarantined records from all normalized totals.116- **Unit conversions**: Use `/api/reference/conversions` to convert raw measures to the canonical unit (e.g., L, KG, KM). Apply conversion factors multiplicatively.117- **Currency normalization**: Use `/api/reference/fx` to convert spend to the base currency (typically USD). Apply the rate valid at the transaction date.118- **Precision**: Follow the precision declarations in the answer template (usually 2 decimal places for amounts, 4 for rates).119- **Valid totals**: Sum over valid (non-quarantined) records only.120121## Exception Classification122123### Category/Class Mismatch124125When a record has both an **expected** category (from its declared classification) and a **recognized** category (from reference data lookup), and they differ, it is a mismatch. Mismatched records are valid for totals (they are not quarantined) but contribute to exception counts.126127### Unrecognized / Ambiguous128129- **Unrecognized**: The record's descriptive field maps to zero canonical categories in the reference data.130- **Ambiguous**: The descriptive field maps to more than one canonical category.131- Both are reported in the unrecognized/ambiguous lists (sorted lexicographically).132133### Invalid Measures134135- Non-positive or null values for quantity fields (volume, weight, distance, labor hours, odometer reading).136- Out-of-range values (e.g., extreme labor hours exceeding a reasonable threshold).137138### Odometer Regression139140- Within an asset's maintenance history ordered by timestamp, any event where the odometer reading is less than the previous reading.141142## Focus-Entity Reporting143144For every entity (cluster, asset, person) listed in `case_scope.json`'s focus section:1451461. **Resolve the anchor row** by its seed/source row ID from the case scope.1472. **Traverse the duplicate cluster** to collect all member row IDs (deduplicated, sorted lexicographically).1483. **Select the survivor** row ID per the reconciliation methodology.1494. **Populate canonical fields**: Apply field-level precedence rules (source system priority) to select the authoritative value for each canonical field (name, email, phone, city, etc.).1505. **Source attribution**: For each canonical field, record which source system supplied the value.1516. **Resolution outcome**: Classify as `SINGLE_SOURCE` (no merge needed), `FIELD_LEVEL_PRECEDENCE_APPLIED` (merged with precedence), `CONTESTED_NO_AUTOMERGE` (watchlist conflict), or `NO_USABLE_CONTACT` (quarantined).152153## Channel / Communication Readiness154155For contact-domain tasks:156- A **usable email** is a non-null, well-formed email address.157- A **usable phone** is a non-null phone number with at least one digit.158- An entity is **readiness-eligible** when its record is ACTIVE and has at least one usable channel.159- A channel is **ready** when consent is GRANTED.160- Partition entities into four mutually exclusive buckets: `both` (email+phone ready), `email_only`, `phone_only`, `not_ready`.161- Readiness counts are computed across **readiness-eligible** canonical entities only.162- For depot/region rollups, each entity is counted under its canonical region; the disposition counts (dispatchable, blocked-consent, blocked-no-contact, blocked-inactive) sum to the total for that depot.163164## Control-Code Assignment165166The hub emits opaque alphanumeric codes that encode internal policy decisions. The answer template declares the allowed code universe (enums). To assign codes:167168### Decision Panels169170For each scoped public ID (reference alias, transaction, charge, maintenance event, anchor case):1711721. **Retrieve the data** for each ID from the hub.1732. **Inspect its attributes** in the reconciled dataset: source snapshot, category match result, measure validity, deduplication outcome, field provenance.1743. **Infer the code** by comparing the ID's data profile against the pattern exhibited by all other IDs assigned the same code in the training data. Codes partition IDs by:175 - **Source basis** (`SB-*`): Whether the record is single-snapshot, multi-snapshot retained, or multi-snapshot duplicate.176 - **Ledger disposition** (`LD-*`): Whether the record is valid, quarantined, mismatched, or unrecognized — routing to different financial treatment.177 - **Reference policy** (`RB-*`): Whether the alias maps uniquely to a recognized class, is ambiguous, or is unrecognized.178 - **Identity** (`IC-*`): Strength of identity resolution — single-source exact match, multi-source consensus, multi-source contested, or weak-link quarantine.179 - **Outreach** (`OR-*`): Contact readiness — both channels ready, single channel, not ready, or inactive.180 - **Field provenance** (`FP-*`): Whether all fields came from one source, mixed sources with agreement, or mixed sources with conflicts.181 - **Maintenance source** (`MS-*`): Source system that originated the maintenance event.182 - **History route** (`HR-*`): Whether the event is a unique occurrence, a duplicate with retained record, or a duplicate with discarded record.183184### Inference Method185186For each code family, classify scoped IDs by their reconciled data profile. The correct code for each ID is the one whose underlying attribute pattern matches the ID's actual state. Do not hardcode mappings — derive them from the data returned by the hub for each ID.187188### Anchored Control Cases189190- Each anchored case in `control_case_anchors` or `policy_control_cases` ties a case ID to a list of evidence row IDs.191- Retrieve each evidence row from the hub. Assign the code that reflects the aggregated data quality profile of those rows (e.g., all-from-one-source → one FP code; mixed → another).192193### Readiness Partitions194195- Assign one outreach code (`OR-*`) to each of the four readiness buckets (`both`, `email_only`, `phone_only`, `not_ready`). The code reflects the communication richness of that bucket.196197### Inactive Exclusion198199- Assign one outreach code to the population of inactive records excluded from readiness.200201## Rankings202203When the case scope requests a ranked list (top-N merchants, carriers, assets):2042051. **Compute the primary metric** for each entity from reconciled data (e.g., exception count, mismatch spend USD, rejected event count).2062. **Sort** by the primary metric descending.2073. **Break ties** using the declared tie-break fields (typically entity ID ascending).2084. **Limit** to the declared N.2095. **Populate** all required per-entity fields for each ranked entry.210211## Regional / Dimensional Rollups212213- Group canonical entities by the declared dimension (region, depot, fuel type, service class).214- Produce one entry per distinct dimension value present in the reconciled data.215- Sort entries lexicographically by the dimension value.216- Sum entity counts and normalized measures within each group.217218## Certification / Close Decision219220The final status and action are determined by comparing computed quality metrics against thresholds declared in `case_scope.json`:221222| Pattern | Status | Action |223|---|---|---|224| All thresholds satisfied (e.g., quarantine rate at or below `pass_max_quarantine_rate`) | `PASS` | `RELEASE` |225| Intermediate thresholds satisfied (e.g., quarantine rate ≤ `pass_with_exceptions_max_quarantine_rate`) | `PASS_WITH_EXCEPTIONS` | `REVIEW_EXCEPTIONS` |226| Any critical threshold violated, or specific hard-gate conditions met | `HOLD` | `BLOCK_AND_REMEDIATE` |227228The `status_action_map` in the case scope defines the exact mapping. When the case scope specifies a hard gate (e.g., "odometer_regression → HOLD"), that condition overrides threshold-based decisions.229230## Output Compliance2312321. **Schema conformance**: Every key, type, enum value, `required` constraint, `minItems`/`maxItems`, `pattern`, `multipleOf`, and `additionalProperties` rule in the answer template is binding.2332. **Ordering**: Arrays declared with a sort order MUST be sorted accordingly (lexicographically ascending by ID, rank ascending, dimension ascending, etc.).2343. **Deduplication**: Arrays declared `uniqueItems: true` MUST contain no duplicates.2354. **Precision**: Numeric values follow the declared precision (2 decimal places for currency/measures, 4 for rates, exact integers for counts).2365. **Stable IDs**: All identifiers are the exact stable IDs from the hub or case scope.2376. **JSON only**: No Markdown, no commentary, no trailing text.238239## Execution Checklist240241- [ ] Read `environment_access.md` for base URL and credentials.242- [ ] Read `payloads/case_scope.json` for collection ID, cutoff, focus entities, thresholds.243- [ ] Read `payloads/answer_template.json` for output structure, enums, ordering rules.244- [ ] `GET /api/catalog/collections` — confirm collection exists.245- [ ] `GET /api/catalog/schema?collection=<id>` — learn fields.246- [ ] `GET /api/source-snapshots?collection=<id>` — identify authoritative snapshot.247- [ ] `GET /api/reference/aliases`, `/api/reference/conversions`, `/api/reference/fx` — load reference data.248- [ ] Retrieve domain data (paged queries as needed) from the relevant endpoint or via `POST /api/query`.249- [ ] Apply business cutoff filter.250- [ ] Deduplicate — detect clusters, select survivors, count duplicates.251- [ ] Classify exceptions — mismatches, unrecognized, quarantines, invalid measures.252- [ ] Compute normalized totals using conversions and FX.253- [ ] Resolve focus entities with full member lists, canonical fields, and source attribution.254- [ ] Compute channel readiness partitions (for contact tasks).255- [ ] Assign control codes to every scoped decision-panel entry, anchor case, readiness partition, and exclusion.256- [ ] Rank entities per case-scope rules.257- [ ] Compute regional/dimensional rollups.258- [ ] Apply certification thresholds and hard gates to determine status and action.259- [ ] Assemble the output JSON, validate against the answer template, and return only that object.
Run npx skillmds@latest add prism-shadow/fewshot-attempt-03-45 in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Asteria Fleet Data Quality Hub — Audit & Certification Skill It is listed under Security on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
prism-shadow (@prism-shadow) published this skill. Their other Agent Skills are listed on their SkillMD profile.