用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/tomevault-io/skills-registry --skill reflect命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
| Use when this capability is needed.
> Use when this capability is needed.
Review architecture and API design for the vfs-s3 project. Use when the user mentions @architect, asks to review an issue's design, discuss module boundaries, API shape, or architectural decisions for vfs-s3. Also trigger when the user wants to create an ADR (Architecture Decision Record) or evaluate a technical approach for the project. Intended for dispatch from Codex automation or Claude routines; GitHub trigger phrase: @vfs-s3-bot please prepare design doc Use when this capability is needed.
基于 SOC 职业分类
正在显示 SKILL.md
| name | reflect |
| description | Captures learnings after feature completion for future agent reference Use when this capability is needed. |
| metadata | {"author":"giantcroissant-lunar"} |
This skill captures learnings, patterns, gotchas, and decisions after a feature is complete. Reflections are stored in .agent/memory/reflections/ and indexed for future agent queries.
Based on the Reflection Loop pattern for iterative improvement through self-feedback.
@code-review approves the implementationspecs/<feature>/spec.mdCollect information about the completed feature:
specs/<feature>/spec.mdspecs/<feature>/plan.mdCreate a reflection document answering:
Identify tags for indexing:
plates, topology, persistenceevent-sourcing, snapshot, encodingrocksdb, messagepack, modernsatsumaWrite to .agent/memory/reflections/<feature-name>.md
Auto-update .agent/memory/reflections/index.md with:
# Reflection: <feature-name>
**Date:** YYYY-MM-DD
**Spec:** `specs/<feature>/spec.md`
**Tags:** `tag1`, `tag2`, `tag3`
## Summary
[1-2 sentence description of what was built]
## What Worked Well
- **[Pattern/Approach]**: [Why it worked]
- **[Pattern/Approach]**: [Why it worked]
## Gotchas & Edge Cases
- **[Issue]**: [What happened and how it was resolved]
- **[Issue]**: [What happened and how it was resolved]
## Decisions Made
### [Decision Title]
- **Decision:** [What was decided]
- **Alternatives:** [What was considered]
- **Rationale:** [Why this choice]
## What I'd Do Differently
- [Hindsight observation]
## Related
- RFC: [link]
- ADR: [link]
- Related reflections: [links]
The index at .agent/memory/reflections/index.md is auto-maintained:
# Reflections Index
## Recent Reflections
| Feature | Date | Tags | Key Learning |
|---------|------|------|--------------|
| [feature](./feature.md) | 2026-01-23 | tags | One-liner |
## By Tag
### plates
- [feature-1](./feature-1.md) - summary
- [feature-2](./feature-2.md) - summary
### persistence
- [feature-1](./feature-1.md) - summary
Future agents can query reflections:
@reflect --query "plates topology"
@reflect --query "rocksdb gotchas"
@reflect --list-tags
The skill will search the index and return relevant reflections.
# Reflection: plate-topology-snapshots
**Date:** 2026-01-20
**Spec:** `specs/plate-topology-snapshots/spec.md`
**Tags:** `plates`, `persistence`, `snapshots`, `rocksdb`
## Summary
Implemented head-only snapshot persistence for plate topology using RocksDB,
storing the materializer state as MessagePack-encoded blobs.
## What Worked Well
- **Separation of snapshot vs event storage**: Keeping snapshots in a
separate column family made compaction independent and queries fast.
- **MessagePack for large blobs**: Significantly smaller than JSON,
faster to encode/decode for topology graphs.
## Gotchas & Edge Cases
- **ModernSatsuma handle serialization**: Initially tried to serialize
node handles directly. Had to create stable ID mapping first, then
serialize the ID-based representation.
- **Batch size limits**: RocksDB write batches over 100MB caused memory
pressure. Added chunking for large snapshots.
## Decisions Made
### Head-only vs Full History
- **Decision:** Store only head snapshot, not full history
- **Alternatives:** Store all snapshots, store periodic checkpoints
- **Rationale:** Events provide full history; snapshots are optimization
for fast reload. Head-only is simplest and sufficient.
## What I'd Do Differently
- Would have designed the ID mapping layer first before touching
ModernSatsuma serialization.
## Related
- RFC: RFC-V2-0004-rocksdb-eventstore-and-snapshots.md
- ADR: ADR-0005-use-modern-rocksdb-for-db-first-persistence.md
Converted and distributed by TomeVault — claim your Tome and manage your conversions.