addashboard-cli 0.15.0 → 0.17.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/README.md CHANGED
@@ -36,12 +36,17 @@ webgram freee <login|templates|issue> # freee
36
36
  webgram review --team <伊藤T|松井T> [--week <YYYY-MM-DD>] # チーム週次レビュー取得 (省略時は先週)
37
37
  webgram pl summary [--month YYYY-MM] # 予実サマリ(CV/コスト/売上/粗利/日次推移/案件別内訳/着地予測/目標、省略時は当月)
38
38
  webgram pl projects [--month YYYY-MM] [--status <s>] [--platform <p>] # 案件別の予実明細
39
+ webgram report yda --account-id <id> [--level <l>] [--from --to] [--format csv] # YDA の日別実績(DB の値)。列の意味・比率の出し方は --help
40
+ webgram report smartnews --account-id <id> [--level <l>] [--from --to] [--format csv] # SmartNews の日別実績(DB の値)。列の意味・数え方は --help
41
+ webgram report google --account-id <id> [--level <l>] [--from --to] [--format csv] # Google の日別実績(DB の値)。列の意味・制約は --help
39
42
  ```
40
43
 
41
44
  `<p>` = 対応媒体 (`yda` / `meta` / `google` / `smartnews` / `bytedance`)。`submit-plan` は **`yda` / `meta`** 対応(入稿計画JSON の `plan.platform` で自動判別、未記載は `yda` 扱い)。
42
45
  `--resource` の媒体制約: `resources` は smartnews 非対応 / `media` は yda のみ(登録画像 mediaId)/ `image-library`・`video-library` は meta のみ(imageHash / videoId。`--account-id` は `act_` 付き)。
43
46
  `pl summary` / `pl projects` は JSON をそのまま出力する(要約は呼び出し側の Claude Code が行う)。
44
47
 
48
+ `report` は DB に貯めた実績を日別の行で返す(期間の合計や比率は返さない)。列の意味・既定の期間・比率の出し方・行数の上限は `webgram report <媒体> --help`(`yda` / `smartnews` / `google`)に書いてあり、ここには書き写さない。
49
+
45
50
  `review` はチーム × 週で全案件の週次レビュー(課題・今週のアクションプラン)を 1 回で取得する (JSON 出力)。`--week` 省略時は先週の月曜 (JST) を自動採用。要約は Claude Code / Codex (LLM) 側で行う。
46
51
 
47
52
  入稿ボディ JSON の雛形と必須フィールドは [`fixtures/README.md`](./fixtures/README.md)。
@@ -56,6 +61,12 @@ webgram pl projects [--month YYYY-MM] [--status <s>] [--platform <p>] # 案件
56
61
 
57
62
  Claude Code / Codex CLI 用の `ad-ops` skill (広告運用スキル・入稿プランナー同梱 / YDA・Meta 対応) と `invoice-issue-freee` skill を同梱。配置手順は [`skills/ad-ops/README.md`](./skills/ad-ops/README.md)。
58
63
 
64
+ ```bash
65
+ webgram skills check [--json] # 手元の ad-ops の版を同梱と比べる(古ければ終了コード 1)
66
+ webgram skills update [--json] # 何を変えるかの一覧(書き換えない)
67
+ webgram skills update --apply [--keep <file>...] # 同梱の版にそろえる。--keep のファイルと作業ファイルは手元を残す
68
+ ```
69
+
59
70
  ## 開発
60
71
 
61
72
  ```bash
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REPORT_PLATFORMS = exports.REPORT_FORMATS = exports.REPORT_LEVELS = void 0;
4
+ exports.runReport = runReport;
5
+ exports.toCsv = toCsv;
6
+ exports.registerReportCommand = registerReportCommand;
7
+ const commander_1 = require("commander");
8
+ const apiClient_1 = require("../lib/apiClient");
9
+ const credentialStore_1 = require("../lib/credentialStore");
10
+ const apiError_1 = require("../lib/apiError");
11
+ /**
12
+ * webgram report <媒体> — DB に貯めた実績を日別の行で返す(#330)。
13
+ *
14
+ * エージェントは迷うと `--help` を読むので、列の意味・既定値・比率の出し方・上限は
15
+ * help に1か所だけ書く(スキルや README には書き写さない)。
16
+ */
17
+ exports.REPORT_LEVELS = ['account', 'campaign', 'adgroup', 'ad'];
18
+ exports.REPORT_FORMATS = ['json', 'csv'];
19
+ exports.REPORT_PLATFORMS = ['yda', 'smartnews', 'google'];
20
+ /** 長い期間はサーバーの集計に時間がかかるので、既定の 15 秒より長く待つ */
21
+ const REPORT_TIMEOUT_MS = 120000;
22
+ async function runReport(input) {
23
+ let client;
24
+ try {
25
+ client = (input.clientFactory ?? apiClient_1.buildAuthedApiClient)(input.store);
26
+ }
27
+ catch (e) {
28
+ return { ok: false, error: e.message };
29
+ }
30
+ const params = { accountId: input.accountId };
31
+ if (input.campaignId)
32
+ params.campaignId = input.campaignId;
33
+ if (input.from)
34
+ params.from = input.from;
35
+ if (input.to)
36
+ params.to = input.to;
37
+ if (input.level)
38
+ params.level = input.level;
39
+ try {
40
+ const res = await client.get(`/api/report/${input.platform}`, {
41
+ params,
42
+ timeout: REPORT_TIMEOUT_MS,
43
+ });
44
+ const data = res.data;
45
+ // imageUrl は画像の代理 URL(/api/yahoo-media/...)の相対パスで入っている。
46
+ // スプシの =IMAGE() やブラウザでそのまま開けるよう、ログイン先を前に付ける
47
+ const endpoint = input.store.load()?.endpoint.replace(/\/+$/, '') ?? '';
48
+ for (const row of data.rows) {
49
+ if (typeof row.imageUrl === 'string' && row.imageUrl.startsWith('/')) {
50
+ row.imageUrl = endpoint + row.imageUrl;
51
+ }
52
+ }
53
+ return { ok: true, data };
54
+ }
55
+ catch (err) {
56
+ return { ok: false, error: (0, apiError_1.describeApiError)(err) };
57
+ }
58
+ }
59
+ /** 行を CSV にする。null・undefined は空欄。ヘッダーは最初の行のキーの順 */
60
+ function toCsv(rows) {
61
+ if (rows.length === 0)
62
+ return '';
63
+ const header = Object.keys(rows[0]);
64
+ const cell = (v) => {
65
+ if (v === null || v === undefined)
66
+ return '';
67
+ // 配列(Google 広告の見出し・説明文など)は改行区切りで1セルにする(カンマだと文言の中のカンマと区別できない)
68
+ const s = Array.isArray(v) ? v.join('\n') : String(v);
69
+ return /[",\r\n]/.test(s) ? `"${s.replace(/"/g, '""')}"` : s;
70
+ };
71
+ return [header.join(','), ...rows.map((r) => header.map((k) => cell(r[k])).join(','))].join('\n') + '\n';
72
+ }
73
+ const YDA_HELP = `
74
+ 行の単位:
75
+ 1行=1日×--level の単位。実績のない日・単位の行は出ない(0 の行で埋めない)
76
+ 名前の列は、その日の行に入っている値。途中で名前を変えると日によって違うので、期間でまとめるときは
77
+ ID(campaignId・adGroupId・adId)で束ね、名前は最後の日のものを使う
78
+
79
+ 出力の列:
80
+ date 日付(JST)
81
+ platform yda
82
+ accountId〜adName account・campaign・adGroup・ad の ID と名前。--level の階層とその上の列を出す
83
+ (例:--level ad は campaign・adGroup の列も出す。--level campaign は adGroup・ad の列を出さない)
84
+ impressions / clicks IMP / クリック
85
+ cost 媒体の費用(消化金額、円)。手数料(マージン)は含まない
86
+ conversions CV(媒体)。MCV は含まない
87
+ mcv MCV(記事 LP から商品 LP への遷移)。null はその日の MCV を取得していない
88
+ (そのアカウントの取得を始めた日より前・最後に取得した日より後。同じ日の行はすべて null)。
89
+ 取得期間の中で行のない単位は 0
90
+ imageUrl / linkUrl --level ad のときだけ。広告の画像(1枚目)とリンク先URL。日別の値ではなく、今わかっている
91
+ 直近の値(途中でリンク先を変えた広告は、過去の期間も今のリンク先になる)
92
+ CV(全体)・SB遷移数は媒体の外のデータなので返さない
93
+
94
+ 値の鮮度:
95
+ 直近8日分は同期のたびに取り直すので、CV などが後から増えることがある。MCV は前日分を翌朝に取り直したあとは更新しない
96
+
97
+ 比率の出し方:
98
+ 期間の比率は合計どうしで割る(日ごとの比率を平均しない)。分母が 0 のときは計算しない
99
+ CTR=clicks/impressions CPC=cost/clicks CPA=cost/conversions CPO=CPA×1.25
100
+ 遷移単価=cost/mcv 遷移率=mcv/clicks 記事CVR=conversions/mcv
101
+ MCV を使う比率は、mcv が null の日の行を分子・分母とも除いて計算する(null を 0 として足さない)
102
+ 記事URLグループは linkUrl の ?ad= より前でまとめる
103
+
104
+ 上限と長い期間:
105
+ 10万行を超えるとエラー(途中までの行は返さない)。期間を短くするか、--campaign-id か上の --level で絞る
106
+ 行が多いときは --format csv でファイルに保存し、スクリプトで集計する(行を文脈に読み込まない)
107
+
108
+ 出力の形:
109
+ JSON:{ platform, level, from, to, rowCount, rows: [...] }。from / to は既定値を使ったときも実際の期間が入る
110
+ CSV:rows だけ。UTF-8、1行目がヘッダー、null は空欄
111
+ Windows PowerShell 5.1 の > は UTF-16 で書くので、| Out-File -Encoding utf8 ads.csv で保存する
112
+ エラーは stderr に「✗ 理由」を出して終了コード 1
113
+
114
+ 例:
115
+ # 直近7日の広告別(判定表の元データ)
116
+ webgram report yda --account-id 1002570552 --format csv > ads.csv
117
+ # 半年分のキャンペーン別
118
+ webgram report yda --level campaign --account-id 1002570552 --from 2026-04-13 --to 2026-10-12 --format csv > cp.csv
119
+ `;
120
+ const SMARTNEWS_HELP = `
121
+ 行の単位:
122
+ 1行=1日×--level の単位。実績のない日・単位の行は出ない(0 の行で埋めない)。
123
+ 行が無いことだけでは、実績ゼロと同期の取りこぼしを区別できない
124
+ 広告(--level ad)より上の行は、広告の行の合計
125
+ 費用が ¥0 の広告の行(四捨五入で0円)は出さず、上の行の合計にも入れない。配信していない日に
126
+ 後から付いた CV・遷移は数えない(管理画面の広告一覧から判定ボードを作るのと同じ数え方)
127
+ 名前の列は、その日の行に入っている値。期間でまとめるときは ID(campaignId・adGroupId・adId)で束ねる
128
+
129
+ 出力の列:
130
+ date 日付(JST)
131
+ platform smartnews
132
+ accountId〜adName account・campaign・adGroup・ad の ID と名前。--level の階層とその上の列を出す。
133
+ accountName は SmartNews ではアカウント ID と同じ値
134
+ impressions インプレッション(Viewable)。管理画面の表示回数と同じ(通常の imp ではない)
135
+ clicks クリック
136
+ cost ご利用金額(管理画面の値、円)。代理店の手数料(マージン)は含まない
137
+ conversions 商品購入数(管理画面の「商品購入数」)
138
+ mcv 詳細ページ数(管理画面の「詳細ページ数」。記事 LP から商品 LP への遷移)
139
+ headline / description / imageUrl / linkUrl
140
+ --level ad のときだけ。広告の見出し・説明文・サムネイル・リンク先。日別の値ではなく、
141
+ 今わかっている直近の値(途中で変えた広告は、過去の期間も今の値になる)
142
+ CV(全体)・ad-bridge の獲得件数は媒体の外のデータなので返さない
143
+
144
+ 数え方(アトリビューション):
145
+ CV・遷移は「クリック後30日以内+広告を見てから1日以内(ビュースルー)」で数えた値。
146
+ クリックの日数は API の既定を使っている。管理画面ではアカウントごとに 30/14/7/1日 を選べ
147
+ (キャンペーン一覧 → 表示項目 → アトリビューションモデル)、設定が違うアカウントとは一致しない
148
+
149
+ 値の鮮度:
150
+ 直近7日分は30分ごとに取り直すので、CV などが後から増えることがある。それより前の日は更新しない
151
+ (クリックから時間がたって付いた CV が、管理画面より少なく出ることがある)
152
+
153
+ 比率の出し方:
154
+ 期間の比率は合計どうしで割る(日ごとの比率を平均しない)。分母が 0 のときは計算しない
155
+ CTR=clicks/impressions CPC=cost/clicks CPA=cost/conversions
156
+ 遷移単価=cost/mcv 遷移率=mcv/clicks 記事CVR=conversions/mcv
157
+
158
+ 上限と長い期間:
159
+ 10万行を超えるとエラー(途中までの行は返さない)。期間を短くするか、--campaign-id か上の --level で絞る
160
+ 行が多いときは --format csv でファイルに保存し、スクリプトで集計する(行を文脈に読み込まない)
161
+
162
+ 出力の形:
163
+ JSON:{ platform, level, from, to, rowCount, rows: [...] }。from / to は既定値を使ったときも実際の期間が入る
164
+ CSV:rows だけ。UTF-8、1行目がヘッダー、null は空欄
165
+ Windows PowerShell 5.1 の > は UTF-16 で書くので、| Out-File -Encoding utf8 ads.csv で保存する
166
+ エラーは stderr に「✗ 理由」を出して終了コード 1
167
+
168
+ 例:
169
+ # 直近7日の広告別(判定の元データ)
170
+ webgram report smartnews --account-id 1234567890 --format csv > ads.csv
171
+ # 今月のアカウント合計(日別)
172
+ webgram report smartnews --level account --account-id 1234567890 --from 2026-10-01 --to 2026-10-16
173
+ `;
174
+ const GOOGLE_HELP = `
175
+ 行の単位:
176
+ 1行=1日×--level の単位。実績のない日・単位の行は出ない(0 の行で埋めない)
177
+ account・campaign・adgroup Campaign テーブルの行(広告グループ×日)を合計した値
178
+ ad Creative テーブルの行(広告×日)
179
+ 名前の列は、その日の行に入っている値。期間でまとめるときは ID(campaignId・adGroupId・adId)で束ねる
180
+
181
+ 出力の列:
182
+ date 日付。広告アカウントのタイムゾーンでの日付(日本のアカウントは JST)。
183
+ --from / --to も同じタイムゾーンの日付として扱う
184
+ platform google
185
+ accountId〜adName account・campaign・adGroup・ad の ID と名前。--level の階層とその上の列を出す
186
+ impressions / clicks IMP / クリック
187
+ cost 媒体の費用(円)
188
+ conversions CV(媒体)
189
+ mcv 常に null。MCV はアドエビスで計測する値で、Google 広告のデータにはない
190
+ --level ad のときだけ:
191
+ headline / description 1つ目の見出し・説明文。画像広告では、headline に広告文ではなく広告名が入る
192
+ headlines / descriptions すべての見出し・説明文(CSV では改行でつないで1セルに入れる)
193
+ imageUrl / videoUrl / linkUrl
194
+ 画像・動画・リンク先。日別の値ではなく、広告ごとに今わかっている直近の値
195
+
196
+ 既知の制約:
197
+ Google の CV は小数になることがあるが、DB には整数に丸めて保存している。そのため管理画面の値とずれることがある
198
+ P-MAX キャンペーンは入らない
199
+ --level ad の合計は、上の階層の合計と少しずれることがある。Creative は1日1回の更新で、削除した広告の分も含まない
200
+ 配信ステータスは返さない。webgram list --platform google --resource campaigns で確認する
201
+ 管理画面の値と明らかに違うときや、値に違和感があるときは、ユーザーに開発者への報告を勧める
202
+
203
+ 値の鮮度:
204
+ 同期のたびに直近8日分を取り直すので、直近8日の値は後から変わることがある
205
+ 更新の頻度:account〜adgroup(Campaign テーブル)は30分ごと、ad(Creative テーブル)は1日1回
206
+
207
+ 比率の出し方:
208
+ 期間の比率は合計どうしで割る(日ごとの比率を平均しない)。分母が 0 のときは計算しない
209
+ CTR=clicks/impressions CPC=cost/clicks CPA=cost/conversions
210
+
211
+ 上限と長い期間:
212
+ 10万行を超えるとエラー(途中までの行は返さない)。期間を短くするか、--campaign-id か上の --level で絞る
213
+ 行が多いときは --format csv でファイルに保存し、スクリプトで集計する(行を文脈に読み込まない)
214
+
215
+ 出力の形:
216
+ JSON:{ platform, level, from, to, rowCount, rows: [...] }。from / to は既定値を使ったときも実際の期間が入る
217
+ CSV:rows だけ。UTF-8、1行目がヘッダー、null は空欄
218
+ --level ad の headlines / descriptions のセルには改行が入る。ファイルの1行が1件とは限らないので、
219
+ 行数で数えず CSV パーサーで読む
220
+ Windows PowerShell 5.1 の > は UTF-16 で書くので、| Out-File -Encoding utf8 ads.csv で保存する
221
+ エラーは stderr に「✗ 理由」を出して終了コード 1
222
+
223
+ 例:
224
+ # 直近7日の広告別
225
+ webgram report google --account-id 8265446505 --format csv > ads.csv
226
+ # 今月のキャンペーン別(日別)
227
+ webgram report google --level campaign --account-id 8265446505 --from 2026-10-01 --to 2026-10-16
228
+ `;
229
+ const parseYmd = (v) => {
230
+ // 2026-02-30 のような実在しない日付もここで止める(サーバーまで送らない)
231
+ const d = new Date(v + 'T00:00:00Z');
232
+ if (!/^\d{4}-\d{2}-\d{2}$/.test(v) || Number.isNaN(d.getTime()) || d.toISOString().slice(0, 10) !== v) {
233
+ throw new commander_1.InvalidArgumentError('実在する日付を YYYY-MM-DD 形式で指定してください');
234
+ }
235
+ return v;
236
+ };
237
+ /** 媒体ごとの違い(表示名・help)。オプションと実行は共通 */
238
+ const PLATFORM_COMMANDS = {
239
+ yda: { label: 'YDA', help: YDA_HELP },
240
+ smartnews: { label: 'SmartNews', help: SMARTNEWS_HELP },
241
+ google: { label: 'Google', help: GOOGLE_HELP, accountIdHint: '(ハイフンなし。例 8265446505)' },
242
+ };
243
+ /** report コマンドを program に登録する。help の文面をテストで確かめられるよう index.ts から分けている */
244
+ function registerReportCommand(program) {
245
+ const report = program
246
+ .command('report')
247
+ .description('媒体の日別実績を返す(DB に貯めた値。使う前に webgram report <媒体> --help を読む)');
248
+ for (const platform of exports.REPORT_PLATFORMS) {
249
+ addPlatformCommand(report, platform, PLATFORM_COMMANDS[platform]);
250
+ }
251
+ return report;
252
+ }
253
+ function addPlatformCommand(report, platform, { label, help, accountIdHint = '' }) {
254
+ report
255
+ .command(platform)
256
+ .description(`${label} の日別実績を DB から返す(1行=1日×--level の単位。期間の合計や比率は返さない)`)
257
+ .requiredOption('--account-id <id>', `広告アカウント ID${accountIdHint}(一覧は webgram list --platform ${platform} --resource accounts)`)
258
+ .option('--campaign-id <id>', 'キャンペーン ID で絞る')
259
+ .option('--from <YYYY-MM-DD>', '開始日(JST、この日を含む。既定:--to の6日前。--to も省くと昨日までの7日間)', parseYmd)
260
+ .option('--to <YYYY-MM-DD>', '終了日(JST、この日を含む。既定:昨日)', parseYmd)
261
+ .addOption(new commander_1.Option('--level <level>', '行の単位').choices(exports.REPORT_LEVELS).default('ad'))
262
+ .addOption(new commander_1.Option('--format <format>', '出力形式').choices(exports.REPORT_FORMATS).default('json'))
263
+ .addHelpText('after', help)
264
+ .showHelpAfterError(`(webgram report ${platform} --help で使い方を表示)`)
265
+ .action(async (opts) => {
266
+ const store = new credentialStore_1.CredentialStore((0, credentialStore_1.defaultConfigDir)());
267
+ const result = await runReport({
268
+ store,
269
+ platform,
270
+ accountId: opts.accountId,
271
+ campaignId: opts.campaignId,
272
+ from: opts.from,
273
+ to: opts.to,
274
+ level: opts.level,
275
+ });
276
+ if (!result.ok || !result.data) {
277
+ console.error(`✗ ${result.error}`);
278
+ process.exit(1);
279
+ }
280
+ if (opts.format === 'csv') {
281
+ process.stdout.write(toCsv(result.data.rows));
282
+ }
283
+ else {
284
+ console.log(JSON.stringify(result.data, null, 2));
285
+ }
286
+ });
287
+ }
288
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,484 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.MANIFEST_FILE = exports.SKILL_NAME = void 0;
7
+ exports.defaultTargetDir = defaultTargetDir;
8
+ exports.defaultSourceDir = defaultSourceDir;
9
+ exports.defaultBackupRoot = defaultBackupRoot;
10
+ exports.readSkillVersion = readSkillVersion;
11
+ exports.compareVersions = compareVersions;
12
+ exports.assertDirs = assertDirs;
13
+ exports.checkSkill = checkSkill;
14
+ exports.planSkillUpdate = planSkillUpdate;
15
+ exports.normalizeKeepPath = normalizeKeepPath;
16
+ exports.applySkillUpdate = applySkillUpdate;
17
+ exports.formatPlan = formatPlan;
18
+ exports.formatCheck = formatCheck;
19
+ exports.registerSkillsCommand = registerSkillsCommand;
20
+ const commander_1 = require("commander");
21
+ const crypto_1 = __importDefault(require("crypto"));
22
+ const fs_1 = __importDefault(require("fs"));
23
+ const os_1 = __importDefault(require("os"));
24
+ const path_1 = __importDefault(require("path"));
25
+ /**
26
+ * webgram skills check / update — 手元の ad-ops スキルを npm 同梱の版にそろえる。
27
+ *
28
+ * 配り元は npm に同梱しているサニタイズ済みの skills/ad-ops(実アカウントJSONは入っていない)。
29
+ * 利用者はアカウントJSON・作業プラン・SKILL.md の追記を手元に持っているので、上書きだけはしない:
30
+ * - 作業ファイル(アカウント/・入稿計画/・サンプルプラン*.json 等)は比べもせず手元を残す
31
+ * - SKILL.md など利用者が書き換えうるファイルは「確認が必要」として一覧に出し、
32
+ * どれを残すかは Claude Code が利用者に確認してから `--apply --keep <file>` で渡す
33
+ * - 「手元で書き換えたか」は前回 apply 時に書いた .skill-manifest.json の
34
+ * **同梱側の**ハッシュと比べて決める(手元のハッシュを書くと、--keep したファイルが
35
+ * 次の版で「未変更」に見えて黙って上書きされる)
36
+ */
37
+ exports.SKILL_NAME = 'ad-ops';
38
+ exports.MANIFEST_FILE = '.skill-manifest.json';
39
+ // cli/scripts/sync-version.js の RE と同じ目印(scripts/ は npm に同梱されないので写している)
40
+ const APP_VERSION_RE = /const APP_VERSION\s*=\s*'([^']*)'\s*;\s*\/\* version:sync \*\//;
41
+ /** 比べずに手元を残すファイル(同梱にあって手元に無いときだけ足す) */
42
+ function isProtected(rel) {
43
+ const parts = rel.split('/');
44
+ if (parts[0] === 'アカウント' || parts[0] === '入稿計画')
45
+ return true;
46
+ if (parts.length !== 1)
47
+ return false;
48
+ return (/^サンプルプラン.*\.json$/.test(rel) || rel === 'アクティブプラン.json' || rel === '.planner-env.json');
49
+ }
50
+ /** 手元で書き換えていたら利用者に確認するファイル */
51
+ function isReviewable(rel) {
52
+ return ['SKILL.md', 'README.md', 'config.json', 'ad-planner.html'].includes(rel) || rel.startsWith('scripts/');
53
+ }
54
+ /** アカウント/<媒体>/index.json(手元と同梱の名前を合わせる) */
55
+ function isAccountIndex(rel) {
56
+ const parts = rel.split('/');
57
+ return parts.length === 3 && parts[0] === 'アカウント' && parts[2] === 'index.json';
58
+ }
59
+ const IGNORED = new Set(['.DS_Store', exports.MANIFEST_FILE]);
60
+ function defaultTargetDir() {
61
+ // Windows も os.homedir() が %USERPROFILE% を返す
62
+ return path_1.default.join(os_1.default.homedir(), '.claude', 'skills', exports.SKILL_NAME);
63
+ }
64
+ /** dist/commands/skills.js(tsx 実行時は src/commands/skills.ts)から見たパッケージ同梱のスキル */
65
+ function defaultSourceDir() {
66
+ return path_1.default.resolve(__dirname, '..', '..', 'skills', exports.SKILL_NAME);
67
+ }
68
+ /** バックアップは skills/ の外に置く(skills 直下だと name: ad-ops の SKILL.md が2つになり、重複スキルとして読まれる) */
69
+ function defaultBackupRoot(targetDir) {
70
+ return path_1.default.join(path_1.default.dirname(path_1.default.dirname(targetDir)), 'skill-backups');
71
+ }
72
+ const toKey = (rel) => rel.split(path_1.default.sep).join('/').normalize('NFC');
73
+ /**
74
+ * ディレクトリ配下のファイルを「NFC の相対パス → 実パス」で返す(macOS のファイル名は NFD のことがある)。
75
+ * リンク(symlink)は辿らず、リンクそのものを1件として返す(切れたリンク・ループで止まらないように)
76
+ */
77
+ function walk(dir) {
78
+ const out = new Map();
79
+ const rec = (abs) => {
80
+ for (const entry of fs_1.default.readdirSync(abs, { withFileTypes: true })) {
81
+ if (IGNORED.has(entry.name))
82
+ continue;
83
+ const p = path_1.default.join(abs, entry.name);
84
+ if (entry.isDirectory())
85
+ rec(p);
86
+ else
87
+ out.set(toKey(path_1.default.relative(dir, p)), p);
88
+ }
89
+ };
90
+ if (fs_1.default.existsSync(dir))
91
+ rec(dir);
92
+ return out;
93
+ }
94
+ /** targetDir から p までのどこかが symlink か(書くとリンク先を書き換える) */
95
+ function linksOutside(targetDir, p) {
96
+ const rel = path_1.default.relative(targetDir, p);
97
+ let cur = targetDir;
98
+ for (const part of rel.split(path_1.default.sep)) {
99
+ cur = path_1.default.join(cur, part);
100
+ try {
101
+ if (fs_1.default.lstatSync(cur).isSymbolicLink())
102
+ return true;
103
+ }
104
+ catch {
105
+ return false; // まだ無い(これから作る)
106
+ }
107
+ }
108
+ return false;
109
+ }
110
+ const hashFile = (p) => crypto_1.default.createHash('sha256').update(fs_1.default.readFileSync(p)).digest('hex');
111
+ function readManifest(dir) {
112
+ try {
113
+ return JSON.parse(fs_1.default.readFileSync(path_1.default.join(dir, exports.MANIFEST_FILE), 'utf8'));
114
+ }
115
+ catch {
116
+ return null;
117
+ }
118
+ }
119
+ /**
120
+ * 版は ad-planner.html の APP_VERSION を正にし、読めないときだけ .skill-manifest.json を使う
121
+ * (記録を先に読むと、zip を上から展開したときや ad-planner.html を --keep したときに実物とずれる)
122
+ */
123
+ function readSkillVersion(dir) {
124
+ try {
125
+ const m = fs_1.default.readFileSync(path_1.default.join(dir, 'ad-planner.html'), 'utf8').match(APP_VERSION_RE);
126
+ if (m)
127
+ return m[1];
128
+ }
129
+ catch {
130
+ // 下の記録へ
131
+ }
132
+ return readManifest(dir)?.version || null;
133
+ }
134
+ /** 3桁の版数を数値で比べる(a < b なら負) */
135
+ function compareVersions(a, b) {
136
+ const pa = a.split('.').map((n) => parseInt(n, 10) || 0);
137
+ const pb = b.split('.').map((n) => parseInt(n, 10) || 0);
138
+ for (let i = 0; i < Math.max(pa.length, pb.length); i++) {
139
+ const d = (pa[i] ?? 0) - (pb[i] ?? 0);
140
+ if (d !== 0)
141
+ return d;
142
+ }
143
+ return 0;
144
+ }
145
+ function readAccounts(p) {
146
+ try {
147
+ const raw = JSON.parse(fs_1.default.readFileSync(p, 'utf8'));
148
+ return { raw, accounts: Array.isArray(raw.accounts) ? raw.accounts : [] };
149
+ }
150
+ catch {
151
+ return null;
152
+ }
153
+ }
154
+ /** 手元の名前の並びを保ったまま、同梱にだけある名前を後ろに足す */
155
+ function mergedAccounts(localPath, bundledPath) {
156
+ const local = readAccounts(localPath);
157
+ const bundled = readAccounts(bundledPath);
158
+ if (!local || !bundled)
159
+ return null;
160
+ const missing = bundled.accounts.filter((n) => !local.accounts.includes(n));
161
+ return missing.length ? [...local.accounts, ...missing] : null;
162
+ }
163
+ /** 同梱元の検証。開発ツリーの skills/ad-ops は実データ入りの .claude/skills/ad-ops への symlink なので配らない */
164
+ function assertDirs(dirs) {
165
+ const { sourceDir, targetDir } = dirs;
166
+ if (fs_1.default.existsSync(sourceDir) && fs_1.default.lstatSync(sourceDir).isSymbolicLink()) {
167
+ throw new Error(`同梱のスキルが symlink です(開発ツリー): ${sourceDir}\n` +
168
+ ' 実アカウントJSON入りの作業ディレクトリを配らないよう止めました。npx -y addashboard-cli@latest で実行してください');
169
+ }
170
+ if (!fs_1.default.existsSync(path_1.default.join(sourceDir, 'SKILL.md'))) {
171
+ throw new Error(`同梱のスキルが見つかりません: ${sourceDir}`);
172
+ }
173
+ if (fs_1.default.existsSync(targetDir) && fs_1.default.lstatSync(targetDir).isSymbolicLink()) {
174
+ throw new Error(`手元のスキルが symlink です: ${targetDir} → ${fs_1.default.realpathSync(targetDir)}\n` +
175
+ ' リンク先(リポジトリ等)を書き換えないよう止めました');
176
+ }
177
+ }
178
+ function checkSkill(dirs) {
179
+ assertDirs(dirs);
180
+ const installed = fs_1.default.existsSync(path_1.default.join(dirs.targetDir, 'SKILL.md'));
181
+ const localVersion = installed ? readSkillVersion(dirs.targetDir) : null;
182
+ const bundledVersion = readSkillVersion(dirs.sourceDir);
183
+ let status;
184
+ if (!installed)
185
+ status = 'not-installed';
186
+ else if (!localVersion || !bundledVersion)
187
+ status = 'unknown';
188
+ else {
189
+ const d = compareVersions(localVersion, bundledVersion);
190
+ // 手元が新しいのは npx のキャッシュが古いとき。古い扱いにはしない
191
+ status = d < 0 ? 'outdated' : d > 0 ? 'newer' : 'up-to-date';
192
+ }
193
+ const manifest = installed ? readManifest(dirs.targetDir) : null;
194
+ const keptLocal = [];
195
+ if (manifest) {
196
+ for (const [rel, p] of walk(dirs.targetDir)) {
197
+ const base = manifest.files?.[rel];
198
+ if (base && isReviewable(rel) && !linksOutside(dirs.targetDir, p) && hashFile(p) !== base)
199
+ keptLocal.push(rel);
200
+ }
201
+ }
202
+ return { targetDir: dirs.targetDir, installed, localVersion, bundledVersion, status, keptLocal: keptLocal.sort() };
203
+ }
204
+ function planSkillUpdate(dirs) {
205
+ assertDirs(dirs);
206
+ const { sourceDir, targetDir } = dirs;
207
+ const source = walk(sourceDir);
208
+ const local = walk(targetDir);
209
+ const manifest = readManifest(targetDir);
210
+ const installed = fs_1.default.existsSync(path_1.default.join(targetDir, 'SKILL.md'));
211
+ const items = [];
212
+ const localPathOf = (rel) => local.get(rel) ?? path_1.default.join(targetDir, ...rel.split('/'));
213
+ for (const [rel, bundledPath] of source) {
214
+ const localPath = localPathOf(rel);
215
+ const item = (action, reason) => items.push({ path: rel, action, reason, localPath, bundledPath });
216
+ if (linksOutside(targetDir, localPath)) {
217
+ item('symlink', '手元が別の場所へのリンクなので、リンク先を書き換えないよう飛ばす');
218
+ continue;
219
+ }
220
+ if (!local.has(rel)) {
221
+ item('add', '手元に無い');
222
+ continue;
223
+ }
224
+ if (isProtected(rel)) {
225
+ if (isAccountIndex(rel) && mergedAccounts(localPath, bundledPath)) {
226
+ item('merge', '同梱のアカウント名を名簿に足す');
227
+ }
228
+ continue; // それ以外は比べずに手元を残す
229
+ }
230
+ const localHash = hashFile(localPath);
231
+ if (localHash === hashFile(bundledPath)) {
232
+ item('unchanged', '同梱と同じ');
233
+ }
234
+ else if (!isReviewable(rel)) {
235
+ item('update', '同梱の版で置き換える');
236
+ }
237
+ else if (manifest && manifest.files?.[rel] === localHash) {
238
+ item('update', '手元は前回の更新から書き換えていない');
239
+ }
240
+ else {
241
+ item('conflict', manifest ? '前回の更新のあと手元で書き換えている' : '更新の記録が無く、同梱と違う');
242
+ }
243
+ }
244
+ // 新しい版で消えた・名前が変わったファイル。前回の更新から手元で触っていなければ消す(バックアップには残る)
245
+ for (const [rel, localPath] of local) {
246
+ if (source.has(rel) || isProtected(rel))
247
+ continue;
248
+ const base = manifest?.files?.[rel];
249
+ if (!base || linksOutside(targetDir, localPath) || hashFile(localPath) !== base)
250
+ continue;
251
+ items.push({ path: rel, action: 'remove', reason: '新しい版に無く、手元でも書き換えていない', localPath, bundledPath: '' });
252
+ }
253
+ const touched = new Set(items.map((i) => i.path));
254
+ const keptLocalCount = [...local.keys()].filter((rel) => !touched.has(rel)).length;
255
+ return {
256
+ sourceDir,
257
+ targetDir,
258
+ installed,
259
+ hasManifest: !!manifest,
260
+ localVersion: installed ? readSkillVersion(targetDir) : null,
261
+ bundledVersion: readSkillVersion(sourceDir),
262
+ items,
263
+ keptLocalCount,
264
+ counts: Object.fromEntries(['add', 'update', 'conflict', 'merge', 'unchanged', 'symlink', 'remove'].map((a) => [
265
+ a,
266
+ items.filter((i) => i.action === a).length,
267
+ ])),
268
+ };
269
+ }
270
+ /** --keep の指定をプランのパスに合わせる(Windows の \ ・先頭の ./・手元の絶対パスを許す) */
271
+ function normalizeKeepPath(input, targetDir) {
272
+ let p = input;
273
+ if (path_1.default.isAbsolute(p)) {
274
+ // /var と /private/var のように、リンク経由で同じ場所を指す書き方の違いを吸収する
275
+ const real = (x) => {
276
+ try {
277
+ return fs_1.default.realpathSync(x);
278
+ }
279
+ catch {
280
+ return x;
281
+ }
282
+ };
283
+ p = path_1.default.relative(real(targetDir), real(p));
284
+ }
285
+ return p.replace(/\\/g, '/').replace(/^\.\//, '').normalize('NFC');
286
+ }
287
+ function timestamp(d) {
288
+ const p = (n) => String(n).padStart(2, '0');
289
+ return `${d.getFullYear()}${p(d.getMonth() + 1)}${p(d.getDate())}-${p(d.getHours())}${p(d.getMinutes())}${p(d.getSeconds())}`;
290
+ }
291
+ function applySkillUpdate(dirs) {
292
+ const plan = planSkillUpdate(dirs);
293
+ const { targetDir } = dirs;
294
+ const known = new Set(plan.items.map((i) => i.path));
295
+ const keep = new Set((dirs.keep ?? []).map((k) => normalizeKeepPath(k, targetDir)));
296
+ const unknownKeep = [...keep].filter((k) => !known.has(k));
297
+ if (unknownKeep.length) {
298
+ throw new Error(`--keep のファイルが更新の対象にありません: ${unknownKeep.join(', ')}`);
299
+ }
300
+ const todo = plan.items.filter((i) => i.action !== 'unchanged' && i.action !== 'symlink' && !keep.has(i.path));
301
+ const now = dirs.now ?? new Date();
302
+ // 書き換える前に丸ごと退避する(新規導入で手元が空なら不要)
303
+ let backupDir = null;
304
+ if (todo.length && fs_1.default.existsSync(targetDir) && fs_1.default.readdirSync(targetDir).length) {
305
+ backupDir = path_1.default.join(dirs.backupRoot ?? defaultBackupRoot(targetDir), `${exports.SKILL_NAME}.bak-${timestamp(now)}`);
306
+ fs_1.default.mkdirSync(path_1.default.dirname(backupDir), { recursive: true });
307
+ fs_1.default.cpSync(targetDir, backupDir, { recursive: true });
308
+ }
309
+ const written = [];
310
+ for (const item of todo) {
311
+ fs_1.default.mkdirSync(path_1.default.dirname(item.localPath), { recursive: true });
312
+ if (item.action === 'remove') {
313
+ fs_1.default.rmSync(item.localPath);
314
+ written.push(item.path);
315
+ continue;
316
+ }
317
+ if (item.action === 'merge') {
318
+ const raw = readAccounts(item.localPath).raw;
319
+ const accounts = mergedAccounts(item.localPath, item.bundledPath);
320
+ fs_1.default.writeFileSync(item.localPath, JSON.stringify({ ...raw, accounts }, null, 1) + '\n');
321
+ }
322
+ else {
323
+ fs_1.default.copyFileSync(item.bundledPath, item.localPath);
324
+ }
325
+ written.push(item.path);
326
+ }
327
+ // 記録は最後に書く(途中で落ちたら次回は「記録なし」として全部を確認に出す)
328
+ const files = {};
329
+ for (const [rel, p] of walk(plan.sourceDir)) {
330
+ if (!isProtected(rel))
331
+ files[rel] = hashFile(p);
332
+ }
333
+ const manifest = {
334
+ name: exports.SKILL_NAME,
335
+ version: plan.bundledVersion ?? '',
336
+ updatedAt: now.toISOString(),
337
+ files,
338
+ };
339
+ const manifestPath = path_1.default.join(targetDir, exports.MANIFEST_FILE);
340
+ fs_1.default.mkdirSync(targetDir, { recursive: true });
341
+ fs_1.default.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + '\n');
342
+ return { plan, written, kept: [...keep], backupDir, manifestPath };
343
+ }
344
+ // ──────────────────────────── 表示 ────────────────────────────
345
+ const ACTION_LABEL = {
346
+ add: '追加',
347
+ update: '更新',
348
+ conflict: '確認が必要',
349
+ merge: '名簿の統合',
350
+ unchanged: 'そのまま',
351
+ symlink: 'リンクなので飛ばす',
352
+ remove: '削除',
353
+ };
354
+ function versionLine(plan) {
355
+ const local = plan.installed ? `v${plan.localVersion ?? '不明'}` : '未導入';
356
+ return `ad-ops スキル: 手元 ${local} → 同梱 v${plan.bundledVersion ?? '不明'}`;
357
+ }
358
+ function formatPlan(plan) {
359
+ const lines = [versionLine(plan), ` 手元: ${plan.targetDir}`];
360
+ const count = (a) => plan.items.filter((i) => i.action === a).length;
361
+ lines.push(' ' +
362
+ ['add', 'update', 'conflict', 'merge', 'remove', 'unchanged', 'symlink']
363
+ .filter((a) => (a !== 'symlink' && a !== 'remove') || count(a))
364
+ .map((a) => `${ACTION_LABEL[a]} ${count(a)}`)
365
+ .join(' / ') +
366
+ ` / 手元を残す ${plan.keptLocalCount}`);
367
+ for (const a of ['conflict', 'add', 'update', 'merge', 'remove', 'symlink']) {
368
+ const list = plan.items.filter((i) => i.action === a);
369
+ if (!list.length)
370
+ continue;
371
+ lines.push('', `${ACTION_LABEL[a]}:`);
372
+ for (const i of list)
373
+ lines.push(` - ${i.path}(${i.reason})`);
374
+ }
375
+ const conflicts = count('conflict');
376
+ lines.push('');
377
+ if (!plan.items.some((i) => i.action !== 'unchanged' && i.action !== 'symlink') && plan.hasManifest) {
378
+ lines.push('変更はありません。');
379
+ }
380
+ else {
381
+ lines.push('まだ書き換えていません。--apply で書き換えます。');
382
+ if (conflicts) {
383
+ lines.push(`確認が必要な ${conflicts} 件は、--keep <ファイル> で指定しない限り同梱の内容で上書きします(複数は --keep A B。書き換える前に丸ごとバックアップします)。`);
384
+ }
385
+ }
386
+ return lines.join('\n');
387
+ }
388
+ function formatCheck(r) {
389
+ const head = versionLine(r);
390
+ const tail = {
391
+ 'not-installed': '未導入です。npx -y addashboard-cli@latest skills update で入れられます',
392
+ outdated: '古い版です。npx -y addashboard-cli@latest skills update で更新できます',
393
+ 'up-to-date': '最新です',
394
+ newer: '手元の方が新しい版です(npx のキャッシュが古い可能性があります)',
395
+ unknown: '手元の版が読み取れません。skills update で記録を作り直してください',
396
+ };
397
+ const lines = [head, ` ${tail[r.status]}`];
398
+ if (r.keptLocal.length) {
399
+ lines.push(` 同梱の版と中身が違うファイルが ${r.keptLocal.length} 件あります(--keep で残した・追記を移した・あとで書き換えた): ${r.keptLocal.join(', ')}`);
400
+ }
401
+ return lines.join('\n');
402
+ }
403
+ const resolveDirs = (opts) => ({
404
+ sourceDir: path_1.default.resolve(opts.source ?? defaultSourceDir()),
405
+ targetDir: path_1.default.resolve(opts.target ?? defaultTargetDir()),
406
+ });
407
+ const addDirOptions = (cmd) => cmd
408
+ .addOption(new commander_1.Option('--source <dir>', '同梱元のスキル(テスト用)').hideHelp())
409
+ .addOption(new commander_1.Option('--target <dir>', '手元のスキル(既定: ~/.claude/skills/ad-ops)'));
410
+ const fail = (e) => {
411
+ // eslint-disable-next-line no-console
412
+ console.error(`✗ ${e.message}`);
413
+ process.exit(2);
414
+ };
415
+ function registerSkillsCommand(program) {
416
+ const skills = program
417
+ .command('skills')
418
+ .description('ad-ops スキル(~/.claude/skills/ad-ops)を npm 同梱の版にそろえる');
419
+ addDirOptions(skills
420
+ .command('check')
421
+ .description('手元のスキルの版を同梱の版と比べる。未導入・古いときは終了コード 1')
422
+ .option('--json', 'JSON で出力する', false)).action((opts) => {
423
+ let r;
424
+ try {
425
+ r = checkSkill(resolveDirs(opts));
426
+ }
427
+ catch (e) {
428
+ return fail(e);
429
+ }
430
+ // eslint-disable-next-line no-console
431
+ console.log(opts.json ? JSON.stringify(r, null, 2) : formatCheck(r));
432
+ if (r.status === 'not-installed' || r.status === 'outdated' || r.status === 'unknown')
433
+ process.exitCode = 1;
434
+ });
435
+ addDirOptions(skills
436
+ .command('update')
437
+ .description('手元のスキルを同梱の版にそろえる。--apply を付けない限り、何を変えるかの一覧を出すだけで書き換えない。\n' +
438
+ ' アカウント/・入稿計画/・サンプルプラン*.json・アクティブプラン.json・手元で足したファイルは比べずに残す。\n' +
439
+ ' SKILL.md・README.md・config.json・ad-planner.html・scripts/ を手元で書き換えていたら「確認が必要」に出す。\n' +
440
+ ' 残すものは --keep A B で指定する(指定しなければ同梱の内容で上書き)。\n' +
441
+ ' 書き換える前に、スキルの2つ上のフォルダの skill-backups/(既定は ~/.claude/skill-backups/)へ丸ごと退避する。\n' +
442
+ ' 手元が別の場所へのリンク(symlink)になっているファイルは書き換えない')
443
+ .option('--apply', '一覧のとおりに書き換える', false)
444
+ .option('--keep <file...>', '手元のまま残すファイル(スキルディレクトリからの相対パス)')
445
+ .option('--backup-dir <dir>', 'バックアップの置き場所(既定: スキルの2つ上のフォルダの skill-backups/)')
446
+ .option('--json', 'JSON で出力する', false)).action((opts) => {
447
+ const dirs = resolveDirs(opts);
448
+ try {
449
+ if (!opts.apply) {
450
+ const plan = planSkillUpdate(dirs);
451
+ // eslint-disable-next-line no-console
452
+ console.log(opts.json ? JSON.stringify(plan, null, 2) : formatPlan(plan));
453
+ return;
454
+ }
455
+ const r = applySkillUpdate({
456
+ ...dirs,
457
+ keep: opts.keep,
458
+ backupRoot: opts.backupDir ? path_1.default.resolve(opts.backupDir) : undefined,
459
+ });
460
+ if (opts.json) {
461
+ // eslint-disable-next-line no-console
462
+ console.log(JSON.stringify(r, null, 2));
463
+ return;
464
+ }
465
+ const lines = [
466
+ `✓ ad-ops スキルを v${r.plan.bundledVersion} にそろえました(${r.written.length} 件を書き換え)`,
467
+ ` 手元: ${r.plan.targetDir}`,
468
+ ];
469
+ if (r.written.length)
470
+ lines.push(` 書き換えたファイル: ${r.written.join(', ')}`);
471
+ if (r.kept.length)
472
+ lines.push(` 手元のまま残したファイル: ${r.kept.join(', ')}`);
473
+ if (r.backupDir)
474
+ lines.push(` バックアップ: ${r.backupDir}`);
475
+ lines.push(' Claude Code を開き直すと新しいスキルが読み込まれます');
476
+ // eslint-disable-next-line no-console
477
+ console.log(lines.join('\n'));
478
+ }
479
+ catch (e) {
480
+ fail(e);
481
+ }
482
+ });
483
+ }
484
+ //# sourceMappingURL=skills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/commands/skills.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -15,6 +15,8 @@ const ads_1 = require("./commands/ads");
15
15
  const submission_1 = require("./commands/submission");
16
16
  const status_1 = require("./commands/status");
17
17
  const pl_1 = require("./commands/pl");
18
+ const report_1 = require("./commands/report");
19
+ const skills_1 = require("./commands/skills");
18
20
  const freee_1 = require("./commands/freee");
19
21
  const review_1 = require("./commands/review");
20
22
  const placements_1 = require("./commands/placements");
@@ -445,6 +447,10 @@ pl.command('projects')
445
447
  process.exit(1);
446
448
  }
447
449
  });
450
+ // ──────────────────────────── 実績レポート ────────────────────────────
451
+ (0, report_1.registerReportCommand)(program);
452
+ // ──────────────────────────── スキルの更新 ────────────────────────────
453
+ (0, skills_1.registerSkillsCommand)(program);
448
454
  // ──────────────────────────── freee 請求書 ────────────────────────────
449
455
  const freee = program.command('freee').description('freee 請求書発行コマンド(allowlist 制限あり)');
450
456
  freee
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "addashboard-cli",
3
- "version": "0.15.0",
3
+ "version": "0.17.0",
4
4
  "description": "webgram CLI — ad-dashboard (https://macchiato.site) を Claude Code / Codex CLI から操作するための CLI",
5
5
  "bin": {
6
6
  "webgram": "./dist/index.js"
@@ -43,25 +43,39 @@ Skill 本体 (`SKILL.md` / `config.json` / `README.md`) は npm パッケージ
43
43
 
44
44
  #### Claude Code の場合
45
45
 
46
- Claude Code のチャットに以下を貼り付けて実行を依頼:
46
+ **まだ入っていない人は**、ターミナルで1行実行する(Windows も同じ。入れる先は `%USERPROFILE%\.claude\skills\ad-ops`)。すでに入っている人は下の「新しい版への更新」の手順にする(この1行は手元で書き換えたファイルを確認なしで上書きする):
47
47
 
48
+ ```bash
49
+ npx -y addashboard-cli@latest skills update --apply
48
50
  ```
49
- addashboard-cli の ad-ops skill を ~/.claude/skills/ に配置して
50
- ```
51
51
 
52
- Claude が裏で `npm pack addashboard-cli` → 展開 → `cp` を実行する。手動で入れる場合:
52
+ 完了すると `~/.claude/skills/ad-ops/` に `SKILL.md` / `config.json` / `README.md` / `ad-planner.html` / `アカウント/<platform>/` が配置される。Claude Code を一度終了して開き直す (通常は不要だが認識しない時は再起動)。
53
+
54
+ #### 新しい版への更新
55
+
56
+ Claude Code のチャットで「ad-ops スキルを更新して」と頼む。SKILL.md の「スキルの更新」の手順で、手元で書き換えたファイルを1件ずつ確認してから更新する。自分で打つ場合:
53
57
 
54
58
  ```bash
55
- mkdir -p ~/.claude/skills/ad-ops /tmp/ad-ops-extract
56
- cd /tmp/ad-ops-extract && npm pack addashboard-cli@latest
57
- tar xzf addashboard-cli-*.tgz --strip-components=1
58
- cp -r skills/ad-ops/. ~/.claude/skills/ad-ops/
59
+ npx -y addashboard-cli@latest skills check # 古ければ終了コード 1
60
+ npx -y addashboard-cli@latest skills update # 何を変えるかの一覧(まだ書き換えない)
61
+ npx -y addashboard-cli@latest skills update --apply --keep SKILL.md config.json # 残すファイルを --keep で指定(複数は空白区切り)
59
62
  ```
60
63
 
61
- 完了すると `~/.claude/skills/ad-ops/` に `SKILL.md` / `config.json` / `README.md` / `ad-planner.html` / `アカウント/<platform>/` が配置される。Claude Code を一度終了して開き直す (通常は不要だが認識しない時は再起動)。
64
+ - `アカウント/`・`入稿計画/`・`サンプルプラン*.json`・`アクティブプラン.json`・手元で足したファイルは比べずに残す
65
+ - 書き換える前に `~/.claude/skill-backups/ad-ops.bak-<日時>/` へ丸ごとバックアップする(`--target` を変えたときはスキルの2つ上のフォルダの `skill-backups/`。場所は出力に出る)
66
+ - 新しい版で消えたファイルは、手元で書き換えていなければ消す(バックアップには残る)
67
+ - バックアップの置き場所は `--backup-dir <フォルダ>` で変えられる
68
+ - `--keep` で残したファイル・追記を足したファイルは、`skills check` が「同梱の版と中身が違うファイル」として知らせる(次の更新でも確認に出る)
62
69
 
63
70
  #### Codex CLI の場合
64
71
 
72
+ スキルの置き場所は `--target` で変えられる(更新も同じ):
73
+
74
+ ```bash
75
+ npx -y addashboard-cli@latest skills update --target ~/.codex/skills/ad-ops # 一覧を見てから
76
+ npx -y addashboard-cli@latest skills update --apply --keep <残すファイル> --target ~/.codex/skills/ad-ops
77
+ ```
78
+
65
79
  Codex CLI には Claude Code 相当の skills 自動発火機能は無いので、以下いずれかで SKILL.md を context に読み込ませる。
66
80
 
67
81
  **方式 A: プロジェクトルートの `AGENTS.md` に参照を書く (推奨)**
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ad-ops
3
- description: ad-dashboard (https://macchiato.site) の webgram CLI 経由で広告を YDA / Meta / Google (Demand Gen) / TikTok (ByteDance) に半自動入稿する。発火したら「入稿先アカウント&媒体」→「今回の方式 (HTMLプランナーで手動指定=既定 / 前回の入稿計画を参考にする / チャットで1つずつ聞く)」の順に確定させる。入稿の実体は 2 系統 — 動画・ローカル画像の API 入稿フロー (固定デフォルト + URL 空き番号自動割当 + 一覧 OK 確認、現状 YDA) と、入稿プランナー `ad-planner.html` (YDA / Meta / Google / TikTok を案件×媒体の統合プルダウンで切替する GUI → 入稿計画JSON → `submit-plan` で dry-run → 本実行)。「広告運用」「広告入稿」「動画入稿」「まとめ入稿」「ASC 入稿」「YDA 入稿」「Meta 入稿」「Google 入稿」「YouTube 入稿」「Demand Gen 入稿」「入稿プランナー」「YDA入稿プランナー」「Meta入稿プランナー」「Google入稿プランナー」「TikTok入稿プランナー」「入稿シート」「TikTok 入稿」「webgram」「ad-dashboard」と言われたら使用。Node.js が入っていれば追加インストール不要 (`npx` 経由)。
3
+ description: ad-dashboard (https://macchiato.site) の webgram CLI 経由で広告を YDA / Meta / Google (Demand Gen) / TikTok (ByteDance) に半自動入稿する。発火したら「入稿先アカウント&媒体」→「今回の方式 (HTMLプランナーで手動指定=既定 / 前回の入稿計画を参考にする / チャットで1つずつ聞く)」の順に確定させる。入稿の実体は 2 系統 — 動画・ローカル画像の API 入稿フロー (固定デフォルト + URL 空き番号自動割当 + 一覧 OK 確認、現状 YDA) と、入稿プランナー `ad-planner.html` (YDA / Meta / Google / TikTok を案件×媒体の統合プルダウンで切替する GUI → 入稿計画JSON → `submit-plan` で dry-run → 本実行)。「広告運用」「広告入稿」「動画入稿」「まとめ入稿」「ASC 入稿」「YDA 入稿」「Meta 入稿」「Google 入稿」「YouTube 入稿」「Demand Gen 入稿」「入稿プランナー」「YDA入稿プランナー」「Meta入稿プランナー」「Google入稿プランナー」「TikTok入稿プランナー」「入稿シート」「TikTok 入稿」「webgram」「ad-dashboard」「ad-ops を更新」「ad-ops スキルを最新に」「入稿スキルを更新」と言われたら使用。Node.js が入っていれば追加インストール不要 (`npx` 経由)。
4
4
  ---
5
5
 
6
6
  # ad-ops skill (広告運用スキル)
@@ -42,6 +42,31 @@ skills/ad-ops/scripts/adops.sh thumbs <platform> <accountId>
42
42
 
43
43
  > **YDA はキャンペーン詳細への直リンクを表現できない**(管理画面は `#/{mccId}/{accountId}/list/{resource}` = 一覧ルートしか持たない)。**一覧を開いて CP 名で探す**方針で妥協する。
44
44
 
45
+ ## スキルの更新(「ad-ops を更新して」「ad-ops スキルを最新にして」「入稿スキルを更新して」と言われたら)
46
+
47
+ このスキル自体を新しい版にそろえるときは、ファイルを手でコピーしない。**`skills update` で一覧を出し、手元で書き換えたファイルを利用者に1件ずつ確認してから `--apply` する。**
48
+
49
+ 1. `npx -y addashboard-cli@latest skills update --json` を実行する(まだ書き換えない)
50
+ - `localVersion` → `bundledVersion` と `counts`(件数)をチャットで伝える
51
+ - `counts.conflict`(確認が必要)が 0 なら手順 3 へ
52
+ 2. `conflict` のファイルごとに `diff <localPath> <bundledPath>` を見て、**手元で足した内容があるか**を判定する
53
+ - 手元側にしか無い行が、新しい版で書き換わった前の文面だけ(=利用者は触っていない)なら確認を省き「新しい版にする」。省いたファイル名はチャットで伝える
54
+ - 利用者の変更か旧版の文面か diff から決められないとき(設定値の1文字の違いなど)は、省かずに確認へ回す
55
+ - `ad-planner.html` は手で書き換える想定が無い。記録が無い初回は差分を見ずに「新しい版にする」
56
+ - 手元で足した内容があるファイルだけ AskUserQuestion で確認する(1ファイル1問。1回の呼び出しに最大4問まとめてよい)。質問文には足した内容の要約と、新しい版で何が変わるかを入れる。選択肢:
57
+ - **新しい版にして、手元の追記・変更を移す(おすすめ)** — `--keep` に入れずに更新し、手順 3 のあとで利用者が足した節・書き換えた値だけを新しい版へ入れ直す
58
+ - 新しい版にする(手元の変更は捨てる)
59
+ - 手元のまま残す — 新しい版の内容(手順の追加・修正)は入らない。`check` は最新と出る(「同梱の版と中身が違うファイル」として名前が添えられる)、次の更新でもまた確認に出る、と伝える
60
+ 3. `npx -y addashboard-cli@latest skills update --apply --keep <残すファイル> <残すファイル>` を実行する(残すものが無ければ `--keep` を付けない。複数は空白区切りで並べる)
61
+ 4. 「追記・変更を移す」を選んだファイルは、出力の `バックアップ:` の行のフォルダ(スキルの2つ上の `skill-backups/` の下)にある同じファイルから利用者の追記・変更を取り出し、新しい版へ Edit で入れ直す。足した節はバックアップで直前にあった見出しの後ろ(見つからなければ末尾)、書き換えた値は同じキーに戻す。入れ直した内容をチャットで見せる
62
+ 5. `npx -y addashboard-cli@latest skills check` で最新になったことを確かめ、バックアップの場所を伝える。「同梱の版と中身が違うファイル」が出たら、残した/追記を移したファイルなので次の更新でも確認に出ると伝え、Claude Code を開き直すよう案内する
63
+
64
+ - `アカウント/`・`入稿計画/`・`サンプルプラン*.json`・`アクティブプラン.json`・利用者が足したファイルは**比べずに残る**。確認の対象にしない
65
+ - 手元が別の場所へのリンク(symlink)になっているファイルは書き換えずに飛ばす(`action: "symlink"`)。リンク先の更新は利用者に任せる
66
+ - 新しい版で消えたファイルは、前回の更新から手元で触っていなければ消える(`action: "remove"`・バックアップには残る)。消える一覧もチャットで伝える
67
+ - 「手元で書き換えたか」は前回の更新の記録(スキル直下の `.skill-manifest.json`)で判定する。記録の無い初回は、同梱と違うファイルが全部 `conflict` に出る
68
+ - 終了コード 2 で「同梱のスキルが symlink です」と出たら開発ツリーの CLI を使っている。`npx -y addashboard-cli@latest` で打ち直す
69
+
45
70
  ## 【最重要】フェーズ0: 疎通確認(戦略壁打ちより前)
46
71
 
47
72
  **入稿系の依頼を受けたら、戦略を練り始める前に必ずこれを通す。**
@@ -333,8 +358,8 @@ skills/ad-ops/scripts/adops.sh open meta <accountId> campaigns
333
358
 
334
359
  | # | 画像ファイル | **解決後の絶対パス** | **実在** | 見出し | 説明文 | 広告名 | 最終リンク先URL |
335
360
  | - | ------- | ------------ | ---- | --- | --- | --- | --------- |
336
- | 1 | a.jpg | /Users/…/a.jpg | ✅ | … | … | 01c-… | https://… |
337
- | 2 | b.png | /Users/…/b.png | ❌ | … | … | 02c-… | https://… |
361
+ | 1 | a.jpg | ~/Downloads/a.jpg | ✅ | … | … | 01c-… | https://… |
362
+ | 2 | b.png | ~/Downloads/b.png | ❌ | … | … | 02c-… | https://… |
338
363
 
339
364
  **解決後の絶対パスと実在チェックを必ず表に入れる**(誤パスはここで殺す。`~` の展開結果もここで見える)。
340
365
 
@@ -918,7 +918,7 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
918
918
  (cli/test/unit/plannerVersion.test.ts が package.json との一致を検証するので、
919
919
  手で書き換えて放置するとテストが落ちる)。
920
920
  利用者が「どの版のプランナーを開いているか」を言えないと、不具合報告が噛み合わない。 */
921
- const APP_VERSION = '0.15.0'; /* version:sync */
921
+ const APP_VERSION = '0.17.0'; /* version:sync */
922
922
  /* 案A: embed廃止。参照データ(refs)・初期プラン・共通設定は外部JSONから起動時に読み込む。
923
923
  同梱デフォルト: アカウント/<媒体>/index.json の先頭アカウント (refs+principal+projectName+baseArticleUrl) と サンプルプラン.json (project+campaigns)。
924
924
  固有名詞はハードコードせず、すべて外部JSON由来にする。 */
@@ -1053,7 +1053,7 @@ function maskSensitive(text){
1053
1053
  ].filter(([v])=>String(v||'').trim().length>=3)
1054
1054
  .sort((a,b)=>String(b[0]).length-String(a[0]).length);
1055
1055
  secrets.forEach(([v,label])=>{ out=out.split(String(v)).join(label); });
1056
- /* ローカルパスにはユーザー名が入る(/Users/<氏名>/... , C:\Users\<氏名>\...) */
1056
+ /* ローカルパスにはユーザー名が入る(macOS は /Users 配下, Windows は C:\Users 配下) */
1057
1057
  out=out.replace(/\/(Users|home)\/[^\/\s"')]+/g, '/$1/<user>')
1058
1058
  .replace(/[A-Za-z]:\\Users\\[^\\\s"')]+/g, 'C:\\Users\\<user>');
1059
1059
  return out;