Skip to content

Prompt contract

The prompt that eunha sends to the LLM is intentionally immutable. Consistent output shape is a core product feature — every description has the same fields, enabling reliable search, filtering, and display.

Given this GitHub repo:
- Name: {full_name}
- GitHub description: {description}
- Language: {language}
- Topics: {topics}
- README excerpt: {readme_first_500_chars}
Respond ONLY with valid JSON:
{
"what": "...", // max 80 chars — what the project IS
"why": "...", // max 80 chars — what problem it solves
"use_case": "...", // max 80 chars — a concrete scenario for using it
"category": "CLI Tool | Library | Framework | Service | Learning Resource | Template | Other",
"tags": ["tag1"] // 2–4 items, each max 20 chars
}

If the README is unavailable, the placeholder [not available] is used.

FieldMax lengthPurpose
what80 charsPrimary row label in the library list
why80 charsShown in the detail panel
use_case80 charsShown in the detail panel
categoryfixed enumUsed for sidebar filter
tags2–4 items × 20 charsUsed for filter chips and search index

The prompt is tracked with CURRENT_PROMPT_VERSION in the source code. Each described repo stores the prompt_version at the time of description.

If the prompt ever changes (bumping the version), repos described with an older version are considered stale and will be re-described during the next shift-A batch run.

Do not edit the prompt fields or their names without bumping the version and handling the migration — existing data will break display and search.