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.
- package/bundled-skills/.antigravity-install-manifest.json +24 -1
- package/bundled-skills/007/SKILL.md +2 -2
- package/bundled-skills/10-andruia-skill-smith/SKILL.md +1 -1
- package/bundled-skills/agent-squad/SKILL.md +5 -0
- package/bundled-skills/agent-squad/alex/SKILL.md +3 -0
- package/bundled-skills/agent-squad/aria/SKILL.md +3 -0
- package/bundled-skills/agent-squad/dep/SKILL.md +3 -0
- package/bundled-skills/agent-squad/luna/SKILL.md +4 -1
- package/bundled-skills/agent-squad/mason/SKILL.md +3 -0
- package/bundled-skills/agent-squad/max/SKILL.md +3 -0
- package/bundled-skills/agent-squad/quinn/SKILL.md +3 -0
- package/bundled-skills/agent-squad/rex/SKILL.md +3 -0
- package/bundled-skills/angular/metadata.json +1 -1
- package/bundled-skills/angular-best-practices/metadata.json +1 -1
- package/bundled-skills/angular-state-management/metadata.json +1 -1
- package/bundled-skills/angular-ui-patterns/metadata.json +1 -1
- package/bundled-skills/antigravity-skill-orchestrator/SKILL.md +2 -2
- package/bundled-skills/apify-actor-development/SKILL.md +2 -2
- package/bundled-skills/apple-container/SKILL.md +165 -0
- package/bundled-skills/apple-container/references/commands.md +1593 -0
- package/bundled-skills/apple-container/references/concepts.md +294 -0
- package/bundled-skills/apple-container/references/configuration.md +499 -0
- package/bundled-skills/apple-container/references/workflows.md +498 -0
- package/bundled-skills/ask-copilot/SKILL.md +112 -0
- package/bundled-skills/auto-research/SKILL.md +126 -0
- package/bundled-skills/brooks-lint/SKILL.md +1 -1
- package/bundled-skills/browser-harness/references/install.md +3 -1
- package/bundled-skills/chrome-extension-developer/SKILL.md +1 -1
- package/bundled-skills/clean-code-guard/SKILL.md +184 -0
- package/bundled-skills/clean-code-guard/references/ai-failure-modes.md +345 -0
- package/bundled-skills/clean-code-guard/references/comments-and-formatting.md +115 -0
- package/bundled-skills/clean-code-guard/references/dry-kiss-yagni.md +133 -0
- package/bundled-skills/clean-code-guard/references/naming-and-functions.md +187 -0
- package/bundled-skills/clean-code-guard/references/review-checklist.md +150 -0
- package/bundled-skills/clean-code-guard/references/solid.md +280 -0
- package/bundled-skills/clean-code-guard/references/sources.md +47 -0
- package/bundled-skills/cloudflare-security-audit/SKILL.md +137 -0
- package/bundled-skills/cloudflare-security-audit/references/AI-AND-LLM.md +67 -0
- package/bundled-skills/cloudflare-security-audit/references/ATTACK-CLASSES.md +116 -0
- package/bundled-skills/cloudflare-security-audit/references/CLIENT-SIDE.md +67 -0
- package/bundled-skills/cloudflare-security-audit/references/HUNTING.md +110 -0
- package/bundled-skills/cloudflare-security-audit/references/MEMORY-SAFETY-AND-BINARY.md +58 -0
- package/bundled-skills/cloudflare-security-audit/references/RECONNAISSANCE.md +46 -0
- package/bundled-skills/cloudflare-security-audit/references/VALIDATION-AND-REPORTING.md +109 -0
- package/bundled-skills/cloudflare-security-audit/references/WEB-PROTOCOL-AND-AUTH.md +85 -0
- package/bundled-skills/cloudflare-security-audit/resources/report-schema.json +210 -0
- package/bundled-skills/comfyui-gateway/references/troubleshooting.md +1 -1
- package/bundled-skills/commit/SKILL.md +2 -1
- package/bundled-skills/deepapi/SKILL.md +6 -6
- package/bundled-skills/docs/README.md +1 -1
- package/bundled-skills/docs/contributors/quality-bar.md +1 -1
- package/bundled-skills/docs/contributors/security-guardrails.md +1 -1
- package/bundled-skills/docs/integrations/jetski-cortex.md +5 -5
- package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +3 -3
- package/bundled-skills/docs/maintainers/ci-drift-fix.md +7 -5
- package/bundled-skills/docs/maintainers/merge-batch.md +24 -7
- package/bundled-skills/docs/maintainers/pr-autonomy.md +89 -0
- package/bundled-skills/docs/maintainers/release-notes-7.2.0.md +1 -1
- package/bundled-skills/docs/maintainers/release-process.md +9 -9
- package/bundled-skills/docs/maintainers/repo-growth-seo.md +5 -5
- package/bundled-skills/docs/maintainers/skills-date-tracking.md +1 -1
- package/bundled-skills/docs/maintainers/skills-update-guide.md +2 -2
- package/bundled-skills/docs/users/{antigravity-awesome-skills-vs-awesome-claude-skills.md → agentic-awesome-skills-vs-awesome-claude-skills.md} +5 -5
- package/bundled-skills/docs/users/ai-agent-skills.md +4 -4
- package/bundled-skills/docs/users/best-claude-code-skills-github.md +3 -3
- package/bundled-skills/docs/users/best-cursor-skills-github.md +3 -3
- package/bundled-skills/docs/users/bundles.md +56 -57
- package/bundled-skills/docs/users/claude-code-skills.md +6 -6
- package/bundled-skills/docs/users/codex-cli-skills.md +5 -5
- package/bundled-skills/docs/users/cursor-skills.md +3 -3
- package/bundled-skills/docs/users/faq.md +27 -15
- package/bundled-skills/docs/users/gemini-cli-skills.md +4 -4
- package/bundled-skills/docs/users/getting-started.md +22 -12
- package/bundled-skills/docs/users/kiro-integration.md +7 -7
- package/bundled-skills/docs/users/plugins.md +8 -9
- package/bundled-skills/docs/users/security-skills.md +1 -1
- package/bundled-skills/docs/users/skills-vs-mcp-tools.md +1 -1
- package/bundled-skills/docs/users/specialized-plugin-roadmap.md +3 -4
- package/bundled-skills/docs/users/usage.md +9 -9
- package/bundled-skills/docs/users/visual-guide.md +7 -7
- package/bundled-skills/docs/users/windows-truncation-recovery.md +1 -1
- package/bundled-skills/docs/users/workflows.md +1 -1
- package/bundled-skills/docs/vietnamese/BUNDLES.vi.md +1 -1
- package/bundled-skills/docs/vietnamese/FAQ.vi.md +15 -8
- package/bundled-skills/docs/vietnamese/GETTING_STARTED.vi.md +12 -5
- package/bundled-skills/docs/vietnamese/QUALITY_BAR.vi.md +1 -1
- package/bundled-skills/docs/vietnamese/README.vi.md +21 -17
- package/bundled-skills/docs/vietnamese/SECURITY_GUARDRAILS.vi.md +1 -1
- package/bundled-skills/docs/vietnamese/SKILLS_README.vi.md +2 -2
- package/bundled-skills/docs/vietnamese/TRANSLATION_PLAN.vi.md +1 -1
- package/bundled-skills/docs/vietnamese/VISUAL_GUIDE.vi.md +8 -8
- package/bundled-skills/docs-guard/SKILL.md +109 -0
- package/bundled-skills/docs-guard/references/code-samples.md +46 -0
- package/bundled-skills/docs-guard/references/docstrings.md +60 -0
- package/bundled-skills/docs-guard/references/review-checklist.md +45 -0
- package/bundled-skills/docs-guard/references/sources.md +22 -0
- package/bundled-skills/docs-guard/references/verification.md +51 -0
- package/bundled-skills/efficient-web-research/SKILL.md +4 -0
- package/bundled-skills/electron-development/SKILL.md +1 -1
- package/bundled-skills/event-staffing-compliance/SKILL.md +3 -0
- package/bundled-skills/event-staffing-ordering/SKILL.md +3 -0
- package/bundled-skills/feature-tracking/SKILL.md +222 -0
- package/bundled-skills/flutter-expert/SKILL.md +6 -1
- package/bundled-skills/flutter-expert/resources/implementation-playbook.md +214 -0
- package/bundled-skills/gemini-deep-research/README.md +246 -0
- package/bundled-skills/gemini-deep-research/SKILL.md +136 -0
- package/bundled-skills/gemini-deep-research/requirements.txt +2 -0
- package/bundled-skills/gemini-deep-research/scripts/research.py +692 -0
- package/bundled-skills/git-pushing/SKILL.md +21 -4
- package/bundled-skills/git-pushing/scripts/smart_commit.sh +206 -11
- package/bundled-skills/go-in-depth/scripts/workflow-script.js +4 -1
- package/bundled-skills/grok-build/SKILL.md +167 -0
- package/bundled-skills/grok-build/references/cli.md +99 -0
- package/bundled-skills/huggingface-tool-builder/references/find_models_by_paper.sh +1 -1
- package/bundled-skills/idea-autopsy/SKILL.md +147 -0
- package/bundled-skills/it-manager-hospital/README.md +1 -1
- package/bundled-skills/it-manager-pro/README.md +1 -1
- package/bundled-skills/itil-expert/README.md +1 -1
- package/bundled-skills/langgraph/SKILL.md +1 -1
- package/bundled-skills/linkedin-content-generator/SKILL.md +1 -1
- package/bundled-skills/lint-and-validate/scripts/lint_runner.py +23 -23
- package/bundled-skills/lint-and-validate/scripts/type_coverage.py +30 -30
- package/bundled-skills/logic-lens/SKILL.md +1 -1
- package/bundled-skills/lore/LICENSE +21 -0
- package/bundled-skills/lore/README.md +386 -0
- package/bundled-skills/lore/README.zh-CN.md +386 -0
- package/bundled-skills/lore/SKILL.md +453 -0
- package/bundled-skills/lore/WORKFLOWS.md +216 -0
- package/bundled-skills/lore/WORKFLOWS.zh-CN.md +216 -0
- package/bundled-skills/lore/references/audit-template.md +60 -0
- package/bundled-skills/lore/references/compatibility.md +228 -0
- package/bundled-skills/lore/references/config.md +125 -0
- package/bundled-skills/lore/references/entry-format.md +70 -0
- package/bundled-skills/lore/references/history-command.md +106 -0
- package/bundled-skills/lore/references/monorepo-detection.md +78 -0
- package/bundled-skills/lore/references/platform-mirrors.md +377 -0
- package/bundled-skills/lore/references/stale-new-markers.md +62 -0
- package/bundled-skills/lore/references/summary-template.md +98 -0
- package/bundled-skills/lore/scripts/README.md +54 -0
- package/bundled-skills/lore/scripts/README.zh-CN.md +54 -0
- package/bundled-skills/lore/scripts/find_duplicates.py +211 -0
- package/bundled-skills/lore/scripts/find_stale.py +116 -0
- package/bundled-skills/lore/scripts/history.py +527 -0
- package/bundled-skills/lore/scripts/id_hash.py +32 -0
- package/bundled-skills/lore/scripts/list_entries.py +183 -0
- package/bundled-skills/lovable-cleanup/SKILL.md +3 -3
- package/bundled-skills/makepad-splash/SKILL.md +1 -1
- package/bundled-skills/mmx-cli/SKILL.md +14 -1
- package/bundled-skills/monopoly/SKILL.md +5 -0
- package/bundled-skills/monopoly/patterns/SKILL.md +4 -0
- package/bundled-skills/monopoly/scale-benchmarks/SKILL.md +4 -0
- package/bundled-skills/monopoly/security-checklist/SKILL.md +4 -0
- package/bundled-skills/monopoly/tech-matrix/SKILL.md +4 -0
- package/bundled-skills/mtls-configuration/SKILL.md +1 -1
- package/bundled-skills/network-101/SKILL.md +4 -5
- package/bundled-skills/nika/SKILL.md +270 -0
- package/bundled-skills/not-a-vibe-coder/SKILL.md +4 -0
- package/bundled-skills/ontoly-software-graph/SKILL.md +160 -0
- package/bundled-skills/openclaw-github-repo-commander/SKILL.md +1 -1
- package/bundled-skills/pilot-protocol/SKILL.md +6 -3
- package/bundled-skills/postgres-readonly-queries/README.md +77 -0
- package/bundled-skills/postgres-readonly-queries/SKILL.md +152 -0
- package/bundled-skills/postgres-readonly-queries/connections.example.json +34 -0
- package/bundled-skills/postgres-readonly-queries/requirements.txt +1 -0
- package/bundled-skills/postgres-readonly-queries/scripts/query.py +262 -0
- package/bundled-skills/pptx-deck-creation/SKILL.md +275 -0
- package/bundled-skills/pptx-deck-creation/references/audit-checklist.md +156 -0
- package/bundled-skills/pptx-deck-creation/references/design-profiles.md +96 -0
- package/bundled-skills/pptx-deck-creation/references/python-snippets.md +150 -0
- package/bundled-skills/pptx-deck-creation/references/reference-deck-analysis.md +91 -0
- package/bundled-skills/pptx-deck-creation/references/visual-asset-adapters.md +158 -0
- package/bundled-skills/privilege-escalation-methods/SKILL.md +1 -1
- package/bundled-skills/product-decision-agent/SKILL.md +94 -0
- package/bundled-skills/product-decision-agent/agents/openai.yaml +7 -0
- package/bundled-skills/product-decision-agent/references/methodology-basis.md +232 -0
- package/bundled-skills/product-decision-agent/references/product-playbooks.md +813 -0
- package/bundled-skills/product-decision-agent/references/reasoning-engine.md +289 -0
- package/bundled-skills/product-decision-agent/references/response-examples.md +279 -0
- package/bundled-skills/product-decision-agent/scripts/quality_gate.py +221 -0
- package/bundled-skills/product-decision-agent/scripts/test_quality_gate.py +94 -0
- package/bundled-skills/pytest-skill/reference/playbook.md +358 -0
- package/bundled-skills/quit-sponsor/SKILL.md +96 -0
- package/bundled-skills/rclone-cli/references/providers/s3.md +1 -1
- package/bundled-skills/security-and-hardening/SKILL.md +1 -1
- package/bundled-skills/semgrep-rule-creator/SKILL.md +6 -6
- package/bundled-skills/skill-creator/README.md +3 -3
- package/bundled-skills/skill-creator/SKILL.md +8 -4
- package/bundled-skills/skill-creator/scripts/quick_validate.py +1 -1
- package/bundled-skills/sql-injection-testing/SKILL.md +4 -4
- package/bundled-skills/subagent-orchestrator/README.md +1 -1
- package/bundled-skills/super-code/bash/SKILL.md +3 -0
- package/bundled-skills/super-code/c/SKILL.md +3 -0
- package/bundled-skills/super-code/cpp/SKILL.md +3 -0
- package/bundled-skills/super-code/csharp/SKILL.md +3 -0
- package/bundled-skills/super-code/dart/SKILL.md +3 -0
- package/bundled-skills/super-code/elixir/SKILL.md +3 -0
- package/bundled-skills/super-code/go/SKILL.md +3 -0
- package/bundled-skills/super-code/java/SKILL.md +3 -0
- package/bundled-skills/super-code/kotlin/SKILL.md +3 -0
- package/bundled-skills/super-code/php/SKILL.md +3 -0
- package/bundled-skills/super-code/python/SKILL.md +3 -0
- package/bundled-skills/super-code/ruby/SKILL.md +3 -0
- package/bundled-skills/super-code/rust/SKILL.md +3 -0
- package/bundled-skills/super-code/scala/SKILL.md +3 -0
- package/bundled-skills/super-code/swift/SKILL.md +3 -0
- package/bundled-skills/super-code/typescript/SKILL.md +3 -0
- package/bundled-skills/telegram-bot-messaging/README.md +185 -0
- package/bundled-skills/telegram-bot-messaging/SKILL.md +101 -0
- package/bundled-skills/telegram-bot-messaging/scripts/telegram.sh +420 -0
- package/bundled-skills/test-guard/SKILL.md +132 -0
- package/bundled-skills/test-guard/references/jest.md +50 -0
- package/bundled-skills/test-guard/references/llm-app-testing.md +40 -0
- package/bundled-skills/test-guard/references/phpunit.md +56 -0
- package/bundled-skills/test-guard/references/pytest.md +65 -0
- package/bundled-skills/trading-ledger/SKILL.md +11 -3
- package/bundled-skills/uizze-ui-research/SKILL.md +93 -0
- package/bundled-skills/vibe-code-auditor/SKILL.md +1 -1
- package/bundled-skills/vibecode-production-qa-validator/SKILL.md +1 -1
- package/bundled-skills/videodb/scripts/ws_listener.py +29 -15
- package/bundled-skills/voice-ai-engine-development/README.md +1 -1
- package/bundled-skills/vulnerability-scanner/SKILL.md +1 -1
- package/bundled-skills/warehouse/SKILL.md +154 -0
- package/bundled-skills/woo-guard/SKILL.md +113 -0
- package/bundled-skills/woo-guard/references/checkout-and-money.md +64 -0
- package/bundled-skills/woo-guard/references/hpos-and-crud.md +87 -0
- package/bundled-skills/woo-guard/references/review-checklist.md +44 -0
- package/bundled-skills/woo-guard/references/sources.md +17 -0
- package/bundled-skills/wp-guard/SKILL.md +119 -0
- package/bundled-skills/wp-guard/references/i18n.md +88 -0
- package/bundled-skills/wp-guard/references/performance.md +70 -0
- package/bundled-skills/wp-guard/references/review-checklist.md +57 -0
- package/bundled-skills/wp-guard/references/security.md +100 -0
- package/bundled-skills/wp-guard/references/sources.md +27 -0
- package/bundled-skills/writing-skills/gotchas.md +1 -1
- package/bundled-skills/writing-skills/references/standards/metadata-standard.md +1 -1
- package/bundled-skills/x-twitter-scraper/SKILL.md +14 -32
- package/bundled-skills/xss-html-injection/SKILL.md +3 -3
- package/bundled-skills/youtube-seo-optimizer/SKILL.md +1 -1
- package/bundled-skills/youtube-summarizer/CHANGELOG.md +2 -2
- package/package.json +1 -1
- 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
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: x-twitter-scraper
|
|
3
|
-
description: "X
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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
|
|
63
|
+
### Use the TypeScript SDK
|
|
61
64
|
|
|
62
|
-
For
|
|
65
|
+
For JavaScript or TypeScript integrations, install the validated SDK package:
|
|
63
66
|
|
|
64
67
|
```bash
|
|
65
|
-
|
|
68
|
+
npm install x-developer@2.4.16
|
|
66
69
|
```
|
|
67
70
|
|
|
68
|
-
Use
|
|
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
|
-
|
|
|
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
|
|
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
|
|
36
|
-
- Also fixed in
|
|
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