[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XGKR3FTB5WA8AJRXYACKD9":3,"skill-same:01M6XGKR3FTB5WA8AJRXYACKD9":74},{"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":54,"commitSha":55,"skillDirectory":56,"forksCount":14,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":59,"install":60,"resources":73},"01M6XGKR3FTB5WA8AJRXYACKD9","fluid-dynamics",null,"Computational fluid dynamics — Navier-Stokes solvers, lid-driven cavity, channel flow, vortex methods, turbulence statistics, drag\u002Flift computation. Spectral and finite-difference methods for incompressible and compressible flows.","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\u002Ffluid-dynamics\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"fluid","fluid dynamics","dynamics","Incompressible Flow","computation","for","flows","spectral","turbulence","CFD","drag","lift","synthetic","statistics","computational","physics","scipy","numpy","methods","computational fluid dynamics","2026-11-10 10:12:30",false,"---\nname: fluid-dynamics\ndescription: Computational fluid dynamics — Navier-Stokes solvers, lid-driven cavity, channel flow, vortex methods, turbulence statistics, drag\u002Flift computation. Spectral and finite-difference methods for incompressible and compressible flows.\ncategory: physics\nversion: 1.0.0\nauthor: Synthetic Sciences\nlicense: MIT\ntags: [CFD, Navier-Stokes, Fluid Dynamics, Turbulence, Incompressible Flow]\ndependencies: [\"scipy>=1.11.0\", \"numpy>=1.24.0\", \"matplotlib>=3.7.0\"]\n---\n\n# Fluid Dynamics (CFD)\n\n## Overview\n\nSolve the Navier-Stokes equations for incompressible and compressible flows. Covers lid-driven cavity, channel flow, flow past obstacles, and turbulence analysis. For pseudospectral methods on periodic domains, also consider the `fluidsim` skill.\n\n## When to Use\n\n- Incompressible flow simulations (lid-driven cavity, channel flow, jets)\n- Computing drag and lift on bodies\n- Turbulence statistics (energy spectrum, Reynolds stresses)\n- Vortex dynamics and wake analysis\n- Flow visualization (streamlines, vorticity fields)\n\n## Do NOT Use When\n\n- Periodic-domain turbulence at high resolution (use `fluidsim` — optimized pseudospectral)\n- Compressible flow with shocks (need specialized Riemann solvers)\n- Complex 3D geometries with unstructured meshes (use FEniCS or OpenFOAM)\n\n## Core Workflows\n\n### 1. 2D Lid-Driven Cavity (Incompressible, Vorticity-Streamfunction)\n\n```python\nimport numpy as np\nimport matplotlib.pyplot as plt\n\ndef lid_driven_cavity(N=64, Re=100, dt=0.001, n_steps=50000):\n    \"\"\"\n    2D lid-driven cavity using vorticity-streamfunction formulation.\n    ∂ω\u002F∂t + u·∇ω = (1\u002FRe)∇²ω\n    ∇²ψ = -ω\n    u = ∂ψ\u002F∂y, v = -∂ψ\u002F∂x\n    \"\"\"\n    dx = 1.0 \u002F (N - 1)\n    x = np.linspace(0, 1, N)\n    y = np.linspace(0, 1, N)\n\n    omega = np.zeros((N, N))  # vorticity\n    psi = np.zeros((N, N))    # streamfunction\n\n    # CFL check\n    U_lid = 1.0\n    CFL = U_lid * dt \u002F dx\n    diff_num = dt \u002F (Re * dx**2)\n    print(f\"Grid: {N}x{N}, Re={Re}, dt={dt}\")\n    print(f\"CFL = {CFL:.4f}, Diffusion number = {diff_num:.4f}\")\n    if CFL > 0.5 or diff_num > 0.25:\n        print(\"WARNING: stability may be marginal\")\n\n    for step in range(n_steps):\n        # Solve Poisson: ∇²ψ = -ω (Jacobi iteration)\n        for _ in range(50):\n            psi[1:-1, 1:-1] = 0.25 * (\n                psi[2:, 1:-1] + psi[:-2, 1:-1] +\n                psi[1:-1, 2:] + psi[1:-1, :-2] +\n                dx**2 * omega[1:-1, 1:-1]\n            )\n            # BCs: ψ = 0 on all walls\n            psi[0, :] = 0; psi[-1, :] = 0\n            psi[:, 0] = 0; psi[:, -1] = 0\n\n        # Compute velocity from streamfunction\n        u = np.zeros((N, N))\n        v = np.zeros((N, N))\n        u[1:-1, 1:-1] = (psi[1:-1, 2:] - psi[1:-1, :-2]) \u002F (2*dx)\n        v[1:-1, 1:-1] = -(psi[2:, 1:-1] - psi[:-2, 1:-1]) \u002F (2*dx)\n\n        # Lid BC: u = 1 at y = 1 (top wall)\n        u[-1, :] = U_lid\n\n        # Vorticity on boundaries (Thom's formula)\n        omega[0, 1:-1] = -2*psi[1, 1:-1] \u002F dx**2                          # bottom\n        omega[-1, 1:-1] = -2*psi[-2, 1:-1] \u002F dx**2 - 2*U_lid\u002Fdx          # top (lid)\n        omega[1:-1, 0] = -2*psi[1:-1, 1] \u002F dx**2                          # left\n        omega[1:-1, -1] = -2*psi[1:-1, -2] \u002F dx**2                        # right\n\n        # Advection-diffusion of vorticity (FTCS)\n        domega_dx = (omega[2:, 1:-1] - omega[:-2, 1:-1]) \u002F (2*dx)\n        domega_dy = (omega[1:-1, 2:] - omega[1:-1, :-2]) \u002F (2*dx)\n        laplacian = (omega[2:, 1:-1] + omega[:-2, 1:-1] +\n                     omega[1:-1, 2:] + omega[1:-1, :-2] -\n                     4*omega[1:-1, 1:-1]) \u002F dx**2\n\n        omega[1:-1, 1:-1] += dt * (\n            -u[1:-1, 1:-1] * domega_dx\n            -v[1:-1, 1:-1] * domega_dy\n            + laplacian \u002F Re\n        )\n\n        if (step+1) % 10000 == 0:\n            max_div = np.max(np.abs(\n                (u[1:-1, 2:] - u[1:-1, :-2])\u002F(2*dx) +\n                (v[2:, 1:-1] - v[:-2, 1:-1])\u002F(2*dx)\n            ))\n            print(f\"Step {step+1}: max|ω|={np.max(np.abs(omega)):.2f}, max|div|={max_div:.2e}\")\n\n    return x, y, u, v, omega, psi\n\nx, y, u, v, omega, psi = lid_driven_cavity(N=64, Re=100, n_steps=30000)\n\nX, Y = np.meshgrid(x, y)\nfig, axes = plt.subplots(1, 3, figsize=(18, 5))\n\n# Streamfunction\nax = axes[0]\ncs = ax.contour(X, Y, psi.T, levels=30, cmap='RdBu_r')\nax.set_title(r'Streamfunction $\\psi$')\nax.set_xlabel('x'); ax.set_ylabel('y')\nax.set_aspect('equal')\nplt.colorbar(cs, ax=ax)\n\n# Vorticity\nax = axes[1]\ncf = ax.contourf(X, Y, omega.T, levels=30, cmap='RdBu_r')\nax.set_title(r'Vorticity $\\omega$')\nax.set_xlabel('x'); ax.set_ylabel('y')\nax.set_aspect('equal')\nplt.colorbar(cf, ax=ax)\n\n# Velocity vectors\nax = axes[2]\nskip = 4\nax.quiver(X[::skip, ::skip], Y[::skip, ::skip],\n          u.T[::skip, ::skip], v.T[::skip, ::skip], scale=20)\nax.set_title('Velocity field')\nax.set_xlabel('x'); ax.set_ylabel('y')\nax.set_aspect('equal')\n\nplt.suptitle(f'Lid-Driven Cavity (Re={100})', fontsize=14)\nplt.tight_layout()\nplt.savefig('cavity_flow.png', dpi=150, bbox_inches='tight')\n```\n\n### 2. Centerline Velocity Profiles (Ghia Benchmark)\n\n```python\n# Compare with Ghia et al. (1982) benchmark data for Re=100\n# Vertical centerline: u(x=0.5, y)\nj_center = len(x) \u002F\u002F 2\nu_centerline = u[j_center, :]\n\nfig, ax = plt.subplots(figsize=(6, 8))\nax.plot(u_centerline, y, 'b-', linewidth=2, label='Computed')\nax.set_xlabel('u')\nax.set_ylabel('y')\nax.set_title(f'Vertical centerline velocity (Re={100})')\nax.legend()\nax.grid(True, alpha=0.3)\nplt.savefig('centerline.png', dpi=150, bbox_inches='tight')\n```\n\n### 3. Flow Past a Cylinder (Immersed Boundary)\n\n```python\ndef cylinder_flow_simple(Nx=200, Ny=100, Re=100, n_steps=10000):\n    \"\"\"\n    Simplified 2D flow past a cylinder using penalty method.\n    For production use, consider lattice Boltzmann or FEniCS.\n    \"\"\"\n    # This is a simplified placeholder — real cylinder flows need\n    # proper immersed boundary or body-fitted coordinates\n    dx = 1.0 \u002F Ny\n    dt = 0.1 * dx \u002F 1.0  # conservative CFL\n\n    # Initialize velocity field with uniform inflow\n    u = np.ones((Nx, Ny))\n    v = np.zeros((Nx, Ny))\n\n    # Cylinder mask\n    cx, cy = Nx\u002F\u002F4, Ny\u002F\u002F2\n    R = Ny \u002F\u002F 10\n    Y_grid, X_grid = np.meshgrid(np.arange(Ny), np.arange(Nx))\n    mask = ((X_grid - cx)**2 + (Y_grid - cy)**2) \u003C R**2\n\n    for step in range(n_steps):\n        # Force velocity to zero inside cylinder\n        u[mask] = 0\n        v[mask] = 0\n        # ... (full NS solver needed for proper simulation)\n\n    return u, v, mask\n```\n\n## Flow Regime Reference\n\n| Re | Flow Type | Characteristics |\n|---|---|---|\n| Re \u003C 1 | Stokes (creeping) | Reversible, no inertia |\n| 1 \u003C Re \u003C 40 | Steady laminar | Attached flow, twin vortices |\n| 40 \u003C Re \u003C 200 | Periodic (Von Karman) | Vortex shedding |\n| 200 \u003C Re \u003C 10⁵ | Turbulent wake | Broad spectrum |\n| Re > 10⁵ | Fully turbulent | Boundary layer transition |\n\n## Validation Checklist\n\n- [ ] Verify divergence-free condition: ∇·u = 0\n- [ ] Check CFL condition: |u|dt\u002Fdx \u003C 1\n- [ ] Compare centerline profiles with Ghia et al. (1982) for cavity\n- [ ] Verify mass conservation: ∫u·n dA = 0\n- [ ] Check symmetry (if problem is symmetric)\n\n## Troubleshooting\n\n| Symptom | Fix |\n|---|---|\n| Solution blows up | CFL too large, reduce dt |\n| Checkerboard pattern | Pressure-velocity decoupling — use staggered grid |\n| Poisson solver slow | Use SOR (ω ≈ 1.5-1.9) or FFT-based solver |\n| Wrong drag coefficient | Insufficient resolution near body surface |\n","# Fluid Dynamics (CFD)\n\n## Overview\n\nSolve the Navier-Stokes equations for incompressible and compressible flows. Covers lid-driven cavity, channel flow, flow past obstacles, and turbulence analysis. For pseudospectral methods on periodic domains, also consider the `fluidsim` skill.\n\n## When to Use\n\n- Incompressible flow simulations (lid-driven cavity, channel flow, jets)\n- Computing drag and lift on bodies\n- Turbulence statistics (energy spectrum, Reynolds stresses)\n- Vortex dynamics and wake analysis\n- Flow visualization (streamlines, vorticity fields)\n\n## Do NOT Use When\n\n- Periodic-domain turbulence at high resolution (use `fluidsim` — optimized pseudospectral)\n- Compressible flow with shocks (need specialized Riemann solvers)\n- Complex 3D geometries with unstructured meshes (use FEniCS or OpenFOAM)\n\n## Core Workflows\n\n### 1. 2D Lid-Driven Cavity (Incompressible, Vorticity-Streamfunction)\n\n```python\nimport numpy as np\nimport matplotlib.pyplot as plt\n\ndef lid_driven_cavity(N=64, Re=100, dt=0.001, n_steps=50000):\n    \"\"\"\n    2D lid-driven cavity using vorticity-streamfunction formulation.\n    ∂ω\u002F∂t + u·∇ω = (1\u002FRe)∇²ω\n    ∇²ψ = -ω\n    u = ∂ψ\u002F∂y, v = -∂ψ\u002F∂x\n    \"\"\"\n    dx = 1.0 \u002F (N - 1)\n    x = np.linspace(0, 1, N)\n    y = np.linspace(0, 1, N)\n\n    omega = np.zeros((N, N))  # vorticity\n    psi = np.zeros((N, N))    # streamfunction\n\n    # CFL check\n    U_lid = 1.0\n    CFL = U_lid * dt \u002F dx\n    diff_num = dt \u002F (Re * dx**2)\n    print(f\"Grid: {N}x{N}, Re={Re}, dt={dt}\")\n    print(f\"CFL = {CFL:.4f}, Diffusion number = {diff_num:.4f}\")\n    if CFL > 0.5 or diff_num > 0.25:\n        print(\"WARNING: stability may be marginal\")\n\n    for step in range(n_steps):\n        # Solve Poisson: ∇²ψ = -ω (Jacobi iteration)\n        for _ in range(50):\n            psi[1:-1, 1:-1] = 0.25 * (\n                psi[2:, 1:-1] + psi[:-2, 1:-1] +\n                psi[1:-1, 2:] + psi[1:-1, :-2] +\n                dx**2 * omega[1:-1, 1:-1]\n            )\n            # BCs: ψ = 0 on all walls\n            psi[0, :] = 0; psi[-1, :] = 0\n            psi[:, 0] = 0; psi[:, -1] = 0\n\n        # Compute velocity from streamfunction\n        u = np.zeros((N, N))\n        v = np.zeros((N, N))\n        u[1:-1, 1:-1] = (psi[1:-1, 2:] - psi[1:-1, :-2]) \u002F (2*dx)\n        v[1:-1, 1:-1] = -(psi[2:, 1:-1] - psi[:-2, 1:-1]) \u002F (2*dx)\n\n        # Lid BC: u = 1 at y = 1 (top wall)\n        u[-1, :] = U_lid\n\n        # Vorticity on boundaries (Thom's formula)\n        omega[0, 1:-1] = -2*psi[1, 1:-1] \u002F dx**2                          # bottom\n        omega[-1, 1:-1] = -2*psi[-2, 1:-1] \u002F dx**2 - 2*U_lid\u002Fdx          # top (lid)\n        omega[1:-1, 0] = -2*psi[1:-1, 1] \u002F dx**2                          # left\n        omega[1:-1, -1] = -2*psi[1:-1, -2] \u002F dx**2                        # right\n\n        # Advection-diffusion of vorticity (FTCS)\n        domega_dx = (omega[2:, 1:-1] - omega[:-2, 1:-1]) \u002F (2*dx)\n        domega_dy = (omega[1:-1, 2:] - omega[1:-1, :-2]) \u002F (2*dx)\n        laplacian = (omega[2:, 1:-1] + omega[:-2, 1:-1] +\n                     omega[1:-1, 2:] + omega[1:-1, :-2] -\n                     4*omega[1:-1, 1:-1]) \u002F dx**2\n\n        omega[1:-1, 1:-1] += dt * (\n            -u[1:-1, 1:-1] * domega_dx\n            -v[1:-1, 1:-1] * domega_dy\n            + laplacian \u002F Re\n        )\n\n        if (step+1) % 10000 == 0:\n            max_div = np.max(np.abs(\n                (u[1:-1, 2:] - u[1:-1, :-2])\u002F(2*dx) +\n                (v[2:, 1:-1] - v[:-2, 1:-1])\u002F(2*dx)\n            ))\n            print(f\"Step {step+1}: max|ω|={np.max(np.abs(omega)):.2f}, max|div|={max_div:.2e}\")\n\n    return x, y, u, v, omega, psi\n\nx, y, u, v, omega, psi = lid_driven_cavity(N=64, Re=100, n_steps=30000)\n\nX, Y = np.meshgrid(x, y)\nfig, axes = plt.subplots(1, 3, figsize=(18, 5))\n\n# Streamfunction\nax = axes[0]\ncs = ax.contour(X, Y, psi.T, levels=30, cmap='RdBu_r')\nax.set_title(r'Streamfunction $\\psi$')\nax.set_xlabel('x'); ax.set_ylabel('y')\nax.set_aspect('equal')\nplt.colorbar(cs, ax=ax)\n\n# Vorticity\nax = axes[1]\ncf = ax.contourf(X, Y, omega.T, levels=30, cmap='RdBu_r')\nax.set_title(r'Vorticity $\\omega$')\nax.set_xlabel('x'); ax.set_ylabel('y')\nax.set_aspect('equal')\nplt.colorbar(cf, ax=ax)\n\n# Velocity vectors\nax = axes[2]\nskip = 4\nax.quiver(X[::skip, ::skip], Y[::skip, ::skip],\n          u.T[::skip, ::skip], v.T[::skip, ::skip], scale=20)\nax.set_title('Velocity field')\nax.set_xlabel('x'); ax.set_ylabel('y')\nax.set_aspect('equal')\n\nplt.suptitle(f'Lid-Driven Cavity (Re={100})', fontsize=14)\nplt.tight_layout()\nplt.savefig('cavity_flow.png', dpi=150, bbox_inches='tight')\n```\n\n### 2. Centerline Velocity Profiles (Ghia Benchmark)\n\n```python\n# Compare with Ghia et al. (1982) benchmark data for Re=100\n# Vertical centerline: u(x=0.5, y)\nj_center = len(x) \u002F\u002F 2\nu_centerline = u[j_center, :]\n\nfig, ax = plt.subplots(figsize=(6, 8))\nax.plot(u_centerline, y, 'b-', linewidth=2, label='Computed')\nax.set_xlabel('u')\nax.set_ylabel('y')\nax.set_title(f'Vertical centerline velocity (Re={100})')\nax.legend()\nax.grid(True, alpha=0.3)\nplt.savefig('centerline.png', dpi=150, bbox_inches='tight')\n```\n\n### 3. Flow Past a Cylinder (Immersed Boundary)\n\n```python\ndef cylinder_flow_simple(Nx=200, Ny=100, Re=100, n_steps=10000):\n    \"\"\"\n    Simplified 2D flow past a cylinder using penalty method.\n    For production use, consider lattice Boltzmann or FEniCS.\n    \"\"\"\n    # This is a simplified placeholder — real cylinder flows need\n    # proper immersed boundary or body-fitted coordinates\n    dx = 1.0 \u002F Ny\n    dt = 0.1 * dx \u002F 1.0  # conservative CFL\n\n    # Initialize velocity field with uniform inflow\n    u = np.ones((Nx, Ny))\n    v = np.zeros((Nx, Ny))\n\n    # Cylinder mask\n    cx, cy = Nx\u002F\u002F4, Ny\u002F\u002F2\n    R = Ny \u002F\u002F 10\n    Y_grid, X_grid = np.meshgrid(np.arange(Ny), np.arange(Nx))\n    mask = ((X_grid - cx)**2 + (Y_grid - cy)**2) \u003C R**2\n\n    for step in range(n_steps):\n        # Force velocity to zero inside cylinder\n        u[mask] = 0\n        v[mask] = 0\n        # ... (full NS solver needed for proper simulation)\n\n    return u, v, mask\n```\n\n## Flow Regime Reference\n\n| Re | Flow Type | Characteristics |\n|---|---|---|\n| Re \u003C 1 | Stokes (creeping) | Reversible, no inertia |\n| 1 \u003C Re \u003C 40 | Steady laminar | Attached flow, twin vortices |\n| 40 \u003C Re \u003C 200 | Periodic (Von Karman) | Vortex shedding |\n| 200 \u003C Re \u003C 10⁵ | Turbulent wake | Broad spectrum |\n| Re > 10⁵ | Fully turbulent | Boundary layer transition |\n\n## Validation Checklist\n\n- [ ] Verify divergence-free condition: ∇·u = 0\n- [ ] Check CFL condition: |u|dt\u002Fdx \u003C 1\n- [ ] Compare centerline profiles with Ghia et al. (1982) for cavity\n- [ ] Verify mass conservation: ∫u·n dA = 0\n- [ ] Check symmetry (if problem is symmetric)\n\n## Troubleshooting\n\n| Symptom | Fix |\n|---|---|\n| Solution blows up | CFL too large, reduce dt |\n| Checkerboard pattern | Pressure-velocity decoupling — use staggered grid |\n| Poisson solver slow | Use SOR (ω ≈ 1.5-1.9) or FFT-based solver |\n| Wrong drag coefficient | Insufficient resolution near body surface |\n",{"name":5,"tags":44,"author":48,"license":15,"version":49,"category":34,"description":7,"dependencies":50},[28,45,46,47,22],"Navier-Stokes","Fluid Dynamics","Turbulence","Synthetic Sciences","1.0.0",[51,52,53],"scipy>=1.11.0","numpy>=1.24.0","matplotlib>=3.7.0","main","4aa39efd1cdab0b4657ecee16c92a92011a5b10f","openscience\u002Fbackend\u002Fcli\u002Fskills\u002Fphysics\u002Ffluid-dynamics","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub","https:\u002F\u002Fgithub.com\u002Ffadrienne","2026-10-28 00:43:09",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add fadrienne\u002FMyGitHub --skill fluid-dynamics",{"tool":66,"command":67},"bunx","bunx skills add fadrienne\u002FMyGitHub --skill fluid-dynamics",{"tool":69,"command":70},"pnpm","pnpm dlx skills add fadrienne\u002FMyGitHub --skill fluid-dynamics","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fphysics\u002Ffluid-dynamics\u002FSKILL.md",true,[],[75,106,132,166,193,220],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":86,"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",[81],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[87,88,89,35,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105],"power","statistical power","effect","regression","choose","design","uv","when","Bash","collection","analysis","calculation","ANOVA","conversion","analyze","t-test","chi-square","simulation","sample",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":115,"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",[112],{"categoryNo":113,"categoryName":114,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000008","测试与质量",[97,116,87,117,118,119,94,120,121,122,24,123,124,125,126,127,128,129,130,131],"statistical analysis","academic research","implementing","selection","you","reporting","data","tests","use","with","test","research","results","statsmodels","models","help",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":147,"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",[138,141,142],{"categoryNo":139,"categoryName":140,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":143,"categoryName":144,"taxonomyType":145,"taxonomyTypeDesc":146},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[148,149,150,151,152,153,154,155,156,157,95,158,159,160,161,162,163,164,121,165],"writing","scientific","scientific writing","Citations","deep","deep research","never","papers","journal","false","api","prisma","structure","openrouter","Outlines","core skill","read","features",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":176,"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",[172,175],{"categoryNo":173,"categoryName":174,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},[177,149,178,179,180,181,182,183,184,156,94,185,186,187,188,189,190,191,24,192],"visualization","scientific visualization","error","ready","quick","exploration","meta-skill","Meta","safe","plotly","annotations","formatting","Publication","figures","panel","submission",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":197,"categories":198,"keywords":205,"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",[199,202],{"categoryNo":200,"categoryName":201,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":203,"categoryName":204,"taxonomyType":145,"taxonomyTypeDesc":146},"01JBSEEDCAT000000000000030","开发工程师",[206,207,127,208,209,210,211,93,212,94,95,97,213,214,215,216,217,218,164,219],"code","research code","which","memory","data-analysis","errors","debugging","common","review","data pipelines","run","scripts","line","write",{"skillNo":221,"name":222,"nameZh":6,"description":223,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":224,"licenseFileUrl":6,"sourceHtmlUrl":225,"categories":226,"keywords":233,"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",[227,230,231,232],{"categoryNo":228,"categoryName":229,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":139,"categoryName":140,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":143,"categoryName":144,"taxonomyType":145,"taxonomyTypeDesc":146},[148,234,235,236,237,238,177,239,240,94,95,97,241,242,243,244,245,246,149,164],"markdown mermaid writing","mermaid","markdown","community","diagrams","project","default","team","guides","text","documentation","references","diagram"]