Skill: agenticio/visa (version 2.1.0)

--- name: visa description: Visa application guidance with document tracking and timeline management. Use when user mentions travel visas, visa applications, visa documents, consulate interviews, or entry requirements. Identifies correct visa type, builds document checklists, manages timelines, prepares for interviews, and tracks application status. NEVER guarantees visa approval. --- # Visa Visa navigation system. Get the right visa, get it right. ## Critical Privacy & Safety ### Data Storage (CRITICAL) - **All visa data stored locally only**: `memory/visa/` - **No government systems** connected - **No document uploads** to external services - **No application submission** through this skill - User controls all data retention and deletion ### Safety Boundaries - ✅ Identify visa types and requirements - ✅ Build document checklists - ✅ Track application timelines - ✅ Prepare for interviews - ❌ **NEVER guarantee** visa approval - ❌ **NEVER replace** licensed immigration attorneys - ❌ **NEVER submit** applications on your behalf ### Data Structure Visa data stored locally: - `memory/visa/applications.json` - Active applications - `memory/visa/documents.json` - Document checklist and status - `memory/visa/timelines.json` - Application timelines and deadlines - `memory/visa/interview_prep.json` - Interview preparation - `memory/visa/requirements.json` - Country-specific requirements ## Core Workflows ### Identify Visa Type ``` User: "What visa do I need for Germany?" → Use scripts/identify_visa.py --country Germany --purpose work --duration 6months → Analyze situation, recommend visa category ``` ### Build Document Checklist ``` User: "What documents do I need for Schengen visa?" → Use scripts/build_checklist.py --visa schengen --nationality US → Generate complete document list with specifications ``` ### Track Timeline ``` User: "Track my visa application" → Use scripts/track_timeline.py --application-id "VISA-123" → Show deadlines, upcoming actions, document expiry alerts ``` ### Prepare for Interview ``` User: "Prep me for my visa interview" → Use scripts/prep_interview.py --visa-type work --country Canada → Generate likely questions and recommended responses ``` ### Log Application ``` User: "I submitted my application today" → Use scripts/log_application.py --country Japan --visa-type tourist --submission-date 2024-03-01 → Track application with timeline and reminders ``` ## Module Reference - **Visa Types**: See [references/visa-types.md](references/visa-types.md) - **Document Checklists**: See [references/documents.md](references/documents.md) - **Timeline Management**: See [references/timelines.md](references/timelines.md) - **Interview Preparation**: See [references/interview.md](references/interview.md) - **Denied Applications**: See [references/denials.md](references/denials.md) - **Entry Requirements**: See [references/entry-requirements.md](references/entry-requirements.md) ## Scripts Reference | Script | Purpose | |--------|---------| | `identify_visa.py` | Identify correct visa type | | `build_checklist.py` | Generate document checklist | | `track_timeline.py` | Track application timeline | | `prep_interview.py` | Prepare for visa interview | | `log_application.py` | Log new application | | `check_deadlines.py` | Check upcoming deadlines | | `compare_visas.py` | Compare visa options | | `document_status.py` | Check document status |

path: scripts/identify_visa.py
content: #!/usr/bin/env python3
"""Identify correct visa type."""
import json
import os
import uuid
import argparse
from datetime import datetime

VISA_DIR = os.path.expanduser("~/.openclaw/workspace/memory/visa")

def ensure_dir():
    os.makedirs(VISA_DIR, exist_ok=True)

def main():
    parser = argparse.ArgumentParser(description='Identify visa type')
    parser.add_argument('--country', required=True, help='Destination country')
    parser.add_argument('--purpose', required=True, help='Purpose (tourism, work, study, etc)')
    parser.add_argument('--duration', help='Intended duration')
    parser.add_argument('--nationality', help='Your nationality')
    
    args = parser.parse_args()
    
    print(f"\n🌍 VISA ANALYSIS: {args.country}")
    print("=" * 60)
    print(f"Purpose: {args.purpose}")
    print(f"Duration: {args.duration or 'Not specified'}")
    print(f"Nationality: {args.nationality or 'Not specified'}")
    print()
    
    # Simplified visa type recommendations
    recommendations = []
    
    if args.purpose.lower() in ['tourism', 'vacation', 'sightseeing']:
        recommendations.append({
            'type': 'Tourist Visa',
            'typical_duration': '30-90 days',
            'processing': '2-4 weeks',
            'notes': 'For leisure travel, no work permitted'
        })
    elif args.purpose.lower() in ['work', 'employment', 'job']:
        recommendations.append({
            'type': 'Work Visa',
            'typical_duration': '1-3 years',
            'processing': '1-3 months',
            'notes': 'Requires employer sponsorship in most cases'
        })
    elif args.purpose.lower() in ['study', 'education', 'school']:
        recommendations.append({
            'type': 'Student Visa',
            'typical_duration': 'Duration of study program',
            'processing': '1-3 months',
            'notes': 'Requires acceptance from accredited institution'
        })
    
    if recommendations:
        print("RECOMMENDED VISA TYPES:")
        for i, rec in enumerate(recommendations, 1):
            print(f"\n{i}. {rec['type']}")
            print(f"   Duration: {rec['typical_duration']}")
            print(f"   Processing: {rec['processing']}")
            print(f"   Notes: {rec['notes']}")
    
    print("\n⚠️  IMPORTANT:")
    print("   Visa requirements change frequently.")
    print("   Always verify current requirements with official sources:")
    print(f"   - Embassy/consulate of {args.country}")
    print("   - Official government immigration website")
    print("   - Consider consulting licensed immigration attorney")

if __name__ == '__main__':
    main()


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)