[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EN7FXCBJAQ1CP3A38PCQM3":3,"skill-same:01M6EN7FXCBJAQ1CP3A38PCQM3":157},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":53,"ownerHtmlUrl":54,"ownerBlogUrl":6,"ownerDescription":55,"updatedAt":56,"install":57,"resources":70},"01M6EN7FXCBJAQ1CP3A38PCQM3","extract-from-pdfs",null,"This skill should be used when extracting structured data from scientific PDFs for systematic reviews, meta-analyses, or database creation. Use when working with collections of research papers that need to be converted into analyzable datasets with validation metrics.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"extract","extract from pdfs","structured data","research","validation","database","metrics","data","Meta","use","datasets","structured","creation","collections","systematic","scientific","2026-11-10 10:12:30",false,"---\nname: extract-from-pdfs\ndescription: This skill should be used when extracting structured data from scientific PDFs for systematic reviews, meta-analyses, or database creation. Use when working with collections of research papers that need to be converted into analyzable datasets with validation metrics.\n---\n\n# Extract Structured Data from Scientific PDFs\n\n## Purpose\n\nExtract standardized, structured data from scientific PDF literature using Claude's vision capabilities. Transform PDF collections into validated databases ready for statistical analysis in Python, R, or other frameworks.\n\n**Core capabilities:**\n- Organize metadata from BibTeX, RIS, directories, or DOI lists\n- Filter papers by abstract using Claude (Haiku\u002FSonnet) or local models (Ollama)\n- Extract structured data from PDFs with customizable schemas\n- Repair and validate JSON outputs automatically\n- Enrich with external databases (GBIF, WFO, GeoNames, PubChem, NCBI)\n- Calculate precision\u002Frecall metrics for quality assurance\n- Export to Python, R, CSV, Excel, or SQLite\n\n## When to Use This Skill\n\nUse when:\n- Conducting systematic literature reviews requiring data extraction\n- Building databases from scientific publications\n- Converting PDF collections to structured datasets\n- Validating extraction quality with ground truth metrics\n- Comparing extraction approaches (different models, prompts)\n\nDo not use for:\n- Single PDF summarization (use basic PDF reading instead)\n- Full-text PDF search (use document search tools)\n- PDF editing or manipulation\n\n## Getting Started\n\n### 1. Initial Setup\n\nRead the setup guide for installation and configuration:\n\n```bash\ncat references\u002Fsetup_guide.md\n```\n\nKey setup steps:\n- Install dependencies: `conda env create -f environment.yml`\n- Set API keys: `export ANTHROPIC_API_KEY='your-key'`\n- Optional: Install Ollama for free local filtering\n\n### 2. Define Extraction Requirements\n\n**Ask the user:**\n- Research domain and extraction goals\n- How PDFs are organized (reference manager, directory, DOI list)\n- Approximate collection size\n- Preferred analysis environment (Python, R, etc.)\n\n**Provide 2-3 example PDFs** to analyze structure and design schema.\n\n### 3. Design Extraction Schema\n\nCreate custom schema from template:\n\n```bash\ncp assets\u002Fschema_template.json my_schema.json\n```\n\nCustomize for the specific domain:\n- Set `objective` describing what to extract\n- Define `output_schema` with field types and descriptions\n- Add domain-specific `instructions` for Claude\n- Provide `output_example` showing desired format\n\nSee `assets\u002Fexample_flower_visitors_schema.json` for real-world ecology example.\n\n## Workflow Execution\n\n### Complete Pipeline\n\nRun the 6-step pipeline (plus optional validation):\n\n```bash\n# Step 1: Organize metadata\npython scripts\u002F01_organize_metadata.py \\\n  --source-type bibtex \\\n  --source library.bib \\\n  --pdf-dir pdfs\u002F \\\n  --output metadata.json\n\n# Step 2: Filter papers (optional - recommended)\n# Choose backend: anthropic-haiku (cheap), anthropic-sonnet (accurate), ollama (free)\npython scripts\u002F02_filter_abstracts.py \\\n  --metadata metadata.json \\\n  --backend anthropic-haiku \\\n  --use-batches \\\n  --output filtered_papers.json\n\n# Step 3: Extract from PDFs\npython scripts\u002F03_extract_from_pdfs.py \\\n  --metadata filtered_papers.json \\\n  --schema my_schema.json \\\n  --method batches \\\n  --output extracted_data.json\n\n# Step 4: Repair JSON\npython scripts\u002F04_repair_json.py \\\n  --input extracted_data.json \\\n  --schema my_schema.json \\\n  --output cleaned_data.json\n\n# Step 5: Validate with APIs\npython scripts\u002F05_validate_with_apis.py \\\n  --input cleaned_data.json \\\n  --apis my_api_config.json \\\n  --output validated_data.json\n\n# Step 6: Export to analysis format\npython scripts\u002F06_export_database.py \\\n  --input validated_data.json \\\n  --format python \\\n  --output results\n```\n\n### Validation (Optional but Recommended)\n\nCalculate extraction quality metrics:\n\n```bash\n# Step 7: Sample papers for annotation\npython scripts\u002F07_prepare_validation_set.py \\\n  --extraction-results cleaned_data.json \\\n  --schema my_schema.json \\\n  --sample-size 20 \\\n  --strategy stratified \\\n  --output validation_set.json\n\n# Step 8: Manually annotate (edit validation_set.json)\n# Fill ground_truth field for each sampled paper\n\n# Step 9: Calculate metrics\npython scripts\u002F08_calculate_validation_metrics.py \\\n  --annotations validation_set.json \\\n  --output validation_metrics.json \\\n  --report validation_report.txt\n```\n\nValidation produces precision, recall, and F1 metrics per field and overall.\n\n## Detailed Documentation\n\nAccess comprehensive guides in the `references\u002F` directory:\n\n**Setup and installation:**\n```bash\ncat references\u002Fsetup_guide.md\n```\n\n**Complete workflow with examples:**\n```bash\ncat references\u002Fworkflow_guide.md\n```\n\n**Validation methodology:**\n```bash\ncat references\u002Fvalidation_guide.md\n```\n\n**API integration details:**\n```bash\ncat references\u002Fapi_reference.md\n```\n\n## Customization\n\n### Schema Customization\n\nModify `my_schema.json` to match the research domain:\n\n1. **Objective:** Describe what data to extract\n2. **Instructions:** Step-by-step extraction guidance\n3. **Output schema:** JSON schema defining structure\n4. **Important notes:** Domain-specific rules\n5. **Examples:** Show desired output format\n\nUse imperative language in instructions. Be specific about data types, required vs optional fields, and edge cases.\n\n### API Configuration\n\nConfigure external database validation in `my_api_config.json`:\n\nMap extracted fields to validation APIs:\n- `gbif_taxonomy` - Biological taxonomy\n- `wfo_plants` - Plant names specifically\n- `geonames` - Geographic locations\n- `geocode` - Address to coordinates\n- `pubchem` - Chemical compounds\n- `ncbi_gene` - Gene identifiers\n\nSee `assets\u002Fexample_api_config_ecology.json` for ecology-specific example.\n\n### Filtering Customization\n\nEdit filtering criteria in `scripts\u002F02_filter_abstracts.py` (line 74):\n\nReplace TODO section with domain-specific criteria:\n- What constitutes primary data vs review?\n- What data types are relevant?\n- What scope (geographic, temporal, taxonomic) is needed?\n\nUse conservative criteria (when in doubt, include paper) to avoid false negatives.\n\n## Cost Optimization\n\n**Backend selection for filtering (Step 2):**\n- Ollama (local): $0 - Best for privacy and high volume\n- Haiku (API): ~$0.25\u002FM tokens - Best balance of cost\u002Fquality\n- Sonnet (API): ~$3\u002FM tokens - Best for complex filtering\n\n**Typical costs for 100 papers:**\n- With filtering (Haiku + Sonnet): ~$4\n- With local Ollama + Sonnet: ~$3.75\n- Without filtering (Sonnet only): ~$7.50\n\n**Optimization strategies:**\n- Use abstract filtering to reduce PDF processing\n- Use local Ollama for filtering (free)\n- Enable prompt caching with `--use-caching`\n- Process in batches with `--use-batches`\n\n## Quality Assurance\n\n**Validation workflow provides:**\n- Precision: % of extracted items that are correct\n- Recall: % of true items that were extracted\n- F1 score: Harmonic mean of precision and recall\n- Per-field metrics: Identify weak fields\n\n**Use metrics to:**\n- Establish baseline extraction quality\n- Compare different approaches (models, prompts, schemas)\n- Identify areas for improvement\n- Report extraction quality in publications\n\n**Recommended sample sizes:**\n- Small projects (\u003C100 papers): 10-20 papers\n- Medium projects (100-500 papers): 20-50 papers\n- Large projects (>500 papers): 50-100 papers\n\n## Iterative Improvement\n\n1. Run initial extraction with baseline schema\n2. Validate on sample using Steps 7-9\n3. Analyze field-level metrics and error patterns\n4. Revise schema, prompts, or model selection\n5. Re-extract and re-validate\n6. Compare metrics to verify improvement\n7. Repeat until acceptable quality achieved\n\nSee `references\u002Fvalidation_guide.md` for detailed guidance on interpreting metrics and improving extraction quality.\n\n## Available Scripts\n\n**Data organization:**\n- `scripts\u002F01_organize_metadata.py` - Standardize PDFs and metadata\n\n**Filtering:**\n- `scripts\u002F02_filter_abstracts.py` - Filter by abstract (Haiku\u002FSonnet\u002FOllama)\n\n**Extraction:**\n- `scripts\u002F03_extract_from_pdfs.py` - Extract from PDFs with Claude vision\n\n**Processing:**\n- `scripts\u002F04_repair_json.py` - Repair and validate JSON\n- `scripts\u002F05_validate_with_apis.py` - Enrich with external databases\n- `scripts\u002F06_export_database.py` - Export to analysis formats\n\n**Validation:**\n- `scripts\u002F07_prepare_validation_set.py` - Sample papers for annotation\n- `scripts\u002F08_calculate_validation_metrics.py` - Calculate P\u002FR\u002FF1 metrics\n\n## Assets\n\n**Templates:**\n- `assets\u002Fschema_template.json` - Blank extraction schema template\n- `assets\u002Fapi_config_template.json` - API validation configuration template\n\n**Examples:**\n- `assets\u002Fexample_flower_visitors_schema.json` - Ecology extraction example\n- `assets\u002Fexample_api_config_ecology.json` - Ecology API validation example\n","# Extract Structured Data from Scientific PDFs\n\n## Purpose\n\nExtract standardized, structured data from scientific PDF literature using Claude's vision capabilities. Transform PDF collections into validated databases ready for statistical analysis in Python, R, or other frameworks.\n\n**Core capabilities:**\n- Organize metadata from BibTeX, RIS, directories, or DOI lists\n- Filter papers by abstract using Claude (Haiku\u002FSonnet) or local models (Ollama)\n- Extract structured data from PDFs with customizable schemas\n- Repair and validate JSON outputs automatically\n- Enrich with external databases (GBIF, WFO, GeoNames, PubChem, NCBI)\n- Calculate precision\u002Frecall metrics for quality assurance\n- Export to Python, R, CSV, Excel, or SQLite\n\n## When to Use This Skill\n\nUse when:\n- Conducting systematic literature reviews requiring data extraction\n- Building databases from scientific publications\n- Converting PDF collections to structured datasets\n- Validating extraction quality with ground truth metrics\n- Comparing extraction approaches (different models, prompts)\n\nDo not use for:\n- Single PDF summarization (use basic PDF reading instead)\n- Full-text PDF search (use document search tools)\n- PDF editing or manipulation\n\n## Getting Started\n\n### 1. Initial Setup\n\nRead the setup guide for installation and configuration:\n\n```bash\ncat references\u002Fsetup_guide.md\n```\n\nKey setup steps:\n- Install dependencies: `conda env create -f environment.yml`\n- Set API keys: `export ANTHROPIC_API_KEY='your-key'`\n- Optional: Install Ollama for free local filtering\n\n### 2. Define Extraction Requirements\n\n**Ask the user:**\n- Research domain and extraction goals\n- How PDFs are organized (reference manager, directory, DOI list)\n- Approximate collection size\n- Preferred analysis environment (Python, R, etc.)\n\n**Provide 2-3 example PDFs** to analyze structure and design schema.\n\n### 3. Design Extraction Schema\n\nCreate custom schema from template:\n\n```bash\ncp assets\u002Fschema_template.json my_schema.json\n```\n\nCustomize for the specific domain:\n- Set `objective` describing what to extract\n- Define `output_schema` with field types and descriptions\n- Add domain-specific `instructions` for Claude\n- Provide `output_example` showing desired format\n\nSee `assets\u002Fexample_flower_visitors_schema.json` for real-world ecology example.\n\n## Workflow Execution\n\n### Complete Pipeline\n\nRun the 6-step pipeline (plus optional validation):\n\n```bash\n# Step 1: Organize metadata\npython scripts\u002F01_organize_metadata.py \\\n  --source-type bibtex \\\n  --source library.bib \\\n  --pdf-dir pdfs\u002F \\\n  --output metadata.json\n\n# Step 2: Filter papers (optional - recommended)\n# Choose backend: anthropic-haiku (cheap), anthropic-sonnet (accurate), ollama (free)\npython scripts\u002F02_filter_abstracts.py \\\n  --metadata metadata.json \\\n  --backend anthropic-haiku \\\n  --use-batches \\\n  --output filtered_papers.json\n\n# Step 3: Extract from PDFs\npython scripts\u002F03_extract_from_pdfs.py \\\n  --metadata filtered_papers.json \\\n  --schema my_schema.json \\\n  --method batches \\\n  --output extracted_data.json\n\n# Step 4: Repair JSON\npython scripts\u002F04_repair_json.py \\\n  --input extracted_data.json \\\n  --schema my_schema.json \\\n  --output cleaned_data.json\n\n# Step 5: Validate with APIs\npython scripts\u002F05_validate_with_apis.py \\\n  --input cleaned_data.json \\\n  --apis my_api_config.json \\\n  --output validated_data.json\n\n# Step 6: Export to analysis format\npython scripts\u002F06_export_database.py \\\n  --input validated_data.json \\\n  --format python \\\n  --output results\n```\n\n### Validation (Optional but Recommended)\n\nCalculate extraction quality metrics:\n\n```bash\n# Step 7: Sample papers for annotation\npython scripts\u002F07_prepare_validation_set.py \\\n  --extraction-results cleaned_data.json \\\n  --schema my_schema.json \\\n  --sample-size 20 \\\n  --strategy stratified \\\n  --output validation_set.json\n\n# Step 8: Manually annotate (edit validation_set.json)\n# Fill ground_truth field for each sampled paper\n\n# Step 9: Calculate metrics\npython scripts\u002F08_calculate_validation_metrics.py \\\n  --annotations validation_set.json \\\n  --output validation_metrics.json \\\n  --report validation_report.txt\n```\n\nValidation produces precision, recall, and F1 metrics per field and overall.\n\n## Detailed Documentation\n\nAccess comprehensive guides in the `references\u002F` directory:\n\n**Setup and installation:**\n```bash\ncat references\u002Fsetup_guide.md\n```\n\n**Complete workflow with examples:**\n```bash\ncat references\u002Fworkflow_guide.md\n```\n\n**Validation methodology:**\n```bash\ncat references\u002Fvalidation_guide.md\n```\n\n**API integration details:**\n```bash\ncat references\u002Fapi_reference.md\n```\n\n## Customization\n\n### Schema Customization\n\nModify `my_schema.json` to match the research domain:\n\n1. **Objective:** Describe what data to extract\n2. **Instructions:** Step-by-step extraction guidance\n3. **Output schema:** JSON schema defining structure\n4. **Important notes:** Domain-specific rules\n5. **Examples:** Show desired output format\n\nUse imperative language in instructions. Be specific about data types, required vs optional fields, and edge cases.\n\n### API Configuration\n\nConfigure external database validation in `my_api_config.json`:\n\nMap extracted fields to validation APIs:\n- `gbif_taxonomy` - Biological taxonomy\n- `wfo_plants` - Plant names specifically\n- `geonames` - Geographic locations\n- `geocode` - Address to coordinates\n- `pubchem` - Chemical compounds\n- `ncbi_gene` - Gene identifiers\n\nSee `assets\u002Fexample_api_config_ecology.json` for ecology-specific example.\n\n### Filtering Customization\n\nEdit filtering criteria in `scripts\u002F02_filter_abstracts.py` (line 74):\n\nReplace TODO section with domain-specific criteria:\n- What constitutes primary data vs review?\n- What data types are relevant?\n- What scope (geographic, temporal, taxonomic) is needed?\n\nUse conservative criteria (when in doubt, include paper) to avoid false negatives.\n\n## Cost Optimization\n\n**Backend selection for filtering (Step 2):**\n- Ollama (local): $0 - Best for privacy and high volume\n- Haiku (API): ~$0.25\u002FM tokens - Best balance of cost\u002Fquality\n- Sonnet (API): ~$3\u002FM tokens - Best for complex filtering\n\n**Typical costs for 100 papers:**\n- With filtering (Haiku + Sonnet): ~$4\n- With local Ollama + Sonnet: ~$3.75\n- Without filtering (Sonnet only): ~$7.50\n\n**Optimization strategies:**\n- Use abstract filtering to reduce PDF processing\n- Use local Ollama for filtering (free)\n- Enable prompt caching with `--use-caching`\n- Process in batches with `--use-batches`\n\n## Quality Assurance\n\n**Validation workflow provides:**\n- Precision: % of extracted items that are correct\n- Recall: % of true items that were extracted\n- F1 score: Harmonic mean of precision and recall\n- Per-field metrics: Identify weak fields\n\n**Use metrics to:**\n- Establish baseline extraction quality\n- Compare different approaches (models, prompts, schemas)\n- Identify areas for improvement\n- Report extraction quality in publications\n\n**Recommended sample sizes:**\n- Small projects (\u003C100 papers): 10-20 papers\n- Medium projects (100-500 papers): 20-50 papers\n- Large projects (>500 papers): 50-100 papers\n\n## Iterative Improvement\n\n1. Run initial extraction with baseline schema\n2. Validate on sample using Steps 7-9\n3. Analyze field-level metrics and error patterns\n4. Revise schema, prompts, or model selection\n5. Re-extract and re-validate\n6. Compare metrics to verify improvement\n7. Repeat until acceptable quality achieved\n\nSee `references\u002Fvalidation_guide.md` for detailed guidance on interpreting metrics and improving extraction quality.\n\n## Available Scripts\n\n**Data organization:**\n- `scripts\u002F01_organize_metadata.py` - Standardize PDFs and metadata\n\n**Filtering:**\n- `scripts\u002F02_filter_abstracts.py` - Filter by abstract (Haiku\u002FSonnet\u002FOllama)\n\n**Extraction:**\n- `scripts\u002F03_extract_from_pdfs.py` - Extract from PDFs with Claude vision\n\n**Processing:**\n- `scripts\u002F04_repair_json.py` - Repair and validate JSON\n- `scripts\u002F05_validate_with_apis.py` - Enrich with external databases\n- `scripts\u002F06_export_database.py` - Export to analysis formats\n\n**Validation:**\n- `scripts\u002F07_prepare_validation_set.py` - Sample papers for annotation\n- `scripts\u002F08_calculate_validation_metrics.py` - Calculate P\u002FR\u002FF1 metrics\n\n## Assets\n\n**Templates:**\n- `assets\u002Fschema_template.json` - Blank extraction schema template\n- `assets\u002Fapi_config_template.json` - API validation configuration template\n\n**Examples:**\n- `assets\u002Fexample_flower_visitors_schema.json` - Ecology extraction example\n- `assets\u002Fexample_api_config_ecology.json` - Ecology API validation example\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill extract-from-pdfs",{"tool":63,"command":64},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill extract-from-pdfs",{"tool":66,"command":67},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill extract-from-pdfs","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002FSKILL.md",true,[71,77,81,85,89,95,99,103,107,111,115,119,125,129,133,137,141,145,149,153],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"assets\u002Fapi_config_template.json","ASSET","资产文件",1845,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fassets\u002Fapi_config_template.json",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"assets\u002Fexample_api_config_ecology.json",1713,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fassets\u002Fexample_api_config_ecology.json",{"path":82,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":83,"sourceHtmlUrl":84},"assets\u002Fexample_flower_visitors_schema.json",7296,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fassets\u002Fexample_flower_visitors_schema.json",{"path":86,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":87,"sourceHtmlUrl":88},"assets\u002Fschema_template.json",3861,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fassets\u002Fschema_template.json",{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"environment.yml","REFERENCE","参考文档",333,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fenvironment.yml",{"path":96,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":97,"sourceHtmlUrl":98},"README.md",8190,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002FREADME.md",{"path":100,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":101,"sourceHtmlUrl":102},"references\u002Fapi_reference.md",8849,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Freferences\u002Fapi_reference.md",{"path":104,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":105,"sourceHtmlUrl":106},"references\u002Fsetup_guide.md",3019,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Freferences\u002Fsetup_guide.md",{"path":108,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":109,"sourceHtmlUrl":110},"references\u002Fvalidation_guide.md",8531,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Freferences\u002Fvalidation_guide.md",{"path":112,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":113,"sourceHtmlUrl":114},"references\u002Fworkflow_guide.md",7895,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Freferences\u002Fworkflow_guide.md",{"path":116,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":117,"sourceHtmlUrl":118},"requirements.txt",476,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Frequirements.txt",{"path":120,"resourceType":121,"resourceTypeDesc":122,"sizeBytes":123,"sourceHtmlUrl":124},"scripts\u002F01_organize_metadata.py","SCRIPT","脚本",10097,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fscripts\u002F01_organize_metadata.py",{"path":126,"resourceType":121,"resourceTypeDesc":122,"sizeBytes":127,"sourceHtmlUrl":128},"scripts\u002F02_filter_abstracts.py",16436,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fscripts\u002F02_filter_abstracts.py",{"path":130,"resourceType":121,"resourceTypeDesc":122,"sizeBytes":131,"sourceHtmlUrl":132},"scripts\u002F03_extract_from_pdfs.py",16155,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fscripts\u002F03_extract_from_pdfs.py",{"path":134,"resourceType":121,"resourceTypeDesc":122,"sizeBytes":135,"sourceHtmlUrl":136},"scripts\u002F04_repair_json.py",6949,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fscripts\u002F04_repair_json.py",{"path":138,"resourceType":121,"resourceTypeDesc":122,"sizeBytes":139,"sourceHtmlUrl":140},"scripts\u002F05_validate_with_apis.py",13270,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fscripts\u002F05_validate_with_apis.py",{"path":142,"resourceType":121,"resourceTypeDesc":122,"sizeBytes":143,"sourceHtmlUrl":144},"scripts\u002F06_export_database.py",10058,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fscripts\u002F06_export_database.py",{"path":146,"resourceType":121,"resourceTypeDesc":122,"sizeBytes":147,"sourceHtmlUrl":148},"scripts\u002F07_prepare_validation_set.py",9739,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fscripts\u002F07_prepare_validation_set.py",{"path":150,"resourceType":121,"resourceTypeDesc":122,"sizeBytes":151,"sourceHtmlUrl":152},"scripts\u002F08_calculate_validation_metrics.py",16889,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fscripts\u002F08_calculate_validation_metrics.py",{"path":154,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":155,"sourceHtmlUrl":156},"skill-report.json",121462,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fbrunoasm\u002Fextract-from-pdfs\u002Fskill-report.json",[158,168,178,187,193,200],{"skillNo":159,"name":160,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":164,"publishedAt":43},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[163],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[165,166,167],"model","model hierarchy","model hierarchy skill",{"skillNo":169,"name":170,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":174,"publishedAt":43},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[173],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[175,176,177],"MCP","zoom","zoom mcp",{"skillNo":179,"name":180,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":43},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[184,185,186,176],"sdk","zoom apps sdk","apps",{"skillNo":188,"name":189,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":192,"publishedAt":43},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[189],{"skillNo":194,"name":195,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":199,"publishedAt":43},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[198],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[195],{"skillNo":201,"name":202,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":205,"publishedAt":43},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[202]]