Skip to content
Back to skills

Pope Answer Evaluator

ASecurity

Normalize POPE yes/no answers and compute object hallucination classification metrics.

  • 247 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
testingpythonbash

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill pope_answer_evaluator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pope Answer Evaluator?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pope Answer Evaluator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-pope-answer-evaluator/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-pope-answer-evaluator)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: pope_answer_evaluator
description: Normalize POPE yes/no answers and compute object hallucination classification metrics.
---

# POPE Answer Evaluator

Use this skill after an LVLM or deterministic answer source has answered POPE polling questions. It converts raw answer text into binary yes/no predictions and computes the paper's standard metrics.

Do not use this skill to generate POPE questions or choose absent objects. It assumes labels already come from a POPE question file.

## Inputs

- Ordered answer records with an `answer` string.
- Ordered label/question records with `label` equal to `yes` or `no`.
- Optional output path for metrics JSON.

## Outputs

- Normalized predictions.
- TP, FP, TN, FN.
- Accuracy, precision, recall, F1 score, and yes ratio.
- Per-example records for auditing answer normalization.

## Workflow

1. Pair answer and label records by order.
2. Keep only the first sentence-like segment of each raw answer.
3. Strip commas and split words.
4. Mark the prediction as `no` if the first segment contains `no`, `No`, or `not`; otherwise mark it as `yes`.
5. Convert labels to binary values and compute confusion counts.
6. Compute metrics with safe zero-division handling.
7. Save the metrics and normalized prediction log.

## Validation

Run:

```bash
python scripts/pope_answer_evaluator.py --self-test
python tests/test_answer_evaluator.py
```

The tests cover sentence-form answers, negation, confusion counts, F1, and yes ratio.

## Limitations

This is repository-compatible normalization and may classify unusual answers conservatively as `yes` unless explicit negation is present. If a project needs stricter invalid-answer handling, record that policy separately.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.