Skip to content
dismech-compliance logo

Dismech Compliance Analysis Skill

dismech-compliance

Skill for analyzing and improving compliance in the dismech knowledge base. Use this skill when checking disorder file completeness, identifying missing fields (ontology terms, evidence, descriptions), understanding weighted priority scoring, and systematically improving knowledge base coverage.

mattnigh/skills_collection0installs24stars

SKILL.md

Full skill instructions

Dismech Compliance Analysis Skill

Overview

Analyze and improve the completeness of disorder YAML files in the dismech knowledge base. The compliance system checks for recommended fields (ontology terms, evidence items, descriptions) and generates scores to identify priority curation targets.

When to Use

  • Running compliance checks on disorder files
  • Identifying missing recommended fields
  • Understanding which files need the most curation work
  • Improving overall knowledge base quality
  • Generating compliance dashboards and reports
  • Understanding field priority (weighted scoring)

Key Commands

Analyze Single File

just compliance kb/​disorders/​Asthma.yaml

Output includes:

  • Global Compliance: Percentage of recommended fields populated
  • Weighted Compliance: Score adjusted by field importance
  • Summary by Slot: Compliance grouped by field type (term, evidence, description)
  • Aggregated Scores by List Path: Breakdown for nested structures
  • Detailed Path Scores: Individual field status (OK/​MISSING)

Analyze All Files

just compliance-all

Multi-file report showing:

  • Overall knowledge base compliance
  • Per-path compliance across all files
  • Quick identification of systematically missing fields

Weighted Analysis with Thresholds

just compliance-weighted

Uses conf/​qc_config.yaml to:

  • Apply importance weights to different fields
  • Flag violations where compliance falls below minimum thresholds
  • Prioritize critical fields (phenotype terms, cell types, disease terms)

Generate Reports

# CSV format for spreadsheet analysis
just compliance-csv

# JSON format for programmatic processing
just compliance-report

Generate Visual Dashboard

just gen-dashboard

Creates dashboard/​index.html with:

  • Interactive charts showing compliance distribution
  • Priority curation targets (10 lowest-scoring files)
  • Trend analysis across the knowledge base

Understanding Compliance Scores

Global vs Weighted Compliance

MetricDescription
Global ComplianceSimple percentage: populated fields / total recommended fields
Weighted ComplianceAdjusted by field importance from conf/​qc_config.yaml

Field Weights (from qc_config.yaml)

FieldWeightMin ThresholdWhy
disease_term.term5.095%Root disease identity - always required
phenotypes[].phenotype_term.term3.090%Core clinical data
pathophysiology[].cell_types[].term3.085%Mechanistic understanding
treatments[].treatment_term.term2.580%Clinical relevance
term (general)2.080%All ontology bindings
pathophysiology[].evidence2.080%Scientific backing
evidence (general)1.5-Valuable but not always required
description0.5-Nice-to-have context

Compliance Status Values

StatusMeaning
OKField is populated
MISSINGRecommended field is empty/​absent

Improving Compliance

Priority Order

Address fields in this priority order based on weights:

  1. disease_term.term (weight 5.0) - Add MONDO term for the disease
  2. phenotypes[].phenotype_term.term (weight 3.0) - Add HPO terms to phenotypes
  3. pathophysiology[].cell_types[].term (weight 3.0) - Add CL terms to cell types
  4. treatments[].treatment_term.term (weight 2.5) - Add MAXO terms to treatments
  5. pathophysiology[].evidence (weight 2.0) - Add PMID-backed evidence
  6. General descriptions (weight 0.5) - Add explanatory text

Common Fixes

Missing disease_term.term
disease_term:
  preferred_term: Asthma
  term:
    id: MONDO:0004979
    label: asthma

Look up: uv run runoak -i sqlite:obo:mondo info "asthma"

Missing phenotype_term.term
phenotypes:
- name: Wheezing
  phenotype_term:
    preferred_term: Wheezing
    term:
      id: HP:0030828
      label: Wheezing

Look up: uv run runoak -i sqlite:obo:hp info "l~wheezing"

Missing cell_types[].term
cell_types:
- preferred_term: Mast cells
  term:
    id: CL:0000097
    label: mast cell

Look up: uv run runoak -i sqlite:obo:cl info "l~mast cell"

Missing treatment_term.term
treatments:
- name: Inhaled corticosteroids
  treatment_term:
    preferred_term: corticosteroid therapy
    term:
      id: MAXO:0000653
      label: corticosteroid therapy

Look up: uv run runoak -i sqlite:obo:maxo search "corticosteroid"

Missing evidence
evidence:
  - reference: PMID:12345678
    supports: SUPPORT
    snippet: "Exact quote from abstract"
    explanation: "Why this supports the claim"

Batch Improvement Workflow

1. Identify Lowest-Scoring Files

just gen-dashboard
# Check dashboard/​index.html for "Priority Curation Targets"

Or use compliance-all and sort:

just compliance-report | jq -r '.files | sort_by(.weighted_compliance) | .[:10] | .[].file'

2. Check Threshold Violations

just compliance-weighted 2>&1 | grep "VIOLATION"

3. Systematic Field Addition

For systematically missing fields across many files:

import yaml
import glob

# Example: Find files missing disease_term.term
for f in glob.glob("kb/​disorders/​*.yaml"):
    with open(f) as file:
        data = yaml.safe_load(file)
    dt = data.get('disease_term', {})
    if not dt.get('term'):
        print(f"{f}: missing disease_term.term")

4. Validate After Changes

# Schema validation
just validate kb/​disorders/​MyDisease.yaml

# Term validation (labels match ontology)
just validate-terms-file kb/​disorders/​MyDisease.yaml

# Re-check compliance
just compliance kb/​disorders/​MyDisease.yaml

Configuration

qc_config.yaml Structure

# Default for unconfigured fields
default_weight: 1.0
default_min_compliance: null

# Per-slot config (applies everywhere that slot appears)
slots:
  term:
    weight: 2.0
    min_compliance: 80.0

# Per-path config (overrides slot config for specific locations)
paths:
  "phenotypes[].phenotype_term.term":
    weight: 3.0
    min_compliance: 90.0

Customizing Weights

Edit conf/​qc_config.yaml to:

  • Increase weight for critical fields in your workflow
  • Set min_compliance thresholds to enforce standards
  • Add new paths for specific validation requirements

Integration with Other Skills

  • Use dismech-terms skill when adding ontology term bindings
  • Use dismech-references skill when adding evidence items
  • Run just qc after improvements for full validation

Troubleshooting

"Weighted Compliance" differs significantly from "Global Compliance"

This indicates your important fields (high weight) have different coverage than low-priority fields. Focus on improving high-weight fields first.

Many MISSING descriptions

Descriptions have low weight (0.5) and no minimum threshold. Address these last, or not at all if not needed.

Threshold violations blocking CI

Check conf/​qc_config.yaml for min_compliance settings. Either:

  1. Improve the field coverage to meet the threshold
  2. Lower the threshold if it's too aggressive

Dashboard not generating

Ensure the dashboard directory exists and you have write permissions:

mkdir -p dashboard
just gen-dashboard

More skills from mattnigh

spring-framework-patterns logo
mattnigh/skills_collection

spring-framework-patterns

Comprehensive Spring Framework and Spring Boot best practices including dependency injection patterns, bean lifecycle and scopes, REST API development, Spring Data JPA, service layer design, Spring Security, testing strategies, caching, AOP, async processing, error handling, and common anti-patte...

24 0
View

TypeScript厳格モードによる型安全性設計を専門とするスキル。 📖 参照書籍: - 『Effective TypeScript』(Dan Vanderkam): 型設計 📚 リソース参照: - `resources/Level1_basics.md`: レベル1の基礎ガイド - `resources/Level2_intermediate.md`: レベル2の実務ガイド - `resources/Level3_advanced.md`: レベル3の応用ガイド - `resources/Level4_expert.md`: レベル4の専門ガイド - `resources/di...

24 0
View
deploying-cloud-k8s logo
mattnigh/skills_collection

deploying-cloud-k8s

Deploys applications to cloud Kubernetes (AKS/GKE/DOKS) with CI/CD pipelines. Use when deploying to production, setting up GitHub Actions, troubleshooting deployments. Covers build-time vs runtime vars, architecture matching, and battle-tested debugging.

24 0
View
moai-alfred-agent-guide logo
mattnigh/skills_collection

moai-alfred-agent-guide

19-agent team structure, decision trees for agent selection, Haiku vs Sonnet model selection, and agent collaboration principles. Use when deciding which sub-agent to invoke, understanding team responsibilities, or learning multi-agent orchestration.

24 0
View
mermaid-diagram-generator logo
mattnigh/skills_collection

mermaid-diagram-generator

Converts architecture descriptions, module specs, or workflow docs into Mermaid diagrams. Use when visualizing brick module relationships, workflows (DDD, investigation), or system architecture. Supports: flowcharts, sequence diagrams, class diagrams, state machines, entity relationship diagrams,...

24 0
View
pre-flight-check logo
mattnigh/skills_collection

pre-flight-check

INVOKE FIRST before any code work. Validates git workflow (branch, issue, worklog) and checks approach. Use at START of every task and END before completing. Prevents skipped steps.

24 0
View
browser-dev-tools logo
mattnigh/skills_collection

browser-dev-tools

This skill should be used when working with browser-rendered artifacts (i.e. Bun, React/React Native) to proactively validate that development work on localhost is being built appropriately and to support debugging browser-rendered content. Use this skill after making frontend changes to verify t...

24 0
View
lead-dev logo
mattnigh/skills_collection

lead-dev

Lead Développeur - Coordination technique opérationnelle, code review, mentoring et livraison. Pair de web-dev-process au niveau OPÉRATIONS.

24 0
View
worker-monitor logo
mattnigh/skills_collection

worker-monitor

Monitor Docker workers, RQ queue health, and auto-scale workers (max 4). Use when: checking job progress, monitoring queue depth, scaling workers up/down, diagnosing slow processing, or waiting for jobs to complete. Referenced by data-quality skill during reprocessing.

24 0
View
quality-advisor logo
mattnigh/skills_collection

quality-advisor

Proactive quality guidance system that monitors artifact creation and provides real-time feedback on documentation quality

24 0
View
bump-version logo
mattnigh/skills_collection

bump-version

This skill should be used when the user wants to bump the version number in the workspace. It updates versions across all pyproject.toml files (root, tde, and tda packages) and the CHANGELOG.md to keep them synchronized.

24 0
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View