prompt-engineering
Prompt engineering patterns including structured prompts, chain-of-thought, few-shot learning, and system prompt design
它会碰到什么
扫了多少1 个文本文件,4 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
Prompt Engineering
Structured System Prompt
You are a senior code reviewer. Your role is to analyze pull requests for:
1. Correctness - logic errors, edge cases, off-by-one errors
2. Security - injection, authentication, data exposure
3. Performance - N+1 queries, unnecessary allocations, missing indexes
4. Maintainability - naming, complexity, test coverage
For each issue found, respond with:
- Severity: critical | warning | suggestion
- File and line reference
- What is wrong
- How to fix it (with code snippet)
If the code is well-written, say so briefly. Do not invent problems.
Structure system prompts with role, scope, output format, and constraints. Be explicit about what the model should NOT do.
Chain-of-Thought
Analyze this database query for performance issues.
Think step by step:
1. Identify the tables and joins involved
2. Check if appropriate indexes exist for the WHERE and JOIN conditions
3. Look for full table scans or cartesian products
4. Estimate the row count at each step
5. Suggest specific index creation or query restructuring
Query:
SELECT o.*, u.name, p.title
FROM orders o
JOIN users u ON o.user_id = u.id
JOIN products p ON o.product_id = p.id
WHERE o.created_at > '2024-01-01'
AND u.country = 'US'
ORDER BY o.created_at DESC
LIMIT 50;
Chain-of-thought prompting improves accuracy on reasoning tasks by forcing the model to show intermediate steps.
Few-Shot Examples
Convert natural language to SQL. Follow these examples:
Input: "How many orders were placed last month?"
Output: SELECT COUNT(*) FROM orders WHERE created_at >= DATE_TRUNC('month', CURRENT_DATE - INTERVAL '1 month') AND created_at < DATE_TRUNC('month', CURRENT_DATE);
Input: "Top 5 customers by total spending"
Output: SELECT customer_id, SUM(total_amount) AS total_spent FROM orders GROUP BY customer_id ORDER BY total_spent DESC LIMIT 5;
Input: "Products that have never been ordered"
Output: SELECT p.* FROM products p LEFT JOIN order_items oi ON p.id = oi.product_id WHERE oi.id IS NULL;
Now convert:
Input: "Average order value per country for the last quarter"
Provide 3-5 diverse examples that demonstrate the expected format and edge cases.
Tool Use / Function Calling
{
"tools": [
{
"name": "search_codebase",
"description": "Search for code patterns across the repository. Use when you need to find implementations, usages, or definitions.",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Regex pattern or keyword to search for"
},
"file_type": {
"type": "string",
"description": "File extension filter (e.g., 'ts', 'py')"
}
},
"required": ["query"]
}
}
]
}
Write tool descriptions that explain WHEN to use the tool, not just what it does.
Prompt Template Pattern
def build_review_prompt(diff: str, context: str, rules: list[str]) -> str:
rules_text = "\n".join(f"- {rule}" for rule in rules)
return f"""Review this code diff against the following rules:
{rules_text}
Context about the codebase:
{context}
Diff to review:
{diff}
Respond with a JSON array of findings. If no issues, return an empty array.
Each finding: {{"severity": "critical|warning|info", "line": number, "message": "string", "suggestion": "string"}}"""
Anti-Patterns
- Vague instructions like "be helpful" or "do your best"
- Asking the model to "be creative" when you need deterministic output
- Not specifying output format (JSON, markdown, plain text)
- Stuffing too many unrelated tasks into a single prompt
- Using negations ("don't do X") without saying what to do instead
- Not testing prompts with adversarial or edge-case inputs
Checklist
- [ ] System prompt defines role, scope, format, and constraints
- [ ] Chain-of-thought used for multi-step reasoning tasks
- [ ] Few-shot examples cover typical and edge cases
- [ ] Output format explicitly specified (JSON schema, markdown, etc.)
- [ ] Tool descriptions explain when and why to use each tool
- [ ] Prompts tested with adversarial inputs
- [ ] Temperature and top_p set appropriately for the task
- [ ] Prompt templates are parameterized, not hardcoded strings
想直接用这个技能?
本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。