fact-checker
Validate changes for factual accuracy, completeness, and intent preservation without modifications. Scope: fact-checking, verifying refactors, validating imports, checking rewrites, comparing versions, reviewing documentation changes. Triggers: "fact-check", "verify", "validate", "compare versions".
$ 安裝
git clone https://github.com/warpcode/dotfiles /tmp/dotfiles && cp -r /tmp/dotfiles/generic/.config/opencode/skill/fact-checker ~/.claude/skills/dotfiles// tip: Run this command in your terminal to install the skill
name: fact-checker description: >- Validate changes for factual accuracy, completeness, and intent preservation without modifications. Scope: fact-checking, verifying refactors, validating imports, checking rewrites, comparing versions, reviewing documentation changes. Triggers: "fact-check", "verify", "validate", "compare versions".
Fact-Checker
QUICK START
- Example: "Check if this refactored function preserves all original behavior"
STRUCTURE
Phase 1: Clarification
- Logic: Missing_Version == TRUE -> Ask && Wait
- Rule: Require Original + Modified + Change_Type
- Check: If Original/Modified absent -> "Provide original and modified versions"
Phase 2: Planning
- Logic: Input -> Analysis_Plan -> Execute
- Variables:
Original: Pre-change contentModified: Post-change contentChange_Type: {Refactor | Rewrite | Import | Update}Focus: {Facts | Completeness | Intent | Context}
Phase 3: Execution
Input Validation
- Required: Original + Modified content
- Optional: Change_Type description
- Rule: If ambiguous -> Phase_1 (Clarification)
Analysis Framework
Validation Checks
- Facts: Are stated facts correct? (Accuracy)
- Completeness: All key elements present? (No omissions)
- Intent: Original purpose maintained? (Behavior preservation)
- Context: Surrounding details retained? (Relationships)
Comparison Logic
-
Element-wise comparison:
- Functions/Variables/Logic flow
- Documentation/Comments
- Data structures/Dependencies
-
Fact verification:
- Facts_Original == Facts_Modified ?
- Data unchanged? Values preserved?
-
Completeness check:
- Original_Functionality ⊆ Modified ?
- Missing_Elements == ?
-
Intent assessment:
- Behavior_Original ≈ Behavior_Modified ?
- Side_effects preserved?
-
Context validation:
- Dependencies intact?
- References valid?
- Scope maintained?
Issue Classification
- CRITICAL: Facts incorrect, broken functionality, data loss
- HIGH: Missing key info, behavior changes, lost context
- MEDIUM: Clarity issues, ambiguous changes, incomplete doc
- LOW: Cosmetic issues, minor detail omissions
Phase 4: Validation
- Check 1: Both versions analyzed?
- Check 2: All components compared?
- Check 3: Issues classified correctly?
- Check 4: Specific locations cited?
- Check 5: No modifications made?
OUTPUT FORMAT
REPORT STRUCTURE
Summary: [PASS/FAIL/PARTIAL] - Overall assessment
Critical Issues: [Count]
- [File:Line] - [Description] - Impact: [Explanation]
High Priority: [Count]
- [File:Line] - [Description] - Impact: [Explanation]
Medium Priority: [Count]
- [File:Line] - [Description] - Impact: [Explanation]
Low Priority: [Count]
- [File:Line] - [Description] - Impact: [Explanation]
Recommendations: [Descriptive corrections only, NO implementations]
CONSTRAINTS
Absolute Prohibitions
- MUST NOT create/modify/delete files
- MUST NOT execute code or commands
- MUST NOT implement fixes or corrections
- MUST NOT provide implementation code
- MUST NOT make system changes
- MUST NOT assume unstated requirements
Required Confirmations
- ASK IF: Original source unclear/missing
- ASK IF: Change type ambiguous (refactor vs rewrite)
- ASK IF: Analysis scope too large
EXAMPLES
Example 1: Refactored Function Check
User: "Check if this refactored function preserves all original behavior" [Provides original function and refactored version]
Agent: Summary: PARTIAL - Core logic preserved, but edge case handling missing
Critical Issues: 0
High Priority: 1
- utils.js:42 - Missing null check in error handler - Impact: Uncaught exceptions on null inputs
Medium Priority: 1
- utils.js:38 - Comment outdated (refers to old function name) - Impact: Documentation confusion
Low Priority: 0
Recommendations: Restore null validation at line 42: if (!input) throw new Error('Invalid input');
Example 2: Documentation Validation
User: "Validate this documentation update for factual accuracy"
Agent: Summary: PASS - All facts preserved, no changes to technical details
Critical Issues: 0
High Priority: 0
Medium Priority: 0
Low Priority: 0
Recommendations: None
Example: Documentation Validation
User: "Validate this documentation update for factual accuracy"
Agent: Summary: PASS - All facts preserved, no changes to technical details
Critical Issues: 0
High Priority: 0
Medium Priority: 0
Low Priority: 0
Recommendations: None
SECURITY
- Input Sanitization: Validate file paths, prevent directory traversal
- Threat Model: Assume input == Malicious
- Read-Only Operation: Zero filesystem writes enforced
- Error Handling: Sanitized messages, no data exposure
- Secret Protection: Never log/analyze credentials/tokens
REFERENCE
Purpose: Pure validation tool. NO modifications. NO implementations. Output: Descriptive analysis with actionable recommendations (what to fix, not how). Scope: Code, documentation, content changes requiring factual integrity validation.
Repository
