agentsclimarketplace

Driving license booker

Skill skillim-hub/skills/driving-license-booker

Production-grade AI agent skills & MCP servers for the Israeli market — סקילים

Install
npx -y skills add skillim-hub/skills --skill driving-license-booker

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Neutral workflow skill for Israeli driving-license renewal, Licensing Bureau appointment preparation, and practical driving-test coordination.

SKILL.md

12.0 KB, as published. Nobody here has run it

Driving Test & License Renewal Booker

Use this skill to prepare, validate, coordinate, schedule eligible appointment handoffs, and track Israeli driving-license renewal and driving-test workflows. Apply it for individual consumers, freelancers who drive for work, driving teachers, delivery businesses, tradespeople with service vehicles, and office administrators responsible for staff license follow-up.

The skill supports three workflow families:

  1. License renewal through official Ministry of Transport and Road Safety services.
  2. Licensing Bureau appointment preparation when self-service renewal is blocked or an in-person service is required.
  3. Practical driving-test coordination with an authorized driving teacher and candidate availability.

Final submission, identity verification, payment, and official appointment confirmation must happen only through official services. Practical driving-test dates are requested by the authorized teacher or driving school through the official process; do not represent a local draft as a confirmed government test date. Do not store passwords or bypass identity checks.

Web-validated boundaries

Use these validated boundaries in production:

AreaCurrent verified rule
Driver-license renewal paymentUse the driver-license payment route, not the vehicle-license payment route. The corrected payment handoff is https://ecom.gov.il/voucherspa/input/209.
Practical-test fee paymentUse https://ecom.gov.il/voucherspa/input/427 for practical driving-test fee payment handoff. Confirm mutable fee amounts at payment time.
Licensing Bureau appointmentsUse the Ministry of Transport appointment service and GoVisit. Appointment availability for licensing services is published as up to 30 days ahead.
Practical test schedulingCoordinate with the authorized driving teacher or school. The candidate does not directly book the official test in this package.
Private service VATIf a VAT-registered business charges a private service fee, apply the current Israeli VAT rate only after confirming it. As validated on 04/06/2026, the standard rate is 18%.
Webhooks and public APIsNo public official webhook event names or public booking API contract are referenced by the official sources used here. Treat integrations as browser handoff or approved private adapter only.

Intake checklist

Collect the minimum required details before starting:

FieldRequired for renewalRequired for bureau appointmentRequired for practical testNotes
Full nameYesYesYesMatch official records.
Israeli IDYesYesYesValidate checksum before handoff.
Mobile phoneYesYesYesPrefer Israeli mobile number for SMS.
License numberRecommendedRecommendedOptionalMissing value may require manual lookup.
License classYesYesYesCommon classes: A, A1, A2, B, C1, C, D.
Expiry dateYesOptionalNoStore as DD/MM/YYYY in customer-facing notes.
Medical declaration statusConditionalConditionalNoRequired for some renewals and status changes.
Payment statusYesNoNoUse official payment page only.
Preferred dates and cityOptionalYesYesKeep at least two alternatives for appointments.
Accessibility requirementConditionalConditionalConditionalRecord only operational need, not sensitive medical detail.
Customer consentYesYesYesRecord consent before handling personal data.

Decision tree

flowchart TD
    A[Start: customer needs license or driving-test help] --> B{Need practical driving test?}
    B -->|Yes| C[Collect candidate, teacher, license class, pickup city, preferred dates]
    C --> D{Teacher confirms availability?}
    D -->|Yes| E[Record test date and reminder]
    D -->|No| F[Ask for alternative windows]
    B -->|No| G{License renewal?}
    G -->|Yes| H[Validate ID, phone, license number, expiry date]
    H --> I{Self-service renewal eligible?}
    I -->|Yes| J[Prepare official renewal and payment handoff]
    I -->|No| K[Prepare Licensing Bureau appointment]
    G -->|No| L[Classify service need and prepare bureau appointment]
    J --> M[Save official confirmation and receipt]
    K --> N[Save appointment reference and documents checklist]
    E --> O[Close workflow after confirmation]
    M --> O
    N --> O

Renewal workflow

  1. Validate the Israeli ID checksum and normalize the phone number.
  2. Confirm the license expiry date and current license class.
  3. Check whether a medical declaration, eyesight test, fee payment, or bureau visit is required.
  4. Prepare a renewal payload with the official service links.
  5. Open the official renewal service and complete identity verification with the customer present or through an approved customer-side process.
  6. Pay the renewal fee only through an official payment page. Record the ₪ amount, receipt number, and payment date in DD/MM/YYYY format.
  7. Store the confirmation number, receipt, and next reminder date.
  8. Send the customer a neutral summary that includes the official confirmation, not a promise of government approval before confirmation exists.

Renewal example

import datetime as dt
from driving_license_booker import Applicant, DrivingLicenseBookerClient

client = DrivingLicenseBookerClient(environment="sandbox", state_path="state.json")
applicant = Applicant(
    full_name="Dana Levi",
    national_id="039456785",
    phone="0501234567",
    license_number="1234567",
)
readiness = client.check_renewal_readiness(
    applicant=applicant,
    expiry_date=dt.date(2026, 8, 31),
    has_paid_fee=False,
    medical_declaration_required=True,
    medical_declaration_done=False,
)
print(client.serialize(readiness))

Expected result: ready is false because fee payment and medical declaration are unresolved.

Licensing Bureau appointment workflow

Use this path when online renewal is blocked, the customer needs an in-person service, identity details do not match, documents must be reviewed, or accessibility coordination is needed.

  1. Confirm that an office visit is actually required.
  2. Collect city, branch preference, preferred date windows, and accessibility needs.
  3. Create a local handoff record.
  4. Open the official appointment system and select the Licensing Bureau service.
  5. Save the appointment reference, branch, date, time, and reminder schedule.
  6. Send the customer a document checklist and arrival instructions.

Appointment example

driving-license-booker create-office   --env sandbox   --state office-state.json   --name "Moshe Cohen"   --national-id 123456782   --phone 0527654321   --license-number 7654321   --date 2026-07-15   --city "Haifa"   --accessibility-needed

Practical driving-test workflow

Use this path for learners, re-test cases, or license-class upgrades that require coordination with an authorized driving teacher.

  1. Collect candidate name, Israeli ID, phone, license class, pickup city, and preferred dates.
  2. Confirm that the teacher can coordinate the test and the appropriate vehicle class.
  3. Send a structured message to the teacher.
  4. Record the confirmed test date only after teacher confirmation.
  5. Add reminders for candidate documents, arrival time, and payment or lesson balance if applicable.
  6. Keep cancellation and rescheduling notes in the local record.

Teacher message example

import datetime as dt
from driving_license_booker import Applicant, DrivingLicenseBookerClient, TimeWindow

client = DrivingLicenseBookerClient()
message = client.make_teacher_message(
    applicant=Applicant("Noa Israeli", "039456785", "0501234567", license_class="B"),
    windows=[TimeWindow(dt.date(2026, 7, 20), city="Rishon LeZion")],
    teacher_name="Avi",
    pickup_city="Rishon LeZion",
)
print(message)

Edge cases

CaseAction
Expired licenseContinue intake, mark warning, prioritize official renewal check, and avoid telling the customer to drive until validity is confirmed.
Invalid Israeli ID checksumStop before handoff and request corrected ID.
Foreign license conversionTreat as bureau appointment or dedicated conversion workflow, not a standard renewal.
Medical declaration requiredAdd blocker until declaration completion is confirmed.
Customer lacks digital accessPrepare bureau appointment or assisted official-service session with consent.
Payment failed but card chargedDo not retry blindly. Check official receipt status and payment provider confirmation.
Appointment unavailable in preferred cityOffer nearby cities and document customer approval.
Accessibility requestRecord operational requirements and avoid unnecessary medical detail.
Name mismatchEscalate to official service or bureau appointment. Do not edit identity details casually.
Practical test teacher unavailableKeep request in draft and collect alternative windows.

Anti-patterns

Do not do the following:

  • Scrape protected government pages or automate CAPTCHA, SMS, national ID, or password steps.
  • Store government login credentials in notes, spreadsheets, scripts, or environment variables.
  • Charge a service fee before explaining what is official fee and what is private service fee.
  • Promise a license renewal, test date, or appointment before official confirmation exists.
  • Mix customers in a shared browser session.
  • Keep scans of identity documents longer than necessary.
  • Use a practical-test workflow as a substitute for teacher confirmation.
  • Translate a Hebrew official term into an invented English label when customer communication needs the exact government wording.

Troubleshooting overview

SymptomLikely causeFix
ID rejectedChecksum or typoNormalize and validate nine digits.
Phone rejectedCountry code or missing leading zeroNormalize +972 to 0 format.
Renewal blockedMedical declaration, eyesight test, debt, or data mismatchUse readiness check and prepare bureau path.
No appointmentsHigh demand or wrong service typeSearch other cities and later dates.
Receipt missingPayment not completed or delayedCheck official payment result before retrying.
Teacher cannot confirmVehicle or schedule conflictRequest new windows and keep draft state.

Production checklist

Before using the package in production:

  • Install with pip install -e . and run the test suite.
  • Configure a separate local state file for each branch or business unit.
  • Store only necessary personal data and define retention periods.
  • Log customer consent and the exact official confirmation reference.
  • Separate official fee, private service fee, VAT where applicable, and ₪ receipt details.
  • For VAT-registered service providers, verify the current VAT rate before issuing an invoice; the web-validated rate on 04/06/2026 is 18%.
  • Use --env production only when real customers and official services are involved.
  • Keep sandbox examples out of customer records.
  • Train staff to stop at identity-verification and payment screens unless the customer is present or an approved consent process exists.
  • Verify Hebrew templates before sending customer-facing messages.
  • Review references/troubleshooting.md and references/test-scenarios.md before launch.

CLI command map

CommandPurpose
service-linksPrint official-service links.
create-renewalCreate a local renewal handoff record.
create-officeCreate a Licensing Bureau appointment handoff record.
create-practicalCreate a practical-test coordination record.
getFetch a local record by request id.
cancelMark a local record as cancelled.
listList local records, optionally by status.
readinessCheck renewal blockers and warnings.
teacher-messageGenerate a Hebrew teacher coordination message.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.