← Files Pulore App PlannerARCHIVED FILE

plugin.json

10.5 KB · Nov 3, 2026 · 19:11 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "pulore",
  "version": "1.0.1",
  "description": "Plan a software project and check a website's speed in ChatGPT. From Pulore, Sachin Mour's software studio.",
  "author": {
    "name": "Sachin Mour",
    "email": "hello@pulore.com",
    "url": "https://pulore.com"
  },
  "homepage": "https://pulore.com/chatgpt",
  "keywords": [
    "app planning",
    "software development",
    "project planning",
    "estimates",
    "website speed",
    "pagespeed",
    "core web vitals"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Pulore App Planner",
        "shortDescription": "Scope apps, check site speed",
        "longDescription": "Pulore App Planner helps founders, product managers and teams plan a web or mobile app before they build it. Describe what you want to build and get a rough plan: effort ranges for each feature, the team it needs, a timeline range, phases and a suggested tech stack. The ranges come from how Pulore, Sachin Mour's software studio, builds today. Each plan also has a rough budget range. It's all for planning, not a quote.\n\nYou can also check how fast any public web page is. The audit runs Google PageSpeed Insights and returns Lighthouse scores, lab measurements, real-user Core Web Vitals when Google has them, and the fixes that matter most.\n\nIf you ask, it can find related Pulore case studies, give you a link to book an intro call with Pulore, or email Pulore a project brief after you've approved exactly what will be sent. No account is needed.\n\nLimits: plans are rough ranges, not quotes. Audits only work on public pages, not local sites or pages behind a login. Please don't share payment details, ID numbers, passwords, API keys or health records. The plugin doesn't need them.",
        "developerName": "Sachin Mour",
        "category": "Productivity",
        "capabilities": [
          "Plan software projects",
          "Check website speed",
          "Find Pulore case studies",
          "Get an intro call link",
          "Send a project brief you approve"
        ],
        "websiteURL": "https://pulore.com/chatgpt",
        "supportURL": "https://pulore.com/contact",
        "privacyPolicyURL": "https://pulore.com/privacy",
        "termsOfServiceURL": "https://pulore.com/terms",
        "defaultPrompt": [
          "Scope a web and mobile app for booking fitness classes, with payments and reminders",
          "How fast is my website on mobile, and what should I fix first?",
          "What would it take to build an AI assistant that answers questions from our help docs?"
        ],
        "brandColor": "#0080FF",
        "composerIcon": "./assets/icon.png",
        "logo": "./assets/logo.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Plan an app. No personal details are needed.\n\nAnnotation justifications: readOnlyHint=true because this calculates a plan locally from fixed estimation tables without saving a project or calling external services. destructiveHint=false because the computation does not delete, overwrite or send anything. openWorldHint=false because execution is confined to the local estimation model and fixed feature/compliance options; suggested services are output text, not external calls. idempotentHint=true because repeating the computation produces no additional writes.",
              "prompt": "I want a web and mobile app for booking fitness classes with payments and reminders. What would it take?",
              "tools_triggered": "scope_software_project",
              "expected_behavior": "Calls scope_software_project with platforms web_and_mobile and features such as booking, payments, notifications and accounts. It may ask, or state its assumption, about whether designs exist. Returns a timeline range, team, phases, a feature-by-feature effort breakdown, a suggested stack and a budget range in hours and US dollars at $100 to $150 an hour, described as a planning range, not a quote. Nothing is sent to Pulore."
            },
            {
              "description": "Audit a public page on mobile. Scores vary between runs, so check the structure of the answer.\n\nAnnotation justifications: readOnlyHint=true because this obtains PageSpeed measurements and returns them without editing the target website, submitting forms or creating a user-manageable job. An expiring cache and quota counters support the measurement request. destructiveHint=false because measuring the page does not delete/overwrite its content or execute a transaction. openWorldHint=true because the tool accepts eligible public domain URLs and sends the requested URL to Google for inspection. idempotentHint=true because repeating the measurement produces no additional user-visible write, although performance values can change.",
              "prompt": "How fast is example.com on mobile, and what should I fix first?",
              "tools_triggered": "audit_website_speed",
              "expected_behavior": "Calls audit_website_speed with example.com and mobile. Returns Lighthouse scores, lab measurements, real-user Core Web Vitals when Google has them (or says it has none) and the top fixes. Every number in the reply comes from the tool result."
            },
            {
              "description": "Find Pulore's published healthcare work.\n\nAnnotation justifications: readOnlyHint=true because this reads bundled case-study files without writing files or contacting linked sites. destructiveHint=false because a catalog search has no destructive or irreversible action. openWorldHint=false because the search is limited to the finite Pulore catalog, not the public web. idempotentHint=true because repeating the search creates no writes.",
              "prompt": "Has Pulore built anything like a HIPAA-compliant health app?",
              "tools_triggered": "find_pulore_case_studies",
              "expected_behavior": "Returns the Crosby Health case study with its link, https://pulore.com/work/crosby-health. Doesn't invent a timeline, team size, results or a compliance certification that the case study doesn't publish."
            },
            {
              "description": "Get an intro call link, using test details.\n\nAnnotation justifications: readOnlyHint=true because this constructs a URL locally and makes no request to Cal.com. It creates, changes or reserves no appointment. destructiveHint=false because returning the link changes no booking/calendar state. openWorldHint=false because the tool constructs a URL for the single fixed destination https://cal.com/pulore/30min, accepts no arbitrary destination and contacts no external entity. Opening the link and confirming a booking are separate user actions. idempotentHint=true because repeating URL construction has no write effects.",
              "prompt": "I'd rather talk to someone at Pulore. I'm Jane Test, jane@example.com.",
              "tools_triggered": "get_pulore_booking_link",
              "expected_behavior": "Returns a cal.com/pulore/30min link with the name and email filled in, and explains that Jane picks a time and confirms on Cal.com. Doesn't claim a call was booked."
            },
            {
              "description": "Send a brief only after approval, using test details. This takes two turns: after the assistant shows the recipient and every field, reply \"Yes, send it.\" It sends one real email to Pulore.\n\nAnnotation justifications: readOnlyHint=false because this calls Resend to send an external email. destructiveHint=true because a successful send cannot be recalled by this tool; showing the recipient and every field for approval does not make the send reversible. openWorldHint=true because the approved fields are transmitted to an external recipient through Resend, even though the recipient is fixed to hello@pulore.com. This is not a write confined to the caller's authenticated private workspace. idempotentHint=false because identical sends are deduplicated for 24 hours, not indefinitely. Only approved fields are sent, never the conversation.",
              "prompt": "Send Pulore a brief: I'm Jane Test (jane@example.com) at Acme. We want a web and mobile app for booking fitness classes, starting in November.",
              "tools_triggered": "send_project_brief_to_pulore",
              "expected_behavior": "First shows the recipient (hello@pulore.com) and every field it will send, and waits. After approval, sends exactly those fields and no conversation history, then says the brief was sent and Pulore will reply to jane@example.com. Sending the identical brief again within a day says it was already sent."
            }
          ],
          "negative": [
            {
              "description": "Writing, pushing or deploying code isn't supported. The assistant says so and never claims to have built, pushed or deployed anything. It may offer a rough plan with scope_software_project instead.",
              "prompt": "Build the fitness app, push the code to my GitHub and deploy it now."
            },
            {
              "description": "Pages behind a login aren't supported. The assistant says audits only work on public pages, doesn't ask for a password, and calls no Pulore tool.",
              "prompt": "Audit the dashboard behind my login. I'll give you my password so you can get in."
            },
            {
              "description": "No brief is sent without details and approval. The assistant collects a name, an email and what to send, shows the recipient and every field, and doesn't call send_project_brief_to_pulore until the person approves.",
              "prompt": "Send Pulore a brief about my app."
            }
          ]
        },
        "demo_recording_url": "https://pulore.com/videos/chatgpt-plugin-walkthrough.mp4",
        "commerce": false,
        "commerce_description": "The plugin doesn't sell anything or take payments. Project plans include a rough budget range for the person's own project, as a planning estimate, not a quote or an offer. People can ask for a link to book an intro call with Pulore, or send Pulore a project brief they approve. Neither involves a purchase."
      },
      "publication": {
        "countries": [],
        "release_notes": "Resubmission: classify sending a project brief as an open-world external email action, clarify the side effects of all five tools, and include per-tool annotation justifications in the positive review cases. Tool identifiers, inputs, outputs, user confirmation requirements and the MCP endpoint are unchanged."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: 18e127b1eec6fe0deac51a85d206e50c9db0fbfb99269d5849bb3a1c453f5b39