colonelpanic8/dotfiles/password-reset
Claude Code and agent skill by colonelpanic8/dotfiles
- community
Checking that the SKILL.md file is still in the repository.
Use when the user wants to reset or rotate a website or service password end-to-end, including finding the right `pass` entry, generating a new password with `xkcdpassgen`, retrieving reset emails through `gws gmail` or a local mail CLI, completing the reset in the browser via the Chrome extension, and updating the password store safely without losing entry metadata.
Install
npx vskill@latest install colonelpanic8/dotfiles/password-resetSKILL.md
Password Reset
Overview
Handle password resets end-to-end. Prefer gws gmail for reset-email retrieval, the Chrome browser extension for website interaction, and the local xkcdpassgen helper for password generation.
Tool Priorities
- Prefer
gws gmailover opening Gmail in the browser. - If
gwsis unavailable, use an installed Gmail CLI or IMAP-based mail tool if one exists locally. Inspect the environment first instead of guessing command names. - Prefer the Chrome browser extension for all browser interaction.
- Use
pass findandpass showbefore asking the user for credentials or account details.
Password Generation
The local password generator is xkcdpassgen, defined in dotfiles/lib/functions/xkcdpassgen and available in shell as an autoloaded function.
Behavior:
- Generates
xkcdpass -n 3 | tr -d ' 'as the base password. - Appends one uppercase letter, one digit, and one symbol by default.
- Supports:
-Uto omit uppercase-Nto omit number-Sto omit symbol
Do not substitute a different password generator ungless the user explicitly asks.
Safe pass Update Pattern
xkcdpassgen writes directly to the pass entry it is given. Do not run it against the canonical entry before the reset succeeds, because:
- it would overwrite the current password immediately
- it would replace any extra metadata lines in a multiline
passentry
Use this pattern instead:
If the site rejects the password because of policy constraints, keep the canonical entry unchanged, delete or reuse the temp entry, and generate another candidate with different flags only if needed.
Reset Workflow
- Identify the account and canonical
passentry. - Run
pass find <service>and inspect likely matches withpass show. - Capture existing metadata before generating a new password.
- Generate the candidate password into a temporary
passentry withxkcdpassgen. - Start the reset flow in the browser via the Chrome extension:
- navigate to the login or account page
- use the site's "forgot password" flow, or
- sign in and navigate to security settings if the user asked for a rotation rather than a reset
- Use
gws gmailto retrieve the reset email when needed:
- search recent mail by sender domain, subject, or reset-related keywords
- open the message and extract the reset link
- navigate to that link in the browser via the Chrome extension
- Fill the new password from the temporary
passentry and complete the form. - Verify success:
- confirmation page, or
- successful login with the new password
- Promote the temp password into the canonical
passentry while preserving metadata, then remove the temp entry.
Email Guidance
Prefer gws gmail for reset-email handling. Typical pattern:
- list recent messages with
gws gmail users messages list --params '{"userId":"me","q":"from:service.example newer_than:7d"}' - bias toward reset keywords such as
reset,password,security,verify, orsignin - read shortlisted messages with
gws gmail users messages get --params '{"userId":"me","id":"MESSAGE_ID","format":"full"}'rather than browsing Gmail manually
If gws is unavailable, use an installed Gmail CLI or local mail helper only as a fallback. Keep that discovery lightweight and local to the current environment.
Browser Guidance
Use the Chrome browser extension to complete the reset flow directly:
- navigate to the reset or security page
- take snapshots to identify the relevant inputs and buttons
- click, fill, and submit through the site UI
- verify the success state before updating the canonical
passentry
Prefer driving the browser directly over describing steps for the user to perform manually.
Credentials And Account Data
- Search
passbefore asking the user for usernames, recovery emails, or OTP-related entries. - If the site texts a verification or 2FA code, read it yourself with
gmessages wait --since 5m --timeout 3m --query code(MCP:wait_for_message) instead of asking the user. - Preserve existing metadata lines in multiline
passentries whenever possible. - Never print the new password in the final response unless the user explicitly asks for it.
Failure Handling
- If account discovery is ambiguous, ask a short clarifying question only after checking
pass. - If the reset email does not arrive, search spam or alternate senders before giving up.
- If login or reset requires another secret that is not in
pass, then ask the user. - If the reset flow fails after temp-password generation, leave the canonical entry untouched.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingdotfiles/agents/skills/password-reset/SKILL.md
Popularity
- Repository stars
- 221
- Repository forks
- 22
- 7-day trend score
- 27
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/colonelpanic8/dotfiles/password-reset)