Skip to content
Back to skills

345 Api Config Reference Db8f7060

ASecurity

This document describes the JSON configuration format for batch image searches.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
developmentrustgoapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 345-api_config_reference_db8f7060 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 345 Api Config Reference Db8f7060?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 345 Api Config Reference Db8f7060
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-345-api-config-reference-db8f7060/badge)](https://www.skillsdirectory.com/skills/tools-only-345-api-config-reference-db8f7060)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# JSON Config Reference

This document describes the JSON configuration format for batch image searches.

## Config Structure

The config file is a JSON array of entry objects:

```json
[
  { /* entry 1 */ },
  { /* entry 2 */ },
  ...
]
```

## Entry Fields

### Required Fields

| Field | Type | Description |
|-------|------|-------------|
| `query` | string | The Google search query |

### Recommended Fields

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `id` | string | auto | Unique identifier, used for filenames |
| `heading` | string | query | Display heading in output |
| `description` | string | - | Context about what image to find |
| `numResults` | int | 5 | Number of results to fetch (1-10) |

### Selection Fields

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `selectionCriteria` | string | - | What makes a good image for this topic |
| `selectionCount` | int | 2 | How many top candidates to consider for LLM selection |

### Scoring Fields

| Field | Type | Description |
|-------|------|-------------|
| `requiredTerms` | string[] | Terms that MUST appear in title/URL (missing = -80 score) |
| `optionalTerms` | string[] | Bonus terms that improve score (+5 each) |
| `excludeTerms` | string[] | Terms to penalize (-50 each) |
| `preferredHosts` | string[] | Trusted domains (+25 if match) |

### API Fields

| Field | Type | Description |
|-------|------|-------------|
| `imgType` | string | Image type: clipart, face, lineart, stock, photo, animated |
| `rights` | string | License filter: cc_publicdomain, cc_attribute, cc_sharealike, cc_noncommercial, cc_nonderived |
| `safe` | string | SafeSearch: active, moderate, off (default: active) |
| `fileType` | string | File type filter: jpg, gif, png, bmp, svg, webp, ico, raw |
| `siteSearch` | string | Restrict to specific site |

## Example Config

```json
[
  {
    "id": "alterego-device",
    "heading": "AlterEgo Silent Speech Interface",
    "description": "Wearable device for silent speech recognition using sEMG signals",
    "query": "AlterEgo MIT silent speech interface wearable",
    "numResults": 5,
    "selectionCriteria": "Real photo of device being worn, not concept art",
    "selectionCount": 3,
    "requiredTerms": ["AlterEgo"],
    "optionalTerms": ["MIT", "wearable", "speech"],
    "excludeTerms": ["stock", "illustration", "concept"],
    "preferredHosts": ["mit.edu", "media.mit.edu"],
    "safe": "active"
  },
  {
    "id": "semg-electrodes",
    "heading": "Surface EMG Electrodes",
    "description": "Medical-grade surface electrodes for muscle signal detection",
    "query": "surface EMG electrodes medical grade",
    "numResults": 5,
    "selectionCriteria": "Clear photo showing electrode placement on skin",
    "requiredTerms": ["electrode"],
    "optionalTerms": ["EMG", "surface", "medical"],
    "excludeTerms": ["clipart", "diagram"]
  }
]
```

## Scoring Algorithm

Each image is scored based on config criteria:

```
Base score: 0

Required terms:
  All present: +30
  Any missing: -80

Optional terms:
  +5 per match

Exclude terms:
  -50 per match

Preferred hosts:
  Match: +25
  No match: -5

MIME type:
  JPEG/PNG: +5
  GIF: -10

Resolution:
  >= 600x400: +10
  < 300x300: -10

File size:
  < 20KB: -5
```

## LLM Selection

After scoring, top `selectionCount` candidates are sent to LLM with:
- Title
- URL
- Host
- Score
- Scoring reasons
- Selection criteria

LLM returns JSON:
```json
{
  "chosen_index": 1,
  "explanation": "Best shows actual device in use"
}
```

## Environment Variables

Required in `.env` or environment:

```
Google-Custom-Search-JSON-API-KEY=AIza...
Google-Custom-Search-CX=327...
OPENROUTER_API_KEY=sk-or-...
```

Alternative key names also supported:
- `GOOGLE_CUSTOM_SEARCH_API_KEY`
- `GOOGLE_CUSTOM_SEARCH_CX`
- `OPENROUTER-API-KEY`

Files in this skill

  • README.md899 B
  • skill.md3.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.