mirror of
https://github.com/SikongJueluo/Mini-Nav.git
synced 2026-03-12 12:25:32 +08:00
refactor(compressors): Simplify module by removing SAM/DINO separation code
- Remove dino_compressor.py and segament_compressor.py - Rewrite pipeline.py to inline DINO into HashPipeline - Maintain backward compatibility: SAMHashPipeline alias - Update tests and benchmark.py
This commit is contained in:
63
CLAUDE.md
63
CLAUDE.md
@@ -1,4 +1,4 @@
|
||||
# 开发者必读文档
|
||||
# Project Spec & Rules
|
||||
|
||||
## 代码规范
|
||||
|
||||
@@ -47,11 +47,9 @@
|
||||
- mini-nav/configs/ — 配置管理 (Pydantic + YAML)
|
||||
- mini-nav/commands/ — CLI 命令 (train, benchmark, visualize, generate)
|
||||
- mini-nav/compressors/ — 特征压缩算法
|
||||
- hash_compressor.py — 哈希压缩器
|
||||
- dino_compressor.py — DINO 压缩器
|
||||
- segament_compressor.py — 分割压缩器
|
||||
- pipeline.py — 压缩流水线
|
||||
- train.py — 压缩器训练
|
||||
- hash_compressor.py — 哈希压缩器与训练loss
|
||||
- pipeline.py — 压缩流水线(整合 DINO 特征提取)
|
||||
- train.py — 压缩器训练脚本
|
||||
- mini-nav/data_loading/ — 数据加载与合成
|
||||
- loader.py — 数据加载器
|
||||
- synthesizer.py — 场景合成器
|
||||
@@ -68,3 +66,56 @@
|
||||
### Python库
|
||||
详细可查询pyproject.toml或使用`uv pip list`获取详细的库信息,请基于目前的库实现功能。
|
||||
如需添加新库,请先询问,用户确认后才能使用`uv add <package>`新增库。
|
||||
|
||||
## 版本管理 (Jujutsu 特有)
|
||||
本项目使用 Jujutsu (jj) 进行版本控制,并配套 Memorix MCP 作为架构决策与思维轨迹的持久化中心。
|
||||
|
||||
- 技能调用: 必须使用 jujutsu 相关工具技能来执行分支、提交、修改(describe)等操作,禁止直接通过 Shell 执行冗长的 Git 兼容指令。
|
||||
- 描述规范 (jj desc):
|
||||
- 执行 jj desc 时,首行必须是精简的变更标题。
|
||||
- 空一行后,仅记录改动的核心业务点。
|
||||
- 语言使用英文进行描述
|
||||
- 禁忌: 禁止在 jj 描述中堆砌复杂的算法逻辑或长篇的设计决策。
|
||||
- 记忆联动 (Memorix 优先):
|
||||
- 凡涉及架构变更、算法决策或重构逻辑,在执行 jj desc 之前,必须先调用 memorix_store (或对应的添加方法)。
|
||||
- 关联标记: 在 Memorix 的存储记录中,必须强制包含当前变更的 jj change ID,以便实现从代码变更到思维链的完美映射。
|
||||
- 检索逻辑: 在处理需要深入理解上下文的任务时,应主动调用 memorix_search 检索相关的历史 change_id 决策。
|
||||
- 无感记录原则:
|
||||
- 严禁在工程目录下生成任何独立的 change_log.md 或 AI 自动化文档。
|
||||
- 所有关于“为什么这样改”的知识,应当流向 jj 的原子化提交描述或 Memorix 的知识图谱库。
|
||||
|
||||
### 描述示例
|
||||
```text
|
||||
refactor(compressors): Simplify module by removing SAM/DINO separation code
|
||||
|
||||
- Remove dino_compressor.py and segament_compressor.py
|
||||
- Rewrite pipeline.py to inline DINO into HashPipeline
|
||||
- Maintain backward compatibility: SAMHashPipeline alias
|
||||
- Update tests and benchmark.py
|
||||
```
|
||||
|
||||
### 提交步骤
|
||||
- 执行`jj diff --no-pager`获取当前所有更改
|
||||
- 根据更改内容,与openspec生成的相关文档进行总结,重点在于更改内容及其决策逻辑
|
||||
- 调用记忆功能,如Memorix记忆先前总结的内容
|
||||
- 遵循描述规范,使用jj进行更改的描述
|
||||
- 执行`jj new`开启一个新的更改
|
||||
|
||||
## 记忆管理 (Memorix MCP)
|
||||
本项目使用 Memorix 作为核心上下文引擎,用于存储架构决策、复杂逻辑关联和历史重构原因。
|
||||
|
||||
### 记忆写入准则
|
||||
- 主动记录: 在完成以下操作后,必须调用 `memorix.store`:
|
||||
- 用户确认后的核心架构变更(例如:LanceDB 的索引策略)。
|
||||
- 复杂的 bug 修复逻辑(记录“为什么”这么修,防止回滚)。
|
||||
- 用户在对话中表达的明确偏好(例如:对特定 Python 库的厌恶)。
|
||||
- 代码的修改及其决策逻辑(例如:对于用户特定需求导致的更改)。
|
||||
- 结构化存储: 存储时请使用 `[Category: Topic] Description` 的格式,确保检索效率。
|
||||
|
||||
### 记忆检索准则
|
||||
- 冷启动检索: 每一轮新对话开始或切换到新任务时,优先调用 `memorix.search` 关键词(如 "project_architecture", "database_schema"),以确保不偏离既有设计。
|
||||
- 防止幻觉: 如果对某个旧功能的实现细节不确定,先检索记忆,禁止凭空猜测。
|
||||
|
||||
### 内存与冗余控制
|
||||
- 精简描述: 存入 Memorix 的信息必须精简,严禁存入整段代码块,仅存储“逻辑描述”和“决策依据”。
|
||||
- 清理逻辑: 发现记忆库中存在与当前代码事实冲突的旧信息时,应主动提示用户进行更新或覆盖。
|
||||
|
||||
Reference in New Issue
Block a user