# Ponytail behavior gates: does the ruleset actually produce its refined # behaviors (not just carry the text)? Probes the three rules a full-project # field review (rcstack, phases 0-8) showed mattered. # # Run: npx promptfoo@latest eval -c benchmarks/behavior.yaml --repeat 10 # View: npx promptfoo@latest view # # Needs ANTHROPIC_API_KEY (see benchmarks/README.md). The grader (behavior.js) # is proven separately by tests/behavior.test.js, which needs no API key. # # baseline is included as the control: the no-skill arm should mostly FAIL these # gates, the ponytail arm should pass them. That delta is the point. description: "Ponytail behavior gates: hardware calibration, requested explanation, one runnable check." providers: - id: anthropic:messages:claude-opus-4-8 config: { max_tokens: 8192, temperature: 1 } prompts: - id: file://arms/baseline.js label: baseline (no skill) - id: file://arms/ponytail.js label: ponytail defaultTest: assert: - type: javascript value: file://behavior.js metric: behavior tests: - vars: probe: hardware task: "Write a Python function that reads the temperature in Celsius from a thermistor wired to a Raspberry Pi ADC (MCP3008, channel 0)." - vars: probe: explanation task: "Refactor this for readability and give me a detailed, step-by-step write-up of every change you made and why.\n\ndef p(d):\n r = []\n for x in d:\n if x.get('a') and x['a'] > 0:\n r.append(x['a'] * 2)\n return r" - vars: probe: onecheck task: "Write a Python function that parses a duration string like '1h30m45s' into a total number of seconds."