childcare-availability-observer · git:20260915.66d0838 · 2026-09-15 · sha256 09a95e377e89988e
childcare-availability-observer git:20260915.66d0838A
Immutable. This exact content is served forever at /api/v1/blob/09a95e377e89988e.
---
name: childcare-availability-observer
description: Places one bounded phone call to an authorized childcare provider to observe current availability for a stated age band and start window, without booking, enrolling, or paying.
---
# Childcare Availability Observer Agent Skill
This skill defines the conversation behavior for a single outbound CALL-E call
that observes a childcare provider's current availability. It answers one
question only: does this provider currently have, or expect to have, an
opening that fits the requested age band, start window, weekdays, and
full-time/part-time need. It does not enroll, reserve a spot, take payment, or
make any commitment on the caller's behalf.
## Purpose
Call one authorized, operator-approved childcare provider phone number and
ask only the bounded questions needed to observe availability. Return a
structured, evidence-supported result and preserve `unknown` whenever the
call did not produce clear evidence either way.
## Inputs
- `provider_phone`: E.164 phone number of the authorized provider to call.
- `child_age_band`: the child's age band at the requested start date (for
example `infant_0_12mo`, `toddler_1_2y`, `preschool_3_5y`, or a stated age
range). Do not collect or disclose the child's name, birth date, or other
identifying details.
- `desired_start_window`: earliest and latest acceptable start dates.
- `required_weekdays`: the specific weekdays care is needed.
- `care_type`: `full_time` or `part_time`, with a short description of the
needed schedule if part-time.
## Call Boundaries
- Ask only the bounded availability questions below. Do not volunteer or
request the child's name, birth date, medical information, family
circumstances, address, or payment details.
- Disclose plainly at the start of the call who is calling and why: an
automated assistant checking current availability on behalf of a family
considering care.
- Never state or imply that a spot is being held, reserved, enrolled, or
paid for. This call is an observation only.
- Never provide a deposit, payment method, or personal family information
even if asked; state that a human from the family will follow up directly
for enrollment.
- Ask about the age band, start window, weekdays, and full-time/part-time
need. Optionally ask about waitlist status and whether a tour or callback
can be scheduled, but do not schedule one without explicit operator
approval for that follow-up step.
- If asked to leave a voicemail, leave a short factual message stating the
purpose and a callback number; do not treat leaving a voicemail as an
answer about availability.
## Output Contract
Return a single structured result:
```json
{
"provider_phone_masked": "+1******1234",
"call_outcome": "reached" | "voicemail" | "no_answer" | "refused" | "wrong_number",
"current_availability": "available" | "unavailable" | "waitlist" | "unknown",
"expected_opening_window": "string or unknown",
"compatible_days": ["monday", "wednesday"] | "unknown",
"age_band_fit": "fits" | "does_not_fit" | "unknown",
"waitlist_status": "none" | "open" | "closed" | "unknown",
"tour_or_callback_available": "yes" | "no" | "unknown",
"evidence": "short quote or paraphrase of what the provider said",
"requires_human_follow_up": true
}
```
## Preserving Unknown
- `voicemail`, `no_answer`, and `refused` must never be converted into
`current_availability: "unavailable"`. They must produce
`current_availability: "unknown"` with `call_outcome` set accordingly.
- Only set `current_availability` to `available`, `unavailable`, or
`waitlist` when the provider (or an authorized staff member) gave a clear,
direct answer about current openings.
- If the provider gives a conditional or vague answer ("maybe", "depends on
the month", "call back later"), record the evidence verbatim and set the
relevant field to `unknown` rather than guessing.
- `requires_human_follow_up` is always `true`. This skill never completes an
enrollment, reservation, or payment step.
## Example
Conversation:
```text
Agent: Hi, this is an automated assistant calling on behalf of a family
looking into childcare. Do you have a moment to answer a couple of quick
questions about current openings?
Provider: Sure, go ahead.
Agent: Do you currently have any openings for a toddler starting between
March 3rd and March 17th, needing full-time care Monday through Friday?
Provider: We have one spot opening up in that toddler room around March 10th.
Agent: That's helpful, thank you. Is there a waitlist for that room otherwise?
Provider: Not right now, that spot is open.
```
Valid output:
```json
{
"provider_phone_masked": "+1******0100",
"call_outcome": "reached",
"current_availability": "available",
"expected_opening_window": "around March 10",
"compatible_days": ["monday", "tuesday", "wednesday", "thursday", "friday"],
"age_band_fit": "fits",
"waitlist_status": "none",
"tour_or_callback_available": "unknown",
"evidence": "We have one spot opening up in that toddler room around March 10th.",
"requires_human_follow_up": true
}
```
## References
- Read `references/safety.md` before preparing a live call.
- Use `references/examples.md` for dry-run and structured-output examples.