Post-Implementation Cleanup
SkillFiles & storageReviews your recently changed code files for verbose patterns, inconsistencies, and readability issues.
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 Post-Implementation Cleanup skill
About this capability
MUST run after writing or modifying code — reviews changed files for verbose patterns, inconsistencies, and readability issues before considering work done
What this skill tells your AI
The instructions your AI receives, as published by trycompai/comp in .claude/skills/cleanup/SKILL.md and read by ahel’s review.
This skill is mandatory. After writing or modifying code, you MUST review all changed files before reporting the task as complete. Code must be readable at a glance.
When to Run
- After completing any implementation work
- After fixing bugs
- After refactoring
- Before committing
Checklist
For every file you changed, verify:
1. No Verbose Defensive Checks
Extract repeated patterns into typed helpers.
// ❌ Verbose and repeated
const perms = typeof role.permissions === 'string'
? JSON.parse(role.permissions) : role.permissions;
if (perms && typeof perms === 'object' && Array.isArray(perms.portal) && perms.portal.length > 0) {
// ✅ Typed helper
const perms = parseRolePermissions(role.permissions);
if (perms?.portal?.length) {
2. Consistent Idioms Across Files
The same check must use the same pattern everywhere.
// ❌ Inconsistent
file1: perms?.portal?.length > 0
file2: perms?.portal?.length
// ✅ Pick one
perms?.portal?.length
3. No Redundant Type Casts
If you need a cast to satisfy TypeScript, extract a helper function instead.
// ❌ Verbose cast repeated in every file
const restrictedRoles: readonly string[] = RESTRICTED_ROLES;
restrictedRoles.includes(role);
// ✅ Helper in shared package
export function isRestrictedRole(role: string): boolean {
return (RESTRICTED_ROLES as readonly string[]).includes(role);
}
4. Error Handling on Boundaries
JSON.parse, external API calls, and DB queries at system boundaries need error handling.
// ❌ Unguarded parse
const parsed = JSON.parse(value);
// ✅ Safe parse
try {
return JSON.parse(value);
} catch {
return null;
}
5. Shared Patterns Belong in Shared Packages
If the same logic appears in 2+ apps (api, app, portal), extract it to a shared package (packages/auth, packages/db, etc.).
6. No Dead Code
- Remove unused imports
- Remove unused variables
- Remove unused function parameters
- Remove props that are always null/false
7. Readable at a Glance
- Function and variable names should convey intent without reading the implementation
- One-liner expressions over multi-line when equally clear
- No nested ternaries
How to Run
- List all files you modified:
git diff --name-only - Read each file and check against this checklist
- Fix any issues found
- Typecheck after fixes:
npx tsc --noEmit
Signals
- GitHub stars
- 2k
- Forks
- 412
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
cleanup-trycompai- Source
- github.com/trycompai/comp