[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XGPAWAW4PE393R7E4JC4NT":3,"skill-same:01M6XGPAWAW4PE393R7E4JC4NT":71},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":14,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":56,"install":57,"resources":70},"01M6XGPAWAW4PE393R7E4JC4NT","symbolic-regression",null,"Discover governing equations from data using PySR (evolutionary symbolic regression). Physics-constrained search with dimensional analysis, custom operators, and complexity-accuracy tradeoffs. Use when you need an interpretable equation, not a black-box model.","fadrienne\u002FMyGitHub","fadrienne","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F197874571?v=4","01M6X64V8VWCRSMFZ4EPS2BWXG","Francesca Adrienne","01M6X64VD5MW4F9PHDWQKS7ZAF",0,"MIT","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fphysics\u002Fsymbolic-regression\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"Symbolic Regression","regression","black","PySR","Equation Discovery","when","custom","interpretable ml","accuracy","you","synthetic","ml","discover","physics","complexity","use","model","discovery","analysis","search","2026-11-10 10:12:30",false,"---\nname: symbolic-regression\ndescription: Discover governing equations from data using PySR (evolutionary symbolic regression). Physics-constrained search with dimensional analysis, custom operators, and complexity-accuracy tradeoffs. Use when you need an interpretable equation, not a black-box model.\ncategory: physics\nversion: 1.0.0\nauthor: Synthetic Sciences\nlicense: MIT\ntags: [Symbolic Regression, Equation Discovery, PySR, Physics, Interpretable ML]\ndependencies: [\"pysr>=0.19.0\"]\n---\n\n# Symbolic Regression (PySR)\n\n## Overview\n\nDiscover symbolic equations that fit data using PySR — a multi-population evolutionary algorithm with a Julia backend. PySR searches over the space of mathematical expressions to find equations that balance accuracy and simplicity.\n\n## When to Use\n\n- Discovering governing equations from experimental data\n- Finding conservation laws or invariants\n- Replacing black-box ML models with interpretable formulas\n- Dimensional analysis-constrained equation search\n- Validating theoretical predictions against data\n\n## Do NOT Use When\n\n- You already know the functional form (use `physics-fitting` instead)\n- Data is high-dimensional (> 5-6 input variables)\n- You need a time-series model (use `sindy` for dynamical systems)\n\n## Installation\n\nPySR requires Julia (auto-installed on first run):\n\n```bash\npip install pysr\n# First import will install Julia ~2 min\npython -c \"import pysr; pysr.install()\"\n```\n\n## Core Workflows\n\n### 1. Basic Equation Discovery\n\n```python\nimport numpy as np\nfrom pysr import PySRRegressor\n\n# Generate data from a known law (for testing)\nnp.random.seed(42)\nX = np.random.randn(100, 2)  # 2 input variables\nx1, x2 = X[:, 0], X[:, 1]\ny = 2.5 * np.sin(x1) + x2**2  # true equation\ny += 0.1 * np.random.randn(100)  # noise\n\n# Fit\nmodel = PySRRegressor(\n    niterations=40,\n    binary_operators=[\"+\", \"-\", \"*\", \"\u002F\"],\n    unary_operators=[\"sin\", \"cos\", \"exp\", \"sqrt\", \"abs\"],\n    populations=20,\n    population_size=50,\n    maxsize=25,          # max expression complexity\n    parsimony=0.0032,    # penalty for complexity\n    progress=True,\n)\nmodel.fit(X, y)\n\n# Results: Pareto front of accuracy vs complexity\nprint(model)\nprint(f\"\\nBest equation: {model.sympy()}\")\nprint(f\"Score (accuracy\u002Fcomplexity): {model.score(X, y):.4f}\")\n```\n\n### 2. Physics-Constrained Search (Dimensional Analysis)\n\n```python\n# Tell PySR about physical dimensions to constrain the search\n# Example: Kepler's 3rd law from orbital data\n# Variables: a (semi-major axis [m]), M (central mass [kg]), T (period [s])\n\nimport numpy as np\nfrom pysr import PySRRegressor\n\n# Training data: known planets\n# T^2 = (4pi^2 \u002F GM) * a^3\nfrom scipy import constants as const\nG = const.G\nM_sun = 1.989e30\n\na_data = np.array([57.9, 108.2, 149.6, 227.9, 778.6]) * 1e9  # meters\nT_data = np.array([88, 224.7, 365.2, 687, 4331]) * 86400       # seconds\n\nX = np.column_stack([a_data, np.full_like(a_data, M_sun), np.full_like(a_data, G)])\n\nmodel = PySRRegressor(\n    niterations=50,\n    binary_operators=[\"+\", \"-\", \"*\", \"\u002F\", \"^\"],\n    unary_operators=[\"sqrt\", \"square\", \"cube\"],\n    populations=30,\n    maxsize=20,\n    parsimony=0.005,\n    # Dimensional constraints (optional but powerful)\n    # variable_names=[\"a\", \"M\", \"G\"],\n)\nmodel.fit(X, T_data**2)  # Fit T^2 as function of a, M, G\n\nprint(\"Discovered equation for T²:\")\nprint(model.sympy())\n# Should find something proportional to a^3 \u002F (G * M)\n```\n\n### 3. Custom Operators for Physics\n\n```python\nmodel = PySRRegressor(\n    niterations=40,\n    binary_operators=[\"+\", \"-\", \"*\", \"\u002F\"],\n    unary_operators=[\n        \"sin\", \"cos\",\n        \"exp\", \"log\",\n        \"sqrt\", \"square\",\n        \"abs\",\n    ],\n    # Extra operators defined in Julia\n    extra_sympy_mappings={\n        \"inv\": lambda x: 1\u002Fx,\n    },\n    # Constraints on operator nesting\n    nested_constraints={\n        \"sin\": {\"sin\": 0, \"cos\": 0},   # no sin(sin(x))\n        \"cos\": {\"sin\": 0, \"cos\": 0},\n        \"exp\": {\"exp\": 0, \"log\": 0},\n        \"log\": {\"exp\": 0, \"log\": 0},\n    },\n    maxsize=30,\n    parsimony=0.003,\n)\n```\n\n### 4. Multi-Output Regression\n\n```python\n# Discover multiple equations simultaneously\n# Example: find both components of a 2D force field\n\nX = np.random.randn(200, 2)\nF_x = -X[:, 0] \u002F (X[:, 0]**2 + X[:, 1]**2)**1.5\nF_y = -X[:, 1] \u002F (X[:, 0]**2 + X[:, 1]**2)**1.5\n\n# Fit each component separately\nmodel_Fx = PySRRegressor(niterations=40, binary_operators=[\"+\", \"-\", \"*\", \"\u002F\"],\n                          unary_operators=[\"sqrt\", \"square\", \"inv(x)=1\u002Fx\"],\n                          maxsize=20)\nmodel_Fy = PySRRegressor(niterations=40, binary_operators=[\"+\", \"-\", \"*\", \"\u002F\"],\n                          unary_operators=[\"sqrt\", \"square\", \"inv(x)=1\u002Fx\"],\n                          maxsize=20)\n\nmodel_Fx.fit(X, F_x)\nmodel_Fy.fit(X, F_y)\n\nprint(f\"F_x = {model_Fx.sympy()}\")\nprint(f\"F_y = {model_Fy.sympy()}\")\n```\n\n### 5. Analyzing the Pareto Front\n\n```python\n# The Pareto front shows the tradeoff between accuracy and complexity\nimport matplotlib.pyplot as plt\n\nequations = model.equations_  # DataFrame of all equations\n\nfig, ax = plt.subplots(figsize=(10, 6))\nax.scatter(equations['complexity'], equations['loss'], c='steelblue', s=20)\n\n# Highlight Pareto-optimal equations\npareto = equations[equations['score'] > 0]\nax.scatter(pareto['complexity'], pareto['loss'], c='red', s=50,\n           zorder=5, label='Pareto front')\n\nax.set_xlabel('Complexity', fontsize=13)\nax.set_ylabel('Loss (MSE)', fontsize=13)\nax.set_yscale('log')\nax.set_title('Accuracy vs Complexity Tradeoff')\nax.legend()\nplt.savefig('pareto_front.png', dpi=150, bbox_inches='tight')\n\n# Print top equations from Pareto front\nprint(\"\\nPareto-optimal equations:\")\nfor _, row in pareto.iterrows():\n    print(f\"  Complexity {int(row['complexity']):2d}: {row['equation']:\u003C40s}  loss={row['loss']:.6f}\")\n```\n\n## Key Parameters\n\n| Parameter | Default | Description |\n|---|---|---|\n| `niterations` | 40 | Number of evolutionary iterations (more = better but slower) |\n| `populations` | 15 | Number of independent populations (parallelism) |\n| `population_size` | 33 | Size of each population |\n| `maxsize` | 20 | Maximum expression tree size (complexity limit) |\n| `parsimony` | 0.0032 | Penalty for complexity (higher = simpler equations) |\n| `binary_operators` | `[\"+\",\"-\",\"*\",\"\u002F\"]` | Allowed binary operations |\n| `unary_operators` | `[]` | Allowed unary operations (sin, cos, exp, etc.) |\n| `nested_constraints` | `{}` | Prevent operator nesting (sin(sin(x))) |\n| `deterministic` | `False` | Set `True` for reproducibility (slower) |\n| `procs` | auto | Number of parallel processes |\n\n## Tips for Physics Problems\n\n1. **Start simple**: Begin with `[\"+\", \"-\", \"*\", \"\u002F\"]` only, add `sin\u002Fcos\u002Fexp` if needed\n2. **Use parsimony**: Physics equations are usually simple. Set `parsimony=0.005-0.01`\n3. **Constrain nesting**: Prevent `sin(sin(x))` and `exp(exp(x))` with `nested_constraints`\n4. **Normalize data**: Scale variables to O(1) for better convergence\n5. **Provide enough data**: 100-1000 points is typical; more helps with noise\n6. **Check the Pareto front**: The \"best\" equation isn't always the most complex one\n7. **Validate discovered equations**: Test on held-out data and check dimensional consistency\n\n## Troubleshooting\n\n| Symptom | Fix |\n|---|---|\n| Julia installation fails | Run `python -c \"import pysr; pysr.install()\"` manually |\n| Very slow | Reduce `maxsize`, `populations`, or `niterations` |\n| Only finds constants | Data may be too noisy; increase `niterations` or clean data |\n| Overly complex equations | Increase `parsimony` (e.g., 0.01) |\n| Missing the true equation | Add the needed operators (e.g., `sin` if periodicity expected) |\n| Inconsistent results | Set `deterministic=True` and `random_state=42` |\n","# Symbolic Regression (PySR)\n\n## Overview\n\nDiscover symbolic equations that fit data using PySR — a multi-population evolutionary algorithm with a Julia backend. PySR searches over the space of mathematical expressions to find equations that balance accuracy and simplicity.\n\n## When to Use\n\n- Discovering governing equations from experimental data\n- Finding conservation laws or invariants\n- Replacing black-box ML models with interpretable formulas\n- Dimensional analysis-constrained equation search\n- Validating theoretical predictions against data\n\n## Do NOT Use When\n\n- You already know the functional form (use `physics-fitting` instead)\n- Data is high-dimensional (> 5-6 input variables)\n- You need a time-series model (use `sindy` for dynamical systems)\n\n## Installation\n\nPySR requires Julia (auto-installed on first run):\n\n```bash\npip install pysr\n# First import will install Julia ~2 min\npython -c \"import pysr; pysr.install()\"\n```\n\n## Core Workflows\n\n### 1. Basic Equation Discovery\n\n```python\nimport numpy as np\nfrom pysr import PySRRegressor\n\n# Generate data from a known law (for testing)\nnp.random.seed(42)\nX = np.random.randn(100, 2)  # 2 input variables\nx1, x2 = X[:, 0], X[:, 1]\ny = 2.5 * np.sin(x1) + x2**2  # true equation\ny += 0.1 * np.random.randn(100)  # noise\n\n# Fit\nmodel = PySRRegressor(\n    niterations=40,\n    binary_operators=[\"+\", \"-\", \"*\", \"\u002F\"],\n    unary_operators=[\"sin\", \"cos\", \"exp\", \"sqrt\", \"abs\"],\n    populations=20,\n    population_size=50,\n    maxsize=25,          # max expression complexity\n    parsimony=0.0032,    # penalty for complexity\n    progress=True,\n)\nmodel.fit(X, y)\n\n# Results: Pareto front of accuracy vs complexity\nprint(model)\nprint(f\"\\nBest equation: {model.sympy()}\")\nprint(f\"Score (accuracy\u002Fcomplexity): {model.score(X, y):.4f}\")\n```\n\n### 2. Physics-Constrained Search (Dimensional Analysis)\n\n```python\n# Tell PySR about physical dimensions to constrain the search\n# Example: Kepler's 3rd law from orbital data\n# Variables: a (semi-major axis [m]), M (central mass [kg]), T (period [s])\n\nimport numpy as np\nfrom pysr import PySRRegressor\n\n# Training data: known planets\n# T^2 = (4pi^2 \u002F GM) * a^3\nfrom scipy import constants as const\nG = const.G\nM_sun = 1.989e30\n\na_data = np.array([57.9, 108.2, 149.6, 227.9, 778.6]) * 1e9  # meters\nT_data = np.array([88, 224.7, 365.2, 687, 4331]) * 86400       # seconds\n\nX = np.column_stack([a_data, np.full_like(a_data, M_sun), np.full_like(a_data, G)])\n\nmodel = PySRRegressor(\n    niterations=50,\n    binary_operators=[\"+\", \"-\", \"*\", \"\u002F\", \"^\"],\n    unary_operators=[\"sqrt\", \"square\", \"cube\"],\n    populations=30,\n    maxsize=20,\n    parsimony=0.005,\n    # Dimensional constraints (optional but powerful)\n    # variable_names=[\"a\", \"M\", \"G\"],\n)\nmodel.fit(X, T_data**2)  # Fit T^2 as function of a, M, G\n\nprint(\"Discovered equation for T²:\")\nprint(model.sympy())\n# Should find something proportional to a^3 \u002F (G * M)\n```\n\n### 3. Custom Operators for Physics\n\n```python\nmodel = PySRRegressor(\n    niterations=40,\n    binary_operators=[\"+\", \"-\", \"*\", \"\u002F\"],\n    unary_operators=[\n        \"sin\", \"cos\",\n        \"exp\", \"log\",\n        \"sqrt\", \"square\",\n        \"abs\",\n    ],\n    # Extra operators defined in Julia\n    extra_sympy_mappings={\n        \"inv\": lambda x: 1\u002Fx,\n    },\n    # Constraints on operator nesting\n    nested_constraints={\n        \"sin\": {\"sin\": 0, \"cos\": 0},   # no sin(sin(x))\n        \"cos\": {\"sin\": 0, \"cos\": 0},\n        \"exp\": {\"exp\": 0, \"log\": 0},\n        \"log\": {\"exp\": 0, \"log\": 0},\n    },\n    maxsize=30,\n    parsimony=0.003,\n)\n```\n\n### 4. Multi-Output Regression\n\n```python\n# Discover multiple equations simultaneously\n# Example: find both components of a 2D force field\n\nX = np.random.randn(200, 2)\nF_x = -X[:, 0] \u002F (X[:, 0]**2 + X[:, 1]**2)**1.5\nF_y = -X[:, 1] \u002F (X[:, 0]**2 + X[:, 1]**2)**1.5\n\n# Fit each component separately\nmodel_Fx = PySRRegressor(niterations=40, binary_operators=[\"+\", \"-\", \"*\", \"\u002F\"],\n                          unary_operators=[\"sqrt\", \"square\", \"inv(x)=1\u002Fx\"],\n                          maxsize=20)\nmodel_Fy = PySRRegressor(niterations=40, binary_operators=[\"+\", \"-\", \"*\", \"\u002F\"],\n                          unary_operators=[\"sqrt\", \"square\", \"inv(x)=1\u002Fx\"],\n                          maxsize=20)\n\nmodel_Fx.fit(X, F_x)\nmodel_Fy.fit(X, F_y)\n\nprint(f\"F_x = {model_Fx.sympy()}\")\nprint(f\"F_y = {model_Fy.sympy()}\")\n```\n\n### 5. Analyzing the Pareto Front\n\n```python\n# The Pareto front shows the tradeoff between accuracy and complexity\nimport matplotlib.pyplot as plt\n\nequations = model.equations_  # DataFrame of all equations\n\nfig, ax = plt.subplots(figsize=(10, 6))\nax.scatter(equations['complexity'], equations['loss'], c='steelblue', s=20)\n\n# Highlight Pareto-optimal equations\npareto = equations[equations['score'] > 0]\nax.scatter(pareto['complexity'], pareto['loss'], c='red', s=50,\n           zorder=5, label='Pareto front')\n\nax.set_xlabel('Complexity', fontsize=13)\nax.set_ylabel('Loss (MSE)', fontsize=13)\nax.set_yscale('log')\nax.set_title('Accuracy vs Complexity Tradeoff')\nax.legend()\nplt.savefig('pareto_front.png', dpi=150, bbox_inches='tight')\n\n# Print top equations from Pareto front\nprint(\"\\nPareto-optimal equations:\")\nfor _, row in pareto.iterrows():\n    print(f\"  Complexity {int(row['complexity']):2d}: {row['equation']:\u003C40s}  loss={row['loss']:.6f}\")\n```\n\n## Key Parameters\n\n| Parameter | Default | Description |\n|---|---|---|\n| `niterations` | 40 | Number of evolutionary iterations (more = better but slower) |\n| `populations` | 15 | Number of independent populations (parallelism) |\n| `population_size` | 33 | Size of each population |\n| `maxsize` | 20 | Maximum expression tree size (complexity limit) |\n| `parsimony` | 0.0032 | Penalty for complexity (higher = simpler equations) |\n| `binary_operators` | `[\"+\",\"-\",\"*\",\"\u002F\"]` | Allowed binary operations |\n| `unary_operators` | `[]` | Allowed unary operations (sin, cos, exp, etc.) |\n| `nested_constraints` | `{}` | Prevent operator nesting (sin(sin(x))) |\n| `deterministic` | `False` | Set `True` for reproducibility (slower) |\n| `procs` | auto | Number of parallel processes |\n\n## Tips for Physics Problems\n\n1. **Start simple**: Begin with `[\"+\", \"-\", \"*\", \"\u002F\"]` only, add `sin\u002Fcos\u002Fexp` if needed\n2. **Use parsimony**: Physics equations are usually simple. Set `parsimony=0.005-0.01`\n3. **Constrain nesting**: Prevent `sin(sin(x))` and `exp(exp(x))` with `nested_constraints`\n4. **Normalize data**: Scale variables to O(1) for better convergence\n5. **Provide enough data**: 100-1000 points is typical; more helps with noise\n6. **Check the Pareto front**: The \"best\" equation isn't always the most complex one\n7. **Validate discovered equations**: Test on held-out data and check dimensional consistency\n\n## Troubleshooting\n\n| Symptom | Fix |\n|---|---|\n| Julia installation fails | Run `python -c \"import pysr; pysr.install()\"` manually |\n| Very slow | Reduce `maxsize`, `populations`, or `niterations` |\n| Only finds constants | Data may be too noisy; increase `niterations` or clean data |\n| Overly complex equations | Increase `parsimony` (e.g., 0.01) |\n| Missing the true equation | Add the needed operators (e.g., `sin` if periodicity expected) |\n| Inconsistent results | Set `deterministic=True` and `random_state=42` |\n",{"name":5,"tags":44,"author":47,"license":15,"version":48,"category":32,"description":7,"dependencies":49},[19,23,22,45,46],"Physics","Interpretable ML","Synthetic Sciences","1.0.0",[50],"pysr>=0.19.0","main","4aa39efd1cdab0b4657ecee16c92a92011a5b10f","openscience\u002Fbackend\u002Fcli\u002Fskills\u002Fphysics\u002Fsymbolic-regression","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub","https:\u002F\u002Fgithub.com\u002Ffadrienne","2026-10-28 00:43:09",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add fadrienne\u002FMyGitHub --skill symbolic-regression",{"tool":63,"command":64},"bunx","bunx skills add fadrienne\u002FMyGitHub --skill symbolic-regression",{"tool":66,"command":67},"pnpm","pnpm dlx skills add fadrienne\u002FMyGitHub --skill symbolic-regression","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fphysics\u002Fsymbolic-regression\u002FSKILL.md",true,[],[72,101,126,160,187,214],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":83,"publishedAt":39},"01M7167B28PK20HP7R7ZED2DY0","statistical-power","Sample size calculation, power analysis, and effect size conversion for scientific studies. Use BEFORE data collection (a priori) to determine required N, or after (post-hoc) to compute achieved power. Covers parametric tests (t-test, ANOVA, chi-square, proportions, correlation, regression), simulation-based power for complex\u002Fclustered\u002Fnested designs, and power curves. Use this skill when someone asks 'how many samples do I need', 'what is my power', 'what effect size can I detect', or any variant. Pairs with \u002Fexperimental-design (choose design first, then compute power) and \u002Fstatistical-analysis (analyze data after collection).","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fstatistical-power\u002FSKILL.md",[78],{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[84,85,86,87,20,88,89,90,24,91,92,37,93,94,95,96,97,98,99,100],"power","statistical power","effect","scipy","choose","design","uv","Bash","collection","calculation","ANOVA","conversion","analyze","t-test","chi-square","simulation","sample",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":110,"publishedAt":39},"01M71677EBCM8EPCE9BZCK8505","statistical-analysis","Guided statistical analysis with test selection and reporting. Use when you need help choosing appropriate tests for your data, assumption checking, power analysis, and APA-formatted results. Best for academic research reporting, test selection guidance. For implementing specific models programmatically use statsmodels.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fstatistical-analysis\u002FSKILL.md",[107],{"categoryNo":108,"categoryName":109,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000008","测试与质量",[37,111,84,112,113,114,24,28,115,116,117,118,34,119,120,121,122,123,124,125],"statistical analysis","academic research","implementing","selection","reporting","data","for","tests","with","test","research","results","statsmodels","models","help",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":141,"publishedAt":39},"01M71673R93XAHFH81DBNVNG7H","scientific-writing","Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA\u002FAMA\u002FVancouver), figures\u002Ftables, reporting guidelines (CONSORT\u002FSTROBE\u002FPRISMA), for research papers and journal submissions.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fscientific-writing\u002FSKILL.md",[132,135,136],{"categoryNo":133,"categoryName":134,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},{"categoryNo":137,"categoryName":138,"taxonomyType":139,"taxonomyTypeDesc":140},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[142,143,144,145,146,147,148,149,150,151,91,152,153,154,155,156,157,158,115,159],"writing","scientific","scientific writing","Citations","deep","deep research","never","papers","journal","false","api","prisma","structure","openrouter","Outlines","core skill","read","features",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":170,"publishedAt":39},"01M7166ZPKXBF4EBPHVTJPQBB1","scientific-visualization","Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib\u002Fseaborn\u002Fplotly with publication styles. For quick exploration use seaborn or plotly directly.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fscientific-visualization\u002FSKILL.md",[166,169],{"categoryNo":167,"categoryName":168,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},[171,143,172,173,174,175,176,177,178,150,24,179,180,181,182,183,184,185,117,186],"visualization","scientific visualization","error","ready","quick","exploration","meta-skill","Meta","safe","plotly","annotations","formatting","Publication","figures","panel","submission",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":199,"publishedAt":39},"01M7166VXJWQSSC3RQZP60WBGR","research-code","Debug, profile, review, and restructure Python research and analysis code. Use when analysis scripts crash, produce wrong results, run too slowly, or need a correctness review. Covers: reading tracebacks and diagnosing root causes, hypothesis-driven debugging, reviewing code for common statistical\u002Fnumerical errors, profiling data pipelines, improving reproducibility (seeds, environments, determinism), and structuring analysis scripts for sharing. Distinct from \u002Fexploratory-data-analysis (which understands data) and \u002Fstatistical-analysis (which chooses and runs tests) — this skill focuses on the code itself.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fresearch-code\u002FSKILL.md",[193,196],{"categoryNo":194,"categoryName":195,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":197,"categoryName":198,"taxonomyType":139,"taxonomyTypeDesc":140},"01JBSEEDCAT000000000000030","开发工程师",[200,201,121,202,203,204,205,90,206,24,91,37,207,208,209,210,211,212,158,213],"code","research code","which","memory","data-analysis","errors","debugging","common","review","data pipelines","run","scripts","line","write",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":218,"licenseFileUrl":6,"sourceHtmlUrl":219,"categories":220,"keywords":227,"publishedAt":39},"01M7166CF5HSR7SVZYZFWTDX55","markdown-mermaid-writing","Comprehensive markdown and Mermaid diagram writing skill. Use when creating any scientific document, report, analysis, or visualization. Establishes text-based diagrams as the default documentation standard with full style guides (markdown + mermaid), 24 diagram type references, and 9 document templates.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fmarkdown-mermaid-writing\u002FSKILL.md",[221,224,225,226],{"categoryNo":222,"categoryName":223,"taxonomyType":81,"taxonomyTypeDesc":82},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":133,"categoryName":134,"taxonomyType":81,"taxonomyTypeDesc":82},{"categoryNo":79,"categoryName":80,"taxonomyType":81,"taxonomyTypeDesc":82},{"categoryNo":137,"categoryName":138,"taxonomyType":139,"taxonomyTypeDesc":140},[142,228,229,230,231,232,171,233,234,24,91,37,235,236,237,238,239,240,143,158],"markdown mermaid writing","mermaid","markdown","community","diagrams","project","default","team","guides","text","documentation","references","diagram"]