Community写作与编辑github.com

pablodiazjorge/prompt-forge

即插即用的工具包,为AI编码代理提供跨会话的持久记忆。包含代理技能、跨会话学习循环和知识持久化。零依赖,无需后端。

prompt-forge 是什么?

Prompt Forge 是一个轻量级工具包,旨在为 AI 编码代理(如 Claude Code、Cursor 等)提供持久化记忆功能,使其能够跨会话跟踪和利用学习到的信息。其核心技能 "Continuous Issue Tracking" 会在每次编码迭代结束时自动运行,扫描当前会话中的关键信号(如修复的错误、发现的 API、重复的模式等),并与知识库中的现有问题(issue)进行交叉比对。该技能会自动创建或更新问题文件,记录每个问题的出现次数和确定性等级(从低到高),并生成汇总报告。当某个问题的确定性达到高时,它会通知 `ai-engineer` 技能进行推广。此工具完全基于文件系统运行,无需外部后端或数据库,支持会话隔离和 Git 合并冲突的友好处理,非常适合多开发者协作场景。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add pablodiazjorge/prompt-forge

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

开发者:持续问题追踪

触发条件

在每一次重要的编码迭代结束时运行,或者当用户明确要求时运行。不要在任务进行中运行 —— 等待一个自然的停止点。

此技能在会话启动时默认加载。它是安全且非破坏性的:仅写入 knowledge/issues/open/ 和 knowledge/issues/INDEX.md。

算法

阶段 1 —— 扫描当前聊天

审查当前对话中的以下信号类型:

信号示例优先级
修复的错误"PowerShell 错误解释了 {{ }}","ngx-translate v18 没有 forRoot()"高
API 发现"linkedSignal 需要 Node ≥22","provideZonelessChangeDetection() 在 Angular 22 中稳定"高
找到的解决方法"使用 create_file 而不是 Set-Content 来处理模板"中
重复模式同一个错误在本次会话中发生了 2 次或以上高
项目特性"这个 monorepo 使用 npm workspaces",".gitignore 排除了 .github/"中
工具限制"Copilot 不直接暴露 usage.prompt_tokens"低
用户偏好"更喜欢用 ; 分隔命令,而不是 &&"中

阶段 2 —— 与问题注册表交叉引用

  1. 读取 knowledge/issues/INDEX.md —— 获取所有现有问题的 ID、标题和类别
  2. 对于阶段 1 中的每个信号,尝试与现有问题匹配:
    • 通过关键词重叠(标题 + 描述)匹配
    • 通过类别 + 相似的错误模式匹配
    • 使用 grep_search 在 knowledge/issues/open/ 中搜索相关内容

阶段 3 —— 创建或更新问题

新问题(未找到匹配项)

生成 ID: ISSUE-YYYYMMDD-XXXX,其中 XXXX = UUID 的前 4 个十六进制字符
  PowerShell: [guid]::NewGuid().ToString().Substring(0, 4)
  示例: ISSUE-20260624-a1b2
使用 TEMPLATE.md 创建 knowledge/issues/open/ISSUE-YYYYMMDD-XXXX.md
设置 occurrences=1,certainty=low,status=open
将 created_by 设置为 "developer"(或当前代理标识符)
在 INDEX.md → 打开问题表中插入新行
如果您有会话令牌数据,可以选择将其添加到 证据 部分

ID 基于 UUID —— 无需先读取 INDEX.md。多个开发者同时工作时零冲突风险。

更新现有问题(找到匹配项)

将 occurrences 增加 1
将 last_seen 更新为今天的日期
将当前会话信息附加到 sessions 数组
重新评估确定性:
  - 1 次出现 → 低
  - 2 次出现 → 中
  - 3 次及以上出现 → 高
使用 replace_string_in_file 更新 open/ 中的问题文件
更新 INDEX.md 中的计数和行数据

INDEX.md 合并冲突

如果两个开发者同时向 INDEX.md 添加行,会在表格体上发生 Git 合并冲突。解决方法:保留两个分支的所有行;重新统计目录以更新汇总数字。

报告

输出一个汇总表:

## 开发者报告 —— YYYY-MM-DD

| 动作 | ID | 标题 | 类别 | 详情 |
|--------|----|-------|----------|--------|
| 🆕 新建 | ISSUE-001 | ... | ... | 在 open/ 中创建 |
| 📈 更新 | ISSUE-002 | ... | ... | 1→2 次出现,确定性 低→中 |

重要规则

  1. 绝不推广问题。 推广是 ai-engineer 技能的职责。您的唯一输出是 open/ 中的问题文件和对 INDEX.md 的更新。

  2. 绝不修改技能或记忆文件。 您是 .github/skills/ 和 /memories/ 的只读观察者。不要触碰它们。

  3. 绝不为模型已知的内容创建技能 —— 如果那是常识(例如,“使用 const 而不是 var”),完全跳过它。

  4. 保持问题文件简洁 —— TEMPLATE.md 格式是最大值,而非最小值。不要写长篇大论。

  5. 会话隔离 —— 前置元数据中的 sessions 数组存储会话 UUID。如果可用,使用 session_store_sql 查找当前会话 UUID,否则使用基于日期的标识符。

  6. 始终填充 created_by —— 将其设置为代理名称或会话标识符,以便 ai-engineer 在审查过程中追溯问题来源。

交接给 AI 工程师

当问题达到 certainty: high(3 次及以上的出现)时,ai-engineer 技能负责推广。developer 技能不决定要推广什么或推广到哪里 —— 它只记录信号强度。当用户要求组织知识、清理问题或推广模式时,作为子代理运行 ai-engineer 技能。

文件路径参考

资源路径
问题注册索引knowledge/issues/INDEX.md
问题模板knowledge/issues/TEMPLATE.md
打开的问题knowledge/issues/open/ISSUE-XXX.md
已推广的问题knowledge/issues/promoted/ISSUE-XXX.md
已丢弃的问题knowledge/issues/discarded/ISSUE-XXX.md

相关技能