From observo-qa-toolkit
Write a structured PRD from raw user input — meeting transcripts, notes, or feature descriptions. Default English body and English section headings; non-English body opt-in via `.observo-toolkit.json:prd_language`. Use when the user asks to "write a PRD", "draft a PRD", "write a PRD for <feature>", "PRD from this transcript / these notes", or provides meeting notes / requirements text expecting a structured product spec back. Default save location: `<prd_save_dir>` from `.observo-toolkit.json`, fallback `./docs/PRDs/<feature-name>.md`.
How this skill is triggered — by the user, by Claude, or both
Slash command
/observo-qa-toolkit:prdThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The user will provide raw input — typically a meeting transcript, notes, or a brief description of a feature. Your job is to produce a structured PRD.
The user will provide raw input — typically a meeting transcript, notes, or a brief description of a feature. Your job is to produce a structured PRD.
Language: English by default. Body, section headings, field notes, and user stories are all English. If the consumer repo opts into a different body language via .observo-toolkit.json:prd_language (ru / ua / etc.), keep the section headings English regardless — code identifiers (field names, endpoints) always stay English.
.observo-toolkit.json:prd_language — default English; respect the configured value if set..observo-toolkit.json:prd_save_dir if present — save under that directory../docs/PRDs/PRD-<feature-name>.md (create the directory if missing).AskUserQuestion for the target path before writing.# PRD: <Feature Name>
**Author:** <from context, or ask the user>
**Date:** <today>
**Status:** Draft
**Source:** <where the requirements came from, e.g. "Meeting YYYY-MM-DD with X">
---
## Overview
One paragraph — what this is and why we need it.
## Problem Statement
What is broken or missing today.
## Goals
Numbered list of concrete outcomes.
## Non-Goals
What is explicitly out of scope for this iteration.
## User Stories
Table: # | As a… | I want to… | So that…
## Data Model
Field table: Field | Source | Notes
Source — one of: System / Pulled from <Entity> / Bot (from <origin>) / Manual (<who>)
## API Endpoints (if applicable)
Table: Method | Path | Description
## UI (if applicable)
Key screens and interactions. Call out which parts are read-only vs editable, and by whom.
## Integrations (if applicable)
External systems (bots, Slack, third-party services) and the contract they must adhere to.
## Acceptance Criteria
Checklist of verifiable conditions.
## Out of Scope (Future)
Explicitly deferred items.
Searches MemPalace before answering questions about past work, people, projects, or prior decisions. Returns verbatim stored content instead of guessing from model memory.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
npx claudepluginhub observo-ai/claude-plugins --plugin observo-qa-toolkit