Skip to content
cccskills
FreePublished on GitHub

deep-research

Create courses grounded in verified external facts, including recent developments, market data, product details, and scientific findings. It researches sources, records which evidence supports each claim, and carries those findings and uncertainties into page plans and content.

OriginalShow the original description

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.

See how to install

Good for

  • Creating a course about recent events or industry developments
  • Building lessons around verified market or policy data
  • Teaching product details or scientific findings with sources
  • Explaining conflicting evidence and gaps in available information

Files included (2)

  • SKILL.md7.8 KB
  • outline-constraints.json392 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Deep Research course design

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.

Structure

  • Open with 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.
  • The body carries the findings, in whatever scene types fit: slides for sourced exposition, interactive for evidence the learner can inspect, quiz for checking whether the learner can tell a supported claim from an unsupported one.
  • Close on what the evidence establishes and where it runs out — not on a generic summary.

Step 1 — Start from what the session already has

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.

Step 2 — Split the topic into facets

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.

Step 3 — Search with a budget

  • At most 8 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.
  • The session shares one run with planning, 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.
  • Read each result before searching again: the next query should be shaped by what the last one returned, not a rewording of it.

Step 4 — Pick sources, fetch them

  • From the search results, pick at most 6 URLs in total across all facets. Prefer primary and authoritative origins — official bodies, named institutions, the report or dataset itself — and for time-sensitive claims prefer the most recent. Skip mirrors and aggregators repackaging the same story: fetch one origin, not three copies of it.
  • 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.

Step 5 — Read deep, keep the ledger

  • Page through each fetched material with 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.
  • Maintain a running ledger: claim → source (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.

Step 6 — Cross-check conflicts

  • Prefer primary over secondary sources, recent over outdated for time-sensitive claims, and domain authorities over general media. Two independent origins outweigh one story republished ten times.
  • If a conflict survives — genuinely contested figures, diverging official accounts — teach the range or the disagreement with both attributions. Do not silently pick a side, and never average conflicting numbers into an invented middle.
  • A load-bearing claim with a single source is single-sourced: soften the wording, attribute it explicitly, or drop it.

Step 7 — Know when research is done

Research is complete when both hold:

  • every facet the outline will lean on has at least one ledgered source, or is marked as stable knowledge needing none;
  • every number, date and name the course will state is in the ledger.

Then stop. Polishing searches after coverage is reached steal budget from generation.

Step 8 — Ground the outline

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.

Step 9 — Ground every page

  • When generating a scene, pass that page's sourced facts in 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.
  • Inside page content, cite naturally — the institution, the report, the year. Do not dump raw URLs at the learner.
  • Quiz distractors and interactive scenarios draw on ledgered facts too: a quiz that tests a number nobody verified teaches noise.

Scene naming

Titles name the finding or the question, not the folder.

  • Good: 「五年里成本降了多少?」「数据从哪里来」「两种口径差在哪」
  • Bad: 「行业概述」「研究背景」「本课总结」

Hard rules

  • Never invent sources, citations, URLs or publication dates. A claim with no ledger entry is taught as stable knowledge with honest wording, or not taught at all.
  • If 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.
  • Time-sensitive claims without a source do not enter the course. Timeless knowledge needs no source — do not spend budget verifying what a textbook already settles.
  • When user material and web findings conflict: on facts about the user's own subject (their data, their product, their case) the user's material wins. On external context, the better-verified recent source wins — and you surface the discrepancy to the user in chat instead of overriding silently.

If the requirement is not research-driven

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.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Turn past classrooms and chat history into a reusable personal skill for course creation. It examines varied examples, checks recurring patterns and exceptions, and asks for corrections before saving instructions that reflect the user's workflow and quality expectations.

  • Reviewing patterns across past course creation
  • Turning preferred workflows into reusable instructions
  • Checking inferred preferences against examples
THU-MAIC/OpenMAIC41KUpdated Oct 18, 2026

Plan and build a connected series of lessons around learners’ experience and goals. After the user approves the complete lesson list, it creates lessons in order, checks continuity, and organizes them in one folder.

  • Building a seven-day introductory Python course
  • Creating a four-week onboarding program
  • Turning book chapters into separate lessons
THU-MAIC/OpenMAIC41KUpdated Oct 18, 2026

deep-interactive

FreeSummary

Design courses where learners explore ideas by changing parameters, following diagrams, running code, playing games, or inspecting 3D scenes. Each main page focuses on one mechanism or structure, with opening and closing pages framing the learning.

  • Exploring how changing a parameter affects a system
  • Following a diagram to understand structure or flow
  • Learning an idea by modifying and running code
THU-MAIC/OpenMAIC41KUpdated Oct 18, 2026

fact-check

FreeSummary

Check important factual claims in courses or supplied content against available materials and authoritative sources. Review numbers, definitions, and contradictions, then receive a concise report with evidence and suggested corrections, or have generated course pages checked before delivery.

  • Checking facts in a completed course
  • Verifying important numbers and technical definitions
  • Finding contradictions between course pages
THU-MAIC/OpenMAIC41KUpdated Oct 18, 2026

feynman-learning

FreeSummary

Build learning activities where learners explain an idea first, then improve their explanation through focused questions. Include plain language, checks on analogies, application to unfamiliar situations, and a record of remaining gaps and next goals.

  • Learn a concept by explaining it in your own words
  • Turn existing materials into explanation-based activities
  • Test explanations without relying on technical terms
THU-MAIC/OpenMAIC41KUpdated Oct 18, 2026

Create or adapt an OpenMAIC lesson for Chinese primary and secondary education. Connect real-world tasks with learner activities, observable work, assessment, and narration, focusing on one or two core competencies from the relevant curriculum framework.

  • Build a lesson around a real-world problem
  • Align learner work with competency assessment
  • Adapt an existing lesson to its grade and subject
THU-MAIC/OpenMAIC41KUpdated Oct 18, 2026

See all skills by THU-MAIC

Report a problem with this skill