opencode-skills-collection 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +24 -1
  2. package/bundled-skills/007/SKILL.md +2 -2
  3. package/bundled-skills/10-andruia-skill-smith/SKILL.md +1 -1
  4. package/bundled-skills/agent-squad/SKILL.md +5 -0
  5. package/bundled-skills/agent-squad/alex/SKILL.md +3 -0
  6. package/bundled-skills/agent-squad/aria/SKILL.md +3 -0
  7. package/bundled-skills/agent-squad/dep/SKILL.md +3 -0
  8. package/bundled-skills/agent-squad/luna/SKILL.md +4 -1
  9. package/bundled-skills/agent-squad/mason/SKILL.md +3 -0
  10. package/bundled-skills/agent-squad/max/SKILL.md +3 -0
  11. package/bundled-skills/agent-squad/quinn/SKILL.md +3 -0
  12. package/bundled-skills/agent-squad/rex/SKILL.md +3 -0
  13. package/bundled-skills/angular/metadata.json +1 -1
  14. package/bundled-skills/angular-best-practices/metadata.json +1 -1
  15. package/bundled-skills/angular-state-management/metadata.json +1 -1
  16. package/bundled-skills/angular-ui-patterns/metadata.json +1 -1
  17. package/bundled-skills/antigravity-skill-orchestrator/SKILL.md +2 -2
  18. package/bundled-skills/apify-actor-development/SKILL.md +2 -2
  19. package/bundled-skills/apple-container/SKILL.md +165 -0
  20. package/bundled-skills/apple-container/references/commands.md +1593 -0
  21. package/bundled-skills/apple-container/references/concepts.md +294 -0
  22. package/bundled-skills/apple-container/references/configuration.md +499 -0
  23. package/bundled-skills/apple-container/references/workflows.md +498 -0
  24. package/bundled-skills/ask-copilot/SKILL.md +112 -0
  25. package/bundled-skills/auto-research/SKILL.md +126 -0
  26. package/bundled-skills/brooks-lint/SKILL.md +1 -1
  27. package/bundled-skills/browser-harness/references/install.md +3 -1
  28. package/bundled-skills/chrome-extension-developer/SKILL.md +1 -1
  29. package/bundled-skills/clean-code-guard/SKILL.md +184 -0
  30. package/bundled-skills/clean-code-guard/references/ai-failure-modes.md +345 -0
  31. package/bundled-skills/clean-code-guard/references/comments-and-formatting.md +115 -0
  32. package/bundled-skills/clean-code-guard/references/dry-kiss-yagni.md +133 -0
  33. package/bundled-skills/clean-code-guard/references/naming-and-functions.md +187 -0
  34. package/bundled-skills/clean-code-guard/references/review-checklist.md +150 -0
  35. package/bundled-skills/clean-code-guard/references/solid.md +280 -0
  36. package/bundled-skills/clean-code-guard/references/sources.md +47 -0
  37. package/bundled-skills/cloudflare-security-audit/SKILL.md +137 -0
  38. package/bundled-skills/cloudflare-security-audit/references/AI-AND-LLM.md +67 -0
  39. package/bundled-skills/cloudflare-security-audit/references/ATTACK-CLASSES.md +116 -0
  40. package/bundled-skills/cloudflare-security-audit/references/CLIENT-SIDE.md +67 -0
  41. package/bundled-skills/cloudflare-security-audit/references/HUNTING.md +110 -0
  42. package/bundled-skills/cloudflare-security-audit/references/MEMORY-SAFETY-AND-BINARY.md +58 -0
  43. package/bundled-skills/cloudflare-security-audit/references/RECONNAISSANCE.md +46 -0
  44. package/bundled-skills/cloudflare-security-audit/references/VALIDATION-AND-REPORTING.md +109 -0
  45. package/bundled-skills/cloudflare-security-audit/references/WEB-PROTOCOL-AND-AUTH.md +85 -0
  46. package/bundled-skills/cloudflare-security-audit/resources/report-schema.json +210 -0
  47. package/bundled-skills/comfyui-gateway/references/troubleshooting.md +1 -1
  48. package/bundled-skills/commit/SKILL.md +2 -1
  49. package/bundled-skills/deepapi/SKILL.md +6 -6
  50. package/bundled-skills/docs/README.md +1 -1
  51. package/bundled-skills/docs/contributors/quality-bar.md +1 -1
  52. package/bundled-skills/docs/contributors/security-guardrails.md +1 -1
  53. package/bundled-skills/docs/integrations/jetski-cortex.md +5 -5
  54. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +3 -3
  55. package/bundled-skills/docs/maintainers/ci-drift-fix.md +7 -5
  56. package/bundled-skills/docs/maintainers/merge-batch.md +24 -7
  57. package/bundled-skills/docs/maintainers/pr-autonomy.md +89 -0
  58. package/bundled-skills/docs/maintainers/release-notes-7.2.0.md +1 -1
  59. package/bundled-skills/docs/maintainers/release-process.md +9 -9
  60. package/bundled-skills/docs/maintainers/repo-growth-seo.md +5 -5
  61. package/bundled-skills/docs/maintainers/skills-date-tracking.md +1 -1
  62. package/bundled-skills/docs/maintainers/skills-update-guide.md +2 -2
  63. package/bundled-skills/docs/users/{antigravity-awesome-skills-vs-awesome-claude-skills.md → agentic-awesome-skills-vs-awesome-claude-skills.md} +5 -5
  64. package/bundled-skills/docs/users/ai-agent-skills.md +4 -4
  65. package/bundled-skills/docs/users/best-claude-code-skills-github.md +3 -3
  66. package/bundled-skills/docs/users/best-cursor-skills-github.md +3 -3
  67. package/bundled-skills/docs/users/bundles.md +56 -57
  68. package/bundled-skills/docs/users/claude-code-skills.md +6 -6
  69. package/bundled-skills/docs/users/codex-cli-skills.md +5 -5
  70. package/bundled-skills/docs/users/cursor-skills.md +3 -3
  71. package/bundled-skills/docs/users/faq.md +27 -15
  72. package/bundled-skills/docs/users/gemini-cli-skills.md +4 -4
  73. package/bundled-skills/docs/users/getting-started.md +22 -12
  74. package/bundled-skills/docs/users/kiro-integration.md +7 -7
  75. package/bundled-skills/docs/users/plugins.md +8 -9
  76. package/bundled-skills/docs/users/security-skills.md +1 -1
  77. package/bundled-skills/docs/users/skills-vs-mcp-tools.md +1 -1
  78. package/bundled-skills/docs/users/specialized-plugin-roadmap.md +3 -4
  79. package/bundled-skills/docs/users/usage.md +9 -9
  80. package/bundled-skills/docs/users/visual-guide.md +7 -7
  81. package/bundled-skills/docs/users/windows-truncation-recovery.md +1 -1
  82. package/bundled-skills/docs/users/workflows.md +1 -1
  83. package/bundled-skills/docs/vietnamese/BUNDLES.vi.md +1 -1
  84. package/bundled-skills/docs/vietnamese/FAQ.vi.md +15 -8
  85. package/bundled-skills/docs/vietnamese/GETTING_STARTED.vi.md +12 -5
  86. package/bundled-skills/docs/vietnamese/QUALITY_BAR.vi.md +1 -1
  87. package/bundled-skills/docs/vietnamese/README.vi.md +21 -17
  88. package/bundled-skills/docs/vietnamese/SECURITY_GUARDRAILS.vi.md +1 -1
  89. package/bundled-skills/docs/vietnamese/SKILLS_README.vi.md +2 -2
  90. package/bundled-skills/docs/vietnamese/TRANSLATION_PLAN.vi.md +1 -1
  91. package/bundled-skills/docs/vietnamese/VISUAL_GUIDE.vi.md +8 -8
  92. package/bundled-skills/docs-guard/SKILL.md +109 -0
  93. package/bundled-skills/docs-guard/references/code-samples.md +46 -0
  94. package/bundled-skills/docs-guard/references/docstrings.md +60 -0
  95. package/bundled-skills/docs-guard/references/review-checklist.md +45 -0
  96. package/bundled-skills/docs-guard/references/sources.md +22 -0
  97. package/bundled-skills/docs-guard/references/verification.md +51 -0
  98. package/bundled-skills/efficient-web-research/SKILL.md +4 -0
  99. package/bundled-skills/electron-development/SKILL.md +1 -1
  100. package/bundled-skills/event-staffing-compliance/SKILL.md +3 -0
  101. package/bundled-skills/event-staffing-ordering/SKILL.md +3 -0
  102. package/bundled-skills/feature-tracking/SKILL.md +222 -0
  103. package/bundled-skills/flutter-expert/SKILL.md +6 -1
  104. package/bundled-skills/flutter-expert/resources/implementation-playbook.md +214 -0
  105. package/bundled-skills/gemini-deep-research/README.md +246 -0
  106. package/bundled-skills/gemini-deep-research/SKILL.md +136 -0
  107. package/bundled-skills/gemini-deep-research/requirements.txt +2 -0
  108. package/bundled-skills/gemini-deep-research/scripts/research.py +692 -0
  109. package/bundled-skills/git-pushing/SKILL.md +21 -4
  110. package/bundled-skills/git-pushing/scripts/smart_commit.sh +206 -11
  111. package/bundled-skills/go-in-depth/scripts/workflow-script.js +4 -1
  112. package/bundled-skills/grok-build/SKILL.md +167 -0
  113. package/bundled-skills/grok-build/references/cli.md +99 -0
  114. package/bundled-skills/huggingface-tool-builder/references/find_models_by_paper.sh +1 -1
  115. package/bundled-skills/idea-autopsy/SKILL.md +147 -0
  116. package/bundled-skills/it-manager-hospital/README.md +1 -1
  117. package/bundled-skills/it-manager-pro/README.md +1 -1
  118. package/bundled-skills/itil-expert/README.md +1 -1
  119. package/bundled-skills/langgraph/SKILL.md +1 -1
  120. package/bundled-skills/linkedin-content-generator/SKILL.md +1 -1
  121. package/bundled-skills/lint-and-validate/scripts/lint_runner.py +23 -23
  122. package/bundled-skills/lint-and-validate/scripts/type_coverage.py +30 -30
  123. package/bundled-skills/logic-lens/SKILL.md +1 -1
  124. package/bundled-skills/lore/LICENSE +21 -0
  125. package/bundled-skills/lore/README.md +386 -0
  126. package/bundled-skills/lore/README.zh-CN.md +386 -0
  127. package/bundled-skills/lore/SKILL.md +453 -0
  128. package/bundled-skills/lore/WORKFLOWS.md +216 -0
  129. package/bundled-skills/lore/WORKFLOWS.zh-CN.md +216 -0
  130. package/bundled-skills/lore/references/audit-template.md +60 -0
  131. package/bundled-skills/lore/references/compatibility.md +228 -0
  132. package/bundled-skills/lore/references/config.md +125 -0
  133. package/bundled-skills/lore/references/entry-format.md +70 -0
  134. package/bundled-skills/lore/references/history-command.md +106 -0
  135. package/bundled-skills/lore/references/monorepo-detection.md +78 -0
  136. package/bundled-skills/lore/references/platform-mirrors.md +377 -0
  137. package/bundled-skills/lore/references/stale-new-markers.md +62 -0
  138. package/bundled-skills/lore/references/summary-template.md +98 -0
  139. package/bundled-skills/lore/scripts/README.md +54 -0
  140. package/bundled-skills/lore/scripts/README.zh-CN.md +54 -0
  141. package/bundled-skills/lore/scripts/find_duplicates.py +211 -0
  142. package/bundled-skills/lore/scripts/find_stale.py +116 -0
  143. package/bundled-skills/lore/scripts/history.py +527 -0
  144. package/bundled-skills/lore/scripts/id_hash.py +32 -0
  145. package/bundled-skills/lore/scripts/list_entries.py +183 -0
  146. package/bundled-skills/lovable-cleanup/SKILL.md +3 -3
  147. package/bundled-skills/makepad-splash/SKILL.md +1 -1
  148. package/bundled-skills/mmx-cli/SKILL.md +14 -1
  149. package/bundled-skills/monopoly/SKILL.md +5 -0
  150. package/bundled-skills/monopoly/patterns/SKILL.md +4 -0
  151. package/bundled-skills/monopoly/scale-benchmarks/SKILL.md +4 -0
  152. package/bundled-skills/monopoly/security-checklist/SKILL.md +4 -0
  153. package/bundled-skills/monopoly/tech-matrix/SKILL.md +4 -0
  154. package/bundled-skills/mtls-configuration/SKILL.md +1 -1
  155. package/bundled-skills/network-101/SKILL.md +4 -5
  156. package/bundled-skills/nika/SKILL.md +270 -0
  157. package/bundled-skills/not-a-vibe-coder/SKILL.md +4 -0
  158. package/bundled-skills/ontoly-software-graph/SKILL.md +160 -0
  159. package/bundled-skills/openclaw-github-repo-commander/SKILL.md +1 -1
  160. package/bundled-skills/pilot-protocol/SKILL.md +6 -3
  161. package/bundled-skills/postgres-readonly-queries/README.md +77 -0
  162. package/bundled-skills/postgres-readonly-queries/SKILL.md +152 -0
  163. package/bundled-skills/postgres-readonly-queries/connections.example.json +34 -0
  164. package/bundled-skills/postgres-readonly-queries/requirements.txt +1 -0
  165. package/bundled-skills/postgres-readonly-queries/scripts/query.py +262 -0
  166. package/bundled-skills/pptx-deck-creation/SKILL.md +275 -0
  167. package/bundled-skills/pptx-deck-creation/references/audit-checklist.md +156 -0
  168. package/bundled-skills/pptx-deck-creation/references/design-profiles.md +96 -0
  169. package/bundled-skills/pptx-deck-creation/references/python-snippets.md +150 -0
  170. package/bundled-skills/pptx-deck-creation/references/reference-deck-analysis.md +91 -0
  171. package/bundled-skills/pptx-deck-creation/references/visual-asset-adapters.md +158 -0
  172. package/bundled-skills/privilege-escalation-methods/SKILL.md +1 -1
  173. package/bundled-skills/product-decision-agent/SKILL.md +94 -0
  174. package/bundled-skills/product-decision-agent/agents/openai.yaml +7 -0
  175. package/bundled-skills/product-decision-agent/references/methodology-basis.md +232 -0
  176. package/bundled-skills/product-decision-agent/references/product-playbooks.md +813 -0
  177. package/bundled-skills/product-decision-agent/references/reasoning-engine.md +289 -0
  178. package/bundled-skills/product-decision-agent/references/response-examples.md +279 -0
  179. package/bundled-skills/product-decision-agent/scripts/quality_gate.py +221 -0
  180. package/bundled-skills/product-decision-agent/scripts/test_quality_gate.py +94 -0
  181. package/bundled-skills/pytest-skill/reference/playbook.md +358 -0
  182. package/bundled-skills/quit-sponsor/SKILL.md +96 -0
  183. package/bundled-skills/rclone-cli/references/providers/s3.md +1 -1
  184. package/bundled-skills/security-and-hardening/SKILL.md +1 -1
  185. package/bundled-skills/semgrep-rule-creator/SKILL.md +6 -6
  186. package/bundled-skills/skill-creator/README.md +3 -3
  187. package/bundled-skills/skill-creator/SKILL.md +8 -4
  188. package/bundled-skills/skill-creator/scripts/quick_validate.py +1 -1
  189. package/bundled-skills/sql-injection-testing/SKILL.md +4 -4
  190. package/bundled-skills/subagent-orchestrator/README.md +1 -1
  191. package/bundled-skills/super-code/bash/SKILL.md +3 -0
  192. package/bundled-skills/super-code/c/SKILL.md +3 -0
  193. package/bundled-skills/super-code/cpp/SKILL.md +3 -0
  194. package/bundled-skills/super-code/csharp/SKILL.md +3 -0
  195. package/bundled-skills/super-code/dart/SKILL.md +3 -0
  196. package/bundled-skills/super-code/elixir/SKILL.md +3 -0
  197. package/bundled-skills/super-code/go/SKILL.md +3 -0
  198. package/bundled-skills/super-code/java/SKILL.md +3 -0
  199. package/bundled-skills/super-code/kotlin/SKILL.md +3 -0
  200. package/bundled-skills/super-code/php/SKILL.md +3 -0
  201. package/bundled-skills/super-code/python/SKILL.md +3 -0
  202. package/bundled-skills/super-code/ruby/SKILL.md +3 -0
  203. package/bundled-skills/super-code/rust/SKILL.md +3 -0
  204. package/bundled-skills/super-code/scala/SKILL.md +3 -0
  205. package/bundled-skills/super-code/swift/SKILL.md +3 -0
  206. package/bundled-skills/super-code/typescript/SKILL.md +3 -0
  207. package/bundled-skills/telegram-bot-messaging/README.md +185 -0
  208. package/bundled-skills/telegram-bot-messaging/SKILL.md +101 -0
  209. package/bundled-skills/telegram-bot-messaging/scripts/telegram.sh +420 -0
  210. package/bundled-skills/test-guard/SKILL.md +132 -0
  211. package/bundled-skills/test-guard/references/jest.md +50 -0
  212. package/bundled-skills/test-guard/references/llm-app-testing.md +40 -0
  213. package/bundled-skills/test-guard/references/phpunit.md +56 -0
  214. package/bundled-skills/test-guard/references/pytest.md +65 -0
  215. package/bundled-skills/trading-ledger/SKILL.md +11 -3
  216. package/bundled-skills/uizze-ui-research/SKILL.md +93 -0
  217. package/bundled-skills/vibe-code-auditor/SKILL.md +1 -1
  218. package/bundled-skills/vibecode-production-qa-validator/SKILL.md +1 -1
  219. package/bundled-skills/videodb/scripts/ws_listener.py +29 -15
  220. package/bundled-skills/voice-ai-engine-development/README.md +1 -1
  221. package/bundled-skills/vulnerability-scanner/SKILL.md +1 -1
  222. package/bundled-skills/warehouse/SKILL.md +154 -0
  223. package/bundled-skills/woo-guard/SKILL.md +113 -0
  224. package/bundled-skills/woo-guard/references/checkout-and-money.md +64 -0
  225. package/bundled-skills/woo-guard/references/hpos-and-crud.md +87 -0
  226. package/bundled-skills/woo-guard/references/review-checklist.md +44 -0
  227. package/bundled-skills/woo-guard/references/sources.md +17 -0
  228. package/bundled-skills/wp-guard/SKILL.md +119 -0
  229. package/bundled-skills/wp-guard/references/i18n.md +88 -0
  230. package/bundled-skills/wp-guard/references/performance.md +70 -0
  231. package/bundled-skills/wp-guard/references/review-checklist.md +57 -0
  232. package/bundled-skills/wp-guard/references/security.md +100 -0
  233. package/bundled-skills/wp-guard/references/sources.md +27 -0
  234. package/bundled-skills/writing-skills/gotchas.md +1 -1
  235. package/bundled-skills/writing-skills/references/standards/metadata-standard.md +1 -1
  236. package/bundled-skills/x-twitter-scraper/SKILL.md +14 -32
  237. package/bundled-skills/xss-html-injection/SKILL.md +3 -3
  238. package/bundled-skills/youtube-seo-optimizer/SKILL.md +1 -1
  239. package/bundled-skills/youtube-summarizer/CHANGELOG.md +2 -2
  240. package/package.json +1 -1
  241. package/skills_index.json +273 -0
@@ -0,0 +1,57 @@
1
+ # WP Guard — Review Checklist
2
+
3
+ Structured walk for review mode. Lead with findings, not summary. Cite file:line. Prioritize: security → silent breakage → i18n → performance.
4
+
5
+ ## Contents
6
+
7
+ - Pass 1: Security sweep
8
+ - Pass 2: API and hook correctness
9
+ - Pass 3: i18n
10
+ - Pass 4: Performance
11
+ - Pass 5: Packaging hygiene
12
+ - Reporting
13
+
14
+ ## Pass 1: Security sweep (must fix)
15
+
16
+ Grep-driven; check every hit:
17
+
18
+ - `echo`, `print`, `<?=`, `printf` — every variable escaped with the context-correct `esc_*`/`wp_kses`? (Rule 1)
19
+ - `$_POST`, `$_GET`, `$_REQUEST`, `$_SERVER`, `$_COOKIE` — `wp_unslash()` then sanitized? (Rule 2)
20
+ - `add_action( 'wp_ajax_`, `admin_post_`, `rest_api_init` — every state-changing handler has BOTH `current_user_can()` and a nonce check / real `permission_callback`? (Rule 3)
21
+ - `$wpdb->` — every variable behind `prepare()` placeholders? `esc_like()` for LIKE? (Rule 4)
22
+ - `$_FILES` — handled via `wp_handle_upload()` with type allowlist?
23
+ - Secrets: API keys hardcoded? Logged? In autoloaded options when they belong in constants/env?
24
+
25
+ ## Pass 2: API and hook correctness (should fix)
26
+
27
+ - Every hooked hook and called function exists in supported WP/plugin versions? (Rule 6 — hallucinated hooks fail silently)
28
+ - Hook timing right? (No front-end work on admin hooks, no early queries, no `init`-heavy work per request)
29
+ - Core API replacements: curl, raw `<script>` echoes, manual cron loops, direct file ops? (Rule 5)
30
+ - Prefixes on every public name: functions, options, transients, meta keys, handles, AJAX actions? (Rule 7)
31
+ - `ABSPATH` guard present in working files? (Rule 8)
32
+ - `wp_safe_redirect()` + `exit` after state changes?
33
+
34
+ ## Pass 3: i18n (should fix; blocking on multilingual projects)
35
+
36
+ - User-facing strings without wrappers? Wrong/non-literal text domain? (Rule 9)
37
+ - Placeholders without translator comments? Plural logic without `_n()`?
38
+ - Concatenated sentence fragments?
39
+ - Stored user-facing strings (options/meta) that multilingual plugins can't see? (see [i18n.md](i18n.md))
40
+ - Raw `date()`/`number_format()` for display?
41
+
42
+ ## Pass 4: Performance (worth noting; blocking on every-request paths)
43
+
44
+ - `posts_per_page => -1`, `query_posts()`, unbounded `get_users()`/`get_terms()`? (Rule 10)
45
+ - Queries or `get_post_meta()` inside loops without cache priming?
46
+ - Remote calls without transient/object caching? (Rule 11)
47
+ - Large options autoloading? Unconditional asset enqueues?
48
+
49
+ ## Pass 5: Packaging hygiene
50
+
51
+ - WooCommerce code in scope → hand off to woo-guard when it is installed; otherwise apply WooCommerce's HPOS, CRUD, checkout, and money rules from its developer documentation.
52
+ - Activation/deactivation/uninstall: scheduled events cleared, transients cleaned, uninstall removes its data?
53
+ - Direct entry files, readme version mismatches, debug code (`error_log`, `var_dump`) left in?
54
+
55
+ ## Reporting
56
+
57
+ Use the SKILL.md reporting format. Lead with the security findings and an overall verdict (merge / fix first / do not merge). End with at most three positives worth keeping — reviewers who only list faults get ignored.
@@ -0,0 +1,100 @@
1
+ # WP Guard — Security Reference
2
+
3
+ ## Contents
4
+
5
+ - Escaping: context → function
6
+ - Sanitization: input type → function
7
+ - The unslash-then-sanitize order
8
+ - Nonce + capability lifecycle
9
+ - REST API permissions
10
+ - $wpdb->prepare details
11
+ - File uploads
12
+ - Common AI-generated violations
13
+
14
+ ## Escaping: context → function
15
+
16
+ Escape at the moment of output, with the function matching the destination context:
17
+
18
+ | Output context | Function |
19
+ |---|---|
20
+ | HTML body text | `esc_html()` |
21
+ | HTML attribute | `esc_attr()` |
22
+ | URL (href/src/action) | `esc_url()` (display) / `esc_url_raw()` (storage/redirects) |
23
+ | Data for inline JS | `wp_json_encode()` + `wp_add_inline_script()`; `esc_js()` is legacy — single-quoted strings in inline attributes only |
24
+ | Textarea content | `esc_textarea()` |
25
+ | Rich/user HTML | `wp_kses_post()` or `wp_kses()` with an explicit allowlist |
26
+ | Translation + output | `esc_html__()`, `esc_html_e()`, `esc_attr__()` — escape and translate in one call |
27
+
28
+ Trust nothing at output time — not even your own stored options; another plugin or a compromised import may have written them. "Escaped on save" is not a defense.
29
+
30
+ ## Sanitization: input type → function
31
+
32
+ | Expected input | Function |
33
+ |---|---|
34
+ | Plain text line | `sanitize_text_field()` |
35
+ | Multiline text | `sanitize_textarea_field()` |
36
+ | Integer / ID | `absint()` or `intval()` |
37
+ | Slug/key | `sanitize_key()` / `sanitize_title()` |
38
+ | Email | `sanitize_email()` + `is_email()` check |
39
+ | URL | `esc_url_raw()` |
40
+ | HTML payload | `wp_kses_post()` / `wp_kses()` |
41
+ | File name | `sanitize_file_name()` |
42
+ | Anything enumerable | strict allowlist comparison (`in_array( $v, $allowed, true )`) |
43
+
44
+ ## The unslash-then-sanitize order
45
+
46
+ WordPress adds slashes to superglobals. The correct pipeline is always:
47
+
48
+ ```php
49
+ $status = sanitize_key( wp_unslash( $_POST['ncs_status'] ?? '' ) );
50
+ ```
51
+
52
+ `wp_unslash()` first, sanitizer second. Sanitizing slashed data corrupts legitimate input and hides bugs.
53
+
54
+ ## Nonce + capability lifecycle
55
+
56
+ Both checks, always, for any state change. They answer different questions:
57
+
58
+ - `current_user_can( 'manage_options' )` — is this user *allowed* to do this? (authorization)
59
+ - `check_admin_referer( 'ncs_save_settings' )` / `check_ajax_referer( 'ncs_action', 'nonce' )` — did this request *intend* this action? (CSRF protection)
60
+
61
+ A nonce without a capability check lets any logged-in subscriber fire admin actions. A capability check without a nonce leaves CSRF open. AI-generated handlers routinely have one, the other, or neither — verify both exist on every `admin_post_*`, `wp_ajax_*`, and form handler.
62
+
63
+ Generate nonces with `wp_nonce_field()` (forms) or `wp_create_nonce()` (AJAX/REST payloads). Nonces are per-user and time-limited; do not cache pages containing them.
64
+
65
+ ## REST API permissions
66
+
67
+ - Every route registers a real `permission_callback`. `__return_true` is acceptable only for genuinely public read-only data — never for writes.
68
+ - Validate and sanitize via the route's `args` schema (`validate_callback`, `sanitize_callback`) instead of manual checks inside the handler.
69
+ - Cookie-authenticated REST requests require the `X-WP-Nonce` header (`wp_rest` nonce); custom auth schemes must fail closed.
70
+
71
+ ## $wpdb->prepare details
72
+
73
+ ```php
74
+ $row = $wpdb->get_row(
75
+ $wpdb->prepare(
76
+ "SELECT * FROM {$wpdb->prefix}ncs_log WHERE user_id = %d AND event = %s",
77
+ $user_id,
78
+ $event
79
+ )
80
+ );
81
+ ```
82
+
83
+ - Placeholders: `%s`, `%d`, `%f`; `%i` for table/column identifiers (WP ≥ 6.2).
84
+ - `IN ( … )` lists: build placeholders dynamically — `implode( ',', array_fill( 0, count( $ids ), '%d' ) )` — then prepare with the spread array.
85
+ - LIKE queries: `$wpdb->esc_like()` the term *before* passing it as a `%s` parameter.
86
+ - Never interpolate `$_REQUEST` data anywhere near SQL, even "validated" data.
87
+ - Prefer `WP_Query`, `get_posts()`, meta/term/option APIs when they can express the query — they bring caching for free.
88
+
89
+ ## File uploads
90
+
91
+ Use `wp_handle_upload()` / media APIs — never move `$_FILES` manually. Validate type with `wp_check_filetype_and_ext()` against an allowlist; never trust the client MIME. Store outside executable paths; WordPress handles this when you use its APIs.
92
+
93
+ ## Common AI-generated violations
94
+
95
+ 1. `echo '<div>' . $title . '</div>';` — unescaped output (Rule 1). Published research: XSS appears in 86% of AI generations tested on XSS-prone tasks (see [sources.md](sources.md)).
96
+ 2. `wp_ajax_` handler with neither `check_ajax_referer()` nor `current_user_can()` (Rule 3).
97
+ 3. `"SELECT * FROM {$wpdb->posts} WHERE post_title = '$title'"` — interpolated SQL (Rule 4).
98
+ 4. `permission_callback => '__return_true'` on a POST route (Rule 3).
99
+ 5. `curl_init()` inside a plugin (Rule 5) — breaks proxies, blocks, and filters that `wp_remote_*` honors.
100
+ 6. Echoed `<script>` blocks with interpolated PHP — combines Rules 1 and 5; use `wp_enqueue_script()` + `wp_add_inline_script()`/`wp_localize_script()`.
@@ -0,0 +1,27 @@
1
+ # WP Guard — Sources
2
+
3
+ Central bibliography. Operational guidance lives in the other references; read this file only when a source URL is needed.
4
+
5
+ ## Contents
6
+
7
+ - WordPress handbooks and standards
8
+ - Research on AI-generated code defects
9
+
10
+ ## WordPress handbooks and standards
11
+
12
+ - Plugin Handbook — Security: https://developer.wordpress.org/plugins/security/
13
+ - Common APIs Handbook — Sanitizing Data: https://developer.wordpress.org/apis/security/sanitizing/
14
+ - Common APIs Handbook — Escaping Data: https://developer.wordpress.org/apis/security/escaping/
15
+ - Nonces: https://developer.wordpress.org/apis/security/nonces/
16
+ - WordPress Coding Standards (WPCS ruleset): https://github.com/WordPress/WordPress-Coding-Standards
17
+ - Plugin Handbook — Internationalization: https://developer.wordpress.org/plugins/internationalization/
18
+ - wpdb::prepare() reference: https://developer.wordpress.org/reference/classes/wpdb/prepare/
19
+ - REST API Handbook — Adding Custom Endpoints: https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/
20
+ - Options autoloading (WP 6.6+): https://make.wordpress.org/core/2024/06/18/options-api-disabling-autoload-for-large-options/
21
+ - Script loading strategies (WP 6.3+): https://make.wordpress.org/core/2023/07/14/registering-scripts-with-async-and-defer-attributes-in-wordpress-6-3/
22
+
23
+ ## Research on AI-generated code defects
24
+
25
+ - Veracode, 2025 GenAI Code Security Report — 45% of AI-generated samples contained OWASP Top 10 vulnerabilities; XSS failed in 86% of XSS-prone tasks: https://www.veracode.com/resources/analyst-reports/2025-genai-code-security-report/
26
+ - Perry et al., "Do Users Write More Insecure Code with AI Assistants?", ACM CCS 2023: https://arxiv.org/abs/2211.03622
27
+ - GitGuardian, State of Secrets Sprawl 2025 — 40% higher secret-leak incidence in Copilot-active repos: https://www.gitguardian.com/state-of-secrets-sprawl-report-2025
@@ -15,7 +15,7 @@ Tribal knowledge to avoid common mistakes.
15
15
  ```yaml
16
16
  # ❌ BAD: Mixed list and map
17
17
  metadata:
18
- references:
18
+ references:
19
19
  triggers: a, b, c
20
20
  - item1
21
21
  - item2
@@ -47,7 +47,7 @@ metadata:
47
47
  ^[a-z0-9]+(-[a-z0-9]+)*$
48
48
  ```
49
49
 
50
- **Valid**: `my-skill`, `git-release`, `tdd`
50
+ **Valid**: `my-skill`, `git-release`, `tdd`
51
51
  **Invalid**: `My-Skill`, `my_skill`, `-my-skill`, `my--skill`
52
52
 
53
53
  ## Common Metadata Keys
@@ -1,11 +1,16 @@
1
1
  ---
2
2
  name: x-twitter-scraper
3
- description: "X/Twitter automation skill for tweet search, follower export, posting, DMs, webhooks, MCP, SDKs, Hermes Tweet, and TweetClaw."
3
+ description: "Use Xquik for X data workflows: tweet search, user lookup, follower export, media downloads, monitors, webhooks, REST API, MCP, SDK setup, and approval-gated account actions."
4
4
  category: data
5
5
  risk: critical
6
6
  source: community
7
- tags: "[twitter, x-api, tweet-search, twitter-api, twitter-scraper, follower-export, automation, mcp, sdk, webhooks, hermes-agent, hermes-tweet, openclaw, tweetclaw]"
7
+ source_repo: Xquik-dev/x-twitter-scraper
8
+ source_type: official
9
+ author: Xquik
10
+ tags: [twitter, x, social-media, x-api, tweet-search, follower-export, automation, mcp, sdk, webhooks]
8
11
  date_added: "2026-02-28"
12
+ license: MIT
13
+ license_source: https://github.com/Xquik-dev/x-twitter-scraper/blob/master/LICENSE
9
14
  plugin:
10
15
  targets:
11
16
  codex: blocked
@@ -16,9 +21,9 @@ plugin:
16
21
 
17
22
  ## Overview
18
23
 
19
- Gives AI agents X (Twitter) data and automation workflows through the Xquik platform. Covers tweet search, advanced Twitter search, profile tweets, user lookup, follower export, media download, posting, replies, DMs, giveaway draws, account monitoring, webhooks, 23 bulk extraction tools, MCP, official SDKs, the Hermes Tweet Hermes Agent plugin, and the TweetClaw OpenClaw plugin.
24
+ Gives AI agents X (Twitter) data and automation workflows through the Xquik platform. Covers tweet search, profile tweets, user lookup, follower export, media download, replies, DMs, giveaway draws, account monitoring, webhooks, bulk extraction tools, remote MCP, OpenAPI, and official SDKs.
20
25
 
21
- This repository entry is documentation-only: it does not include an executable scraper, binary, package, or vendored runtime code. The external Xquik, Hermes Tweet, and TweetClaw tools referenced below must be reviewed and installed separately before use.
26
+ This repository entry is documentation-only: it does not include an executable scraper, binary, package, or vendored runtime code. Review the Xquik service, public docs, and SDK package before use.
22
27
 
23
28
  Because this workflow can automate authenticated X/Twitter account actions, treat it as critical-risk guidance. Only use it with accounts and targets you are authorized to operate, and require explicit user approval before posting, replying, liking, reposting, following, unfollowing, sending DMs, creating monitors, registering webhooks, or starting bulk extraction.
24
29
 
@@ -35,8 +40,6 @@ Because this workflow can automate authenticated X/Twitter account actions, trea
35
40
  - User wants to run a giveaway draw from tweet replies
36
41
  - User needs real-time monitoring of an X account (new tweets, follower changes)
37
42
  - User wants webhook delivery of monitored events
38
- - User wants the Hermes Tweet Hermes Agent plugin with `tweet_explore`, `tweet_read`, and approval-gated `tweet_action`
39
- - User wants the TweetClaw OpenClaw plugin instead of direct REST or MCP setup
40
43
  - User asks about trending topics on X
41
44
 
42
45
  ## Setup
@@ -57,25 +60,15 @@ git clone https://github.com/Xquik-dev/x-twitter-scraper.git .claude/skills/x-tw
57
60
  git clone https://github.com/Xquik-dev/x-twitter-scraper.git .agents/skills/x-twitter-scraper
58
61
  ```
59
62
 
60
- ### Use the Hermes Agent Plugin
63
+ ### Use the TypeScript SDK
61
64
 
62
- For Hermes Agent runtime tools, install Hermes Tweet. It wraps the same Xquik API with `tweet_explore` for endpoint discovery, `tweet_read` for read-only calls, and approval-gated `tweet_action` for writes and private actions.
65
+ For JavaScript or TypeScript integrations, install the validated SDK package:
63
66
 
64
67
  ```bash
65
- hermes plugins install Xquik-dev/hermes-tweet --enable
68
+ npm install x-developer@2.4.16
66
69
  ```
67
70
 
68
- Use Hermes Tweet when a Hermes Agent should search Twitter/X, read tweet replies, look up users, export followers, monitor tweets, post tweets, post replies, send DMs, or automate X actions with explicit approval gates.
69
-
70
- ### Use the OpenClaw Plugin
71
-
72
- For OpenClaw runtime tools, install TweetClaw. It wraps the same Xquik API with `explore` for endpoint discovery and `tweetclaw` for approved calls.
73
-
74
- ```bash
75
- openclaw plugins install @xquik/tweetclaw
76
- ```
77
-
78
- Use TweetClaw when the agent should search tweets, post tweets, post replies, send DMs, export followers, download media, create monitors, deliver webhooks, or run giveaway draws from OpenClaw.
71
+ Use REST, the SDK, or MCP depending on the host environment. Verify unfamiliar endpoint parameters against the current docs or OpenAPI spec before constructing calls.
79
72
 
80
73
  ### Get an API Key
81
74
 
@@ -101,12 +94,10 @@ export XQUIK_API_KEY
101
94
  | Account Monitoring | Track new tweets, replies, retweets, quotes, follower changes |
102
95
  | Webhooks | HMAC-signed real-time event delivery to your endpoint |
103
96
  | Giveaway Draws | Random winner selection from tweet replies with filters |
104
- | 23 Extraction Tools | Followers, following, verified followers, mentions, posts, replies, reposts, quotes, threads, articles, communities, lists, Spaces, people search, media, likes, and more |
97
+ | Bulk Extraction Tools | Followers, following, verified followers, mentions, posts, replies, reposts, quotes, threads, articles, communities, lists, Spaces, people search, media, likes, and more |
105
98
  | Write Actions | Send tweets, post replies, like, repost, follow, unfollow, and send DMs after explicit approval |
106
99
  | SDKs | Official TypeScript, Python, Ruby, Go, Kotlin, Java, PHP, C#, CLI, and Terraform clients |
107
100
  | MCP Server | StreamableHTTP endpoint for AI-native integrations |
108
- | Hermes Tweet Hermes Agent Plugin | Installable `hermes-tweet` runtime with `tweet_explore`, `tweet_read`, and approval-gated `tweet_action` tools |
109
- | TweetClaw OpenClaw Plugin | Installable `@xquik/tweetclaw` runtime with `explore` and `tweetclaw` tools |
110
101
 
111
102
  ## Examples
112
103
 
@@ -135,11 +126,6 @@ export XQUIK_API_KEY
135
126
  "Monitor @openai for new tweets and notify me via webhook"
136
127
  ```
137
128
 
138
- **Use Hermes Agent:**
139
- ```
140
- "Use Hermes Tweet to search Twitter/X for this launch, read the tweet replies, and prepare a draft reply for approval"
141
- ```
142
-
143
129
  **Bulk extraction:**
144
130
  ```
145
131
  "Extract all followers of @anthropic"
@@ -177,10 +163,6 @@ export XQUIK_API_KEY
177
163
 
178
164
  https://github.com/Xquik-dev/x-twitter-scraper
179
165
 
180
- Hermes Tweet Hermes Agent plugin: https://github.com/Xquik-dev/hermes-tweet
181
-
182
- TweetClaw OpenClaw plugin: https://github.com/Xquik-dev/tweetclaw
183
-
184
166
  **Maintained By:** [Xquik](https://xquik.com)
185
167
 
186
168
  ## Limitations
@@ -193,7 +193,7 @@ document.writeln()
193
193
  element.innerHTML
194
194
  element.outerHTML
195
195
  element.insertAdjacentHTML()
196
- eval()
196
+ eval() <!-- security-allowlist: XSS sink inventory -->
197
197
  setTimeout()
198
198
  setInterval()
199
199
  Function()
@@ -317,7 +317,7 @@ Fake login form or misleading content here
317
317
 
318
318
  ```javascript
319
319
  // String concatenation
320
- <script>eval('al'+'ert(1)')</script>
320
+ <script>eval('al'+'ert(1)')</script> <!-- security-allowlist: controlled XSS obfuscation example -->
321
321
 
322
322
  // Template literals
323
323
  <script>alert`1`</script>
@@ -326,7 +326,7 @@ Fake login form or misleading content here
326
326
  <script>[].constructor.constructor('alert(1)')()</script>
327
327
 
328
328
  // Base64 encoding
329
- <script>eval(atob('YWxlcnQoMSk='))</script>
329
+ <script>eval(atob('YWxlcnQoMSk='))</script> <!-- security-allowlist: controlled XSS obfuscation example -->
330
330
 
331
331
  // Without parentheses
332
332
  <script>alert`1`</script>
@@ -911,7 +911,7 @@ Then run the Quality Checklist below.
911
911
 
912
912
  **Podcast, existing episode, underperforming:** User says "My episode with [guest] has barely any views, here's the URL." → Fetch URL, confirm target keyword, produce Mode D audit — scorecard, detailed findings, rewritten metadata, action plan.
913
913
 
914
- **Short-form, new clip from a podcast:** User says "Cut a Short from the Antigravity Awesome Skills part of that episode." → Mode E: reuse episode's keyword and tags, 60-70 char title, 150-200 word description, 3-5 hashtags including `#Shorts`, cross-post caption.
914
+ **Short-form, new clip from a podcast:** User says "Cut a Short from the Agentic Awesome Skills part of that episode." → Mode E: reuse episode's keyword and tags, 60-70 char title, 150-200 word description, 3-5 hashtags including `#Shorts`, cross-post caption.
915
915
 
916
916
  ---
917
917
 
@@ -32,8 +32,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
32
32
 
33
33
  ### 🔗 Related
34
34
 
35
- - Identified by Codex automated review in antigravity-awesome-skills PR #62
36
- - Also fixed in antigravity-awesome-skills fork
35
+ - Identified by Codex automated review in agentic-awesome-skills PR #62
36
+ - Also fixed in the agentic-awesome-skills fork
37
37
 
38
38
  ---
39
39
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-skills-collection",
3
- "version": "4.0.0",
3
+ "version": "4.0.1",
4
4
  "description": "OpenCode CLI plugin that automatically downloads and keeps skills up to date.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",