Files
reporting-governance-plugin/skills/kal/SKILL.md
2026-04-16 16:51:00 +08:00

96 lines
3.9 KiB
Markdown

---
name: kal
description: Use when the user says "啟動KAL" or clearly wants to start a KAL workflow for a new research topic. Trigger on phrases like "啟動KAL", "start KAL", "幫我啟動 KAL", or when the user wants a topic/URL/goal turned into a structured KAL kickoff and then researched through claims, analysis, and summary.
---
# KAL Intake + Run
When this skill triggers, first collect the minimum input needed for a KAL run, then start the KAL workflow once enough information is present.
## Primary behavior
If the user says only `啟動KAL` or gives an incomplete kickoff, use a friendly intake reply: one short lead-in sentence plus the same 4-line template, with the field guidance written inside the quotes as placeholder text.
Default wording:
```text
好,我先幫你把 KAL 開題格式立起來。
topic: "你想研究的主題是什麼"
seed: "先給我起始材料,例如網址 / repo / 關鍵字 / 文件"
goal: "你最後想得到什麼,例如摘要 / 比較 / 評估 / 決策建議"
scope: "要納入或排除什麼範圍"
```
Keep the lead-in short and natural. Do not add analysis yet.
## Field meanings
- `topic`: the subject, concept, repo, framework, or question area
- `seed`: the starting material, such as a URL, repo, document, keyword, or quoted text
- `goal`: what the user wants at the end, such as summary, evaluation, comparison, decision support, or study notes
- `scope`: the boundary; what to include or exclude in this KAL run
## Response rules
- If the user only says `啟動KAL`, return one short friendly lead-in sentence plus the 4-line template with placeholder guidance inside the quotes.
- If the user gives some fields but not all, return the same template with known values filled in and missing ones left as friendly placeholder guidance.
- If the user provides enough information, normalize it into the 4-line template and then proceed with the KAL workflow.
- Keep the intake step lightweight.
- Do not add unnecessary analysis before the intake is clear.
- If the user explicitly asks for raw copy-paste format only, you may omit the placeholder guidance and leave empty strings.
## Filled-template behavior
If the user already provided enough information in one message, first respond by normalizing it into this exact structure:
```text
topic: "..."
seed: "..."
goal: "..."
scope: "..."
```
If the user intent is clearly to start immediately, continue with the KAL workflow in the same turn or next active step.
If the user appears to be drafting or unsure, stop after the normalized template and wait.
## Default assumptions
Only use light defaults when necessary:
- If `seed` is a URL and `topic` is missing, infer a short topic from the URL target if obvious.
- If `goal` is missing, leave it as placeholder guidance instead of guessing.
- If `scope` is missing, leave it as placeholder guidance instead of guessing.
## KAL run behavior
Once enough input is present, run KAL with this default order:
1. define topic scope
2. gather seed sources
3. extract atomic claims
4. attach citations / source spans
5. write analysis
6. write summary
7. preserve unknowns / limits
8. report whether the topic is enough to explain
## Important constraints
- Do not skip the intake structure.
- Do not jump straight into broad research if topic, goal, or scope is still ambiguous.
- When enough information exists, do not stall unnecessarily; begin the KAL run.
- Keep the user-visible kickoff format consistent:
```text
topic: "..."
seed: "..."
goal: "..."
scope: "..."
```
- When information is missing, prefer placeholder text inside the quotes rather than a separate explanation block.
- For chat surfaces, this placeholder style is preferred because it feels like a pre-filled form.
- Do not turn intake into a long questionnaire.
- Keep it to one short lead-in and the 4 fields.
- Do not pre-fill missing fields with invented research content; only use short writing guidance as placeholders.