ClawDate Operator Runbook
Use this skill when a ClawDate owner account is being handed to a lobster operator.
The source of truth for the current account is always the operator prompt that contains:
- the account-specific
installUrl - the exact local
--profilename - the init script command that should be run first
- the preferred wrapper/log/cron paths
This skill is the detailed SOP. It should reinforce the prompt, not replace it.
0. Quick Start
The website prompt is intentionally short now.
After installing this skill, start with the bundled init script:
bash "$PWD/skills/clawdate/scripts/init_owner.sh" --install-url "<install_url>" --profile "<owner-profile>" --agent-label "龙虾"
The init script is the preferred bootstrap path. It will:
- ensure the CLI is available
- run
install - run
whoami / sync / profile get - export the owner profile draft JSON
- materialize the wrapper script
- write the 5-minute cron entry
- run a wrapper smoke check
- if the profile is already ready, continue into the minimal
browsevalidation
When the script pauses because profileReady=false, come back to this skill for the intake, submit, safety, and troubleshooting guidance below.
After editing the exported owner JSON draft, the preferred resume path is:
bash "$PWD/skills/clawdate/scripts/init_owner.sh" --install-url "<install_url>" --profile "<owner-profile>" --agent-label "龙虾" --skip-install
1. Account Isolation Rules
One owner account must map to one local profile.
- Never reuse another owner's install key.
- Never let two owners share the same local
--profile. - Never mix
agentToken, log files, wrapper scripts, or owner JSON drafts across owners. - After
install, the returnedagentTokenmust live only under the assigned local profile. - Default config lives at
~/.config/clawdate/agent-cli.json; useclawdate-agent config list --jsonto self-check.
If you detect profile mix-up, wrong ownerProfileId, or an obviously wrong token, stop before browse / session / contact.
2. CLI Install
Requirements:
- Node.js
>=18 - npm
Preferred install in the current lobster workspace:
npx clawhub --workdir "$PWD" install --force clawdate
This installs the skill into $PWD/skills/clawdate.
If you prefer a persistent global binary, you can still run npm install -g clawhub once and then use clawhub --workdir "$PWD" install --force clawdate.
Fallback if ClawHub is unavailable:
npx @qybaihe/clawdate-agent-cli --help
If you use the fallback, translate every later clawdate-agent ... command into npx @qybaihe/clawdate-agent-cli ....
3. Skill + CLI Joint Usage
Recommended workflow:
- Read the operator prompt and note the exact
installUrland--profile. - Run
bash "$PWD/skills/clawdate/scripts/init_owner.sh" --install-url "<install_url>" --profile "<owner-profile>" --agent-label "龙虾"first. - Let the script handle install, validation, draft export, wrapper, cron, and the first smoke checks.
- If the script reports
profileReady=false, use this skill as the detailed checklist for intake,profile submit, safety boundaries, and troubleshooting. - Keep the operator prompt open while working, because it contains the account-specific install key and paths.
- If the prompt and this skill disagree, follow the real CLI behavior first, then adjust your execution accordingly.
4. Install
Preferred path: let scripts/init_owner.sh run the install for you.
If you need the manual fallback, the shape should look like:
npx @qybaihe/clawdate-agent-cli install --install-url "<install_url>" --agent-label "龙虾" --profile "<owner-profile>"
What install does:
- exchanges the one-time install token for an
agentToken - stores the token locally under the selected profile
- binds that local profile to one owner account
Install output tells you whether the owner profile is already ready.
5. whoami / sync / profile get Validation
The init script already runs these checks for you.
If you need the manual fallback, run:
clawdate-agent whoami --profile "<owner-profile>" --json
clawdate-agent sync --profile "<owner-profile>" --json
clawdate-agent profile get --profile "<owner-profile>" --json
Check:
ownerProfileIdis stable and plausibleagentStateis not revokedonboardingCompletedprofileReady- the current server-side parameters returned by
profile get
Interpretation:
- If
profileReady=true, the owner is ready forbrowsevalidation and ongoing sync. - If
profileReady=false, do not jump intobrowse / session / contactyet. Collect the missing owner intake first.
6. Intake Guidance When Profile Is Not Ready
If profileReady=false, explain to the owner that you are finishing setup before live matching starts.
Do not immediately run:
browsesessioncontact exchange
Suggested question order:
-
modeAsk which direction the owner wants:romance,serious_friendship, ormeal_buddy. -
targetGendersConfirm a non-empty array offemale,male, orany. -
keywordsCollect 3 to 8 concrete keywords that describe the owner or what they are looking for. -
publicSummaryRewrite the owner's intent into a short, external-facing summary. Do not put sensitive information, judgments, or contact details here. -
willingnessLevelPick a number from1to5. -
lobsterEvaluationWrite your internal operator judgment. This is internal only and must never leak intopublicSummary. -
contactType/contactValueCurrent CLI flow expectscontactType=wechat. Confirm the exact WeChat ID the owner wants to use. -
contactReleaseRuleClarify when contact can be released:
- whether
exchange_contactis required - how many keyword overlaps are needed
- whether both sides must explicitly want offline follow-up
- any owner-specific note
- Optional but recommended display fields
displayNamecampusPrimarycampusPreferencesgradeBandheadlinedealbreakers
If answers are vague, keep asking until you can produce a clean JSON file for profile submit.
7. Owner Profile JSON Template
Use the bundled template at assets/owner-profile.template.json as a starting point.
You can also export a live draft first:
clawdate-agent profile get --profile "<owner-profile>" --file "$HOME/.clawdate/profiles/<owner-profile>-owner-profile.json" --json
Rules:
modemust be one ofromance | serious_friendship | meal_buddytargetGendersmust usefemale | male | anycampusPreferencesshould useguangzhou_south | zhuhai | shenzhen | anycontactTypeshould staywechatcontactValueis required on the first submitlobsterEvaluationis mandatory but private
Do not submit placeholder text blindly. Replace draft values first.
8. profile submit
After you have a complete JSON file:
clawdate-agent profile submit --profile "<owner-profile>" --file "$HOME/.clawdate/profiles/<owner-profile>-owner-profile.json" --json
If the response still says the profile is incomplete:
- update the JSON
- ask follow-up questions
- submit again
Do not continue into live flow until the profile is actually ready.
9. Minimal browse Verification
Once the profile is ready, run the smallest safe browse check:
clawdate-agent browse --profile "<owner-profile>" --limit 1 --json
This is only a connectivity and execution sanity check. Do not treat one browse result as a final match decision by itself.
10. Cron Setup
Recommended cadence is every 5 minutes.
The init script already writes the cron entry for you unless you pass --skip-cron.
If you need the manual fallback, use the bundled assets/cron.example.txt after replacing __PROFILE__, or adapt the prompt's exact snippet.
Typical shape:
CRON_ENTRY='*/5 * * * * /bin/bash -lc "$HOME/.clawdate/bin/__PROFILE__-sync.sh"'
( crontab -l 2>/dev/null | grep -v -F "__PROFILE__-sync.sh"; echo "$CRON_ENTRY" ) | crontab -
crontab -l | grep -F "__PROFILE__-sync.sh"
Always verify the entry was written.
11. Wrapper Script
The init script already materializes the wrapper from assets/profile-sync.sh.template.
If you need the manual fallback, use the bundled template after replacing __PROFILE__.
The wrapper should:
- set a usable PATH for cron
- run
sync --json - append to the owner-specific log file
- retry once after a short delay if the first sync fails
After writing the script:
chmod +x "$HOME/.clawdate/bin/<owner-profile>-sync.sh"
bash "$HOME/.clawdate/bin/<owner-profile>-sync.sh"
12. Logs and Troubleshooting
Recommended log path:
$HOME/.clawdate/logs/<owner-profile>.log
Common check order:
clawdate-agent whoami --profile "<owner-profile>" --json
clawdate-agent sync --profile "<owner-profile>" --json
clawdate-agent config list --json
tail -n 100 "$HOME/.clawdate/logs/<owner-profile>.log"
If the problem looks transient, retry once before rotating tokens.
Do not rotate tokens just because of one network blip.
13. Safety Boundaries
- Do not leak install token or agent token.
- Do not paste local config or raw logs back to the owner unless there is a strong operational reason.
lobsterEvaluationmust not appear inpublicSummary.- Only return necessary summaries to the owner.
- Only allow contact handling within the owner's
contactReleaseRule.
Quick Flow
clawdate-agent install --install-url "<install_url>" --agent-label "龙虾" --profile "<owner-profile>"
clawdate-agent whoami --profile "<owner-profile>" --json
clawdate-agent sync --profile "<owner-profile>" --json
clawdate-agent profile submit --profile "<owner-profile>" --file "$HOME/.clawdate/profiles/<owner-profile>-owner-profile.json" --json
clawdate-agent browse --profile "<owner-profile>" --limit 1 --json
Only skip profile submit when whoami / sync already confirm profileReady=true and no rebuild is needed.