[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EKZYA4EE7QHSZHB8YRJTPC":3,"skill-same:01M6EKZYA4EE7QHSZHB8YRJTPC":108},{"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":23,"publishedAt":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6EKZYA4EE7QHSZHB8YRJTPC","prediction-workflow-overview",null,"Four-stage end-to-end supervised prediction pipeline orchestrated across DataEngineer → Analyst.","cgpan\u002Fedm-ars-public","cgpan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F118746117?v=4","01M6EKT5TG36Q3GH340QN8RH08","Chenguang Pan","01M6EKT5YTQVRARGJF0VPA1SY7",5,"MIT","https:\u002F\u002Fgithub.com\u002Fcgpan\u002Fedm-ars-public\u002Fblob\u002Fmain\u002Fskills\u002Ftask-type\u002Fprediction-workflow-overview\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33],"workflow","overview","prediction workflow overview","pipeline","task","across","analyst","stage","end","type","2026-11-10 10:12:30",false,"---\nname: prediction-workflow-overview\nlayer: task-type\ndescription: Four-stage end-to-end supervised prediction pipeline orchestrated across DataEngineer → Analyst.\ntrigger_keywords:\n  - prediction\n  - workflow\n  - pipeline\n  - stages\n  - stage\napplicable_task_types:\n  - prediction\napplicable_datasets: []\napplicable_stages:\n  - DataEngineer\n  - Analyst\npriority: 1\nreferences_skills: []\nresources: []\nversion: \"1.0\"\n---\n\n# Prediction Workflow Overview\n\nEnd-to-end supervised prediction has four stages, executed in order\nby the orchestrator. Each stage corresponds to a unit of agent work\nand emits artifacts the next stage consumes.\n\n## Stage map\n\n| # | Stage | Agent | Inputs | Primary outputs |\n|---|---|---|---|---|\n| 1 | Data preparation | DataEngineer | `research_spec.json`, dataset registry, raw CSV path | `train_X.csv`, `train_y.csv`, `test_X.csv`, `test_y.csv`, `test_protected.csv`, `train_school_ids.csv`, `test_school_ids.csv`, `data_report.json` |\n| 2 | Model training | Analyst | training partition + `data_report.json` + `research_spec.json` | tuned base models + StackingEnsemble (in-memory) |\n| 3 | Evaluation | Analyst (continues) | trained models + held-out test set | `results.all_models` metrics + bootstrap CIs + `model_comparison.csv` + ROC\u002Fcalibration\u002Fconfusion or residual plot |\n| 4 | Interpretation | Analyst (continues) | best individual model + test set + `test_protected.csv` | SHAP figures + `feature_importance.csv` + PDPs + `subgroup_performance.csv` + ICC + clustered CIs + sensitivity analysis |\n\nThe Critic reviews stage 1, 2, 3, 4 outputs together; the Writer\nconsumes everything plus the OutlineAgent's outline.\n\n## Stage 1 — Data preparation (substep IDs)\n\nSubsteps from `data_registry\u002Ftask_templates\u002Fprediction.yaml`:\n\n| ID | Step | Notes |\n|---|---|---|\n| `dp_01` | `load_raw_data` | `pd.read_csv(raw_data_path)`. Path is provided in user message — see `core-data-engineer-role` for the exact convention. |\n| `dp_02` | `select_variables` | Keep predictor cols + outcome + subgroup cols + dataset-specific extras (e.g. school fingerprint vars for HSLS). |\n| `dp_03` | `recode_nces_missing` | Replace numeric sentinels and text labels with `NaN`. See dataset skills `hsls09-missing-codes`, `hsls09-csv-format-quirks`. |\n| `dp_04` | `drop_missing_outcome` | Always drop missing outcomes; never impute the outcome. |\n| `dp_05` | `assess_missingness` | Per-column `pct_missing` on the analytic sample (post outcome-drop). |\n| `dp_06` | `apply_missing_data_protocol` | See `missingness-tiered-protocol`. Snapshot subgroup labels BEFORE imputation. |\n| `dp_07` | `school_cluster_reconstruction` | When the dataset suppresses cluster IDs (HSLS:09), recover pseudo-IDs via `cluster-id-reconstruction-from-fingerprints` + `hsls09-school-fingerprints`. |\n| `dp_08` | `grouped_train_test_split` | See `school-aware-train-test-split`. Run AFTER reconstruction, BEFORE encoding. |\n| `dp_09` | `save_test_protected` | Save pre-encoding subgroup labels for the Analyst. |\n| `dp_10` | `encode_categoricals` | `pd.get_dummies(drop_first=True)` on training set; `reindex(columns=...)` on test. |\n| `dp_11` | `drop_constant_columns` | Drop zero-variance columns after encoding. |\n| `dp_12` | `report_class_balance` | Binary outcomes: `is_imbalanced: true` if minority \u003C 20%. |\n| `dp_13` | `save_outputs` + `add_multilevel_warning` | Save train\u002Ftest CSVs; append the multilevel limitation warning to `data_report.warnings`. |\n\n## Stage 2 — Model training\n\nSee `prediction-model-battery` (which composes the six per-family\nskills). Order: baseline → RF → XGBoost → ElasticNet → MLP →\nStackingEnsemble.\n\n## Stage 3 — Evaluation\n\nSee `prediction-evaluation-classification` \u002F\n`prediction-evaluation-regression`. All metrics on the held-out test\nset; bootstrap CIs for the primary metric; figures saved at 150+ dpi.\n\n## Stage 4 — Interpretation\n\n- Quality gate (`prediction-quality-gate`) BEFORE SHAP.\n- SHAP for the best individual model (`shap-explainer-selection`).\n- PDPs for top 3 features.\n- Subgroup analysis (`subgroup-fairness-analysis`).\n- ICC + clustered CIs (`clustered-bootstrap-ci-and-icc`).\n- Sensitivity analysis if any predictor has > 20% missingness\n  (`sensitivity-analysis-high-missingness`).\n\n## ABORT and REVISE rules\n\nABORT (orchestrator-side, before invoking Critic):\n- `data_report.validation_passed == false`\n- `analytic_n \u003C 1000`\n- `JSONDecodeError` from `parse_llm_json()` on agent output\n\nABORT (Critic-issued):\n- Confirmed temporal or target leakage\n- Unanswerable research question\n\nREVISE (Critic-issued):\n- Any critical issue\n- More than 2 major issues\n- `overall_quality_score \u003C 7`\n- Up to `max_revision_cycles` (config); when exhausted, proceed to\n  WRITING with the UNVERIFIED flag set (see writing skill\n  `unverified-flag-and-appendix`).\n\n## Source provenance\n\nCanonical source: `data_registry\u002Ftask_templates\u002Fprediction.yaml`\n§`standard_workflow` (L105-L635) + §`quality_gates`. Per-step details\nare in the linked methodology, dataset, and per-family skills.\n","# Prediction Workflow Overview\n\nEnd-to-end supervised prediction has four stages, executed in order\nby the orchestrator. Each stage corresponds to a unit of agent work\nand emits artifacts the next stage consumes.\n\n## Stage map\n\n| # | Stage | Agent | Inputs | Primary outputs |\n|---|---|---|---|---|\n| 1 | Data preparation | DataEngineer | `research_spec.json`, dataset registry, raw CSV path | `train_X.csv`, `train_y.csv`, `test_X.csv`, `test_y.csv`, `test_protected.csv`, `train_school_ids.csv`, `test_school_ids.csv`, `data_report.json` |\n| 2 | Model training | Analyst | training partition + `data_report.json` + `research_spec.json` | tuned base models + StackingEnsemble (in-memory) |\n| 3 | Evaluation | Analyst (continues) | trained models + held-out test set | `results.all_models` metrics + bootstrap CIs + `model_comparison.csv` + ROC\u002Fcalibration\u002Fconfusion or residual plot |\n| 4 | Interpretation | Analyst (continues) | best individual model + test set + `test_protected.csv` | SHAP figures + `feature_importance.csv` + PDPs + `subgroup_performance.csv` + ICC + clustered CIs + sensitivity analysis |\n\nThe Critic reviews stage 1, 2, 3, 4 outputs together; the Writer\nconsumes everything plus the OutlineAgent's outline.\n\n## Stage 1 — Data preparation (substep IDs)\n\nSubsteps from `data_registry\u002Ftask_templates\u002Fprediction.yaml`:\n\n| ID | Step | Notes |\n|---|---|---|\n| `dp_01` | `load_raw_data` | `pd.read_csv(raw_data_path)`. Path is provided in user message — see `core-data-engineer-role` for the exact convention. |\n| `dp_02` | `select_variables` | Keep predictor cols + outcome + subgroup cols + dataset-specific extras (e.g. school fingerprint vars for HSLS). |\n| `dp_03` | `recode_nces_missing` | Replace numeric sentinels and text labels with `NaN`. See dataset skills `hsls09-missing-codes`, `hsls09-csv-format-quirks`. |\n| `dp_04` | `drop_missing_outcome` | Always drop missing outcomes; never impute the outcome. |\n| `dp_05` | `assess_missingness` | Per-column `pct_missing` on the analytic sample (post outcome-drop). |\n| `dp_06` | `apply_missing_data_protocol` | See `missingness-tiered-protocol`. Snapshot subgroup labels BEFORE imputation. |\n| `dp_07` | `school_cluster_reconstruction` | When the dataset suppresses cluster IDs (HSLS:09), recover pseudo-IDs via `cluster-id-reconstruction-from-fingerprints` + `hsls09-school-fingerprints`. |\n| `dp_08` | `grouped_train_test_split` | See `school-aware-train-test-split`. Run AFTER reconstruction, BEFORE encoding. |\n| `dp_09` | `save_test_protected` | Save pre-encoding subgroup labels for the Analyst. |\n| `dp_10` | `encode_categoricals` | `pd.get_dummies(drop_first=True)` on training set; `reindex(columns=...)` on test. |\n| `dp_11` | `drop_constant_columns` | Drop zero-variance columns after encoding. |\n| `dp_12` | `report_class_balance` | Binary outcomes: `is_imbalanced: true` if minority \u003C 20%. |\n| `dp_13` | `save_outputs` + `add_multilevel_warning` | Save train\u002Ftest CSVs; append the multilevel limitation warning to `data_report.warnings`. |\n\n## Stage 2 — Model training\n\nSee `prediction-model-battery` (which composes the six per-family\nskills). Order: baseline → RF → XGBoost → ElasticNet → MLP →\nStackingEnsemble.\n\n## Stage 3 — Evaluation\n\nSee `prediction-evaluation-classification` \u002F\n`prediction-evaluation-regression`. All metrics on the held-out test\nset; bootstrap CIs for the primary metric; figures saved at 150+ dpi.\n\n## Stage 4 — Interpretation\n\n- Quality gate (`prediction-quality-gate`) BEFORE SHAP.\n- SHAP for the best individual model (`shap-explainer-selection`).\n- PDPs for top 3 features.\n- Subgroup analysis (`subgroup-fairness-analysis`).\n- ICC + clustered CIs (`clustered-bootstrap-ci-and-icc`).\n- Sensitivity analysis if any predictor has > 20% missingness\n  (`sensitivity-analysis-high-missingness`).\n\n## ABORT and REVISE rules\n\nABORT (orchestrator-side, before invoking Critic):\n- `data_report.validation_passed == false`\n- `analytic_n \u003C 1000`\n- `JSONDecodeError` from `parse_llm_json()` on agent output\n\nABORT (Critic-issued):\n- Confirmed temporal or target leakage\n- Unanswerable research question\n\nREVISE (Critic-issued):\n- Any critical issue\n- More than 2 major issues\n- `overall_quality_score \u003C 7`\n- Up to `max_revision_cycles` (config); when exhausted, proceed to\n  WRITING with the UNVERIFIED flag set (see writing skill\n  `unverified-flag-and-appendix`).\n\n## Source provenance\n\nCanonical source: `data_registry\u002Ftask_templates\u002Fprediction.yaml`\n§`standard_workflow` (L105-L635) + §`quality_gates`. Per-step details\nare in the linked methodology, dataset, and per-family skills.\n",{"name":5,"layer":39,"version":40,"priority":41,"resources":42,"description":7,"trigger_keywords":43,"applicable_stages":46,"references_skills":49,"applicable_datasets":50,"applicable_task_types":51},"task-type","1.0",1,[],[44,24,27,45,31],"prediction","stages",[47,48],"DataEngineer","Analyst",[],[],[44],"main","1aeaead66d2bf876109f3b101005d2eed54041d9","skills\u002Ftask-type\u002Fprediction-workflow-overview",0,"https:\u002F\u002Fgithub.com\u002Fcgpan\u002Fedm-ars-public","https:\u002F\u002Fgithub.com\u002Fcgpan","https:\u002F\u002Fcpan.ai","Ph.D. candidate in Measurement, Evaluation, and Statistics.","2026-09-28 20:39:06",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add cgpan\u002Fedm-ars-public --skill prediction-workflow-overview",{"tool":67,"command":68},"bunx","bunx skills add cgpan\u002Fedm-ars-public --skill prediction-workflow-overview",{"tool":70,"command":71},"pnpm","pnpm dlx skills add cgpan\u002Fedm-ars-public --skill prediction-workflow-overview","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcgpan\u002Fedm-ars-public\u002Fblob\u002Fmain\u002Fskills\u002Ftask-type\u002Fprediction-workflow-overview\u002FSKILL.md",true,[75,81,85,91,95,99,102],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"animation-patterns.md","REFERENCE","参考文档",33,"https:\u002F\u002Fgithub.com\u002Fangel5002\u002Fkfc-arquitectura-empresarial\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-slides\u002Fplugins\u002Ffrontend-slides\u002Fskills\u002Ffrontend-slides\u002Fanimation-patterns.md",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"html-template.md",28,"https:\u002F\u002Fgithub.com\u002Fangel5002\u002Fkfc-arquitectura-empresarial\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-slides\u002Fplugins\u002Ffrontend-slides\u002Fskills\u002Ffrontend-slides\u002Fhtml-template.md",{"path":86,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":89,"sourceHtmlUrl":90},"scripts\u002Fdeploy.sh","SCRIPT","脚本",32,"https:\u002F\u002Fgithub.com\u002Fangel5002\u002Fkfc-arquitectura-empresarial\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-slides\u002Fplugins\u002Ffrontend-slides\u002Fskills\u002Ffrontend-slides\u002Fscripts\u002Fdeploy.sh",{"path":92,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":93,"sourceHtmlUrl":94},"scripts\u002Fexport-pdf.sh",36,"https:\u002F\u002Fgithub.com\u002Fangel5002\u002Fkfc-arquitectura-empresarial\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-slides\u002Fplugins\u002Ffrontend-slides\u002Fskills\u002Ffrontend-slides\u002Fscripts\u002Fexport-pdf.sh",{"path":96,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":97,"sourceHtmlUrl":98},"scripts\u002Fextract-pptx.py",38,"https:\u002F\u002Fgithub.com\u002Fangel5002\u002Fkfc-arquitectura-empresarial\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-slides\u002Fplugins\u002Ffrontend-slides\u002Fskills\u002Ffrontend-slides\u002Fscripts\u002Fextract-pptx.py",{"path":100,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":101},"STYLE_PRESETS.md","https:\u002F\u002Fgithub.com\u002Fangel5002\u002Fkfc-arquitectura-empresarial\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-slides\u002Fplugins\u002Ffrontend-slides\u002Fskills\u002Ffrontend-slides\u002FSTYLE_PRESETS.md",{"path":103,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":106,"sourceHtmlUrl":107},"viewport-base.css","OTHER","其他",29,"https:\u002F\u002Fgithub.com\u002Fangel5002\u002Fkfc-arquitectura-empresarial\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-slides\u002Fplugins\u002Ffrontend-slides\u002Fskills\u002Ffrontend-slides\u002Fviewport-base.css",[109,130,141,150,163,174],{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":123,"publishedAt":34},"01M6EM1ZTQZVAP90DZTVBHCCFB","acm-fixture","Fixture writing skill for ACM acmart sigconf paper output.","https:\u002F\u002Fgithub.com\u002Fcgpan\u002Fedm-ars-public\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fwriting\u002Facm-fixture\u002FSKILL.md",[115,118],{"categoryNo":116,"categoryName":117,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[124,125,126,127,128,129],"acm fixture","fixture","writing","LaTeX","writer","paper",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":34},"01M6EM1XNFETAZFGPHQPAXKBYN","prediction-fixture","Fixture skill for the prediction task type; references shap-fixture.","https:\u002F\u002Fgithub.com\u002Fcgpan\u002Fedm-ars-public\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Ftask-type\u002Fprediction-fixture\u002FSKILL.md",[],[125,137,28,33,138,139,140,30],"prediction fixture","references","fixture skill","shap",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":34},"01M6EM1V4MQXYGQ7K2ZDJRAPSM","causal-fixture","Fixture skill for the causal_inference task type.","https:\u002F\u002Fgithub.com\u002Fcgpan\u002Fedm-ars-public\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Ftask-type\u002Fcausal-fixture\u002FSKILL.md",[],[125,148,33,28,149,139],"causal fixture","inference",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":34},"01M6EM1SCWFZZ2ACSAP65GNWK9","shap-fixture","Fixture methodology for SHAP feature importance analysis.","https:\u002F\u002Fgithub.com\u002Fcgpan\u002Fedm-ars-public\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fmethodology\u002Fshap-fixture\u002FSKILL.md",[],[157,125,140,158,159,160,161,162],"shap fixture","feature importance","methodology","analysis","explainer","feature",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":34},"01M6EM1PZC1MK1G0D1YFVYAQ9W","cluster-recon-fixture","Fixture methodology for reconstructing cluster IDs from fingerprint variables.","https:\u002F\u002Fgithub.com\u002Fcgpan\u002Fedm-ars-public\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fmethodology\u002Fcluster-recon-fixture\u002FSKILL.md",[],[170,171,172,125,173,159],"recon","cluster recon fixture","cluster","ids",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":34},"01M6EM1MZVKMSWEXZ7TJ45DS04","hsls09-fixture","Fixture skill for HSLS:09 with a bundled YAML resource and one cross-reference.","https:\u002F\u002Fgithub.com\u002Fcgpan\u002Fedm-ars-public\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fdataset\u002Fhsls09-fixture\u002FSKILL.md",[],[125,181,182,183,184,139,185,170,172,186],"hsls09 fixture","yaml","public","reference","dataset","registry"]