---
name: resource-discovery
description: "Find and curate accredited academic resources for course modules."
---

# Resource Discovery Skill

> **Plugin**: ASU Canvas Course Builder
> **Related**: course-build (supplies resources to lesson pages), notebooklm (audio primers, lecture videos, study notebooks)

## Purpose
Research and curate vetted, accredited resources per module. Outputs a structured resource library that feeds into lesson pages, review materials, and NotebookLM notebooks.

## Required Inputs

| Input | Source |
|---|---|
| Module topics and objectives | `course-config.json` |
| Subject area and level | `course-config.json` |
| User-provided materials (optional) | Uploaded files or links |

## Prerequisites
- `course-config.json` exists with module structure defined
- Canvas credentials configured (for linking resources in pages)

---

## Flow

### Step 1: Read Course Context

Load `course-config.json` and extract:
- All module titles and topics
- Module-level learning objectives
- Subject area and academic level
- Any existing resources already specified

### Step 2: Source Preference

Present an `AskUserQuestion`:

**Question**: "How should I source resources for this course?"

| Label | Description |
|---|---|
| **Use only what I provide** | I'll upload or link all materials myself |
| **Research for me** | Find accredited resources; I'll review before use |
| **Both** | Use my materials as primary, supplement with researched resources |

- **Use only what I provide**: Ask the user to share their materials (files, links, references). Catalog each resource with metadata (title, type, URL, module alignment). Save to config and exit.
- **Research for me**: Proceed to Step 3.
- **Both**: Collect user materials first, then proceed to Step 3 for supplementary resources.

### Step 3: Research Resources

For each module, search for resources using `WebSearch`. Target:

#### Preferred Source Types (in priority order)
1. **Open-access textbook chapters** — OpenStax, LibreTexts, NCBI Bookshelf, Lumen Learning
2. **Peer-reviewed review articles** — PubMed open-access, PMC, PLOS, Frontiers
3. **Accredited educational videos** — Ninja Nerd, Osmosis, Khan Academy, Armando Hasudungan, Lecturio (free content), Noted Anatomist
4. **Professional organization resources** — AHA, AMA, NIH, CDC, WHO, professional society guidelines
5. **Interactive simulations** — PhET, HHMI BioInteractive, Visible Body (free features)

#### Excluded Sources
- Blog posts, personal websites
- Reddit, Quora, StackExchange
- Unvetted YouTube channels (< 50K subscribers, no institutional affiliation)
- Paywalled content (journals requiring institutional access)
- Content older than 5 years (for clinical/scientific topics; relaxed for foundational concepts)
- Wikipedia (acceptable as a starting reference, not as a student resource)

### Step 4: Vet and Catalog

For each discovered resource, verify:

| Criterion | Check |
|---|---|
| **Accreditation** | Source is an accredited institution, publisher, or recognized educational creator |
| **Currency** | Content is current (within 5 years for clinical/scientific; flexible for foundational) |
| **Accessibility** | Freely accessible to students without login or paywall |
| **Alignment** | Maps to specific module learning objectives |
| **Quality** | Content is accurate, well-produced, and appropriate for the academic level |

Record each resource with this metadata:
```json
{
  "title": "Resource Title",
  "url": "https://...",
  "type": "video | reading | reference | simulation",
  "author_source": "Author Name or Organization",
  "estimated_time": "15 min",
  "objectives_supported": ["Obj 1.2", "Obj 1.3"],
  "module": 1,
  "vetted": true,
  "notes": "Optional notes about relevance"
}
```

### Step 5: Present for Review

Present resources organized by module for the user (instructional designer) to review. For each module, show:
- Module title and objectives
- Recommended resources (3-5 per module)
- Each resource with: title, source, type, estimated time, why it was selected

Present an `AskUserQuestion`:

**Question**: "Here are the resources I found for Module [#]. Want to approve, modify, or skip?"

| Label | Description |
|---|---|
| **Approve all** | These look good — add them to the course |
| **Make changes** | I want to adjust some of these |
| **Skip this module** | I'll handle resources for this module myself |

Repeat for each module.

### Step 6: Save to Config

Save approved resources to `course-config.json` under `modules[].resources[]`:

```json
{
  "modules": [
    {
      "number": 1,
      "title": "Module Title",
      "resources": [
        {
          "title": "...",
          "url": "...",
          "type": "video",
          "author_source": "...",
          "estimated_time": "15 min",
          "objectives_supported": ["1.2", "1.3"]
        }
      ]
    }
  ]
}
```

### Step 7: Summary

Present a summary of total resources curated:
- Resources per module
- Breakdown by type (video, reading, reference, simulation)
- Any modules with fewer than 3 resources (flag for user attention)

---

## Search Strategy Tips

When searching, use specific academic search queries:
- `"[topic] physiology" site:openstax.org` for OpenStax chapters
- `"[topic] review" site:ncbi.nlm.nih.gov filetype:pdf` for PubMed reviews
- `"[topic]" channel:"Ninja Nerd" OR channel:"Osmosis"` for vetted YouTube
- `"[topic] simulation" site:phet.colorado.edu` for PhET simulations

For medical/health sciences specifically:
- NCBI Bookshelf for free textbook chapters
- Advances in Physiology Education (some open access)
- HHMI BioInteractive for lab/interactive resources

## Output

The skill produces:
1. A vetted resource library saved to `course-config.json`
2. Per-module resource summaries with alignment to objectives
3. Resource metadata usable by `course-build`, `notebooklm-*`, and page generation skills
