Triage ML Task

SkillProductivity

Lets your agent figure out which machine-learning task step to run next by checking your project state and asking you.

Use Triage ML Task in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Triage ML Task and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the Triage ML Task skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Triage ML TaskStart free
About this skill

Session owner: list installed entry skills and ask which to run. Load a skill without asking only when the request is certain to be that skill. Trigger on an ambiguous request, a finished stage, a workspace-open session, or "what should we do next".

What this skill tells your AI

The instructions your AI receives, as published by probabl-ai/skills in skills/triage-ml-task/SKILL.md and read by Ahel’s review.

This is the session owner. Stage skills do the work; you only route and ask. Do not execute another skill's methodology.

Human-facing prose

Details: setup-workspace references/human_facing_prose.md. Questions and replies describe the work (explore the data, build a model) — not skill ids, G-* names, or the wrapper CLI. Run python -m skore_skills … yourself; do not quote it.

Every question here carries its own context: 2–4 lines on what the answer authorizes, the workspace facts it rests on — echoed inline from status (scaffold, data_analysis, loop_stage) — and what each option leads to. A file link is an addition, never the context.

Procedure

  1. Run python -m skore_skills status. Read skills, data_analysis, loop_stage, and the filesystem snapshot. If .skore is missing, that is expected. Do not treat a missing file as an empty project when src/ or journal/ exist.

  2. Certain request — load that skill. Tell the user the work you are starting, not the catalog id. Do not list the catalog. status.skills is a per-id dict. Load the mapped skill only if status.skills.<id> is true; else one-line skip and do not invent that skill's steps:

    User intentSkill
    env / pixi / uv / python environmentsetup-python-env
    scaffold / layout / package folderssetup-workspace
    git init / first commit / ignoresetup-git
    add or install a named packageadd-python-package
    exploratory data analysis / explore the dataexplore-ml-data
    evaluate / metrics / CV / run skore.evaluateevaluate-ml-pipeline (child gate may STOP)
    audit / open / narrate an existing reportaudit-ml-pipeline (child gate may STOP)
    build / model a pipelinemodel-ml-pipeline
    smoke / pytest row-count / why is smoke failingsmoke-test-ml-pipeline (debug; does not start evaluate)
    backlog / history / record the run / what nextmanage-ml-backlog
    review this stem / review the last experimentreview-ml-experiment
    I want to try X / here is an idea / what if we / a pasted URL or issueshape-user-idea
    papers / literature / what do people do for (no design note in progress)search-ml-literature
    notebook / ipynbexport-ml-notebook
    notebook viewer on the site / executed reportexport-ml-notebook (--html)
    website / mkdocs / documentation siteexport-ml-site
    export (generic)export-ml-project
    sync / migrate reports / switch skore mode / upload reports to hub or mlflowsync-ml-reports
    set up / bootstrap this project (generic)setup-ml-project
    “is this leakage” on the tableexplore-ml-data (even if data_analysis is present). Do not load research-ml-practice.
    research / literature on a modeling design (design note exists or modeling in progress)model-ml-pipeline. Do not load research-ml-practice.
    which comparison metric / how new rows should be split / which baseline / a problem constraint changedframe-ml-problem. Not a request to run evaluation.
    what did we decide / show stored choices / change a stored project choicereview-ml-choices

    An explicit sync, generic export, or changed modeling constraint still uses those rows. Do not send them through review-ml-choices.

    A git init, first commit, or ignore request loads setup-git and stops. Do not write git init, a .gitignore, or a commit plan. With no shell, the whole answer is that setup-git is loaded. Do not describe the commands that skill will run.

    "What should we try next?" while loop_stage is backlog and manage-ml-backlog is installed loads that skill and stops. Do not ask the user to choose explore, build, review, or export.

    Certain EDA: run python -m skore_skills status, load explore-ml-data, stop. Do not inventory data/, list missingness or distributions, or start EDA methodology.

    Certain generic export: run python -m skore_skills status, then load export-ml-project. Do not list notebook / --html / site as sibling options.

    Modeling while status.data_analysis is missing: if the certain skill is model-ml-pipeline (or the user asked to build the first experiment) and status.skills.explore-ml-data is true, do not load modeling yet. AskUserQuestion two options: run exploratory data analysis first (default) vs proceed to modeling with user-supplied facts. Do not invent dataset facts here. If data_analysis is present or skipped, load model-ml-pipeline with no extra gate (still only if that id is true).

  3. Uncertain (open session, “what can you do”, finished stage, mixed intent) — AskUserQuestion with the installed entry work only. One pick, then load the mapped skill.

    Offer a label only if status.skills.<id> is true. User-visible labels (no ids):

    • Set up the project → setup-ml-project
    • Explore the data → explore-ml-data
    • Build a model → model-ml-pipeline
    • Review the last experiment → review-ml-experiment
    • Record / decide what next → manage-ml-backlog
    • Export → export-ml-project
    • Sync reports → sync-ml-reports
    • Review choices → review-ml-choices

    If none of those ids are true, say so in one line; do not invent a menu.

    Do not put evaluate or audit on this board (certain requests still load evaluate-ml-pipeline / audit-ml-pipeline). Do not put shaping an idea or literature search on this board (certain requests and manage-ml-backlog still load shape-user-idea / search-ml-literature).

    If status.data_analysis is missing and status.skills.explore-ml-data is true, recommend exploring the data first. Do not auto-load it. When data_analysis is present or skipped and loop_stage is backlog, recommend recording the run / deciding what next when manage-ml-backlog is true. Do not auto-load it.

    Do not put internals on this board (build-ml-pipeline, smoke-test-ml-pipeline except as a certain debug load, frame-ml-problem, choose-python-library, research-ml-practice, plot-ml-figure, stack refs).

Stop conditions

  • Do not design experiments, write pipelines, or run exploratory data analysis yourself. Certain EDA is load explore-ml-data only — no data inventory and no EDA checklist.
  • Do not load every skill.
  • Do not invent workspace facts when status is unavailable.
  • Do not treat a missing .skore as an empty project when src/ or journal/ exist.
  • Do not invent a missing skill's steps from memory.
  • Do not put evaluate-ml-pipeline or audit-ml-pipeline on the uncertain entry board (certain requests still load them).
  • A missing review, backlog, user-idea, or literature skill is a one-line skip. Do not invent that skill's procedure.
  • Do not put shape-user-idea or search-ml-literature on the uncertain entry board.
  • Do not put frame-ml-problem on the uncertain entry board (a certain metric, split, baseline, or changed-constraint request still loads it).
  • Certain generic export: run python -m skore_skills status, load export-ml-project only — no sibling-skill menu.

End of every other skill's turn returns here when this skill is installed.

Signals

GitHub stars
137
Forks
9
Last commit
Oct 2026
Advanced
Item type
skill
Key
triage-ml-task
Source
github.com/probabl-ai/skills