Skip to content
Back to skills

Book Yonsei Shuttle

ASecurity

Search, reserve, inspect, waitlist, and cancel Yonsei shuttle trips on Windows, macOS, or Linux through the official authenticated shuttle page using origin, destination, date, and time preferences, with internal access recovery. Use when a student asks to book a Sinchon–International Campus shuttle, manage an existing reservation, or continue either task after the official page fails to open.

  • 8 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 1, 2026
ai-agentspythonbash

Works with

  • cli

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned September 1, 2026

npx -y skills add mrcha033/yonsei-skills --skill book-yonsei-shuttle --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Book Yonsei Shuttle?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Book Yonsei Shuttle
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mrcha033-book-yonsei-shuttle/badge)](https://www.skillsdirectory.com/skills/mrcha033-book-yonsei-shuttle)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: book-yonsei-shuttle
description: Search, reserve, inspect, waitlist, and cancel Yonsei shuttle trips on Windows, macOS, or Linux through the official authenticated shuttle page using origin, destination, date, and time preferences, with internal access recovery. Use when a student asks to book a Sinchon–International Campus shuttle, manage an existing reservation, or continue either task after the official page fails to open.
---

# Book Yonsei Shuttle

Follow the KTX-style sequence: search, shortlist, identify one exact trip,
confirm the write, execute once, and verify the official result.

## Preferred command path

Call `yonsei_student` with `intent: "shuttle"` and put origin, destination,
date, time window, and reason in `request`. Present candidates from
`primary_result`. After the student confirms one, repeat with its opaque
`selection_id`, the requested action, and `confirmed: true`. Never expose DOM
labels or row-matching terms.

## Inputs

- origin and destination campus
- travel date
- earliest or preferred departure time
- latest acceptable departure time when relevant
- reservation reason
- whether waitlisting is acceptable

## Workflow

1. Run `scripts/platform_support.py` internally and follow
   `references/cross-platform.md`. Reuse the student's persistent Yonsei browser
   profile and any already open
   official portal tab. Do not start an isolated headless browser. Open:

   `https://underwood1.yonsei.ac.kr/com/lgin/SsoCtr/initExtPageWork.do?link=shuttle`

2. If login is required, leave the exact official page open and ask the student
   once to sign in there. Resume this workflow in the same browser profile.
   Never ask for the password in chat or inspect browser cookies, storage, or
   saved passwords.
3. If the official page does not open or the expected shuttle controls are
   missing, run the bundled read-only recovery check internally:

   ```bash
   python3 "$SKILL_DIR/scripts/diagnose_shuttle_access.py"
   ```

   Use it only to distinguish direct connectivity, an authentication boundary,
   and a changed or unavailable official client. Do not expose a separate
   diagnostic workflow to the student. Continue the original booking request
   automatically when the page becomes usable; otherwise explain the one
   concrete recovery step.
4. Open **예약**, select the departure area and date, and read the live rows.
   Transcribe only the official fields listed in
   `references/official-browser-workflow.md`.
   Also read the active outbound and return trips for that date so the
   one-round-trip-per-day rule can be checked.
5. Run:

   ```bash
   python3 "$SKILL_DIR/scripts/prepare_shuttle_booking.py" --input "<temporary-json>"
   ```

6. Present up to five candidates with selector, vehicle, departure and arrival
   time, route, remaining seats, and waitlist status.
7. After one candidate is unambiguous, reload the official rows and match the
   selector again. Stop if the trip disappeared or any selector field changed.
8. Fill the reservation reason. Immediately before the final reservation or
   waitlist button, ask for confirmation naming the direction, date, time,
   vehicle, and whether it is a seat or waitlist request.
9. Click once. Do not retry an uncertain write.
10. Open **내역/취소** and verify the exact trip appears. Report the official
   seat number or waitlist state when shown.

## Cancellation

Open **내역/취소**, identify the exact existing trip, ask for action-time
confirmation, click once, and verify that it no longer appears in the active
reservation list or that the official page reports cancellation.

## Boundaries

- Apply the displayed rules: one round trip per day, and cancellation or
  rebooking only until 20 minutes before departure.
- Never bypass NetFunnel, quotas, reservation dates, role rules, or seat rules.
- The internal access check may fetch only the fixed official entry and public
  client module. It must never submit SSO, call shuttle service endpoints,
  connect a VPN, or invoke any `save...` operation.
- Do not poll aggressively.
- Do not treat a prepared selector or button click as success; verify the
  official reservation history.
- If the result after a write is ambiguous, report `verification-required` and
  do not repeat the request.

Files in this skill

  • SKILL.md4.2 KB
  • agents/openai.yaml299 B
  • references/cross-platform.md655 B
  • references/official-browser-workflow.md1.1 KB
  • references/service-evidence.md754 B
  • scripts/diagnose_shuttle_access.py4.3 KB
  • scripts/platform_support.py1.9 KB
  • scripts/prepare_shuttle_booking.py9.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.