mindforge-cc 11.5.0 → 11.6.0
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/.agent/mindforge/skill-tdd.md +53 -0
- package/.agent/mindforge/skills-index.md +118 -0
- package/.agent/mindforge/systematic-debug.md +60 -0
- package/.agent/skills/1password-skill/SKILL.md +156 -0
- package/.agent/skills/1password-skill/references/cli-examples.md +31 -0
- package/.agent/skills/1password-skill/references/get-started.md +21 -0
- package/.agent/skills/article-illustrator/SKILL.md +199 -0
- package/.agent/skills/article-illustrator/references/prompt-construction.md +426 -0
- package/.agent/skills/article-illustrator/references/style-presets.md +80 -0
- package/.agent/skills/article-illustrator/references/styles.md +224 -0
- package/.agent/skills/article-illustrator/references/usage.md +50 -0
- package/.agent/skills/article-illustrator/references/workflow.md +332 -0
- package/.agent/skills/arxiv/SKILL.md +275 -0
- package/.agent/skills/blogwatcher/SKILL.md +130 -0
- package/.agent/skills/code-wiki/SKILL.md +438 -0
- package/.agent/skills/code-wiki/templates/README.md +31 -0
- package/.agent/skills/code-wiki/templates/architecture.md +30 -0
- package/.agent/skills/code-wiki/templates/getting-started.md +47 -0
- package/.agent/skills/code-wiki/templates/module.md +38 -0
- package/.agent/skills/codebase-inspection/SKILL.md +109 -0
- package/.agent/skills/comic-creator/SKILL.md +240 -0
- package/.agent/skills/comic-creator/references/analysis-framework.md +176 -0
- package/.agent/skills/comic-creator/references/auto-selection.md +71 -0
- package/.agent/skills/comic-creator/references/base-prompt.md +98 -0
- package/.agent/skills/comic-creator/references/character-template.md +180 -0
- package/.agent/skills/comic-creator/references/ohmsha-guide.md +85 -0
- package/.agent/skills/comic-creator/references/partial-workflows.md +106 -0
- package/.agent/skills/comic-creator/references/storyboard-template.md +143 -0
- package/.agent/skills/comic-creator/references/workflow.md +401 -0
- package/.agent/skills/concept-diagrams/SKILL.md +355 -0
- package/.agent/skills/concept-diagrams/references/dashboard-patterns.md +43 -0
- package/.agent/skills/concept-diagrams/references/infrastructure-patterns.md +144 -0
- package/.agent/skills/concept-diagrams/references/physical-shape-cookbook.md +42 -0
- package/.agent/skills/creative-ideation/SKILL.md +144 -0
- package/.agent/skills/creative-ideation/references/full-prompt-library.md +110 -0
- package/.agent/skills/devops-cli/SKILL.md +149 -0
- package/.agent/skills/devops-cli/references/app-discovery.md +112 -0
- package/.agent/skills/devops-cli/references/authentication.md +59 -0
- package/.agent/skills/devops-cli/references/cli-reference.md +104 -0
- package/.agent/skills/devops-cli/references/running-apps.md +171 -0
- package/.agent/skills/devops-watchers/SKILL.md +103 -0
- package/.agent/skills/docker-management/SKILL.md +273 -0
- package/.agent/skills/domain-intel/SKILL.md +96 -0
- package/.agent/skills/duckduckgo-search/SKILL.md +230 -0
- package/.agent/skills/github-auth/SKILL.md +240 -0
- package/.agent/skills/github-code-review/SKILL.md +474 -0
- package/.agent/skills/github-code-review/references/review-output-template.md +74 -0
- package/.agent/skills/github-issues/SKILL.md +363 -0
- package/.agent/skills/github-issues/templates/bug-report.md +35 -0
- package/.agent/skills/github-issues/templates/feature-request.md +31 -0
- package/.agent/skills/github-pr-workflow/SKILL.md +360 -0
- package/.agent/skills/github-pr-workflow/references/ci-troubleshooting.md +183 -0
- package/.agent/skills/github-pr-workflow/references/conventional-commits.md +71 -0
- package/.agent/skills/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
- package/.agent/skills/github-pr-workflow/templates/pr-body-feature.md +33 -0
- package/.agent/skills/github-repo-management/SKILL.md +509 -0
- package/.agent/skills/github-repo-management/references/github-api-cheatsheet.md +161 -0
- package/.agent/skills/godmode/SKILL.md +396 -0
- package/.agent/skills/godmode/references/jailbreak-templates.md +128 -0
- package/.agent/skills/godmode/references/refusal-detection.md +142 -0
- package/.agent/skills/hyperframes/SKILL.md +182 -0
- package/.agent/skills/hyperframes/references/cli.md +185 -0
- package/.agent/skills/hyperframes/references/composition.md +129 -0
- package/.agent/skills/hyperframes/references/features.md +289 -0
- package/.agent/skills/hyperframes/references/gsap.md +136 -0
- package/.agent/skills/hyperframes/references/troubleshooting.md +137 -0
- package/.agent/skills/hyperframes/references/website-to-video.md +145 -0
- package/.agent/skills/jupyter-live-kernel/SKILL.md +160 -0
- package/.agent/skills/kanban-orchestrator/SKILL.md +209 -0
- package/.agent/skills/kanban-worker/SKILL.md +188 -0
- package/.agent/skills/llm-wiki/SKILL.md +499 -0
- package/.agent/skills/meme-generation/SKILL.md +122 -0
- package/.agent/skills/node-inspect-debugger/SKILL.md +312 -0
- package/.agent/skills/obsidian/SKILL.md +60 -0
- package/.agent/skills/osint-investigation/SKILL.md +269 -0
- package/.agent/skills/osint-investigation/templates/source-template.md +59 -0
- package/.agent/skills/oss-forensics/SKILL.md +422 -0
- package/.agent/skills/oss-forensics/references/evidence-types.md +89 -0
- package/.agent/skills/oss-forensics/references/github-archive-guide.md +184 -0
- package/.agent/skills/oss-forensics/references/investigation-templates.md +131 -0
- package/.agent/skills/oss-forensics/references/recovery-techniques.md +164 -0
- package/.agent/skills/oss-forensics/templates/forensic-report.md +151 -0
- package/.agent/skills/oss-forensics/templates/malicious-package-report.md +43 -0
- package/.agent/skills/parallel-cli/SKILL.md +384 -0
- package/.agent/skills/pinggy-tunnel/SKILL.md +302 -0
- package/.agent/skills/pixel-art/SKILL.md +209 -0
- package/.agent/skills/pixel-art/references/palettes.md +49 -0
- package/.agent/skills/plan/SKILL.md +331 -0
- package/.agent/skills/polymarket/SKILL.md +75 -0
- package/.agent/skills/polymarket/references/api-endpoints.md +220 -0
- package/.agent/skills/python-debugpy/SKILL.md +368 -0
- package/.agent/skills/requesting-code-review/SKILL.md +273 -0
- package/.agent/skills/research-paper-writing/SKILL.md +2367 -0
- package/.agent/skills/research-paper-writing/references/autoreason-methodology.md +394 -0
- package/.agent/skills/research-paper-writing/references/checklists.md +434 -0
- package/.agent/skills/research-paper-writing/references/citation-workflow.md +563 -0
- package/.agent/skills/research-paper-writing/references/experiment-patterns.md +728 -0
- package/.agent/skills/research-paper-writing/references/human-evaluation.md +476 -0
- package/.agent/skills/research-paper-writing/references/paper-types.md +481 -0
- package/.agent/skills/research-paper-writing/references/reviewer-guidelines.md +433 -0
- package/.agent/skills/research-paper-writing/references/sources.md +191 -0
- package/.agent/skills/research-paper-writing/references/writing-guide.md +474 -0
- package/.agent/skills/research-paper-writing/templates/README.md +251 -0
- package/.agent/skills/rest-graphql-debug/SKILL.md +507 -0
- package/.agent/skills/s6-container-supervision/SKILL.md +171 -0
- package/.agent/skills/scrapling/SKILL.md +328 -0
- package/.agent/skills/sherlock/SKILL.md +186 -0
- package/.agent/skills/simplify-code/SKILL.md +168 -0
- package/.agent/skills/skill-authoring/SKILL.md +158 -0
- package/.agent/skills/spike/SKILL.md +190 -0
- package/.agent/skills/subagent-driven-development/SKILL.md +345 -0
- package/.agent/skills/subagent-driven-development/references/context-budget-discipline.md +53 -0
- package/.agent/skills/subagent-driven-development/references/gates-taxonomy.md +93 -0
- package/.agent/skills/systematic-debugging/SKILL.md +360 -0
- package/.agent/skills/test-driven-development/SKILL.md +336 -0
- package/.agent/skills/video-orchestrator/SKILL.md +194 -0
- package/.agent/skills/video-orchestrator/references/examples.md +227 -0
- package/.agent/skills/video-orchestrator/references/intake.md +166 -0
- package/.agent/skills/video-orchestrator/references/kanban-setup.md +278 -0
- package/.agent/skills/video-orchestrator/references/monitoring.md +180 -0
- package/.agent/skills/video-orchestrator/references/role-archetypes.md +298 -0
- package/.agent/skills/video-orchestrator/references/tool-matrix.md +317 -0
- package/.agent/skills/web-pentest/SKILL.md +332 -0
- package/.agent/skills/web-pentest/references/bypass-techniques.md +133 -0
- package/.agent/skills/web-pentest/references/exploitation-techniques.md +204 -0
- package/.agent/skills/web-pentest/references/scope-enforcement.md +110 -0
- package/.agent/skills/web-pentest/references/vuln-taxonomy.md +81 -0
- package/.agent/skills/web-pentest/templates/authorization.md +69 -0
- package/.agent/skills/web-pentest/templates/pentest-report.md +178 -0
- package/.claude/commands/mindforge/skill-tdd.md +53 -0
- package/.claude/commands/mindforge/skills-index.md +118 -0
- package/.claude/commands/mindforge/systematic-debug.md +60 -0
- package/.mindforge/config.json +2 -2
- package/.mindforge/memory/sync-manifest.json +1 -1
- package/.mindforge/skills/arxiv/SKILL.md +294 -0
- package/.mindforge/skills/blogwatcher/SKILL.md +147 -0
- package/.mindforge/skills/code-wiki/SKILL.md +457 -0
- package/.mindforge/skills/codebase-inspection/SKILL.md +126 -0
- package/.mindforge/skills/concept-diagrams/SKILL.md +373 -0
- package/.mindforge/skills/creative-ideation/SKILL.md +162 -0
- package/.mindforge/skills/domain-intel/SKILL.md +116 -0
- package/.mindforge/skills/duckduckgo-search/SKILL.md +249 -0
- package/.mindforge/skills/github-code-review/SKILL.md +493 -0
- package/.mindforge/skills/github-issues/SKILL.md +382 -0
- package/.mindforge/skills/github-pr-workflow/SKILL.md +379 -0
- package/.mindforge/skills/jupyter-live-kernel/SKILL.md +179 -0
- package/.mindforge/skills/kanban-orchestrator/SKILL.md +227 -0
- package/.mindforge/skills/kanban-worker/SKILL.md +206 -0
- package/.mindforge/skills/meme-generation/SKILL.md +141 -0
- package/.mindforge/skills/obsidian/SKILL.md +80 -0
- package/.mindforge/skills/osint-investigation/SKILL.md +288 -0
- package/.mindforge/skills/oss-forensics/SKILL.md +421 -0
- package/.mindforge/skills/pixel-art/SKILL.md +228 -0
- package/.mindforge/skills/plan/SKILL.md +350 -0
- package/.mindforge/skills/requesting-code-review/SKILL.md +292 -0
- package/.mindforge/skills/research-paper-writing/SKILL.md +2384 -0
- package/.mindforge/skills/scrapling/SKILL.md +345 -0
- package/.mindforge/skills/sherlock/SKILL.md +203 -0
- package/.mindforge/skills/simplify-code/SKILL.md +187 -0
- package/.mindforge/skills/spike/SKILL.md +209 -0
- package/.mindforge/skills/subagent-driven-development/SKILL.md +364 -0
- package/.mindforge/skills/systematic-debugging/SKILL.md +379 -0
- package/.mindforge/skills/test-driven-development/SKILL.md +355 -0
- package/.mindforge/skills/web-pentest/SKILL.md +327 -0
- package/CHANGELOG.md +88 -0
- package/MINDFORGE.md +3 -3
- package/README.md +38 -3
- package/RELEASENOTES.md +100 -0
- package/bin/dashboard/api-router.js +10 -1
- package/bin/governance/approve.js +5 -1
- package/bin/memory/federated-sync.js +11 -2
- package/bin/memory/knowledge-capture.js +10 -1
- package/bin/memory/pillar-health-tracker.js +9 -1
- package/bin/review/ads-engine.js +2 -2
- package/bin/security/trust-boundaries.js +5 -0
- package/docs/getting-started.md +42 -5
- package/package.json +1 -1
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: duckduckgo-search
|
|
3
|
+
description: "Free web search via DuckDuckGo — text, news, images, videos. No API key needed. Prefer the `ddgs` CLI when installed; use the Python DDGS library only after verifying that `ddgs` is available in the current runtime."
|
|
4
|
+
version: 1.3.0
|
|
5
|
+
status: stable
|
|
6
|
+
min_mindforge_version: 11.5.1
|
|
7
|
+
triggers: duckduckgo search, DDG search, web search duckduckgo, privacy search, duckduckgo web search, ddg query, search with duckduckgo, duckduckgo lookup, ddg web search, private web search, duckduckgo query, ddg search tool
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# DuckDuckGo Search
|
|
11
|
+
|
|
12
|
+
Free web search using DuckDuckGo. **No API key required.**
|
|
13
|
+
|
|
14
|
+
Preferred when `web_search` is unavailable or unsuitable (for example when `FIRECRAWL_API_KEY` is not set). Can also be used as a standalone search path when DuckDuckGo results are specifically desired.
|
|
15
|
+
|
|
16
|
+
## Detection Flow
|
|
17
|
+
|
|
18
|
+
Check what is actually available before choosing an approach:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Check CLI availability
|
|
22
|
+
command -v ddgs >/dev/null && echo "DDGS_CLI=installed" || echo "DDGS_CLI=missing"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Decision tree:
|
|
26
|
+
1. If `ddgs` CLI is installed, prefer `terminal` + `ddgs`
|
|
27
|
+
2. If `ddgs` CLI is missing, do not assume `execute_code` can import `ddgs`
|
|
28
|
+
3. If the user wants DuckDuckGo specifically, install `ddgs` first in the relevant environment
|
|
29
|
+
4. Otherwise fall back to built-in web/browser tools
|
|
30
|
+
|
|
31
|
+
Important runtime note:
|
|
32
|
+
- Terminal and `execute_code` are separate runtimes
|
|
33
|
+
- A successful shell install does not guarantee `execute_code` can import `ddgs`
|
|
34
|
+
- Never assume third-party Python packages are preinstalled inside `execute_code`
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
Install `ddgs` only when DuckDuckGo search is specifically needed and the runtime does not already provide it.
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Python package + CLI entrypoint
|
|
42
|
+
pip install ddgs
|
|
43
|
+
|
|
44
|
+
# Verify CLI
|
|
45
|
+
ddgs --help
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
If a workflow depends on Python imports, verify that same runtime can import `ddgs` before using `from ddgs import DDGS`.
|
|
49
|
+
|
|
50
|
+
## Method 1: CLI Search (Preferred)
|
|
51
|
+
|
|
52
|
+
Use the `ddgs` command via `terminal` when it exists. This is the preferred path because it avoids assuming the `execute_code` sandbox has the `ddgs` Python package installed.
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Text search
|
|
56
|
+
ddgs text -q "python async programming" -m 5
|
|
57
|
+
|
|
58
|
+
# News search
|
|
59
|
+
ddgs news -q "artificial intelligence" -m 5
|
|
60
|
+
|
|
61
|
+
# Image search
|
|
62
|
+
ddgs images -q "landscape photography" -m 10
|
|
63
|
+
|
|
64
|
+
# Video search
|
|
65
|
+
ddgs videos -q "python tutorial" -m 5
|
|
66
|
+
|
|
67
|
+
# With region filter
|
|
68
|
+
ddgs text -q "best restaurants" -m 5 -r us-en
|
|
69
|
+
|
|
70
|
+
# Recent results only (d=day, w=week, m=month, y=year)
|
|
71
|
+
ddgs text -q "latest AI news" -m 5 -t w
|
|
72
|
+
|
|
73
|
+
# JSON output for parsing
|
|
74
|
+
ddgs text -q "fastapi tutorial" -m 5 -o json
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### CLI Flags
|
|
78
|
+
|
|
79
|
+
| Flag | Description | Example |
|
|
80
|
+
|------|-------------|---------|
|
|
81
|
+
| `-q` | Query — **required** | `-q "search terms"` |
|
|
82
|
+
| `-m` | Max results | `-m 5` |
|
|
83
|
+
| `-r` | Region | `-r us-en` |
|
|
84
|
+
| `-t` | Time limit | `-t w` (week) |
|
|
85
|
+
| `-s` | Safe search | `-s off` |
|
|
86
|
+
| `-o` | Output format | `-o json` |
|
|
87
|
+
|
|
88
|
+
## Method 2: Python API (Only After Verification)
|
|
89
|
+
|
|
90
|
+
Use the `DDGS` class in `execute_code` or another Python runtime only after verifying that `ddgs` is installed there. Do not assume `execute_code` includes third-party packages by default.
|
|
91
|
+
|
|
92
|
+
Safe wording:
|
|
93
|
+
- "Use `execute_code` with `ddgs` after installing or verifying the package if needed"
|
|
94
|
+
|
|
95
|
+
Avoid saying:
|
|
96
|
+
- "`execute_code` includes `ddgs`"
|
|
97
|
+
- "DuckDuckGo search works by default in `execute_code`"
|
|
98
|
+
|
|
99
|
+
**Important:** `max_results` must always be passed as a **keyword argument** — positional usage raises an error on all methods.
|
|
100
|
+
|
|
101
|
+
### Text Search
|
|
102
|
+
|
|
103
|
+
Best for: general research, companies, documentation.
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
from ddgs import DDGS
|
|
107
|
+
|
|
108
|
+
with DDGS() as ddgs:
|
|
109
|
+
for r in ddgs.text("python async programming", max_results=5):
|
|
110
|
+
print(r["title"])
|
|
111
|
+
print(r["href"])
|
|
112
|
+
print(r.get("body", "")[:200])
|
|
113
|
+
print()
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Returns: `title`, `href`, `body`
|
|
117
|
+
|
|
118
|
+
### News Search
|
|
119
|
+
|
|
120
|
+
Best for: current events, breaking news, latest updates.
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
from ddgs import DDGS
|
|
124
|
+
|
|
125
|
+
with DDGS() as ddgs:
|
|
126
|
+
for r in ddgs.news("AI regulation 2026", max_results=5):
|
|
127
|
+
print(r["date"], "-", r["title"])
|
|
128
|
+
print(r.get("source", ""), "|", r["url"])
|
|
129
|
+
print(r.get("body", "")[:200])
|
|
130
|
+
print()
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Returns: `date`, `title`, `body`, `url`, `image`, `source`
|
|
134
|
+
|
|
135
|
+
### Image Search
|
|
136
|
+
|
|
137
|
+
Best for: visual references, product images, diagrams.
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
from ddgs import DDGS
|
|
141
|
+
|
|
142
|
+
with DDGS() as ddgs:
|
|
143
|
+
for r in ddgs.images("semiconductor chip", max_results=5):
|
|
144
|
+
print(r["title"])
|
|
145
|
+
print(r["image"])
|
|
146
|
+
print(r.get("thumbnail", ""))
|
|
147
|
+
print(r.get("source", ""))
|
|
148
|
+
print()
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Returns: `title`, `image`, `thumbnail`, `url`, `height`, `width`, `source`
|
|
152
|
+
|
|
153
|
+
### Video Search
|
|
154
|
+
|
|
155
|
+
Best for: tutorials, demos, explainers.
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
from ddgs import DDGS
|
|
159
|
+
|
|
160
|
+
with DDGS() as ddgs:
|
|
161
|
+
for r in ddgs.videos("FastAPI tutorial", max_results=5):
|
|
162
|
+
print(r["title"])
|
|
163
|
+
print(r.get("content", ""))
|
|
164
|
+
print(r.get("duration", ""))
|
|
165
|
+
print(r.get("provider", ""))
|
|
166
|
+
print(r.get("published", ""))
|
|
167
|
+
print()
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Returns: `title`, `content`, `description`, `duration`, `provider`, `published`, `statistics`, `uploader`
|
|
171
|
+
|
|
172
|
+
### Quick Reference
|
|
173
|
+
|
|
174
|
+
| Method | Use When | Key Fields |
|
|
175
|
+
|--------|----------|------------|
|
|
176
|
+
| `text()` | General research, companies | title, href, body |
|
|
177
|
+
| `news()` | Current events, updates | date, title, source, body, url |
|
|
178
|
+
| `images()` | Visuals, diagrams | title, image, thumbnail, url |
|
|
179
|
+
| `videos()` | Tutorials, demos | title, content, duration, provider |
|
|
180
|
+
|
|
181
|
+
## Workflow: Search then Extract
|
|
182
|
+
|
|
183
|
+
DuckDuckGo returns titles, URLs, and snippets — not full page content. To get full page content, search first and then extract the most relevant URL with `web_extract`, browser tools, or curl.
|
|
184
|
+
|
|
185
|
+
CLI example:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
ddgs text -q "fastapi deployment guide" -m 3 -o json
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
Python example, only after verifying `ddgs` is installed in that runtime:
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
from ddgs import DDGS
|
|
195
|
+
|
|
196
|
+
with DDGS() as ddgs:
|
|
197
|
+
results = list(ddgs.text("fastapi deployment guide", max_results=3))
|
|
198
|
+
for r in results:
|
|
199
|
+
print(r["title"], "->", r["href"])
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Then extract the best URL with `web_extract` or another content-retrieval tool.
|
|
203
|
+
|
|
204
|
+
## Limitations
|
|
205
|
+
|
|
206
|
+
- **Rate limiting**: DuckDuckGo may throttle after many rapid requests. Add a short delay between searches if needed.
|
|
207
|
+
- **No content extraction**: `ddgs` returns snippets, not full page content. Use `web_extract`, browser tools, or curl for the full article/page.
|
|
208
|
+
- **Results quality**: Generally good but less configurable than Firecrawl's search.
|
|
209
|
+
- **Availability**: DuckDuckGo may block requests from some cloud IPs. If searches return empty, try different keywords or wait a few seconds.
|
|
210
|
+
- **Field variability**: Return fields may vary between results or `ddgs` versions. Use `.get()` for optional fields to avoid `KeyError`.
|
|
211
|
+
- **Separate runtimes**: A successful `ddgs` install in terminal does not automatically mean `execute_code` can import it.
|
|
212
|
+
|
|
213
|
+
## Troubleshooting
|
|
214
|
+
|
|
215
|
+
| Problem | Likely Cause | What To Do |
|
|
216
|
+
|---------|--------------|------------|
|
|
217
|
+
| `ddgs: command not found` | CLI not installed in the shell environment | Install `ddgs`, or use built-in web/browser tools instead |
|
|
218
|
+
| `ModuleNotFoundError: No module named 'ddgs'` | Python runtime does not have the package installed | Do not use Python DDGS there until that runtime is prepared |
|
|
219
|
+
| Search returns nothing | Temporary rate limiting or poor query | Wait a few seconds, retry, or adjust the query |
|
|
220
|
+
| CLI works but `execute_code` import fails | Terminal and `execute_code` are different runtimes | Keep using CLI, or separately prepare the Python runtime |
|
|
221
|
+
|
|
222
|
+
## Pitfalls
|
|
223
|
+
|
|
224
|
+
- **`max_results` is keyword-only**: `ddgs.text("query", 5)` raises an error. Use `ddgs.text("query", max_results=5)`.
|
|
225
|
+
- **Do not assume the CLI exists**: Check `command -v ddgs` before using it.
|
|
226
|
+
- **Do not assume `execute_code` can import `ddgs`**: `from ddgs import DDGS` may fail with `ModuleNotFoundError` unless that runtime was prepared separately.
|
|
227
|
+
- **Package name**: The package is `ddgs` (previously `duckduckgo-search`). Install with `pip install ddgs`.
|
|
228
|
+
- **Don't confuse `-q` and `-m`** (CLI): `-q` is for the query, `-m` is for max results count.
|
|
229
|
+
- **Empty results**: If `ddgs` returns nothing, it may be rate-limited. Wait a few seconds and retry.
|
|
230
|
+
|
|
231
|
+
## Validated With
|
|
232
|
+
|
|
233
|
+
Validated examples against `ddgs==9.11.2` semantics. Skill guidance now treats CLI availability and Python import availability as separate concerns so the documented workflow matches actual runtime behavior.
|
|
234
|
+
|
|
235
|
+
## Mandatory actions when this skill is active
|
|
236
|
+
|
|
237
|
+
Before applying this skill:
|
|
238
|
+
- [ ] Read the task requirements fully before acting
|
|
239
|
+
- [ ] Confirm you understand the goal and constraints
|
|
240
|
+
- [ ] Check for existing work or prior context in the codebase
|
|
241
|
+
|
|
242
|
+
While working:
|
|
243
|
+
- [ ] Follow the methodology described above step by step
|
|
244
|
+
- [ ] Document any decisions or findings as you go
|
|
245
|
+
|
|
246
|
+
After completing:
|
|
247
|
+
- [ ] Self-check: does the output satisfy the original requirement?
|
|
248
|
+
- [ ] Verify no regressions or unintended side effects
|
|
249
|
+
|