{"id":"83536516-7be3-4228-b47c-33588a6dd03e","shortId":"nyS2Cn","kind":"skill","title":"lovstudio:fill-web-form","tagline":"Fill web forms by fetching form fields from a URL, deep-searching the user's local knowledge base for relevant info, and generating a markdown document with all answers pre-filled. Use when the user provides a URL to a web form (conference application, speaker submission, event r","description":"# fill-web-form — Fill Web Forms from Local Knowledge Base\n\nFetch a web form, extract all fields, deep-search the user's local knowledge\nbase for matching information, and output a ready-to-use markdown document.\n\n## When to Use\n\n- User provides a URL to a web form and wants help filling it\n- Conference speaker applications, event registrations, profile forms\n- Any scenario where form fields can be answered from existing local materials\n\n## Workflow (MANDATORY)\n\n### Step 1: Fetch and extract form fields\n\nUse `WebFetch` to retrieve the form page and extract ALL fields:\n\n```\nWebFetch(url, prompt=\"Extract ALL form fields. For each field list: label,\ntype (text/textarea/select/radio/checkbox/file), required status, options\nif applicable, min length constraints. Return structured list.\")\n```\n\nIf the form has radio/select fields, make a second `WebFetch` call to get\nthe exact option text for each.\n\n### Step 2: Deep-search local knowledge base\n\nLaunch an `Agent` (subagent_type: Explore, thoroughness: very thorough) to\nsearch the user's knowledge base. The agent prompt MUST include:\n\n1. The complete list of form fields from Step 1\n2. Instructions to search for:\n   - Personal/professional bio and profile files\n   - Speaking/conference history\n   - Project descriptions and achievements\n   - Company/organization info\n   - Published articles and their topics\n   - Awards, credentials, media mentions\n3. Search locations (adapt to user's repo structure):\n   - Profile/about files (`**/profile/**`, `**/about/**`, `**/bio/**`)\n   - CLAUDE.md files for project context\n   - Posts and articles directories\n   - Project directories\n   - Any `official.md`, `awards.md`, `resume` files\n4. Also check user memory (MEMORY.md) for cached info\n\nRun this in parallel with any additional `WebFetch` calls from Step 1.\n\n### Step 3: Map fields to content\n\nFor each form field, synthesize the best answer from search results:\n\n| Field Type | Strategy |\n|-----------|----------|\n| Short text (name, company, city) | Direct extraction from profile |\n| Bio/introduction (min chars) | Compose from official bio, expand to meet minimum |\n| Long-form (case background, solution) | Synthesize from articles, projects, talks |\n| Radio/select | Pick the best-matching option based on profile |\n| File upload | Mark as \"needs manual upload\" with specs |\n| Private (phone, email) | Mark as \"needs manual input\", suggest if found |\n\n### Step 4: Generate output document\n\nWrite a markdown document with ALL form fields filled. Format:\n\n```markdown\n---\ntitle: \"<Form Name> - 填写内容\"\nstatus: draft\n---\n\n# <Form Name>\n\n> 表单地址：<URL>\n\n---\n\n## 1. <Field Label>\n\n<Filled content or instruction>\n\n---\n\n## 2. <Field Label>\n\n...\n```\n\n**Rules:**\n- Number every field matching the form order\n- For radio/select: prefix chosen option with `**✅ 选择：**`\n- For file uploads: use `> ⚠️ 需上传：<specs>`\n- For private fields: use `> ⚠️ 需手动填写`（with suggestion if available）\n- For textarea fields with min length: ensure content meets or exceeds minimum\n- Include a summary table at the end showing field → status (filled/manual)\n- **MANDATORY:** Append an \"inspected sources\" section at the end of the document\n  with a tree of all files that were read/searched during knowledge base retrieval:\n\n```markdown\n---\n\n## 附录：检索文件路径\n\n```\nknowledge-base/\n├── profile/\n│   └── official.md          ← 个人简介\n├── posts/standalone/2025/\n│   ├── 07-10-Vol-51...md    ← 演讲经历\n│   └── 06-25-comate...md    ← AI工具评测\n├── 1-Projects/lovpen/\n│   └── ...                  ← 产品信息\n└── CLAUDE.md                ← 项目上下文\n```\n```\n\n  This tree helps the user verify source coverage and spot missing materials.\n\n**Output naming:** Follow user's naming convention. Default:\n`手工川-<form-topic>-<YYYY-MM-DD>-v0.1.md`\n\n### Step 5: Present summary\n\nAfter writing the file, show:\n1. A summary table of all fields with fill status\n2. Count of auto-filled vs needs-manual fields\n3. Remind user which fields need manual action (uploads, private data)\n4. **The inspected files tree** (same as in the document appendix, for quick review)\n\n## Key Principles\n\n1. **Pre-fill aggressively** — search deeply, compose content, don't leave blanks\n2. **Meet all constraints** — character minimums, bullet point counts, etc.\n3. **Match form tone** — conference apps need professional language, registrations can be brief\n4. **Respect privacy** — never guess phone numbers or passwords, mark for manual input\n5. **Cite sources** — when composing from knowledge base, the content should be accurate to the user's real experience","tags":["fill","web","form","skills","lovstudio","agent-skills","ai-coding-assistant","cjk","claude-code","cursor","gemini-cli","markdown-to-docx"],"capabilities":["skill","source-lovstudio","skill-fill-web-form","topic-agent-skills","topic-ai-coding-assistant","topic-cjk","topic-claude-code","topic-cursor","topic-gemini-cli","topic-markdown-to-docx","topic-markdown-to-pdf"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/lovstudio/skills/fill-web-form","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add lovstudio/skills","source_repo":"https://github.com/lovstudio/skills","install_from":"skills.sh"}},"qualityScore":"0.470","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 40 github stars · SKILL.md body (4,529 chars)","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-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:56:34.515Z","embedding":null,"createdAt":"2026-04-18T22:18:58.090Z","updatedAt":"2026-04-22T00:56:34.515Z","lastSeenAt":"2026-04-22T00:56:34.515Z","tsv":"'-10':503 '-25':509 '-51':505 '/about':272 '/bio':273 '/profile':271 '06':508 '07':502 '1':133,223,232,310,413,513,549,597 '2':195,233,414,559,610 '3':260,312,570,620 '4':290,393,581,633 '5':541,646 'accur':658 'achiev':248 'action':577 'adapt':263 'addit':305 'agent':204,219 'aggress':601 'ai工具评测':512 'also':291 'answer':35,125,324 'app':625 'append':468 'appendix':591 'applic':51,113,168 'articl':252,281,359 'auto':563 'auto-fil':562 'avail':443 'award':256 'awards.md':287 'background':355 'base':24,66,82,201,217,369,490,497,653 'best':323,366 'best-match':365 'bio':239,346 'bio/introduction':340 'blank':609 'brief':632 'bullet':616 'cach':297 'call':185,307 'case':354 'char':342 'charact':614 'check':292 'chosen':426 'cite':647 'citi':335 'claude.md':274,516 'comat':510 'compani':334 'company/organization':249 'complet':225 'compos':343,604,650 'confer':50,111,624 'constraint':171,613 'content':316,451,605,655 'context':278 'convent':536 'count':560,618 'coverag':525 'credenti':257 'data':580 'deep':17,75,197 'deep-search':16,74,196 'deepli':603 'default':537 'descript':246 'direct':336 'directori':282,284 'document':32,94,396,400,478,590 'draft':411 'email':383 'end':462,475 'ensur':450 'etc':619 'event':54,114 'everi':417 'exact':189 'exceed':454 'exist':127 'expand':347 'experi':664 'explor':207 'extract':71,136,147,153,337 'fetch':10,67,134 'field':12,73,122,138,149,156,159,180,229,314,320,328,404,418,437,446,464,555,569,574 'file':242,270,275,289,372,431,484,547,584 'fill':3,6,38,57,60,109,405,557,564,600 'fill-web-form':2,56 'filled/manual':466 'follow':532 'form':5,8,11,49,59,62,70,105,117,121,137,144,155,177,228,319,353,403,421,622 'format':406 'found':391 'generat':29,394 'get':187 'guess':637 'help':108,520 'histori':244 'includ':222,456 'info':27,250,298 'inform':85 'input':388,645 'inspect':470,583 'instruct':234 'key':595 'knowledg':23,65,81,200,216,489,496,652 'knowledge-bas':495 'label':161 'languag':628 'launch':202 'leav':608 'length':170,449 'list':160,174,226 'local':22,64,80,128,199 'locat':262 'long':352 'long-form':351 'lovstudio':1 'make':181 'mandatori':131,467 'manual':377,387,568,576,644 'map':313 'mark':374,384,642 'markdown':31,93,399,407,492 'match':84,367,419,621 'materi':129,529 'md':506,511 'media':258 'meet':349,452,611 'memori':294 'memory.md':295 'mention':259 'min':169,341,448 'minimum':350,455,615 'miss':528 'must':221 'name':333,531,535 'need':376,386,567,575,626 'needs-manu':566 'never':636 'number':416,639 'offici':345 'official.md':286,499 'option':166,190,368,427 'order':422 'output':87,395,530 'page':145 'parallel':302 'password':641 'personal/professional':238 'phone':382,638 'pick':363 'point':617 'post':279 'posts/standalone/2025':501 'pre':37,599 'pre-fil':36,598 'prefix':425 'present':542 'principl':596 'privaci':635 'privat':381,436,579 'profession':627 'profil':116,241,339,371,498 'profile/about':269 'project':245,277,283,360 'projects/lovpen':514 'prompt':152,220 'provid':43,99 'publish':251 'quick':593 'r':55 'radio/select':179,362,424 'read/searched':487 'readi':90 'ready-to-us':89 'real':663 'registr':115,629 'relev':26 'remind':571 'repo':267 'requir':164 'respect':634 'result':327 'resum':288 'retriev':142,491 'return':172 'review':594 'rule':415 'run':299 'scenario':119 'search':18,76,198,212,236,261,326,602 'second':183 'section':472 'short':331 'show':463,548 'skill' 'skill-fill-web-form' 'solut':356 'sourc':471,524,648 'source-lovstudio' 'speaker':52,112 'speaking/conference':243 'spec':380 'spot':527 'status':165,410,465,558 'step':132,194,231,309,311,392,540 'strategi':330 'structur':173,268 'subag':205 'submiss':53 'suggest':389,441 'summari':458,543,551 'synthes':321,357 'tabl':459,552 'talk':361 'text':191,332 'text/textarea/select/radio/checkbox/file':163 'textarea':445 'thorough':208,210 'titl':408 'tone':623 'topic':255 'topic-agent-skills' 'topic-ai-coding-assistant' 'topic-cjk' 'topic-claude-code' 'topic-cursor' 'topic-gemini-cli' 'topic-markdown-to-docx' 'topic-markdown-to-pdf' 'tree':481,519,585 'type':162,206,329 'upload':373,378,432,578 'url':15,45,101,151 'use':39,92,97,139,433,438 'user':20,42,78,98,214,265,293,522,533,572,661 'v0.1.md':539 'verifi':523 'vol':504 'vs':565 'want':107 'web':4,7,48,58,61,69,104 'webfetch':140,150,184,306 'workflow':130 'write':397,545 '个人简介':500 '产品信息':515 '填写内容':409 '手工川':538 '检索文件路径':494 '演讲经历':507 '表单地址':412 '选择':429 '附录':493 '需上传':434 '需手动填写':439 '项目上下文':517","prices":[{"id":"62a150e8-8447-4d18-9927-6e93e33fbb36","listingId":"83536516-7be3-4228-b47c-33588a6dd03e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"lovstudio","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T22:18:58.090Z"}],"sources":[{"listingId":"83536516-7be3-4228-b47c-33588a6dd03e","source":"github","sourceId":"lovstudio/skills/fill-web-form","sourceUrl":"https://github.com/lovstudio/skills/tree/main/skills/fill-web-form","isPrimary":false,"firstSeenAt":"2026-04-18T22:18:58.090Z","lastSeenAt":"2026-04-22T00:56:34.515Z"}],"details":{"listingId":"83536516-7be3-4228-b47c-33588a6dd03e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"lovstudio","slug":"fill-web-form","github":{"repo":"lovstudio/skills","stars":40,"topics":["agent-skills","ai-coding-assistant","cjk","claude-code","cursor","gemini-cli","markdown-to-docx","markdown-to-pdf"],"license":"mit","html_url":"https://github.com/lovstudio/skills","pushed_at":"2026-04-21T15:57:51Z","description":"Agent skills for AI coding assistants — Markdown to PDF/DOCX with 14 themes, CJK support","skill_md_sha":"aa89cfb26f9d15952b8ceb655dd06f71fa5fc79e","skill_md_path":"skills/fill-web-form/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/lovstudio/skills/tree/main/skills/fill-web-form"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"lovstudio:fill-web-form","license":"MIT","description":"Fill web forms by fetching form fields from a URL, deep-searching the user's local knowledge base for relevant info, and generating a markdown document with all answers pre-filled. Use when the user provides a URL to a web form (conference application, speaker submission, event registration, profile form) and wants help filling it out from their existing materials. Also trigger when the user mentions \"填网页表\", \"fill web form\", \"网页填表\", \"表单填写\", \"申请表填写\", \"conference application\", \"speaker submission\", \"讲师申请\", \"报名表\", or provides a URL with \"form\", \"feedback\", \"apply\", \"register\", \"submit\" in the path.","compatibility":"No external dependencies. Uses built-in tools: WebFetch, Agent (Explore), Grep, Glob, Read, Write. Requires internet access for URL fetching."},"skills_sh_url":"https://skills.sh/lovstudio/skills/fill-web-form"},"updatedAt":"2026-04-22T00:56:34.515Z"}}