[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XGMD91Z8VVTCJ1HSKJQ0S5":3,"skill-same:01M6XGMD91Z8VVTCJ1HSKJQ0S5":78},{"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":58,"commitSha":59,"skillDirectory":60,"forksCount":14,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M6XGMD91Z8VVTCJ1HSKJQ0S5","ode-solver",null,"Solve ordinary differential equations (initial and boundary value problems). Supports stiff\u002Fnon-stiff systems, event detection, Hamiltonian\u002Fsymplectic integration, parameter sweeps, and phase space analysis. Use for any ODE system in physics, engineering, or applied math.","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\u002Fode-solver\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"ode solver","solver","ode","synthetic","Symplectic","phase","boundary value problems","value","for","event","dynamics","analysis","differential equations","physics","scipy","numpy","use","system","simulation","boundary","2026-11-10 10:12:30",false,"---\nname: ode-solver\ndescription: Solve ordinary differential equations (initial and boundary value problems). Supports stiff\u002Fnon-stiff systems, event detection, Hamiltonian\u002Fsymplectic integration, parameter sweeps, and phase space analysis. Use for any ODE system in physics, engineering, or applied math.\ncategory: physics\nversion: 1.0.0\nauthor: Synthetic Sciences\nlicense: MIT\ntags: [ODE, Differential Equations, Simulation, Dynamics, Physics, IVP, BVP]\ndependencies: [\"scipy>=1.11.0\", \"numpy>=1.24.0\", \"matplotlib>=3.7.0\"]\n---\n\n# ODE Solver\n\n## Overview\n\nSolve systems of ordinary differential equations using scipy's battle-tested integrators. Covers initial value problems (IVP), boundary value problems (BVP), event detection, stiff systems, and Hamiltonian dynamics with symplectic integrators.\n\n## When to Use\n\n- Any initial value problem: dx\u002Fdt = f(t, x)\n- Boundary value problems: solve with constraints at two endpoints\n- Hamiltonian systems needing energy-conserving integration\n- Parameter sweeps over ODE systems\n- Systems with discrete events (bouncing ball, switching dynamics)\n\n## Do NOT Use When\n\n- Solving PDEs (use `pde-solver` or `fluidsim`)\n- Fitting ODE parameters to data (use `physics-fitting`, then come back here)\n- Discovering governing equations from data (use `symbolic-regression` or `sindy`)\n\n## Core Workflows\n\n### 1. Basic IVP (Initial Value Problem)\n\n```python\nimport numpy as np\nfrom scipy.integrate import solve_ivp\nimport matplotlib.pyplot as plt\n\n# Define the system: dy\u002Fdt = f(t, y)\ndef harmonic_oscillator(t, y, omega=2.0):\n    \"\"\"Simple harmonic oscillator: x'' + omega^2 * x = 0\"\"\"\n    x, v = y\n    return [v, -omega**2 * x]\n\n# Solve\nt_span = (0, 10)\ny0 = [1.0, 0.0]  # x(0)=1, v(0)=0\nsol = solve_ivp(harmonic_oscillator, t_span, y0,\n                method='RK45', t_eval=np.linspace(0, 10, 1000),\n                rtol=1e-10, atol=1e-12)\n\n# Plot\nplt.plot(sol.t, sol.y[0], label='x(t)')\nplt.plot(sol.t, sol.y[1], label='v(t)')\nplt.xlabel('Time [s]')\nplt.ylabel('State')\nplt.legend()\nplt.grid(True, alpha=0.3)\nplt.savefig('harmonic_oscillator.png', dpi=150, bbox_inches='tight')\n```\n\n### 2. Stiff Systems\n\nUse `method='Radau'` or `method='BDF'` for stiff problems:\n\n```python\ndef stiff_system(t, y):\n    \"\"\"Van der Pol oscillator (stiff for large mu)\"\"\"\n    mu = 1000  # stiffness parameter\n    x, v = y\n    return [v, mu * (1 - x**2) * v - x]\n\nsol = solve_ivp(stiff_system, (0, 3000), [2.0, 0.0],\n                method='Radau', rtol=1e-8, atol=1e-10,\n                max_step=10.0)\n```\n\n**How to detect stiffness:**\n- Explicit solver (RK45) takes extremely many steps or fails\n- System has widely separated timescales\n- Jacobian eigenvalues have large negative real parts\n\n### 3. Event Detection\n\nFind when specific conditions are met during integration:\n\n```python\ndef projectile(t, y):\n    \"\"\"Projectile motion with drag\"\"\"\n    x, vx, z, vz = y\n    g = 9.80665\n    drag = 0.01  # drag coefficient\n    speed = np.sqrt(vx**2 + vz**2)\n    return [vx, -drag * speed * vx,\n            vz, -g - drag * speed * vz]\n\ndef hit_ground(t, y):\n    \"\"\"Event: z = 0 (projectile hits ground)\"\"\"\n    return y[2]\nhit_ground.terminal = True    # stop integration\nhit_ground.direction = -1     # only when z is decreasing\n\ndef max_height(t, y):\n    \"\"\"Event: vz = 0 (apex)\"\"\"\n    return y[3]\nmax_height.direction = -1\n\nsol = solve_ivp(projectile, (0, 100), [0, 50, 0, 50],\n                events=[hit_ground, max_height],\n                max_step=0.1, dense_output=True)\n\nprint(f\"Impact at t = {sol.t_events[0][0]:.3f} s\")\nprint(f\"Max height at t = {sol.t_events[1][0]:.3f} s\")\n```\n\n### 4. Hamiltonian Systems (Symplectic Integration)\n\nFor energy-conserving systems, use symplectic methods:\n\n```python\ndef symplectic_leapfrog(H_q, H_p, q0, p0, dt, n_steps):\n    \"\"\"\n    Leapfrog (Stormer-Verlet) symplectic integrator.\n    H_q = dH\u002Fdq (returns -dp\u002Fdt)\n    H_p = dH\u002Fdp (returns dq\u002Fdt)\n    \"\"\"\n    q = np.copy(q0)\n    p = np.copy(p0)\n    trajectory = [(q.copy(), p.copy())]\n\n    for _ in range(n_steps):\n        p -= 0.5 * dt * H_q(q, p)  # half-step momentum\n        q += dt * H_p(q, p)         # full-step position\n        p -= 0.5 * dt * H_q(q, p)  # half-step momentum\n        trajectory.append((q.copy(), p.copy()))\n\n    return trajectory\n\n# Example: Kepler problem\ndef dH_dq(q, p):\n    r = np.linalg.norm(q)\n    return q \u002F r**3  # gravitational force (GM=1)\n\ndef dH_dp(q, p):\n    return p  # velocity\n\nq0 = np.array([1.0, 0.0])   # initial position\np0 = np.array([0.0, 0.8])   # initial velocity (elliptical orbit)\ntraj = symplectic_leapfrog(dH_dq, dH_dp, q0, p0, dt=0.01, n_steps=10000)\n```\n\n### 5. Boundary Value Problems (BVP)\n\n```python\nfrom scipy.integrate import solve_bvp\n\ndef ode_bvp(x, y):\n    \"\"\"y'' + y = 0 (eigenvalue-like problem)\"\"\"\n    return np.vstack([y[1], -y[0]])\n\ndef boundary_conditions(ya, yb):\n    \"\"\"y(0) = 0, y(pi) = 0\"\"\"\n    return np.array([ya[0], yb[0]])\n\nx = np.linspace(0, np.pi, 100)\ny_init = np.zeros((2, x.size))\ny_init[0] = np.sin(x)  # initial guess\n\nsol = solve_bvp(ode_bvp, boundary_conditions, x, y_init)\nprint(f\"BVP solved: {sol.success}\")\n```\n\n### 6. Parameter Sweeps\n\n```python\nfrom functools import partial\n\ndef damped_oscillator(t, y, gamma=0.1, omega=1.0):\n    x, v = y\n    return [v, -2*gamma*v - omega**2 * x]\n\ngammas = [0.05, 0.1, 0.5, 1.0, 2.0]\nfig, ax = plt.subplots(figsize=(10, 6))\n\nfor gamma in gammas:\n    rhs = partial(damped_oscillator, gamma=gamma)\n    sol = solve_ivp(rhs, (0, 20), [1.0, 0.0],\n                    t_eval=np.linspace(0, 20, 500), rtol=1e-10)\n    label = f'γ={gamma}'\n    if gamma \u003C 1:\n        label += ' (underdamped)'\n    elif gamma == 1:\n        label += ' (critical)'\n    else:\n        label += ' (overdamped)'\n    ax.plot(sol.t, sol.y[0], label=label)\n\nax.set_xlabel('Time [s]')\nax.set_ylabel('x(t)')\nax.set_title('Damped Harmonic Oscillator: Parameter Sweep')\nax.legend()\nax.grid(True, alpha=0.3)\nplt.savefig('damped_sweep.png', dpi=150, bbox_inches='tight')\n```\n\n## Method Selection Guide\n\n| Problem Type | Method | When to Use |\n|---|---|---|\n| `RK45` | Non-stiff, general purpose | Default choice |\n| `RK23` | Non-stiff, lower accuracy | Quick estimates |\n| `DOP853` | Non-stiff, high accuracy | Long integrations, reference solutions |\n| `Radau` | Stiff, implicit Runge-Kutta | Chemical kinetics, electrical circuits |\n| `BDF` | Stiff, multistep | Large stiff systems |\n| `LSODA` | Auto stiff\u002Fnon-stiff detection | Unknown stiffness |\n| Leapfrog\u002FVerlet | Symplectic | Hamiltonian systems, long-time energy conservation |\n\n## Validation Checklist\n\nAfter solving any ODE:\n- [ ] Check energy\u002Finvariant conservation (for conservative systems)\n- [ ] Verify against analytical solution in known limits\n- [ ] Confirm convergence: halve `max_step` and check solution doesn't change\n- [ ] Check `sol.success` is True and `sol.message` is clean\n- [ ] For stiff systems: verify `method='Radau'` or `'BDF'` was used\n- [ ] Plot residuals if fitting to data\n\n## Troubleshooting\n\n| Symptom | Cause | Fix |\n|---|---|---|\n| Very slow integration | Stiff system with explicit solver | Switch to `Radau` or `BDF` |\n| `max_step` warnings | Step size too large | Reduce `max_step` |\n| Energy drift over long times | Non-symplectic integrator | Use leapfrog for Hamiltonian systems |\n| Solution oscillates wildly | Insufficient resolution | Decrease `rtol`\u002F`atol` |\n| `solve_ivp` returns `success=False` | Integration failed | Check if system is stiff, reduce tolerances |\n| Event not detected | Event function not smooth | Add `max_step` smaller than event timescale |\n","# ODE Solver\n\n## Overview\n\nSolve systems of ordinary differential equations using scipy's battle-tested integrators. Covers initial value problems (IVP), boundary value problems (BVP), event detection, stiff systems, and Hamiltonian dynamics with symplectic integrators.\n\n## When to Use\n\n- Any initial value problem: dx\u002Fdt = f(t, x)\n- Boundary value problems: solve with constraints at two endpoints\n- Hamiltonian systems needing energy-conserving integration\n- Parameter sweeps over ODE systems\n- Systems with discrete events (bouncing ball, switching dynamics)\n\n## Do NOT Use When\n\n- Solving PDEs (use `pde-solver` or `fluidsim`)\n- Fitting ODE parameters to data (use `physics-fitting`, then come back here)\n- Discovering governing equations from data (use `symbolic-regression` or `sindy`)\n\n## Core Workflows\n\n### 1. Basic IVP (Initial Value Problem)\n\n```python\nimport numpy as np\nfrom scipy.integrate import solve_ivp\nimport matplotlib.pyplot as plt\n\n# Define the system: dy\u002Fdt = f(t, y)\ndef harmonic_oscillator(t, y, omega=2.0):\n    \"\"\"Simple harmonic oscillator: x'' + omega^2 * x = 0\"\"\"\n    x, v = y\n    return [v, -omega**2 * x]\n\n# Solve\nt_span = (0, 10)\ny0 = [1.0, 0.0]  # x(0)=1, v(0)=0\nsol = solve_ivp(harmonic_oscillator, t_span, y0,\n                method='RK45', t_eval=np.linspace(0, 10, 1000),\n                rtol=1e-10, atol=1e-12)\n\n# Plot\nplt.plot(sol.t, sol.y[0], label='x(t)')\nplt.plot(sol.t, sol.y[1], label='v(t)')\nplt.xlabel('Time [s]')\nplt.ylabel('State')\nplt.legend()\nplt.grid(True, alpha=0.3)\nplt.savefig('harmonic_oscillator.png', dpi=150, bbox_inches='tight')\n```\n\n### 2. Stiff Systems\n\nUse `method='Radau'` or `method='BDF'` for stiff problems:\n\n```python\ndef stiff_system(t, y):\n    \"\"\"Van der Pol oscillator (stiff for large mu)\"\"\"\n    mu = 1000  # stiffness parameter\n    x, v = y\n    return [v, mu * (1 - x**2) * v - x]\n\nsol = solve_ivp(stiff_system, (0, 3000), [2.0, 0.0],\n                method='Radau', rtol=1e-8, atol=1e-10,\n                max_step=10.0)\n```\n\n**How to detect stiffness:**\n- Explicit solver (RK45) takes extremely many steps or fails\n- System has widely separated timescales\n- Jacobian eigenvalues have large negative real parts\n\n### 3. Event Detection\n\nFind when specific conditions are met during integration:\n\n```python\ndef projectile(t, y):\n    \"\"\"Projectile motion with drag\"\"\"\n    x, vx, z, vz = y\n    g = 9.80665\n    drag = 0.01  # drag coefficient\n    speed = np.sqrt(vx**2 + vz**2)\n    return [vx, -drag * speed * vx,\n            vz, -g - drag * speed * vz]\n\ndef hit_ground(t, y):\n    \"\"\"Event: z = 0 (projectile hits ground)\"\"\"\n    return y[2]\nhit_ground.terminal = True    # stop integration\nhit_ground.direction = -1     # only when z is decreasing\n\ndef max_height(t, y):\n    \"\"\"Event: vz = 0 (apex)\"\"\"\n    return y[3]\nmax_height.direction = -1\n\nsol = solve_ivp(projectile, (0, 100), [0, 50, 0, 50],\n                events=[hit_ground, max_height],\n                max_step=0.1, dense_output=True)\n\nprint(f\"Impact at t = {sol.t_events[0][0]:.3f} s\")\nprint(f\"Max height at t = {sol.t_events[1][0]:.3f} s\")\n```\n\n### 4. Hamiltonian Systems (Symplectic Integration)\n\nFor energy-conserving systems, use symplectic methods:\n\n```python\ndef symplectic_leapfrog(H_q, H_p, q0, p0, dt, n_steps):\n    \"\"\"\n    Leapfrog (Stormer-Verlet) symplectic integrator.\n    H_q = dH\u002Fdq (returns -dp\u002Fdt)\n    H_p = dH\u002Fdp (returns dq\u002Fdt)\n    \"\"\"\n    q = np.copy(q0)\n    p = np.copy(p0)\n    trajectory = [(q.copy(), p.copy())]\n\n    for _ in range(n_steps):\n        p -= 0.5 * dt * H_q(q, p)  # half-step momentum\n        q += dt * H_p(q, p)         # full-step position\n        p -= 0.5 * dt * H_q(q, p)  # half-step momentum\n        trajectory.append((q.copy(), p.copy()))\n\n    return trajectory\n\n# Example: Kepler problem\ndef dH_dq(q, p):\n    r = np.linalg.norm(q)\n    return q \u002F r**3  # gravitational force (GM=1)\n\ndef dH_dp(q, p):\n    return p  # velocity\n\nq0 = np.array([1.0, 0.0])   # initial position\np0 = np.array([0.0, 0.8])   # initial velocity (elliptical orbit)\ntraj = symplectic_leapfrog(dH_dq, dH_dp, q0, p0, dt=0.01, n_steps=10000)\n```\n\n### 5. Boundary Value Problems (BVP)\n\n```python\nfrom scipy.integrate import solve_bvp\n\ndef ode_bvp(x, y):\n    \"\"\"y'' + y = 0 (eigenvalue-like problem)\"\"\"\n    return np.vstack([y[1], -y[0]])\n\ndef boundary_conditions(ya, yb):\n    \"\"\"y(0) = 0, y(pi) = 0\"\"\"\n    return np.array([ya[0], yb[0]])\n\nx = np.linspace(0, np.pi, 100)\ny_init = np.zeros((2, x.size))\ny_init[0] = np.sin(x)  # initial guess\n\nsol = solve_bvp(ode_bvp, boundary_conditions, x, y_init)\nprint(f\"BVP solved: {sol.success}\")\n```\n\n### 6. Parameter Sweeps\n\n```python\nfrom functools import partial\n\ndef damped_oscillator(t, y, gamma=0.1, omega=1.0):\n    x, v = y\n    return [v, -2*gamma*v - omega**2 * x]\n\ngammas = [0.05, 0.1, 0.5, 1.0, 2.0]\nfig, ax = plt.subplots(figsize=(10, 6))\n\nfor gamma in gammas:\n    rhs = partial(damped_oscillator, gamma=gamma)\n    sol = solve_ivp(rhs, (0, 20), [1.0, 0.0],\n                    t_eval=np.linspace(0, 20, 500), rtol=1e-10)\n    label = f'γ={gamma}'\n    if gamma \u003C 1:\n        label += ' (underdamped)'\n    elif gamma == 1:\n        label += ' (critical)'\n    else:\n        label += ' (overdamped)'\n    ax.plot(sol.t, sol.y[0], label=label)\n\nax.set_xlabel('Time [s]')\nax.set_ylabel('x(t)')\nax.set_title('Damped Harmonic Oscillator: Parameter Sweep')\nax.legend()\nax.grid(True, alpha=0.3)\nplt.savefig('damped_sweep.png', dpi=150, bbox_inches='tight')\n```\n\n## Method Selection Guide\n\n| Problem Type | Method | When to Use |\n|---|---|---|\n| `RK45` | Non-stiff, general purpose | Default choice |\n| `RK23` | Non-stiff, lower accuracy | Quick estimates |\n| `DOP853` | Non-stiff, high accuracy | Long integrations, reference solutions |\n| `Radau` | Stiff, implicit Runge-Kutta | Chemical kinetics, electrical circuits |\n| `BDF` | Stiff, multistep | Large stiff systems |\n| `LSODA` | Auto stiff\u002Fnon-stiff detection | Unknown stiffness |\n| Leapfrog\u002FVerlet | Symplectic | Hamiltonian systems, long-time energy conservation |\n\n## Validation Checklist\n\nAfter solving any ODE:\n- [ ] Check energy\u002Finvariant conservation (for conservative systems)\n- [ ] Verify against analytical solution in known limits\n- [ ] Confirm convergence: halve `max_step` and check solution doesn't change\n- [ ] Check `sol.success` is True and `sol.message` is clean\n- [ ] For stiff systems: verify `method='Radau'` or `'BDF'` was used\n- [ ] Plot residuals if fitting to data\n\n## Troubleshooting\n\n| Symptom | Cause | Fix |\n|---|---|---|\n| Very slow integration | Stiff system with explicit solver | Switch to `Radau` or `BDF` |\n| `max_step` warnings | Step size too large | Reduce `max_step` |\n| Energy drift over long times | Non-symplectic integrator | Use leapfrog for Hamiltonian systems |\n| Solution oscillates wildly | Insufficient resolution | Decrease `rtol`\u002F`atol` |\n| `solve_ivp` returns `success=False` | Integration failed | Check if system is stiff, reduce tolerances |\n| Event not detected | Event function not smooth | Add `max_step` smaller than event timescale |\n",{"name":5,"tags":44,"author":52,"license":15,"version":53,"category":32,"description":7,"dependencies":54},[45,46,47,48,49,50,51],"ODE","Differential Equations","Simulation","Dynamics","Physics","IVP","BVP","Synthetic Sciences","1.0.0",[55,56,57],"scipy>=1.11.0","numpy>=1.24.0","matplotlib>=3.7.0","main","4aa39efd1cdab0b4657ecee16c92a92011a5b10f","openscience\u002Fbackend\u002Fcli\u002Fskills\u002Fphysics\u002Fode-solver","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub","https:\u002F\u002Fgithub.com\u002Ffadrienne","2026-10-28 00:43:09",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add fadrienne\u002FMyGitHub --skill ode-solver",{"tool":70,"command":71},"bunx","bunx skills add fadrienne\u002FMyGitHub --skill ode-solver",{"tool":73,"command":74},"pnpm","pnpm dlx skills add fadrienne\u002FMyGitHub --skill ode-solver","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fphysics\u002Fode-solver\u002FSKILL.md",true,[],[79,108,133,167,194,221],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":90,"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",[85],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[91,92,93,33,94,95,96,97,98,99,100,30,101,102,103,104,105,106,37,107],"power","statistical power","effect","regression","choose","design","uv","when","Bash","collection","calculation","ANOVA","conversion","analyze","t-test","chi-square","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":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000008","测试与质量",[30,118,91,119,120,121,98,122,123,124,27,125,35,126,127,128,129,130,131,132],"statistical analysis","academic research","implementing","selection","you","reporting","data","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":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},{"categoryNo":144,"categoryName":145,"taxonomyType":146,"taxonomyTypeDesc":147},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[149,150,151,152,153,154,155,156,157,158,99,159,160,161,162,163,164,165,123,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":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},[178,150,179,180,181,182,183,184,185,157,98,186,187,188,189,190,191,192,27,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":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":204,"categoryName":205,"taxonomyType":146,"taxonomyTypeDesc":147},"01JBSEEDCAT000000000000030","开发工程师",[207,208,128,209,210,211,212,97,213,98,99,30,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":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":140,"categoryName":141,"taxonomyType":88,"taxonomyTypeDesc":89},{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},{"categoryNo":144,"categoryName":145,"taxonomyType":146,"taxonomyTypeDesc":147},[149,235,236,237,238,239,178,240,241,98,99,30,242,243,244,245,246,247,150,165],"markdown mermaid writing","mermaid","markdown","community","diagrams","project","default","team","guides","text","documentation","references","diagram"]