reborn-prompt 1.0.2 → 1.0.4

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/install.mjs CHANGED
@@ -31,12 +31,27 @@ const 말강제 = (인자.find((a) => a.startsWith("--lang=")) || "").slice(7).t
31
31
  * ★이 컴퓨터의 로케일이 곧 그 사람이 읽는 말이다. 서버에 묻지 않는다.
32
32
  * ★못 읽으면 한국어로 떨어진다 — 지금 받는 사람의 절대다수가 한국 고객이다.
33
33
  */
34
+ // ==국가런칭:말정하기 시작==
35
+ /**
36
+ * 어느 말로 말할 것인가. (2026-09-26 국가런칭 · 공용본)
37
+ *
38
+ * ★강제 인자(`--lang=xx`)가 지원 언어 안에 있으면 그것을 그대로 쓴다.
39
+ * ★없으면 이 컴퓨터의 로케일로 정한다 — `ko`→한국어, `ja`→일본어, 그 밖은 전부 영어.
40
+ * ★예외가 나면(로케일을 못 읽는 드문 환경) 한국어로 떨어진다 — 기존 동작 그대로다.
41
+ * 지금 사는 사람의 절대다수가 한국 고객이라, 판정이 실패했을 때 덜 틀리는 쪽이 그쪽이다.
42
+ */
43
+ const 지원언어 = ["ko", "en", "ja"];
44
+
34
45
  export function 말정하기(강제) {
35
- if (강제 === "en" || 강제 === "ko") return 강제;
46
+ if (지원언어.includes(강제)) return 강제;
36
47
  try {
37
- return /^ko\b/i.test(Intl.DateTimeFormat().resolvedOptions().locale || "") ? "ko" : "en";
48
+ const 로케일 = Intl.DateTimeFormat().resolvedOptions().locale || "";
49
+ if (/^ko\b/i.test(로케일)) return "ko";
50
+ if (/^ja\b/i.test(로케일)) return "ja";
51
+ return "en";
38
52
  } catch { return "ko"; }
39
53
  }
54
+ // ==국가런칭:말정하기 끝==
40
55
 
41
56
  /**
42
57
  * 화면에 찍는 말. **색은 여기 넣지 않는다** — 부르는 쪽이 입힌다.
@@ -104,10 +119,42 @@ const 글표 = {
104
119
  설명링크: "Learn more · https://rebornlabs.kr/prompt?utm_source=installer&utm_medium=cli&utm_campaign=prompt",
105
120
  꼬리1: "This makes one conversation better. Fixing how Claude works overall is a separate thing.",
106
121
  제품이름: "REBORN LABS Skill Pack",
107
- 제품설명: "— 48 skills we installed and picked ourselves, in one line. US$8",
122
+ 제품설명: "— 48 handpicked skills, in one line. US$8",
108
123
  제품링크: "https://skillpack.rebornlabs.kr/?utm_source=installer&utm_medium=cli&utm_campaign=prompt",
109
124
  제품꼬리: "The list and the exact install command are right there on that page. You don't have to buy it.",
110
125
  },
126
+ ja: {
127
+ 머리: "プロンプト整理ツール",
128
+ 머리부제: "· REBORN LABS · MIT",
129
+ 머리설명: "一文をそのまま使えるプロンプトに整えます。",
130
+ 짐없음1: "✗ パッケージ内に skill/ フォルダがありません",
131
+ 짐없음1뒤: " — パッケージのビルドが誤っています。",
132
+ 받은곳: (경로) => `受け取った場所: ${경로}`,
133
+ 검사_SKILL없음: "SKILL.md がありません",
134
+ 검사_머리말깨짐: "SKILL.md のフロントマターが壊れています(name を読み取れません)",
135
+ 검사_참고없음: "references/낭비35.md がありません",
136
+ 검사_개수틀림: (n) => `35項目のはずが${n}個です — 一覧が途中で切れています`,
137
+ 설치됨: "✓ インストール済みです",
138
+ 설치됨상세: (경로) => `(${경로} · 35項目確認済み)`,
139
+ 아직없음: "· まだありません",
140
+ 설치요약: (n, 경로) => `${n}個のファイル → ${경로}`,
141
+ 확인걸림: "✗ インストールしましたが、確認に失敗しました",
142
+ 확인걸림설명: "権限またはパスの問題である可能性があります。上記のパスを直接開いてご確認ください。",
143
+ 설치완료: "✓ インストール完了",
144
+ 설치완료설명: "— ファイルの確認まで完了しました(35項目すべて確認済み)。",
145
+ 재시작: "★ Claude Code を再起動すると反映されます。",
146
+ 쓰는법머리: "使い方",
147
+ 쓰는법1앞: "大まかに伝えるだけです — ",
148
+ 쓰는법1말: '"とにかく決済がちゃんと動くように直して"',
149
+ 쓰는법2: "タスク・成果物・作業範囲・完了条件まで埋めたプロンプトに変換します。",
150
+ 쓰는법3: "ChatGPT や Cursor にそのまま貼り付けてもお使いいただけます。",
151
+ 설명링크: "詳細 · https://rebornlabs.kr/ja/prompt?utm_source=installer&utm_medium=cli&utm_campaign=prompt",
152
+ 꼬리1: "これは1回の会話を良くするものです。Claude が行う作業自体を整えるのは別のものです。",
153
+ 제품이름: "REBORN LABS スキルパック",
154
+ 제품설명: "— 私たちが実際にインストールして選んだ48種を1行で。¥1,200(税込)",
155
+ 제품링크: "https://rebornlabs.kr/ja/skillpack?utm_source=installer&utm_medium=cli&utm_campaign=prompt",
156
+ 제품꼬리: "一覧と実際にインストールするコマンドはそのページにそのまま載せています。購入は必須ではありません。",
157
+ },
111
158
  };
112
159
 
113
160
  /** 이번 실행이 쓰는 말. */
@@ -169,22 +216,27 @@ if (확인만) {
169
216
  }
170
217
 
171
218
  /* ── 설치 ───────────────────────────────────────────────────────────── */
172
- /* ★영문이면 skill/SKILL.en.md 를 SKILL.md 자리에 심는다(2026-09-23 · 영어권 2차 ①).
173
- 고객 쪽 파일명은 늘 SKILL.md 여야 클로드가 읽는다. SKILL.en.md 자체는 따로 심지 않는다. */
219
+ /* ★영문이면 skill/SKILL.en.md, 일본어면 skill/SKILL.ja.md 를 SKILL.md 자리에 심는다
220
+ (2026-09-23 영어권 2차 ① · 2026-09-28 국가런칭 검수로 ja 분기 추가 — 여태 en 만
221
+ 있어서 --lang=ja 로 설치해도 SKILL.md 는 한국어 원본이 그대로 심겼다).
222
+ 고객 쪽 파일명은 늘 SKILL.md 여야 클로드가 읽는다. SKILL.en.md·SKILL.ja.md 자체는
223
+ 따로 심지 않는다. */
174
224
  const 영문본 = join(원본, "SKILL.en.md");
175
- const en적용 = 말 === "en" && existsSync(영문본);
225
+ const 일본어본 = join(원본, "SKILL.ja.md");
226
+ const 번역본 = 말 === "en" ? 영문본 : 말 === "ja" ? 일본어본 : null;
227
+ const 번역적용 = !!번역본 && existsSync(번역본);
176
228
  let 쓴수 = 0;
177
229
  for (const src of 넣을것) {
178
230
  const 상대 = relative(원본, src);
179
- if (상대 === "SKILL.en.md") continue;
180
- const 실제소스 = (상대 === "SKILL.md" && en적용) ? 영문본 : src;
231
+ if (상대 === "SKILL.en.md" || 상대 === "SKILL.ja.md") continue;
232
+ const 실제소스 = (상대 === "SKILL.md" && 번역적용) ? 번역본 : src;
181
233
  const dst = join(대상, 상대);
182
234
  mkdirSync(dirname(dst), { recursive: true });
183
235
  writeFileSync(dst, readFileSync(실제소스));
184
236
  쓴수++;
185
- /* ★영문 실행은 한글이 0자여야 한다. 참고 문서 파일명(낭비35.md)은 아직 한글이라
186
- en 화면에서는 줄 자체를 건너뛴다 — 개수·도착 경로는 아래 요약 줄로 이미 준다. */
187
- if (말 !== "en" || !/[가-힣]/.test(상대)) console.log(` ${c.d}·${c[0]} ${상대}`);
237
+ /* ★영문·일본어 실행은 한글이 0자여야 한다. 참고 문서 파일명(낭비35.md)은 아직 한글이라
238
+ en/ja 화면에서는 줄 자체를 건너뛴다 — 개수·도착 경로는 아래 요약 줄로 이미 준다. */
239
+ if (말 === "ko" || !/[가-힣]/.test(상대)) console.log(` ${c.d}·${c[0]} ${상대}`);
188
240
  }
189
241
  console.log(`\n${c.d}${G.설치요약(쓴수, 대상)}${c[0]}`);
190
242
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reborn-prompt",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "description": "한 문장을 그대로 쓸 수 있는 프롬프트로 정리합니다 — 할 일·산출물·손댈 범위·끝나는 조건 네 칸 + 크레딧을 낭비하는 35가지 체크 + 이미 내린 결정 기억. 클로드·챗GPT·커서 어디에나.",
5
5
  "keywords": [
6
6
  "claude",
@@ -0,0 +1,93 @@
1
+ ---
2
+ name: prompt-fix
3
+ description: 一言の雑な依頼を、そのまま貼って使えるプロンプトに整える——やること・成果物・触ってよい範囲・終了条件の4項目を埋め、クレジットを無駄にする35のパターンのうちどれが実際に当てはまるか洗い出し、すでに決まった判断を覚えていて新しい会話で蒸し返さない。Claude・ChatGPT・Cursorのどこにでも貼り付けられる。ユーザーが雑に投げてきたとき、「プロンプト作って」と言われたとき、同じことを何度も説明し直しているときに使う。
4
+ license: MIT
5
+ ---
6
+
7
+ # プロンプト整理ツール (prompt-fix)
8
+
9
+ ユーザーが投げた **一言** を受け取り、そのまま貼り付けて使えるプロンプトに変えます。
10
+
11
+ ## いつ発動するか
12
+
13
+ - ユーザーが雑に投げてきたとき——「とりあえず決済ちゃんと動くようにして」「これちょっと整理して」
14
+ - ユーザーが「プロンプト作って」「これプロンプトにして」と言ったとき
15
+ - **同じことを2回目に説明しているとき**——それ自体がプロンプトが空だったサインです
16
+
17
+ ## 何をするか
18
+
19
+ ### ステップ1 — 4項目を埋める
20
+
21
+ 抜けている項目は **聞き返さず、妥当なデフォルト値で埋めて、埋めたことを明示します。**
22
+ (聞き返し始めるとメッセージ数がまた増えます——このスキルが防ごうとしているのはまさにそれです)
23
+
24
+ ```
25
+ やること 何ができれば終わりか (動詞一行)
26
+ 成果物 どんな形で受け取るか (コードのみ / diffのみ / ファイル / 説明なし)
27
+ 触ってよい範囲 どこまで触っていいか (ファイル・フォルダを明示+触ってはいけないもの)
28
+ 終了条件 何が真になれば止まるか (テストが通る / 画面にXが表示される)
29
+ ```
30
+
31
+ ### ステップ2 — 35パターンを洗い出す
32
+
33
+ `references/낭비35.md` を読み、該当する項目を拾います。
34
+ **全部は列挙しません。** 実際に当てはまったものだけ、最大3つまで、一行ずつ直して入れます。
35
+
36
+ (このリスト自体は韓国語ですが問題ありません——読めます。ユーザーへの返答は日本語で書きます。)
37
+
38
+ ### ステップ3 — すでに決まった判断を読み込む
39
+
40
+ プロジェクトルートの `.claude/decisions.md` を読みます(なければ作らずに進みます)。
41
+ そこに書かれている判断(例:`Postgres, not Mongo` · `pnpm, not npm`)をプロンプトの **前提** 項目に読み込みます。
42
+
43
+ 新しい判断が会話中に確定したら **一行でそのファイルに追記します。**
44
+ それが次の会話で同じことを決め直さずに済む仕組みです。
45
+
46
+ ```markdown
47
+ <!-- .claude/decisions.md -->
48
+ - Postgres, not Mongo
49
+ - pnpm, not npm
50
+ - Tailwind, no CSS modules
51
+ ```
52
+
53
+ ### ステップ4 — どこにでも貼り付けられる形で出力する
54
+
55
+ 出力は **プレーンテキストのプロンプト1つ** です。Claude Code専用の構文は入れません。
56
+ ChatGPT・Cursor・Geminiのどこに貼り付けてもそのまま動く必要があります。
57
+
58
+ ## 出力形式
59
+
60
+ ````
61
+ ```
62
+ [前提]
63
+ - (decisions.mdから来た行——なければこの項目ごと外す)
64
+
65
+ [やること]
66
+ ...
67
+
68
+ [成果物]
69
+ ...
70
+
71
+ [触ってよい範囲]
72
+ ... / 触ってはいけないもの: ...
73
+
74
+ [終了条件]
75
+ ...
76
+ ```
77
+
78
+ 修正した箇所——35のうち当てはまったものだけ
79
+ · #12 ファイルに保存するか画面に出すか決まっていなかった → 「diffのみ、説明なし」に設定
80
+ · #15 終了条件がなかった → 「カード決済が実際に通れば終了」に設定
81
+ ````
82
+
83
+ ## やらないこと
84
+
85
+ - **聞き返しません。** デフォルト値で埋め、何を埋めたかだけ示します。
86
+ - **35個を全部並べません。** 当てはまったものだけ、最大3つ。
87
+ - **プロンプトを代わりに実行しません。** ユーザーが「このまま実行して」と言ったときだけ実行します。
88
+ - **存在しないファイルをでっち上げません。** 範囲項目に書くパスは実際に存在するものだけです。
89
+
90
+ ## 参考
91
+
92
+ - 35パターンのリスト: `references/낭비35.md`
93
+ - 制作: REBORN LABS · MIT · https://rebornlabs.kr/ja/prompt?utm_source=installer&utm_medium=cli&utm_campaign=prompt