# 2026-01-22 Memory Log

## Skills Ported: ShapeScale Arsenal (11 total)
Ported all ShapeScale skills from `~/ShapeScaleAI/claude-desktop-skills/build/` to `~/clawd/skills/`:
- `shapescale-checkout-url-generator` (has Python CLI)
- `shapescale-financing-calculator` (has Python CLI)
- `shapescale-roi-impact-modeler` (has Python CLI)
- `shapescale-google-ads-cpc-optimizer` (has Python CLI)
- `shapescale-demo-qualification`
- `shapescale-sales-demo-notes`
- `shapescale-attio-crm`
- `shapescale-post-demo-playbook`
- `shapescale-closing-playbook`
- `shapescale-competitor-battlecards`
- `shapescale-yourls` (⚠️ needs YOURLS_SIGNATURE_TOKEN in openclaw.json)

All prefixed with `shapescale-` for namespace clarity.

## New Skill: babyconnect-browser (PRODUCTION READY)

**Critical Technical Learnings:**
- Baby Connect has NO official API (confirmed via research)
- Browser automation is the only viable approach
- **UI is extremely unstable**: `ref` IDs expire instantly, standard click/type actions fail 95% of the time
- **MUST use `evaluate` (JavaScript)** for all interactions
- Background POST to `/Cmd` fails with validation errors - DO NOT USE
- Use dialog functions: `showBibDlg()`, `showDiaperDlg()`, `showSleepDlg()`

**Children Registry (CORRECT dlgKid IDs):**
- Quinn Erika Kessler: `dlgKid-4744184165629952`
- Logan Sophia Kessler: `dlgKid-5782731657707520`

**Note:** The `4838043652063232` was the USER ID from cookies, not child ID!

### Bottle Dialog (TESTED WORKING)
**Input IDs:**
| Field | Selector |
|-------|----------|
| Start time | `#timeinput` |
| End time | `#endtimeinput` |
| Duration (mins) | `#mduration` |
| Quantity | `#bibsize input` or `.ui-autocomplete-input` |
| Unit display | `#bibunit` (span) |
| Milk radio | `#bibMilk` |
| Formula radio | `#bibFormula` |

**CRITICAL - Unit Toggle:**
```javascript
_uinfo.DUnit = 1;  // 0 = oz, 1 = ml
```
Must set BEFORE setting quantity value!

### Diaper Dialog (TESTED WORKING)
- Open with `showDiaperDlg()`
- Child: `document.getElementById('dlgKid-4744184165629952').click()`
- Types: Find div with text 'Wet', 'BM', 'BM + Wet', or 'Dry' and click
- Size: Select dropdown with options 'Small', 'Medium', 'Large'
- Save: Find button with 'Save' text

### Configuration (for openclaw.json)
```json
"babyconnect-browser": {
  "env": {
    "BABYCONNECT_EMAIL": "martin@kessler.io",
    "BABYCONNECT_CHILDREN": "Quinn:4744184165629952,Logan:5782731657707520"
  }
}
```

## ClawdHub Skills Installed
- `minimax-usage` - Monitor Minimax Coding Plan API limits
- `context7` - MCP version (v1.0.3) chosen over `context7-api` for better agent integration
- `better-notion` - Replaces old `notion` skill (deleted)
- `gsc` - Google Search Console
- `clawd-docs-v2` - Smart ClawdBot docs

## Feature Request Drafted
`Obsidian/02-Projects/Software Development/OpenClaw/Feature Requests/2026-01-22-clawdhub-date-sorting.md`
- Request for `--sort` option in clawdhub search (newest, downloads, installs, stars)
- Support for `:asc/:desc` direction suffix

## MCP vs Skills Discussion
Key insight shared with Martin:
- Global MCP tools = permanent context tax (every message)
- Skill-wrapped MCP = on-demand loading (only when triggered)
- Skills transform context overhead from fixed to pay-as-you-go
