[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JFA445CFE5R5AEV6JCMDQ4":3,"skill-same:01M6JFA445CFE5R5AEV6JCMDQ4":75},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":58,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M6JFA445CFE5R5AEV6JCMDQ4","travel-planning",null,"Plan urgent or time-sensitive travel options across train, bus, flight, and driving, with live schedules\u002Fprices when possible.","S3YED\u002Fappie-kit","S3YED","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F62743867?v=4","01M6JBKBRRVP6KMS0VWZ27T3R6","01M6JBKBX0KG30284PW1DBYJT1",14,"MIT","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fpersonal\u002Ftravel-planning\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"planning","travel","travel planning","terminal","browser","productivity","plan","options","train","time","across","live","with","itinerary","prices","2026-11-10 10:12:30",false,"---\nname: travel-planning\ndescription: Plan urgent or time-sensitive travel options across train, bus, flight, and driving, with live schedules\u002Fprices when possible.\nversion: 1.0.0\nmetadata:\n  hermes:\n    tags: [travel, itinerary, train, bus, flight, driving, fares, urgent-travel]\n    category: productivity\n    requires_toolsets: [browser, terminal]\n---\n\n# Travel Planning\n\nUse this when the user asks for how to get somewhere, compare travel modes, estimate costs, or choose the best itinerary. Especially important for urgent, emotional, or time-sensitive trips where arrival windows matter more than generic route advice.\n\n## Default output style\n\n- Start with empathy only when appropriate; keep it short and real.\n- Give a clear recommendation first, then alternatives.\n- Use bullets with exact departure\u002Farrival times, transfer count, price, and source.\n- For Telegram, avoid tables; use labeled bullets.\n- State prices as observed\u002Fcurrent, not guaranteed.\n- Do not book anything unless the user explicitly asks and confirms passenger\u002Fpayment details.\n\n## Workflow\n\n1. **Clarify only if required.** If origin\u002Fdestination are obvious enough, proceed and state assumptions.\n2. **Resolve dates.** Use the live date\u002Ftime tool before interpreting \"Thursday\", \"Friday night\", etc.\n3. **Define hard constraints.** Arrival deadline, return window, budget sensitivity, baggage, car availability, passport\u002FID needs, emotional context.\n4. **Check multiple modes in parallel when useful:**\n   - Train: national\u002Finternational rail APIs or carrier sites.\n   - Bus: FlixBus\u002Fother coach sites.\n   - Flights: Google Flights or airline sites; include airport ground transfers.\n   - Driving: distance\u002Ftime plus fuel\u002Fparking\u002Ftolls estimate.\n5. **Prefer door-to-door usefulness over raw ticket price.** Add local transfer cost\u002Ftime for airports and stations.\n6. **Verify at least the top recommendation with the carrier\u002Fsource page if possible.**\n7. **Summarize:** recommended option, cheapest option, fastest\u002Fmost comfortable option, return options, booking links\u002Fsources.\n\n## Useful sources and techniques\n\n### Urgent flight + ferry island transfers\n\nWhen the destination has no airport or requires a ferry after flying, plan door-to-door, not just flight-to-airport.\n\n- Identify the fastest gateway airport and the cheaper mainland fallback.\n- Check the user-friendly arrival window before optimizing price. For island transfers, arriving too late can strand the user or force late speedboats.\n- Search both relevant Bangkok airports when the user says \"Bangkok\" (e.g. BKK and DMK), but keep the final recommendation simple.\n- Pair flight options with realistic ferry windows before recommending them. Allow at least 75-90 minutes from airport landing to ferry departure unless explicitly labeling a tight\u002Frisky connection.\n- If airline or OTA deep-search pages are blocked by CAPTCHA\u002Fanti-bot, do not conclude there is no availability. Cross-check official schedule pages, multiple aggregator search snippets, route\u002Fflight-status pages, and ferry timetables. Present as observed availability and tell the user to verify at checkout.\n- For urgent next-day travel, give a clear decision threshold: e.g. \"book tomorrow if under X, otherwise shift to the fallback date\u002Froute.\"\n\nSee `references\u002Fbangkok-koh-phangan-flight-ferry.md` for the Bangkok → Koh Samui → Koh Phangan pattern, ferry windows, and search queries.\n\n### European trains via DB transport.rest\n\nFor cross-border European rail, the public DB transport.rest endpoint can return journeys and sometimes fares:\n\n```bash\npython3 - \u003C\u003C'PY'\nimport urllib.request, urllib.parse, json\nparams = urllib.parse.urlencode({\n  'from': '8400530',        # Rotterdam Centraal\n  'to': '8002549',          # Hamburg Hbf\n  'departure': '2026-05-13T15:00:00+02:00',\n  'results': '5',\n  'language': 'en',\n})\nurl = 'https:\u002F\u002Fv6.db.transport.rest\u002Fjourneys?' + params\nreq = urllib.request.Request(url, headers={'User-Agent': 'hermes-travel-planner'})\ndata = json.load(urllib.request.urlopen(req, timeout=40))\nfor j in data.get('journeys', []):\n    legs = j['legs']\n    lines = [l.get('line', {}).get('name', 'walk') for l in legs if l.get('line') or l.get('walking')]\n    print(legs[0].get('plannedDeparture'), '->', legs[-1].get('plannedArrival'), j.get('price'), 'via', ' | '.join(lines))\nPY\n```\n\nFind station IDs first with `\u002Flocations?query=...` or a client library. Treat `partialFare: true` as incomplete and say so.\n\n### FlixBus\n\nFlixBus route pages often expose useful static route facts and a \"See prices\" interactive flow:\n\n- Static route page gives average duration, distance, cheapest price, first\u002Flast bus, average trips\u002Fday.\n- Click **See prices**, then step through dates using the next-day button.\n- Capture directness, exact stops, \"almost full\" \u002F \"only 1 seat left\", and whether arrival is next day.\n\n### Flights\n\nFor Netherlands to nearby European cities, check Amsterdam Schiphol even when the user is near Rotterdam; smaller airports can be much worse. Include:\n\n- Flight price and times.\n- Ground transfer: e.g. Rotterdam Centraal to Schiphol train, destination airport to city center.\n- Door-to-door estimate and reliability tradeoff.\n\n### Driving estimates\n\nWhen route APIs are flaky, use route-page distances or common mapping sources and calculate fuel explicitly. Example fuel estimate:\n\n```python\nkm = 574\nliters_per_100 = 6.5\nfuel_price = 2.05\nround_trip_fuel = km * liters_per_100 \u002F 100 * fuel_price * 2\n```\n\nAdd parking\u002Ftolls separately and mark as estimate.\n\n## Pitfalls\n\n- Do not present a single-mode answer for urgent travel unless clearly requested; compare bus\u002Ftrain\u002Fflight\u002Fdriving.\n- For funerals, medical, legal, or other emotional travel: prioritize arrival certainty and rest, not just cheapest fare.\n- Avoid overloading the user with every itinerary; give the top 2-4 and a recommendation.\n- Prices can change quickly; say \"observed\" and include booking source.\n- Browser travel sites can be slow or flaky. If one source stalls, switch sources rather than waiting indefinitely.\n- Do not retry blocked\u002Ftimeout route commands that the environment explicitly flags as blocked.\n- Do not treat OTA anti-bot blocks as route unavailability. Use snippets and independent schedule sources, then label confidence and checkout-verification needs.\n- For flight-to-ferry routes, avoid recommending flights that land after the normal ferry schedule unless explicitly framed as a late\u002Frisky fallback.\n\n## References\n\n- `references\u002Fnetherlands-hamburg-urgent-travel.md` — session notes from Rotterdam\u002FHamburg urgent funeral travel research, including FlixBus, DB transport.rest, KLM\u002FGoogle Flights findings, and routing pitfalls.\n- `references\u002Fflight-booking-calendar-fit.md` — pattern for finding a specific flight, handling blocked airline deep links, and checking whether the departure works with the user's calendar and airport buffer.\n\n## Verification checklist\n\nBefore final response:\n\n- Dates match the user's requested weekdays and current year.\n- Arrival\u002Fdeparture windows are explicitly satisfied or called out as imperfect.\n- Prices have sources and are not implied as guaranteed.\n- Return options are included if requested.\n- Booking links\u002Fsources are included without performing booking.\n","# Travel Planning\n\nUse this when the user asks for how to get somewhere, compare travel modes, estimate costs, or choose the best itinerary. Especially important for urgent, emotional, or time-sensitive trips where arrival windows matter more than generic route advice.\n\n## Default output style\n\n- Start with empathy only when appropriate; keep it short and real.\n- Give a clear recommendation first, then alternatives.\n- Use bullets with exact departure\u002Farrival times, transfer count, price, and source.\n- For Telegram, avoid tables; use labeled bullets.\n- State prices as observed\u002Fcurrent, not guaranteed.\n- Do not book anything unless the user explicitly asks and confirms passenger\u002Fpayment details.\n\n## Workflow\n\n1. **Clarify only if required.** If origin\u002Fdestination are obvious enough, proceed and state assumptions.\n2. **Resolve dates.** Use the live date\u002Ftime tool before interpreting \"Thursday\", \"Friday night\", etc.\n3. **Define hard constraints.** Arrival deadline, return window, budget sensitivity, baggage, car availability, passport\u002FID needs, emotional context.\n4. **Check multiple modes in parallel when useful:**\n   - Train: national\u002Finternational rail APIs or carrier sites.\n   - Bus: FlixBus\u002Fother coach sites.\n   - Flights: Google Flights or airline sites; include airport ground transfers.\n   - Driving: distance\u002Ftime plus fuel\u002Fparking\u002Ftolls estimate.\n5. **Prefer door-to-door usefulness over raw ticket price.** Add local transfer cost\u002Ftime for airports and stations.\n6. **Verify at least the top recommendation with the carrier\u002Fsource page if possible.**\n7. **Summarize:** recommended option, cheapest option, fastest\u002Fmost comfortable option, return options, booking links\u002Fsources.\n\n## Useful sources and techniques\n\n### Urgent flight + ferry island transfers\n\nWhen the destination has no airport or requires a ferry after flying, plan door-to-door, not just flight-to-airport.\n\n- Identify the fastest gateway airport and the cheaper mainland fallback.\n- Check the user-friendly arrival window before optimizing price. For island transfers, arriving too late can strand the user or force late speedboats.\n- Search both relevant Bangkok airports when the user says \"Bangkok\" (e.g. BKK and DMK), but keep the final recommendation simple.\n- Pair flight options with realistic ferry windows before recommending them. Allow at least 75-90 minutes from airport landing to ferry departure unless explicitly labeling a tight\u002Frisky connection.\n- If airline or OTA deep-search pages are blocked by CAPTCHA\u002Fanti-bot, do not conclude there is no availability. Cross-check official schedule pages, multiple aggregator search snippets, route\u002Fflight-status pages, and ferry timetables. Present as observed availability and tell the user to verify at checkout.\n- For urgent next-day travel, give a clear decision threshold: e.g. \"book tomorrow if under X, otherwise shift to the fallback date\u002Froute.\"\n\nSee `references\u002Fbangkok-koh-phangan-flight-ferry.md` for the Bangkok → Koh Samui → Koh Phangan pattern, ferry windows, and search queries.\n\n### European trains via DB transport.rest\n\nFor cross-border European rail, the public DB transport.rest endpoint can return journeys and sometimes fares:\n\n```bash\npython3 - \u003C\u003C'PY'\nimport urllib.request, urllib.parse, json\nparams = urllib.parse.urlencode({\n  'from': '8400530',        # Rotterdam Centraal\n  'to': '8002549',          # Hamburg Hbf\n  'departure': '2026-05-13T15:00:00+02:00',\n  'results': '5',\n  'language': 'en',\n})\nurl = 'https:\u002F\u002Fv6.db.transport.rest\u002Fjourneys?' + params\nreq = urllib.request.Request(url, headers={'User-Agent': 'hermes-travel-planner'})\ndata = json.load(urllib.request.urlopen(req, timeout=40))\nfor j in data.get('journeys', []):\n    legs = j['legs']\n    lines = [l.get('line', {}).get('name', 'walk') for l in legs if l.get('line') or l.get('walking')]\n    print(legs[0].get('plannedDeparture'), '->', legs[-1].get('plannedArrival'), j.get('price'), 'via', ' | '.join(lines))\nPY\n```\n\nFind station IDs first with `\u002Flocations?query=...` or a client library. Treat `partialFare: true` as incomplete and say so.\n\n### FlixBus\n\nFlixBus route pages often expose useful static route facts and a \"See prices\" interactive flow:\n\n- Static route page gives average duration, distance, cheapest price, first\u002Flast bus, average trips\u002Fday.\n- Click **See prices**, then step through dates using the next-day button.\n- Capture directness, exact stops, \"almost full\" \u002F \"only 1 seat left\", and whether arrival is next day.\n\n### Flights\n\nFor Netherlands to nearby European cities, check Amsterdam Schiphol even when the user is near Rotterdam; smaller airports can be much worse. Include:\n\n- Flight price and times.\n- Ground transfer: e.g. Rotterdam Centraal to Schiphol train, destination airport to city center.\n- Door-to-door estimate and reliability tradeoff.\n\n### Driving estimates\n\nWhen route APIs are flaky, use route-page distances or common mapping sources and calculate fuel explicitly. Example fuel estimate:\n\n```python\nkm = 574\nliters_per_100 = 6.5\nfuel_price = 2.05\nround_trip_fuel = km * liters_per_100 \u002F 100 * fuel_price * 2\n```\n\nAdd parking\u002Ftolls separately and mark as estimate.\n\n## Pitfalls\n\n- Do not present a single-mode answer for urgent travel unless clearly requested; compare bus\u002Ftrain\u002Fflight\u002Fdriving.\n- For funerals, medical, legal, or other emotional travel: prioritize arrival certainty and rest, not just cheapest fare.\n- Avoid overloading the user with every itinerary; give the top 2-4 and a recommendation.\n- Prices can change quickly; say \"observed\" and include booking source.\n- Browser travel sites can be slow or flaky. If one source stalls, switch sources rather than waiting indefinitely.\n- Do not retry blocked\u002Ftimeout route commands that the environment explicitly flags as blocked.\n- Do not treat OTA anti-bot blocks as route unavailability. Use snippets and independent schedule sources, then label confidence and checkout-verification needs.\n- For flight-to-ferry routes, avoid recommending flights that land after the normal ferry schedule unless explicitly framed as a late\u002Frisky fallback.\n\n## References\n\n- `references\u002Fnetherlands-hamburg-urgent-travel.md` — session notes from Rotterdam\u002FHamburg urgent funeral travel research, including FlixBus, DB transport.rest, KLM\u002FGoogle Flights findings, and routing pitfalls.\n- `references\u002Fflight-booking-calendar-fit.md` — pattern for finding a specific flight, handling blocked airline deep links, and checking whether the departure works with the user's calendar and airport buffer.\n\n## Verification checklist\n\nBefore final response:\n\n- Dates match the user's requested weekdays and current year.\n- Arrival\u002Fdeparture windows are explicitly satisfied or called out as imperfect.\n- Prices have sources and are not implied as guaranteed.\n- Return options are included if requested.\n- Booking links\u002Fsources are included without performing booking.\n",{"name":5,"version":43,"metadata":44,"description":7},"1.0.0",{"hermes":45},{"tags":46,"category":28,"requires_toolsets":52},[24,36,31,47,48,49,50,51],"bus","flight","driving","fares","urgent-travel",[27,26],"master","8ec37df6d71fb664ea19d32c079e7d3ff931a8e0","skills\u002Fpersonal\u002Ftravel-planning",3,"https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit","https:\u002F\u002Fweblyfe.ai","https:\u002F\u002Fgithub.com\u002FS3YED","2026-08-27 01:54:02",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add S3YED\u002Fappie-kit --skill travel-planning",{"tool":67,"command":68},"bunx","bunx skills add S3YED\u002Fappie-kit --skill travel-planning",{"tool":70,"command":71},"pnpm","pnpm dlx skills add S3YED\u002Fappie-kit --skill travel-planning","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fpersonal\u002Ftravel-planning\u002FSKILL.md",true,[],[76,108,143,168,199,224],{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":89,"publishedAt":38},"01M6JFD4M6N4DSGC7TXEJ5R3J2","ai-music","AI music generation and audio tools: HeartMuLa lyrics-to-music generation, songwriting craft (+ Suno prompts), and audio spectrogram\u002Ffeature visualization.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fwethlete\u002Fai-music\u002FSKILL.md",[82,85,88],{"categoryNo":83,"categoryName":84,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":86,"categoryName":87,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107],"music","ai music","humanizer","visualization","Tools","Audio","hermes","hermes agent","songwriting","suno","lyrics","prompts","heartmula","craft","generation","feature","ai music generation","music generation",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":122,"publishedAt":38},"01M6JFCZE4XNFQFMNZDHKHT5V5","agentic-webdesign-design-system-ingestion","Use v0 Design Systems 2.0, Bolt Design System Agents, or Lovable to generate production UI from a client's real design system components — not generic Tailwind. Use when building a client website where brand consistency matters.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fweb-design\u002Fagentic-webdesign-design-system-ingestion\u002FSKILL.md",[114,117],{"categoryNo":115,"categoryName":116,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":118,"categoryName":119,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142],"design","agentic","design system","system","ingestion","webdesign","agentic webdesign design system ingestion","components","generate","design systems","website","ui","Tailwind","bolt","lovable","v0","design-system","wed","design system components","appie",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":151,"publishedAt":38},"01M6JFCVPX3913CFAS6QQJ33ZB","agentic-webdesign-agent-elements","Use 21st.dev Agent Elements — 25 shadcn\u002Fui components purpose-built for AI agent UIs. Tool cards (Bash, Edit, Search, Plan, Subagent, MCP), chat, input, streaming. Open source, shadcn-registry install, no runtime lock-in.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fweb-design\u002Fagentic-webdesign-agent-elements\u002FSKILL.md",[149,150],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":118,"categoryName":119,"taxonomyType":120,"taxonomyTypeDesc":121},[124,152,128,153,154,155,130,156,157,158,159,160,161,29,162,163,164,165,166,167],"elements","agentic webdesign agent elements","MCP","ai agent","registry","search","streaming","open source","open","Bash","subagent","edit","install","input","lock","source",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":178,"publishedAt":38},"01M6JFCQC7H65M9QJ6TRE71BS1","vercel-deployment","Deploy static sites and frontends to Vercel — handles both CLI and REST API paths, including the CLI token sanitization workaround.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Fvercel-deployment\u002FSKILL.md",[174,177],{"categoryNo":175,"categoryName":176,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],"deployment","vercel deployment","vercel","macos","cli","linux","windows","deploy","vercel deploy","REST","api","site","deploy to vercel","token","rest api","host","sites","paths","sanitization","static site",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":206,"publishedAt":38},"01M6JFCM4SMTXBM5A01BK2YQG1","software-quality-workflows","Umbrella workflow for TDD, debugging, code simplification, spikes, pre-commit review, and debugger-assisted investigation.","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Fsoftware-quality-workflows\u002FSKILL.md",[205],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223],"workflows","quality","software","software quality workflows","review","tdd","workflow","commit","debugging","code","debugger","pre-commit","investigation","code simplification","user","simplification","for",{"skillNo":225,"name":226,"nameZh":6,"description":227,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":228,"categories":229,"keywords":237,"publishedAt":38},"01M6JFCGD0M6CEATY01W7YN6DB","react-component-refactoring","Safely refactor large React components into smaller, maintainable pieces using proven patterns","https:\u002F\u002Fgithub.com\u002FS3YED\u002Fappie-kit\u002Fblob\u002Fmaster\u002Fskills\u002Fsoftware-development\u002Freact-component-refactoring\u002FSKILL.md",[230,233,236],{"categoryNo":231,"categoryName":232,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":234,"categoryName":235,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[238,239,240,241,242,243,244,245,182,246,247,130,248,185,249,216,250,251,252,253],"react","component","refactoring","component refactoring","react component","react component refactoring","frontend","writing","safe","typescript","react components","modular","refactor","simplify","patterns","test-driven-development"]