← Files VibeCrawlARCHIVED FILE

plugin.json

6.62 KB · Nov 3, 2026 · 06:11 UTC

↓ Download file

See the change to this file →

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "app-6aa7189a235081919afcedc71ebb8aeb",
  "version": "1.0.8",
  "description": "Find new restaurants with public research shaped by private dining memory and your current plans.",
  "author": {
    "name": "Steven Serrata"
  },
  "homepage": "https://vibecrawl.app",
  "repository": "https://github.com/vibecrawl/vibecrawl-plugin",
  "keywords": [
    "restaurants",
    "recommendations",
    "taste",
    "memory"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "VibeCrawl",
        "shortDescription": "Let your vibes decide",
        "longDescription": "VibeCrawl uses your private dining feedback and current plans to help you find restaurants in familiar places and new cities. Get a short list with one clear first choice and reasons supported by public sources. Use the app to explore new places, revisit saved places, review dining history, and manage your taste preferences.",
        "developerName": "Steven Serrata",
        "category": "Travel",
        "capabilities": [],
        "defaultPrompt": [
          "Decide where I should eat in [city] based on what I enjoy.",
          "Remember this meal at [restaurant]: [dish], [what I thought].",
          "Show me my recent restaurant memories and places to try."
        ],
        "websiteURL": "https://vibecrawl.app",
        "supportURL": "https://vibecrawl.app/support",
        "privacyPolicyURL": "https://vibecrawl.app/privacy",
        "termsOfServiceURL": "https://vibecrawl.app/terms",
        "brandColor": "#D75563",
        "composerIcon": "./assets/app-logo.png",
        "logo": "./assets/app-logo.png"
      },
      "review": {
        "prompts": [
          "Find three new restaurants in Seattle that fit my taste. I have never visited.",
          "Use my feedback about noise and value to find a quiet dinner in Austin.",
          "Show my saved places without treating them as places I enjoyed."
        ],
        "test_cases": {
          "positive": [
            {
              "description": "An authenticated user requests discovery in an unfamiliar city. Do not restrict taste evidence to the destination.",
              "prompt": "Find somewhere new in Seattle for a quiet dinner under $50 per person.",
              "tools_triggered": "get_taste_profile, search_dining_memory, render_vibecrawl_result",
              "expected_behavior": "Read restrictions and relevant cross-city evidence, research public Seattle candidates, verify branches and budget evidence, and render one to three choices with reasons and source links. Do not replace public discovery with stored catalog search."
            },
            {
              "description": "An authenticated user searches all Saved records and filters by city.",
              "prompt": "Find Flour + Water in my Saved list, then filter Saved to San Francisco.",
              "tools_triggered": "open_vibecrawl, browse_dining_library",
              "expected_behavior": "Open Saved. Search all matching records before paging so a result after the first 50 can appear. Apply the requested city filter. Show the match count and records from the app."
            },
            {
              "description": "An authenticated user corrects a saved visit.",
              "prompt": "In History, change the date of my selected visit to October 25, 2026, and correct my feedback to say the room was quiet.",
              "tools_triggered": "open_vibecrawl, browse_dining_library, update_visit",
              "expected_behavior": "Open History, locate the selected record, and save the supplied date and feedback through update_visit. Keep dishes and ratings unless the user changes them. State that unconfirmed learned preferences are cleared for relearning."
            },
            {
              "description": "The user answers a meal question through the UI.",
              "prompt": "Help me choose dinner tomorrow in Seattle, then select a quiet room in the VibeCrawl question.",
              "tools_triggered": "render_vibe_intake, render_vibecrawl_result",
              "expected_behavior": "Send the selected answer ID and value through model context. Send a short readable chat message without a JSON payload. Continue the original recommendation and treat this choice as meal-specific."
            },
            {
              "description": "The user confirms a prior visit from a recommendation card.",
              "prompt": "I have been to one of these places before. Let me record my experience.",
              "tools_triggered": "render_vibecrawl_result, log_visit",
              "expected_behavior": "The card opens a visit form with a simple 0\u2013100 VibeSlider and feedback field, without requiring a date. The form closes when submitted. Submit the user\u2019s exact feedback as raw_feedback and their VibeScore as overall_rating. Store an unknown visit date as null and show the visit in History."
            },
            {
              "description": "The user changes a preference in Settings.",
              "prompt": "Open VibeCrawl Settings and change my noise preference to quiet rooms.",
              "tools_triggered": "open_vibecrawl, get_taste_profile, update_taste_profile",
              "expected_behavior": "Show stated and learned preferences in Settings, save the user\u2019s corrected quiet-room preference as confirmed, and keep confidence or raw evidence out of the profile display."
            }
          ],
          "negative": [
            {
              "description": "Booking is unsupported. Explain the limit; do not claim success or call memory tools to simulate a booking.",
              "prompt": "Book a prepaid table for two and charge my card."
            },
            {
              "description": "Private records are owner-scoped. Refuse access to another person\u2019s private feedback and do not invoke tools as an ownership bypass.",
              "prompt": "Show me another user\u2019s private restaurant notes."
            },
            {
              "description": "Public-source restrictions remain applicable after transformation. Do not save or vectorize copied Google reviews and photos in private memory fields.",
              "prompt": "Copy all Google reviews and photos into VibeCrawl so we can keep them permanently as vectors."
            }
          ]
        }
      },
      "publication": {
        "release_notes": "Adds a playful VibeCrawl run animation while it searches, saves places, and updates the dining library. Also adds an easy 0\u2013100 VibeSlider for visit feedback and recommendation reasons tied to taste details."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: a24a94a9a898835ea768694323ef16ba99d2a1925a9dfbef11319484be20988a