addashboard-cli 0.16.0 → 0.17.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 +6 -0
- package/dist/commands/skills.js +484 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/apiError.js +25 -1
- package/dist/lib/apiError.js.map +1 -1
- package/package.json +1 -1
- package/skills/ad-ops/README.md +23 -9
- package/skills/ad-ops/SKILL.md +28 -3
- package/skills/ad-ops/ad-planner.html +16 -7
- package/skills/ad-ops/scripts/plan_lint.py +12 -0
- package/skills/ad-ops/scripts/test_plan_lint.sh +37 -0
package/README.md
CHANGED
|
@@ -61,6 +61,12 @@ webgram report google --account-id <id> [--level <l>] [--from --to] [--format cs
|
|
|
61
61
|
|
|
62
62
|
Claude Code / Codex CLI 用の `ad-ops` skill (広告運用スキル・入稿プランナー同梱 / YDA・Meta 対応) と `invoice-issue-freee` skill を同梱。配置手順は [`skills/ad-ops/README.md`](./skills/ad-ops/README.md)。
|
|
63
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
|
+
|
|
64
70
|
## 開発
|
|
65
71
|
|
|
66
72
|
```bash
|
|
@@ -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
|
@@ -16,6 +16,7 @@ const submission_1 = require("./commands/submission");
|
|
|
16
16
|
const status_1 = require("./commands/status");
|
|
17
17
|
const pl_1 = require("./commands/pl");
|
|
18
18
|
const report_1 = require("./commands/report");
|
|
19
|
+
const skills_1 = require("./commands/skills");
|
|
19
20
|
const freee_1 = require("./commands/freee");
|
|
20
21
|
const review_1 = require("./commands/review");
|
|
21
22
|
const placements_1 = require("./commands/placements");
|
|
@@ -448,6 +449,8 @@ pl.command('projects')
|
|
|
448
449
|
});
|
|
449
450
|
// ──────────────────────────── 実績レポート ────────────────────────────
|
|
450
451
|
(0, report_1.registerReportCommand)(program);
|
|
452
|
+
// ──────────────────────────── スキルの更新 ────────────────────────────
|
|
453
|
+
(0, skills_1.registerSkillsCommand)(program);
|
|
451
454
|
// ──────────────────────────── freee 請求書 ────────────────────────────
|
|
452
455
|
const freee = program.command('freee').description('freee 請求書発行コマンド(allowlist 制限あり)');
|
|
453
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/dist/lib/apiError.js
CHANGED
|
@@ -43,7 +43,11 @@ function describeErrorBody(data) {
|
|
|
43
43
|
`formatGoogleAdsError()` が組み立てた本文が CLI に届かず、
|
|
44
44
|
運用者は `✗ google_ads_error` しか見られない。両方あるなら両方出す。 */
|
|
45
45
|
if (typeof e === 'string' && e) {
|
|
46
|
-
|
|
46
|
+
const reasons = [
|
|
47
|
+
...(typeof d.message === 'string' && d.message ? [d.message] : []),
|
|
48
|
+
...describeIssues(d.issues),
|
|
49
|
+
];
|
|
50
|
+
return reasons.length > 0 ? `${e}: ${reasons.join(' / ')}` : e;
|
|
47
51
|
}
|
|
48
52
|
if (e && typeof e === 'object') {
|
|
49
53
|
const m = e.message;
|
|
@@ -56,6 +60,26 @@ function describeErrorBody(data) {
|
|
|
56
60
|
// error / message どちらも無い形(想定外)は握り潰さず中身を見せる
|
|
57
61
|
return safeJson(d);
|
|
58
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* zod の検証エラー (`zodErrorBody()` の `issues: [{ path, message }]`) を
|
|
65
|
+
* `campaigns.0.status: 理由` の形に並べる。読まないと CLI には `validation_error` しか出ず、
|
|
66
|
+
* どのフィールドが何の理由で弾かれたか分からない (#396)。
|
|
67
|
+
*/
|
|
68
|
+
function describeIssues(issues) {
|
|
69
|
+
if (!Array.isArray(issues))
|
|
70
|
+
return [];
|
|
71
|
+
const lines = issues.flatMap((i) => {
|
|
72
|
+
const { path, message } = (i ?? {});
|
|
73
|
+
if (typeof message !== 'string' || !message)
|
|
74
|
+
return [];
|
|
75
|
+
return [typeof path === 'string' && path ? `${path}: ${message}` : message];
|
|
76
|
+
});
|
|
77
|
+
// 大きな計画で全件並べると1行が数KBになり読めない。先頭だけ出して残りは件数で示す
|
|
78
|
+
return lines.length > MAX_ISSUES
|
|
79
|
+
? [...lines.slice(0, MAX_ISSUES), `ほか ${lines.length - MAX_ISSUES} 件`]
|
|
80
|
+
: lines;
|
|
81
|
+
}
|
|
82
|
+
const MAX_ISSUES = 10;
|
|
59
83
|
function safeJson(v) {
|
|
60
84
|
try {
|
|
61
85
|
const s = JSON.stringify(v);
|
package/dist/lib/apiError.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiError.js","sourceRoot":"","sources":["../../src/lib/apiError.ts"],"names":[],"mappings":";;AAaA,4CASC;AAGD,
|
|
1
|
+
{"version":3,"file":"apiError.js","sourceRoot":"","sources":["../../src/lib/apiError.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/skills/ad-ops/README.md
CHANGED
|
@@ -43,25 +43,39 @@ Skill 本体 (`SKILL.md` / `config.json` / `README.md`) は npm パッケージ
|
|
|
43
43
|
|
|
44
44
|
#### Claude Code の場合
|
|
45
45
|
|
|
46
|
-
|
|
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
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
|
|
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` に参照を書く (推奨)**
|
package/skills/ad-ops/SKILL.md
CHANGED
|
@@ -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
|
|
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 (広告運用スキル)
|
|
@@ -9,7 +9,7 @@ Google Drive から手動 DL 済みの素材を各媒体に半自動入稿する
|
|
|
9
9
|
|
|
10
10
|
- **動画の API 入稿フロー(`submit`)**: 現状 **YDA のみ**。
|
|
11
11
|
- **入稿プランナー(`ad-planner.html` → 入稿計画JSON → `submit-plan`)**: **YDA / Meta / Google / TikTok 対応**(ヘッダーの「案件 × 媒体」統合プルダウンで切替)。
|
|
12
|
-
- **Google (Demand Gen)**: プランナー・dry-run・本実行に対応。**2026-08-23 に実 API での入稿を確認済み**(PAUSED・1
|
|
12
|
+
- **Google (Demand Gen)**: プランナー・dry-run・本実行に対応。**2026-08-23 に実 API での入稿を確認済み**(PAUSED・1キャンペーン)。ただし配信実績はまだ無いので、初回は最小予算から始めて管理画面で目視確認する。**キャンペーンは常に PAUSED で入り、広告グループ・広告は既定で ENABLED**(#396)。キャンペーンをオンにした時点で配信が始まるので、オンにする前に検品を済ませる。詳細は下の「Google (Demand Gen) の対応範囲」を参照。
|
|
13
13
|
- **TikTok / ByteDance**: プランナー・dry-run・本実行に対応(**単一動画のみ**)。**2026-08-23 に実 API を初めて叩き、キャンペーン作成と自動ロールバックまで確認**。広告グループ以降は地域IDの取得手段が無くて未達だったため `regions` を追加した。**配信オン (ENABLE) は backend が拒否する**。詳細は下の「TikTok (単一動画) の対応範囲」を参照。
|
|
14
14
|
|
|
15
15
|
配置・発火方法・ログイン手順は [cli/README.md](../../README.md) の「初期設定: 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
|
**入稿系の依頼を受けたら、戦略を練り始める前に必ずこれを通す。**
|
|
@@ -380,7 +405,7 @@ skills/ad-ops/scripts/adops.sh open yda <accountId> campaigns
|
|
|
380
405
|
|---|---|
|
|
381
406
|
| プランナーで計画を組む | ✅ できる(統合プルダウンで「Google」を選ぶ) |
|
|
382
407
|
| dry-run で不備を潰す | ✅ できる |
|
|
383
|
-
| **本実行(実際の入稿)** | ✅ **できる**(2026-08-23 に実 API
|
|
408
|
+
| **本実行(実際の入稿)** | ✅ **できる**(2026-08-23 に実 API で確認済み)。ただし**キャンペーンは配信オン (ENABLED) では入稿できない** — backend が 400 で拒否し、lint も ERROR で止める。**広告グループ・広告は ENABLED で入稿できる**(プランナーの既定。キャンペーンは常に PAUSED で書き出す)。**入稿 → 管理画面で検品 → キャンペーンをオンにするだけで配信が始まる**運用(#396)。配下が PAUSED だと lint が WARN を出す(キャンペーンをオンにしても配信されない)。広告が1件も作れなかった CP は自動削除される |
|
|
384
409
|
| 既存キャンペーン・広告グループへの広告追加 | ❌ 未対応。毎回あたらしいキャンペーンを作る形になる |
|
|
385
410
|
| 動画ファイルのアップロード | ✅ **対応**(#246)。プランナーの広告行「動画パス」にローカル動画を指定すると、本実行の直前に CLI がアップロードして YouTube 動画IDに解決する(dry-run では上げない)。動画IDとパスを同時に載せない。⚠ **上がり先は Google 管理チャンネルの限定公開で、広告主のチャンネルには置けない**(手上げ運用とは置き場所が変わる)。⚠ **実 API での検証は未了** |
|
|
386
411
|
| 1 広告に動画を複数本(縦・横など) | ✅ **対応**(#347)。動画広告の「クリエイティブ番号」セル → 右サイドバーで**押すたびに追加/解除**(最大 5 本・選んだ順。セルに `542, 543` と打っても同じ)。**先頭が代表**で、広告名はその番号から付く。縦横の区別は不要(Google が配信面ごとに選ぶ)。2本目以降は登録済みの番号に限る。入稿計画は 2 本以上のときだけ `videos: [{youtubeVideoId}\|{videoPath}]`、1 本なら旧形式。backend / CLI は 5 本まで受ける(公式ヘルプ「Upload 1-5 videos per ad」。API リファレンスには本数の記載が無い)。⚠ **実 API での検証は未了** |
|
|
@@ -748,7 +748,7 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
|
|
|
748
748
|
<div id="mt-google" style="display:none">
|
|
749
749
|
<div class="eyebrow">Google Ads (Demand Gen) — 対応範囲・要件一覧</div>
|
|
750
750
|
<h1 class="title">Google 広告入稿 <span class="pill green" style="vertical-align:middle">実 API 確認済み</span></h1>
|
|
751
|
-
<p class="sub">2026-08-23 更新。<b>実 API での入稿を確認済み</b>(PAUSED で 1 キャンペーン)。<b
|
|
751
|
+
<p class="sub">2026-08-23 更新。<b>実 API での入稿を確認済み</b>(PAUSED で 1 キャンペーン)。<b>キャンペーンは配信オフ(PAUSED)でしか入稿できない</b> — 意図しない配信・課金を防ぐため backend が 400 で拒否する。<b>広告グループ・広告は配信オン(ENABLED)で入稿でき、プランナーの既定もオン</b>。入稿 → 管理画面で検品 → <b>キャンペーンをオンにするだけで配信が始まる</b>運用(2026-10-29・#396)。Google Ads API v23 の proto 定義に照合して実装。</p>
|
|
752
752
|
|
|
753
753
|
<details class="sec" open><summary><span class="num">1</span><span class="stitle">概要 — なぜ Demand Gen なのか</span><span class="chev"></span></summary>
|
|
754
754
|
<div class="body">
|
|
@@ -756,7 +756,7 @@ finalUrl = baseURL + paramCode + "?ad=" + paramCode + "&creative=" + …
|
|
|
756
756
|
<p>Demand Gen は YouTube(インストリーム / インフィード / ショート)・Discover・Gmail・ディスプレイに配信できる。画像広告と動画広告を同じキャンペーンで扱えるため、広告行の「形式」列で切り替える(Meta と同じ作り)。</p>
|
|
757
757
|
<table class="g"><thead><tr><th>レイヤ</th><th>状態</th><th>内容</th></tr></thead><tbody>
|
|
758
758
|
<tr><td>backend</td><td><span class="pill green">実装済み</span></td><td><code>/api/submission/google</code> + <code>GoogleSubmissionConnector</code>。Demand Gen キャンペーン / 広告グループ / 動画・画像広告 / 目標CPA入札 / 地域・言語ターゲティング / 配信面の制御</td></tr>
|
|
759
|
-
<tr><td>CLI</td><td><span class="pill green">実 API 確認済み</span></td><td><code>webgram submit-plan</code> が Google に対応(dry-run / 本実行とも)。2026-08-23 に PAUSED で入稿を確認した。初回は <b>
|
|
759
|
+
<tr><td>CLI</td><td><span class="pill green">実 API 確認済み</span></td><td><code>webgram submit-plan</code> が Google に対応(dry-run / 本実行とも)。2026-08-23 に PAUSED で入稿を確認した。初回は <b>1キャンペーン・最小予算</b>で流し、管理画面で目視確認する。<b>キャンペーンは常に PAUSED で入り、広告グループ・広告は既定で ENABLED</b>(#396)。キャンペーンをオンにした時点で配信が始まるので、オンにする前に検品を済ませる。広告が1件も作れなかったキャンペーンは自動で削除される</td></tr>
|
|
760
760
|
<tr><td>プランナーGUI</td><td><span class="pill green">実装済み</span></td><td>ヘッダーの統合プルダウンで Google に切替。シート(広告 / 広告グループ / キャンペーン)・ツリー・参照データ・入稿JSON書き出しに対応</td></tr>
|
|
761
761
|
<tr><td>実 API 検証</td><td><span class="pill green">実施済み</span></td><td>2026-08-23 に本番アカウントで Demand Gen 画像広告を PAUSED 入稿し、作成を確認した。developer token のアクセスレベルは Basic 以上(読み取りが通っているため)。<b>ただし配信オン(ENABLED)での実配信は未検証</b>。また<b>アカウントによって書き込み可否が違う</b>(停止・未有効化のものがある)</td></tr>
|
|
762
762
|
</tbody></table>
|
|
@@ -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.
|
|
921
|
+
const APP_VERSION = '0.17.1'; /* version:sync */
|
|
922
922
|
/* 案A: embed廃止。参照データ(refs)・初期プラン・共通設定は外部JSONから起動時に読み込む。
|
|
923
923
|
同梱デフォルト: アカウント/<媒体>/index.json の先頭アカウント (refs+principal+projectName+baseArticleUrl) と サンプルプラン.json (project+campaigns)。
|
|
924
924
|
固有名詞はハードコードせず、すべて外部JSON由来にする。 */
|
|
@@ -3938,7 +3938,8 @@ const GOOGLE_COLS = {
|
|
|
3938
3938
|
{field:'tg_channel', label:'配信面', kind:'tgpick', tgKey:'tg_channel', readonlyOnExisting:true, roEmptyDash:true,
|
|
3939
3939
|
title:'YouTube だけに出したい場合はここで絞る。「すべて」なら Google の既定に任せる'},
|
|
3940
3940
|
{field:'deliveryStatus', label:'配信', kind:'select', options:['','オフ','オン'], minWidth:'66px',
|
|
3941
|
-
readonlyOnExisting:true, roEmptyDash:true, coerce:v=>{const s=String(v).trim(); return (s==='オフ'||s==='オン')?s:'';}
|
|
3941
|
+
readonlyOnExisting:true, roEmptyDash:true, coerce:v=>{const s=String(v).trim(); return (s==='オフ'||s==='オン')?s:'';},
|
|
3942
|
+
title:'この広告グループと配下の広告の配信。空欄なら案件設定の「配信」に従う。キャンペーンは常にオフで入稿します'}
|
|
3942
3943
|
],
|
|
3943
3944
|
campaigns:[
|
|
3944
3945
|
{field:'campaignId', label:'キャンペーンID', kind:'badge', alwaysReadonly:true},
|
|
@@ -4053,7 +4054,10 @@ PLATFORMS.google = {
|
|
|
4053
4054
|
options:['詳しくはこちら','購入する','登録する','ダウンロード','お問い合わせ','今すぐ申し込む',
|
|
4054
4055
|
'予約する','見積もりを取得','購読する','インストール','サイトへアクセス','もっと見る','ボタンなし'],
|
|
4055
4056
|
title:'画像広告のボタン文言。使える値はアカウントによって違い、弾かれると入稿時にエラーが出ます。動画広告ではアセット登録が要るため今は送りません'},
|
|
4056
|
-
|
|
4057
|
+
/* キャンペーンは常に PAUSED で書き出す(backend が CP の ENABLED を拒否する)。
|
|
4058
|
+
この「配信」は広告グループ・広告にだけ効く (#396)。 */
|
|
4059
|
+
{key:'deliveryStatus', label:'配信(広告グループ・広告)', kind:'select', options:['オフ','オン'],
|
|
4060
|
+
title:'キャンペーンは常にオフ(PAUSED)で入稿します。ここは広告グループ・広告の配信です。オンにしておくと、検品後にキャンペーンをオンにするだけで配信が始まります'},
|
|
4057
4061
|
{key:'baseArticleUrl', label:'記事URL', kind:'text', width:'16ch', fallback:''},
|
|
4058
4062
|
{key:'urlParams', label:'URLパラメータ', kind:'toggle', fallback:true,
|
|
4059
4063
|
title:'OFF にすると最終リンク先URLに ?ad= を付けません(案件単位)'}
|
|
@@ -4121,7 +4125,10 @@ PLATFORMS.google = {
|
|
|
4121
4125
|
targetCpa:8500,
|
|
4122
4126
|
project:{
|
|
4123
4127
|
businessName:'', logoAsset:'', logoImagePath:'', cta:'詳しくはこちら', startDate:'',
|
|
4124
|
-
|
|
4128
|
+
/* 広告グループ・広告の配信。キャンペーンは常に PAUSED なので、既定をオンにして
|
|
4129
|
+
「検品後にキャンペーンをオンにするだけで配信」にする (#396)。
|
|
4130
|
+
保存済みのプランに入っている値(オフ)はそのまま使う。 */
|
|
4131
|
+
deliveryStatus:'オン'
|
|
4125
4132
|
},
|
|
4126
4133
|
ad:{format:'VIDEO', imageNo:'', moreVideoNos:'', titleNo:'', longNo:'', descNo:'', videoPath:'', adName:''},
|
|
4127
4134
|
adGroup:{name:'', paramCode:'', isExisting:false,
|
|
@@ -4428,7 +4435,9 @@ PLATFORMS.google = {
|
|
|
4428
4435
|
const P=PLATFORMS.google, p=ctx.project;
|
|
4429
4436
|
const cp={
|
|
4430
4437
|
name:c.name,
|
|
4431
|
-
|
|
4438
|
+
/* キャンペーンは常に PAUSED。backend が CP の ENABLED を 400 で拒否する(実配信が未検証)。
|
|
4439
|
+
案件設定の「配信」は広告グループ・広告にだけ効く (#396)。 */
|
|
4440
|
+
status:P.enums.statusOff,
|
|
4432
4441
|
budgetAmountYen:Number(c.dailyBudget)||0,
|
|
4433
4442
|
advertisingChannelType:P.enums.advertisingChannelType
|
|
4434
4443
|
};
|
|
@@ -516,6 +516,18 @@ def lint(plan: dict, plan_path: str = "") -> None:
|
|
|
516
516
|
" まとめて入稿すると2件目以降が落ちます")
|
|
517
517
|
if key:
|
|
518
518
|
plan_cp_names.add(key)
|
|
519
|
+
# Google はキャンペーンを PAUSED でしか入稿できない(backend が ENABLED を 400)。
|
|
520
|
+
# 配下まで PAUSED だと、検品後にキャンペーンだけオンにしても配信されない
|
|
521
|
+
# (2026-10-28 桑の葉69 の5CPが実績0)。配下の ENABLED は backend が通す (#396)。
|
|
522
|
+
paused = [f"広告グループ「{g.get('name', '')}」" for g in ad_groups(c)
|
|
523
|
+
if status_of(g) not in ON_STATUSES]
|
|
524
|
+
paused += [f"広告「{a.get('adName') or a.get('name') or '?'}」"
|
|
525
|
+
for g in ad_groups(c) for a in g.get("ads") or []
|
|
526
|
+
if status_of(a) not in ON_STATUSES]
|
|
527
|
+
if paused and cp_status not in ON_STATUSES:
|
|
528
|
+
more = f" ほか{len(paused) - 3}件" if len(paused) > 3 else ""
|
|
529
|
+
warn(f"CP「{name}」の配下に PAUSED があります({'、'.join(paused[:3])}{more})。"
|
|
530
|
+
" キャンペーンをオンにしても、PAUSED の広告グループ・広告は配信されません")
|
|
519
531
|
|
|
520
532
|
for g in ad_groups(c):
|
|
521
533
|
gname = g.get("name", "")
|
|
@@ -120,6 +120,43 @@ python3 "$SCRIPT" --wait --timeout 8 >/dev/null 2>&1; rc=$?
|
|
|
120
120
|
check "timeout した(サブディレクトリは対象外)" 124 "$rc"
|
|
121
121
|
wait
|
|
122
122
|
|
|
123
|
+
echo "=== 8. Google: CP は PAUSED 必須・配下の PAUSED は WARN (#396) ==="
|
|
124
|
+
rm -rf "$ADOPS_PLAN_DIR"/* "$ADOPS_DOWNLOADS"/*.json
|
|
125
|
+
mkdir -p "$SKILL/アカウント/google"
|
|
126
|
+
cat > "$SKILL/アカウント/google/テスト案件G.json" <<'EOF'
|
|
127
|
+
{"accountJsonVersion":2,"platform":"google","accountId":"1234567890","name":"テスト案件G",
|
|
128
|
+
"baseArticleUrl":"https://example.com/ab/","urlParamsEnabled":false,"refs":{}}
|
|
129
|
+
EOF
|
|
130
|
+
# $1=出力先 $2=CP status $3=AG status $4=広告 status
|
|
131
|
+
google_plan_json() {
|
|
132
|
+
cat > "$1" <<EOF
|
|
133
|
+
{"planVersion":1,"platform":"google","accountId":"1234567890","customerId":"1234567890",
|
|
134
|
+
"campaigns":[{"name":"CP_G","status":"$2","budgetAmountYen":5000,
|
|
135
|
+
"adGroups":[{"name":"AG1","status":"$3","ads":[
|
|
136
|
+
{"type":"DEMAND_GEN_VIDEO_RESPONSIVE_AD","adName":"AD1","status":"$4","youtubeVideoId":"abc",
|
|
137
|
+
"headlines":["見出し"],"descriptions":["説明"],"businessName":"テスト",
|
|
138
|
+
"finalUrls":["https://example.com/ab/x"]}]}]}]}
|
|
139
|
+
EOF
|
|
140
|
+
}
|
|
141
|
+
google_plan_json "$ADOPS_PLAN_DIR/g1.json" PAUSED ENABLED ENABLED
|
|
142
|
+
out=$(python3 "$SCRIPT" "$ADOPS_PLAN_DIR/g1.json" 2>&1); rc=$?
|
|
143
|
+
# exit 0 も見る(異常終了で指摘が出なかっただけ、を通さない)
|
|
144
|
+
[ "$rc" = "0" ] && ! echo "$out" | grep -q "ENABLED(配信オン)\|配下に PAUSED" \
|
|
145
|
+
&& { echo " ✓ CP PAUSED +配下 ENABLED は通る"; pass=$((pass+1)); } \
|
|
146
|
+
|| { echo " ✗ CP PAUSED +配下 ENABLED が通らない (exit=$rc)"; echo "$out" | sed 's/^/ /'; fail=$((fail+1)); }
|
|
147
|
+
|
|
148
|
+
google_plan_json "$ADOPS_PLAN_DIR/g2.json" PAUSED PAUSED PAUSED
|
|
149
|
+
out=$(python3 "$SCRIPT" "$ADOPS_PLAN_DIR/g2.json" 2>&1)
|
|
150
|
+
echo "$out" | grep -q "配下に PAUSED があります" \
|
|
151
|
+
&& { echo " ✓ 配下が PAUSED なら WARN"; pass=$((pass+1)); } \
|
|
152
|
+
|| { echo " ✗ 配下 PAUSED の WARN が出ない"; echo "$out" | sed 's/^/ /'; fail=$((fail+1)); }
|
|
153
|
+
|
|
154
|
+
google_plan_json "$ADOPS_PLAN_DIR/g3.json" ENABLED ENABLED ENABLED
|
|
155
|
+
out=$(python3 "$SCRIPT" "$ADOPS_PLAN_DIR/g3.json" 2>&1); rc=$?
|
|
156
|
+
echo "$out" | grep -q "CP「CP_G」が ENABLED(配信オン)" && [ "$rc" != "0" ] \
|
|
157
|
+
&& { echo " ✓ CP ENABLED は ERROR (exit=$rc)"; pass=$((pass+1)); } \
|
|
158
|
+
|| { echo " ✗ CP ENABLED が ERROR にならない (exit=$rc)"; echo "$out" | sed 's/^/ /'; fail=$((fail+1)); }
|
|
159
|
+
|
|
123
160
|
echo
|
|
124
161
|
echo "══ 結果: ${pass} passed / ${fail} failed ══"
|
|
125
162
|
rm -rf "$ROOT"
|