instrument-data-to-allotrope

Warn

Audited by Runlayer on Feb 23, 2026

Risk Level: MEDIUM
Scan Summary
Max Score
78%
Files
11
Flagged
11
Chunks
20
Flagged Files (11)
LICENSE.txtHIGH
78.3%

Malicious tool definition detected

Tool: LICENSE.txt [1/2] Description: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1.

Tool: LICENSE.txt [2/2] Description: this License.

SKILL.mdHIGH
78.3%

Malicious tool definition detected

Tool: SKILL.md [1/2] Description: --- name: instrument-data-to-allotrope description: Convert laboratory instrument output files (PDF, CSV, Excel, TXT) to Allotrope Simple Model (ASM) JSON format or flattened 2D CSV.

Tool: SKILL.md [2/2] Description: Lowercase detection types | Use "Absorbance" not "absorbance" | | "emission wavelength setting" | Use "detector wavelength setting" for emission | | All measurements in one document | Group by well/sample location | | Missing procedure metadata | Extract ALL device settings per measurement | ## Code Export for Data Engineers Generate standalone Python scripts that scientists can hand off: ```python # Export parser code python scripts/export_parser.py --input "da

references/asm_schema_overview.mdHIGH
78.3%

Malicious tool definition detected

Tool: references/asm_schema_overview.md Description: # ASM Schema Overview The Allotrope Simple Model (ASM) is a JSON-based standard for representing laboratory instrument data with semantic consistency.

references/field_classification_guide.mdHIGH
78.3%

Malicious tool definition detected

Tool: references/field_classification_guide.md [1/3] Description: # Field Classification Guide This guide helps classify instrument data fields into the correct ASM document locations.

Tool: references/field_classification_guide.md [2/3] Description: "jsmith" | | Reviewer | (custom or extension) | "Pending" | **Rule:** Analyst goes at the technique-document level, not in individual measurements.

Tool: references/field_classification_guide.md [3/3] Description: "2", "source well plate identifier": "96WP001", "destination well plate identifier": "96WP002" }, "aspiration volume": {"value": 26, "unit": "μL"}, "transfer volume": {"value": 26, "unit": "μL"} } ``` **Pairing logic:** 1.

references/flattening_guide.mdHIGH
78.3%

Malicious tool definition detected

Tool: references/flattening_guide.md Description: # Flattening ASM to 2D CSV Converting hierarchical ASM JSON to flat 2D tables for LIMS import, spreadsheet analysis, or data engineering pipelines.

references/supported_instruments.mdHIGH
78.3%

Malicious tool definition detected

Tool: references/supported_instruments.md Description: # Supported Instruments ## What Can This Skill Convert?

requirements.txtHIGH
78.3%

Malicious tool definition detected

Tool: requirements.txt Description: # Instrument Data to Allotrope Skill - Pinned Dependencies # # These versions are pinned for reproducibility and determinism.

scripts/convert_to_asm.pyHIGH
78.3%

Malicious tool definition detected

Tool: scripts/convert_to_asm.py [1/2] Description: #!/usr/bin/env python3 """ Instrument Data to ASM Converter Converts laboratory instrument output files to Allotrope Simple Model (ASM) JSON format.

Tool: scripts/convert_to_asm.py [2/2] Description: in df.iterrows(): meas = {} for col in df.columns: value = row[col] if pd.notna(value): # Clean column name clean_col = str(col).lower().replace(" ", "-").replace("_", "-") clean_col = re.sub(r"[^a-z0-9-]", "", clean_col) # Handle numeric values if isinstance(value, (int, float)): meas[clean_col] = {"value": value, "unit": "(unitless)"} else: meas[clean_col] = str(value) if meas: measurements.append(meas) return asm def main(): """Main entry poi

scripts/export_parser.pyHIGH
78.3%

Malicious tool definition detected

Tool: scripts/export_parser.py [1/2] Description: #!/usr/bin/env python3 """ Export Parser Code Generates standalone Python scripts that can be handed off to data engineers or run in Jupyter notebooks.

Tool: scripts/export_parser.py [2/2]

scripts/flatten_asm.pyHIGH
78.3%

Malicious tool definition detected

Tool: scripts/flatten_asm.py Description: #!/usr/bin/env python3 """ Flatten ASM JSON to 2D CSV Converts hierarchical Allotrope Simple Model (ASM) JSON to flat tabular format suitable for LIMS import, spreadsheet analysis, or database loading.

scripts/validate_asm.pyHIGH
78.3%

Malicious tool definition detected

Tool: scripts/validate_asm.py [1/4] Description: #!/usr/bin/env python3 """ ASM Output Validation Script Validates ASM JSON output against common issues: - Wrong technique selection - Hyphenated field names (should be space-separated) - Missing statistics documents - Incorrect units - Missing required fields - Missing calculated data traceability - Improperly flattened nested documents (sample document, device control, etc.) Validation Rules: Based on: Allotrope ASM specification (December 2024)

Tool: scripts/validate_asm.py [2/4] Description: missing vocabulary or contexts") def detect_technique(asm: Dict) -> Tuple[str, float]: """Detect technique from ASM structure.""" # Check for technique in top-level keys for key in asm.keys(): if key == "$asm.manifest": continue # Extract technique name from aggregate document key # Handle both "liquid handler aggregate document" and "liquid-handler-aggregate-document" key_normalized = key.lower().replace("-", " ") if "aggregate document" in key_n

Tool: scripts/validate_asm.py [3/4] Description: f"Found {calculated_ids} calculated data entries but no data source identifiers - " "each calculated value should reference its source" ) # ============================================================================= # NEW: NESTED DOCUMENT STRUCTURE VALIDATION # ============================================================================= def validate_nested_document_structure( asm: Dict, content_str: str, result: ValidationResult ): """ Validate

Tool: scripts/validate_asm.py [4/4]

Audit Metadata
Max File Score
78%
Classification
UNKNOWN_SERVER
Files Scanned
11
Files Flagged
11
Chunks Analyzed
20
Analyzed
Feb 23, 2026, 02:11 PM
Security Audit — runlayer — instrument-data-to-allotrope