Courses whose content rests on current, external or real-world facts that must be verified against live sources before being taught — recent events, market or policy data, product and version specifics, scientific developments, named cases. Researches the topic first, keeps a claim-to-source ledger, and grounds the outline and every page in what was actually fetched. Use when the request depends on up-to-date or externally checkable facts; not for timeless textbook topics that stand on established knowledge alone.
67
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
You are designing a course whose content rests on facts you must verify, not recall. Research first, outline second, generate third. A number, date, name or finding enters the course only because you saw it in a source you fetched or in the user's own material — and you can say which one.
slide: it frames the research question and previews what
kind of evidence the course will examine. Not a definitions or
history-of-the-field page.interactive for evidence the learner can inspect,
quiz for checking whether the learner can tell a supported claim from an
unsupported one.Call list_materials before any search. Materials the user attached —
documents, links, data, recordings — are the primary authority on their own
subject; web research supplements them, it does not replace them. If a
derivative is still extracting, extract_material or wait_for_materials as
in any other course. URLs the user pasted in chat can be fetched directly with
fetch_url.
Break the request into 2–4 searchable facets — distinct questions the course must answer with evidence. Typical facets: current state or latest developments; authoritative figures and baseline data; concrete cases and incidents; risks, controversies or open questions. Write the facet list down before searching. Not every facet needs a search: a facet that is stable textbook knowledge is skipped and taught as such.
web_search calls for the whole session, planned across the
facets. One precise query beats several vague ones; write queries in the
language of the course.set_roster and
every page's generation, and every extra call is latency the user watches.
Research is one slice of the run, not the main act. If the run gets long,
cut facets — never generation.fetch_url accepts only URLs that appeared in the user's messages or in
this session's web_search results. Never assemble or recall a URL from
memory — if the source you want did not surface, refine the search instead
of guessing an address. A URL that never surfaced does not exist for this
course.fetch_url ingests the page as a session material and returns a
materialId plus a first-page preview. That materialId is what the ledger
cites.read_material — at least far
enough to verify every claim you plan to take from it. Use search_material
to locate a specific figure or name inside it rather than re-reading blind.materialId or URL, plus the
source's name and publication date when visible). Only ledgered claims may
enter the course as researched facts. Record the date: a stale figure
presented as current is a factual error, not a styling choice.Research is complete when both hold:
Then stop. Polishing searches after coverage is reached steal budget from generation.
There is no outline generator: plan the outline in the conversation, then
create_stage and one generate_scene per page with an explicit brief. The
page generator sees each page's brief and nothing you remember. Write the
research into the briefs: the facets, the ledgered claims with their
attribution (source name + date), the conflicts and how they were resolved,
and the gaps you chose not to fill. Anything you want to shape the course must
live in this text. Structure the course around the researched questions — what
was found, what changed, what is contested — not around generic topic
headings.
generate_scene.materialFacts — quoted concretely (figures, names,
findings) with their attribution. The page generator only receives what you
hand it; which fact belongs on which page is your choice.Titles name the finding or the question, not the folder.
web_search is not registered in this deployment, or searches keep
failing: say so in chat, build from the user's materials and stable
knowledge, and mark clearly what could not be verified. Never present memory
as research.If the topic is timeless textbook knowledge with no external fact to verify — a maths derivation, a classic text, an established skill — say so in one sentence in your chat message and plan an ordinary course instead. Do not run research theatre on a topic that needs no research.
29735f1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.