Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
ba08156
feat(memory): 添加 P0 记忆消融 harness 与注入开关
GOSICK-Angel May 31, 2026
0ecba95
docs(eval): 定义 P0 记忆有效性指标与反馈环激活门
GOSICK-Angel May 31, 2026
2a5ddd3
feat(web): 冲突决策提交后自动跳转下一个待决文件
GOSICK-Angel May 31, 2026
50c1eed
fix(core): 执行人工决策期间切换状态为 AUTO_MERGING
GOSICK-Angel May 31, 2026
71e1fec
docs: 整理 doc/ 目录结构并更新 README 索引
GOSICK-Angel May 31, 2026
0550482
docs(eval): 回填 P0 记忆有效性首组基线(MDL=0,不默认开启)
GOSICK-Angel May 31, 2026
e4b3fbc
feat(memory): PR-0d 记忆有效性跨臂因果归因(修正 HIR 假阳性)
GOSICK-Angel May 31, 2026
b83d142
feat(memory): P1-A 持久化软删 suppress(巩固 O-M6 临时过滤)
GOSICK-Angel May 31, 2026
6b4f905
feat(memory): P1-B 执行接地写回信号融合(judge + compile)
GOSICK-Angel May 31, 2026
100a337
chore(release): 配置 PyPI 发布元数据与 GitHub Actions release workflow
GOSICK-Angel May 31, 2026
6bc77c3
feat(memory): P1-C verified-repair 经验库(REPAIR_RECIPE)
GOSICK-Angel May 31, 2026
53b963e
docs(plan): 标注 Phase 1 A/B/C 落地状态与 P1-B ci 延后偏差
GOSICK-Angel May 31, 2026
4525008
feat(memory): P2-A 高信息条目强制(anti-poisoning 对偶)
GOSICK-Angel May 31, 2026
2af4890
feat(memory): P2-B 关键不变量锚定,防摘要漂移(F1)
GOSICK-Angel May 31, 2026
08e3f9e
docs(plan): 标注 Phase 2 A/B 落地状态与 security-sensitive 锚定延后
GOSICK-Angel May 31, 2026
f540613
feat(memory): Phase 3 离线提示优化 harness + opt-in CLI(不自动改生产提示)
GOSICK-Angel May 31, 2026
a12953d
docs(plan): 标注 Phase 3 落地状态与外移边界(rollout/no-arg gate/LLM-反思)
GOSICK-Angel May 31, 2026
918c194
fix(memory): P1-A固化 persist-suppress 判据升级(消除 PR-0d 假阳性)
GOSICK-Angel May 31, 2026
126302c
docs(plan): 记录 P1-A固化判据加固(eval-memory 分析驱动,消除假阳性)
GOSICK-Angel May 31, 2026
31008d6
feat(eval): 补齐 LLM-判断密集 golden 集决策面(B-class 干净合并 + J-SYSTEM pass/fail)
GOSICK-Angel Jun 1, 2026
85fb232
feat(eval): 接入 BCP 编译门禁为强制软门(文档声明→强制层落地)
GOSICK-Angel Jun 1, 2026
a8d2597
update README.md
GOSICK-Angel Jun 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Release to PyPI

on:
push:
tags:
- "v*"

permissions:
contents: read
id-token: write # required for Trusted Publishing (OIDC)

jobs:
build:
name: Build wheel
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: web/package-lock.json

- name: Build Web UI
working-directory: web
run: npm ci && npm run build

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"

- name: Build wheel and sdist
run: |
pip install hatch
hatch build

- name: Upload dist artifacts
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/

publish:
name: Publish to PyPI
needs: build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/project/code-merge-system/
steps:
- name: Download dist artifacts
uses: actions/download-artifact@v4
with:
name: dist
path: dist/

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
14 changes: 14 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,22 @@ merge validate --config <path> # validate config + env vars
merge init [--repo-path .] # generate per-target CLAUDE.md for merge decisions
merge plan-suggest [--target ... --candidates ...] # enumerate baseline commit-windows
merge forks-profile init # scaffold .merge/forks-profile.yaml (recommended ≥30 fork-deleted files)
merge eval-memory --on <run|json> --off <run|json> [--out <path>] # P0 memory ablation: compare memory=on vs memory=off effectiveness reports
merge optimize-prompts --gate <ID> [--golden <json> --rollouts <json> --strategies a,b --margin 0.02 --out <path>] # Phase 3 (opt-in, offline): generate + rank prompt variants for a *-SYSTEM gate; emits a HUMAN-REVIEW report, never auto-applies
```

`merge optimize-prompts` is offline and read-only w.r.t. production prompts:
gates are code builders, so a winning candidate is applied by a human editing
the gate's prompt source after reviewing the report. Scoring needs `--golden`
(JSON `[{case_id, expected_decision}]`) plus `--rollouts` (JSON
`{candidate_id: {case_id: decision}}` produced by running each candidate — the
cost-bearing step you run yourself). See `doc/plan/self-learning-system.md`
Phase 3 for the cost model.

To produce a `memory=off` run for the ablation, set `memory.inject_enabled: false`
in `.merge/config.yaml` and re-run on the same dataset; each run persists a
`memory_effectiveness.json` under its run dir that `merge eval-memory` consumes.

## Required Environment Variables

Each agent reads its API key from its own env var — no key is hardcoded:
Expand Down
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2025 Angel

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
543 changes: 323 additions & 220 deletions README.md

Large diffs are not rendered by default.

Loading
Loading