m13v/ai-browser-profile/review
Claude Code and agent skill by m13v/ai-browser-profile
- community
Checking that the SKILL.md file is still in the repository.
Use when the user says 'review memories', 'clean up the memory database', 'process unreviewed memories', 'memory cleanup', 'merge duplicate memories', or wants periodic LLM-powered post-ingestion review. Removes junk, merges duplicates, fixes miskeyed data, marks good entries as reviewed.
Install
npx vskill@latest install m13v/ai-browser-profile/reviewSKILL.md
Memory Review
LLM-powered post-ingestion review of the user memories database. Processes unreviewed memories in phases — bulk cleanup first, then per-entry review.
Setup
Workflow
Phase 0: Fast Pass (bulk cleanup)
Before reviewing individual entries, bulk-delete entire categories of known noise. This typically removes ~50% of entries instantly.
Check for leaked secrets before bulk-deleting autofill. Grep for client_secret, api_key, token, password in autofill values and flag them to the user before deleting.
Phase 1: Supersession Chain Repair
After the fast pass, single-value key chains (first_name, last_name, full_name, card_holder_name, email) are often corrupted. The extraction supersedes the real value with garbage because each new autofill entry blindly replaces the old one.
Common pattern: first_name chain goes Matthew → Marina → mediar → ... leaving "mediar" as the active value.
Fix by:
- Deleting garbage entries (code identifiers, other people's names, company names in name fields)
- Unsuperseding the real value:
UPDATE memories SET superseded_by=NULL, superseded_at=NULL WHERE id=? - Boosting confidence on the real value if needed
Phase 2: Per-Entry Review
Now process remaining unreviewed entries in batches:
- Call
mem.get_unreviewed(limit=50)to get a batch - Print the batch as a numbered table
- Classify each as KEEP, DELETE, MERGE, or FIX
- Execute actions via
mem.delete(),mem.update_memory(), etc. - Call
mem.mark_reviewed([...ids...])on all processed IDs (including kept ones) - Print summary per batch
- Repeat until no unreviewed remain
Phase 3: Profile Verification
After all entries are reviewed, verify the profile output catches any residual issues:
Check for:
- Wrong name showing (garbage superseded the real one)
- Mixed cities/states (e.g. "San Francisco, New York" in the same address)
- Garbage card holder names
- Missing fields that should be populated
Fix any issues, then mem.close().
Classification Criteria
DELETE — remove entirely
- Gibberish/test data:
"wegs sdg","asdf","test123","technical placeholder just to pay", single characters - Code identifiers in name fields: values containing underscores (
investor_role,handle_new_workflow_analysis,on_low_level_event_insert), or known non-names (os,type,use-case) - Leaked secrets: values containing
client_secret,GOCSPX-, full API keys, OAuth tokens, private keys — flag to user before deleting - Other people's data: names/emails/phones that belong to someone else — UNLESS stored as
contact:*orlinkedin:*keys - Company names in name fields:
first_name="mediar",last_name="inc",full_name="Mediar, inc."— these are autofill bugs - Truncated names:
last_name="Di",full_name="Matthew Di",full_name="Matt"(incomplete) - Noise locations: cities/states from insurance quoting, comparison shopping, or form testing
- Expired card data: card expiry dates in the past
- Meaningless amounts:
"100.00","199.00","1.00","$ 245.80"— these are form values, not useful data - Duplicate phone formats: keep only one format per phone number (prefer international format with
+1)
MERGE — combine duplicates
- Same phone, different formats:
"+1 650-796-1489","(650) 796-1489","6507961489"— keep the international format with highest confidence, delete all others - Same email, different casing: keep lowercase
- Duplicate DOB entries: identify the real one (consistent across sources) vs noise
- Same contact, multiple entries: merge into highest-confidence one
When merging: keep highest confidence. If tied, keep highest accessed_count. Delete the rest.
FIX — correct bad data
- Wrong key assignment:
company="Dmitrii Diakonov"→ delete (person name in company field) - Wrong confidence: real DOB at 0.4 while fake one at 0.6 → boost real one
- Missing tags:
phonekey withoutphonetag,emailwithoutemailtag - Broken supersession: use
UPDATE memories SET superseded_by=NULL, superseded_at=NULL WHERE id=? - Use
mem.update_memory(id, key=..., value=..., confidence=..., tags=[...])for fixes
KEEP — mark as reviewed
- Genuine user data
- Correctly keyed and tagged entries
- Legitimate contacts, accounts, tools
- Just call
mem.mark_reviewed([id])— no changes needed
Output Format
For each batch, print a table like:
At the end, print the profile and final stats:
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingreview/SKILL.md
Popularity
- Repository stars
- 35
- Repository forks
- 3
- 7-day trend score
- 18
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/m13v/ai-browser-profile/review)