manage-ml-backlog
Skill144 starsChanged 17 days agoBSD-3-ClauseView on GitHub
Record experiment outcomes and triage idea files. A promoted idea moves from the Ideas table into a Backlog row. Record an experiment outcome in History and triage idea files. Summarize open, discarded, and aside ideas in the JOURNAL Ideas table. Move a row into Backlog when it is promoted, and keep the idea file. Also supports the model-entry selection mode: show real B<N> rows supplied by the deterministic CLI and consume one into a proposal. Trigger after audit, when a run finishes, when the user asks what to try next or to triage idea files, or when model-ml-pipeline routes its Backlog choice here. This is cadence, not a methodology owner.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- probabl-ai/skore-skillsword for word, first seen Oct 15, 2026
Other versions1 project uses a version of this.
Word for word · 1
- probabl-ai/skore-skills★ 144100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository26 other files it gives its agents.
- AGENTS.mdAGENTS.md
- add-python-packageSkill
- audit-ml-pipelineSkill
- build-ml-pipelineSkill
- choose-python-librarySkill
- evaluate-ml-pipelineSkill
- explore-ml-dataSkill
- export-ml-notebookSkill
- export-ml-projectSkill
- export-ml-siteSkill
- frame-ml-problemSkill
- model-ml-pipelineSkill
- persist-ml-gitSkill
- plot-ml-figureSkill
- research-ml-practiceSkill
- review-ml-choicesSkill
- review-ml-experimentSkill
- search-ml-literatureSkill
- setup-gitSkill
- setup-ml-projectSkill
- setup-python-envSkill
- setup-workspaceSkill
- shape-user-ideaSkill
- smoke-test-ml-pipelineSkill
- sync-ml-reportsSkill
- triage-ml-taskSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
24 rules. About 0 are common, 6 are distinctive, and 18 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈6
Distinctive · estimate
This author's own choices. Worth a look.
18
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 43
When model-ml-pipeline calls with the backlog array from python -m skore_skills model choices:
- Very specific: line 46
When the user has not named a B<N>, present exactly those rows in their returned order and AskUserQuestion for one pick.
- Very specific: line 77
When model-ml-pipeline, evaluate-ml-pipeline, or audit-ml-pipeline calls at end of turn with the normalized G-REPORT-LOCATOR, optional …
- Distinctive: line 89
Run Procedure steps 1-3 and nothing else:
- Very specific: line 108
Do not dispatch audit-ml-pipeline in this mode.
- Very specific: line 123
Run python -m skore_skills status.
- Very specific: line 131
Read journal/JOURNAL.md History and Backlog.
- Very specific: line 143
If recording a run: copy the headline metric from the audit digest or the user's value.
- Very specific: line 169
Write ### Report overview from the report text, then ### Checks when that section exists.
- Very specific: line 213
When no file is open and tagged files remain, say in one line how many are promoted, discarded, and set aside, and offer to revisit.
- Very specific: line 226
When the user picks an existing B<N> to draft, return that row to model-ml-pipeline, which can create its design-note shell with python -m …
- Distinctive: line 230
Do not draft that template in this backlog turn.
- Distinctive: line 234
Do not design or implement the next experiment in this turn.
- Very specific: line 235
Do not dispatch setup or audit by skill id.
- Distinctive: line 237
Do not ask Yes / No on that proposal.
- Distinctive: line 240
Do not invent metrics.
- Distinctive: line 241
Do not derive, shorten, or merge G-AUDIT-FINDING with the headline metric.
- Very specific: line 243
Do not change design-note State or Approved by user on.
- Very specific: line 246
Do not parse scratch/results/<stem>/*.html when writing ## Results.
- Very specific: line 250
Do not paste a JOURNAL.md body or recreate the index from memory.
- Very specific: line 252
Do not mark done while smoke is red.
- Very specific: line 253
Do not delete an idea file.
- Very specific: line 264
If policy.site is true, export-ml-site is installed, run python -m skore_skills site build --if-stale.
- Very specific: line 274
Run python -m skore_skills git end-turn --stage backlog.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Manage ML Backlog
Replace iterate-as-cadence. Do not own setup, exploratory data analysis, build, smoke, evaluate, or audit methodology.
Human-facing prose
Details: setup-workspace references/human_facing_prose.md.
JOURNAL rows, design-note Status / Results, and # comments
describe this experiment's outcome — not the skills framework,
the CLI, or the command that produced an output. Questions and
replies use the same data-science language — not skill ids, G-*
names, or the wrapper CLI. <!-- results-embed: … --> is a site
marker. Authoring hints stay in this skill. style is ruff only.
The CLI writes JOURNAL with sections in order: Status, Data
understanding, Modeling decisions, History, Ideas, Backlog.
History, Ideas, and Backlog start as header-only tables. Column
contracts stay here (Stem, Intent, Status, Headline result,
Report, Design note; Question, Status, Experiment, Source; #,
Item, Source). Do not put those contracts back into HTML comments
in the file.
Model-entry selection mode
When model-ml-pipeline calls with the backlog array from
python -m skore_skills model choices:
- When the user has not named a
B<N>, present exactly those rows in their returned order and AskUserQuestion for one pick. One row, or a message that already names aB<N>, is the pick: do not ask again. Carry each row's Item and Source as the option context, and say in 2–4 lines what the pick authorizes (a design note to approve) and what it does not (no model code yet). A file link is an addition, never the context. Do not rescan into a different menu and do not add an idea. - Turn the selected row's Item + Source into a Proposal. Ask only for missing shaping facts; do not invent a Method from a one-line item. Do not ask Yes / No on the proposal.
- Return that proposal to
model-ml-pipeline. Do not ask to confirm it. After the model stage creates and populates the design note, remove only the selected Backlog row and add the planned History row. Preserve every other stable B<N>index.
This mode does not require a report/audit digest and does not run
the outcome-recording procedure below. Empty Backlog is a routing
error: return to model-ml-pipeline; do not fabricate B1.
Record-outcome mode
This mode is only a dispatch from model-ml-pipeline,
evaluate-ml-pipeline, or audit-ml-pipeline at that caller's
end of turn. A user saying the run finished, or "record it", is
a direct Procedure turn: record the outcome, then End of turn
(site build --if-stale when site policy is true, then
git end-turn --stage backlog). Do not treat that user request
as this mode.
When model-ml-pipeline, evaluate-ml-pipeline, or
audit-ml-pipeline calls at end of turn with the normalized
G-REPORT-LOCATOR, optional headline, and G-AUDIT-FINDING. This is
the only path that records an outcome without a full backlog turn.
Audit may have been skipped; the locator remains required and the
finding becomes n/a — audit not run. If the caller omitted the
locator, run python -m skore_skills loop locator --stem <stem>
and paste JSON locator. If it omitted the finding, run
python -m skore_skills audit finding --stem <stem> (stop →
n/a — audit not run / n/a — audit digest unavailable). Do not
rephrase either string.
Run Procedure steps 1-3 and nothing else:
- Step 1 —
python -m skore_skills status; require an approved stem. - Step 2 — read
journal/JOURNAL.md; scaffold the index if it is missing. - Step 3 — update the matching History row and design-note Status
block from the digest or user-supplied headline when available.
Paste G-REPORT-LOCATOR and G-AUDIT-FINDING verbatim into their
separate Status lines. Do not change
StateorApproved by user on. Also refresh thejournal/JOURNAL.mdStatus rowsLast experimentandLast result. Insert or replace## Resultsbetween Status and Notebooks from digest text, not HTML.### Metricsis a heading only.
Then return to the caller. Do not read journal/ideas/, do not
edit the Ideas table, and do not open the idea-triage menu — the
caller did not ask what to try next.
Do not dispatch audit-ml-pipeline in this mode; the digest is
already in hand and dispatching would bounce back here. Do not run
this skill's End of turn either: the caller owns convert / site /
git end-turn and the User-facing close. This mode writes
History; it does not replace the caller's chat close.
The Procedure guards still bind. Never mark done while smoke is
red, and never invent a metric — no digest and no user-supplied
value means use n/a, not a guess. Never construct a missing
backend URL. Record n/a — backend did not expose a locator in
both markdown destinations when the digest has no authoritative
locator.
Procedure
- Run
python -m skore_skills status. When recording a done outcome, runpython -m skore_skills design consent --stem <stem>.ask/stop→ do not markdone. Also require green smoke evidence and a normalized report locator. An audit digest is optional. G-AUDIT-FINDING is required as one of: the value returned by audit,n/a — audit not run, orn/a — audit digest unavailable. - Read
journal/JOURNAL.mdHistory and Backlog. If the index is missing, runpython -m skore_skills scaffold --journal. Do not write or paste the file. The CLI writes sections in order: Status, Data understanding, Modeling decisions, History, Ideas, and Backlog. If that command cannot run this turn, name it and stop. After the file exists, edit the existing History and Backlog tables (columns: Stem, Intent, Status, Headline result, Report, Design note; and #, Item, Source). Ideas columns are Question, Status, Experiment, Source; triage owns that table. A planned History row usesn/ain Report. StableB<N>indices. Do not renumber on removal. Record-outcome does not edit Ideas. - If recording a run: copy the headline metric from the audit
digest or the user's value. Do not invent numbers. With no
digest and no user headline, skip the headline in one line and
leave the History status unchanged. Do not write
donewith headlinen/a. Update the matching History row (planned→doneonly if smoke passed and a headline result exists). Headline metric remains the source for History and Last result; never substitute G-AUDIT-FINDING for performance. Copy the digest's persisted-report locator into the HistoryReportcell and the design note'sPersisted reportStatus line. Paste that string verbatim; do not paraphrase it as "normalized" or rewrite the Hub URL. If the digest has none, writen/a — backend did not expose a locatorin both places; do not derive or guess a URL. Copy G-AUDIT-FINDING verbatim into the design note'sAudit findingsline. Audit skipped →n/a — audit not run; missing/errored digest →n/a — audit digest unavailable. The Status update copies Headline result, Persisted report, and Audit findings. Do not changeStateorApproved by user on. Then insert or replace## Resultsin the design note, between## Statusand## Notebooks. Summarize from the audit digest — its cell outputs carryrepr(report),## Checks summary, and## Metrics summaryas text. With no audit this turn, fall back toscratch/results/<stem>/report.txt, which evaluate writes. Write### Report overviewfrom the report text, then### Checkswhen that section exists.### Metricsis a heading only when## Metrics summaryexists: do not transcribe the metric table or its values. The site embedsscratch/results/<stem>/metrics.htmlunder that heading. History and Last result still get the single headline metric. Evaluation-only (audit skipped): Report overview only — do not invent Checks or Metrics subsections. After Metrics, add one###subsection per extra Display cell the audit appended, using a human title and a<!-- results-embed: <slug> -->comment with the accessor name as<slug>so site build can inject the viewer. Report overview, Checks, and each extra subsection are 2–4 sentences from that cell's output. Do not copy G-AUDIT-FINDING, do not parse*.html, and do not paste iframes (site build injects those). Do not add<!-- results-embed: audit -->. The audit notebook viewer isaudit/<stem>.nb.html, which site build places under## Notebooks. If no subsection has a source, skip the Results section. - Idea triage, separate from record-outcome. Read
journal/ideas/*.mdand the Ideas table. If## Ideasis missing, insert that header-only table between History and Backlog. Do not rewrite the other sections. A file'sTriageline isopen,promoted,discarded, oraside. A missing line isopen. Anopenfile whose Question and Source already match one Backlog row is set topromotedwithout asking, its Ideas row is removed, and no duplicate row is appended. Match both fields so twouserideas do not collapse. Anopenfile with no Ideas row gets one: Question as plain text, Statusopen, Experiment from the file, Source copied verbatim. Ask the otheropenfiles: promote / discard / set aside. Write that value on theTriageline and keep the file. Promote removes that Ideas row and appends a stableB<N>row (Item from Question, Source copied verbatim) and setspromoted. Discard setsdiscardedon the file and the Ideas row and adds no Backlog row. Set aside setsasideon the file and the Ideas row and adds no Backlog row. A promoted idea is absent from Ideas.promoted,discarded, andasideleave the default queue; a later pass does not ask about them. Do not create a design note here. Do not delete an idea file. ChangingTriagedoes not remove or renumber a Backlog row. An empty folder is a one-line skip: there are no idea files to triage, and it does not fabricateB1. When no file isopenand tagged files remain, say in one line how many are promoted, discarded, and set aside, and offer to revisit. Do not retag until the user picks a file. On revisit, the same three choices apply. Promoting then appendsB<N>only when that Question and Source are not already a row, and removes the Ideas row. The only other follow-up is offering to shape an idea or search the literature when those skills are installed. Do not load either skill, and do not start a search or a shaping menu, until the user picks one. Missing skill → one-line skip; do not invent that skill's search or shaping steps. After the user picks, that skill writes the idea file and returns here; triage the new file in this same mode. When the user picks an existingB<N>to draft, return that row tomodel-ml-pipeline, which can create its design-note shell withpython -m skore_skills scaffold --journal --stem <NN_short_name>. Do not draft that template in this backlog turn.
Stop conditions
- Do not design or implement the next experiment in this turn.
- Do not dispatch setup or audit by skill id. Returning a
selected row or proposal to
model-ml-pipelineis required. Do not ask Yes / No on that proposal. - In model-entry selection mode, do not invent a Backlog row or remove it before the paired design note exists.
- Do not invent metrics.
- Do not derive, shorten, or merge G-AUDIT-FINDING with the headline metric. Copy each into its owned field.
- Do not change design-note
StateorApproved by user on. Record-outcome copies Headline result, Persisted report, and Audit findings. - Do not parse
scratch/results/<stem>/*.htmlwhen writing## Results. Summarize Report overview and Checks from the digest, or fromreport.txton the evaluation-only path.### Metricsis a heading only. - Do not paste a
JOURNAL.mdbody or recreate the index from memory. - Do not mark
donewhile smoke is red. - Do not delete an idea file. Triage writes its
Triageline and moves or updates its Ideas row. - Design approval is owned by
model-ml-pipeline; this skill only returns a proposal or selected Backlog row.
End of turn
Direct turns reach here, including a user request to record a finished run. Dispatched record-outcome mode returns before this section.
If policy.site is true, export-ml-site is installed, run
python -m skore_skills site build --if-stale. Do not run
notebook convert. Skip
in one line otherwise. If site build errors with
mkdocs-material is required, load add-python-package for
mkdocs-material (agent) and build once more. Do not
pixi add / uv add. If that skill is missing, or the retry
still fails, name the error in one line. Name a build error;
do not fail the backlog turn.
Run python -m skore_skills git end-turn --stage backlog. If JSON
action is invoke, load persist-ml-git only if
status.skills.persist-ml-git is true and stop; that skill
returns to triage. If persist is missing, name the pending
staged paths and stop. Otherwise load triage-ml-task only if
status.skills.triage-ml-task is true; else stop. Do not run
git commit in this skill.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

