pmpt-cli 1.3.0 → 1.3.1
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/README.md +102 -31
- package/dist/commands/new.js +3 -3
- package/dist/commands/submit.js +3 -3
- package/dist/commands/validate.js +1 -1
- package/dist/lib/auth.js +1 -1
- package/dist/lib/github.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,66 +1,137 @@
|
|
|
1
|
-
# pmpt
|
|
1
|
+
# pmpt
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Record and share your AI-driven product development journey.**
|
|
4
|
+
|
|
5
|
+
AI와 대화하며 제품을 만드는 여정을 기록하고 공유하세요.
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/pmpt-cli)
|
|
4
8
|
|
|
5
9
|
**Website**: [pmptwiki.com](https://pmptwiki.com)
|
|
6
10
|
|
|
11
|
+
---
|
|
12
|
+
|
|
7
13
|
## Install
|
|
8
14
|
|
|
9
15
|
```bash
|
|
10
16
|
npm install -g pmpt-cli
|
|
11
17
|
```
|
|
12
18
|
|
|
19
|
+
---
|
|
20
|
+
|
|
13
21
|
## Quick Start
|
|
14
22
|
|
|
15
23
|
```bash
|
|
16
|
-
# Initialize project
|
|
24
|
+
# 1. Initialize project
|
|
17
25
|
pmpt init
|
|
18
26
|
|
|
19
|
-
#
|
|
27
|
+
# 2. Answer 5 questions → AI prompt generated
|
|
20
28
|
pmpt plan
|
|
21
29
|
|
|
22
|
-
#
|
|
23
|
-
pmpt save
|
|
24
|
-
|
|
25
|
-
# Or auto-detect file changes
|
|
26
|
-
pmpt watch
|
|
30
|
+
# 3. Copy the prompt to Claude/ChatGPT/Cursor and build!
|
|
27
31
|
|
|
28
|
-
#
|
|
29
|
-
pmpt
|
|
30
|
-
pmpt history --compact # Hide minor changes
|
|
32
|
+
# 4. Save your progress
|
|
33
|
+
pmpt save
|
|
31
34
|
|
|
32
|
-
#
|
|
33
|
-
pmpt
|
|
35
|
+
# 5. Export & share
|
|
36
|
+
pmpt export
|
|
34
37
|
```
|
|
35
38
|
|
|
36
|
-
|
|
39
|
+
---
|
|
37
40
|
|
|
38
|
-
|
|
39
|
-
.promptwiki/
|
|
40
|
-
├── config.json # Config file
|
|
41
|
-
├── pmpt/ # Working folder (MD files)
|
|
42
|
-
└── .history/ # Version history
|
|
43
|
-
```
|
|
41
|
+
## Why pmpt?
|
|
44
42
|
|
|
45
|
-
|
|
43
|
+
- **5 questions** — Quick product planning with AI-ready prompts
|
|
44
|
+
- **Version history** — Track every step of your AI-assisted development
|
|
45
|
+
- **Share & reproduce** — Export `.pmpt` files for others to learn from
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
2. `pmpt plan` → Answer 6 questions → `pmpt.md` generated
|
|
49
|
-
3. Copy `pmpt.md` to AI → Build with AI conversation
|
|
50
|
-
4. `pmpt save` or `pmpt watch` → Save progress
|
|
51
|
-
5. `pmpt submit` → Share to archive (coming soon)
|
|
47
|
+
---
|
|
52
48
|
|
|
53
49
|
## Commands
|
|
54
50
|
|
|
55
51
|
| Command | Description |
|
|
56
52
|
|---------|-------------|
|
|
57
|
-
| `pmpt init` | Initialize project
|
|
58
|
-
| `pmpt plan` |
|
|
53
|
+
| `pmpt init` | Initialize project |
|
|
54
|
+
| `pmpt plan` | 5 questions → AI prompt (copied to clipboard) |
|
|
59
55
|
| `pmpt save` | Save current state as snapshot |
|
|
60
56
|
| `pmpt watch` | Auto-detect file changes |
|
|
61
|
-
| `pmpt status` | Check project status |
|
|
62
57
|
| `pmpt history` | View version history |
|
|
63
|
-
| `pmpt
|
|
58
|
+
| `pmpt history --compact` | Hide minor changes |
|
|
59
|
+
| `pmpt squash v2 v5` | Merge versions v2-v5 into v2 |
|
|
60
|
+
| `pmpt export` | Export as `.pmpt` file (single JSON) |
|
|
61
|
+
| `pmpt import <file>` | Import from `.pmpt` file |
|
|
62
|
+
| `pmpt status` | Check project status |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Folder Structure
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
.pmpt/
|
|
70
|
+
├── config.json # Config file
|
|
71
|
+
├── docs/ # Working folder (MD files)
|
|
72
|
+
│ ├── plan.md # Product plan
|
|
73
|
+
│ └── pmpt.md # AI prompt
|
|
74
|
+
└── .history/ # Version history
|
|
75
|
+
├── v1-2024-02-20/
|
|
76
|
+
├── v2-2024-02-21/
|
|
77
|
+
└── ...
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Workflow
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
[You]
|
|
86
|
+
│
|
|
87
|
+
├─ pmpt plan ────→ 5 questions → AI prompt (clipboard)
|
|
88
|
+
│
|
|
89
|
+
├─ Build with AI ─→ Create files, iterate
|
|
90
|
+
│
|
|
91
|
+
├─ pmpt save ────→ Save to .pmpt/.history
|
|
92
|
+
│
|
|
93
|
+
├─ pmpt export ──→ Create .pmpt file (shareable)
|
|
94
|
+
│
|
|
95
|
+
└─ pmpt import ──→ Reproduce someone's project
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## .pmpt File Format
|
|
101
|
+
|
|
102
|
+
Single JSON file containing your entire development journey:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"schemaVersion": "1.0",
|
|
107
|
+
"meta": { "projectName", "description", "createdAt" },
|
|
108
|
+
"plan": { "productIdea", "coreFeatures", "techStack" },
|
|
109
|
+
"docs": { "plan.md": "...", "pmpt.md": "..." },
|
|
110
|
+
"history": [
|
|
111
|
+
{ "version": 1, "timestamp": "...", "files": {...} },
|
|
112
|
+
{ "version": 2, "timestamp": "...", "files": {...} }
|
|
113
|
+
]
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Use Cases
|
|
120
|
+
|
|
121
|
+
- **Side project builders** — Track your AI-assisted development
|
|
122
|
+
- **Startup founders** — Document MVP creation process
|
|
123
|
+
- **Content creators** — Share your coding journey
|
|
124
|
+
- **Learners** — Study how others build with AI
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Links
|
|
129
|
+
|
|
130
|
+
- [Website](https://pmptwiki.com)
|
|
131
|
+
- [GitHub](https://github.com/pmptwiki/pmpt-cli)
|
|
132
|
+
- [npm](https://www.npmjs.com/package/pmpt-cli)
|
|
133
|
+
|
|
134
|
+
---
|
|
64
135
|
|
|
65
136
|
## License
|
|
66
137
|
|
package/dist/commands/new.js
CHANGED
|
@@ -3,7 +3,7 @@ import { writeFileSync, mkdirSync } from 'fs';
|
|
|
3
3
|
import { dirname } from 'path';
|
|
4
4
|
import { generateContent, generateFilePath } from '../lib/template.js';
|
|
5
5
|
export async function cmdNew() {
|
|
6
|
-
p.intro('
|
|
6
|
+
p.intro('pmptwiki — 새 문서 만들기');
|
|
7
7
|
const answers = await p.group({
|
|
8
8
|
lang: () => p.select({
|
|
9
9
|
message: '언어를 선택하세요',
|
|
@@ -73,6 +73,6 @@ export async function cmdNew() {
|
|
|
73
73
|
|
|
74
74
|
다음 단계:
|
|
75
75
|
1. 파일을 열어 본문을 작성하세요
|
|
76
|
-
2.
|
|
77
|
-
3.
|
|
76
|
+
2. pmpt validate ${filePath}
|
|
77
|
+
3. pmpt submit ${filePath}`);
|
|
78
78
|
}
|
package/dist/commands/submit.js
CHANGED
|
@@ -6,7 +6,7 @@ import { createClient, createBranch, createPR, ensureFork, getAuthUser, pushFile
|
|
|
6
6
|
import { validate } from '../lib/schema.js';
|
|
7
7
|
import { today } from '../lib/template.js';
|
|
8
8
|
export async function cmdSubmit(filePath) {
|
|
9
|
-
p.intro(`
|
|
9
|
+
p.intro(`pmptwiki — 제출: ${filePath}`);
|
|
10
10
|
// 1. 검증
|
|
11
11
|
const s1 = p.spinner();
|
|
12
12
|
s1.start('파일 검증 중...');
|
|
@@ -15,7 +15,7 @@ export async function cmdSubmit(filePath) {
|
|
|
15
15
|
s1.stop('검증 실패');
|
|
16
16
|
for (const err of result.errors)
|
|
17
17
|
p.log.error(err);
|
|
18
|
-
p.outro('오류를 수정한 후 다시 시도하세요:
|
|
18
|
+
p.outro('오류를 수정한 후 다시 시도하세요: pmpt validate ' + filePath);
|
|
19
19
|
process.exit(1);
|
|
20
20
|
}
|
|
21
21
|
s1.stop(`검증 통과${result.warnings.length ? ` (경고 ${result.warnings.length}개)` : ''}`);
|
|
@@ -91,7 +91,7 @@ export async function cmdSubmit(filePath) {
|
|
|
91
91
|
`- [ ] 제목과 내용이 일치하는가?`,
|
|
92
92
|
``,
|
|
93
93
|
`---`,
|
|
94
|
-
`
|
|
94
|
+
`_pmpt-cli로 제출됨_`,
|
|
95
95
|
]
|
|
96
96
|
.filter((l) => l !== null)
|
|
97
97
|
.join('\n');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as p from '@clack/prompts';
|
|
2
2
|
import { validate } from '../lib/schema.js';
|
|
3
3
|
export function cmdValidate(filePath) {
|
|
4
|
-
p.intro(`
|
|
4
|
+
p.intro(`pmptwiki — 검증: ${filePath}`);
|
|
5
5
|
const result = validate(filePath);
|
|
6
6
|
if (result.errors.length === 0 && result.warnings.length === 0) {
|
|
7
7
|
p.outro('모든 검증 통과');
|
package/dist/lib/auth.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
2
2
|
import { homedir } from 'os';
|
|
3
3
|
import { join } from 'path';
|
|
4
|
-
const CONFIG_DIR = join(homedir(), '.config', '
|
|
4
|
+
const CONFIG_DIR = join(homedir(), '.config', 'pmptwiki');
|
|
5
5
|
const TOKEN_FILE = join(CONFIG_DIR, 'auth.json');
|
|
6
6
|
export function loadAuth() {
|
|
7
7
|
try {
|
package/dist/lib/github.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pmpt-cli",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "Record and share your AI-driven product development journey",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"homepage": "https://pmptwiki.com",
|
|
22
22
|
"repository": {
|
|
23
23
|
"type": "git",
|
|
24
|
-
"url": "https://github.com/
|
|
24
|
+
"url": "https://github.com/pmptwiki/pmpt-cli.git"
|
|
25
25
|
},
|
|
26
26
|
"license": "MIT",
|
|
27
27
|
"engines": {
|