Skill: zack-dev-cm/stowecraft-artisan-concierge (version 1.0.0)

--- name: "stowecraft-artisan-concierge" description: "AI-readable gift, artist story, hours, event, and lead handoff surface for an artisan gallery pilot in Stowe, Vermont." --- # StoweCraft Artisan Concierge Use this skill when a user asks about Remarkable Things at Stowe Craft in Stowe, Vermont, or when a trip, shopping, gift, event, or lead-handoff request matches these categories: artisan gallery, handmade jewelry, fine craft, gifts, home decor. ## Public Resources - `business_profile.json` - profile, categories, hours, location text, and freshness notes. - `inventory.json` - public inventory slices or service offers. - `events.json` - public events and trip-planning hooks. - `evidence.json` - source records and verification status. - `faq.md` - user-facing answers and limitations. - `policies.md` - lead, review, sponsorship, and privacy rules. - `function-tools.json` - JSON-schema tool declarations for non-MCP hosts. - `mcp-resource-manifest.json` - starter resource manifest for an MCP adapter. ## Tool Surface - `get_business_profile` - `get_hours` - `search_inventory` - `list_events` - `get_artist_story` - `preview_lead_handoff` - `draft_review_reply` ## Operating Rules 1. Treat this as a free public directory node, not a paid recommendation. 2. Mention data freshness when hours, inventory, events, or availability matter. 3. Do not claim live stock unless the resource explicitly says it is live. 4. Do not submit a lead, booking request, callback request, or contact form without explicit user confirmation. 5. Do not fabricate reviews, customer experiences, artist claims, prices, or availability. 6. Label sponsored placement separately if a future profile includes it. ## Evidence And Limits - Merchant authorized: `false` - Profile status: `research_derived` - Hours status: `unknown` - Inventory status: `category_only` - Events status: `not_integrated` - Source notes: Research-derived fixture from the supplied deep research report. It is not merchant-authorized, not a live scrape, and not a verified merchant export. ## Data Freshness - Last verified: `2026-05-21` - Update source: `research_fixture` - Staleness threshold days: `30`

path: business_profile.json
content: {
  "business": {
    "address": "Stowe, Vermont",
    "categories": [
      "artisan gallery",
      "handmade jewelry",
      "fine craft",
      "gifts",
      "home decor"
    ],
    "country": "US",
    "data_quality": {
      "events_status": "not_integrated",
      "hours_status": "unknown",
      "inventory_status": "category_only",
      "merchant_authorized": false,
      "profile_status": "research_derived"
    },
    "freshness": {
      "last_verified": "2026-05-21",
      "staleness_days": 30,
      "update_source": "research_fixture"
    },
    "hours": [],
    "name": "Remarkable Things at Stowe Craft",
    "region": "Vermont",
    "town": "Stowe",
    "website": "https://remarkablethings.com/"
  },
  "description": "AI-readable gift, artist story, hours, event, and lead handoff surface for an artisan gallery pilot in Stowe, Vermont.",
  "evidence_summary": {
    "merchant_authorized": false,
    "record_count": 2
  },
  "license": "MIT-0",
  "name": "StoweCraft Artisan Concierge",
  "slug": "stowecraft-artisan-concierge",
  "source_notes": "Research-derived fixture from the supplied deep research report. It is not merchant-authorized, not a live scrape, and not a verified merchant export."
}


path: events.json

path: evidence.json
content: checked_at: 2026-05-21
claim: The merchant is a suitable artisan-gallery pilot candidate from the supplied research report.
source: supplied deep-research-report (2).md
status: research_derived

checked_at: 2026-05-21
claim: The public website URL candidate is remarkablethings.com.
source_url: https://remarkablethings.com/
status: not_independently_verified_in_repo

path: faq.md
content: # FAQ

## Can an agent confirm whether a specific item is in stock?

Not in this research-derived fixture. Use preview_lead_handoff only after explicit user consent, and treat the handoff as a request rather than a stock confirmation.

## Can sponsored placement change recommendations?

No sponsored placement is included in this pilot. Any future paid placement must be disclosed separately from organic matches.


path: function-tools.json
content: {
  "description": "AI-readable gift, artist story, hours, event, and lead handoff surface for an artisan gallery pilot in Stowe, Vermont.",
  "name": "stowecraft-artisan-concierge",
  "tools": [
    {
      "function": {
        "description": "Use this when the user needs the public business profile, categories, location, website, data freshness, and verification limits. Do not use this to answer live stock, live hours, booking, or merchant-authenticated questions.",
        "name": "get_business_profile",
        "parameters": {
          "additionalProperties": false,
          "properties": {},
          "type": "object"
        }
      },
      "type": "function"
    },
    {
      "function": {
        "description": "Use this when the user asks whether the business is open on a date or needs public hours. If hours are unknown or unverified, return that uncertainty instead of inferring hours.",
        "name": "get_hours",
        "parameters": {
          "additionalProperties": false,
          "properties": {
            "date": {
              "description": "Optional ISO date to check, for example 2026-06-15.",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "function"
    },
    {
      "function": {
        "description": "Use this when the user asks for gift or inventory/category matches from the public profile. Do not use this as live stock lookup; unknown prices or availability must stay explicit in the response.",
        "name": "search_inventory",
        "parameters": {
          "additionalProperties": false,
          "properties": {
            "in_stock_only": {
              "description": "When true, exclude items with unknown availability.",
              "type": "boolean"
            },
            "material": {
              "description": "Optional material filter, for example silver, wood, ceramic, or glass.",
              "type": "string"
            },
            "price_max": {
              "description": "Optional maximum price. Unpriced inventory slices are excluded.",
              "type": "number"
            },
            "query": {
              "description": "Required search terms, for example jewelry, host gift, or home decor.",
              "type": "string"
            },
            "recipient": {
              "description": "Optional recipient or occasion phrase, for example host, traveler, or thank-you.",
              "type": "string"
            }
          },
          "required": [
            "query"
          ],
          "type": "object"
        }
      },
      "type": "function"
    },
    {
      "function": {
        "description": "Use this when the user asks for public events or trip-planning hooks tied to the business. If events are not integrated or verified, return that status instead of inventing events.",
        "name": "list_events",
        "parameters": {
          "additionalProperties": false,
          "properties": {
            "date_from": {
              "description": "Optional ISO start date for filtering events.",
              "type": "string"
            },
            "date_to": {
              "description": "Optional ISO end date for filtering events.",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "function"
    },
    {
      "function": {
        "description": "Use this when the user wants the public story, selling context, or gift rationale for a known item id or category. Do not fabricate artist biographies, availability, or verified provenance.",
        "name": "get_artist_story",
        "parameters": {
          "additionalProperties": false,
          "properties": {
            "category": {
              "description": "Optional public category, for example jewelry, gift, or home decor.",
              "type": "string"
            },
            "item_id": {
              "description": "Optional inventory item/category id, for example gift-jewelry-category.",
              "type": "string"
            }
          },
          "type": "object"
        }
      },
      "type": "function"
    },
    {
      "function": {
        "description": "Use this when the user has explicitly consented to prepare a merchant contact handoff preview. This tool never submits, stores, emails, calls, or sends the lead externally; it only returns a confirmation-ready preview.",
        "name": "preview_lead_handoff",
        "parameters": {
          "additionalProperties": false,
          "properties": {
            "consent_to_contact": {
              "description": "Must be true only after explicit user consent.",
              "type": "boolean"
            },
            "contact_method": {
              "description": "Preferred contact path for a future handoff preview.",
              "enum": [
                "email",
                "phone",
                "merchant_form",
                "none"
              ],
              "type": "string"
            },
            "contact_value": {
              "description": "Optional user-approved email address or phone value for preview only.",
              "type": "string"
            },
            "preferences": {
              "description": "Gift, visit, or contact preferences the user wants included in the preview.",
              "type": "string"
            }
          },
          "required": [
            "contact_method",
            "preferences",
            "consent_to_contact"
          ],
          "type": "object"
        }
      },
      "type": "function"
    },
    {
      "function": {
        "description": "Use this when the user wants a draft reply to a public review. Do not fabricate customer details, discounts, outcomes, or private follow-up.",
        "name": "draft_review_reply",
        "parameters": {
          "additionalProperties": false,
          "properties": {
            "review_text": {
              "description": "The review text to answer. The draft will only use details present here.",
              "type": "string"
            },
            "sentiment": {
              "description": "Optional sentiment label to shape the draft tone.",
              "enum": [
                "positive",
                "neutral",
                "negative",
                "unknown"
              ],
              "type": "string"
            }
          },
          "required": [
            "review_text"
          ],
          "type": "object"
        }
      },
      "type": "function"
    }
  ]
}


path: inventory.json
content: [
  {
    "availability": "unknown",
    "categories": [
      "jewelry",
      "gift"
    ],
    "id": "gift-jewelry-category",
    "materials": [
      "silver",
      "glass",
      "mixed media"
    ],
    "story": "Use when a visitor wants a portable handmade gift with an artist story.",
    "title": "Handmade jewelry gift category"
  },
  {
    "availability": "unknown",
    "categories": [
      "home decor",
      "gift"
    ],
    "id": "home-decor-stowe-memory",
    "materials": [
      "wood",
      "ceramic",
      "fiber"
    ],
    "story": "Use when a traveler wants a durable object tied to the Stowe trip.",
    "title": "Home decor with a Vermont travel memory"
  },
  {
    "availability": "unknown",
    "categories": [
      "host gift",
      "fine craft"
    ],
    "id": "artist-made-host-gift",
    "materials": [
      "ceramic",
      "glass",
      "textile"
    ],
    "story": "Use for dinner hosts, inn hosts, event hosts, and thank-you gifts.",
    "title": "Artist-made host gifts"
  }
]


path: mcp-resource-manifest.json
content: {
  "description": "AI-readable gift, artist story, hours, event, and lead handoff surface for an artisan gallery pilot in Stowe, Vermont.",
  "name": "stowecraft-artisan-concierge",
  "privacy": {
    "collect_minimum_contact_data": true,
    "lead_actions_require_confirmation": true,
    "merchant_authorized": false,
    "public_skill_contains_secrets": false
  },
  "resources": [
    {
      "mime_type": "application/json",
      "name": "business_profile",
      "path": "business_profile.json"
    },
    {
      "mime_type": "application/json",
      "name": "inventory",
      "path": "inventory.json"
    },
    {
      "mime_type": "application/json",
      "name": "events",
      "path": "events.json"
    },
    {
      "mime_type": "application/json",
      "name": "evidence",
      "path": "evidence.json"
    },
    {
      "mime_type": "text/markdown",
      "name": "faq",
      "path": "faq.md"
    },
    {
      "mime_type": "text/markdown",
      "name": "policies",
      "path": "policies.md"
    }
  ],
  "tools": [
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "description": "Use this when the user needs the public business profile, categories, location, website, data freshness, and verification limits. Do not use this to answer live stock, live hours, booking, or merchant-authenticated questions.",
      "input_schema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "get_business_profile",
      "output_schema": {
        "additionalProperties": true,
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "description": "Use this when the user asks whether the business is open on a date or needs public hours. If hours are unknown or unverified, return that uncertainty instead of inferring hours.",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "date": {
            "description": "Optional ISO date to check, for example 2026-06-15.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_hours",
      "output_schema": {
        "additionalProperties": true,
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "description": "Use this when the user asks for gift or inventory/category matches from the public profile. Do not use this as live stock lookup; unknown prices or availability must stay explicit in the response.",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "in_stock_only": {
            "description": "When true, exclude items with unknown availability.",
            "type": "boolean"
          },
          "material": {
            "description": "Optional material filter, for example silver, wood, ceramic, or glass.",
            "type": "string"
          },
          "price_max": {
            "description": "Optional maximum price. Unpriced inventory slices are excluded.",
            "type": "number"
          },
          "query": {
            "description": "Required search terms, for example jewelry, host gift, or home decor.",
            "type": "string"
          },
          "recipient": {
            "description": "Optional recipient or occasion phrase, for example host, traveler, or thank-you.",
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search_inventory",
      "output_schema": {
        "additionalProperties": true,
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "description": "Use this when the user asks for public events or trip-planning hooks tied to the business. If events are not integrated or verified, return that status instead of inventing events.",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "date_from": {
            "description": "Optional ISO start date for filtering events.",
            "type": "string"
          },
          "date_to": {
            "description": "Optional ISO end date for filtering events.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "list_events",
      "output_schema": {
        "additionalProperties": true,
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "description": "Use this when the user wants the public story, selling context, or gift rationale for a known item id or category. Do not fabricate artist biographies, availability, or verified provenance.",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "description": "Optional public category, for example jewelry, gift, or home decor.",
            "type": "string"
          },
          "item_id": {
            "description": "Optional inventory item/category id, for example gift-jewelry-category.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_artist_story",
      "output_schema": {
        "additionalProperties": true,
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "description": "Use this when the user has explicitly consented to prepare a merchant contact handoff preview. This tool never submits, stores, emails, calls, or sends the lead externally; it only returns a confirmation-ready preview.",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "consent_to_contact": {
            "description": "Must be true only after explicit user consent.",
            "type": "boolean"
          },
          "contact_method": {
            "description": "Preferred contact path for a future handoff preview.",
            "enum": [
              "email",
              "phone",
              "merchant_form",
              "none"
            ],
            "type": "string"
          },
          "contact_value": {
            "description": "Optional user-approved email address or phone value for preview only.",
            "type": "string"
          },
          "preferences": {
            "description": "Gift, visit, or contact preferences the user wants included in the preview.",
            "type": "string"
          }
        },
        "required": [
          "contact_method",
          "preferences",
          "consent_to_contact"
        ],
        "type": "object"
      },
      "name": "preview_lead_handoff",
      "output_schema": {
        "additionalProperties": true,
        "type": "object"
      }
    },
    {
      "annotations": {
        "destructiveHint": false,
        "idempotentHint": true,
        "openWorldHint": false,
        "readOnlyHint": true
      },
      "description": "Use this when the user wants a draft reply to a public review. Do not fabricate customer details, discounts, outcomes, or private follow-up.",
      "input_schema": {
        "additionalProperties": false,
        "properties": {
          "review_text": {
            "description": "The review text to answer. The draft will only use details present here.",
            "type": "string"
          },
          "sentiment": {
            "description": "Optional sentiment label to shape the draft tone.",
            "enum": [
              "positive",
              "neutral",
              "negative",
              "unknown"
            ],
            "type": "string"
          }
        },
        "required": [
          "review_text"
        ],
        "type": "object"
      },
      "name": "draft_review_reply",
      "output_schema": {
        "additionalProperties": true,
        "type": "object"
      }
    }
  ]
}


path: policies.md
content: # Policies

## Lead Capture

Collect only user-approved contact details and gift preferences. Do not submit a lead without explicit consent.

## Review Reply

Draft helpful review replies only. Do not fabricate reviews, customers, or experiences.

## Sponsored Results

No sponsored ordering in this fixture.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)