[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XGK49W4DJ2KA8CDCDGRH56":3,"skill-same:01M6XGK49W4DJ2KA8CDCDGRH56":77},{"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":57,"commitSha":58,"skillDirectory":59,"forksCount":14,"repositoryHtmlUrl":60,"repositoryHomepageUrl":6,"ownerHtmlUrl":61,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":62,"install":63,"resources":76},"01M6XGK49W4DJ2KA8CDCDGRH56","bayesian-inference",null,"Bayesian parameter estimation with MCMC (emcee) and probabilistic programming (PyMC). Posterior distributions, corner plots, model evidence, convergence diagnostics. Use when you need full posterior distributions, not just point estimates.","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\u002Fbayesian-inference\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"bayesian inference","Bayesian","inference","you","emcee","Posterior","Probabilistic Programming","MCMC","when","point","uncertainty","synthetic","physics","estimation","scipy","numpy","evidence","use","just","model","2026-11-10 10:12:30",false,"---\nname: bayesian-inference\ndescription: Bayesian parameter estimation with MCMC (emcee) and probabilistic programming (PyMC). Posterior distributions, corner plots, model evidence, convergence diagnostics. Use when you need full posterior distributions, not just point estimates.\ncategory: physics\nversion: 1.0.0\nauthor: Synthetic Sciences\nlicense: MIT\ntags: [Bayesian, MCMC, Posterior, emcee, PyMC, Inference, Uncertainty, Physics]\ndependencies: [\"emcee>=3.1.0\", \"corner>=2.2.0\", \"scipy>=1.11.0\", \"numpy>=1.24.0\", \"matplotlib>=3.7.0\"]\n---\n\n# Bayesian Inference\n\n## Overview\n\nFull Bayesian parameter estimation using MCMC sampling. Get posterior distributions (not just best-fit values), compute credible intervals, compare models via Bayes factors, and diagnose sampler convergence.\n\n## When to Use\n\n- You need full posterior distributions (not just point estimates)\n- Parameters are correlated and you want the joint posterior\n- You want to compare models using Bayesian evidence\n- Prior information is available and should be incorporated\n- Error bars from least-squares seem unreliable\n\n## Do NOT Use When\n\n- A simple `curve_fit` with error bars is sufficient (use `physics-fitting`)\n- You have > 20 parameters (consider variational inference instead)\n- Likelihood is cheap and you want speed (least-squares is faster)\n\n## Core Workflows\n\n### 1. MCMC with emcee (Ensemble Sampler)\n\n```python\nimport numpy as np\nimport emcee\nimport corner\nimport matplotlib.pyplot as plt\n\n# Model and data\ndef model(t, A, gamma, omega):\n    return A * np.exp(-gamma * t) * np.cos(omega * t)\n\nt_data = np.linspace(0, 10, 50)\ny_true = model(t_data, 2.0, 0.3, 1.5)\ny_err = 0.1 * np.ones_like(t_data)\ny_data = y_true + y_err * np.random.randn(len(t_data))\n\n# Log-probability = log-prior + log-likelihood\ndef log_prior(theta):\n    A, gamma, omega = theta\n    if A \u003C 0 or gamma \u003C 0 or omega \u003C 0:\n        return -np.inf\n    if A > 10 or gamma > 5 or omega > 10:\n        return -np.inf\n    return 0.0  # uniform prior within bounds\n\ndef log_likelihood(theta, t, y, yerr):\n    A, gamma, omega = theta\n    y_model = model(t, A, gamma, omega)\n    chi2 = np.sum(((y - y_model) \u002F yerr)**2)\n    return -0.5 * chi2 - np.sum(np.log(yerr)) - 0.5 * len(y) * np.log(2*np.pi)\n\ndef log_probability(theta, t, y, yerr):\n    lp = log_prior(theta)\n    if not np.isfinite(lp):\n        return -np.inf\n    return lp + log_likelihood(theta, t, y, yerr)\n\n# Initialize walkers\nndim = 3\nnwalkers = 32\np0 = np.array([2.0, 0.3, 1.5]) + 0.01 * np.random.randn(nwalkers, ndim)\n\n# Run sampler\nsampler = emcee.EnsembleSampler(nwalkers, ndim, log_probability,\n                                 args=(t_data, y_data, y_err))\nsampler.run_mcmc(p0, 5000, progress=True)\n\n# Discard burn-in and thin\nflat_samples = sampler.get_chain(discard=1000, thin=15, flat=True)\nprint(f\"Effective samples: {flat_samples.shape[0]}\")\n```\n\n### 2. Corner Plot (Joint Posterior)\n\n```python\nlabels = [r\"$A$\", r\"$\\gamma$\", r\"$\\omega$\"]\ntruths = [2.0, 0.3, 1.5]\n\nfig = corner.corner(flat_samples, labels=labels, truths=truths,\n                     quantiles=[0.16, 0.5, 0.84],\n                     show_titles=True, title_kwargs={\"fontsize\": 12})\nfig.savefig('corner_plot.png', dpi=150, bbox_inches='tight')\n\n# Print parameter estimates\nfor i, label in enumerate(labels):\n    mcmc = np.percentile(flat_samples[:, i], [16, 50, 84])\n    q = np.diff(mcmc)\n    print(f\"{label} = {mcmc[1]:.4f} (+{q[1]:.4f} \u002F -{q[0]:.4f})\")\n```\n\n### 3. Convergence Diagnostics\n\n```python\n# Trace plots (check mixing)\nfig, axes = plt.subplots(ndim, 1, figsize=(10, 7), sharex=True)\nchain = sampler.get_chain()\nfor i in range(ndim):\n    axes[i].plot(chain[:, :, i], alpha=0.3, linewidth=0.5)\n    axes[i].set_ylabel(labels[i])\n    axes[i].axvline(1000, color='red', linestyle='--', label='Burn-in')\naxes[-1].set_xlabel('Step')\naxes[0].legend(loc='upper right')\nplt.savefig('trace_plots.png', dpi=150, bbox_inches='tight')\n\n# Autocorrelation time (convergence diagnostic)\ntry:\n    tau = sampler.get_autocorr_time()\n    print(f\"Autocorrelation times: {tau}\")\n    print(f\"Chain length \u002F tau: {sampler.iteration \u002F tau}\")\n    print(f\"  (Should be > 50 for reliable results)\")\nexcept emcee.autocorr.AutocorrError:\n    print(\"Warning: chain too short for autocorrelation estimate\")\n\n# Gelman-Rubin diagnostic (R-hat)\nchain_split = sampler.get_chain(discard=1000)  # (steps, walkers, ndim)\nn_steps, n_walkers, n_dim = chain_split.shape\n# Between-chain variance\nchain_means = chain_split.mean(axis=0)  # (walkers, ndim)\nB = n_steps * np.var(chain_means, axis=0, ddof=1)\n# Within-chain variance\nW = np.mean(np.var(chain_split, axis=0, ddof=1), axis=0)\n# R-hat\nvar_est = (1 - 1\u002Fn_steps) * W + B \u002F n_steps\nR_hat = np.sqrt(var_est \u002F W)\nprint(f\"R-hat: {R_hat}\")\nprint(f\"  (Should be \u003C 1.01 for convergence)\")\n```\n\n### 4. Posterior Predictive Check\n\n```python\n# Sample model predictions from the posterior\nt_pred = np.linspace(0, 12, 200)\nn_samples = 100\nidx = np.random.randint(len(flat_samples), size=n_samples)\n\nfig, ax = plt.subplots(figsize=(10, 6))\nfor i in idx:\n    y_pred = model(t_pred, *flat_samples[i])\n    ax.plot(t_pred, y_pred, 'r-', alpha=0.05)\n\nax.errorbar(t_data, y_data, yerr=y_err, fmt='ko', capsize=3, label='Data')\nax.plot(t_pred, model(t_pred, 2.0, 0.3, 1.5), 'b-', linewidth=2, label='True')\nax.set_xlabel('Time [s]')\nax.set_ylabel('y')\nax.set_title('Posterior Predictive Check')\nax.legend()\nax.grid(True, alpha=0.3)\nplt.savefig('posterior_predictive.png', dpi=150, bbox_inches='tight')\n```\n\n### 5. Model Comparison (Bayes Factor via Harmonic Mean)\n\n```python\n# WARNING: Harmonic mean estimator is unreliable for high dimensions.\n# For serious model comparison, use nested sampling (dynesty).\n\n# Simple approach: compare max log-likelihood\nlog_likes_1 = sampler.get_log_prob(discard=1000, flat=True)\nprint(f\"Model 1: max log(L) = {np.max(log_likes_1):.2f}\")\nprint(f\"         mean log(L) = {np.mean(log_likes_1):.2f}\")\n\n# For proper Bayes factors, use dynesty:\n# pip install dynesty\n# from dynesty import NestedSampler\n# sampler = NestedSampler(log_likelihood, prior_transform, ndim)\n# sampler.run_nested()\n# results = sampler.results\n# print(f\"log(Z) = {results.logz[-1]:.2f} ± {results.logzerr[-1]:.2f}\")\n```\n\n## emcee Tips\n\n1. **nwalkers ≥ 2 × ndim** — minimum, but 4× is better\n2. **Burn-in**: Run for 10-20 autocorrelation times, then discard\n3. **Thinning**: Thin by ~half the autocorrelation time\n4. **Initialization**: Start walkers near the MAP estimate (from curve_fit)\n5. **Check convergence**: Trace plots + autocorrelation time + R-hat\n\n## Troubleshooting\n\n| Symptom | Fix |\n|---|---|\n| Walkers stuck (low acceptance) | Prior too restrictive or likelihood too peaked — reparameterize |\n| Very long autocorrelation | Correlated parameters — reparameterize (e.g., log-space) |\n| Multimodal posterior | Use parallel tempering or nested sampling |\n| Corner plot shows hard edges | Prior bounds too tight — widen them |\n| Trace plots show drift | Not converged — run longer or improve initialization |\n","# Bayesian Inference\n\n## Overview\n\nFull Bayesian parameter estimation using MCMC sampling. Get posterior distributions (not just best-fit values), compute credible intervals, compare models via Bayes factors, and diagnose sampler convergence.\n\n## When to Use\n\n- You need full posterior distributions (not just point estimates)\n- Parameters are correlated and you want the joint posterior\n- You want to compare models using Bayesian evidence\n- Prior information is available and should be incorporated\n- Error bars from least-squares seem unreliable\n\n## Do NOT Use When\n\n- A simple `curve_fit` with error bars is sufficient (use `physics-fitting`)\n- You have > 20 parameters (consider variational inference instead)\n- Likelihood is cheap and you want speed (least-squares is faster)\n\n## Core Workflows\n\n### 1. MCMC with emcee (Ensemble Sampler)\n\n```python\nimport numpy as np\nimport emcee\nimport corner\nimport matplotlib.pyplot as plt\n\n# Model and data\ndef model(t, A, gamma, omega):\n    return A * np.exp(-gamma * t) * np.cos(omega * t)\n\nt_data = np.linspace(0, 10, 50)\ny_true = model(t_data, 2.0, 0.3, 1.5)\ny_err = 0.1 * np.ones_like(t_data)\ny_data = y_true + y_err * np.random.randn(len(t_data))\n\n# Log-probability = log-prior + log-likelihood\ndef log_prior(theta):\n    A, gamma, omega = theta\n    if A \u003C 0 or gamma \u003C 0 or omega \u003C 0:\n        return -np.inf\n    if A > 10 or gamma > 5 or omega > 10:\n        return -np.inf\n    return 0.0  # uniform prior within bounds\n\ndef log_likelihood(theta, t, y, yerr):\n    A, gamma, omega = theta\n    y_model = model(t, A, gamma, omega)\n    chi2 = np.sum(((y - y_model) \u002F yerr)**2)\n    return -0.5 * chi2 - np.sum(np.log(yerr)) - 0.5 * len(y) * np.log(2*np.pi)\n\ndef log_probability(theta, t, y, yerr):\n    lp = log_prior(theta)\n    if not np.isfinite(lp):\n        return -np.inf\n    return lp + log_likelihood(theta, t, y, yerr)\n\n# Initialize walkers\nndim = 3\nnwalkers = 32\np0 = np.array([2.0, 0.3, 1.5]) + 0.01 * np.random.randn(nwalkers, ndim)\n\n# Run sampler\nsampler = emcee.EnsembleSampler(nwalkers, ndim, log_probability,\n                                 args=(t_data, y_data, y_err))\nsampler.run_mcmc(p0, 5000, progress=True)\n\n# Discard burn-in and thin\nflat_samples = sampler.get_chain(discard=1000, thin=15, flat=True)\nprint(f\"Effective samples: {flat_samples.shape[0]}\")\n```\n\n### 2. Corner Plot (Joint Posterior)\n\n```python\nlabels = [r\"$A$\", r\"$\\gamma$\", r\"$\\omega$\"]\ntruths = [2.0, 0.3, 1.5]\n\nfig = corner.corner(flat_samples, labels=labels, truths=truths,\n                     quantiles=[0.16, 0.5, 0.84],\n                     show_titles=True, title_kwargs={\"fontsize\": 12})\nfig.savefig('corner_plot.png', dpi=150, bbox_inches='tight')\n\n# Print parameter estimates\nfor i, label in enumerate(labels):\n    mcmc = np.percentile(flat_samples[:, i], [16, 50, 84])\n    q = np.diff(mcmc)\n    print(f\"{label} = {mcmc[1]:.4f} (+{q[1]:.4f} \u002F -{q[0]:.4f})\")\n```\n\n### 3. Convergence Diagnostics\n\n```python\n# Trace plots (check mixing)\nfig, axes = plt.subplots(ndim, 1, figsize=(10, 7), sharex=True)\nchain = sampler.get_chain()\nfor i in range(ndim):\n    axes[i].plot(chain[:, :, i], alpha=0.3, linewidth=0.5)\n    axes[i].set_ylabel(labels[i])\n    axes[i].axvline(1000, color='red', linestyle='--', label='Burn-in')\naxes[-1].set_xlabel('Step')\naxes[0].legend(loc='upper right')\nplt.savefig('trace_plots.png', dpi=150, bbox_inches='tight')\n\n# Autocorrelation time (convergence diagnostic)\ntry:\n    tau = sampler.get_autocorr_time()\n    print(f\"Autocorrelation times: {tau}\")\n    print(f\"Chain length \u002F tau: {sampler.iteration \u002F tau}\")\n    print(f\"  (Should be > 50 for reliable results)\")\nexcept emcee.autocorr.AutocorrError:\n    print(\"Warning: chain too short for autocorrelation estimate\")\n\n# Gelman-Rubin diagnostic (R-hat)\nchain_split = sampler.get_chain(discard=1000)  # (steps, walkers, ndim)\nn_steps, n_walkers, n_dim = chain_split.shape\n# Between-chain variance\nchain_means = chain_split.mean(axis=0)  # (walkers, ndim)\nB = n_steps * np.var(chain_means, axis=0, ddof=1)\n# Within-chain variance\nW = np.mean(np.var(chain_split, axis=0, ddof=1), axis=0)\n# R-hat\nvar_est = (1 - 1\u002Fn_steps) * W + B \u002F n_steps\nR_hat = np.sqrt(var_est \u002F W)\nprint(f\"R-hat: {R_hat}\")\nprint(f\"  (Should be \u003C 1.01 for convergence)\")\n```\n\n### 4. Posterior Predictive Check\n\n```python\n# Sample model predictions from the posterior\nt_pred = np.linspace(0, 12, 200)\nn_samples = 100\nidx = np.random.randint(len(flat_samples), size=n_samples)\n\nfig, ax = plt.subplots(figsize=(10, 6))\nfor i in idx:\n    y_pred = model(t_pred, *flat_samples[i])\n    ax.plot(t_pred, y_pred, 'r-', alpha=0.05)\n\nax.errorbar(t_data, y_data, yerr=y_err, fmt='ko', capsize=3, label='Data')\nax.plot(t_pred, model(t_pred, 2.0, 0.3, 1.5), 'b-', linewidth=2, label='True')\nax.set_xlabel('Time [s]')\nax.set_ylabel('y')\nax.set_title('Posterior Predictive Check')\nax.legend()\nax.grid(True, alpha=0.3)\nplt.savefig('posterior_predictive.png', dpi=150, bbox_inches='tight')\n```\n\n### 5. Model Comparison (Bayes Factor via Harmonic Mean)\n\n```python\n# WARNING: Harmonic mean estimator is unreliable for high dimensions.\n# For serious model comparison, use nested sampling (dynesty).\n\n# Simple approach: compare max log-likelihood\nlog_likes_1 = sampler.get_log_prob(discard=1000, flat=True)\nprint(f\"Model 1: max log(L) = {np.max(log_likes_1):.2f}\")\nprint(f\"         mean log(L) = {np.mean(log_likes_1):.2f}\")\n\n# For proper Bayes factors, use dynesty:\n# pip install dynesty\n# from dynesty import NestedSampler\n# sampler = NestedSampler(log_likelihood, prior_transform, ndim)\n# sampler.run_nested()\n# results = sampler.results\n# print(f\"log(Z) = {results.logz[-1]:.2f} ± {results.logzerr[-1]:.2f}\")\n```\n\n## emcee Tips\n\n1. **nwalkers ≥ 2 × ndim** — minimum, but 4× is better\n2. **Burn-in**: Run for 10-20 autocorrelation times, then discard\n3. **Thinning**: Thin by ~half the autocorrelation time\n4. **Initialization**: Start walkers near the MAP estimate (from curve_fit)\n5. **Check convergence**: Trace plots + autocorrelation time + R-hat\n\n## Troubleshooting\n\n| Symptom | Fix |\n|---|---|\n| Walkers stuck (low acceptance) | Prior too restrictive or likelihood too peaked — reparameterize |\n| Very long autocorrelation | Correlated parameters — reparameterize (e.g., log-space) |\n| Multimodal posterior | Use parallel tempering or nested sampling |\n| Corner plot shows hard edges | Prior bounds too tight — widen them |\n| Trace plots show drift | Not converged — run longer or improve initialization |\n",{"name":5,"tags":44,"author":49,"license":15,"version":50,"category":31,"description":7,"dependencies":51},[20,26,24,23,45,46,47,48],"PyMC","Inference","Uncertainty","Physics","Synthetic Sciences","1.0.0",[52,53,54,55,56],"emcee>=3.1.0","corner>=2.2.0","scipy>=1.11.0","numpy>=1.24.0","matplotlib>=3.7.0","main","4aa39efd1cdab0b4657ecee16c92a92011a5b10f","openscience\u002Fbackend\u002Fcli\u002Fskills\u002Fphysics\u002Fbayesian-inference","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub","https:\u002F\u002Fgithub.com\u002Ffadrienne","2026-10-28 00:43:09",{"source":8,"skillName":5,"commands":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add fadrienne\u002FMyGitHub --skill bayesian-inference",{"tool":69,"command":70},"bunx","bunx skills add fadrienne\u002FMyGitHub --skill bayesian-inference",{"tool":72,"command":73},"pnpm","pnpm dlx skills add fadrienne\u002FMyGitHub --skill bayesian-inference","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fphysics\u002Fbayesian-inference\u002FSKILL.md",true,[],[78,108,133,167,194,221],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":89,"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",[84],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[90,91,92,33,93,94,95,96,27,97,98,99,100,101,102,103,104,105,106,107],"power","statistical power","effect","regression","choose","design","uv","Bash","collection","analysis","calculation","ANOVA","conversion","analyze","t-test","chi-square","simulation","sample",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":117,"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",[114],{"categoryNo":115,"categoryName":116,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000008","测试与质量",[99,118,90,119,120,121,27,22,122,123,124,125,36,126,127,128,129,130,131,132],"statistical analysis","academic research","implementing","selection","reporting","data","for","tests","with","test","research","results","statsmodels","models","help",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":148,"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",[139,142,143],{"categoryNo":140,"categoryName":141,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":144,"categoryName":145,"taxonomyType":146,"taxonomyTypeDesc":147},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[149,150,151,152,153,154,155,156,157,158,97,159,160,161,162,163,164,165,122,166],"writing","scientific","scientific writing","Citations","deep","deep research","never","papers","journal","false","api","prisma","structure","openrouter","Outlines","core skill","read","features",{"skillNo":168,"name":169,"nameZh":6,"description":170,"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":177,"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",[173,176],{"categoryNo":174,"categoryName":175,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},[178,150,179,180,181,182,183,184,185,157,27,186,187,188,189,190,191,192,124,193],"visualization","scientific visualization","error","ready","quick","exploration","meta-skill","Meta","safe","plotly","annotations","formatting","Publication","figures","panel","submission",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":206,"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",[200,203],{"categoryNo":201,"categoryName":202,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":204,"categoryName":205,"taxonomyType":146,"taxonomyTypeDesc":147},"01JBSEEDCAT000000000000030","开发工程师",[207,208,128,209,210,211,212,96,213,27,97,99,214,215,216,217,218,219,165,220],"code","research code","which","memory","data-analysis","errors","debugging","common","review","data pipelines","run","scripts","line","write",{"skillNo":222,"name":223,"nameZh":6,"description":224,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":225,"licenseFileUrl":6,"sourceHtmlUrl":226,"categories":227,"keywords":234,"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",[228,231,232,233],{"categoryNo":229,"categoryName":230,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":140,"categoryName":141,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":144,"categoryName":145,"taxonomyType":146,"taxonomyTypeDesc":147},[149,235,236,237,238,239,178,240,241,27,97,99,242,243,244,245,246,247,150,165],"markdown mermaid writing","mermaid","markdown","community","diagrams","project","default","team","guides","text","documentation","references","diagram"]