opencode-skills-collection 3.0.37 → 3.0.39

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 (73) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +13 -1
  2. package/bundled-skills/2slides-ppt-generator/SKILL.md +786 -0
  3. package/bundled-skills/2slides-ppt-generator/references/api-reference.md +499 -0
  4. package/bundled-skills/2slides-ppt-generator/references/mcp-integration.md +282 -0
  5. package/bundled-skills/2slides-ppt-generator/references/pricing.md +195 -0
  6. package/bundled-skills/2slides-ppt-generator/scripts/api_constants.py +87 -0
  7. package/bundled-skills/2slides-ppt-generator/scripts/create_pdf_slides.py +159 -0
  8. package/bundled-skills/2slides-ppt-generator/scripts/download_slides_pages_voices.py +157 -0
  9. package/bundled-skills/2slides-ppt-generator/scripts/generate_narration.py +197 -0
  10. package/bundled-skills/2slides-ppt-generator/scripts/generate_slides.py +247 -0
  11. package/bundled-skills/2slides-ppt-generator/scripts/get_job_status.py +106 -0
  12. package/bundled-skills/2slides-ppt-generator/scripts/search_themes.py +137 -0
  13. package/bundled-skills/anti-sycophancy/README.md +86 -0
  14. package/bundled-skills/anti-sycophancy/SKILL.md +40 -0
  15. package/bundled-skills/antigravity-agent-manager/SKILL.md +112 -0
  16. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  17. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  18. package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
  19. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  20. package/bundled-skills/docs/sources/sources.md +1 -0
  21. package/bundled-skills/docs/users/bundles.md +1 -1
  22. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  23. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  24. package/bundled-skills/docs/users/getting-started.md +1 -1
  25. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  26. package/bundled-skills/docs/users/usage.md +4 -4
  27. package/bundled-skills/docs/users/visual-guide.md +4 -4
  28. package/bundled-skills/event-staffing-compliance/SKILL.md +91 -0
  29. package/bundled-skills/event-staffing-ordering/SKILL.md +119 -0
  30. package/bundled-skills/examprep-ai/SKILL.md +446 -0
  31. package/bundled-skills/hasdata/SKILL.md +107 -0
  32. package/bundled-skills/hasdata/references/code-recipes.md +150 -0
  33. package/bundled-skills/hasdata/references/ecommerce.md +116 -0
  34. package/bundled-skills/hasdata/references/jobs.md +111 -0
  35. package/bundled-skills/hasdata/references/local-business.md +145 -0
  36. package/bundled-skills/hasdata/references/real-estate.md +84 -0
  37. package/bundled-skills/hasdata/references/scraper-jobs.md +252 -0
  38. package/bundled-skills/hasdata/references/search.md +154 -0
  39. package/bundled-skills/hasdata/references/travel.md +202 -0
  40. package/bundled-skills/hasdata/references/web-scraping.md +159 -0
  41. package/bundled-skills/hasdata/references/youtube.md +186 -0
  42. package/bundled-skills/hasdata-cli/SKILL.md +169 -0
  43. package/bundled-skills/hasdata-cli/references/all-commands.md +107 -0
  44. package/bundled-skills/hasdata-cli/references/ecommerce.md +106 -0
  45. package/bundled-skills/hasdata-cli/references/enrichment.md +227 -0
  46. package/bundled-skills/hasdata-cli/references/jobs.md +84 -0
  47. package/bundled-skills/hasdata-cli/references/local-business.md +123 -0
  48. package/bundled-skills/hasdata-cli/references/real-estate.md +126 -0
  49. package/bundled-skills/hasdata-cli/references/search.md +122 -0
  50. package/bundled-skills/hasdata-cli/references/travel.md +102 -0
  51. package/bundled-skills/hasdata-cli/references/web-scraping.md +181 -0
  52. package/bundled-skills/hasdata-cli/references/youtube.md +145 -0
  53. package/bundled-skills/linkedin-content-generator/SKILL.md +492 -0
  54. package/bundled-skills/linkedin-content-generator/scripts/generate_calendar.py +82 -0
  55. package/bundled-skills/linkedin-content-generator/scripts/generate_carousel.py +69 -0
  56. package/bundled-skills/linkedin-content-generator/scripts/generate_newsletter.py +64 -0
  57. package/bundled-skills/linkedin-content-generator/scripts/generate_post.py +77 -0
  58. package/bundled-skills/linkedin-content-generator/scripts/memory.md +49 -0
  59. package/bundled-skills/linkedin-content-generator/scripts/memory_manager.py +134 -0
  60. package/bundled-skills/linkedin-content-generator/scripts/utils.py +96 -0
  61. package/bundled-skills/permission-manager/README.md +22 -0
  62. package/bundled-skills/permission-manager/SKILL.md +54 -0
  63. package/bundled-skills/skill-suggester/README.md +14 -0
  64. package/bundled-skills/skill-suggester/SKILL.md +69 -0
  65. package/bundled-skills/smart-git-automation/README.md +31 -0
  66. package/bundled-skills/smart-git-automation/SKILL.md +96 -0
  67. package/bundled-skills/vercel-optimize/lib/cost-coverage.mjs +3 -1
  68. package/bundled-skills/vercel-optimize/lib/render-report.mjs +2 -2
  69. package/bundled-skills/vercel-optimize/lib/util.mjs +7 -0
  70. package/bundled-skills/vercel-optimize/lib/verify-claim.mjs +2 -7
  71. package/bundled-skills/vercel-optimize/lib/workspace-resolver.mjs +2 -1
  72. package/package.json +1 -1
  73. package/skills_index.json +268 -0
@@ -0,0 +1,446 @@
1
+ ---
2
+ name: examprep-ai
3
+ description: "Exam preparation assistant that converts syllabi, past papers, or notes into a ranked High Score Roadmap. Covers theory, numericals, MCQs, coding, and lab prep, ordered Easy → Medium → Hard. Use for last-minute revision, important topics, and question prediction."
4
+ risk: safe
5
+ source: community
6
+ date_added: "2026-06-05"
7
+ allowed-tools: Read, Glob, Grep
8
+ author: WHOISABHISHEKADHIKARI
9
+ user-invokable: true
10
+ tags:
11
+ - education
12
+ - exam-prep
13
+ - study-guide
14
+ - question-prediction
15
+ - syllabus-analysis
16
+ - revision
17
+ - students
18
+ ---
19
+
20
+ # ExamPrep AI
21
+
22
+ ## 🎯 Selective Reading Rule — Read ONLY the section matching the request
23
+
24
+ | What the student asks for | Jump to |
25
+ |--------------------------|---------|
26
+ | Full roadmap / "what to study" / syllabus + past papers uploaded | [Full Roadmap Mode](#full-roadmap-mode) |
27
+ | Theory questions only / definitions / explanations | [Theory Notes](#theory-notes) |
28
+ | Numerical / calculation / derivation problems | [Numerical Notes](#numerical-notes) |
29
+ | MCQ / True-False / objective practice | [MCQ Notes](#mcq-notes) |
30
+ | Coding / algorithm / trace / debug | [Coding Notes](#coding-notes) |
31
+ | Lab / practical / viva prep | [Lab Notes](#lab-notes) |
32
+ | Flashcards only | [Flashcards](#flashcards) |
33
+ | Mock exam paper | [Predicted Exam Paper](#predicted-exam-paper) |
34
+ | Readiness check / score projection | [Exam Readiness Dashboard](#exam-readiness-dashboard) |
35
+
36
+ **Rule:** Read the matched section and the [Shared Foundations](#shared-foundations) block.
37
+ Skip everything else. Do not load all sections for a focused request.
38
+
39
+ ---
40
+
41
+ ## Shared Foundations
42
+
43
+ > Load this block for every request. It is small and always needed.
44
+
45
+ ### Difficulty Scale (Universal)
46
+
47
+ | Level | Signal Words | Student Goal |
48
+ |-------|-------------|--------------|
49
+ | 🟩 Easy | define, state, list, name, identify, what is | Guaranteed marks — study first |
50
+ | 🟨 Medium | explain, describe, compare, calculate, implement, trace | Mid-paper marks |
51
+ | 🟥 Hard | derive, prove, optimize, analyze, evaluate, design, why | Score separators — study last |
52
+
53
+ **Order rule:** Always present Easy → Medium → Hard. Never reverse.
54
+
55
+ ### Intake (ask once, then proceed)
56
+
57
+ 1. Collect at least one of: syllabus, past question papers, notes, or subject name + university.
58
+ 2. Confirm course code if OCR confidence < 80%: *"I detected [X] — is this correct?"*
59
+ 3. Ask time available. If no answer → default **Standard Mode (6–12 hrs)** and state the assumption.
60
+
61
+ ### Study Modes
62
+
63
+ | Mode | Time | Load |
64
+ |------|------|------|
65
+ | 🚨 Emergency | 1–2 hrs | 🟩 Easy only, top 10 questions |
66
+ | ⚡ Sprint | 3–5 hrs | 🟩 + 🟨, top 25 questions |
67
+ | 📚 Standard *(default)* | 6–12 hrs | All difficulties, full roadmap |
68
+ | 🗓️ Advance | Days+ | Daily schedule + mock papers |
69
+
70
+ ### Syllabus Guardrail
71
+
72
+ - Map every question to a syllabus unit (≥ 70% match → `[IN SYLLABUS]`).
73
+ - Never generate content for topics absent from the uploaded syllabus.
74
+ - Out-of-syllabus items → flag, ask student before including.
75
+
76
+ ### Probability Score
77
+
78
+ ```
79
+ Score = (Frequency × 0.40) + (Recency × 0.30) + (Unit Weight × 0.20) + (Marks × 0.10)
80
+ ```
81
+ - Frequency: appearances ÷ max appearances × 100
82
+ - Recency: last 2 yrs = 100 · 3–4 yrs = 60 · older = 30
83
+ - Unit Weight: core = 100 · elective = 50
84
+ - Marks: 10+ = 100 · 5–9 = 60 · 2–4 = 30 · MCQ = 20
85
+
86
+ ## Limitations
87
+
88
+ - This skill supports study planning and revision, but it cannot guarantee
89
+ exam questions, marks, grading outcomes, or instructor expectations.
90
+ - Probability scores are heuristics based on supplied syllabi, notes, and past
91
+ papers; sparse, outdated, or incomplete inputs reduce reliability.
92
+ - The skill should not fabricate syllabus coverage. If source material is
93
+ missing, ambiguous, or out of scope, ask the student to confirm before
94
+ adding predicted content.
95
+ - It is not a substitute for official course guidance, accessibility
96
+ accommodations, academic-integrity policies, or instructor feedback.
97
+ - Do not request or process private student records beyond the study material
98
+ needed for the current revision task.
99
+
100
+ ---
101
+
102
+ ## Full Roadmap Mode
103
+
104
+ > Use when: student uploads syllabus + past papers, or asks "what should I study?"
105
+
106
+ **Step 1 — Extract.** Pull all questions; note year/source for each.
107
+ Confirm: *"Extracted [N] questions from [M] papers for [Course]. Found: 📝[A] 🔢[B] 🔘[C] 💻[D] 🧪[E]. Proceed?"*
108
+
109
+ **Step 2 — Classify + tag difficulty.** Use the five-type table:
110
+
111
+ | Type | Identify By |
112
+ |------|------------|
113
+ | 📝 Theory | define, explain, discuss, compare, differentiate |
114
+ | 🔢 Numerical | calculate, find, solve, derive, prove, numbers in question |
115
+ | 🔘 MCQ/T-F | options listed, "true or false", "which of the following" |
116
+ | 💻 Coding | write a program, implement, trace output, algorithm, flowchart |
117
+ | 🧪 Lab | experiment, procedure, observation, aim, apparatus, viva |
118
+
119
+ **Step 3 — Build ranked tables (one per type):**
120
+
121
+ ```
122
+ | # | Question | Times | Marks | Difficulty | Unit | Priority |
123
+ |---|----------|-------|-------|------------|------|----------|
124
+ | 1 | [question text] | [N]× | [X] | 🟩/🟨/🟥 | Unit [X] | 🔥 Must / ✅ Do |
125
+ ```
126
+
127
+ **Step 4 — Generate notes** using the matching type section below.
128
+ Order: Easy across all types first → then Medium → then Hard.
129
+
130
+ **Step 5 — Coverage tracker:**
131
+ ```
132
+ Unit 1: [Name] → 📝✅ 🔢✅ 🔘⚠️ PREDICTED 💻— 🧪—
133
+ Legend: ✅ past paper ⚠️ predicted — not applicable
134
+ ```
135
+ For any gap: generate one predicted question + note, label `[PREDICTED — not from past papers]`.
136
+
137
+ **Step 6 — Offer:** *"Would you like (a) Flashcards, (b) Predicted Exam Paper, or (c) Readiness Dashboard?"*
138
+
139
+ ---
140
+
141
+ ## Theory Notes
142
+
143
+ > Use when: student asks about definitions, explanations, long-answer questions.
144
+
145
+ **🟩 Easy — Definition / List (30 sec)**
146
+ ```
147
+ 📝🟩 [Question] | [N]× | [X] marks
148
+ ─────────────────────────────────
149
+ ANSWER: [2–4 bullets max]
150
+ KEY TERM: [single most important word]
151
+ MEMORY HOOK: [one-liner trick]
152
+ ```
153
+
154
+ **🟨 Medium — Explanation / Comparison (2 min)**
155
+ ```
156
+ 📝🟨 [Question] | [N]× | [X] marks
157
+ ─────────────────────────────────
158
+ DEFINITION: [1 sentence]
159
+ MAIN POINTS: • P1 • P2 • P3 • P4
160
+ DIAGRAM: [text description — student sketches from this]
161
+ EXAM TIP: [what examiner rewards]
162
+ ```
163
+
164
+ **🟥 Hard — Discussion / Evaluation (5 min read · 10 min write)**
165
+ ```
166
+ 📝🟥 [Question] | [N]× | [X] marks | Unit [X]
167
+ ─────────────────────────────────────────────
168
+ INTRO: [2–3 sentences]
169
+ SECTION 1 — [subtopic]: • point • point
170
+ SECTION 2 — [subtopic]: • point • point
171
+ SECTION 3 — [subtopic]: • point • point
172
+ DIAGRAM: [sketch description]
173
+ CONCLUSION: [1–2 lines]
174
+ MARKS HINT: Intro ~2 · each section ~3 · diagram ~2 · conclusion ~1
175
+ MEMORY: [acronym or order trick]
176
+ ```
177
+
178
+ ---
179
+
180
+ ## Numerical Notes
181
+
182
+ > Use when: student asks for calculation problems, derivations, formulas.
183
+
184
+ **🟩 Easy — Direct formula plug-in**
185
+ ```
186
+ 🔢🟩 [Problem Type] | [N]× | [X] marks
187
+ ──────────────────────────────────────
188
+ FORMULA: [clearly written]
189
+ GIVEN → FIND: [what's given / what to find]
190
+ WORKED EXAMPLE:
191
+ Step 1: [substitute]
192
+ Step 2: [calculate]
193
+ Answer: [result + unit]
194
+ COMMON MISTAKE: [the one error students make]
195
+ MEMORY HOOK: [how to remember formula]
196
+ ```
197
+
198
+ **🟨 Medium — Multi-step with condition**
199
+ ```
200
+ 🔢🟨 [Problem Type] | [N]× | [X] marks
201
+ ──────────────────────────────────────
202
+ FORMULA(S): [all needed]
203
+ APPROACH: [which formula when — decision rule]
204
+ WORKED EXAMPLE:
205
+ Step 1: [setup / draw table]
206
+ Step 2: [apply condition]
207
+ Step 3: [calculate]
208
+ Step 4: [verify / interpret]
209
+ Answer: [result]
210
+ WATCH OUT: [condition that trips students]
211
+ EXAM TIP: [show working — marks for method too]
212
+ ```
213
+
214
+ **🟥 Hard — Derivation / Proof**
215
+ ```
216
+ 🔢🟥 [Problem / Derivation] | [N]× | [X] marks
217
+ ───────────────────────────────────────────────
218
+ PREREQUISITES: [what student must know first]
219
+ DERIVATION:
220
+ Step 1: [first principles]
221
+ Step 2: [key transformation]
222
+ ...Final: [result / QED]
223
+ WORKED EXAMPLE: [concrete numbers applied]
224
+ MARKS BREAKDOWN: [method marks vs answer marks]
225
+ COMMON ERRORS: [2–3 errors that lose marks]
226
+ ```
227
+
228
+ ---
229
+
230
+ ## MCQ Notes
231
+
232
+ > Use when: student asks for MCQ practice, true/false, objective questions.
233
+
234
+ **🟩 Easy — Recall**
235
+ ```
236
+ 🔘🟩 [Question] | [N]×
237
+ ──────────────────────
238
+ CORRECT: [option + text]
239
+ WHY CORRECT: [one sentence]
240
+ WHY OTHERS WRONG: • A: ... • B: ... • C: ...
241
+ KEY FACT: [the one thing this tests]
242
+ ```
243
+
244
+ **🟨 Medium — Application**
245
+ ```
246
+ 🔘🟨 [Question] | [N]×
247
+ ──────────────────────
248
+ CORRECT: [option + text]
249
+ REASONING: [identify concept] → [apply rule] → [eliminate wrong]
250
+ TRAP: [why students pick the wrong answer]
251
+ ```
252
+
253
+ **🟥 Hard — Trap / Edge-case**
254
+ ```
255
+ 🔘🟥 [Question] | [N]×
256
+ ──────────────────────
257
+ CORRECT: [option + text]
258
+ WHY TRICKY: [what assumption is exploited]
259
+ ELIMINATE: • Drop [A]: [reason] • Drop [B]: [reason] • Keep [C]: [reason]
260
+ RULE: [the precise rule that settles this type]
261
+ ```
262
+
263
+ ---
264
+
265
+ ## Coding Notes
266
+
267
+ > Use when: student asks to write programs, trace output, implement algorithms, debug.
268
+
269
+ **🟩 Easy — Syntax / Pattern recall**
270
+ ```
271
+ 💻🟩 [Task] | [N]× | [X] marks
272
+ ────────────────────────────────
273
+ PATTERN: [algorithm/structure name]
274
+ TEMPLATE: [minimal working skeleton — pseudocode or language-specific]
275
+ KEY LINES: [1–2 lines examiner looks for]
276
+ MEMORY HOOK: [how to recall under pressure]
277
+ ```
278
+
279
+ **🟨 Medium — Logic construction**
280
+ ```
281
+ 💻🟨 [Task] | [N]× | [X] marks
282
+ ────────────────────────────────
283
+ APPROACH:
284
+ 1. [sub-tasks] 2. [data structures] 3. [step-by-step logic]
285
+ ANNOTATED CODE: [code with inline comments]
286
+ EDGE CASES: [inputs needing special handling]
287
+ EXAM TIP: [comment code — examiners reward clarity]
288
+ ```
289
+
290
+ **🟥 Hard — Optimize / Trace / Debug**
291
+ ```
292
+ 💻🟥 [Task] | [N]× | [X] marks | TYPE: [Optimize / Trace / Debug]
293
+ ──────────────────────────────────────────────────────────────────
294
+ TRACE → Input | Trace Table (Iter · VarA · VarB · Output) | Final Output
295
+ OPTIMIZE → Naive O(?) → Optimized O(?) | Key Insight: [what enables it]
296
+ DEBUG → Bug Location | Bug Type | Fix | Why it works
297
+ ```
298
+
299
+ ---
300
+
301
+ ## Lab Notes
302
+
303
+ > Use when: student asks about experiments, procedures, observations, viva prep.
304
+
305
+ **🟩 Easy — Name / Identify**
306
+ ```
307
+ 🧪🟩 [Experiment] | [N]×
308
+ ─────────────────────────
309
+ AIM: [one sentence]
310
+ APPARATUS: [bullet list]
311
+ RESULT: [expected outcome to state]
312
+ KEY TERM: [most important term]
313
+ ```
314
+
315
+ **🟨 Medium — Write procedure**
316
+ ```
317
+ 🧪🟨 [Experiment] | [N]×
318
+ ─────────────────────────
319
+ AIM / APPARATUS: [brief]
320
+ PROCEDURE: Step 1 → Step 2 → Step 3 → Step 4
321
+ OBS TABLE: [column headers + example row]
322
+ RESULT: [how to state conclusion]
323
+ PRECAUTIONS: [2–3 points examiners look for]
324
+ ```
325
+
326
+ **🟥 Hard — Analysis / Viva**
327
+ ```
328
+ 🧪🟥 [Experiment] | [N]×
329
+ ─────────────────────────
330
+ ANALYSIS: • result in context • formula used • source of error
331
+ VIVA:
332
+ Q1: [question] A: [2–3 sentence answer]
333
+ Q2: [question] A: [2–3 sentence answer]
334
+ Q3: [question] A: [2–3 sentence answer]
335
+ EXAM TIP: [what viva examiner always asks]
336
+ ```
337
+
338
+ ---
339
+
340
+ ## Flashcards
341
+
342
+ > Use when: student asks for flashcards or quick-recall cards.
343
+
344
+ One card per question:
345
+ ```
346
+ [TYPE EMOJI][DIFFICULTY EMOJI]
347
+ Q: [question]
348
+ A: [answer in 1–2 lines]
349
+ Key: [formula / term / pattern — if applicable]
350
+ ```
351
+
352
+ ---
353
+
354
+ ## Predicted Exam Paper
355
+
356
+ > Use when: student asks for a mock paper or practice test.
357
+
358
+ Generate one paper with all types represented. Label every question with type + difficulty.
359
+
360
+ ```
361
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
362
+ AI PREDICTION — Not official. For practice only.
363
+ Course: [Name] | Total Marks: [X] | Time: [X] hrs
364
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
365
+
366
+ SECTION A — Short / Objective [🟩 Easy]
367
+ [MCQ / T-F / 1-mark definitions]
368
+
369
+ SECTION B — Medium Answer [🟨 Medium]
370
+ [Theory explanations + medium numericals]
371
+
372
+ SECTION C — Long Answer [🟥 Hard]
373
+ [Long theory + derivations + coding]
374
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
375
+ ```
376
+
377
+ ---
378
+
379
+ ## Exam Readiness Dashboard
380
+
381
+ > Use when: student asks for a score estimate or readiness check.
382
+
383
+ ```
384
+ 📊 EXAM READINESS
385
+ ──────────────────────────────────────────────────────
386
+ TYPE EASY MEDIUM HARD OVERALL
387
+ 📝 Theory [X]% [X]% [X]% [X]%
388
+ 🔢 Numerical [X]% [X]% [X]% [X]%
389
+ 🔘 MCQ/T-F [X]% [X]% [X]% [X]%
390
+ 💻 Coding [X]% [X]% [X]% [X]%
391
+ 🧪 Lab [X]% [X]% [X]% [X]%
392
+ ──────────────────────────────────────────────────────
393
+ PREPAREDNESS : [X]%
394
+ MARKS RANGE : [Low]–[High] out of [Total]
395
+ ──────────────────────────────────────────────────────
396
+ STRONG : [types + topics]
397
+ WEAK → FOCUS : [types + topics]
398
+ ──────────────────────────────────────────────────────
399
+ Confidence: [High/Medium/Low] | Based on: [N] papers
400
+ ```
401
+
402
+ ---
403
+
404
+ ## Worked Example
405
+
406
+ > Concrete before/after demonstrating the skill.
407
+
408
+ **Input:**
409
+ > "I have my OS exam tomorrow. Here's the syllabus [paste] and 3 past papers [upload]. I have 4 hours."
410
+
411
+ **Skill routes to:** Full Roadmap Mode → Sprint Mode (3–5 hrs)
412
+
413
+ **Output sequence:**
414
+ 1. Extraction confirm: *"Extracted 47 questions from 3 papers for Operating System (CSC-207). Found: 📝18 🔢12 🔘10 💻7 🧪0. Proceed?"*
415
+ 2. Ranked tables for all types, Easy → Medium only (Sprint Mode skips Hard except top-1 per unit)
416
+ 3. Notes for top 25 questions — Easy across all types first, then Medium
417
+ 4. Coverage tracker showing which units are covered
418
+ 5. Offer: flashcards, mock paper, or dashboard
419
+
420
+ ---
421
+
422
+ ## Quality Checks (run before every output)
423
+
424
+ | Check | Rule |
425
+ |-------|------|
426
+ | Syllabus compliance | Every note maps to a syllabus unit |
427
+ | Difficulty order | Easy before Medium before Hard — never reversed |
428
+ | Numerical accuracy | Worked examples compute correctly |
429
+ | Code validity | Snippets are syntactically correct |
430
+ | Note length | Readable in ≤ 2–5 min per note |
431
+ | No hallucination | No facts absent from uploaded materials |
432
+ | Course code confirmed | OCR-detected code verified by student |
433
+
434
+ ---
435
+
436
+ ## Error Responses
437
+
438
+ | Situation | Say |
439
+ |-----------|-----|
440
+ | No syllabus | "Without a syllabus I can't guarantee on-topic notes. Paste your unit list as text?" |
441
+ | 1 past paper only | "One paper = lower prediction confidence. More papers = better accuracy." |
442
+ | OCR failure | "Couldn't read part of the image. Can you retype those questions?" |
443
+ | Out-of-syllabus question | "This doesn't match your syllabus — skipping it. Want me to include it anyway?" |
444
+ | Mixed subjects | "Found questions from two subjects. Should I separate them?" |
445
+ | No time given | "Defaulting to Standard Mode (6–12 hrs). Tell me if you have less time." |
446
+ | No numericals/coding found | "No numerical/coding questions found. Share a paper that includes them if your exam has these."
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: hasdata
3
+ description: Use HasData APIs for web scraping and structured web data extraction.
4
+ risk: safe
5
+ source: official
6
+ source_type: official
7
+ source_repo: HasData/hasdata-cli
8
+ license: MIT
9
+ license_source: "https://github.com/HasData/hasdata-cli/blob/main/LICENSE"
10
+ date_added: "2026-06-04"
11
+ ---
12
+
13
+ # HasData
14
+
15
+ Cloud platform for extracting public web data. One API key, three execution modes. All endpoints sit under `https://api.hasdata.com` and authenticate with `x-api-key`.
16
+
17
+ ```bash
18
+ curl -G 'https://api.hasdata.com/scrape/google/serp' \
19
+ --data-urlencode 'q=coffee' \
20
+ -H 'x-api-key: <your-api-key>'
21
+ ```
22
+
23
+ `401` invalid key, `403` quota exhausted, `429` concurrency cap, `500` server error (retry).
24
+
25
+ ## When to Use
26
+
27
+ Use this skill when:
28
+
29
+ - The user needs web scraping.
30
+ - The user needs search engine results.
31
+ - The user needs structured data extraction.
32
+ - The user needs ecommerce, travel, jobs, or local business data.
33
+ - The user explicitly asks about HasData.
34
+
35
+ ## Three execution modes
36
+
37
+ | Mode | Latency | When | Endpoint |
38
+ |---|---|---|---|
39
+ | **Web Scraping API** | seconds | Arbitrary URL — JS rendering, CSS/AI extraction, screenshots | `POST /scrape/web` |
40
+ | **Scraper APIs** (sync) | seconds | Pre-parsed JSON for known platforms (Google, Amazon, Zillow, …) | `GET /scrape/<vertical>/<resource>` |
41
+ | **Scraper Jobs** (async) | minutes–hours | Bulk extraction, recursive crawling, webhook fan-out | `POST /scrapers/<slug>/jobs` |
42
+
43
+ **Decision rule.** Default to a **Scraper API** when one exists for the platform (pre-parsed JSON, no selector maintenance). Use **Web Scraping** for arbitrary URLs not covered by an API. Reach for a **Scraper Job** only when no API equivalent exists — `crawler`, `contacts`, `sec-edgar`, `amazon-bestsellers`, `amazon-product-reviews` — *or* when async fan-out + webhooks save engineering time over a paginated client loop.
44
+
45
+ ## Always-true response shape
46
+
47
+ ```json
48
+ { "requestMetadata": { "id": "…", "status": "ok", "url": "…" }, "...": "endpoint-specific" }
49
+ ```
50
+
51
+ Treat data as valid only if `requestMetadata.status === "ok"`. HTTP 200 alone isn't enough.
52
+
53
+ ## High-leverage patterns
54
+
55
+ - **SERP-first enrichment.** Google SERP can surface public snippets for company and professional-profile lookup. Use it for business or authorized research, avoid unnecessary direct scraping, and treat personal email/phone lookup as allowed only with a legitimate purpose and user authorization.
56
+ - **AI Mode + verify.** `/scrape/google/ai-mode` for the answer + references → `/scrape/web` (markdown) on each reference URL → cited RAG context, no vector DB.
57
+ - **Maps → leads.** `/scrape/google-maps/search` returns business websites and phones; collect contact details only from public, permitted sources and apply opt-out, rate, and privacy-law constraints before any outreach use.
58
+ - **Crawler → corpus.** `crawler` Scraper Job with `outputFormat: ["markdown"]` + `includePaths: "/docs/.+"` produces an LLM-ready corpus in one submission.
59
+ - **Pre-extracted via SERP rich snippets.** `knowledgeGraph`, `localResults`, `inlineShoppingResults`, `relatedQuestions` carry pre-parsed public facts. Always check them before considering direct page access.
60
+
61
+ ## When to call from code (the wiring)
62
+
63
+ - **Auth:** `x-api-key` header on every request. Read from `HASDATA_API_KEY` env. Never hardcode, never log.
64
+ - **Timeouts:** **set client timeout ≥ 300 s.** HasData's own deadline is 300 s; shorter clients produce phantom failures while still being billed on completion.
65
+ - **Retries:** `429` and `5xx` only — exponential backoff, jitter. Never retry `4xx` (auth, validation).
66
+ - **Concurrency:** cap at your plan limit. The free tier is 1; anything higher just generates `429`s.
67
+ - **Async jobs:** the submit response handle is `body.id` (integer), **not `jobId`**. Persist it immediately. Poll `GET /scrapers/jobs/<id>` every 10–30 s with backoff; treat webhooks as best-effort and always pair with polling. On `finished` the status carries `data: {csv, json, xlsx}` short-lived URLs — download immediately.
68
+
69
+ See `references/code-recipes.md` for ready-to-paste Python and TypeScript clients with retry, backoff, bounded concurrency, and the full job lifecycle.
70
+
71
+ ## Common gotchas
72
+
73
+ - **300 s server deadline.** Match client timeout.
74
+ - **Disable `jsRendering` first**, enable only if the page needs it — most static pages parse fine without a headless browser.
75
+ - **No `cookies` parameter** — cookies go through `headers["Cookie"]`.
76
+ - **`includePaths` regex is case-sensitive.** `/blog/.+` won't match `/Blog/...`.
77
+ - **Scraper Job `data` is double-wrapped.** Each row is `body.data[i].data`; outer wraps with `id`, `jobId`, `dataId`, `createdAt`, `updatedAt`.
78
+ - **`requestMetadata.status === "ok"` is the only success signal.** HTTP 200 alone isn't enough.
79
+ - **Webhooks are best-effort with 3 retries.** Always have a polling fallback.
80
+
81
+ ## References
82
+
83
+ - [`references/web-scraping.md`](references/web-scraping.md) — `POST /scrape/web` parameters, JS scenarios, AI extraction, cookie auth.
84
+ - [`references/search.md`](references/search.md) — Google SERP / Light / AI Mode / News / Shopping / Bing / Trends + pagination.
85
+ - [`references/ecommerce.md`](references/ecommerce.md) — Amazon (product, search, seller, seller-products) and Shopify.
86
+ - [`references/real-estate.md`](references/real-estate.md) — Zillow, Redfin (bracketed filters).
87
+ - [`references/travel.md`](references/travel.md) — Airbnb, Booking, Google Flights (occupancy rules, token pagination, IATA codes).
88
+ - [`references/local-business.md`](references/local-business.md) — Maps (search/place/reviews/photos/posts), Yelp, YellowPages.
89
+ - [`references/jobs.md`](references/jobs.md) — Indeed and Glassdoor.
90
+ - [`references/youtube.md`](references/youtube.md) — YouTube search / video / channel / transcript.
91
+ - [`references/scraper-jobs.md`](references/scraper-jobs.md) — async submit/poll/results, Crawler, Contacts, SEC EDGAR, webhook receiver.
92
+ - [`references/code-recipes.md`](references/code-recipes.md) — Python / TypeScript clients with retry, backoff, concurrency, polling.
93
+
94
+ ## Resources
95
+
96
+ - Sitemap: <https://docs.hasdata.com/llms.txt>
97
+ - API status codes: <https://docs.hasdata.com/api-codes>
98
+ - Credits & concurrency: <https://docs.hasdata.com/credits-and-concurrency>
99
+ - Dashboard: <https://app.hasdata.com>
100
+
101
+ ## Limitations
102
+
103
+ * Requires access to HasData services and valid credentials.
104
+ * Data quality and available fields depend on the target website and extraction method used.
105
+ * JavaScript-heavy websites may require rendering, which can affect performance and cost.
106
+ * Use only for public data or content the user is authorized to access; respect site terms, robots/access controls, privacy law, and rate limits.
107
+ * Rate limits, quotas, and account restrictions may apply depending on the endpoint and subscription plan.