**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 - Source tab name (e.g., "Spring 2026") — must already be in structured table format - List of instructor names to include ### Output Format New sheet named "{Semester} Schedules" with: - **Row 1**: Title — "{Semester} — Weekly Schedule: Instructor1, Instructor2, ..." (bold, white text, dark blue bg #2F5496, font 14pt Aptos Narrow, merged across A1 ) - **Row 2**: Blank spacer - **Row 3**: Headers — Day, Time, Instructor, Course, Title, Campus, Room, Enrolled, Capacity (bold, white text, blue bg #4472C4, centered) - **Data rows**: Grouped by day of week (Monday–Saturday), sorted by time then instructor - Day name appears only on first row of each day group (bold) - Time: extracted from Location & Schedule, formatted with en-dash (e.g., "9 AM – 2 PM") - Course: code only (e.g., "ARTV 1303-001"), parsed from full course string before " - " - Title: course name after " - " in the Course column - Campus: shortened ("Frisco Campus" → "Frisco", "Wylie Campus" → "Wylie", "Plano Campus" → "Plano") - Room: extracted from location string (e.g., "Frisco IT104" → "IT104", "Wylie CC222" → "CC222") - Enrolled & Capacity: numbers from source - **Row coloring** (alternating by instructor within day): - Peach (#FCE4D6, text #833C0B) - Light blue (#D6E4F0, text #1F3864) - Light green (#E2EFDA, text #375623) - Colors cycle per instructor alphabetically - **Day separator borders**: thin solid #8DB4E2 between day groups - **Blank rows** after data, then **Summary table**: - Headers: Instructor, Sections, Total Enrolled, Total Capacity (same blue header style) - One row per instructor with counts/sums, same alternating row colors - Freeze rows 1-3 ### 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 /^[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 - Source tab name (e.g., "Spring 2026") — must already be in structured table format - List of instructor names to include ### Output Format New sheet named "{Semester} Schedules" with: - Row 1: Title — "{Semester} — Weekly Schedule: Instructor1, Instructor2, ..." (bold, white text, dark blue bg #2F5496, font 14pt Aptos Narrow, merged across A1:I1) - Row 2: Blank spacer - Row 3: Headers — Day, Time, Instructor, Course, Title, Campus, Room, Enrolled, Capacity (bold, white text, blue bg #4472C4, centered) - Data rows: Grouped by day of week (Monday–Saturday, then Online), sorted by time then instructor - Day name appears only on first row of each day group (bold) - Time: extracted from Location & Schedule, formatted with en-dash (e.g., "9:00 AM – 2:50 PM") - Course: code only (e.g., "ARTV 1303-001"), parsed from full course string before " - " - Title: course name after " - " in the Course column - Campus: shortened ("Frisco Campus" → "Frisco", "Wylie Campus" → "Wylie", "Plano Campus" → "Plano") - Room: extracted from location string (e.g., "Frisco IT104" → "IT104", "Wylie CC222" → "CC222") - Enrolled & Capacity: numbers from source - Courses with no day/time (Web/Online) grouped under "Online" with time "Asynchronous" - Row coloring (alternating by instructor within day): - Peach (#FCE4D6, text #833C0B) - Light blue (#D6E4F0, text #1F3864) - Light green (#E2EFDA, text #375623) - Colors cycle per instructor alphabetically - Day separator borders: thin solid #8DB4E2 between day groups - Blank rows after data, then Summary table: - Headers: Instructor, Sections, Total Enrolled, Total Capacity (same blue header style) - One row per instructor with counts/sums, same alternating row colors - Freeze rows 1-3 ### 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 - Match courses between a structured semester tab and its Report (Credit) tab by CRN to populate missing Instructor names. ### Required Input:  - Two tabs — a structured semester tab (e.g., "Spring 2022") and its Report (Credit) tab (e.g., "Spring 2022 Report (Credit)") ### 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