Copy everything below this line and paste it as your first message in a new conversation:

Please save the following two custom skills to your always-on instructions so they persist across all my conversations:

Custom Skill: /transpose-course

Purpose

Parse raw single-column course schedule data (web-scraped, pasted into column A) into a structured multi-column table.

Output Columns

A: Row#, B: Course, C: Status, D: Campus, E: Location & Schedule, F: Instructors, G: Instructional Format, H: Delivery Mode, I: Enrolled, J: Capacity, K: (blank)

Parsing Logic

Each record in column A follows this repeating block:

  1. Course line: matches /^[A-Z]{3,4}\s+\d{4}-[\w]+\s+-\s+/
  2. Summary line: Title | Status or Title | Status | Instructor
  3. Section Details → location/schedule (or "(empty)")
  4. Section Details (duplicate)
  5. Campus → value or "(empty)"
  6. Instructors → value or "(empty)"
  7. Instructional Format → value (usually "Combination")
  8. Delivery Mode → value
  9. Enrolled/Capacity → "X/Y" or 5-digit Excel date serial

Date Serial Fix

Excel auto-converts "11/18" (enrolled/capacity) to date serial 46344. Reverse: convert serial to date, use month as Enrolled and day as Capacity.

const d = new Date(Date.UTC(1899,11,30) + serial * 86400000); enrolled = d.getUTCMonth() + 1; capacity = d.getUTCDate();

Steps

  1. Read column A from target sheet(s)
  2. Parse each record block → extract all fields
  3. Clear existing data
  4. Write structured table with bold headers
  5. Format I and J columns as number format "0" (not dates)
  6. Second pass: fill blank Instructional Format cells with "Combination"
  7. Verify record count matches original "X Results" header

Custom Skill: /instructor-schedule

Purpose

Build a weekly schedule table for specified instructors from a semester's structured course data tab. Creates a new "{Semester} Schedules" tab.

Required Input

Output Format

New sheet named "{Semester} Schedules" with:

Steps

  1. Read structured data from source tab
  2. Filter rows where Instructors column matches any specified instructor
  3. Parse Location & Schedule to extract day, time, campus short name, room
  4. Sort by day-of-week order, then time, then instructor name
  5. Create new sheet "{Semester} Schedules"
  6. Write title, headers, data rows with formatting
  7. Write summary table below data
  8. Apply row coloring, borders, freeze panes
  9. Auto-fit column widths

Claude for Excel — Custom Skills

Paste this entire block as your first message in a new Claude for Excel conversation to restore these skills.
Say: "Please save these to your always-on instructions."


Custom Skill: /transpose-course

Purpose Parse raw single-column course schedule data (web-scraped, pasted into column A) into a structured multi-column table.

Output Columns

A: Row#, B: Course, C: Status, D: Campus, E: Location & Schedule, F: Instructors, G: Instructional Format, H: Delivery Mode, I: Enrolled, J: Capacity, K: (blank)

Parsing Logic

Each record in column A follows this repeating block:

  1. Course line: matches /[1]{3,4}\s+\d{4}-[\w]+\s+-\s+/
  2. Summary line: Title | Status or Title | Status | Instructor
  3. Section Details → location/schedule (or "(empty)")
  4. Section Details (duplicate)
  5. Campus → value or "(empty)"
  6. Instructors → value or "(empty)"
  7. Instructional Format → value (usually "Combination")
  8. Delivery Mode → value
  9. Enrolled/Capacity → "X/Y" or 5-digit Excel date serial

Date Serial Fix

Excel auto-converts "11/18" (enrolled/capacity) to date serial 46344.
Reverse: convert serial to date, use month as Enrolled and day as Capacity.

const d = new Date(Date.UTC(1899,11,30) + serial * 86400000); enrolled = d.getUTCMonth() + 1; capacity = d.getUTCDate();

Steps

  1. Read column A from target sheet(s)
  2. Parse each record block → extract all fields
  3. Clear existing data
  4. Write structured table with bold headers
  5. Format I and J columns as number format "0" (not dates)
  6. Second pass: fill blank Instructional Format cells with "Combination"
  7. Verify record count matches original "X Results" header

Custom Skill: /instructor-schedule

Purpose Build a weekly schedule table for specified instructors from a semester's structured course data tab.

Creates a new "{Semester} Schedules" tab.

Required Input

Output Format

New sheet named "{Semester} Schedules" with:

Steps

  1. Read structured data from source tab
  2. Filter rows where Instructors column matches any specified instructor
  3. Parse Location & Schedule to extract day, time, campus short name, room
  4. Sort by day-of-week order, then time, then instructor name
  5. Create new sheet "{Semester} Schedules"
  6. Write title, headers, data rows with formatting
  7. Write summary table below data
  8. Apply row coloring, borders, freeze panes 9. Auto-fit column widths

Custom Skill: /populate-instructors

Required Input: 

Matching Logic:

  1. Extract CRN from Course column (B) using regex /[A-Z]{3,4}\s+\d{4}-(\d+)\s+-\s+/
  2. Match CRN against the CRN column in the Report (Credit) tab
  3. Pull Instructor value for each matched CRN
  4. Multiple instructors for same CRN joined with "; "
  5. Skip rows already filled; leave blank if CRN not found

Steps:

  1. Read Report (Credit) tab → build CRN → Instructor(s) map
  2. Read structured tab's Course (B) and Instructors (F) columns
  3. Extract CRN from each course string via regex
  4. Write matched instructor(s) to blank Instructors cells
  5. Report: matched count, already-filled count, unmatched count

  1. A-Z ↩︎