Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
53 changes: 0 additions & 53 deletions CITATION.cff

This file was deleted.

5 changes: 5 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ When iterating on docs (`docs/`), use `uv run sphinx-autobuild docs docs/_build/

The project uses Weights & Biases for experiment tracking. Ensure `wandb` is configured if running experiments.

### Releasing (to PyPI)

1. Bump `version` in `pyproject.toml` (the published version is read from there).
2. GitHub → Releases → new release; in "Choose a tag" enter `v<version>` and pick "Create new tag on publish", then publish. This triggers `.github/workflows/publish.yml` → PyPI.

## Architecture (orientation)

TROPT is built on **four orthogonal components** glued together by an executable **recipe**:
Expand Down
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ After implementing your addition to TROPT, and running the essential checks, ope
1. Fork → create a topic branch off `main`, preferably with an informative name (e.g. `feature/my-loss`, `fix/gcg-retokenize`).
2. Open a PR against `main`. The description should state *what* and *why*, link the issue, and call out any breaking changes (preferably none) or new dependencies.

### Releasing (maintainers)

To cut a new release to PyPI: (1) bump `version` in `pyproject.toml` (the published version is read from there), then (2) publish a new GitHub Release, entering a matching `v<version>` tag in "Choose a tag" ("Create new tag on publish"), which triggers the publish workflow.


---

Expand Down
23 changes: 11 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<p align="center">
<img src="docs/_static/logo.svg" alt="TROPT — Textual Trigger Optimization Toolbox" width="500">
<img src="https://www.tropt.dev/_static/logo.svg" alt="TROPT — Textual Trigger Optimization Toolbox" width="500">
</p>

<p align="center">
Expand All @@ -11,16 +11,16 @@
<p align="center">
<a href="https://tropt.dev"><strong>Website</strong></a> &ensp;|&ensp;
<strong>Quick Start (<a href="https://tropt.dev#get-started">Examples</a>, <a href="quickstart.ipynb">Notebook</a>)</strong> &ensp;|&ensp;
<a href="https://tropt.dev/guides/index.html"><strong>Guides</strong></a> &ensp;|&ensp;
<a href="https://tropt.dev/api/index.html"><strong>API Ref.</strong></a> &ensp;|&ensp;
<a href="[TODO]"><strong>Paper</strong></a>
<a href="https://arxiv.org/abs/2606.23496"><strong>Paper</strong></a>
</p>

<p align="center">
<a href="https://pypi.org/project/tropt/"><img src="https://img.shields.io/pypi/v/tropt?logo=python&logoColor=white&color=3776ab" alt="PyPI"></a>
<a href="https://github.com/matanbt/TROPT"><img src="https://img.shields.io/github/stars/matanbt/TROPT?style=flat&logo=github&color=181717" alt="GitHub stars"></a>
<a href="https://github.com/matanbt/TROPT/actions/workflows/test.yml"><img src="https://img.shields.io/github/actions/workflow/status/matanbt/TROPT/test.yml?branch=main&label=tests" alt="Tests"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-green?style=flat" alt="License"></a>
<a href="https://tropt.dev/guides/index.html"><img src="https://img.shields.io/badge/Guides-7c3aed?style=flat&logo=readthedocs&logoColor=white" alt="Guides"></a>
<a href="https://tropt.dev/api/index.html"><img src="https://img.shields.io/badge/API_Reference-7c3aed?style=flat&logo=readthedocs&logoColor=white" alt="API Reference"></a>
</p>


Expand Down Expand Up @@ -72,7 +72,7 @@ print("Lowest loss:", result.best_loss)
```


### Compose Your Own Recipe 🫴
### Compose Your Own Recipe 🪄

Pick any model, loss, and optimizer and assemble them directly — this is how the _recipes_ are built underneath:

Expand Down Expand Up @@ -108,7 +108,7 @@ Quick examples for a custom optimizer and loss are in [quickstart.ipynb](quickst

## 🤖 Use TROPT with Your Coding Agent

TROPT ships with a skill for coding agents at [`skills/tropt/SKILL.md`](skills/tropt/SKILL.md) that tells any AI coding assistant (Claude Code, Codex, Gemini CLI, Cursor, …) how to install, run, and extend TROPT. Simply point your coding agent at it.
TROPT includes a skill for coding agents at [`skills/tropt/SKILL.md`](skills/tropt/SKILL.md) that tells any AI coding assistant (Claude Code, Codex, Gemini CLI, Cursor, …) how to install, run, and extend TROPT.


## Contributing
Expand Down Expand Up @@ -136,14 +136,13 @@ and authorized red-teaming of NLP models.

## Citation

[TODO paper cite!]
If you find this package useful, please cite our paper as follows:

```bibtex
@misc{tropt2026,
title = {TROPT: An Open Framework for Unifying and Advancing Discrete Text Optimization},
author = {Ben-Tov, Matan and Sharif, Mahmood},
year = {2026},
howpublished = {\url{https://github.com/matanbt/TROPT}},
@article{tropt2026,
title = {TROPT: An Open Framework for Unifying and Advancing Discrete Text Optimization},
author = {Ben-Tov, Matan and Sharif, Mahmood},
journal = {arXiv},
year = {2026},
}
```
11 changes: 6 additions & 5 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ myst:
<svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"><path fill="currentColor" d="M12 .5C5.65.5.5 5.65.5 12c0 5.08 3.29 9.39 7.86 10.91.58.11.79-.25.79-.55v-1.93c-3.2.7-3.87-1.54-3.87-1.54-.52-1.33-1.28-1.69-1.28-1.69-1.05-.71.08-.7.08-.7 1.16.08 1.77 1.19 1.77 1.19 1.03 1.76 2.7 1.25 3.36.96.1-.75.4-1.25.73-1.54-2.55-.29-5.24-1.28-5.24-5.7 0-1.26.45-2.29 1.18-3.1-.12-.29-.51-1.46.11-3.05 0 0 .97-.31 3.18 1.18a11.07 11.07 0 0 1 5.79 0c2.21-1.49 3.18-1.18 3.18-1.18.62 1.59.23 2.76.11 3.05.74.81 1.18 1.84 1.18 3.1 0 4.43-2.7 5.4-5.27 5.69.41.35.78 1.05.78 2.12v3.14c0 .31.21.67.8.55C20.21 21.39 23.5 17.08 23.5 12 23.5 5.65 18.35.5 12 .5Z"/></svg>
GitHub
</a>
<a class="tropt-cta tropt-cta-secondary" href="#citation">
<a class="tropt-cta tropt-cta-secondary" href="https://arxiv.org/abs/2606.23496">
<svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true"><path fill="currentColor" d="M6 3h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Zm8 1.5V9h4.5L14 4.5ZM7 13h10v1.5H7V13Zm0 3h10v1.5H7V16Zm0 3h7v1.5H7V19Z"/></svg>
Paper
</a>
Expand Down Expand Up @@ -980,10 +980,11 @@ TROPT is built for *defensive research*: auditing, interpretability, robustness
If you find TROPT useful in your research, please cite:

```bibtex
@misc{tropt2026,
title = {TROPT: An Open Framework for Unifying and Advancing Discrete Text Optimization},
year = {2026},
howpublished = {\url{https://github.com/matanbt/TROPT}},
@article{tropt2026,
title = {TROPT: An Open Framework for Unifying and Advancing Discrete Text Optimization},
author = {Ben-Tov, Matan and Sharif, Mahmood},
journal = {arXiv},
year = {2026},
}
```

Expand Down
5 changes: 1 addition & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "tropt"
version = "0.1.0"
version = "0.1.1"
description = "A toolbox for optimizing discrete text triggers."
readme = "README.md"
requires-python = ">=3.10"
Expand All @@ -25,10 +25,7 @@ keywords = [
"ai-safety",
]
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
Expand Down
Loading