Skip to content

Commit 6c3e844

Browse files
author
C3 Maintainer
committed
chore: prepare C3 open-source release
0 parents  commit 6c3e844

154 files changed

Lines changed: 38569 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Bug report
2+
description: Report a reproducible bug in training, evaluation, or analysis.
3+
title: "bug: "
4+
labels: ["bug"]
5+
body:
6+
- type: textarea
7+
id: summary
8+
attributes:
9+
label: Summary
10+
description: What happened and what you expected to happen.
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: env
15+
attributes:
16+
label: Environment
17+
description: OS, Python, CUDA, GPU, package versions, commit hash.
18+
placeholder: |
19+
OS:
20+
Python:
21+
CUDA:
22+
GPU:
23+
Commit:
24+
validations:
25+
required: true
26+
- type: textarea
27+
id: reproduce
28+
attributes:
29+
label: Reproduction steps
30+
description: Paste exact commands and configs.
31+
placeholder: |
32+
1.
33+
2.
34+
3.
35+
validations:
36+
required: true
37+
- type: textarea
38+
id: logs
39+
attributes:
40+
label: Relevant logs
41+
description: Include key traceback or stderr snippets.
42+
validations:
43+
required: true
44+
- type: checkboxes
45+
id: checks
46+
attributes:
47+
label: Preflight checks
48+
options:
49+
- label: I ran `bash scripts/audit/pre_release.sh`
50+
- label: I ran `bash scripts/reproduce/smoke.sh`
51+
- label: I verified data files via `bash scripts/data/prepare_all.sh --out_dir data --strict 1`

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
blank_issues_enabled: false
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Feature request
2+
description: Propose an enhancement to reproducibility, analysis, or usability.
3+
title: "feat: "
4+
labels: ["enhancement"]
5+
body:
6+
- type: textarea
7+
id: motivation
8+
attributes:
9+
label: Motivation
10+
description: What problem does this solve?
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: proposal
15+
attributes:
16+
label: Proposed solution
17+
description: Describe the exact user-facing behavior and interfaces.
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: alternatives
22+
attributes:
23+
label: Alternatives considered
24+
description: Any trade-offs or rejected options.
25+
- type: checkboxes
26+
id: compatibility
27+
attributes:
28+
label: Compatibility considerations
29+
options:
30+
- label: This proposal keeps existing CLI behavior backward-compatible.
31+
- label: This proposal requires a breaking change and should be versioned/documented.

.github/pull_request_template.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
## What changed
2+
3+
-
4+
5+
## Why this change
6+
7+
-
8+
9+
## Reproducibility impact
10+
11+
- [ ] No impact on training/eval outputs
12+
- [ ] Affects data preparation outputs (updated `configs/data_manifest.yaml`)
13+
- [ ] Affects evaluation/analysis pipeline behavior
14+
15+
## Risk assessment
16+
17+
- Edge cases:
18+
- Backward compatibility:
19+
- Performance impact:
20+
21+
## How to test
22+
23+
- [ ] `bash scripts/audit/pre_release.sh`
24+
- [ ] `bash scripts/reproduce/smoke.sh`
25+
- [ ] Additional task-specific commands:
26+
27+
## Reviewer checklist
28+
29+
- [ ] CLI/API compatibility is preserved or explicitly documented
30+
- [ ] Docs/configs updated with behavior changes
31+
- [ ] No secrets, private paths, or large artifacts introduced
32+
- [ ] Repro steps are complete and deterministic

.github/workflows/ci-lite.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: ci-lite
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches: [main, master]
7+
8+
jobs:
9+
unit-and-smoke:
10+
runs-on: ubuntu-latest
11+
env:
12+
PYTHONDONTWRITEBYTECODE: "1"
13+
PYTHONPYCACHEPREFIX: ".cache/pycache"
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
18+
- name: Setup Python
19+
uses: actions/setup-python@v5
20+
with:
21+
python-version: "3.11"
22+
23+
- name: Install lightweight test dependencies
24+
run: |
25+
python -m pip install -U pip
26+
python -m pip install -e .[test]
27+
28+
- name: Run unit tests
29+
run: |
30+
pytest -q -p no:cacheprovider tests
31+
32+
- name: Run fixture math smoke
33+
run: |
34+
bash scripts/reproduce/smoke.sh \
35+
--task tests/fixtures/tasks/mini_math.yaml \
36+
--limit 1 \
37+
--print_example 0 \
38+
--skip_import_checks 1
39+
40+
- name: Run fixture code smoke
41+
run: |
42+
bash scripts/reproduce/smoke.sh \
43+
--task tests/fixtures/tasks/mini_code.yaml \
44+
--limit 1 \
45+
--print_example 0 \
46+
--skip_import_checks 1
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: pre-release-audit
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches: [main, master]
7+
8+
jobs:
9+
audit:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v4
14+
15+
- name: Setup Python
16+
uses: actions/setup-python@v5
17+
with:
18+
python-version: "3.11"
19+
20+
- name: Run pre-release audit
21+
run: |
22+
bash scripts/audit/pre_release.sh

.gitignore

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
pip-wheel-metadata/
24+
share/python-wheels/
25+
*.egg-info/
26+
.installed.cfg
27+
*.egg
28+
MANIFEST
29+
30+
# PyInstaller
31+
# Usually these files are written by a python script from a template
32+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
33+
*.manifest
34+
*.spec
35+
36+
# Installer logs
37+
pip-log.txt
38+
pip-delete-this-directory.txt
39+
40+
# Unit test / coverage reports
41+
htmlcov/
42+
.tox/
43+
.nox/
44+
.coverage
45+
.coverage.*
46+
.cache
47+
nosetests.xml
48+
coverage.xml
49+
*,cover
50+
.hypothesis/
51+
.pytest_cache/
52+
53+
# Translations
54+
*.mo
55+
*.pot
56+
57+
# Django stuff:
58+
*.log
59+
local_settings.py
60+
db.sqlite3
61+
db.sqlite3-journal
62+
63+
# Flask stuff:
64+
instance/
65+
.webassets-cache
66+
67+
# Scrapy stuff:
68+
.scrapy
69+
70+
# Sphinx documentation
71+
docs/_build/
72+
73+
# PyBuilder
74+
target/
75+
76+
# Jupyter Notebook
77+
.ipynb_checkpoints
78+
79+
# IPython
80+
profile_default/
81+
ipython_config.py
82+
83+
# pyenv
84+
.python-version
85+
86+
# pipenv
87+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
88+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
89+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
90+
# install all needed dependencies.
91+
Pipfile.lock
92+
93+
# poetry
94+
poetry.lock
95+
96+
# celery beat schedule file
97+
celerybeat-schedule
98+
99+
# SageMath parsed files
100+
*.sage.py
101+
102+
# Environments
103+
.env
104+
.venv
105+
env/
106+
venv/
107+
ENV/
108+
env.bak/
109+
venv.bak/
110+
111+
# Spyder project settings
112+
.spyderproject
113+
.spyproject
114+
115+
# Rope project settings
116+
.ropeproject
117+
118+
# mkdocs documentation
119+
/site
120+
121+
# mypy
122+
.mypy_cache/
123+
.dmypy.json
124+
dmypy.json
125+
126+
# Pyre type checker
127+
.pyre/
128+
129+
# Custom ignores for this repo
130+
data/
131+
ckpt/
132+
wandb/
133+
runs/
134+
*.pt
135+
*.pth
136+
*.bin
137+
*.safetensors
138+
139+
# Local caches / artifacts (not shipped)
140+
models/
141+
artifacts/

CITATION.cff

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
cff-version: 1.2.0
2+
message: "If you use this software, please cite our paper."
3+
title: "C3: Contextual Counterfactual Credit Assignment for Multi-Agent Reinforcement Learning in LLM Collaboration"
4+
type: software
5+
license: Apache-2.0
6+
authors:
7+
- family-names: Chen
8+
given-names: Yanjun
9+
email: yan-jun.chen@connect.polyu.hk
10+
- family-names: Sun
11+
given-names: Yirong
12+
- family-names: Wang
13+
given-names: Hanlin
14+
- family-names: Zhang
15+
given-names: Xinming
16+
- family-names: Shen
17+
given-names: Xiaoyu
18+
- family-names: Li
19+
given-names: Wenjie
20+
- family-names: Zhang
21+
given-names: Wei
22+
keywords:
23+
- multi-agent reinforcement learning
24+
- credit assignment
25+
- large language models
26+
- counterfactual evaluation
27+
- RLHF infrastructure
28+
date-released: "2026-02-11"
29+
preferred-citation:
30+
type: article
31+
title: "Contextual Counterfactual Credit Assignment for Multi-Agent Reinforcement Learning in LLM Collaboration"
32+
authors:
33+
- family-names: Chen
34+
given-names: Yanjun
35+
- family-names: Sun
36+
given-names: Yirong
37+
- family-names: Wang
38+
given-names: Hanlin
39+
- family-names: Zhang
40+
given-names: Xinming
41+
- family-names: Shen
42+
given-names: Xiaoyu
43+
- family-names: Li
44+
given-names: Wenjie
45+
- family-names: Zhang
46+
given-names: Wei
47+
year: 2026
48+
notes: "Manuscript associated with C3 release (see C3-0211版.pdf in the project materials)."

0 commit comments

Comments
 (0)