{"id":"b11ee33b-6d43-4ec4-a6e7-5f54128bcc74","shortId":"4DsdzT","kind":"skill","title":"Use My Browser","tagline":"Skills skill by Xixu Me","description":"Do not treat this skill as a generic browsing default. Route from the evidence you need, not from tool preference.\n\nEvery task must be classified before you choose a route:\n\n- `static-capable`: the evidence can be produced without live browser state, visible confirmation, or page interaction\n- `browser-required`: the evidence depends on rendered state, interaction, live session behavior, or browser-only structures\n\nOnly `static-capable` tasks may fall back to static retrieval, `curl`, or other non-browser paths. Once a task is `browser-required`, stay on the browser path and mark missing capability as `blocked` instead of silently downgrading.\n\n## Prerequisite check\n\nThis skill is for work inside the user's live browser session, not for launching a separate fresh automation browser.\n\nBefore doing browser automation, confirm that your environment already has access to a live browser stack that can provide the capabilities the task depends on, such as page inventory, task-owned page creation, page selection, snapshots or visible-state reads, DOM inspection, text or form input, uploads, dialogs, console inspection, and network inspection. The exact stack does not matter here: confirm capability, not brand.\n\nIf the live browser stack is unavailable, do not attempt browser automation through this skill. Only `static-capable` work may fall back to static retrieval.\n\nLive browser automation can trigger anti-bot or anti-automation defenses on some sites. Use browser interaction only when the task truly needs it, and avoid unnecessary repetitive actions once the needed evidence has been obtained.\n\n## Experience loop\n\nTreat site patterns as part of the browser protocol, not as optional background reading.\n\nFor `browser-required` work, run this loop:\n\n1. As soon as the target domain is known, check whether a matching note already exists under [`references/site-patterns/`](./references/site-patterns/).\n2. If a note exists, read it before the first meaningful browser mutation on that domain.\n3. During the run, watch for verified site-specific facts that would change how a future run should operate.\n4. Before you consider the task complete, decide whether the run produced a reusable fact, disproved an existing fact, or produced no reusable site-specific learning.\n5. If the run verified something reusable or disproved an existing claim, update the matching note before finishing.\n\nDo not create a domain note for one-off noise. Do not skip the end-of-run review just because the task itself succeeded.\n\nWriteback is expected when a run verifies any of the following:\n\n- a stable route shape or required query parameter\n- a login, session inheritance, or `isolatedContext` quirk\n- a reliable interaction primitive such as hover, keyboard entry, upload sequencing, or a selector bridge pattern\n- a domain where DOM-generated links are reliable but hand-built URLs are not\n- predictable anti-automation friction or a misleading platform error state\n- a reusable media extraction or iframe / Shadow DOM access pattern\n\n## Decision guide\n\nStart with the outcome, not the tool. Make the user's goal explicit, define what counts as done, and choose the cheapest route that can still produce the right evidence.\n\nUse this routing order:\n\n1. Decide whether the task is `static-capable` or `browser-required`.\n2. If the task is `static-capable`, load [`references/task-routing.md`](./references/task-routing.md) and stay on the cheapest route that still satisfies the evidence target.\n3. If the task is `browser-required`, load [`references/browser-playbook.md`](./references/browser-playbook.md).\n4. If browser-required capability is uncertain in a fresh host session, also load [`references/browser-capability-matrix.md`](./references/browser-capability-matrix.md).\n5. If the user already has an active browser debugging context, such as a selected inspector element or network request, also load [`references/debug-handoff.md`](./references/debug-handoff.md).\n6. If the browser-required task touches a logged-in dashboard, admin surface, CMS, editor, or any save / publish / update flow, also load [`references/control-plane-workflows.md`](./references/control-plane-workflows.md).\n7. If the current failure shape suggests a soft 404, content-unavailable state, suspicious no-op interaction, auth wall, rate limit, or anti-automation defense, also load [`references/anti-automation-friction.md`](./references/anti-automation-friction.md).\n8. If the browser-required task includes iframe, Shadow DOM, collapsed content, or lazy-loaded evidence, also load [`references/deep-dom.md`](./references/deep-dom.md).\n9. If the important evidence lives in an image, audio clip, or video, also load [`references/media-inspection.md`](./references/media-inspection.md).\n10. If browser work can be divided across independent page owners or sub-agents, also load [`references/parallel-browser-ownership.md`](./references/parallel-browser-ownership.md).\n11. If you already know a reliable selector but need an MCP-native `uid` target, also load [`references/selector-bridge.md`](./references/selector-bridge.md).\n12. If page actions leave state ambiguous, a page unexpectedly navigates, an old `uid` may have gone stale, or console / network inspection is now needed to explain the next browser decision, also load [`references/browser-recovery.md`](./references/browser-recovery.md).\n13. If the target site already has a matching domain note under [`references/site-patterns/`](./references/site-patterns/), read that note before operating on the site.\n\nTreat the following as `browser-required` by default:\n\n- `localhost`, `127.0.0.1`, or benchmark-style local fixtures\n- uploads, downloads, drag-and-drop, hover, keyboard-native entry, or visible confirmation states\n- same-origin iframe inspection, Shadow DOM inspection, `details` / collapsed evidence, or lazy-loaded content\n- any task where \"what the page visibly shows\" is itself the evidence\n\nThe normal happy path for a common task is this entrypoint plus one or two references, not the entire reference set.\n\n## Hard rules\n\n- Use browser interaction only when live browser state is part of the evidence or required action.\n- Once a task is `browser-required`, do not silently downgrade.\n- Treat this file as the entrypoint and each reference file as a single-purpose authority. Do not duplicate rules across files.\n- Keep reference loading one level deep. Decide the next file from this entrypoint instead of turning one reference into a hub that links to more references.\n- Do not ask the user to log in just because a page looks restricted. First confirm whether the target content or action is actually blocked.\n- Prefer site-generated DOM links over hand-built URLs once the page has shown you the path it expects.\n- Prefer MCP-native actions over script-driven interaction when the task is genuinely an in-browser action.\n- Only close pages you created.\n- Prefer primary sources over aggregators or repeated secondary reporting.\n- If a matching site pattern note exists, read it before the first meaningful browser mutation on that domain.\n- Do not finish a `browser-required` task without explicitly checking whether the run should create, update, downgrade, or remove a site-pattern claim.\n- If an existing site-pattern claim fails under comparable conditions, stop trusting it, fall back to the generic workflow, and update the note instead of retrying the stale assumption.\n- Do not use `curl`, `Invoke-WebRequest`, or shell HTTP fetches for `browser-required` tasks.\n- Do not treat a generic page-opening tool as evidence that localhost deep interaction is available.\n- Do not switch routes just because a browser capability probe failed. Record the missing capability and stop.\n- When the user indicates an active browser debugging context, prefer handoff from that current context over fresh reproduction from scratch.\n\n## Reference index\n\n- [`references/task-routing.md`](./references/task-routing.md): static retrieval vs live browser routing\n- [`references/browser-playbook.md`](./references/browser-playbook.md): core page-action protocol and base browser loop\n- [`references/browser-capability-matrix.md`](./references/browser-capability-matrix.md): capability proof for uncertain host sessions\n- [`references/debug-handoff.md`](./references/debug-handoff.md): active debugging-context handoff\n- [`references/control-plane-workflows.md`](./references/control-plane-workflows.md): logged-in dashboard / CMS save-publish discipline\n- [`references/anti-automation-friction.md`](./references/anti-automation-friction.md): soft 404 / auth / anti-automation classification\n- [`references/deep-dom.md`](./references/deep-dom.md): iframe, Shadow DOM, collapsed, or lazy-loaded evidence\n- [`references/media-inspection.md`](./references/media-inspection.md): image, audio, and video evidence\n- [`references/parallel-browser-ownership.md`](./references/parallel-browser-ownership.md): multi-owner browser coordination\n- [`references/selector-bridge.md`](./references/selector-bridge.md): selector-to-`uid` bridging\n- [`references/browser-recovery.md`](./references/browser-recovery.md): stale `uid`, navigation drift, and console / network escalation\n- [`references/site-patterns/README.md`](./references/site-patterns/README.md): site-pattern note maintenance rules\n- [site-patterns/{domain}.md](./references/site-patterns/): existing domain-specific operating knowledge","tags":["use","browser","skills","xixu-me"],"capabilities":["skill","source-xixu-me","category-skills"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/xixu-me/skills/use-my-browser","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under xixu-me/skills","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T02:40:12.358Z","embedding":null,"createdAt":"2026-04-18T20:23:43.699Z","updatedAt":"2026-04-24T02:40:12.358Z","lastSeenAt":"2026-04-24T02:40:12.358Z","tsv":"'/references/anti-automation-friction.md':677,1242 '/references/browser-capability-matrix.md':594,1216 '/references/browser-playbook.md':577,1205 '/references/browser-recovery.md':790,1283 '/references/control-plane-workflows.md':645,1231 '/references/debug-handoff.md':618,1224 '/references/deep-dom.md':699,1251 '/references/media-inspection.md':716,1262 '/references/parallel-browser-ownership.md':735,1269 '/references/selector-bridge.md':755,1276 '/references/site-patterns':308,804,1305 '/references/site-patterns/readme.md':1293 '/references/task-routing.md':554,1197 '1':290,531 '10':717 '11':736 '12':756 '127.0.0.1':823 '13':791 '2':309,544 '3':325,567 '4':345,578 '404':655,1244 '5':372,595 '6':619 '7':646 '8':678 '9':700 'access':146,493 'across':724,943 'action':258,759,911,992,1021,1036,1209 'activ':602,1179,1225 'actual':994 'admin':632 'agent':731 'aggreg':1046 'alreadi':144,304,599,739,796 'also':591,615,642,674,696,713,732,752,787 'ambigu':762 'anti':234,238,476,671,1247 'anti-autom':237,475,670,1246 'anti-bot':233 'ask':973 'assumpt':1123 'attempt':211 'audio':709,1264 'auth':665,1245 'author':938 'autom':134,139,213,230,239,477,672,1248 'avail':1156 'avoid':255 'back':81,224,1109 'background':280 'base':1212 'behavior':68 'benchmark':826 'benchmark-styl':825 'block':109,995 'bot':235 'brand':201 'bridg':456,1281 'brows':17 'browser':3,49,57,71,90,97,102,126,135,138,150,205,212,229,245,275,284,320,542,573,581,603,623,682,719,785,818,897,902,917,1035,1064,1074,1137,1164,1180,1202,1213,1273 'browser-on':70 'browser-requir':56,96,283,541,572,580,622,681,817,916,1073,1136 'built':470,1005 'capabl':41,77,107,156,199,220,539,551,583,1165,1171,1217 'category-skills' 'chang':338 'cheapest':518,559 'check':115,299,1079 'choos':36,516 'claim':383,1093,1100 'classif':1249 'classifi':33 'clip':710 'close':1038 'cms':634,1236 'collaps':689,854,1255 'common':879 'compar':1103 'complet':351 'condit':1104 'confirm':52,140,198,843,986 'consid':348 'consol':186,775,1289 'content':657,690,860,990 'content-unavail':656 'context':605,1182,1188,1228 'coordin':1274 'core':1206 'count':512 'creat':392,1041,1084 'creation':169 'curl':85,1127 'current':649,1187 'dashboard':631,1235 'debug':604,1181,1227 'debugging-context':1226 'decid':352,532,951 'decis':495,786 'deep':950,1153 'default':18,821 'defens':240,673 'defin':510 'depend':61,159 'detail':853 'dialog':185 'disciplin':1240 'disprov':360,380 'divid':723 'dom':178,462,492,688,851,1000,1254 'dom-gener':461 'domain':296,324,394,459,800,1068,1303,1308 'domain-specif':1307 'done':514 'downgrad':113,922,1086 'download':831 'drag':833 'drag-and-drop':832 'drift':1287 'driven':1025 'drop':835 'duplic':941 'editor':635 'element':611 'end':406 'end-of-run':405 'entir':891 'entri':450,840 'entrypoint':883,928,957 'environ':143 'error':483 'escal':1291 'everi':29 'evid':22,43,60,262,526,565,695,704,855,872,908,1150,1260,1267 'exact':192 'exist':305,313,362,382,1057,1096,1306 'expect':418,1016 'experi':266 'explain':782 'explicit':509,1078 'extract':488 'fact':335,359,363 'fail':1101,1167 'failur':650 'fall':80,223,1108 'fetch':1134 'file':925,932,944,954 'finish':389,1071 'first':318,985,1062 'fixtur':829 'flow':641 'follow':426,815 'form':182 'fresh':133,588,1190 'friction':478 'futur':341 'generat':463,999 'generic':16,1112,1144 'genuin':1031 'goal':508 'gone':772 'guid':496 'hand':469,1004 'hand-built':468,1003 'handoff':1184,1229 'happi':875 'hard':894 'host':589,1221 'hover':448,836 'http':1133 'hub':965 'ifram':490,686,848,1252 'imag':708,1263 'import':703 'in-brows':1033 'includ':685 'independ':725 'index':1195 'indic':1177 'inherit':438 'input':183 'insid':121 'inspect':179,187,190,777,849,852 'inspector':610 'instead':110,958,1118 'interact':55,65,246,444,664,898,1026,1154 'inventori':164 'invok':1129 'invoke-webrequest':1128 'isolatedcontext':440 'keep':945 'keyboard':449,838 'keyboard-n':837 'know':740 'knowledg':1311 'known':298 'launch':130 'lazi':693,858,1258 'lazy-load':692,857,1257 'learn':371 'leav':760 'level':949 'limit':668 'link':464,967,1001 'live':48,66,125,149,204,228,705,901,1201 'load':552,575,592,616,643,675,694,697,714,733,753,788,859,947,1259 'local':828 'localhost':822,1152 'log':629,977,1233 'logged-in':628,1232 'login':436 'look':983 'loop':267,289,1214 'mainten':1298 'make':504 'mark':105 'match':302,386,799,1053 'matter':196 'may':79,222,770 'mcp':748,1019 'mcp-nativ':747,1018 'md':1304 'meaning':319,1063 'media':487 'mislead':481 'miss':106,1170 'multi':1271 'multi-own':1270 'must':31 'mutat':321,1065 'nativ':749,839,1020 'navig':766,1286 'need':24,252,261,745,780 'network':189,613,776,1290 'next':784,953 'no-op':661 'nois':400 'non':89 'non-brows':88 'normal':874 'note':303,312,387,395,801,807,1056,1117,1297 'obtain':265 'old':768 'one':398,885,948,961 'one-off':397 'op':663 'open':1147 'oper':344,809,1310 'option':279 'order':530 'origin':847 'outcom':500 'own':167 'owner':727,1272 'page':54,163,168,170,726,758,764,866,982,1009,1039,1146,1208 'page-act':1207 'page-open':1145 'paramet':434 'part':272,905 'path':91,103,876,1014 'pattern':270,457,494,1055,1092,1099,1296,1302 'platform':482 'plus':884 'predict':474 'prefer':28,996,1017,1042,1183 'prerequisit':114 'primari':1043 'primit':445 'probe':1166 'produc':46,356,365,523 'proof':1218 'protocol':276,1210 'provid':154 'publish':639,1239 'purpos':937 'queri':433 'quirk':441 'rate':667 'read':177,281,314,805,1058 'record':1168 'refer':888,892,931,946,962,970,1194 'references/anti-automation-friction.md':676,1241 'references/browser-capability-matrix.md':593,1215 'references/browser-playbook.md':576,1204 'references/browser-recovery.md':789,1282 'references/control-plane-workflows.md':644,1230 'references/debug-handoff.md':617,1223 'references/deep-dom.md':698,1250 'references/media-inspection.md':715,1261 'references/parallel-browser-ownership.md':734,1268 'references/selector-bridge.md':754,1275 'references/site-patterns':307,803 'references/site-patterns/readme.md':1292 'references/task-routing.md':553,1196 'reliabl':443,466,742 'remov':1088 'render':63 'repeat':1048 'repetit':257 'report':1050 'reproduct':1191 'request':614 'requir':58,98,285,432,543,574,582,624,683,819,910,918,1075,1138 'restrict':984 'retri':1120 'retriev':84,227,1199 'reusabl':358,367,378,486 'review':409 'right':525 'rout':19,38,429,519,529,560,1160,1203 'rule':895,942,1299 'run':287,328,342,355,375,408,421,1082 'same-origin':845 'satisfi':563 'save':638,1238 'save-publish':1237 'scratch':1193 'script':1024 'script-driven':1023 'secondari':1049 'select':171,609 'selector':455,743,1278 'selector-to':1277 'separ':132 'sequenc':452 'session':67,127,437,590,1222 'set':893 'shadow':491,687,850,1253 'shape':430,651 'shell':1132 'show':868 'shown':1011 'silent':112,921 'singl':936 'single-purpos':935 'site':243,269,333,369,795,812,998,1054,1091,1098,1295,1301 'site-gener':997 'site-pattern':1090,1097,1294,1300 'site-specif':332,368 'skill':4,5,13,117,216 'skip':403 'snapshot':172 'soft':654,1243 'someth':377 'soon':292 'sourc':1044 'source-xixu-me' 'specif':334,370,1309 'stabl':428 'stack':151,193,206 'stale':773,1122,1284 'start':497 'state':50,64,176,484,659,761,844,903 'static':40,76,83,219,226,538,550,1198 'static-cap':39,75,218,537,549 'stay':99,556 'still':522,562 'stop':1105,1173 'structur':73 'style':827 'sub':730 'sub-ag':729 'succeed':415 'suggest':652 'surfac':633 'suspici':660 'switch':1159 'target':295,566,751,794,989 'task':30,78,94,158,166,250,350,413,535,547,570,625,684,862,880,914,1029,1076,1139 'task-own':165 'text':180 'tool':27,503,1148 'touch':626 'treat':11,268,813,923,1142 'trigger':232 'truli':251 'trust':1106 'turn':960 'two':887 'uid':750,769,1280,1285 'unavail':208,658 'uncertain':585,1220 'unexpect':765 'unnecessari':256 'updat':384,640,1085,1115 'upload':184,451,830 'url':471,1006 'use':1,244,527,896,1126 'user':123,506,598,975,1176 'verifi':331,376,422 'video':712,1266 'visibl':51,175,842,867 'visible-st':174 'vs':1200 'wall':666 'watch':329 'webrequest':1130 'whether':300,353,533,987,1080 'without':47,1077 'work':120,221,286,720 'workflow':1113 'would':337 'writeback':416 'xixu':7","prices":[{"id":"7971fe60-d140-4d09-b25c-5a10bad8c0ca","listingId":"b11ee33b-6d43-4ec4-a6e7-5f54128bcc74","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"xixu-me","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T20:23:43.699Z"}],"sources":[{"listingId":"b11ee33b-6d43-4ec4-a6e7-5f54128bcc74","source":"github","sourceId":"xixu-me/skills/use-my-browser","sourceUrl":"https://github.com/xixu-me/skills/tree/main/skills/use-my-browser","isPrimary":false,"firstSeenAt":"2026-04-18T22:19:21.233Z","lastSeenAt":"2026-04-24T00:56:34.111Z"},{"listingId":"b11ee33b-6d43-4ec4-a6e7-5f54128bcc74","source":"skills_sh","sourceId":"xixu-me/skills/use-my-browser","sourceUrl":"https://skills.sh/xixu-me/skills/use-my-browser","isPrimary":true,"firstSeenAt":"2026-04-18T20:23:43.699Z","lastSeenAt":"2026-04-24T02:40:12.358Z"}],"details":{"listingId":"b11ee33b-6d43-4ec4-a6e7-5f54128bcc74","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"xixu-me","slug":"use-my-browser","source":"skills_sh","category":"skills","skills_sh_url":"https://skills.sh/xixu-me/skills/use-my-browser"},"updatedAt":"2026-04-24T02:40:12.358Z"}}