agentleFS
omar16100omar16100/skills/batik-checkin/SKILL.md

batik-checkin

Skill0 starsChanged 10 months agoMITView on GitHub

Check in for Batik Air Malaysia flights using Playwright browser automation. Handles passport details, emergency contact, and downloads boarding pass.

The file

Show its rules and text

We split this skill into the rules it gives an agent

17 rules. About 0 are common, 15 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈15

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before starting, collect from the user:

    line 20
  2. Distinctive:

    If $ARGUMENTS contains a booking reference, use it.

    line 29
  3. Distinctive:

    Wait for page to load

    line 35
  4. Distinctive:

    Wait for passenger list to appear (take snapshot)

    line 41
  5. Distinctive:

    Ensure passenger checkbox is checked

    line 42
  6. Distinctive:

    Search or scroll to select the correct country

    line 57
  7. Distinctive:

    If "Choose Your Favorite Seat" dialog appears, click "Okay" or dismiss

    line 91
  8. Distinctive:

    If prompted about continuing without seat, click "Okay" or "Continue"

    line 92
  9. Distinctive:

    Look for "Skip Seat Selection" button and click it

    line 93
  10. Distinctive:

    If confirmation dialog appears, click "Continue Check-in" or similar

    line 94
  11. Distinctive:

    Wait for "Success Check-In" or success confirmation message

    line 102
  12. Distinctive:

    Wait for boarding pass to load/generate

    line 105
  13. Distinctive:

    If Download button is available, click it

    line 107
  14. Distinctive:

    Booking not found: Ask user to verify reference number is correct

    line 118
  15. Very specific:

    Always use browser_snapshot before interacting to see current page state

    line 126
  16. Distinctive:

    Use element refs from snapshot (like "S1", "B2") for accurate targeting

    line 127
  17. Very specific:

    Wait for page transitions with browser_wait_for if needed

    line 130

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Batik Air Malaysia Web Check-in

Automate the check-in process for Batik Air Malaysia flights via BookCabin portal.

Prerequisites

  • Playwright MCP server must be running
  • Valid booking reference
  • Passport details for the passenger

Required Information

Before starting, collect from the user:

  1. Booking Reference (e.g., OFDGEC)
  2. Passenger Full Name (as on passport)
  3. Passport Number
  4. Date of Birth (DD MMM YYYY format)
  5. Passport Expiry Date (DD MMM YYYY format)
  6. Nationality/Country of Issue
  7. Emergency Contact: Name, Phone (with country code), Relationship

If $ARGUMENTS contains a booking reference, use it. Otherwise, ask the user.

Check-in Workflow

Step 1: Navigate to Check-in Portal

  1. Navigate to https://www.bookcabin.com/checkin
  2. Wait for page to load
  3. Take a snapshot to see the page state
  4. Enter booking reference in the textbox (look for ref "S1" or similar input field)
  5. Click "Search" button

Step 2: Select Passenger

  1. Wait for passenger list to appear (take snapshot)
  2. Ensure passenger checkbox is checked
  3. Click "Check-in" button

Step 3: Travel Document (APIS Form)

Fill in passport details - take a snapshot first to see form state:

Date of Birth:

  1. Click on Date of birth field/button
  2. Date picker opens - navigate to correct year first (click year dropdown/header)
  3. Select correct year
  4. Select correct month
  5. Click the correct day

Nationality:

  1. Click Nationality dropdown/button
  2. Search or scroll to select the correct country

Passport Number:

  1. Enter passport number in the textbox

Country of Issue:

  1. Click Country of Issue dropdown/button
  2. Select the issuing country (usually same as Nationality)

Passport Expiry:

  1. Click Date of expiry field
  2. Navigate to correct year (click year header to get year selection)
  3. Select correct month
  4. Click the correct day
  5. Click "Continue to Emergency Contact" button

Step 4: Emergency Contact Form

  1. Take snapshot to see form
  2. Select Title (Mr/Mrs/Ms) from dropdown
  3. Enter First Name in textbox
  4. Enter Last Name in textbox
  5. Select Relationship from dropdown (Parent/Spouse/Sibling/Friend/Other)
  6. Select Nationality from dropdown
  7. For phone: click country code dropdown, select correct code (e.g., +60 Malaysia, +880 Bangladesh)
  8. Enter phone number (without country code) in phone textbox
  9. Click "Save" button

Step 5: Confirm Check-in

  1. Take snapshot - verify passenger is selected with checkbox
  2. Click "Check-in" button

Step 6: Seat Selection

Handle seat selection dialogs - take snapshots to see current state:

  1. If "Choose Your Favorite Seat" dialog appears, click "Okay" or dismiss
  2. If prompted about continuing without seat, click "Okay" or "Continue"
  3. Look for "Skip Seat Selection" button and click it
  4. If confirmation dialog appears, click "Continue Check-in" or similar

Step 7: Dangerous Goods Declaration

  1. Take snapshot to see the declaration page
  2. Find and check the confirmation checkbox (usually agreeing to dangerous goods policy)
  3. Click "I am accepting" or similar acceptance button

Step 8: Boarding Pass

  1. Wait for "Success Check-In" or success confirmation message
  2. Take snapshot to confirm success
  3. Click "View Boarding Pass" button
  4. Wait for boarding pass to load/generate
  5. Take a screenshot of the boarding pass for the user
  6. If Download button is available, click it
  7. Report to user:
    • Flight number
    • Date and time
    • Departure/Arrival airports
    • Seat assignment (if any)
    • Boarding time
    • Gate (if shown)

Error Handling

  • Booking not found: Ask user to verify reference number is correct
  • Session timeout: BookCabin has ~5 minute timeout - restart from Step 1
  • Date picker issues: Try clicking the year header first, or use arrow navigation
  • Country not found: Try alternative country names (e.g., "Bangladesh" vs "BANGLADESH")
  • Element not found: Take snapshot to see current page state and adapt

Tips for Playwright Navigation

  • Always use browser_snapshot before interacting to see current page state
  • Use element refs from snapshot (like "S1", "B2") for accurate targeting
  • For date pickers: typically need to select year first, then month, then day
  • For dropdowns: click to open, then click the option
  • Wait for page transitions with browser_wait_for if needed

Output

On successful check-in, report:

✅ Check-in confirmed!
- Passenger: [Name]
- Flight: OD [XXX]
- Route: [DEP] → [ARR]
- Date: [Date]
- Seat: [Seat or "Not selected"]
- Boarding pass: [screenshot saved/downloaded]

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.