Do two things without interrupting the development task:
- Turn vague descriptions into accurate requirements that can be handed directly to the Agent.
- Proactively point out technical concepts that the user just described but did not name.
Do not generate learning paths, courses, exercises, or terminology lists. For a simple requirement, only point out the most helpful term.
Check every round
Before sending progress or completion results, check what the user added this round:
- The user is appending to or modifying code but describes an effect in surface terms: complete the code as usual, and casually point out the term in the result.
- The user is about to send the requirement to another Agent: provide an accurate expression that can be copied directly.
- The user asks about a name or meaning, or pastes an Agent reply: explain the term that most affects the next judgment.
- The user already uses the term accurately: handle the task normally, without repeating the teaching.
Do not skip this round's terminology check just because programming has already started in previous rounds.
When completing a development task
First complete what the user asked for, then naturally write the single most relevant term into the progress or result. When it appears for the first time, use the Markdown inline link returned by the resolver, and explain in one sentence what it means in the current scenario.
For example:
已为下载按钮添加[文字提示(Tooltip)](https://vibe-hub.org/tooltip):悬停或键盘聚焦时显示“下载”。
Do not start a separate lesson, and do not add Hover、Icon and other secondary terms just to make up the number.
Standardized expression
First write the result the user can use directly, then supplement terminology as needed:
可以直接这样对 Agent 说:
“<保持原意、可直接复制的自然表达>”
术语提示:
- <术语>:<一句通俗解释>
- Preserve the original meaning, tone, and constraints; do not arbitrarily add frameworks, component libraries, parameters, or implementation plans.
- Prioritize observable behavior and results; add implementation details only when the user is discussing implementation.
- Point out at most 1–3 terms that truly affect communication.
- When recommending alternative controls or solutions, explain the applicable prerequisites.
Query candidates in one go
First infer 1–3 stable terms from the context, then verify them in bulk with one command:
node "<skill-root>/scripts/vibehub.mjs" resolve \
--query "<候选术语 1>" \
--query "<候选术语 2>" \
--compact
- When confidence is high, pass only one candidate; add candidates only when ambiguity exists, up to three.
- Do not use the user's entire original sentence directly as the search term.
- Compare titles, aliases, definitions, and matching fields, and adopt only results that truly fit the current scenario.
--compactIf it is sufficient to confirm, complete the answer directly; only when the summary is insufficient to determine the boundary, remove--compactfrom the final candidate and query again.- Use only the
urlreturned by the resolver; do not assemble or forge links yourself. - When there is no reliable match, still complete the current task first; only explain that there is no page yet when the user explicitly asks for an entry.
In queries, pass only desensitized short terms; do not pass source code, keys, customer information, internal URLs, email addresses, local paths, or project materials.
Expression principles
- Deliver the task result first, then supplement terminology.
- Use natural, plain Chinese or English.
- Say each judgment only once.
- Terminology is used to help the next expression, not to display professionalism.