cm-autopilot
Easy-to-use conversational CLI (Claude Code style) for non-technical users to spawn parallel AI tasks supervised by a visual web dashboard.
Google App Script form-to-sheet integration with auto-retry, toast notifications, and Zalo/contact fallback. Reusable across any static website.
$ npx -y skills add tody-agent/codymaster --skill cm-google-form --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/cm-google-formContext preview
The summary Claude sees to decide when to auto-load this skill.
Google App Script form-to-sheet integration with auto-retry, toast notifications, and Zalo/contact fallback. Reusable across any static website.
name: cm-google-form description: Google App Script form-to-sheet integration with auto-retry, toast notifications, and Zalo/contact fallback. Reusable across any static website. allowed-tools: Read, Write, Edit, Glob, Grep, Browser version: 1.0 priority: HIGH
> **Connect HTML forms → Google Sheets via Google Apps Script.** > Auto-retry, toast UI, contact fallback on errors. Zero dependencies, works on any static site.
---
| Trigger | Action | |---------|--------| | User says "create form", "connect Google Sheet" | Activate this skill | | User says "form broken", "submit not working" | Debug using Phase 4-5 | | User says "add new form to page" | Start from Phase 2 | | User says "form for another website" | Start from Phase 1 |
---
Phase 1: DISCOVER → Scan forms, identify fields, determine sheet structure Phase 2: PLAN → Design sheet columns, map form fields, create deployment plan Phase 3: BUILD → Generate Apps Script + Frontend JS + Toast CSS Phase 4: INTEGRATE → Wire forms to JS, add CSS, deploy Apps Script Phase 5: VERIFY → Test submit, test retry, test error fallback
> 🔴 **Rule:** NEVER skip Phase 1. Always read existing forms first.
---
**Goal:** Understand what forms exist and what fields they have.
1. **Search for forms** in the project:
grep -r "data-form-type\|onsubmit\|<form" --include="*.html" .
2. **For each form found, extract:**
| Info | How to Find | |------|-------------| | Form type | `data-form-type` attribute | | Fields | `<input name="...">`, `<select name="...">` | | Submit handler | `onsubmit` attribute | | Page URL | File path |
3. **Ask user** (Socratic Gate):
| # | Form Type | Pages | Fields | Target Sheet | |---|-----------|-------|--------|-------------| | 1 | massage | 7 | name, phone, branch, problem, time, package | Sheet Massage | | 2 | course | 1 | name, phone, goal | Course Sheet |
---
**Goal:** Map form fields → Sheet columns → Apps Script params.
For each sheet, define columns in order:
| Column | Source | Always Include | |--------|--------|---------------| | Timestamp | `new Date()` — auto | ✅ Yes | | (form fields) | `e.parameter.xxx` | From inventory | | Page Source | `e.parameter.url` | ✅ Yes |
| Element | Convention | |---------|-----------| | Sheet tab name | `Data` | | Form attribute | `data-form-type="<type>"` | | Hidden URL field | `<input type="hidden" name="url" value="">` | | JS global function | `window.submitToGoogleSheet` |
---
> See `templates/apps-script.js` for the full template.
**Key rules:**
> See `templates/form-submit.js` for the full template.
**Key features:**
| Feature | Detail | |---------|--------| | Auto-retry | 3 attempts, exponential backoff (1s → 2s → 4s) | | Toast UI | Success (green), Error (red), Retrying (amber) | | Phone validation | Vietnamese format: `/^0\d{8,10}$/` | | Button states | "Submitting..." → "Retrying (X/3)..." → reset | | CORS handling | Handles opaque responses from Apps Script | | Fallback | Zalo button in error toast | | Auto-dismiss | Success: 6s, Error: 15s, Retrying: 10s |
> See `templates/toast.css` for the full template.
**3 variants:** `--success`, `--error`, `--retrying`
> See `templates/form-markup.html` for examples.
**Required attributes:**
<form data-form-type="TYPE" onsubmit="window.submitToGoogleSheet(event)"> <input type="hidden" name="url" value=""> <!-- form fields with name="..." --> <button type="submit">Submit Text</button> </form>
---
1. **Add Toast CSS** → Append to main CSS file (e.g., `design-system.css`) 2. **Add Form JS** → Add to shared JS file or create `js/form-handler.js` 3. **Update HTML forms:**
4. **Configure URLs:**
5. **Configure fallback contact:**
| Setting | Location | Default | |---------|----------|---------| | Apps Script URLs | JS `URLS` object | placeholder | | Fallback contact | Toast Zalo link | `https://zalo.me/...` | | Max retries | `fetchWithRetry` arg | 3 | | Phone regex | Validation block | `/^0\d{8,10}$/` | | Toast auto-dismiss | `showFormToast` timeouts | 6s/15s/10s | | Success message | `.then()` block | Customizable | | Error message | `.catch()` block | Customizable |
---
| # | Test Case | Expected | Status | |---|-----------|----------|--------| | 1 | Submit valid form | Toast success (green) + Zalo opens | | | 2 | Submit invalid phone | Toast error "Invalid phone
"I can't write code. But in 6 months, I shipped 12 real products using AI. CodyMaster is everything I learned — so you don't have to repeat my mistakes." — Tody Le, Head of Product, Creator of CodyMaster 50+ skills. One install.
Repo: tody-agent/codymaster
Easy-to-use conversational CLI (Claude Code style) for non-technical users to spawn parallel AI tasks supervised by a visual web dashboard.
Strategic analysis gate for existing products — multi-dimensional evaluation (tech, product, design, business) using Design Thinking + 9 Windows (TRIZ) +…
Fallback local Playwright daemon for real-browser visual QA / screenshots / smoke. Use ONLY when the host platform has no native browser mode — prefer the host…
Code hygiene gate — detect and eliminate dead code, duplicates, naming mess, and code smells. TRIZ-powered. Run after features, before PRs, during debt sprints.
Full review lifecycle — request reviews, handle feedback with technical rigor, and complete branch integration. Use when completing tasks, receiving feedback,…
Unified code intelligence — routes to Skeleton Index, CodeGraph, Architecture Diagram, or Smart Context Builder based on task shape. Loads deep refs on demand.