Goal
SkillDev toolsUpdate the outcome of unit tests
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Goal skill
What this skill tells your AI
The instructions your AI receives, as published by causify-ai/helpers in .claude/skills/testing.update_test_outcomes/SKILL.md and read by ahel’s review.
- The user passes you a list of tests or a repro script with tests failing
<FAILING_TESTS>because of mismatching actual vs expected outputs
Important
- For all code you must follow the instructions in
.claude/skills/coding.rules.md - Follow the invariants and conventions for unit tests in
.claude/skills/testing.rules.md
Workflow
Step 1
- Run the tests one at the time in the way the user suggested to verify that the tests are failing due to mismatching outputs
Step 2
-
Check each failing test method and find out if the result is checked with
self.check_string()self.assert_equal()or similar assertion (e.g.,hunteuti.assert_sys_calls(),self.assertEqual())
-
Print a table with the following info: path of test | fail / pass | check_string or assert_equal
| Path | Test | Status | Assertion Method | |------|------|--------|------------------| | dev_scripts_helpers/documentation/test/test_notes_to_pdf.py | Test_notes_to_pdf_latex_options::test1 | FAIL | self.assert_equal() with fuzzy_match=True | | dev_scripts_helpers/documentation/test/test_notes_to_pdf.py | Test_notes_to_pdf_latex_options::test2 | FAIL | self.assert_equal() with fuzzy_match=True | | dev_scripts_helpers/documentation/test/test_notes_to_pdf.py | Test_notes_to_pdf_output_types::test1 | FAIL | self.assert_equal() with fuzzy_match=True | -
Save this to a file
tmp.update_test_outcomes.failing_tests.md
Step 3
-
For each failing test method:
- If the result is checked with
self.check_string()- Run the test adding the pytest option
--update_goldento refresh the output
- Run the test adding the pytest option
- If the result is checked with
self.assert_equal()or similar assertions (e.g.,hunteuti.assert_sys_calls()) read the file{test_dir}/tmp.initial.actual.txt(e.g.,dev_scripts_helpers/documentation/test/outcomes/Test_run_pandoc_to_html.test1) containing the actual variable and update theexpectedvariable- E.g.,
expected = """ [{'args': (f'jupytext --to ipynb --update {py_file}',), 'function': 'hsystem.system', 'kwargs': {}}, {'args': (f'jupytext --sync {py_file}',), 'function': 'hsystem.system', 'kwargs': {}}] """
- E.g.,
- If the result is checked with
-
Follow the
## Code Formatting in Testsin .claude/skills/testing.rules.md# Test Input and Output Handling
-
Do not change way of checking results
- E.g., do not replace
self.assert*()withself.check_string()and vice versa - E.g., do not replace
self.assert*()withself.assertIn()
- E.g., do not replace
Verification
- Run all the tests to make sure they are passing
Signals
- GitHub stars
- 145
- Forks
- 159
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
testing-update-test-outcomes- Source
- github.com/causify-ai/helpers