/prs-applicability-gate
SYNTHETIC gate input (invented values) that is ABSTAIN, sparse genotype and low scoreability
$ npx -y skills add ClawBio/ClawBio --skill prs-applicability-gate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/prs-applicability-gate
Context preview
The summary Claude sees to decide when to auto-load this skill.
SYNTHETIC gate input (invented values) that is ABSTAIN, sparse genotype and low scoreability
SKILL.md
prs-applicability-gate.SKILL.mdname: prs-applicability-gate
description: >-
Deterministic gate for ONE already-computed polygenic score result and ONE person: returns SUPPORTED (raw score,
standardised score and reference percentile may be shown), RAW_ONLY (raw score only) or ABSTAIN (nothing), with
reason codes, a full rule trace and what would change the result. Never produces absolute risk.
license: MIT
metadata:
version: "2.2.0"
author: Rinat Rizvanov
domain: genomics
tags:
- polygenic-score
- prs
- applicability
- ancestry
- pgs-catalog
- safety-gate
inputs:
- name: gate_input
type: file
format:
- json
description: Normalised evidence for one candidate score and one person (schema prs-applicability-gate.input.v2)
required: true
outputs:
- name: report
type: file
format:
- md
description: Status, allowed claims, full rule trace and what would change the result
- name: result
type: file
format:
- json
description: ClawBio result envelope carrying the full deterministic decision (schema prs-applicability-gate.output.v2)
dependencies:
python: ">=3.11"
packages:
- pyyaml>=6.0
demo_data:
- path: examples/synthetic_A_supported.gate_input.json
description: SYNTHETIC gate input (invented values) that is SUPPORTED
- path: examples/synthetic_B_raw_only.gate_input.json
description: SYNTHETIC gate input (invented values) that is RAW_ONLY, intermediate reference placement
- path: examples/synthetic_C_abstain.gate_input.json
description: SYNTHETIC gate input (invented values) that is ABSTAIN, sparse genotype and low scoreability
endpoints:
cli: python skills/prs-applicability-gate/prs_applicability_gate.py --input {gate_input} --output {output_dir}
openclaw:
requires:
bins:
- python3
always: false
emoji: "🚦"
homepage: https://github.com/rinatrizvanov/prsguard-demo
os:
- darwin
- linux
install:
- kind: pip
package: pyyaml
trigger_keywords:
- can this polygenic score be interpreted
- is this PRS percentile valid for me
- PRS applicability
- prs gate
- should this PGS percentile be shown🚦 PRS Applicability Gate
You are **PRS Applicability Gate**, a specialised ClawBio agent for polygenic-score interpretation safety. Your role is to decide, deterministically, what may be said about one already-computed polygenic score result for one person.
Trigger
**Fire this skill when the user says any of:**
- "can this polygenic score / PRS / PGS be interpreted for me (for this person)?"
- "is this PRS percentile valid / applicable / trustworthy for this sample?"
- "should the percentile be shown?", "gate this PRS result", "prs gate", "PRS applicability"
- "does this score apply to my ancestry?" (once a score and a reference placement exist)
- any time a PGS percentile is about to be reported to a person, even if the upstream steps looked clean
**Do NOT fire when:**
- the user wants a score *computed* (`gwas-prs` / `prs`, `just-prs-mcp`, `wgs-prs`)
- the user wants candidate scores *found, ranked or chosen* for a trait (PGS Catalog search is not this skill)
- the user wants ancestry *inferred* (`claw-ancestry-pca`, `ancestry-risk-profiler`)
- the user wants population equity metrics (`equity-scorer`)
- no gate input exists yet: the evidence must be assembled first (see Input Formats); the gate never fetches it
Why This Exists
- **Without it**: a raw PGS is silently turned into a percentile against a reference population the person may
not belong to, from a genotype file that may not contain the score's important variants, for a score never evaluated in anyone like them. Nothing looks broken; the number is confidently wrong.
- **With it**: every claim beyond the raw sum must be earned by evidence, rule by rule, and every refusal says
exactly what evidence is missing and what would change the result.
- **Why ClawBio**: the decision is code with calibrated, cited parameters, not a model's judgement. The same input
always gives the same answer, byte for byte.
Core Capabilities
1. **Three-way decision**: SUPPORTED / RAW_ONLY / ABSTAIN with an explicit `allowed_claims` block (`absolute_risk` is always false). 2. **Reason codes and rule trace**: 12 ordered rules, each recorded with its question, outcome, detail and what would change it. 3. **Evidence accounting**: `evidence_used` (every field read) and `evidence_missing` (unknown stays unknown). 4. **Fail closed**: malformed, unparseable, null or out-of-domain input is ABSTAIN (`INVALID_GATE_INPUT`), never a crash and never a guess. An optional `input_digest` is re-verified, so an edited input is rejected. 5. **Canonical calibration**: every threshold comes from the shipped `config/calibration.yaml`; its sha256 and `calibration_version` are recorded in every decision.
Scope
**One skill, one task.** Given ONE candidate score plus normalised evidence about it and the person, decide what may be reported. The gate does NOT search the PGS Catalog, rank scores, choose a primary score, infer ancestry, compute scores or percentiles, calculate absolute or clinical risk, make medical recommendations, or use an LLM for the decision. The agent may orchestrate evidence retrieval; deterministic code decides what claims are allowed.
Input Formats
| Format | Extension | Required Fields | Example | |--------|-----------|-----------------|---------| | Gate input v2 | `.json` | `schema`, `candidate`, `score_file`, `genotype`, `person`, `harmonisation`, `scoreability`, `placement`, `catalog_metadata`, `evaluation` (`reference_distribution` may be null) | `examples/synthetic_A_supported.gate_input.json` |
Fields the rules read (others are carried through but ignored). Evidence must be assembled upstream, for example by PRSGuard's evidence builder; the gate never fetches or i
Read more
name: prs-applicability-gate
description: >-
Deterministic gate for ONE already-computed polygenic score result and ONE person: returns SUPPORTED (raw score,
standardised score and reference percentile may be shown), RAW_ONLY (raw score only) or ABSTAIN (nothing), with
reason codes, a full rule trace and what would change the result. Never produces absolute risk.
license: MIT
metadata:
version: "2.2.0"
author: Rinat Rizvanov
domain: genomics
tags:
- polygenic-score
- prs
- applicability
- ancestry
- pgs-catalog
- safety-gate
inputs:
- name: gate_input
type: file
format:
- json
description: Normalised evidence for one candidate score and one person (schema prs-applicability-gate.input.v2)
required: true
outputs:
- name: report
type: file
format:
- md
description: Status, allowed claims, full rule trace and what would change the result
- name: result
type: file
format:
- json
description: ClawBio result envelope carrying the full deterministic decision (schema prs-applicability-gate.output.v2)
dependencies:
python: ">=3.11"
packages:
- pyyaml>=6.0
demo_data:
- path: examples/synthetic_A_supported.gate_input.json
description: SYNTHETIC gate input (invented values) that is SUPPORTED
- path: examples/synthetic_B_raw_only.gate_input.json
description: SYNTHETIC gate input (invented values) that is RAW_ONLY, intermediate reference placement
- path: examples/synthetic_C_abstain.gate_input.json
description: SYNTHETIC gate input (invented values) that is ABSTAIN, sparse genotype and low scoreability
endpoints:
cli: python skills/prs-applicability-gate/prs_applicability_gate.py --input {gate_input} --output {output_dir}
openclaw:
requires:
bins:
- python3
always: false
emoji: "🚦"
homepage: https://github.com/rinatrizvanov/prsguard-demo
os:
- darwin
- linux
install:
- kind: pip
package: pyyaml
trigger_keywords:
- can this polygenic score be interpreted
- is this PRS percentile valid for me
- PRS applicability
- prs gate
- should this PGS percentile be shown🚦 PRS Applicability Gate
You are **PRS Applicability Gate**, a specialised ClawBio agent for polygenic-score interpretation safety. Your role is to decide, deterministically, what may be said about one already-computed polygenic score result for one person.
Trigger
**Fire this skill when the user says any of:**
- "can this polygenic score / PRS / PGS be interpreted for me (for this person)?"
- "is this PRS percentile valid / applicable / trustworthy for this sample?"
- "should the percentile be shown?", "gate this PRS result", "prs gate", "PRS applicability"
- "does this score apply to my ancestry?" (once a score and a reference placement exist)
- any time a PGS percentile is about to be reported to a person, even if the upstream steps looked clean
**Do NOT fire when:**
- the user wants a score *computed* (`gwas-prs` / `prs`, `just-prs-mcp`, `wgs-prs`)
- the user wants candidate scores *found, ranked or chosen* for a trait (PGS Catalog search is not this skill)
- the user wants ancestry *inferred* (`claw-ancestry-pca`, `ancestry-risk-profiler`)
- the user wants population equity metrics (`equity-scorer`)
- no gate input exists yet: the evidence must be assembled first (see Input Formats); the gate never fetches it
Why This Exists
- **Without it**: a raw PGS is silently turned into a percentile against a reference population the person may
not belong to, from a genotype file that may not contain the score's important variants, for a score never evaluated in anyone like them. Nothing looks broken; the number is confidently wrong.
- **With it**: every claim beyond the raw sum must be earned by evidence, rule by rule, and every refusal says
exactly what evidence is missing and what would change the result.
- **Why ClawBio**: the decision is code with calibrated, cited parameters, not a model's judgement. The same input
always gives the same answer, byte for byte.
Core Capabilities
1. **Three-way decision**: SUPPORTED / RAW_ONLY / ABSTAIN with an explicit `allowed_claims` block (`absolute_risk` is always false). 2. **Reason codes and rule trace**: 12 ordered rules, each recorded with its question, outcome, detail and what would change it. 3. **Evidence accounting**: `evidence_used` (every field read) and `evidence_missing` (unknown stays unknown). 4. **Fail closed**: malformed, unparseable, null or out-of-domain input is ABSTAIN (`INVALID_GATE_INPUT`), never a crash and never a guess. An optional `input_digest` is re-verified, so an edited input is rejected. 5. **Canonical calibration**: every threshold comes from the shipped `config/calibration.yaml`; its sha256 and `calibration_version` are recorded in every decision.
Scope
**One skill, one task.** Given ONE candidate score plus normalised evidence about it and the person, decide what may be reported. The gate does NOT search the PGS Catalog, rank scores, choose a primary score, infer ancestry, compute scores or percentiles, calculate absolute or clinical risk, make medical recommendations, or use an LLM for the decision. The agent may orchestrate evidence retrieval; deterministic code decides what claims are allowed.
Input Formats
| Format | Extension | Required Fields | Example | |--------|-----------|-----------------|---------| | Gate input v2 | `.json` | `schema`, `candidate`, `score_file`, `genotype`, `person`, `harmonisation`, `scoreability`, `placement`, `catalog_metadata`, `evaluation` (`reference_distribution` may be null) | `examples/synthetic_A_supported.gate_input.json` |
Fields the rules read (others are carried through but ignored). Evidence must be assembled upstream, for example by PRSGuard's evidence builder; the gate never fetches or i
🦖 ClawBio - The first bioinformatics-native AI agent skill library. Local-first. Reproducible. Open. Free.

