Self-Review Skill
SkillAI & modelsLets your agent check its own code changes against project rules before showing them to you.
Use Self-Review Skill in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Self-Review Skill and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Self-Review Skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
About this skill
Agent self-reviews its own diff against TASTE_INVARIANTS.md before presenting to user. Catches mechanical violations early.
What this skill tells your AI
The instructions your AI receives, as published by anyproto/anytype-swift in .claude/skills/self-review/SKILL.md and read by Ahel’s review.
Purpose
Verify your own code changes against TASTE_INVARIANTS.md before presenting them to the user. Catch mechanical violations before they reach human review.
When to Use
- After completing any code implementation
- Before suggesting changes are ready
- When the
simplifyskill activates (complements it)
Workflow
Step 1: Gather Your Changes
Identify all files you modified or created in this session.
Step 2: Run Invariant Checks
For each modified .swift file, check against TASTE_INVARIANTS.md:
# Check for deprecated APIs in changed files
rg '\.foregroundColor\(' <file>
rg '\.cornerRadius\(' <file>
rg 'NavigationView' <file>
# Check for plain Text (excluding AnytypeText)
rg '[^a-zA-Z]Text\(' <file> | grep -v AnytypeText | grep -v searchable | grep -v navigationTitle
# Check for hardcoded strings in UI
rg '(Text|AnytypeText)\("[^"]*"\)' <file> | grep -v 'Loc\.'
# Check for hardcoded colors
rg 'Color\(red:|UIColor\(red:|#[0-9a-fA-F]{6}' <file>
# Check for force unwraps (rough)
rg '!\.' <file> | grep -v '//' | grep -v 'test'
# Check for print statements
rg 'print\(' <file>
# Check for String(format: Loc.)
rg 'String\(format: Loc\.' <file>
# Check for Group with lifecycle modifiers
rg -A5 'Group\s*\{' <file> | rg '\.onAppear|\.task'
Step 3: Check Refactoring Completeness
If you renamed anything:
rg "oldName" --type swift
Ensure 0 results outside generated files.
Step 4: Report
- If violations found: fix them before presenting to user
- If clean: proceed silently (don't announce the self-review)
- If uncertain about an exception: note it to the user
Key Principle
"When the agent struggles, the fix is never 'try harder' — it's 'what capability is missing?'"
If you keep violating the same invariant, add better tooling or documentation, not more willpower.
Related
TASTE_INVARIANTS.md— the source of truth for mechanical rulescode-review-developer— for reviewing others' codesimplify— for code quality improvements
Signals
- GitHub stars
- 520
- Forks
- 78
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
self-review-anyproto- Source
- github.com/anyproto/anytype-swift
github.com/anyproto/anytype-swift