ld-setup

Guides first-run owner onboarding over chat and writes household config to config.json.

2|Updated Aug 25, 2026
One-click install
npx skills add https://github.com/plow-pbc/life-assistant-hermes-agent --skill ld-setup-plow-pbc
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ld-setup
Source: https://github.com/plow-pbc/life-assistant-hermes-agent/tree/main/ld-setup
Command: npx skills add https://github.com/plow-pbc/life-assistant-hermes-agent --skill ld-setup-plow-pbc

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? New owners of a Plow life-assistant agent need a structured first conversation that collects their name, city, sports teams, and calendar selections without forms, repeated questions, or leaking personal setup details into group chats. ## Core Features & Use Cases - Resumable onboarding interview: Reads /var/lib/hermes/ld/config.json each turn and continues from the first missing key, so a paused conversation never re-asks answered questions. - Background calendar discovery: A service snapshots available Google calendars via the Latch relay and renders a numbered pick list, so the owner never types a calendar ID. - Validated config writes: write_config.py deep-merges staged JSON drafts, geocodes the city, enforces a shared config gate, and keeps owner text out of shell commands. - Use Case: An owner texts their new assistant for the first time; the skill greets them, sends the intro sequence, collects city and teams across turns, and offers calendar choices once the Latch snapshot is ready. ## Quick Start Start the onboarding conversation in the owner's one-to-one DM and let the skill collect their name, city, teams, and calendar picks into the household config.

Frequently Asked Questions about ld-setup

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How does the onboarding skill resume an interrupted conversation?▼

It reads /var/lib/hermes/ld/config.json at the start of every turn and continues from the first missing key among family.owner.introduced, weather.location, sports.followed, and calendar.sources. The config file is the only progress record, so answered questions are never re-asked.

How are calendar choices collected during onboarding?▼

A background discovery service lists Google calendars through the Latch relay and writes a local snapshot with a pre-rendered numbered offer. The skill reads that snapshot at most once per turn and never asks the owner to type a calendar ID.

Can onboarding run in a group chat?▼

No. The skill only runs in a solo one-to-one DM with the owner where the sender role is owner and the roster is just the two participants. In any other thread it collects nothing and writes nothing.

Why does write_config.py use staged JSON files instead of shell arguments?▼

Owner-supplied values like names, cities, and calendar display names are untrusted text, so they are staged as JSON with the file tool and passed by path. This prevents injection through heredocs or command lines built from other people's words.

What happens if calendar discovery shows needs_account?▼

The needs_account state is stopped, not pending, and will not retry automatically. An operator must resolve the account issue, then clear the snapshot and touch the request file to trigger a rebuild.