{"id":22237,"plugin_id":"plugins_6ab01bcd65ac819188faeba97d476fcb","kind":"skill","collection_source":null,"comparison_source":null,"observed_at":"2026-09-30T23:17:12.003Z","digest":"fdcbb23a318f0ebecf53aa82fdde2fb0d3737fc53f5b54a1ebbd3d826c7db2d1","against":null,"payload":{"description":"Use when the user asks to extract the main readable article or page content from a public web page while removing navigation, ads, and other clutter.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":235},{"relative_path":"references/source/LICENSE","size_in_bytes":1076},{"relative_path":"references/source/README.md","size_in_bytes":13792},{"relative_path":"references/source/package.json","size_in_bytes":2656},{"relative_path":"references/source/src/cli.ts","size_in_bytes":6570},{"relative_path":"references/source/src/constants.ts","size_in_bytes":28448},{"relative_path":"references/source/src/content-boundary.ts","size_in_bytes":5402},{"relative_path":"references/source/src/defuddle.ts","size_in_bytes":65080},{"relative_path":"references/source/src/elements/callouts.ts","size_in_bytes":5382},{"relative_path":"references/source/src/elements/code.ts","size_in_bytes":17046},{"relative_path":"references/source/src/elements/footnotes.ts","size_in_bytes":51258},{"relative_path":"references/source/src/elements/headings.ts","size_in_bytes":3790},{"relative_path":"references/source/src/elements/images.ts","size_in_bytes":30021},{"relative_path":"references/source/src/elements/math.base.ts","size_in_bytes":22500},{"relative_path":"references/source/src/elements/math.core.ts","size_in_bytes":2150},{"relative_path":"references/source/src/elements/math.full.ts","size_in_bytes":3097},{"relative_path":"references/source/src/elements/math.ts","size_in_bytes":417},{"relative_path":"references/source/src/extractor-registry.ts","size_in_bytes":6790},{"relative_path":"references/source/src/extractors/_base.ts","size_in_bytes":1454},{"relative_path":"references/source/src/extractors/_conversation.ts","size_in_bytes":4246},{"relative_path":"references/source/src/extractors/bbcode-data.ts","size_in_bytes":1448},{"relative_path":"references/source/src/extractors/bilibili.ts","size_in_bytes":15113},{"relative_path":"references/source/src/extractors/bluesky.ts","size_in_bytes":10747},{"relative_path":"references/source/src/extractors/c2-wiki.ts","size_in_bytes":4872},{"relative_path":"references/source/src/extractors/chatgpt.ts","size_in_bytes":6634},{"relative_path":"references/source/src/extractors/claude.ts","size_in_bytes":3044},{"relative_path":"references/source/src/extractors/discourse.ts","size_in_bytes":5322},{"relative_path":"references/source/src/extractors/gemini.ts","size_in_bytes":4096},{"relative_path":"references/source/src/extractors/github.ts","size_in_bytes":9899},{"relative_path":"references/source/src/extractors/gmail.ts","size_in_bytes":8731},{"relative_path":"references/source/src/extractors/grok.ts","size_in_bytes":6216},{"relative_path":"references/source/src/extractors/hackernews.ts","size_in_bytes":9588},{"relative_path":"references/source/src/extractors/leetcode.ts","size_in_bytes":663},{"relative_path":"references/source/src/extractors/linkedin.ts","size_in_bytes":8780},{"relative_path":"references/source/src/extractors/lwn.ts","size_in_bytes":4900},{"relative_path":"references/source/src/extractors/mastodon.ts","size_in_bytes":8677},{"relative_path":"references/source/src/extractors/medium.ts","size_in_bytes":5058},{"relative_path":"references/source/src/extractors/nytimes.ts","size_in_bytes":7086},{"relative_path":"references/source/src/extractors/reddit.ts","size_in_bytes":15937},{"relative_path":"references/source/src/extractors/substack.ts","size_in_bytes":7187},{"relative_path":"references/source/src/extractors/threads.ts","size_in_bytes":16268},{"relative_path":"references/source/src/extractors/twitter.ts","size_in_bytes":12102},{"relative_path":"references/source/src/extractors/wikipedia.ts","size_in_bytes":645},{"relative_path":"references/source/src/extractors/x-article.ts","size_in_bytes":11359},{"relative_path":"references/source/src/extractors/x-oembed.ts","size_in_bytes":18176},{"relative_path":"references/source/src/extractors/youtube.ts","size_in_bytes":46300},{"relative_path":"references/source/src/fetch.ts","size_in_bytes":12555},{"relative_path":"references/source/src/frontmatter.ts","size_in_bytes":2217},{"relative_path":"references/source/src/index.full.ts","size_in_bytes":1227},{"relative_path":"references/source/src/index.ts","size_in_bytes":204},{"relative_path":"references/source/src/markdown.ts","size_in_bytes":36467},{"relative_path":"references/source/src/metadata.ts","size_in_bytes":30803},{"relative_path":"references/source/src/node.ts","size_in_bytes":1717},{"relative_path":"references/source/src/removals/content-patterns.ts","size_in_bytes":54936},{"relative_path":"references/source/src/removals/hidden.ts","size_in_bytes":3268},{"relative_path":"references/source/src/removals/metadata-block.ts","size_in_bytes":1634},{"relative_path":"references/source/src/removals/scoring.ts","size_in_bytes":17806},{"relative_path":"references/source/src/removals/selectors.ts","size_in_bytes":7525},{"relative_path":"references/source/src/removals/small-images.ts","size_in_bytes":6194},{"relative_path":"references/source/src/standardize.ts","size_in_bytes":64506},{"relative_path":"references/source/src/types.ts","size_in_bytes":3588},{"relative_path":"references/source/src/types/extractors.ts","size_in_bytes":785},{"relative_path":"references/source/src/utils.ts","size_in_bytes":3571},{"relative_path":"references/source/src/utils/bbcode.ts","size_in_bytes":2484},{"relative_path":"references/source/src/utils/comments.ts","size_in_bytes":6277},{"relative_path":"references/source/src/utils/dom.ts","size_in_bytes":4766},{"relative_path":"references/source/src/utils/linkedom-compat.ts","size_in_bytes":717},{"relative_path":"references/source/src/utils/transcript.ts","size_in_bytes":2752},{"relative_path":"references/source/tsconfig.json","size_in_bytes":344}],"name":"defuddle-web-content","skill_md_contents":"---\nname: defuddle-web-content\ndescription: Use when the user asks to extract the main readable article or page content from a public web page while removing\n  navigation, ads, and other clutter.\nlicense: MIT\ncompatibility: Requires a local Node.js/npm environment to execute Defuddle. The bundled source is reference material and\n  does not install the runtime automatically.\n---\n\n# Defuddle Web Content\n\n## Host capability adaptation\n\n1. **Native host capability:** when ChatGPT/Codex exposes a native tool or connected source that satisfies this task, use it.\n2. **Original external runtime:** when the upstream runtime named by this skill is actually available, use it as documented below.\n3. **Instruction-only fallback:** when neither is available, perform only the reasoning/instruction portion that remains valid, state the limitation, and never fabricate tool output, successful execution, or persisted state.\n\nUse an equivalent native host capability when available; otherwise perform only the instruction-based portion and clearly disclose the unavailable runtime.\n\nUse Defuddle when a local terminal/runtime is available and the task calls for removing navigation, ads, sidebars, comments, and other page clutter while preserving the main content and metadata.\n\n## Preferred CLI flow\n\nUse `npx defuddle` so a global installation is not required:\n\n```bash\nnpx defuddle parse <source> --markdown\n```\n\n`<source>` may be a URL or local HTML file. HTML may also be piped on stdin.\n\nCommon output modes:\n\n```bash\nnpx defuddle parse page.html --markdown\nnpx defuddle parse page.html --json\nnpx defuddle parse page.html --frontmatter\nnpx defuddle parse page.html --property title\n```\n\nFor exact CLI options and Node/browser API usage, read `references/source/README.md`.\n\n## Runtime rule\n\nDo not claim Defuddle extracted a page unless the command or library actually ran successfully. If the environment cannot execute Node/npm or cannot access the requested URL, explain that limitation and use another available reading method only if the user permits it.\n\n## Source reference\n\nThe bundled `references/source/src/` directory contains the original 0.19.4 TypeScript source for implementation/reference purposes. It is not an installed npm dependency.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}