@dedesfr/prompter 0.8.22 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -0
- package/dist/cli/index.js +1 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/init.d.ts +1 -7
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +32 -294
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +17 -40
- package/dist/commands/update.js.map +1 -1
- package/dist/core/configurators/slash/antigravity.d.ts +2 -5
- package/dist/core/configurators/slash/antigravity.d.ts.map +1 -1
- package/dist/core/configurators/slash/antigravity.js +2 -57
- package/dist/core/configurators/slash/antigravity.js.map +1 -1
- package/dist/core/configurators/slash/base.d.ts +6 -18
- package/dist/core/configurators/slash/base.d.ts.map +1 -1
- package/dist/core/configurators/slash/base.js +8 -77
- package/dist/core/configurators/slash/base.js.map +1 -1
- package/dist/core/configurators/slash/claude.d.ts +2 -5
- package/dist/core/configurators/slash/claude.d.ts.map +1 -1
- package/dist/core/configurators/slash/claude.js +2 -57
- package/dist/core/configurators/slash/claude.js.map +1 -1
- package/dist/core/configurators/slash/codex.d.ts +2 -5
- package/dist/core/configurators/slash/codex.d.ts.map +1 -1
- package/dist/core/configurators/slash/codex.js +2 -57
- package/dist/core/configurators/slash/codex.js.map +1 -1
- package/dist/core/configurators/slash/droid.d.ts +2 -5
- package/dist/core/configurators/slash/droid.d.ts.map +1 -1
- package/dist/core/configurators/slash/droid.js +2 -32
- package/dist/core/configurators/slash/droid.js.map +1 -1
- package/dist/core/configurators/slash/forge.d.ts +2 -5
- package/dist/core/configurators/slash/forge.d.ts.map +1 -1
- package/dist/core/configurators/slash/forge.js +2 -32
- package/dist/core/configurators/slash/forge.js.map +1 -1
- package/dist/core/configurators/slash/github-copilot.d.ts +2 -7
- package/dist/core/configurators/slash/github-copilot.d.ts.map +1 -1
- package/dist/core/configurators/slash/github-copilot.js +2 -96
- package/dist/core/configurators/slash/github-copilot.js.map +1 -1
- package/dist/core/configurators/slash/index.d.ts +1 -1
- package/dist/core/configurators/slash/index.d.ts.map +1 -1
- package/dist/core/configurators/slash/index.js +1 -1
- package/dist/core/configurators/slash/index.js.map +1 -1
- package/dist/core/configurators/slash/kilocode.d.ts +2 -5
- package/dist/core/configurators/slash/kilocode.d.ts.map +1 -1
- package/dist/core/configurators/slash/kilocode.js +2 -57
- package/dist/core/configurators/slash/kilocode.js.map +1 -1
- package/dist/core/configurators/slash/opencode.d.ts +2 -5
- package/dist/core/configurators/slash/opencode.d.ts.map +1 -1
- package/dist/core/configurators/slash/opencode.js +2 -57
- package/dist/core/configurators/slash/opencode.js.map +1 -1
- package/dist/core/configurators/slash/registry.d.ts +4 -4
- package/dist/core/configurators/slash/registry.d.ts.map +1 -1
- package/dist/core/configurators/slash/registry.js.map +1 -1
- package/dist/core/templates/index.d.ts +0 -1
- package/dist/core/templates/index.d.ts.map +1 -1
- package/dist/core/templates/index.js +0 -1
- package/dist/core/templates/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/ai-humanizer/SKILL.md +50 -0
- package/skills/api-contract-generator/SKILL.md +243 -0
- package/skills/apply/SKILL.md +23 -0
- package/skills/archive/SKILL.md +27 -0
- package/skills/design-system/SKILL.md +216 -0
- package/skills/document-explainer/SKILL.md +155 -0
- package/skills/enhance/SKILL.md +47 -0
- package/skills/epic-generator/SKILL.md +204 -0
- package/skills/epic-single/SKILL.md +63 -0
- package/skills/erd-generator/SKILL.md +138 -0
- package/skills/fsd-generator/SKILL.md +163 -0
- package/skills/prd-agent-generator/SKILL.md +132 -0
- package/skills/prd-generator/SKILL.md +211 -0
- package/skills/product-brief/SKILL.md +141 -0
- package/skills/project-orchestrator/SKILL.md +15 -6
- package/skills/project-orchestrator/assets/caddy-vps-setup.md +180 -0
- package/skills/proposal/SKILL.md +28 -0
- package/skills/qa-test-scenario/SKILL.md +149 -0
- package/skills/skill-creator/SKILL.md +173 -0
- package/skills/story-generator/SKILL.md +285 -0
- package/skills/story-single/SKILL.md +86 -0
- package/skills/tdd-generator/SKILL.md +300 -0
- package/skills/tdd-lite-generator/SKILL.md +230 -0
- package/skills/wireframe-generator/SKILL.md +227 -0
- package/src/cli/index.ts +1 -1
- package/src/commands/init.ts +32 -334
- package/src/commands/update.ts +20 -47
- package/src/core/configurators/slash/antigravity.ts +2 -62
- package/src/core/configurators/slash/base.ts +11 -105
- package/src/core/configurators/slash/claude.ts +2 -62
- package/src/core/configurators/slash/codex.ts +2 -62
- package/src/core/configurators/slash/droid.ts +2 -36
- package/src/core/configurators/slash/forge.ts +2 -36
- package/src/core/configurators/slash/github-copilot.ts +2 -106
- package/src/core/configurators/slash/index.ts +1 -1
- package/src/core/configurators/slash/kilocode.ts +2 -62
- package/src/core/configurators/slash/opencode.ts +2 -62
- package/src/core/configurators/slash/registry.ts +5 -5
- package/src/core/templates/index.ts +0 -1
- package/dist/core/templates/slash-command-templates.d.ts +0 -7
- package/dist/core/templates/slash-command-templates.d.ts.map +0 -1
- package/dist/core/templates/slash-command-templates.js +0 -1041
- package/dist/core/templates/slash-command-templates.js.map +0 -1
- package/src/core/templates/slash-command-templates.ts +0 -1068
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: product-brief
|
|
3
|
+
description: Generate an executive-level product brief (1-page summary)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Role & Expertise
|
|
7
|
+
You are a Senior Product Manager with 15+ years of experience crafting executive-level product briefs for Fortune 500 companies. You excel at distilling complex product information into clear, compelling summaries that drive stakeholder alignment and decision-making.
|
|
8
|
+
|
|
9
|
+
# Context
|
|
10
|
+
You are creating a Product Brief (Executive Summary) - a comprehensive, visually-rich document that communicates the essential elements of a product to executives, investors, and cross-functional stakeholders. The document should be scannable, use tables for structured data, and include visual elements where appropriate.
|
|
11
|
+
|
|
12
|
+
# Primary Objective
|
|
13
|
+
Generate a polished, professional Product Brief that captures the essence of the product in a format suitable for executive review, board presentations, or investor communications.
|
|
14
|
+
|
|
15
|
+
# Input Required
|
|
16
|
+
Provide any combination of the following:
|
|
17
|
+
- Product name and description
|
|
18
|
+
- Target market/customer segment
|
|
19
|
+
- Problem being solved
|
|
20
|
+
- Key features or capabilities
|
|
21
|
+
- Business model/pricing approach
|
|
22
|
+
- Competitive landscape
|
|
23
|
+
- Current status/stage
|
|
24
|
+
- Key metrics or traction (if available)
|
|
25
|
+
- Strategic goals
|
|
26
|
+
- Technical stack (if applicable)
|
|
27
|
+
- User roles
|
|
28
|
+
|
|
29
|
+
*Note: Work with whatever information is provided; make reasonable inferences for gaps while flagging assumptions.*
|
|
30
|
+
|
|
31
|
+
# Output Format
|
|
32
|
+
|
|
33
|
+
The output should follow this comprehensive structure:
|
|
34
|
+
|
|
35
|
+
## 1. Header Section
|
|
36
|
+
```markdown
|
|
37
|
+
# [PRODUCT NAME]
|
|
38
|
+
## Executive Summary
|
|
39
|
+
|
|
40
|
+
**[One-line tagline describing what the product is]**
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## At a Glance
|
|
45
|
+
|
|
46
|
+
| | |
|
|
47
|
+
| ----------------- | ---------------------------------------- |
|
|
48
|
+
| **Product Type** | [Category/type of product] |
|
|
49
|
+
| **Target Market** | [Primary target market/segment] |
|
|
50
|
+
| **Platform** | [Web/Mobile/Desktop/API/etc.] |
|
|
51
|
+
| **Technology** | [Key technology stack - if applicable] |
|
|
52
|
+
| **Status** | [Current development/market status] |
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 2. Product Overview
|
|
56
|
+
- "What is [Product Name]?" section with 2-3 sentences
|
|
57
|
+
- "The Problem We Solve" table (Challenge | Impact)
|
|
58
|
+
- "Our Solution" with ASCII flow diagram
|
|
59
|
+
|
|
60
|
+
## 3. Core Capabilities
|
|
61
|
+
- Numbered sections (1️⃣, 2️⃣, 3️⃣, etc.) with bullet points
|
|
62
|
+
- Typically 3-6 capability categories
|
|
63
|
+
|
|
64
|
+
## 4. Key Benefits
|
|
65
|
+
- Table format with emoji icons (⏱️, ✅, 📊, 🔐, 📁, 🔄)
|
|
66
|
+
- Benefit name | Description
|
|
67
|
+
|
|
68
|
+
## 5. User Roles Supported
|
|
69
|
+
- Table: Role | Primary Functions
|
|
70
|
+
|
|
71
|
+
## 6. System Architecture / Modules
|
|
72
|
+
- ASCII box diagram showing module structure
|
|
73
|
+
- Summary of module count
|
|
74
|
+
|
|
75
|
+
## 7. Infrastructure Highlights
|
|
76
|
+
- Bullet points with bold headers
|
|
77
|
+
|
|
78
|
+
## 8. Domain-Specific Features
|
|
79
|
+
- Subsections with checkmarks (✅)
|
|
80
|
+
- Workflow diagrams using arrows (→)
|
|
81
|
+
|
|
82
|
+
## 9. Dashboard / Analytics
|
|
83
|
+
- Table: Widget | Purpose
|
|
84
|
+
|
|
85
|
+
## 10. Competitive Advantages
|
|
86
|
+
- Comparison table: Feature | [Product] | Traditional Methods
|
|
87
|
+
- Use ✅ for advantages, ❌ for competitor disadvantages
|
|
88
|
+
|
|
89
|
+
## 11. Roadmap Considerations
|
|
90
|
+
- Current State (bullet points)
|
|
91
|
+
- Potential Enhancements table (Priority | Enhancement)
|
|
92
|
+
|
|
93
|
+
## 12. Technical Foundation
|
|
94
|
+
- Table: Component | Choice | Why
|
|
95
|
+
|
|
96
|
+
## 13. Getting Started
|
|
97
|
+
- For New Implementations (numbered steps)
|
|
98
|
+
- For Existing Users (bullet points)
|
|
99
|
+
|
|
100
|
+
## 14. Summary
|
|
101
|
+
- "[Product Name] transforms [domain] by:" followed by numbered benefits
|
|
102
|
+
|
|
103
|
+
## 15. Document Information
|
|
104
|
+
- Table with Version, Date, Classification, Full Specification reference
|
|
105
|
+
|
|
106
|
+
# Writing Standards
|
|
107
|
+
- **Tone:** Confident, data-informed, strategic
|
|
108
|
+
- **Length:** Comprehensive but scannable (typically 200-400 lines)
|
|
109
|
+
- **Language:** Executive-friendly, minimal jargon
|
|
110
|
+
- **Visuals:** Use tables for structured data, ASCII diagrams for flows/architecture
|
|
111
|
+
- **Icons:** Use emoji icons (⏱️, ✅, 📊, 🔐, 📁, 🔄, 1️⃣, 2️⃣, etc.) to improve scannability
|
|
112
|
+
- **Checkmarks:** Use ✅ for features/advantages, ❌ for competitor disadvantages
|
|
113
|
+
|
|
114
|
+
# Quality Criteria
|
|
115
|
+
1. A busy executive can understand the product in under 5 minutes
|
|
116
|
+
2. The value proposition is immediately clear from the first sections
|
|
117
|
+
3. Tables make data comparison easy and quick to scan
|
|
118
|
+
4. Visual diagrams help explain system architecture and workflows
|
|
119
|
+
5. Competitive positioning is explicit and easy to understand
|
|
120
|
+
6. Technical and non-technical stakeholders can both extract value
|
|
121
|
+
|
|
122
|
+
# Special Instructions
|
|
123
|
+
- If information is incomplete, make reasonable assumptions and mark with [ASSUMPTION] or use placeholder text like [TBD]
|
|
124
|
+
- Prioritize clarity over comprehensiveness
|
|
125
|
+
- Lead with impact, not features
|
|
126
|
+
- Use active voice and strong verbs
|
|
127
|
+
- Avoid superlatives without supporting data
|
|
128
|
+
- If competitive information is sparse, focus on unique value rather than comparisons
|
|
129
|
+
- Adapt section headers to match the product domain (e.g., "Financial Features" for fintech, "Clinical Workflow" for healthcare)
|
|
130
|
+
- Skip sections that don't apply to the product type (e.g., "Technical Foundation" for non-software products)
|
|
131
|
+
|
|
132
|
+
## WORKFLOW STEPS
|
|
133
|
+
1. Read the user's input about the product
|
|
134
|
+
2. Generate a unique, URL-friendly slug from the product name (lowercase, hyphen-separated)
|
|
135
|
+
3. Create the directory \`prompter/<slug>/\` if it doesn't exist
|
|
136
|
+
4. Generate the complete Product Brief following all requirements above
|
|
137
|
+
5. Save the Product Brief to \`prompter/<slug>/product-brief.md\`
|
|
138
|
+
6. Report the saved file path
|
|
139
|
+
|
|
140
|
+
## REFERENCE
|
|
141
|
+
- Read \`prompter/project.md\` for project context if needed
|
|
@@ -305,13 +305,13 @@ When Docker is used and a web server or reverse proxy is needed (e.g., for Larav
|
|
|
305
305
|
- For local development, Caddy serves HTTP by default -- no certificate setup needed.
|
|
306
306
|
- Mention Caddy in the final plan summary under the Docker/web server row and in the recommended next steps.
|
|
307
307
|
|
|
308
|
-
**Always
|
|
308
|
+
**Always install Caddy directly on the host** (via the OS package manager) -- do NOT run Caddy inside Docker. Running Caddy on the host avoids Docker network overhead, survives Docker daemon restarts, and is managed by systemd automatically. Do NOT embed Caddy in any project's `docker-compose.yml`.
|
|
309
309
|
|
|
310
310
|
The correct setup:
|
|
311
311
|
|
|
312
|
-
1. **
|
|
312
|
+
1. **Caddy installed on the host** via `apt install caddy` (Ubuntu/Debian) or equivalent. Systemd manages it -- starts on boot, restarts on failure.
|
|
313
313
|
2. **Each project exposes only an internal port** (e.g., `3001`, `3002`) -- no `ports: - "80:80"` in their `docker-compose.yml`.
|
|
314
|
-
3. The host Caddyfile routes by domain:
|
|
314
|
+
3. The host Caddyfile (`/etc/caddy/Caddyfile`) routes by domain:
|
|
315
315
|
|
|
316
316
|
```caddy
|
|
317
317
|
project-a.com {
|
|
@@ -323,10 +323,18 @@ project-b.com {
|
|
|
323
323
|
}
|
|
324
324
|
```
|
|
325
325
|
|
|
326
|
-
|
|
326
|
+
4. After editing the Caddyfile, reload with `sudo systemctl reload caddy`.
|
|
327
327
|
|
|
328
|
-
|
|
329
|
-
|
|
328
|
+
During Step 9 (Deployment), ask whether Caddy is already installed on the VPS:
|
|
329
|
+
|
|
330
|
+
- **Yes** -- skip installing Caddy. Just add a new block to `/etc/caddy/Caddyfile` for the new domain, then run `sudo systemctl reload caddy`. Include only this step in the recommended next steps.
|
|
331
|
+
- **No** -- include the full Caddy install in the recommended next steps:
|
|
332
|
+
```bash
|
|
333
|
+
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
|
|
334
|
+
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
|
|
335
|
+
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
|
|
336
|
+
sudo apt update && sudo apt install caddy
|
|
337
|
+
```
|
|
330
338
|
|
|
331
339
|
Include the appropriate Caddy setup in the final plan summary and recommended next steps.
|
|
332
340
|
|
|
@@ -476,3 +484,4 @@ If the user agrees, read `prompter/core/proposal.md` and `prompter/AGENTS.md` an
|
|
|
476
484
|
## Resources
|
|
477
485
|
|
|
478
486
|
- **Plan summary template**: [plan-summary-template.md](assets/plan-summary-template.md) -- Structured output format for the final verified plan
|
|
487
|
+
- **Caddy VPS setup guide**: [caddy-vps-setup.md](assets/caddy-vps-setup.md) -- Step-by-step guide for installing and managing Caddy on a VPS (share this with users who are unfamiliar with VPS operations)
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Caddy Setup on a VPS (Step-by-Step)
|
|
2
|
+
|
|
3
|
+
This guide walks you through installing and managing Caddy as a reverse proxy on a Ubuntu/Debian VPS. Caddy automatically handles HTTPS for all your domains — no manual SSL certificate setup needed.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Prerequisites
|
|
8
|
+
|
|
9
|
+
Before starting, make sure:
|
|
10
|
+
|
|
11
|
+
1. You have a VPS running **Ubuntu 22.04 or Debian 12** (or newer).
|
|
12
|
+
2. You have SSH access to the VPS as a user with `sudo` privileges.
|
|
13
|
+
3. Your domain's **A record points to your VPS IP address** (set this in your domain registrar's DNS panel). DNS changes can take up to 30 minutes to propagate.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Step 1: Connect to Your VPS
|
|
18
|
+
|
|
19
|
+
Open a terminal and connect via SSH:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
ssh your-user@your-vps-ip
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Step 2: Install Caddy
|
|
28
|
+
|
|
29
|
+
Run these commands one by one:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
|
|
33
|
+
|
|
34
|
+
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
|
|
35
|
+
| sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
|
|
36
|
+
|
|
37
|
+
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
|
|
38
|
+
| sudo tee /etc/apt/sources.list.d/caddy-stable.list
|
|
39
|
+
|
|
40
|
+
sudo apt update && sudo apt install caddy
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Verify the install:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
caddy version
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
You should see a version number like `v2.x.x`.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Step 3: Check That Caddy Is Running
|
|
54
|
+
|
|
55
|
+
Caddy starts automatically after install. Confirm it's active:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
sudo systemctl status caddy
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Look for `Active: active (running)`. If it's not running, start it:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
sudo systemctl start caddy
|
|
65
|
+
sudo systemctl enable caddy # make it start on boot
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Step 4: Open Firewall Ports
|
|
71
|
+
|
|
72
|
+
Allow HTTP and HTTPS traffic:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
sudo ufw allow 80
|
|
76
|
+
sudo ufw allow 443
|
|
77
|
+
sudo ufw allow 22 # keep SSH open
|
|
78
|
+
sudo ufw enable
|
|
79
|
+
sudo ufw status
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## Step 5: Configure Your First Domain
|
|
85
|
+
|
|
86
|
+
The Caddy config file lives at `/etc/caddy/Caddyfile`. Open it:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
sudo nano /etc/caddy/Caddyfile
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Replace the default content with:
|
|
93
|
+
|
|
94
|
+
```caddy
|
|
95
|
+
your-domain.com {
|
|
96
|
+
reverse_proxy localhost:3001
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
> Replace `your-domain.com` with your actual domain, and `3001` with the port your app is running on.
|
|
101
|
+
|
|
102
|
+
Save and close: press `Ctrl+X`, then `Y`, then `Enter`.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Step 6: Reload Caddy
|
|
107
|
+
|
|
108
|
+
Apply the new config without downtime:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
sudo systemctl reload caddy
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Caddy will automatically obtain an SSL certificate for your domain. Visit `https://your-domain.com` — it should work with HTTPS out of the box.
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## Adding a New Project Later
|
|
119
|
+
|
|
120
|
+
When you deploy a new project on the same VPS, just add a new block to the Caddyfile:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
sudo nano /etc/caddy/Caddyfile
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Add below the existing block:
|
|
127
|
+
|
|
128
|
+
```caddy
|
|
129
|
+
your-domain.com {
|
|
130
|
+
reverse_proxy localhost:3001
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
another-project.com {
|
|
134
|
+
reverse_proxy localhost:3002
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Then reload:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
sudo systemctl reload caddy
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Each project gets its own SSL certificate automatically.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Common Commands
|
|
149
|
+
|
|
150
|
+
| Task | Command |
|
|
151
|
+
|------|---------|
|
|
152
|
+
| Check Caddy status | `sudo systemctl status caddy` |
|
|
153
|
+
| Reload after config change | `sudo systemctl reload caddy` |
|
|
154
|
+
| Restart Caddy | `sudo systemctl restart caddy` |
|
|
155
|
+
| View live logs | `sudo journalctl -u caddy -f` |
|
|
156
|
+
| Validate config before reload | `caddy validate --config /etc/caddy/Caddyfile` |
|
|
157
|
+
| View current config | `cat /etc/caddy/Caddyfile` |
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Troubleshooting
|
|
162
|
+
|
|
163
|
+
**HTTPS not working / certificate error**
|
|
164
|
+
- Check that your domain's A record points to the VPS IP: `dig your-domain.com`
|
|
165
|
+
- Make sure ports 80 and 443 are open: `sudo ufw status`
|
|
166
|
+
- Check Caddy logs for errors: `sudo journalctl -u caddy -f`
|
|
167
|
+
|
|
168
|
+
**502 Bad Gateway**
|
|
169
|
+
- Your app is not running or not listening on the expected port.
|
|
170
|
+
- Check that your Docker containers are up: `docker compose ps`
|
|
171
|
+
- Verify the port in your Caddyfile matches the port your app exposes.
|
|
172
|
+
|
|
173
|
+
**Port already in use**
|
|
174
|
+
- Another process (e.g., Apache or Nginx) may be using port 80/443.
|
|
175
|
+
- Check: `sudo ss -tlnp | grep -E ':80|:443'`
|
|
176
|
+
- Stop the conflicting service: `sudo systemctl stop nginx` or `sudo systemctl stop apache2`
|
|
177
|
+
|
|
178
|
+
**Config change not taking effect**
|
|
179
|
+
- Always run `sudo systemctl reload caddy` after editing the Caddyfile.
|
|
180
|
+
- Validate first to catch syntax errors: `caddy validate --config /etc/caddy/Caddyfile`
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: proposal
|
|
3
|
+
description: Create a new change proposal with spec deltas
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- PROMPTER:START -->
|
|
7
|
+
**Guardrails**
|
|
8
|
+
- Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.
|
|
9
|
+
- Keep changes tightly scoped to the requested outcome.
|
|
10
|
+
- Refer to `prompter/AGENTS.md` (located inside the `prompter/` directory—run `ls prompter` if you don't see it) if you need additional Prompter conventions or clarifications.
|
|
11
|
+
- Identify any vague or ambiguous details and ask the necessary follow-up questions before editing files.
|
|
12
|
+
- Do not write any code during the proposal stage. Only create design documents (proposal.md, tasks.md, design.md, and spec deltas). Implementation happens in the apply stage after approval.
|
|
13
|
+
|
|
14
|
+
**Steps**
|
|
15
|
+
1. Review `prompter/project.md`, run `prompter list` and `prompter list --specs`, and inspect related code or docs (e.g., via `rg`/`ls`) to ground the proposal in current behaviour; note any gaps that require clarification.
|
|
16
|
+
2. Choose a unique verb-led `change-id` and scaffold `proposal.md`, `tasks.md`, and `design.md` (when needed) under `prompter/changes/<id>/`.
|
|
17
|
+
3. Map the change into concrete capabilities or requirements, breaking multi-scope efforts into distinct spec deltas with clear relationships and sequencing.
|
|
18
|
+
4. Capture architectural reasoning in `design.md` when the solution spans multiple systems, introduces new patterns, or demands trade-off discussion before committing to specs.
|
|
19
|
+
5. Draft spec deltas in `changes/<id>/specs/<capability>/spec.md` (one folder per capability) using `## ADDED|MODIFIED|REMOVED Requirements` with at least one `#### Scenario:` per requirement and cross-reference related capabilities when relevant.
|
|
20
|
+
6. Draft `tasks.md` as an ordered list of small, verifiable work items that deliver user-visible progress, include validation (tests, tooling), and highlight dependencies or parallelizable work.
|
|
21
|
+
7. Validate with `prompter validate <id> --strict` and resolve every issue before sharing the proposal.
|
|
22
|
+
|
|
23
|
+
**Reference**
|
|
24
|
+
- Use `prompter show <id> --json --deltas-only` or `prompter show <spec> --type spec` to inspect details when validation fails.
|
|
25
|
+
- Search existing requirements with `rg -n "Requirement:|Scenario:" prompter/specs` before writing new ones.
|
|
26
|
+
- Explore the codebase with `rg <keyword>`, `ls`, or direct file reads so proposals align with current implementation realities.
|
|
27
|
+
<!-- PROMPTER:END -->
|
|
28
|
+
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: qa-test-scenario
|
|
3
|
+
description: Generate focused QA test scenarios from PRD
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Role & Expertise
|
|
7
|
+
You are a Senior QA Architect and Test Strategy Expert with extensive experience in creating focused, actionable test plans. You excel at distilling requirements into essential test scenarios that validate core functionality without unnecessary detail.
|
|
8
|
+
|
|
9
|
+
# Context
|
|
10
|
+
You will receive a Product Requirements Document (PRD) that outlines features and requirements. Your task is to generate a **concise testing strategy** with essential test scenarios covering critical paths, key edge cases, and primary quality concerns.
|
|
11
|
+
|
|
12
|
+
# Primary Objective
|
|
13
|
+
Create a focused testing document that covers the most important functional requirements, critical user flows, high-risk edge cases, and key quality attributes. Prioritize clarity and actionability over exhaustive coverage.
|
|
14
|
+
|
|
15
|
+
# Process
|
|
16
|
+
|
|
17
|
+
## 1. PRD Analysis (Focus on Essentials)
|
|
18
|
+
- Identify **core features** and **critical user flows**
|
|
19
|
+
- Extract **must-have acceptance criteria** only
|
|
20
|
+
- Note **high-risk areas** and integration points
|
|
21
|
+
- Skip minor edge cases and cosmetic details
|
|
22
|
+
|
|
23
|
+
## 2. Test Scenario Generation (Strategic Coverage)
|
|
24
|
+
|
|
25
|
+
Generate only:
|
|
26
|
+
|
|
27
|
+
**Critical Happy Path** (2-3 scenarios per feature)
|
|
28
|
+
- Primary user journey validation
|
|
29
|
+
- Core functionality verification
|
|
30
|
+
|
|
31
|
+
**High-Risk Edge Cases** (1-2 per feature)
|
|
32
|
+
- Data boundary conditions
|
|
33
|
+
- Error states that impact functionality
|
|
34
|
+
- Integration failure points
|
|
35
|
+
|
|
36
|
+
**Key Quality Checks** (as needed)
|
|
37
|
+
- Performance bottlenecks
|
|
38
|
+
- Security vulnerabilities
|
|
39
|
+
- Critical usability issues
|
|
40
|
+
|
|
41
|
+
**Skip:** Low-priority edge cases, cosmetic issues, obvious validations
|
|
42
|
+
|
|
43
|
+
## 3. Scenario Documentation (Streamlined Format)
|
|
44
|
+
Each scenario includes only:
|
|
45
|
+
- **ID & Story**: TS-[#] | [Feature Name]
|
|
46
|
+
- **Type**: Functional, Edge Case, Performance, Security
|
|
47
|
+
- **Priority**: CRITICAL or HIGH only
|
|
48
|
+
- **Test Steps**: 3-5 key actions
|
|
49
|
+
- **Expected Result**: One clear outcome
|
|
50
|
+
- **Notes**: Only if critical context needed
|
|
51
|
+
|
|
52
|
+
# Input Specifications
|
|
53
|
+
- **PRD Document**: User stories, features, acceptance criteria
|
|
54
|
+
- **Format**: Any structured or narrative format
|
|
55
|
+
- **Focus**: Extract essential requirements only
|
|
56
|
+
|
|
57
|
+
# Output Requirements
|
|
58
|
+
|
|
59
|
+
## Concise Format Structure
|
|
60
|
+
|
|
61
|
+
### Test Coverage Summary (Compact)
|
|
62
|
+
|
|
63
|
+
## Test Coverage Overview
|
|
64
|
+
- **Features Covered**: [#] core features
|
|
65
|
+
- **Total Scenarios**: [X] (targeting 20-30 scenarios max for typical features)
|
|
66
|
+
- **Critical Path**: [X] scenarios
|
|
67
|
+
- **High-Risk Edge Cases**: [X] scenarios
|
|
68
|
+
- **Priority Distribution**: CRITICAL: [X] | HIGH: [X]
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
### Essential Test Scenarios
|
|
73
|
+
|
|
74
|
+
| ID | Feature | Scenario | Type | Priority | Steps | Expected Result |
|
|
75
|
+
|----|---------|----------|------|----------|-------|-----------------|
|
|
76
|
+
| TS-01 | [Name] | [Brief description] | Functional | CRITICAL | 1. [Action]<br>2. [Action]<br>3. [Verify] | [Clear outcome] |
|
|
77
|
+
| TS-02 | [Name] | [Brief description] | Edge Case | HIGH | 1. [Action]<br>2. [Action]<br>3. [Verify] | [Clear outcome] |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
### Performance & Environment Notes (If Applicable)
|
|
82
|
+
|
|
83
|
+
**Performance Criteria:**
|
|
84
|
+
- [Key metric]: [Threshold]
|
|
85
|
+
- [Key metric]: [Threshold]
|
|
86
|
+
|
|
87
|
+
**Test Environments:**
|
|
88
|
+
- [Platform 1]: [Critical versions only]
|
|
89
|
+
- [Platform 2]: [Critical versions only]
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### Test Data Requirements (Essential Only)
|
|
94
|
+
|
|
95
|
+
- [Critical data type]: [Min specification]
|
|
96
|
+
- [Edge case data]: [Key examples]
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
### Execution Notes
|
|
101
|
+
|
|
102
|
+
**Prerequisites:**
|
|
103
|
+
- [Essential setup only]
|
|
104
|
+
|
|
105
|
+
**Key Dependencies:**
|
|
106
|
+
- [Critical blockers only]
|
|
107
|
+
|
|
108
|
+
# Quality Standards
|
|
109
|
+
|
|
110
|
+
- **Focus on risk**: Cover high-impact scenarios, skip obvious validations
|
|
111
|
+
- **Be concise**: 3-5 test steps maximum per scenario
|
|
112
|
+
- **Prioritize ruthlessly**: Only CRITICAL and HIGH priority items
|
|
113
|
+
- **Target scope**: 15-30 scenarios for typical features, 30-50 for complex products
|
|
114
|
+
- **Clear outcomes**: One measurable result per scenario
|
|
115
|
+
|
|
116
|
+
# Special Instructions
|
|
117
|
+
|
|
118
|
+
## Brevity Rules
|
|
119
|
+
- **Omit** detailed preconditions unless critical
|
|
120
|
+
- **Omit** low-priority scenarios entirely
|
|
121
|
+
- **Omit** obvious test data specifications
|
|
122
|
+
- **Omit** exhaustive device/browser matrices (note key platforms only)
|
|
123
|
+
- **Combine** related scenarios where logical
|
|
124
|
+
|
|
125
|
+
## Prioritization (Strict)
|
|
126
|
+
Include only:
|
|
127
|
+
- **CRITICAL**: Core functionality, security, data integrity
|
|
128
|
+
- **HIGH**: Primary user flows, high-risk integrations
|
|
129
|
+
- **OMIT**: Medium/Low priority items
|
|
130
|
+
|
|
131
|
+
## Smart Assumptions
|
|
132
|
+
- Standard validation (email format, required fields) is assumed tested
|
|
133
|
+
- Basic UI functionality is assumed working
|
|
134
|
+
- Focus on **what could break** or **what's unique** to this feature
|
|
135
|
+
|
|
136
|
+
# Output Delivery
|
|
137
|
+
|
|
138
|
+
Generate a **concise** testing document (targeting 50-150 lines for simple features, 150-300 for complex features). Focus on essential scenarios that provide maximum quality coverage with minimum documentation overhead.
|
|
139
|
+
|
|
140
|
+
## WORKFLOW STEPS
|
|
141
|
+
1. Read the user's input (PRD or requirements)
|
|
142
|
+
2. Generate a unique, URL-friendly slug from the feature name (lowercase, hyphen-separated)
|
|
143
|
+
3. Create the directory `prompter/<slug>/` if it doesn't exist
|
|
144
|
+
4. Generate the complete QA test scenarios following all requirements above
|
|
145
|
+
5. Save the test scenarios to `prompter/<slug>/qa-test-scenarios.md`
|
|
146
|
+
6. Report the saved file path
|
|
147
|
+
|
|
148
|
+
## REFERENCE
|
|
149
|
+
- Read `prompter/project.md` for project context if needed
|