CALICO: A Human-Centered, Codebook-Aligned System for Annotation
Organizations: UC San Diego · University of Southern California
Abstract
Large language models are increasingly used to scale codebook-based annotation in scientific research, but existing workflows provide limited support for translating domain experts' codebooks into reliable, revisable, and auditable prompts. Prompts are often treated as fixed instructions and hidden from annotators, making it difficult for non-technical domain experts to diagnose and correct model behavior when outputs violate codebook guidelines. In this paper, we present CALICO, a human-centered, codebook-aligned annotation workflow that treats prompts as editable, versioned, and optimizable artifacts. CALICO integrates codebook parsing, prompt generation, result inspection, prompt versioning, natural language human feedback, and label-supervised prompt optimization through existing optimizers such as GEPA, MIPROv2, and OPRO, together with our reflection-based optimizer, ReflectAgent. Empirically, we evaluate CALICO on domain-specific AI-companion chatbot conversation codebooks. Across evaluated dimensions, CALICO improves mean held-out performance by +13.0 and +7.4 absolute points for two coders, respectively. A coder-specificity analysis further suggests that optimized prompts capture coder-specific interpretations rather than only generic codebook clarification. CALICO runs as a web application that takes users from raw codebook materials to inspectable, exportable labels; the website, codebase, and live demo are released at https://calico-annotation.github.io/ under the Apache 2.0 License.
Figures & tables
| Coder A | Coder B | |||||
| Dimension | Zero-shot | + ReflectAgent | Zero-shot | + ReflectAgent | ||
| Self-Disclosure (single-label, accuracy %) | ||||||
| Level of disclosure | 68.1_{\,{\color[rgb]{0.5,0.5,0.5}\pm 2.7}} | \mathbf{70.0}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 1.7}} | 61.7_{\,{\color[rgb]{0.5,0.5,0.5}\pm 0.6}} | \mathbf{76.6}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 5.1}} | ||
| Disclosure as confession | 52.6_{\,{\color[rgb]{0.5,0.5,0.5}\pm 1.2}} | \mathbf{82.0}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 8.7}} | 49.6_{\,{\color[rgb]{0.5,0.5,0.5}\pm 3.8}} | \mathbf{50.1}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 1.9}} | ||
| Depth of disclosure | \mathbf{61.0}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 6.6}} | 58.7_{\,{\color[rgb]{0.5,0.5,0.5}\pm 2.4}} | 58.2_{\,{\color[rgb]{0.5,0.5,0.5}\pm 2.5}} | \mathbf{61.2}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 7.2}} | ||
| Intimacy of self-disclosure | 52.2_{\,{\color[rgb]{0.5,0.5,0.5}\pm 3.2}} | \mathbf{75.5}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 3.1}} | 54.9_{\,{\color[rgb]{0.5,0.5,0.5}\pm 2.5}} | \mathbf{66.0}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 3.5}} | ||
| Dim. | ZS | OPRO | GEPA | MIPRO | RA |
| Level | 68.1 | 72.4_{\,{\color[rgb]{0.5,0.5,0.5}\pm 4.6}} | \mathbf{74.8}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 1.6}} | 72.2_{\,{\color[rgb]{0.5,0.5,0.5}\pm 3.0}} | 70.0_{\,{\color[rgb]{0.5,0.5,0.5}\pm 1.7}} |
| Confession | 52.6 | 52.6_{\,{\color[rgb]{0.5,0.5,0.5}\pm 2.6}} | 77.8_{\,{\color[rgb]{0.5,0.5,0.5}\pm 5.5}} | \mathbf{85.2}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 7.3}} | 82.0_{\,{\color[rgb]{0.5,0.5,0.5}\pm 8.7}} |
| Depth | 61.0 | 58.7_{\,{\color[rgb]{0.5,0.5,0.5}\pm 6.3}} | \mathbf{64.8}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 3.4}} | 62.0_{\,{\color[rgb]{0.5,0.5,0.5}\pm 5.0}} | 58.7_{\,{\color[rgb]{0.5,0.5,0.5}\pm 2.4}} |
| Intimacy | 52.2 | 62.3_{\,{\color[rgb]{0.5,0.5,0.5}\pm 4.6}} | \mathbf{78.0}_{\,{\color[rgb]{0.5,0.5,0.5}\pm 2.4}} | 76.1_{\,{\color[rgb]{0.5,0.5,0.5}\pm 3.6}} | 75.5_{\,{\color[rgb]{0.5,0.5,0.5}\pm 3.1}} |
| mean | 58.5 | 61.5 | 73.8 | 73.9 | 71.5 |
| Tuned on | Eval. vs Coder A | Eval. vs Coder B |
| Coder A labels | 75.2 | 41.0 |
| Coder B labels | 51.4 | 71.4 |
Appendix figures & tables4 assets
Supplementary material from the paper’s appendix.
Appendix
| Coder A | Coder B | |||
| Dimension | ZS | +RA | ZS | +RA |
| Level | 0.581 | 0.598 | 0.659 | 0.858 |
| Confession | 0.482 | 0.686 | 0.457 | 0.529 |
| Depth | 0.569 | 0.549 | 0.581 | 0.609 |
| Intimacy | 0.525 | 0.643 | 0.532 | 0.611 |
| Model | Zero-shot | +RA | |
| gpt-5.4-mini | 52.2 | 75.5 | +23.3 |
| gpt-5.5 | 45.3 | 78.3 | +33.0 |
| gemini-3.1-pro | 38.4 | 73.0 | +34.6 |
| Qwen3-8B | 37.1 | 57.9 | +20.8 |
LLM-Assisted Annotation
Large language model-assisted annotation uses AI to label, classify, and structure data, often with human review to improve scale and consistency.
See all 202 papers