원클릭으로
test-integrity
Review branch diff for test weakening patterns in Parallax. Last line of defense before commit/merge.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Review branch diff for test weakening patterns in Parallax. Last line of defense before commit/merge.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Structured audit of the Parallax codebase. Run periodically or before major milestones.
Audit all living documentation against the actual codebase and report inconsistencies.
Bootstrap a new Parallax dev session. Reviews recent handoffs, MEMORY.md, and current project state.
Scaffold a new experiment for Parallax development. Creates a structured manifest linked to a hypothesis.
Generate a structured handoff summary for Parallax development sessions.
Guides hypothesis-driven investigation for Parallax development. Invoke before starting any investigation, feature, or experiment.
| name | test-integrity |
| description | Review branch diff for test weakening patterns in Parallax. Last line of defense before commit/merge. |
Review the full branch diff for test weakening patterns. Comprehensive, defense-in-depth check covering both syntactic and semantic weakening.
If the user provided a base branch argument (e.g., /test-integrity se/feature-a), use that as the base instead of main/master.
Run these commands to select the appropriate diff:
git diff --cached --name-only (staged changes)git diff --name-only (unstaged changes)git merge-base HEAD <base> where <base> is the user-provided branch, or main (fall back to master if main does not exist)Decision logic:
git diff --cachedgit diffgit diff $(git merge-base HEAD <base>)...HEADFilter to test files only: paths containing tests/, or files named test_*.py / *_test.py.
If no test files are in the diff, report "No test files modified" and PASS.
Read the filtered diff carefully. For each test file, check every category below. Use semantic understanding -- do not rely solely on regex.
@pytest.mark.skip or @pytest.mark.skipif added@pytest.mark.xfail addedskipIf / skipUnless conditions added or loosened# noqa added in test files# type: ignore added in test filesassert True or assert 1 == 1 or equivalent tautologiespass, ... (Ellipsis), or returntest_* functions or test classes deleted@pytest.mark.parametrize entries removed (test matrix shrunk)atol, rtol, abs_tol, rel_tol, tolerance arguments increasedpytest.approx tolerances widenednumpy.testing.assert_allclose tolerances increasedassertAlmostEqual places argument decreased==) changed to inequality (>=, <=, >, <, !=)is not None or truthiness checkin, startswith, or endswith substring checkassert x < 0.01 to assert x < 0.1)@patch, @mock.patch, MagicMock introduced where real behavior was previously testedmonkeypatch replacing a function that was previously called for realtry/except blockspytest.raises context scope widened to cover more code than the expected raise pointValueError to Exception)# assert ...)if False: or if 0: wrapping test logicfunction to module or session) reducing test isolationautouse fixtures added that skip or alter test behavior globallyFor each finding, determine if it is justified:
Mark findings as unjustified (default) or justified with a brief explanation. When in doubt, flag it -- false positives are better than missed weakening.
Present findings inline:
## Test Integrity Review
**Diff source:** [branch diff vs main | staged changes | unstaged changes]
**Test files reviewed:** [count]
### Findings
#### [CATEGORY] [severity] -- [file:line-range]
**Pattern:** [which checklist item]
**Detail:** [what changed and why it weakens the test]
**Justified:** [yes/no -- explanation if yes]
### Summary
- High severity: [count]
- Medium severity: [count]
- Low severity: [count]
- Justified (excluded): [count]
### Verdict: [PASS | FAIL]
[PASS if zero unjustified high/medium findings. FAIL otherwise.]