[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P2R2T2X4SWB4XH0SWN9JJ2":3,"skill-same:01M6P2R2T2X4SWB4XH0SWN9JJ2":83},{"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":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":39,"commitSha":64,"skillDirectory":65,"forksCount":13,"repositoryHtmlUrl":66,"repositoryHomepageUrl":6,"ownerHtmlUrl":67,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":68,"install":69,"resources":82},"01M6P2R2T2X4SWB4XH0SWN9JJ2","extract-document-data",null,"Extract structured, grounded fields from documents — values cite their page, missing values abstain instead of hallucinating. Use for parsing invoices, payslips, statements, contracts.","duc-duy-1612\u002FOnline-Delivery-Systems-Web","duc-duy-1612","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F192231384?v=4","01M6NSDKQQDKVTHZ8DZMZ1VYY6","01M6NSDKW8DDVTQHBT1HBDDJPT",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fextract-document-data\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"extract document data","data","extract","document","for","gemini","invoices","fact-checking","document-verification","missing","critical","main","community","agent-skills","use","page","parsing","license","verification","documents","2026-11-10 10:12:30",false,"---\nname: extract-document-data\ndescription: Extract structured, grounded fields from documents — values cite their page, missing values abstain instead of hallucinating. Use for parsing invoices, payslips, statements, contracts.\ncategory: document-verification\nrisk: critical\nsource: community\nsource_repo: Sketchjar\u002Fstipple-agent-skills\nsource_type: community\ndate_added: \"2026-08-31\"\nauthor: Sketchjar\ntags: [document-verification, fact-checking, stipple, authenticity]\ntools: [claude, cursor, gemini, codex]\nlicense: \"Apache-2.0\"\nlicense_source: \"https:\u002F\u002Fgithub.com\u002FSketchjar\u002Fstipple-agent-skills\u002Fblob\u002Fmain\u002FLICENSE\"\n---\n\n# Extract Document Data\n\nExtract structured JSON from documents with per-value grounding: every extracted value cites where it came from (page number, confidence), and values that aren't clearly present are reported in `not_found` rather than hallucinated. Uses the Stipple API (free anonymous tier).\n\n## When to use\n\n- Parsing payslips, invoices, bank statements, receipts, or contracts\n- Converting unstructured documents to JSON for downstream systems\n- Any extraction where hallucinated values are worse than missing values (lending, accounting, compliance)\n\n## Instructions\n\n1. **Get the document.** URL or local file path (PDF, PNG, JPEG, DOCX).\n\n2. **Choose the extraction mode:**\n   - **Ad-hoc fields** — tell the API exactly which fields you want:\n     ```bash\n     curl -X POST https:\u002F\u002Fwww.stipple.sh\u002Fv1\u002Fextract \\\n       -F \"file=@payslip.pdf\" \\\n       -F 'fields=[{\"name\":\"employer_name\"},{\"name\":\"net_pay\"},{\"name\":\"pay_date\"}]' \\\n       -H \"Authorization: Bearer $STIPPLE_API_KEY\"\n     ```\n   - **Template** — use a built-in schema: `payslip`, `tax_invoice`, `bank_statement`, `receipt`, `contract`\n   - **Schema-free** — omit `fields` and let the model extract what it finds\n\n3. **Interpret the response.**\n\n   ```json\n   {\n     \"mode\": \"schema_free\",\n     \"document_type\": \"payslip\",\n     \"pages_read\": 1,\n     \"fields\": {\n       \"employer_name\": {\"value\": \"Acme Cleaning Pty Ltd\", \"confidence\": 0.95, \"page\": 1},\n       \"net_pay\": {\"value\": \"2845.10\", \"confidence\": 0.97, \"page\": 1}\n     },\n     \"not_found\": [\"ytd_tax\"]\n   }\n   ```\n\n   - Every value carries `confidence` (the model's self-report) and `page` (grounding)\n   - `not_found[]` lists requested fields the model couldn't find — **absences are reported, never guessed**\n   - `pages_read` shows how many pages were processed (page limits apply per document)\n\n4. **Report honestly.** This is *extraction, not verification* — values are what the document **shows**, not proof it's genuine:\n   - \"Employer: Acme Cleaning Pty Ltd (confidence 0.95, page 1)\"\n   - \"ytd_tax: not found in document\" — never \"ytd_tax: 0\" or a guess\n   - For \"is this document genuine?\", pair with the `verify-document` skill first\n\n## Output format\n\n```\nPayslip fields (grounded, not guessed):\n\n  Employer          Acme Cleaning Pty Ltd  (confidence 0.95, page 1)\n  Employee          J. Citizen             (confidence 0.98, page 1)\n  Net pay           2,845.10               (confidence 0.97, page 1)\n  Superannuation    268.20                 (confidence 0.93, page 1)\n\nnot_found: ytd_tax\n(absences are reported, never hallucinated)\n```\n\n## Limitations and Safety\n\n- Invoices, statements, payslips, and contracts often contain sensitive personal,\n  financial, or commercial data. Obtain explicit approval before uploading them to\n  a hosted third party, minimize the submitted content, and confirm current\n  retention, residency, access, and deletion terms.\n- Confidence and page grounding do not prove that an extracted value is correct or\n  that the source document is authentic. Reconcile consequential values against the\n  original document and authoritative systems before payment, lending, accounting,\n  compliance, or legal action.\n- Keep the original file and extraction response so a human reviewer can reproduce\n  and correct disputed fields.\n\n## Notes\n\n- Costs 1 credit per page read by the model (minimum 1); free weekly allowance applies\n- Templates: `payslip`, `tax_invoice`, `bank_statement`, `receipt`, `contract` — pass as the `template` form field\n- Tables are extracted with structure preserved; multi-page documents are processed page by page\n- Pairs with `verify-document` (run first, for authenticity) — an extracted value from a tampered document is still wrong\n- Free key at https:\u002F\u002Fwww.stipple.sh for metering beyond the anonymous allowance\n","# Extract Document Data\n\nExtract structured JSON from documents with per-value grounding: every extracted value cites where it came from (page number, confidence), and values that aren't clearly present are reported in `not_found` rather than hallucinated. Uses the Stipple API (free anonymous tier).\n\n## When to use\n\n- Parsing payslips, invoices, bank statements, receipts, or contracts\n- Converting unstructured documents to JSON for downstream systems\n- Any extraction where hallucinated values are worse than missing values (lending, accounting, compliance)\n\n## Instructions\n\n1. **Get the document.** URL or local file path (PDF, PNG, JPEG, DOCX).\n\n2. **Choose the extraction mode:**\n   - **Ad-hoc fields** — tell the API exactly which fields you want:\n     ```bash\n     curl -X POST https:\u002F\u002Fwww.stipple.sh\u002Fv1\u002Fextract \\\n       -F \"file=@payslip.pdf\" \\\n       -F 'fields=[{\"name\":\"employer_name\"},{\"name\":\"net_pay\"},{\"name\":\"pay_date\"}]' \\\n       -H \"Authorization: Bearer $STIPPLE_API_KEY\"\n     ```\n   - **Template** — use a built-in schema: `payslip`, `tax_invoice`, `bank_statement`, `receipt`, `contract`\n   - **Schema-free** — omit `fields` and let the model extract what it finds\n\n3. **Interpret the response.**\n\n   ```json\n   {\n     \"mode\": \"schema_free\",\n     \"document_type\": \"payslip\",\n     \"pages_read\": 1,\n     \"fields\": {\n       \"employer_name\": {\"value\": \"Acme Cleaning Pty Ltd\", \"confidence\": 0.95, \"page\": 1},\n       \"net_pay\": {\"value\": \"2845.10\", \"confidence\": 0.97, \"page\": 1}\n     },\n     \"not_found\": [\"ytd_tax\"]\n   }\n   ```\n\n   - Every value carries `confidence` (the model's self-report) and `page` (grounding)\n   - `not_found[]` lists requested fields the model couldn't find — **absences are reported, never guessed**\n   - `pages_read` shows how many pages were processed (page limits apply per document)\n\n4. **Report honestly.** This is *extraction, not verification* — values are what the document **shows**, not proof it's genuine:\n   - \"Employer: Acme Cleaning Pty Ltd (confidence 0.95, page 1)\"\n   - \"ytd_tax: not found in document\" — never \"ytd_tax: 0\" or a guess\n   - For \"is this document genuine?\", pair with the `verify-document` skill first\n\n## Output format\n\n```\nPayslip fields (grounded, not guessed):\n\n  Employer          Acme Cleaning Pty Ltd  (confidence 0.95, page 1)\n  Employee          J. Citizen             (confidence 0.98, page 1)\n  Net pay           2,845.10               (confidence 0.97, page 1)\n  Superannuation    268.20                 (confidence 0.93, page 1)\n\nnot_found: ytd_tax\n(absences are reported, never hallucinated)\n```\n\n## Limitations and Safety\n\n- Invoices, statements, payslips, and contracts often contain sensitive personal,\n  financial, or commercial data. Obtain explicit approval before uploading them to\n  a hosted third party, minimize the submitted content, and confirm current\n  retention, residency, access, and deletion terms.\n- Confidence and page grounding do not prove that an extracted value is correct or\n  that the source document is authentic. Reconcile consequential values against the\n  original document and authoritative systems before payment, lending, accounting,\n  compliance, or legal action.\n- Keep the original file and extraction response so a human reviewer can reproduce\n  and correct disputed fields.\n\n## Notes\n\n- Costs 1 credit per page read by the model (minimum 1); free weekly allowance applies\n- Templates: `payslip`, `tax_invoice`, `bank_statement`, `receipt`, `contract` — pass as the `template` form field\n- Tables are extracted with structure preserved; multi-page documents are processed page by page\n- Pairs with `verify-document` (run first, for authenticity) — an extracted value from a tampered document is still wrong\n- Free key at https:\u002F\u002Fwww.stipple.sh for metering beyond the anonymous allowance\n",{"name":5,"risk":38,"tags":53,"tools":56,"author":60,"source":40,"license":14,"category":36,"date_added":61,"description":7,"source_repo":62,"source_type":40,"license_source":63},[36,35,54,55],"stipple","authenticity",[57,58,33,59],"claude","cursor","codex","Sketchjar","2026-08-31","Sketchjar\u002Fstipple-agent-skills","https:\u002F\u002Fgithub.com\u002FSketchjar\u002Fstipple-agent-skills\u002Fblob\u002Fmain\u002FLICENSE","f3312ba749561b6159f477dbfc9313c875d40a56",".agents\u002Fskills_archive\u002Fextract-document-data","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612","2026-10-25 23:50:58",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill extract-document-data",{"tool":75,"command":76},"bunx","bunx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill extract-document-data",{"tool":78,"command":79},"pnpm","pnpm dlx skills add duc-duy-1612\u002FOnline-Delivery-Systems-Web --skill extract-document-data","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fextract-document-data\u002FSKILL.md",true,[],[84,110,134,157,182,206],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":88,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":94,"publishedAt":48},"01M6Q0FA5FZ410Z33Z3TFQ4DBA","zero-trust","Implement zero-trust network architecture. Configure identity-based access, micro-segmentation, and continuous verification. Use when implementing modern security architectures.","MIT","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzero-trust\u002FSKILL.md",[91],{"categoryNo":92,"categoryName":93,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",[95,96,97,98,99,46,86,100,101,102,103,104,40,39,105,38,106,107,108,109],"ZeRO","trust","zero trust","architecture","assessment","segmentation","devops-security","access","configure","only","active","scope","scripts","relevant","implementing",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":88,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":48},"01M6Q0F1YZJW3KX5FBKEVZ8CV4","zcode-delegate","Delegate coding tasks to the Z.AI ZCode CLI only when the user explicitly requests it, while the orchestrator retains review and landing responsibility.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fzcode-delegate\u002FSKILL.md",[],[117,118,119,120,121,122,123,124,125,126,127,128,129,104,130,40,131,132,38,133],"delegate","zcode","zcode delegate","review","cli","orchestration","tasks","run","Bash","model","node","read","orchestrator","files","desktop app","app","agent-orchestration",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":88,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":48},"01M6Q0ETK41VGNMYEXW0T00AJN","youtube-transcript","Fetch YouTube transcripts through DeepAPI or local fallback tooling and save clean text output.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript\u002FSKILL.md",[],[141,142,143,144,145,59,146,45,147,148,149,150,151,40,39,152,153,154,155,156],"transcript","youtube transcript","youtube","safe","github","research","https","text","fetch","tooling","clean","local","output","deepapi","youtube transcripts","blob",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":88,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":172,"publishedAt":48},"01M6Q0EPPH2PVMDW40017F8WX0","youtube-transcript-skills","Fetch YouTube video transcripts, search videos\u002Fchannels, browse channels, and extract playlists via the getyoutubetranscript.com API - free tier, no card required.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-transcript-skills\u002FSKILL.md",[163,166,169],{"categoryNo":164,"categoryName":165,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":167,"categoryName":168,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":170,"categoryName":171,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师",[141,142,143,173,144,33,145,59,45,174,175,176,177,149,178,40,39,179,180,181],"youtube transcript skills","search","api","Video","browse","api-integration","free","card","channels",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":88,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":192,"publishedAt":48},"01M6Q0EAB96PX83W5PTE8A0R8D","youtube-notetaker","Turn YouTube talks into local study notes with slides, transcripts, editable annotations, and a markdown-backed viewer.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-notetaker\u002FSKILL.md",[188,191],{"categoryNo":189,"categoryName":190,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":167,"categoryName":168,"taxonomyType":20,"taxonomyTypeDesc":21},[143,193,194,121,144,195,196,197,198,45,176,199,200,201,202,39,203,152,204,205],"youtube notetaker","notetaker","workflow","official","notes","code","markdown","slides","annotations","README","study","dair-academy","viewer",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":88,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":213,"publishedAt":48},"01M6Q0E55F0GW5MX48V8HXS8B5","youtube-full","Fetch YouTube transcripts, search videos, browse channels, and extract playlists via TranscriptAPI — no yt-dlp, no Google API key, works from any cloud server.","https:\u002F\u002Fgithub.com\u002Fduc-duy-1612\u002FOnline-Delivery-Systems-Web\u002Fblob\u002Fmain\u002F.agents\u002Fskills_archive\u002Fyoutube-full\u002FSKILL.md",[212],{"categoryNo":164,"categoryName":165,"taxonomyType":20,"taxonomyTypeDesc":21},[214,143,215,216,144,33,174,217,218,175,176,177,149,219,178,40,39,179,220,155],"youtube full","full","google","server","dlp","credits","automatic"]