一键导入
create-recipe
Create new growth media or solution YAML records from input data or documents
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create new growth media or solution YAML records from input data or documents
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use this skill to quality-check CultureMech growth-media and solution recipes — verify schema/structure, MediaIngredientMech ingredient linkages and CHEBI mappings, solution references, data quality (placeholders, units, concentrations), and categorization. Use after creating/editing a recipe, before a KG export, or for periodic maintenance. Issues are graded P1 (blocking) → P4 (optional); P3/P4 can be auto-fixed.
Use this skill to manage CultureMech record identifiers — find the highest existing CultureMech id, mint the next id, and insert new media/solution records with correct id placement. Use when adding or importing recipe records, or reconciling id collisions.
Use this skill to integrate the MediaIngredientMech ingredient variant hierarchy (parent/child relationships — purity levels, hydrates, stereoisomers) into CultureMech recipe ingredient references. Use when linking recipe ingredients to their canonical MIM records or resolving variant forms.
Validate that every ontology ID carries its correct ontology LABEL across CultureMech recipe YAMLs and SSSOM mapping products. Uses LinkML schema bindings + linkml-term-validator for term.{id,label} (canonical label) and a shared OAK validator for products. Run report-then-enforce; triage drift as wrong-label vs wrong-id.
Scrape growth-medium recipes directly from the RIKEN JCM GRMD database and emit CultureMech-normalized YAML records. Use to close the gap between CultureMech's JCM coverage (originally ingested second-hand via MediaDive/TOGO) and the live JCM catalogue — e.g. when newly added high-GRMD media are missing, or to audit JCM completeness.
Generate an interactive UMAP scatter plot of CultureMech CHEBI ingredients in KG-Microbe embedding space — each point is one unique ingredient, sized by frequency and colored by occurrence tier
| name | create-recipe |
| description | Create new growth media or solution YAML records from input data or documents |
| category | workflow |
| requires_database | false |
| requires_internet | false |
| version | 1.0.0 |
Purpose: Generate properly formatted CultureMech YAML records for growth media or solutions from various input formats (text descriptions, papers, protocols, structured data).
Why: Streamlines recipe creation, ensures schema compliance, maintains data quality, and provides proper ID assignment.
Scope: Creates new MediaRecipe or Solution YAML files with full validation and proper placement.
Use this skill when you need to:
"LB Broth: Mix 10 g/L tryptone, 5 g/L yeast extract, 10 g/L NaCl in water.
Autoclave at 121°C for 15 min. pH 7.0."
{
"name": "LB Broth",
"ingredients": [
{"name": "Tryptone", "concentration": "10 g/L"},
{"name": "Yeast extract", "concentration": "5 g/L"},
{"name": "NaCl", "concentration": "10 g/L"}
],
"ph": 7.0,
"sterilization": "121°C, 15 min"
}
Your Task: Understand the input format and extract recipe information
Actions:
Example:
Input: "M9 minimal medium: Na2HPO4 (6 g/L), KH2PO4 (3 g/L), NaCl (0.5 g/L),
NH4Cl (1 g/L), glucose (4 g/L). Autoclave base salts, add sterile glucose."
Extracted:
- Name: M9 minimal medium
- Type: Defined/Minimal medium
- Ingredients: 5 components with concentrations
- Preparation: Autoclave base, add glucose separately
Your Task: Create a valid CultureMech YAML record
Required Fields:
name - Recipe namemedium_type - DEFINED, COMPLEX, SEMI_DEFINED, etc.physical_state - LIQUID, SOLID, SEMI_SOLIDingredients - List with preferred_term and concentrationTemplate:
name: Recipe Name
original_name: Recipe Name
category: bacterial # or algae, archaea, fungal, specialized
medium_type: DEFINED
physical_state: LIQUID
ingredients:
- preferred_term: Ingredient 1
concentration: 10 G_PER_L
- preferred_term: Ingredient 2
concentration: 5 G_PER_L
ph_value: 7.0
sterilization:
method: AUTOCLAVE
temperature: 121
duration: 15
notes: Standard autoclave cycle
preparation_steps:
- action: DISSOLVE
description: Dissolve all ingredients in distilled water
- action: AUTOCLAVE
description: Sterilize at 121°C for 15 minutes
notes: Additional preparation notes
curation_history:
- timestamp: CURRENT_TIME
curator: create-recipe-skill
action: Created new recipe from input
Schema Validation: Always validate against src/culturemech/schema/culturemech.yaml
Your Task: Get next available CultureMech ID
Actions:
manage-identifiers skill to find highest IDid: CultureMech:NNNNNNExample:
# Find highest ID
python scripts/find_highest_id.py --prefix CultureMech
# Output: CultureMech:015431
# Next ID: CultureMech:015432
Your Task: Choose correct category directory
Category Mapping:
bacterial/ - Bacterial growth mediaalgae/ - Algae/cyanobacteria mediaarchaea/ - Archaeal mediafungal/ - Fungal/yeast mediaspecialized/ - Cross-kingdom or specializedsolutions/ - Stock solutions (not complete media)Filename Format:
{sanitized_name}.yaml
Example: "LB Broth" → "LB_Broth.yaml"
Full Path:
data/normalized_yaml/{category}/{sanitized_name}.yaml
Your Task: Validate schema and write file
Actions:
Validation:
# Validate single file
just validate-schema data/normalized_yaml/bacterial/LB_Broth.yaml
# Validate all
just validate-recipes
Complete:
# Regenerate indexes
just generate-indexes
# File: data/normalized_yaml/bacterial/LB_Broth.yaml
id: CultureMech:015432
name: LB Broth
original_name: LB Broth
category: bacterial
medium_type: COMPLEX
physical_state: LIQUID
ingredients:
- preferred_term: Tryptone
concentration: 10 G_PER_L
- preferred_term: Yeast extract
concentration: 5 G_PER_L
- preferred_term: Sodium chloride
concentration: 10 G_PER_L
- preferred_term: Water
concentration: 1000 G_PER_L
ph_value: 7.0
sterilization:
method: AUTOCLAVE
temperature: 121
duration: 15
temperature_unit: CELSIUS
duration_unit: MINUTE
preparation_steps:
- action: DISSOLVE
description: Dissolve all ingredients in distilled water
- action: ADJUST_PH
description: Adjust pH to 7.0 if necessary
- action: AUTOCLAVE
description: Sterilize at 121°C for 15 minutes
curation_history:
- timestamp: 2026-03-15T04:30:00.000000+00:00
curator: create-recipe-skill
action: Created new recipe from text input
notes: Generated from user-provided recipe description
✅ Recipe Created Successfully
**File**: data/normalized_yaml/bacterial/LB_Broth.yaml
**ID**: CultureMech:015432
**Name**: LB Broth
**Category**: bacterial
**Ingredients**: 4 components
**Validation**: ✅ Schema valid
**Next Steps**:
1. Review the generated YAML file
2. Add source reference if available
3. Enrich with MediaIngredientMech (if desired)
4. Run quality pipeline: `just fix-all-data-quality`
Input: PDF with recipe in methods section
Process:
references fieldExample:
references:
- citation: "Smith et al. (2025). Journal of Microbiology."
doi: "10.1234/jmicro.2025.001"
notes: "Recipe described in Materials & Methods, page 3"
Input: ATCC/DSMZ medium specification
Process:
Example:
media_term:
preferred_term: ATCC Medium 1
term:
id: atcc.medium:1
name: ATCC Medium 1
target_organisms:
- preferred_term: Escherichia coli
Input: "10× PBS: 80 g NaCl, 2 g KCl, 14.4 g Na2HPO4, 2.4 g KH2PO4 per liter"
Process:
solutions/ directoryOutput Location: data/normalized_yaml/solutions/10x_PBS.yaml
Input: CSV file with multiple recipes
Process:
Before saving, verify:
Issue: Missing ingredient concentrations Solution: Mark as approximate or add data quality flag
Issue: Unclear medium type Solution: Use COMPLEX as default, add note
Issue: Multiple recipes in input Solution: Create separate files for each
Issue: Incomplete information Solution: Create with data_quality_flags and notes
After creating recipe:
# 1. Validate
just validate-schema data/normalized_yaml/bacterial/New_Recipe.yaml
# 2. Run quality pipeline
just fix-all-data-quality
# 3. Enrich (optional)
# Run MediaIngredientMech enrichment if desired
# 4. Regenerate indexes
just generate-indexes
# 5. Commit
git add data/normalized_yaml/bacterial/New_Recipe.yaml
git commit -m "Add New_Recipe medium"
Input:
Create a recipe for TSB (Tryptic Soy Broth):
- Tryptone: 17 g/L
- Soy peptone: 3 g/L
- NaCl: 5 g/L
- K2HPO4: 2.5 g/L
- Glucose: 2.5 g/L
pH 7.3, autoclave 121°C for 15 min
Output: data/normalized_yaml/bacterial/TSB.yaml with CultureMech ID
Input:
{
"name": "Nutrient Agar",
"type": "complex",
"state": "solid",
"ingredients": [
{"name": "Peptone", "amount": "5 g/L"},
{"name": "Beef extract", "amount": "3 g/L"},
{"name": "Agar", "amount": "15 g/L"}
]
}
Output: Validated YAML with proper enums and structure
Input: "Create 1 M Tris-HCl pH 8.0 stock solution"
Output: data/normalized_yaml/solutions/1M_Tris_HCl_pH8.yaml
manage-identifiers - ID assignment and managementmanage-ingredient-hierarchy - MediaIngredientMech integrationHelper scripts available:
scripts/find_highest_id.py - Get next CultureMech IDscripts/cleanup_recipe_ingredients.py - Clean duplicatesscripts/generate_recipe_indexes.py - Regenerate indexes# Full workflow
1. Parse input → Extract recipe data
2. Generate YAML → Validate against schema
3. Assign ID → Use manage-identifiers skill
4. Save file → data/normalized_yaml/{category}/{name}.yaml
5. Validate → just validate-schema {file}
6. Update indexes → just generate-indexes
Remember: Always validate against the schema and regenerate indexes after creating new recipes!