重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
project-memory by spillwavesolutions/project-memory
npx skills add https://github.com/spillwavesolutions/project-memory --skill project-memory通过在 docs/project_notes/ 中建立结构化的记忆系统,为项目维护机构知识。此技能设置四个关键的记忆文件(bugs, decisions, key facts, issues),并配置 CLAUDE.md 和 AGENTS.md 以自动引用和维护它们。其结果是一个能够跨编码会话和跨不同 AI 工具记住过去的决策、问题解决方案和重要配置细节的项目。
在以下情况调用此技能:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
当在项目中首次调用时,创建以下结构:
docs/
└── project_notes/
├── bugs.md # 包含解决方案的错误日志
├── decisions.md # 架构决策记录
├── key_facts.md # 项目配置和常量
└── issues.md # 包含工单引用的工作日志
目录命名理由: 使用 docs/project_notes/ 而不是 memory/ 使其看起来像标准的工程组织,而非 AI 特定工具。这提高了人类开发人员的采用率和维护意愿。
初始文件内容: 从此技能的 references/ 目录复制模板:
references/bugs_template.md 作为初始的 bugs.mdreferences/decisions_template.md 作为初始的 decisions.mdreferences/key_facts_template.md 作为初始的 key_facts.mdreferences/issues_template.md 作为初始的 issues.md每个模板都包含格式示例和使用提示。
在项目的 CLAUDE.md 文件中添加或更新以下部分:
## 项目记忆系统
本项目在 `docs/project_notes/` 中维护机构知识,以确保跨会话的一致性。
### 记忆文件
- **bugs.md** - 包含日期、解决方案和预防说明的错误日志
- **decisions.md** - 包含上下文和权衡的架构决策记录
- **key_facts.md** - 项目配置、凭证、端口、重要 URL
- **issues.md** - 包含工单 ID、描述和 URL 的工作日志
### 具备记忆意识的协议
**在提出架构变更之前:**
- 检查 `docs/project_notes/decisions.md` 中的现有决策
- 验证提议的方法是否与过去的决策冲突
- 如果确实冲突,请承认现有决策并解释为何需要变更
**当遇到错误或故障时:**
- 在 `docs/project_notes/bugs.md` 中搜索类似问题
- 如果找到已知解决方案,则应用之
- 在问题解决后记录新的错误和解决方案
**当查找项目配置时:**
- 在 `docs/project_notes/key_facts.md` 中查找凭证、端口、URL、服务账户
- 优先使用已记录的事实而非假设
**当完成工单上的工作时:**
- 在 `docs/project_notes/issues.md` 中记录已完成的工作
- 包含工单 ID、日期、简要描述和 URL
**当用户请求更新记忆时:**
- 更新相应的记忆文件(bugs, decisions, key_facts 或 issues)
- 遵循已建立的格式和风格(项目符号列表、日期、简洁条目)
### 记忆文件的风格指南
- **优先使用项目符号列表而非表格**,以保持简单和易于编辑
- **保持条目简洁**(描述部分 1-3 行)
- **始终包含日期**以提供时间上下文
- **包含 URL** 用于工单、文档、监控仪表板
- **旧条目的手动清理**是预期的(非自动化)
如果项目有 AGENTS.md 文件(用于代理工作流或多工具项目),请添加相同的记忆协议。这确保了无论使用 Claude Code、Cursor、GitHub Copilot 还是其他 AI 工具,都能保持一致性。
如果 AGENTS.md 存在: 添加与上述相同的“项目记忆系统”部分。
如果 AGENTS.md 不存在: 询问用户是否想要创建它。许多项目使用多个 AI 工具,并受益于共享的记忆协议。
当遇到问题或做出决策时,主动搜索记忆文件:
搜索 bugs.md:
# 查找类似错误
grep -i "connection refused" docs/project_notes/bugs.md
# 按日期范围查找错误
grep "2025-01" docs/project_notes/bugs.md
搜索 decisions.md:
# 检查关于某项技术的决策
grep -i "database" docs/project_notes/decisions.md
# 查找所有 ADR
grep "^### ADR-" docs/project_notes/decisions.md
搜索 key_facts.md:
# 查找数据库连接信息
grep -A 5 "Database" docs/project_notes/key_facts.md
# 查找服务账户
grep -i "service account" docs/project_notes/key_facts.md
使用 Grep 工具进行更复杂的搜索:
Grep(pattern="oauth", path="docs/project_notes/")Grep(pattern="bug", path="docs/project_notes/bugs.md", -A=3, -B=3)当用户请求更新或在记录已解决的问题时,更新相应的记忆文件:
添加错误条目:
### YYYY-MM-DD - 简要错误描述
- **问题**:出了什么问题
- **根本原因**:为什么会发生
- **解决方案**:如何修复的
- **预防措施**:未来如何避免
添加决策:
### ADR-XXX:决策标题 (YYYY-MM-DD)
**上下文:**
- 为什么需要做出决策
- 它解决了什么问题
**决策:**
- 选择了什么
**考虑的替代方案:**
- 方案 1 -> 为何被拒绝
- 方案 2 -> 为何被拒绝
**后果:**
- 好处
- 权衡
添加关键事实:
references/key_facts_template.md添加工单日志条目:
### YYYY-MM-DD - 工单ID:简要描述
- **状态**:已完成 / 进行中 / 已阻塞
- **描述**:1-2 行摘要
- **URL**:https://jira.company.com/browse/工单ID
- **备注**:任何重要的上下文信息
定期清理旧条目:
issues.md 中已完成的工作(3 个月以上)key_facts.md冲突解决:
decisions.md 冲突,请解释为何需要重新审视该决策此技能在 references/ 中包含模板文件,演示了正确的格式:
创建初始记忆文件时,将这些模板复制到 docs/project_notes/ 并根据项目进行自定义。
用户:"我收到数据库的 'connection refused' 错误"
-> 在 docs/project_notes/bugs.md 中搜索 "connection"
-> 找到之前的解决方案:"在端口 5432 上使用 AlloyDB Auth Proxy"
-> 应用已知的修复方法
内部:"用户可能受益于使用 SQLAlchemy 进行迁移"
-> 检查 docs/project_notes/decisions.md
-> 找到 ADR-002:已决定使用 Alembic
-> 使用 Alembic 以保持一致性
用户:"把那个 CORS 修复添加到我们的错误日志中"
-> 阅读 docs/project_notes/bugs.md
-> 添加包含日期、问题、解决方案、预防措施的新条目
-> 向用户确认已添加
内部:"需要连接到数据库"
-> 检查 docs/project_notes/key_facts.md
-> 找到数据库配置部分
-> 使用已记录的连接字符串和凭证
项目记忆技能与其他技能相辅相成:
当一起使用这些技能时,考虑将更新记忆文件作为后续操作。
当满足以下条件时,此技能被视为成功部署:
docs/project_notes/ 目录存在,并包含所有四个记忆文件每周安装次数
49
仓库
GitHub 星标数
63
首次出现
2026年2月2日
安全审计
安装于
opencode41
gemini-cli41
codex41
github-copilot39
amp37
cursor37
Maintain institutional knowledge for projects by establishing a structured memory system in docs/project_notes/. This skill sets up four key memory files (bugs, decisions, key facts, issues) and configures CLAUDE.md and AGENTS.md to automatically reference and maintain them. The result is a project that remembers past decisions, solutions to problems, and important configuration details across coding sessions and across different AI tools.
Invoke this skill when:
When invoked for the first time in a project, create the following structure:
docs/
└── project_notes/
├── bugs.md # Bug log with solutions
├── decisions.md # Architectural Decision Records
├── key_facts.md # Project configuration and constants
└── issues.md # Work log with ticket references
Directory naming rationale: Using docs/project_notes/ instead of memory/ makes it look like standard engineering organization, not AI-specific tooling. This increases adoption and maintenance by human developers.
Initial file content: Copy templates from the references/ directory in this skill:
references/bugs_template.md for initial bugs.mdreferences/decisions_template.md for initial decisions.mdreferences/key_facts_template.md for initial key_facts.mdreferences/issues_template.md for initial issues.mdEach template includes format examples and usage tips.
Add or update the following section in the project's CLAUDE.md file:
## Project Memory System
This project maintains institutional knowledge in `docs/project_notes/` for consistency across sessions.
### Memory Files
- **bugs.md** - Bug log with dates, solutions, and prevention notes
- **decisions.md** - Architectural Decision Records (ADRs) with context and trade-offs
- **key_facts.md** - Project configuration, credentials, ports, important URLs
- **issues.md** - Work log with ticket IDs, descriptions, and URLs
### Memory-Aware Protocols
**Before proposing architectural changes:**
- Check `docs/project_notes/decisions.md` for existing decisions
- Verify the proposed approach doesn't conflict with past choices
- If it does conflict, acknowledge the existing decision and explain why a change is warranted
**When encountering errors or bugs:**
- Search `docs/project_notes/bugs.md` for similar issues
- Apply known solutions if found
- Document new bugs and solutions when resolved
**When looking up project configuration:**
- Check `docs/project_notes/key_facts.md` for credentials, ports, URLs, service accounts
- Prefer documented facts over assumptions
**When completing work on tickets:**
- Log completed work in `docs/project_notes/issues.md`
- Include ticket ID, date, brief description, and URL
**When user requests memory updates:**
- Update the appropriate memory file (bugs, decisions, key_facts, or issues)
- Follow the established format and style (bullet lists, dates, concise entries)
### Style Guidelines for Memory Files
- **Prefer bullet lists over tables** for simplicity and ease of editing
- **Keep entries concise** (1-3 lines for descriptions)
- **Always include dates** for temporal context
- **Include URLs** for tickets, documentation, monitoring dashboards
- **Manual cleanup** of old entries is expected (not automated)
If the project has an AGENTS.md file (used for agent workflows or multi-tool projects), add the same memory protocols. This ensures consistency whether using Claude Code, Cursor, GitHub Copilot, or other AI tools.
If AGENTS.md exists: Add the same "Project Memory System" section as above.
If AGENTS.md doesn't exist: Ask the user if they want to create it. Many projects use multiple AI tools and benefit from shared memory protocols.
When encountering problems or making decisions, proactively search memory files:
Search bugs.md:
# Look for similar errors
grep -i "connection refused" docs/project_notes/bugs.md
# Find bugs by date range
grep "2025-01" docs/project_notes/bugs.md
Search decisions.md:
# Check for decisions about a technology
grep -i "database" docs/project_notes/decisions.md
# Find all ADRs
grep "^### ADR-" docs/project_notes/decisions.md
Search key_facts.md:
# Find database connection info
grep -A 5 "Database" docs/project_notes/key_facts.md
# Look up service accounts
grep -i "service account" docs/project_notes/key_facts.md
Use Grep tool for more complex searches:
Grep(pattern="oauth", path="docs/project_notes/")Grep(pattern="bug", path="docs/project_notes/bugs.md", -A=3, -B=3)When the user requests updates or when documenting resolved issues, update the appropriate memory file:
Adding a bug entry:
### YYYY-MM-DD - Brief Bug Description
- **Issue**: What went wrong
- **Root Cause**: Why it happened
- **Solution**: How it was fixed
- **Prevention**: How to avoid it in the future
Adding a decision:
### ADR-XXX: Decision Title (YYYY-MM-DD)
**Context:**
- Why the decision was needed
- What problem it solves
**Decision:**
- What was chosen
**Alternatives Considered:**
- Option 1 -> Why rejected
- Option 2 -> Why rejected
**Consequences:**
- Benefits
- Trade-offs
Adding key facts:
references/key_facts_template.md for security guidelines on what NOT to storeAdding work log entry:
### YYYY-MM-DD - TICKET-ID: Brief Description
- **Status**: Completed / In Progress / Blocked
- **Description**: 1-2 line summary
- **URL**: https://jira.company.com/browse/TICKET-ID
- **Notes**: Any important context
Periodically clean old entries:
Conflict resolution:
This skill includes template files in references/ that demonstrate proper formatting:
When creating initial memory files, copy these templates to docs/project_notes/ and customize them for the project.
User: "I'm getting a 'connection refused' error from the database"
-> Search docs/project_notes/bugs.md for "connection"
-> Find previous solution: "Use AlloyDB Auth Proxy on port 5432"
-> Apply known fix
Internal: "User might benefit from using SQLAlchemy for migrations"
-> Check docs/project_notes/decisions.md
-> Find ADR-002: Already decided to use Alembic
-> Use Alembic instead, maintaining consistency
User: "Add that CORS fix to our bug log"
-> Read docs/project_notes/bugs.md
-> Add new entry with date, issue, solution, prevention
-> Confirm addition to user
Internal: "Need to connect to database"
-> Check docs/project_notes/key_facts.md
-> Find Database Configuration section
-> Use documented connection string and credentials
The project-memory skill complements other skills:
When using these skills together, consider updating memory files as a follow-up action.
This skill is successfully deployed when:
docs/project_notes/ directory exists with all four memory filesWeekly Installs
49
Repository
GitHub Stars
63
First Seen
Feb 2, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykFail
Installed on
opencode41
gemini-cli41
codex41
github-copilot39
amp37
cursor37
AI界面设计评审工具 - 全面评估UI/UX设计质量、检测AI生成痕迹与优化用户体验
58,500 周安装
Flutter BLoC 模式最佳实践指南:状态管理、依赖注入与导航规范
46 周安装
skill-comply:AI编码智能体合规性自动化测试工具 - 验证Claude技能规则遵循
46 周安装
ljg-card:内容转PNG图片工具,支持长图、信息图、漫画等多种视觉化格式
46 周安装
Trello项目管理技能:Membrane集成指南与API自动化操作教程
46 周安装
Linear CLI Watch:实时监听Linear问题变更,支持自定义轮询与JSON输出的命令行工具
46 周安装
客户探索方法指南:史蒂夫·布兰克方法论,验证商业假设,避免产品失败
46 周安装