brainstorming
Structured design dialogue that validates ideas before implementation begins.
chrome-form-filler
Safely fills web forms in Chrome with user approval and verification at every step. Use when asked to "fill this form", "complete the form for me", "fill out registration", "submit this application", or when user needs form automation with safety controls. Works with Chrome browser tabs via MCP t...
Full skill instructions
Fill a web form safely with user approval:
User: "Fill out this registration form with my information"
Claude:
1. Gets tab context and reads form fields
2. Presents fields to user for approval
3. Fills each field incrementally
4. Verifies values after filling
5. Requests submission approval
6. Submits form only after confirmation
Critical Safety Rule: NEVER fill sensitive data (passwords, credit cards, SSNs, banking info) - always instruct user to fill these themselves.
This skill automates web form filling with safety controls and user approval at every critical step:
1. Get Tab Context
Call: tabs_context_mcp(createIfEmpty=true)
Verify: Tab group exists and tab ID is valid
2. Read Page for Form Fields
Call: read_page(tabId, filter="interactive")
Identify: All input fields, selects, textareas, checkboxes, radio buttons
Extract: Field labels, types, current values, required status
3. Present Plan to User
Call: update_plan(
domains=["current-domain.com"],
approach=[
"Identify all form fields on [page name]",
"Fill [X] fields with provided data",
"Verify each field after filling",
"Request approval before submission",
"Submit form and verify confirmation"
]
)
User must approve plan before proceeding.
4. Map Fields to User Data
Present structured summary to user:
Found [X] fields on [Form Name]:
Required Fields:
- First Name (text input) → [User's data or ASK]
- Email (email input) → [User's data or ASK]
- Phone (tel input) → [User's data or ASK]
Optional Fields:
- Company (text input) → [User's data or SKIP]
- Comments (textarea) → [User's data or SKIP]
SENSITIVE FIELDS (you must fill manually):
- Password (password input) → USER MUST FILL
- Credit Card (text input) → USER MUST FILL
Proceed with filling [X] fields? (yes/no)
Critical Rules:
5. Fill Each Field One at a Time
For each approved field:
Step 1: Find element
Call: find(tabId, query="[field label or purpose]")
Verify: Element reference returned
Step 2: Fill field
Call: form_input(tabId, ref="ref_X", value="[user data]")
Step 3: Verify filled value
Call: read_page(tabId, ref_id="ref_X")
Confirm: Value matches expected input
Step 4: Handle errors
If verification fails:
- Report to user
- Ask for correction approach
- Retry with alternative method (computer tool for typing)
Example filling sequence:
✅ Filled "First Name" → "John" (verified)
✅ Filled "Last Name" → "Smith" (verified)
✅ Filled "Email" → "[email protected]" (verified)
⚠️ Failed "Phone" → retry needed
✅ Filled "Phone" → "(555) 123-4567" (verified after retry)
6. Show Complete Form State
Before submission, present ALL filled values:
Form ready for submission:
First Name: John
Last Name: Smith
Email: [email protected]
Phone: (555) 123-4567
Company: [empty - optional]
Comments: [empty - optional]
UNFILLED SENSITIVE FIELDS (you must complete):
- Password: [EMPTY - FILL MANUALLY]
Submit this form? (yes/no/edit)
User must explicitly approve submission.
7. Submit Form
Only after approval:
Step 1: Find submit button
Call: find(tabId, query="submit button")
Step 2: Click submit
Call: computer(tabId, action="left_click", ref="ref_submit")
Step 3: Wait for navigation/response
Call: computer(tabId, action="wait", duration=2)
8. Verify Confirmation
After submission:
Step 1: Read new page
Call: read_page(tabId)
Step 2: Look for confirmation indicators:
- Success message
- Thank you page
- Confirmation number
- Email sent notice
- Error messages
Step 3: Report outcome to user
Success: "Form submitted successfully. Confirmation: [details]"
Failure: "Submission failed: [error message]. Next steps: [guidance]"
| Field Type | Method | Verification |
|---|---|---|
| Text input | form_input() | Read value back |
| Email input | form_input() | Validate format + read back |
| Tel input | form_input() | Read value back |
| Textarea | form_input() | Read value back |
| Select dropdown | form_input() | Read selected option |
| Checkbox | form_input(value=true/false) | Read checked state |
| Radio button | computer(action="left_click") | Read selected state |
| Date input | form_input() | Read date value |
If form_input() fails:
computer(action="left_click") to focus fieldcomputer(action="type", text="value") to typeread_page()Email validation:
Regex: ^[^\s@]+@[^\s@]+\.[^\s@]+$
Check: Value contains @ and domain
Phone validation:
Format: Various (555) 123-4567, 555-123-4567, +1-555-123-4567
Strategy: Fill as provided, verify field accepts it
Required field check:
Before submission:
- Verify all required fields have values
- Report missing required fields to user
- Block submission until complete
Before calling submit:
Form validation errors:
After submission attempt, if errors appear:
1. Read error messages
2. Map errors to fields
3. Report to user: "Field [X] error: [message]"
4. Ask user for corrected value
5. Re-fill and re-verify
6. Request submission approval again
Network errors:
If submission fails due to network:
1. Report error to user
2. Offer to retry
3. Verify form state preserved
4. Re-attempt with user approval
✅ Form Fill Complete
Form: Contact Us (example.com/contact)
Fields filled: 6/8 (2 optional skipped)
User filled manually: 1 (password)
Filled fields:
✓ First Name: John
✓ Last Name: Smith
✓ Email: [email protected]
✓ Phone: (555) 123-4567
✓ Message: [75 chars]
✓ Subscribe: Yes
Submission: Successful
Confirmation: "Thank you! We'll respond within 24 hours."
Next steps: Check email for confirmation message
⚠️ Form Partially Filled
Form: Registration (site.com/register)
Fields filled: 8/12
Blocked on: 4 fields require manual entry
Filled fields: [list]
USER MUST FILL MANUALLY:
⚠ Password (sensitive)
⚠ Confirm Password (sensitive)
⚠ Credit Card (sensitive)
⚠ CVV (sensitive)
Status: Ready for user to complete sensitive fields
Action: Complete the 4 sensitive fields, then I can submit
Critical Safety Violations:
Workflow Violations:
Tool Misuse:
User Experience Issues:
Key Principles:
Common Patterns:
Integration with Other Skills:
Structured design dialogue that validates ideas before implementation begins.
Comprehensive design intelligence for web and mobile UI/UX across 10 technology stacks.
Comprehensive implementation plans for multi-step tasks, breaking down specs into bite-sized, testable steps.
Introduction to the obra skills system with mandatory skill invocation rules and best practices.
Execute a written implementation plan with critical review and task checkpoints.
Delegate independent tasks to specialized agents working concurrently with isolated context.
Isolated git worktrees with smart directory selection and safety verification.
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Plan searchable and shareable content that drives traffic, builds authority, and generates leads.
README-first repository scanner that extracts commands and classifies reproduction candidates without executing them.
Brainstorm and prioritize marketing strategies tailored to your SaaS stage, budget, and goals.
Plan and optimize your website's page hierarchy, navigation, URL structure, and internal linking.
The world's fastest calendar for remote work
Capture, organize, and utilize your knowledge effortlessly.
Instant Summaries of Audio & Video Interviews with AnySummary
Transform PDFs into engaging mind maps.
Chat with any PDF instantly
Create an optimal daily plan using your voice
A productivity platform to centralize organizational knowledge and workflows with contextual AI assistance.
AskYourPDF Pricing Plans: Tailored to Your Needs