[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71NY1NSPQ2NHJWABFP8P5TY":3,"skill-same:01M71NY1NSPQ2NHJWABFP8P5TY":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":15,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":60,"ownerHtmlUrl":61,"ownerBlogUrl":62,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M71NY1NSPQ2NHJWABFP8P5TY","senior-data-scientist",null,"Use when designing A\u002FB tests, building statistical or predictive models, feature engineering pipelines or causal inference analyses in Python. Covers sample sizing, two-proportion z-tests, Bonferroni correction, feature pipelines with pandas and scikit-learn and model evaluation for production data science.","monoes\u002Fmonomind","monoes","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F276744696?v=4","01M71KWF37AJ2NJBP3KWBVSDGT","01M71KWF4CSF8ADH0M6HA09VD2",23,"MIT","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fsenior-data-scientist\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fsenior-data-scientist\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"senior data scientist","senior","data","data scientist","python","for","feature","causal inference","experimentation","Evaluation","sample","team","statistics","learn","when","scikit-learn","model","claude-skills","pandas","feature engineering","2026-11-10 10:56:23",false,"---\nname: senior-data-scientist\ndescription: \"Use when designing A\u002FB tests, building statistical or predictive models, feature engineering pipelines or causal inference analyses in Python. Covers sample sizing, two-proportion z-tests, Bonferroni correction, feature pipelines with pandas and scikit-learn and model evaluation for production data science.\"\ntags: [\"data\",\"ai-ml\",\"python\",\"experimentation\",\"statistics\"]\ntools: []\nlicense: MIT\nsource: https:\u002F\u002Fgithub.com\u002Falirezarezvani\u002Fclaude-skills\nsource_path: \"engineering-team\u002Fskills\u002Fsenior-data-scientist\"\nsource_commit: 19392f7a08264ed00486a251f5b2098321771f94\n---\n# Senior Data Scientist\n\nWorld-class senior data scientist skill for production-grade AI\u002FML\u002FData systems.\n\n## Core Workflows\n\n### 1. Design an A\u002FB Test\n\n```python\nimport numpy as np\nfrom scipy import stats\n\ndef calculate_sample_size(baseline_rate, mde, alpha=0.05, power=0.8):\n    \"\"\"\n    Calculate required sample size per variant.\n    baseline_rate: current conversion rate (e.g. 0.10)\n    mde: minimum detectable effect (relative, e.g. 0.05 = 5% lift)\n    \"\"\"\n    p1 = baseline_rate\n    p2 = baseline_rate * (1 + mde)\n    effect_size = abs(p2 - p1) \u002F np.sqrt((p1 * (1 - p1) + p2 * (1 - p2)) \u002F 2)\n    z_alpha = stats.norm.ppf(1 - alpha \u002F 2)\n    z_beta = stats.norm.ppf(power)\n    n = ((z_alpha + z_beta) \u002F effect_size) ** 2\n    return int(np.ceil(n))\n\ndef analyze_experiment(control, treatment, alpha=0.05):\n    \"\"\"\n    Run two-proportion z-test and return structured results.\n    control\u002Ftreatment: dicts with 'conversions' and 'visitors'.\n    \"\"\"\n    p_c = control[\"conversions\"] \u002F control[\"visitors\"]\n    p_t = treatment[\"conversions\"] \u002F treatment[\"visitors\"]\n    pooled = (control[\"conversions\"] + treatment[\"conversions\"]) \u002F (control[\"visitors\"] + treatment[\"visitors\"])\n    se = np.sqrt(pooled * (1 - pooled) * (1 \u002F control[\"visitors\"] + 1 \u002F treatment[\"visitors\"]))\n    z = (p_t - p_c) \u002F se\n    p_value = 2 * (1 - stats.norm.cdf(abs(z)))\n    ci_low = (p_t - p_c) - stats.norm.ppf(1 - alpha \u002F 2) * se\n    ci_high = (p_t - p_c) + stats.norm.ppf(1 - alpha \u002F 2) * se\n    return {\n        \"lift\": (p_t - p_c) \u002F p_c,\n        \"p_value\": p_value,\n        \"significant\": p_value \u003C alpha,\n        \"ci_95\": (ci_low, ci_high),\n    }\n\n# --- Experiment checklist ---\n# 1. Define ONE primary metric and pre-register secondary metrics.\n# 2. Calculate sample size BEFORE starting: calculate_sample_size(0.10, 0.05)\n# 3. Randomise at the user (not session) level to avoid leakage.\n# 4. Run for at least 1 full business cycle (typically 2 weeks).\n# 5. Check for sample ratio mismatch: abs(n_control - n_treatment) \u002F expected \u003C 0.01\n# 6. Analyze with analyze_experiment() and report lift + CI, not just p-value.\n# 7. Apply Bonferroni correction if testing multiple metrics: alpha \u002F n_metrics\n```\n\n### 2. Build a Feature Engineering Pipeline\n\n```python\nimport pandas as pd\nimport numpy as np\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.preprocessing import StandardScaler, OneHotEncoder\nfrom sklearn.impute import SimpleImputer\nfrom sklearn.compose import ColumnTransformer\n\ndef build_feature_pipeline(numeric_cols, categorical_cols, date_cols=None):\n    \"\"\"\n    Returns a fitted-ready ColumnTransformer for structured tabular data.\n    \"\"\"\n    numeric_pipeline = Pipeline([\n        (\"impute\", SimpleImputer(strategy=\"median\")),\n        (\"scale\",  StandardScaler()),\n    ])\n    categorical_pipeline = Pipeline([\n        (\"impute\", SimpleImputer(strategy=\"most_frequent\")),\n        (\"encode\", OneHotEncoder(handle_unknown=\"ignore\", sparse_output=False)),\n    ])\n    transformers = [\n        (\"num\", numeric_pipeline, numeric_cols),\n        (\"cat\", categorical_pipeline, categorical_cols),\n    ]\n    return ColumnTransformer(transformers, remainder=\"drop\")\n\ndef add_time_features(df, date_col):\n    \"\"\"Extract cyclical and lag features from a datetime column.\"\"\"\n    df = df.copy()\n    df[date_col] = pd.to_datetime(df[date_col])\n    df[\"dow_sin\"] = np.sin(2 * np.pi * df[date_col].dt.dayofweek \u002F 7)\n    df[\"dow_cos\"] = np.cos(2 * np.pi * df[date_col].dt.dayofweek \u002F 7)\n    df[\"month_sin\"] = np.sin(2 * np.pi * df[date_col].dt.month \u002F 12)\n    df[\"month_cos\"] = np.cos(2 * np.pi * df[date_col].dt.month \u002F 12)\n    df[\"is_weekend\"] = (df[date_col].dt.dayofweek >= 5).astype(int)\n    return df\n\n# --- Feature engineering checklist ---\n# 1. Never fit transformers on the full dataset — fit on train, transform test.\n# 2. Log-transform right-skewed numeric features before scaling.\n# 3. For high-cardinality categoricals (>50 levels), use target encoding or embeddings.\n# 4. Generate lag\u002Frolling features BEFORE the train\u002Ftest split to avoid leakage.\n# 5. Document each feature's business meaning alongside its code.\n```\n\n### 3. Train, Evaluate, and Select a Prediction Model\n\n```python\nfrom sklearn.model_selection import StratifiedKFold, cross_validate\nfrom sklearn.metrics import make_scorer, roc_auc_score, average_precision_score\nimport xgboost as xgb\nimport mlflow\n\nSCORERS = {\n    \"roc_auc\":  make_scorer(roc_auc_score, needs_proba=True),\n    \"avg_prec\": make_scorer(average_precision_score, needs_proba=True),\n}\n\ndef evaluate_model(model, X, y, cv=5):\n    \"\"\"\n    Cross-validate and return mean ± std for each scorer.\n    Use StratifiedKFold for classification to preserve class balance.\n    \"\"\"\n    cv_results = cross_validate(\n        model, X, y,\n        cv=StratifiedKFold(n_splits=cv, shuffle=True, random_state=42),\n        scoring=SCORERS,\n        return_train_score=True,\n    )\n    summary = {}\n    for metric in SCORERS:\n        test_scores = cv_results[f\"test_{metric}\"]\n        summary[metric] = {\"mean\": test_scores.mean(), \"std\": test_scores.std()}\n        # Flag overfitting: large gap between train and test score\n        train_mean = cv_results[f\"train_{metric}\"].mean()\n        summary[metric][\"overfit_gap\"] = train_mean - test_scores.mean()\n    return summary\n\ndef train_and_log(model, X_train, y_train, X_test, y_test, run_name):\n    \"\"\"Train model and log all artefacts to MLflow.\"\"\"\n    with mlflow.start_run(run_name=run_name):\n        model.fit(X_train, y_train)\n        proba = model.predict_proba(X_test)[:, 1]\n        metrics = {\n            \"roc_auc\":  roc_auc_score(y_test, proba),\n            \"avg_prec\": average_precision_score(y_test, proba),\n        }\n        mlflow.log_params(model.get_params())\n        mlflow.log_metrics(metrics)\n        mlflow.sklearn.log_model(model, \"model\")\n        return metrics\n\n# --- Model evaluation checklist ---\n# 1. Always report AUC-PR alongside AUC-ROC for imbalanced datasets.\n# 2. Check overfit_gap > 0.05 as a warning sign of overfitting.\n# 3. Calibrate probabilities (Platt scaling \u002F isotonic) before production use.\n# 4. Compute SHAP values to validate feature importance makes business sense.\n# 5. Run a baseline (e.g. DummyClassifier) and verify the model beats it.\n# 6. Log every run to MLflow — never rely on notebook output for comparison.\n```\n\n### 4. Causal Inference: Difference-in-Differences\n\n```python\nimport statsmodels.formula.api as smf\n\ndef diff_in_diff(df, outcome, treatment_col, post_col, controls=None):\n    \"\"\"\n    Estimate ATT via OLS DiD with optional covariates.\n    df must have: outcome, treatment_col (0\u002F1), post_col (0\u002F1).\n    Returns the interaction coefficient (treatment × post) and its p-value.\n    \"\"\"\n    covariates = \" + \".join(controls) if controls else \"\"\n    formula = (\n        f\"{outcome} ~ {treatment_col} * {post_col}\"\n        + (f\" + {covariates}\" if covariates else \"\")\n    )\n    result = smf.ols(formula, data=df).fit(cov_type=\"HC3\")\n    interaction = f\"{treatment_col}:{post_col}\"\n    return {\n        \"att\":     result.params[interaction],\n        \"p_value\": result.pvalues[interaction],\n        \"ci_95\":   result.conf_int().loc[interaction].tolist(),\n        \"summary\": result.summary(),\n    }\n\n# --- Causal inference checklist ---\n# 1. Validate parallel trends in pre-period before trusting DiD estimates.\n# 2. Use HC3 robust standard errors to handle heteroskedasticity.\n# 3. For panel data, cluster SEs at the unit level (add groups= param to fit).\n# 4. Consider propensity score matching if groups differ at baseline.\n# 5. Report the ATT with confidence interval, not just statistical significance.\n```\n\n## Reference Documentation\n\n- **Statistical Methods:** `references\u002Fstatistical_methods_advanced.md`\n- **Experiment Design Frameworks:** `references\u002Fexperiment_design_frameworks.md`\n- **Feature Engineering Patterns:** `references\u002Ffeature_engineering_patterns.md`\n\n## Common Commands\n\n```bash\n# Testing & linting\npython -m pytest tests\u002F -v --cov=src\u002F\npython -m black src\u002F && python -m pylint src\u002F\n\n# Bundled pipeline scaffolds (stdlib runners — extend the process() body with project logic)\npython3 scripts\u002Fexperiment_designer.py --input experiment_spec.json --output experiment_design.json\npython3 scripts\u002Ffeature_engineering_pipeline.py --input raw_features.json --output features.json\npython3 scripts\u002Fmodel_evaluation_suite.py --input model_predictions.json --output evaluation.json\n# Each prints a JSON run report ({status, processed_items, start\u002Fend_time}); any status other\n# than \"completed\" means the stage failed — fix before moving to the next pipeline stage.\n```\n","# Senior Data Scientist\n\nWorld-class senior data scientist skill for production-grade AI\u002FML\u002FData systems.\n\n## Core Workflows\n\n### 1. Design an A\u002FB Test\n\n```python\nimport numpy as np\nfrom scipy import stats\n\ndef calculate_sample_size(baseline_rate, mde, alpha=0.05, power=0.8):\n    \"\"\"\n    Calculate required sample size per variant.\n    baseline_rate: current conversion rate (e.g. 0.10)\n    mde: minimum detectable effect (relative, e.g. 0.05 = 5% lift)\n    \"\"\"\n    p1 = baseline_rate\n    p2 = baseline_rate * (1 + mde)\n    effect_size = abs(p2 - p1) \u002F np.sqrt((p1 * (1 - p1) + p2 * (1 - p2)) \u002F 2)\n    z_alpha = stats.norm.ppf(1 - alpha \u002F 2)\n    z_beta = stats.norm.ppf(power)\n    n = ((z_alpha + z_beta) \u002F effect_size) ** 2\n    return int(np.ceil(n))\n\ndef analyze_experiment(control, treatment, alpha=0.05):\n    \"\"\"\n    Run two-proportion z-test and return structured results.\n    control\u002Ftreatment: dicts with 'conversions' and 'visitors'.\n    \"\"\"\n    p_c = control[\"conversions\"] \u002F control[\"visitors\"]\n    p_t = treatment[\"conversions\"] \u002F treatment[\"visitors\"]\n    pooled = (control[\"conversions\"] + treatment[\"conversions\"]) \u002F (control[\"visitors\"] + treatment[\"visitors\"])\n    se = np.sqrt(pooled * (1 - pooled) * (1 \u002F control[\"visitors\"] + 1 \u002F treatment[\"visitors\"]))\n    z = (p_t - p_c) \u002F se\n    p_value = 2 * (1 - stats.norm.cdf(abs(z)))\n    ci_low = (p_t - p_c) - stats.norm.ppf(1 - alpha \u002F 2) * se\n    ci_high = (p_t - p_c) + stats.norm.ppf(1 - alpha \u002F 2) * se\n    return {\n        \"lift\": (p_t - p_c) \u002F p_c,\n        \"p_value\": p_value,\n        \"significant\": p_value \u003C alpha,\n        \"ci_95\": (ci_low, ci_high),\n    }\n\n# --- Experiment checklist ---\n# 1. Define ONE primary metric and pre-register secondary metrics.\n# 2. Calculate sample size BEFORE starting: calculate_sample_size(0.10, 0.05)\n# 3. Randomise at the user (not session) level to avoid leakage.\n# 4. Run for at least 1 full business cycle (typically 2 weeks).\n# 5. Check for sample ratio mismatch: abs(n_control - n_treatment) \u002F expected \u003C 0.01\n# 6. Analyze with analyze_experiment() and report lift + CI, not just p-value.\n# 7. Apply Bonferroni correction if testing multiple metrics: alpha \u002F n_metrics\n```\n\n### 2. Build a Feature Engineering Pipeline\n\n```python\nimport pandas as pd\nimport numpy as np\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.preprocessing import StandardScaler, OneHotEncoder\nfrom sklearn.impute import SimpleImputer\nfrom sklearn.compose import ColumnTransformer\n\ndef build_feature_pipeline(numeric_cols, categorical_cols, date_cols=None):\n    \"\"\"\n    Returns a fitted-ready ColumnTransformer for structured tabular data.\n    \"\"\"\n    numeric_pipeline = Pipeline([\n        (\"impute\", SimpleImputer(strategy=\"median\")),\n        (\"scale\",  StandardScaler()),\n    ])\n    categorical_pipeline = Pipeline([\n        (\"impute\", SimpleImputer(strategy=\"most_frequent\")),\n        (\"encode\", OneHotEncoder(handle_unknown=\"ignore\", sparse_output=False)),\n    ])\n    transformers = [\n        (\"num\", numeric_pipeline, numeric_cols),\n        (\"cat\", categorical_pipeline, categorical_cols),\n    ]\n    return ColumnTransformer(transformers, remainder=\"drop\")\n\ndef add_time_features(df, date_col):\n    \"\"\"Extract cyclical and lag features from a datetime column.\"\"\"\n    df = df.copy()\n    df[date_col] = pd.to_datetime(df[date_col])\n    df[\"dow_sin\"] = np.sin(2 * np.pi * df[date_col].dt.dayofweek \u002F 7)\n    df[\"dow_cos\"] = np.cos(2 * np.pi * df[date_col].dt.dayofweek \u002F 7)\n    df[\"month_sin\"] = np.sin(2 * np.pi * df[date_col].dt.month \u002F 12)\n    df[\"month_cos\"] = np.cos(2 * np.pi * df[date_col].dt.month \u002F 12)\n    df[\"is_weekend\"] = (df[date_col].dt.dayofweek >= 5).astype(int)\n    return df\n\n# --- Feature engineering checklist ---\n# 1. Never fit transformers on the full dataset — fit on train, transform test.\n# 2. Log-transform right-skewed numeric features before scaling.\n# 3. For high-cardinality categoricals (>50 levels), use target encoding or embeddings.\n# 4. Generate lag\u002Frolling features BEFORE the train\u002Ftest split to avoid leakage.\n# 5. Document each feature's business meaning alongside its code.\n```\n\n### 3. Train, Evaluate, and Select a Prediction Model\n\n```python\nfrom sklearn.model_selection import StratifiedKFold, cross_validate\nfrom sklearn.metrics import make_scorer, roc_auc_score, average_precision_score\nimport xgboost as xgb\nimport mlflow\n\nSCORERS = {\n    \"roc_auc\":  make_scorer(roc_auc_score, needs_proba=True),\n    \"avg_prec\": make_scorer(average_precision_score, needs_proba=True),\n}\n\ndef evaluate_model(model, X, y, cv=5):\n    \"\"\"\n    Cross-validate and return mean ± std for each scorer.\n    Use StratifiedKFold for classification to preserve class balance.\n    \"\"\"\n    cv_results = cross_validate(\n        model, X, y,\n        cv=StratifiedKFold(n_splits=cv, shuffle=True, random_state=42),\n        scoring=SCORERS,\n        return_train_score=True,\n    )\n    summary = {}\n    for metric in SCORERS:\n        test_scores = cv_results[f\"test_{metric}\"]\n        summary[metric] = {\"mean\": test_scores.mean(), \"std\": test_scores.std()}\n        # Flag overfitting: large gap between train and test score\n        train_mean = cv_results[f\"train_{metric}\"].mean()\n        summary[metric][\"overfit_gap\"] = train_mean - test_scores.mean()\n    return summary\n\ndef train_and_log(model, X_train, y_train, X_test, y_test, run_name):\n    \"\"\"Train model and log all artefacts to MLflow.\"\"\"\n    with mlflow.start_run(run_name=run_name):\n        model.fit(X_train, y_train)\n        proba = model.predict_proba(X_test)[:, 1]\n        metrics = {\n            \"roc_auc\":  roc_auc_score(y_test, proba),\n            \"avg_prec\": average_precision_score(y_test, proba),\n        }\n        mlflow.log_params(model.get_params())\n        mlflow.log_metrics(metrics)\n        mlflow.sklearn.log_model(model, \"model\")\n        return metrics\n\n# --- Model evaluation checklist ---\n# 1. Always report AUC-PR alongside AUC-ROC for imbalanced datasets.\n# 2. Check overfit_gap > 0.05 as a warning sign of overfitting.\n# 3. Calibrate probabilities (Platt scaling \u002F isotonic) before production use.\n# 4. Compute SHAP values to validate feature importance makes business sense.\n# 5. Run a baseline (e.g. DummyClassifier) and verify the model beats it.\n# 6. Log every run to MLflow — never rely on notebook output for comparison.\n```\n\n### 4. Causal Inference: Difference-in-Differences\n\n```python\nimport statsmodels.formula.api as smf\n\ndef diff_in_diff(df, outcome, treatment_col, post_col, controls=None):\n    \"\"\"\n    Estimate ATT via OLS DiD with optional covariates.\n    df must have: outcome, treatment_col (0\u002F1), post_col (0\u002F1).\n    Returns the interaction coefficient (treatment × post) and its p-value.\n    \"\"\"\n    covariates = \" + \".join(controls) if controls else \"\"\n    formula = (\n        f\"{outcome} ~ {treatment_col} * {post_col}\"\n        + (f\" + {covariates}\" if covariates else \"\")\n    )\n    result = smf.ols(formula, data=df).fit(cov_type=\"HC3\")\n    interaction = f\"{treatment_col}:{post_col}\"\n    return {\n        \"att\":     result.params[interaction],\n        \"p_value\": result.pvalues[interaction],\n        \"ci_95\":   result.conf_int().loc[interaction].tolist(),\n        \"summary\": result.summary(),\n    }\n\n# --- Causal inference checklist ---\n# 1. Validate parallel trends in pre-period before trusting DiD estimates.\n# 2. Use HC3 robust standard errors to handle heteroskedasticity.\n# 3. For panel data, cluster SEs at the unit level (add groups= param to fit).\n# 4. Consider propensity score matching if groups differ at baseline.\n# 5. Report the ATT with confidence interval, not just statistical significance.\n```\n\n## Reference Documentation\n\n- **Statistical Methods:** `references\u002Fstatistical_methods_advanced.md`\n- **Experiment Design Frameworks:** `references\u002Fexperiment_design_frameworks.md`\n- **Feature Engineering Patterns:** `references\u002Ffeature_engineering_patterns.md`\n\n## Common Commands\n\n```bash\n# Testing & linting\npython -m pytest tests\u002F -v --cov=src\u002F\npython -m black src\u002F && python -m pylint src\u002F\n\n# Bundled pipeline scaffolds (stdlib runners — extend the process() body with project logic)\npython3 scripts\u002Fexperiment_designer.py --input experiment_spec.json --output experiment_design.json\npython3 scripts\u002Ffeature_engineering_pipeline.py --input raw_features.json --output features.json\npython3 scripts\u002Fmodel_evaluation_suite.py --input model_predictions.json --output evaluation.json\n# Each prints a JSON run report ({status, processed_items, start\u002Fend_time}); any status other\n# than \"completed\" means the stage failed — fix before moving to the next pipeline stage.\n```\n",{"name":5,"tags":49,"tools":51,"source":52,"license":14,"description":7,"source_path":53,"source_commit":54},[26,50,28,32,36],"ai-ml",[],"https:\u002F\u002Fgithub.com\u002Falirezarezvani\u002Fclaude-skills","engineering-team\u002Fskills\u002Fsenior-data-scientist","19392f7a08264ed00486a251f5b2098321771f94","main","f7cd4595d0f8959822163e14f9787117765c931a","packages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fsenior-data-scientist",2,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind","https:\u002F\u002Fmonoes.github.io\u002Fmonomind\u002F","https:\u002F\u002Fgithub.com\u002Fmonoes","https:\u002F\u002Fmonoes.me","2026-11-10 01:53:48",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add monoes\u002Fmonomind --skill senior-data-scientist",{"tool":70,"command":71},"bunx","bunx skills add monoes\u002Fmonomind --skill senior-data-scientist",{"tool":73,"command":74},"pnpm","pnpm dlx skills add monoes\u002Fmonomind --skill senior-data-scientist","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fsenior-data-scientist\u002FSKILL.md",true,[78,83,89,92],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":15},"LICENSE.txt","LICENSE","许可证",1072,{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fexperiment_design_frameworks.md","REFERENCE","参考文档",1435,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fsenior-data-scientist\u002Freferences\u002Fexperiment_design_frameworks.md",{"path":90,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":91},"references\u002Ffeature_engineering_patterns.md","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fsenior-data-scientist\u002Freferences\u002Ffeature_engineering_patterns.md",{"path":93,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":94},"references\u002Fstatistical_methods_advanced.md","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fsenior-data-scientist\u002Freferences\u002Fstatistical_methods_advanced.md",[96,125,158,184,205,232],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":124},"01M71PB3SHWKMNJM6MD65VX8D6","zk-steward","Org role guidance for a ZK steward: engineer zero-knowledge proof systems with circuit design, SNARK vs STARK choice and security review. This is zero-knowledge cryptography, not Zettelkasten note-taking.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fzk-steward\u002FSKILL.md",[],[104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123],"zk","zk steward","steward","zero-knowledge","engineer","choice","design","knowledge","impact","query","snark","review","monomind","security review","stark","zettelkasten","cryptography","security","org","blockchain","2026-11-10 13:02:02",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":129,"sourceHtmlUrl":130,"categories":131,"keywords":140,"publishedAt":124},"01M71PB18SDG28WBKPKJNB814K","writing-plans","Use when you have a spec or requirements for a multi-step coding task and must write an implementation plan before touching code. Produces bite-sized TDD tasks with exact file paths, code and commands for an engineer with zero context.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwriting-plans\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwriting-plans\u002FSKILL.md",[132,137],{"categoryNo":133,"categoryName":134,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":138,"categoryName":139,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[141,142,143,108,144,145,38,146,113,147,148,149,150,151,152,153,154,155,156,157],"writing","writing plans","plans","superpowers","implementation plan","you","code","tasks","plan","product","write","commands","paths","suggest","coding","context","ZeRO",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":100,"licenseFileUrl":162,"sourceHtmlUrl":163,"categories":164,"keywords":168,"publishedAt":124},"01M71PAXFM488X9ARXK0T04TF5","write-spec","Write a feature spec or PRD from a problem statement or feature idea. Use when turning a vague idea or user request into a structured document, scoping a feature with goals and non-goals, defining success metrics and acceptance criteria, or breaking a big ask into a phased spec.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-spec\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-spec\u002FSKILL.md",[165],{"categoryNo":166,"categoryName":167,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000031","产品经理",[151,169,170,171,172,111,173,38,174,175,176,150,177,178,179,180,30,181,182,183],"write spec","spec","user request","problem","acceptance","ask","vague","work","request","scoping","idea","metrics","problem statement","use","document",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":100,"licenseFileUrl":188,"sourceHtmlUrl":189,"categories":190,"keywords":192,"publishedAt":124},"01M71PASSZY800C0RPEARBS918","write-query","Write optimized SQL for your dialect with best practices. Use when translating a natural-language data need into SQL, building a multi-CTE query with joins and aggregations, optimizing a query against a large partitioned table, or getting dialect-specific syntax for Snowflake, BigQuery, Postgres, etc.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-query\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-query\u002FSKILL.md",[191],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[113,151,193,194,29,195,111,182,38,196,197,198,199,176,200,201,202,203,204,26],"write query","postgres","snowflake","best practices","natural-language","with","multi","github","sql","https","syntax","plugins",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":217,"publishedAt":124},"01M71PAPTX0T3PF6ETFVR96SJJ","workflow-automation","Org role guidance for workflow automation: build and maintain CI\u002FCD definitions in GitHub Actions or equivalent: triggers, jobs, matrices, caching. Covers path filters, dependency caching, parallel jobs, timeouts and fail-fast ordering.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fworkflow-automation\u002FSKILL.md",[211,214],{"categoryNo":212,"categoryName":213,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":215,"categoryName":216,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000023","Skill与智能体开发",[218,219,220,221,29,222,223,224,225,112,226,227,228,113,116,200,229,230,231,202],"Workflow Automation","automation","workflow","parallel","actions","ci","triggers","github actions","maintain","filters","caching","build","dependency","devops",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":100,"licenseFileUrl":6,"sourceHtmlUrl":236,"categories":237,"keywords":239,"publishedAt":124},"01M71PAM19Z1XTV9NPCFSE2MY8","workflow-architect","Org role guidance for a workflow architect: map full workflow trees for systems, user journeys and agents, covering every branch and failure. Covers discovering workflows from code, handoff contracts, timeouts, recovery paths and observable state.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fworkflow-architect\u002FSKILL.md",[238],{"categoryNo":215,"categoryName":216,"taxonomyType":135,"taxonomyTypeDesc":136},[220,240,241,242,243,244,245,29,246,247,147,248,249,250,116,200,251,252,202,253],"workflow architect","architect","trees","user journeys","branch","planning","map","workflows","architecture","state","leadership","recovery","operations","systems"]