Optional loop step after evaluate. Record-outcome stays with the caller. This skill writes idea files and their Ideas rows. The stem is whichever experiment was reviewed. Check results were stored with the report, so the audit reads them.
Human-facing prose
Details: setup-workspace references/human_facing_prose.md.
Idea files describe this report and the follow-up — not skill
ids, cells run, or the wrapper CLI.
Procedure
- Run
python -m skore_skills statusandpython -m skore_skills review consent --stem <stem>. Treat JSONactionas authoritative.stop— noscratch/results/<stem>/report.html. Name that file and stop. Do not audit. Do not record-outcome.audit— report exists, digest does not. Loadaudit-ml-pipelinewhen installed. That skill runsmaterialize.pyonce and does not execute the audit file.proceed— digest already on disk. Do not re-runmaterialize.pyunless the user asked to re-audit. A re-audit loadsaudit-ml-pipeline; that skill runsmaterialize.pyonce. Otherwise refresh idea files from the existing digest.
- Missing audit skill → one-line skip. Return
n/a — audit not runand write no idea files. Do not open the Project or callreport.*here. - Read the design note, the EDA summary, the last History row,
and the digest. One candidate per
Issues:/Tips:line. A methodological gap the design note named and this run did not test is another candidate. A user idea or a literature query is not a candidate here: after this skill returns,shape-user-ideaorsearch-ml-literaturewrites that file and its Ideas row when the user asks. Loadresearch-ml-practiceonly ifstatus.skills.research-ml-practiceis true and an audit or design candidate needs sources; otherwise one-line skip. Do not invent papers, metrics, or a winner. - Write one file per candidate at
journal/ideas/<stem>-<slug>.mdwith Experiment, Source (audit:<stem>:checks.<code>ordesign:<stem>), Triageopen, Question, Why now, What changes, Open gaps. No acceptance criteria. For a check candidate, read the documentation URL on that line and apply that page's recommendation in What changes. On a refresh, keep an existing file'sTriagevalue and the matching Ideas status. A new candidate isopen. - Upsert one
## Ideasrow per file injournal/JOURNAL.md. If that table is missing, insert it between History and Backlog. Columns: Question, Status, Experiment, Source. Question is the file's Question as plain text, not a link. Status isopen,discarded, oraside, matchingTriage. Apromotedfile has no Ideas row. Experiment is this run's stem. Source is copied verbatim. Edit only that table. - Return the digest, JSON
findingfrompython -m skore_skills audit finding --stem <stem>, the locator frompython -m skore_skills loop locator --stem <stem>, and the idea paths.
Stop conditions
- On
proceed, do not re-runmaterialize.pyunless the user asked to re-audit. - Do not write History, Backlog, Status, or a design note.
The Ideas table is the only
JOURNAL.mdedit. - Do not call
skore.evaluateorproject.put. - Do not pick a winning idea.
- Do not invent a missing child's procedure.