diff --git a/bootstrap.md b/bootstrap.md index b653d5d..87c71da 100644 --- a/bootstrap.md +++ b/bootstrap.md @@ -1,6 +1,15 @@ ## PromptX Agent Role Bootstrap -1. 使用命令 `node PromptX/promptx.js` 获取所有协议内容 -2. 阅读并理解 PromptX 提示词系统 -3. 你需要代入的角色是 @file://PromptX/domain/assistant/assistant.role.md -4. Action!! \ No newline at end of file +作为 AI 助手,当用户发出指令 Action 时,你必须按照一下步骤按顺序执行并代入角色 + +1. ⚠️ 使用命令 `node PromptX/promptx.js protocols` 阅读并理解 DPML 提示词协议 +2. ⚠️ 使用命令 `node PromptX/promptx.js core` 阅读并理解 核心 提示词,核心提示词大部分角色都会用到,必须仔细理解 +3. 你需要代入的角色是 @file://PromptX/domain/scrum/role/product-owner.role.md +4. 按照橘色提示词配置执行 +5. 自检以下步骤 + - 是否理解 DPML 提示词协议 + - 是否理解 @ 符号资源引用协议 + - 是否理解记忆触发,存储,处理流程和所使用的工具 + - 是否理解自己的角色定位 + +6. 自检完成后,向用户表达 “🙋我已进入工作状态!!!” \ No newline at end of file diff --git a/domain/scrum/role/product-owner.role.md b/domain/scrum/role/product-owner.role.md index 5f7544e..a563f7e 100644 --- a/domain/scrum/role/product-owner.role.md +++ b/domain/scrum/role/product-owner.role.md @@ -87,10 +87,7 @@ 如果记忆文件不存在,则创建空记忆容器并准备记忆索引。 - ## 角色启动确认 - - 完成以上初始化步骤后,产品负责人角色将进入就绪状态,准备接收用户输入并提供专业的产品管理支持。 - 进入状态时,产品负责人应明确表达 "🙋我已进入产品负责人角色状态!!" + \ No newline at end of file diff --git a/promptx.js b/promptx.js index 7833834..f30485a 100755 --- a/promptx.js +++ b/promptx.js @@ -19,7 +19,6 @@ function printProtocols() { // 定义目录优先级顺序 const directories = [ { path: path.join(promptxDir, 'protocol'), name: 'protocol' }, - { path: path.join(promptxDir, 'core'), name: 'core' }, { path: path.join(promptxDir, 'resource'), name: 'resource' } ]; @@ -84,6 +83,70 @@ function printProtocols() { console.log(`\n总计读取了 ${allFiles.length} 个协议文件。`); } +/** + * 打印核心提示词内容 + */ +function printCore() { + const coreDir = path.join(promptxDir, 'core'); + let allFiles = []; + + // 递归查找文件函数 + function collectMarkdownFiles(dir) { + if (!fs.existsSync(dir)) { + console.warn(`警告: 目录不存在 ${dir}`); + return []; + } + + let files = []; + const entries = fs.readdirSync(dir, { withFileTypes: true }); + + for (const entry of entries) { + const fullPath = path.join(dir, entry.name); + + if (entry.isDirectory()) { + files = files.concat(collectMarkdownFiles(fullPath)); + } else if (entry.isFile() && entry.name.endsWith('.md')) { + files.push(fullPath); + } + } + + return files; + } + + // 收集核心目录下的所有文件 + const coreFiles = collectMarkdownFiles(coreDir); + + // 文件按字母顺序排序 + coreFiles.sort(); + + // 合并到总文件列表 + allFiles = allFiles.concat(coreFiles); + + console.log(`从 core 目录收集了 ${coreFiles.length} 个文件`); + + // 没有文件时的提示 + if (allFiles.length === 0) { + console.log("未找到任何核心提示词文件。请确认PromptX目录结构是否正确。"); + return; + } + + // 打印每个文件 + for (const file of allFiles) { + const relativePath = path.relative(promptxDir, file); + const separator = "=".repeat(80); + console.log(`\n${separator}\n### 文件: ${relativePath}\n${separator}\n`); + + try { + const content = fs.readFileSync(file, 'utf8'); + console.log(content); + } catch (err) { + console.error(`读取文件错误: ${file}`, err); + } + } + + console.log(`\n总计读取了 ${allFiles.length} 个核心提示词文件。`); +} + /** * 打印指定角色内容 */ @@ -282,8 +345,9 @@ function printHelp() { PromptX 工具 - 协议和角色内容查看器 使用方法: - node promptx.js - 打印所有协议内容 (按protocol、core、resource顺序) + node promptx.js - 打印所有协议内容 (按protocol、resource顺序) node promptx.js protocols - 同上,打印所有协议内容 + node promptx.js core - 打印所有核心提示词内容 node promptx.js role <路径> - 打印指定角色文件内容 node promptx.js file <路径> - 打印指定文件内容 node promptx.js remember <内容> - 添加记忆条目,标签、评分和有效期可直接包含在内容中 @@ -306,6 +370,9 @@ switch (command) { case 'protocols': printProtocols(); break; + case 'core': + printCore(); + break; case 'role': if (!param) { console.error('错误: 缺少角色文件路径');