当用户明确要求“把 prompt 改写成伪代码”“将提示词翻译成可编程自然语言”“输出具有程序结构的人类语言指令”或直接提到 prompt-programming 时使用。将用户原始 prompt 翻译为一种简洁、严谨、可组合的 Prompt Program 方言:形式上像假代码,语义上仍是人类自然语言。
Scanned 8/31/2026
Install to Claude Code
npx -y skills add huangwb8/skills --skill prompt-programming --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Prompt Programming?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/huangwb8-prompt-programming)More formats (shields.io, HTML) on the badges page.
---
name: prompt-programming
description: 当用户明确要求“把 prompt 改写成伪代码”“将提示词翻译成可编程自然语言”“输出具有程序结构的人类语言指令”或直接提到 prompt-programming 时使用。将用户原始 prompt 翻译为一种简洁、严谨、可组合的 Prompt Program 方言:形式上像假代码,语义上仍是人类自然语言。
metadata:
author: Bensz Conan
short-description: 把任意 prompt 编译成具有程序结构的人类自然语言
keywords:
- prompt-programming
- programmable natural language
- pseudo code prompt
- prompt compiler
- 提示词编程
- 假代码
---
# Prompt Programming
## BenszAPI 任务工作区
本 Skill 的新任务中间文件统一写入 `./.bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/{skill名}/input|output|log/`。同一任务复用一个任务根目录;多 Skill 协作才创建 `shared/`。正式交付物不写入该目录,历史隐藏目录只允许显式兼容读取、迁移或清理。
## 与 bensz-collect-bugs 的协作约定
- 因本 skill 设计缺陷导致的 bug,先用 `bensz-collect-bugs` 规范记录到 `~/.bensz-skills/bugs/`,不要直接修改用户本地已安装的 skill 源码;若有 workaround,先记 bug,再继续完成任务。
- 只有用户明确要求“report bensz skills bugs”等公开上报时,才用本地 `gh` 上传新增 bug 到 `huangwb8/bensz-bugs`;不要 pull / clone 整个仓库。
把原始 prompt 编译成 Prompt Program:像程序,但仍是自然语言。目标是把输入、输出、约束、流程、分支和校验整理成可维护、可评审的假代码。
## 核心模型
- 单一真相来源是 `config.yaml`。
- 底层只使用 `config.yaml:kernel.semantic_atoms` 定义的 6 个原子:
- `Entity`:对象、角色、输入、输出、工具、状态
- `Intent`:目标、交付物、成功条件
- `Operation`:分析、生成、转换、比较、总结、规划
- `Constraint`:必须、禁止、偏好、格式、长度、风格
- `Control`:条件、分支、循环、顺序、回退、优先级
- `Check`:自检、验收、异常处理、结束条件
- 不新增原子;复杂任务靠组合表达。
- 详细定义与块映射见 `references/primitives.md`。
## 渲染方言
- 块顺序、必需块、可选块、块语义与句式模板,以 `config.yaml:rendering.*` 为准。
- 必守规则:
- `输出` 只定义目标产物、目标格式或目标效果。
- `返回` 只定义对 `输出` 的交付动作,不能引入新产物。
- `程序`、`定义`、`缺口处理` 属于可选块;为空就省略。
- 若 `config.yaml:rendering.omit_empty_blocks=true`,禁止为了“看起来完整”补空块。
## 工作流
### 输入验证
先按 `config.yaml:translation.input_validation` 检查输入:
- 空输入:拒绝翻译,并要求提供原始 prompt。
- 过短输入:说明信息不足,不输出伪完整结构。
- 非 prompt 型输入:说明本 skill 不适用。
### 理解原始 prompt
恢复以下信息:
- 真实目标与交付物
- 输入对象与隐含上下文
- 输出契约与验收口径
- 强约束与软偏好
- 控制逻辑:条件、分支、迭代、失败回退
### 映射为 6 个原子
- `Entity`:关键对象是什么
- `Intent`:最终要得到什么
- `Operation`:核心动作链是什么
- `Constraint`:哪些条件不能丢
- `Control`:是否存在 if / for each / until / fallback
- `Check`:如何判断结果合格
若原 prompt 混乱,先重建逻辑,再翻译;不要保留混乱结构。若没有显式控制逻辑,只能在“显式或强隐含”时补出最小控制结构,不凭空发明分支或循环。
### 组织为 Prompt Program
- 默认按 `config.yaml:rendering.block_order` 输出。
- 组织顺序:
- 先边界,后执行
- 先主流程,后异常路径
- 先硬约束,后风格偏好
- 若用户原 prompt 缺少显式校验,必须补出最小可执行校验。
- 若存在显式格式契约,必须保留到 `输出` 或 `约束`。
- 若用户指定字段、章节或步骤顺序,默认按原顺序保留。
- 若存在关键术语、变量名或实体名,默认保留原词,不擅自改名。
冲突时严格遵循 `config.yaml:translation.conflict_resolution_order`:
1. 核心意图
2. 硬约束
3. 输出契约
4. 校验要求
5. 风格偏好
### 压缩表达
- 保留逻辑,不保留冗余修辞。
- 保留可执行约束,不保留客套表达。
- 能通过结构表达的,不重复解释。
- 句子预算以 `config.yaml:quality_bar.soft_sentence_budget` 为软上限;复杂任务可放宽,但不能丢逻辑。
### 最小自检
输出前确认:
- 仍然等价于原 prompt 的真实意图
- 具备清晰的输入、输出、流程和校验
- 关键分支与缺口处理已显式表达
- 足够像“程序”,但仍是自然语言
## 输出
- 默认只输出最终 Prompt Program,不附带长篇分析。
- 推荐格式可按 `config.yaml:rendering.block_order` 省略空块:
```text
程序:……
目标:……
输入:……
输出:……
定义:
- ……
约束:
- 必须……
- 优先……
- 不要……
流程:
1. ……
2. 若……,则……;否则……。
3. 对每个……,执行……。
校验:
- ……
缺口处理:
- 若信息不足,则……
返回:
- ……
```
## 适用与不适用
适用:
- 把普通 prompt 变成研究论文式假代码
- 把散乱任务说明重构成统一结构
- 把长 prompt 压缩成可组合、可讨论、可评审的逻辑骨架
不适用:
- 用户只想润色语气,不想改变表达结构
- 用户只想执行任务,不关心 prompt 的架构
- 原始输入不是 prompt,而是完整代码实现请求
## 额外规则
### 歧义处理
- 可用常识低风险补足时,直接补足并体现在结构中。
- 缺失信息会改变任务本质时,在 `缺口处理` 中显式标注,不擅自虚构。
- 默认不要频繁追问;只有任务语义无法成立时才要求澄清。
### 风格处理
- 默认保持冷静、简洁、结构化。
- 不输出“你应该”“建议你”等评注性口吻,除非原 prompt 本身包含它们。
- 允许保留领域词汇,但要消除口语化噪音。
### 等价性原则
- 允许重排表达,不允许改变目标。
- 允许补出隐式流程,不允许新增无依据能力。
- 允许强化校验,不允许削弱关键约束。
- 允许压缩表述,不允许丢失显式格式契约。
- 允许补足交付动作,不允许把“输出”偷换成“输出说明书”。
## 质量标准
合格的 Prompt Program 必须满足:
- **等价**:核心意图不丢失
- **可执行**:读者可按结构直接执行
- **可编程**:能看见输入、约束、流程、分支、校验
- **可扩展**:后续要求能继续挂到对应块
- **可审阅**:他人能快速指出逻辑缺口或冗余
## 参考资料
- `references/primitives.md`:6 个原子、块语义与省略规则
- `references/examples.md`:典型翻译示例
- `references/translation-rules.md`:输入验证、保真与冲突规则
No comments yet. Be the first to comment!