agileflow 3.4.3 → 4.0.0-alpha.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.
Files changed (754) hide show
  1. package/CHANGELOG.md +235 -499
  2. package/README.md +22 -114
  3. package/bin/agileflow.js +15 -0
  4. package/bin/hooks/pre-bash.js +35 -0
  5. package/bin/hooks/pre-compact.js +34 -0
  6. package/bin/hooks/pre-edit.js +32 -0
  7. package/bin/hooks/pre-write.js +32 -0
  8. package/bin/hooks/session-start.js +42 -0
  9. package/bin/hooks/stop.js +34 -0
  10. package/content/plugins/ads/plugin.yaml +14 -0
  11. package/content/plugins/audit/plugin.yaml +14 -0
  12. package/content/plugins/core/hooks/session-welcome.js +19 -0
  13. package/content/plugins/core/plugin.yaml +34 -0
  14. package/content/plugins/core/skills/agileflow-adr/SKILL.md +179 -0
  15. package/content/plugins/core/skills/agileflow-babysit-mentor/SKILL.md +144 -0
  16. package/content/plugins/core/skills/agileflow-epic-planner/SKILL.md +179 -0
  17. package/content/plugins/core/skills/agileflow-status-updater/SKILL.md +132 -0
  18. package/content/plugins/core/skills/agileflow-story-writer/SKILL.md +200 -0
  19. package/content/plugins/council/plugin.yaml +14 -0
  20. package/content/plugins/seo/plugin.yaml +14 -0
  21. package/package.json +29 -49
  22. package/src/cli/commands/doctor.js +159 -0
  23. package/src/cli/commands/hook.js +80 -0
  24. package/src/cli/commands/setup.js +254 -0
  25. package/src/cli/commands/status.js +47 -0
  26. package/src/cli/commands/update.js +82 -0
  27. package/src/cli/index.js +73 -0
  28. package/src/cli/wizard/ide-picker.js +57 -0
  29. package/src/cli/wizard/personalization.js +64 -0
  30. package/src/cli/wizard/plugin-picker.js +106 -0
  31. package/src/lib/hash.js +41 -0
  32. package/src/runtime/config/defaults.js +45 -0
  33. package/src/runtime/config/loader.js +118 -0
  34. package/src/runtime/config/schema.json +76 -0
  35. package/src/runtime/config/writer.js +54 -0
  36. package/src/runtime/hooks/aggregator.js +133 -0
  37. package/src/runtime/hooks/chain.js +93 -0
  38. package/src/runtime/hooks/logger.js +68 -0
  39. package/src/runtime/hooks/manifest-loader.js +228 -0
  40. package/src/runtime/hooks/orchestrator.js +322 -0
  41. package/src/runtime/ide/capabilities.js +111 -0
  42. package/src/runtime/ide/claude-code-settings.js +234 -0
  43. package/src/runtime/ide/claude-code-skills.js +202 -0
  44. package/src/runtime/installer/file-index.js +112 -0
  45. package/src/runtime/installer/install.js +306 -0
  46. package/src/runtime/installer/stash.js +61 -0
  47. package/src/runtime/installer/sync-engine.js +205 -0
  48. package/src/runtime/plugins/registry.js +132 -0
  49. package/src/runtime/plugins/resolver.js +138 -0
  50. package/src/runtime/plugins/validator.js +196 -0
  51. package/src/runtime/skills/validator.js +335 -0
  52. package/lib/README.md +0 -178
  53. package/lib/api-routes.js +0 -625
  54. package/lib/api-server.js +0 -278
  55. package/lib/cache-provider.js +0 -155
  56. package/lib/codebase-indexer.js +0 -819
  57. package/lib/colors.generated.js +0 -117
  58. package/lib/colors.js +0 -341
  59. package/lib/consent.js +0 -232
  60. package/lib/content-sanitizer.js +0 -464
  61. package/lib/correlation.js +0 -277
  62. package/lib/drivers/claude-driver.ts +0 -312
  63. package/lib/drivers/codex-driver.ts +0 -464
  64. package/lib/drivers/driver-manager.ts +0 -159
  65. package/lib/drivers/gemini-driver.ts +0 -498
  66. package/lib/drivers/index.ts +0 -17
  67. package/lib/error-codes.js +0 -590
  68. package/lib/errors.js +0 -670
  69. package/lib/feature-flags.js +0 -171
  70. package/lib/feedback.js +0 -595
  71. package/lib/file-cache.js +0 -541
  72. package/lib/flag-detection.js +0 -344
  73. package/lib/format-error.js +0 -156
  74. package/lib/gate-runner.js +0 -282
  75. package/lib/generator-factory.js +0 -333
  76. package/lib/git-operations.js +0 -266
  77. package/lib/lazy-require.js +0 -59
  78. package/lib/lock-file.js +0 -144
  79. package/lib/logger.js +0 -106
  80. package/lib/merge-operations.js +0 -1006
  81. package/lib/path-resolver.js +0 -544
  82. package/lib/path-utils.js +0 -49
  83. package/lib/paths.js +0 -291
  84. package/lib/placeholder-registry.js +0 -822
  85. package/lib/process-executor.js +0 -214
  86. package/lib/progress.js +0 -334
  87. package/lib/protocol/driver.ts +0 -354
  88. package/lib/protocol/index.ts +0 -12
  89. package/lib/protocol/ir.ts +0 -271
  90. package/lib/registry-cache.js +0 -80
  91. package/lib/registry-di.js +0 -358
  92. package/lib/result-schema.js +0 -363
  93. package/lib/result.js +0 -210
  94. package/lib/session-display.js +0 -331
  95. package/lib/session-operations.js +0 -611
  96. package/lib/session-registry.js +0 -484
  97. package/lib/session-state-machine.js +0 -465
  98. package/lib/session-switching.js +0 -191
  99. package/lib/skill-loader.js +0 -213
  100. package/lib/smart-json-file.js +0 -682
  101. package/lib/state-machine.js +0 -286
  102. package/lib/table-formatter.js +0 -519
  103. package/lib/template-loader.js +0 -143
  104. package/lib/transient-status.js +0 -374
  105. package/lib/ui-manager.js +0 -612
  106. package/lib/validate-args.js +0 -213
  107. package/lib/validate-commands.js +0 -308
  108. package/lib/validate-names.js +0 -143
  109. package/lib/validate-paths.js +0 -434
  110. package/lib/validate.js +0 -134
  111. package/lib/worktree-operations.js +0 -201
  112. package/lib/yaml-utils.js +0 -164
  113. package/scripts/README.md +0 -267
  114. package/scripts/af +0 -34
  115. package/scripts/agent-loop.js +0 -879
  116. package/scripts/agileflow-configure.js +0 -368
  117. package/scripts/agileflow-statusline.sh +0 -857
  118. package/scripts/agileflow-welcome.js +0 -2246
  119. package/scripts/api-server-runner.js +0 -177
  120. package/scripts/archive-completed-stories.sh +0 -308
  121. package/scripts/auto-self-improve.js +0 -326
  122. package/scripts/automation-run-due.js +0 -128
  123. package/scripts/babysit-clear-restore.js +0 -154
  124. package/scripts/babysit-context-restore.js +0 -89
  125. package/scripts/backfill-ideation-status.js +0 -128
  126. package/scripts/batch-pmap-loop.js +0 -551
  127. package/scripts/check-sessions.js +0 -116
  128. package/scripts/check-update.js +0 -282
  129. package/scripts/ci-summary.js +0 -294
  130. package/scripts/claude-smart.sh +0 -85
  131. package/scripts/claude-tmux.sh +0 -737
  132. package/scripts/claude-watchdog.sh +0 -225
  133. package/scripts/clear-active-command.js +0 -48
  134. package/scripts/compress-status.sh +0 -116
  135. package/scripts/context-loader.js +0 -310
  136. package/scripts/damage-control/bash-tool-damage-control.js +0 -22
  137. package/scripts/damage-control/edit-tool-damage-control.js +0 -19
  138. package/scripts/damage-control/patterns.yaml +0 -227
  139. package/scripts/damage-control/write-tool-damage-control.js +0 -19
  140. package/scripts/damage-control-bash.js +0 -51
  141. package/scripts/damage-control-edit.js +0 -48
  142. package/scripts/damage-control-multi-agent.js +0 -231
  143. package/scripts/damage-control-write.js +0 -48
  144. package/scripts/dependency-check.js +0 -311
  145. package/scripts/document-repl.js +0 -793
  146. package/scripts/expertise-metrics.sh +0 -264
  147. package/scripts/generate-all.sh +0 -77
  148. package/scripts/generate-colors.js +0 -314
  149. package/scripts/generators/agent-registry.js +0 -183
  150. package/scripts/generators/command-registry.js +0 -166
  151. package/scripts/generators/index.js +0 -85
  152. package/scripts/generators/inject-babysit.js +0 -191
  153. package/scripts/generators/inject-help.js +0 -125
  154. package/scripts/generators/inject-readme.js +0 -166
  155. package/scripts/generators/skill-registry.js +0 -188
  156. package/scripts/get-env.js +0 -225
  157. package/scripts/init.sh +0 -76
  158. package/scripts/lib/README-portable-tasks.md +0 -424
  159. package/scripts/lib/ac-test-matcher.js +0 -452
  160. package/scripts/lib/audit-cleanup.js +0 -250
  161. package/scripts/lib/audit-registry.js +0 -340
  162. package/scripts/lib/automation-registry.js +0 -544
  163. package/scripts/lib/automation-runner.js +0 -476
  164. package/scripts/lib/browser-qa-evidence.js +0 -409
  165. package/scripts/lib/browser-qa-status.js +0 -192
  166. package/scripts/lib/bus-utils.js +0 -473
  167. package/scripts/lib/colors.generated.sh +0 -82
  168. package/scripts/lib/colors.sh +0 -46
  169. package/scripts/lib/command-prereqs.js +0 -280
  170. package/scripts/lib/concurrency-limiter.js +0 -511
  171. package/scripts/lib/configure-detect.js +0 -596
  172. package/scripts/lib/configure-features.js +0 -1927
  173. package/scripts/lib/configure-repair.js +0 -327
  174. package/scripts/lib/configure-utils.js +0 -114
  175. package/scripts/lib/context-formatter.js +0 -1158
  176. package/scripts/lib/context-loader.js +0 -840
  177. package/scripts/lib/counter.js +0 -103
  178. package/scripts/lib/damage-control-utils.js +0 -619
  179. package/scripts/lib/feature-catalog.js +0 -332
  180. package/scripts/lib/file-lock.js +0 -392
  181. package/scripts/lib/file-tracking.js +0 -735
  182. package/scripts/lib/frontmatter-parser.js +0 -133
  183. package/scripts/lib/gate-enforcer.js +0 -295
  184. package/scripts/lib/hook-metrics.js +0 -324
  185. package/scripts/lib/ideation-index.js +0 -1205
  186. package/scripts/lib/json-utils.sh +0 -162
  187. package/scripts/lib/lifecycle-detector.js +0 -125
  188. package/scripts/lib/model-profiles.js +0 -118
  189. package/scripts/lib/portable-tasks-cli.js +0 -274
  190. package/scripts/lib/portable-tasks.js +0 -479
  191. package/scripts/lib/process-cleanup.js +0 -527
  192. package/scripts/lib/quality-gates.js +0 -788
  193. package/scripts/lib/scale-detector.js +0 -396
  194. package/scripts/lib/sessionRegistry.js +0 -678
  195. package/scripts/lib/signal-detectors.js +0 -867
  196. package/scripts/lib/skill-catalog.js +0 -557
  197. package/scripts/lib/skill-recommender.js +0 -311
  198. package/scripts/lib/state-migrator.js +0 -353
  199. package/scripts/lib/status-task-bridge.js +0 -522
  200. package/scripts/lib/status-writer.js +0 -255
  201. package/scripts/lib/story-claiming.js +0 -704
  202. package/scripts/lib/story-state-machine.js +0 -437
  203. package/scripts/lib/sync-ideation-status.js +0 -291
  204. package/scripts/lib/task-registry-cache.js +0 -490
  205. package/scripts/lib/task-registry.js +0 -1191
  206. package/scripts/lib/task-sync.js +0 -230
  207. package/scripts/lib/tdd-phase-manager.js +0 -455
  208. package/scripts/lib/team-events.js +0 -510
  209. package/scripts/lib/tmux-audit-monitor.js +0 -612
  210. package/scripts/lib/tmux-group-colors.js +0 -113
  211. package/scripts/lib/tool-registry.yaml +0 -241
  212. package/scripts/lib/tool-shed.js +0 -441
  213. package/scripts/lib/validation-registry.js +0 -177
  214. package/scripts/messaging-bridge.js +0 -561
  215. package/scripts/migrate-ideation-index.js +0 -553
  216. package/scripts/native-team-observer.js +0 -219
  217. package/scripts/obtain-context.js +0 -272
  218. package/scripts/pre-push-check.sh +0 -46
  219. package/scripts/precompact-context.sh +0 -306
  220. package/scripts/query-codebase.js +0 -543
  221. package/scripts/ralph-loop.js +0 -1278
  222. package/scripts/resume-session.sh +0 -121
  223. package/scripts/screenshot-verifier.js +0 -215
  224. package/scripts/session-boundary.js +0 -138
  225. package/scripts/session-coordinator.sh +0 -232
  226. package/scripts/session-manager.js +0 -546
  227. package/scripts/smart-detect.js +0 -449
  228. package/scripts/spawn-audit-sessions.js +0 -877
  229. package/scripts/spawn-parallel.js +0 -751
  230. package/scripts/strip-ai-attribution.js +0 -63
  231. package/scripts/task-completed-gate.js +0 -237
  232. package/scripts/team-manager.js +0 -596
  233. package/scripts/team-status-display.js +0 -200
  234. package/scripts/teammate-idle-gate.js +0 -237
  235. package/scripts/test-session-boundary.js +0 -80
  236. package/scripts/tmux-close-windows.sh +0 -180
  237. package/scripts/tmux-restore-window.sh +0 -67
  238. package/scripts/tmux-save-closed-window.sh +0 -35
  239. package/scripts/tui/App.js +0 -151
  240. package/scripts/tui/Dashboard.js +0 -277
  241. package/scripts/tui/blessed/data/watcher.js +0 -180
  242. package/scripts/tui/blessed/index.js +0 -244
  243. package/scripts/tui/blessed/panels/output.js +0 -101
  244. package/scripts/tui/blessed/panels/sessions.js +0 -150
  245. package/scripts/tui/blessed/panels/trace.js +0 -97
  246. package/scripts/tui/blessed/ui/help.js +0 -77
  247. package/scripts/tui/blessed/ui/screen.js +0 -52
  248. package/scripts/tui/blessed/ui/statusbar.js +0 -47
  249. package/scripts/tui/blessed/ui/tabbar.js +0 -99
  250. package/scripts/tui/index.js +0 -70
  251. package/scripts/tui/lib/crashRecovery.js +0 -304
  252. package/scripts/tui/lib/eventStream.js +0 -309
  253. package/scripts/tui/lib/keyboard.js +0 -261
  254. package/scripts/tui/lib/loopControl.js +0 -371
  255. package/scripts/tui/panels/OutputPanel.js +0 -240
  256. package/scripts/tui/panels/SessionPanel.js +0 -170
  257. package/scripts/tui/panels/TracePanel.js +0 -298
  258. package/scripts/tui/simple-tui.js +0 -510
  259. package/scripts/validate-expertise.sh +0 -263
  260. package/scripts/validate-tokens.sh +0 -73
  261. package/scripts/validators/README.md +0 -143
  262. package/scripts/validators/component-validator.js +0 -239
  263. package/scripts/validators/json-schema-validator.js +0 -186
  264. package/scripts/validators/markdown-validator.js +0 -152
  265. package/scripts/validators/migration-validator.js +0 -129
  266. package/scripts/validators/security-validator.js +0 -380
  267. package/scripts/validators/story-format-validator.js +0 -197
  268. package/scripts/validators/test-result-validator.js +0 -114
  269. package/scripts/validators/workflow-validator.js +0 -247
  270. package/scripts/welcome-deferred.js +0 -437
  271. package/scripts/worktree-create.sh +0 -111
  272. package/src/core/agents/a11y-analyzer-aria.md +0 -155
  273. package/src/core/agents/a11y-analyzer-forms.md +0 -162
  274. package/src/core/agents/a11y-analyzer-keyboard.md +0 -175
  275. package/src/core/agents/a11y-analyzer-semantic.md +0 -153
  276. package/src/core/agents/a11y-analyzer-visual.md +0 -158
  277. package/src/core/agents/a11y-consensus.md +0 -248
  278. package/src/core/agents/accessibility.md +0 -515
  279. package/src/core/agents/adr-writer.md +0 -463
  280. package/src/core/agents/ads-audit-budget.md +0 -181
  281. package/src/core/agents/ads-audit-compliance.md +0 -169
  282. package/src/core/agents/ads-audit-creative.md +0 -164
  283. package/src/core/agents/ads-audit-google.md +0 -226
  284. package/src/core/agents/ads-audit-meta.md +0 -183
  285. package/src/core/agents/ads-audit-tracking.md +0 -197
  286. package/src/core/agents/ads-consensus.md +0 -396
  287. package/src/core/agents/ads-generate.md +0 -145
  288. package/src/core/agents/ads-performance-tracker.md +0 -197
  289. package/src/core/agents/analytics.md +0 -617
  290. package/src/core/agents/api-quality-analyzer-conventions.md +0 -148
  291. package/src/core/agents/api-quality-analyzer-docs.md +0 -176
  292. package/src/core/agents/api-quality-analyzer-errors.md +0 -183
  293. package/src/core/agents/api-quality-analyzer-pagination.md +0 -171
  294. package/src/core/agents/api-quality-analyzer-versioning.md +0 -143
  295. package/src/core/agents/api-quality-consensus.md +0 -214
  296. package/src/core/agents/api-validator.md +0 -183
  297. package/src/core/agents/api.md +0 -665
  298. package/src/core/agents/arch-analyzer-circular.md +0 -148
  299. package/src/core/agents/arch-analyzer-complexity.md +0 -171
  300. package/src/core/agents/arch-analyzer-coupling.md +0 -146
  301. package/src/core/agents/arch-analyzer-layering.md +0 -151
  302. package/src/core/agents/arch-analyzer-patterns.md +0 -162
  303. package/src/core/agents/arch-consensus.md +0 -227
  304. package/src/core/agents/brainstorm-analyzer-features.md +0 -169
  305. package/src/core/agents/brainstorm-analyzer-growth.md +0 -161
  306. package/src/core/agents/brainstorm-analyzer-integration.md +0 -172
  307. package/src/core/agents/brainstorm-analyzer-market.md +0 -147
  308. package/src/core/agents/brainstorm-analyzer-ux.md +0 -167
  309. package/src/core/agents/brainstorm-consensus.md +0 -237
  310. package/src/core/agents/browser-qa.md +0 -328
  311. package/src/core/agents/ci.md +0 -511
  312. package/src/core/agents/code-reviewer.md +0 -288
  313. package/src/core/agents/codebase-query.md +0 -266
  314. package/src/core/agents/completeness-analyzer-api.md +0 -190
  315. package/src/core/agents/completeness-analyzer-conditional.md +0 -201
  316. package/src/core/agents/completeness-analyzer-handlers.md +0 -159
  317. package/src/core/agents/completeness-analyzer-imports.md +0 -159
  318. package/src/core/agents/completeness-analyzer-routes.md +0 -182
  319. package/src/core/agents/completeness-analyzer-state.md +0 -188
  320. package/src/core/agents/completeness-analyzer-stubs.md +0 -198
  321. package/src/core/agents/completeness-consensus.md +0 -286
  322. package/src/core/agents/compliance.md +0 -509
  323. package/src/core/agents/council-advocate.md +0 -206
  324. package/src/core/agents/council-analyst.md +0 -252
  325. package/src/core/agents/council-optimist.md +0 -170
  326. package/src/core/agents/database.md +0 -601
  327. package/src/core/agents/datamigration.md +0 -699
  328. package/src/core/agents/design.md +0 -525
  329. package/src/core/agents/devops.md +0 -720
  330. package/src/core/agents/documentation.md +0 -504
  331. package/src/core/agents/epic-planner.md +0 -480
  332. package/src/core/agents/error-analyzer.md +0 -201
  333. package/src/core/agents/integrations.md +0 -603
  334. package/src/core/agents/legal-analyzer-a11y.md +0 -110
  335. package/src/core/agents/legal-analyzer-ai.md +0 -117
  336. package/src/core/agents/legal-analyzer-consumer.md +0 -108
  337. package/src/core/agents/legal-analyzer-content.md +0 -113
  338. package/src/core/agents/legal-analyzer-international.md +0 -115
  339. package/src/core/agents/legal-analyzer-licensing.md +0 -115
  340. package/src/core/agents/legal-analyzer-privacy.md +0 -108
  341. package/src/core/agents/legal-analyzer-security.md +0 -112
  342. package/src/core/agents/legal-analyzer-terms.md +0 -111
  343. package/src/core/agents/legal-consensus.md +0 -242
  344. package/src/core/agents/logic-analyzer-edge.md +0 -170
  345. package/src/core/agents/logic-analyzer-flow.md +0 -253
  346. package/src/core/agents/logic-analyzer-invariant.md +0 -206
  347. package/src/core/agents/logic-analyzer-race.md +0 -266
  348. package/src/core/agents/logic-analyzer-type.md +0 -217
  349. package/src/core/agents/logic-consensus.md +0 -253
  350. package/src/core/agents/mentor.md +0 -654
  351. package/src/core/agents/mobile.md +0 -501
  352. package/src/core/agents/monitoring.md +0 -537
  353. package/src/core/agents/multi-expert.md +0 -311
  354. package/src/core/agents/orchestrator.md +0 -749
  355. package/src/core/agents/perf-analyzer-assets.md +0 -174
  356. package/src/core/agents/perf-analyzer-bundle.md +0 -165
  357. package/src/core/agents/perf-analyzer-caching.md +0 -160
  358. package/src/core/agents/perf-analyzer-compute.md +0 -165
  359. package/src/core/agents/perf-analyzer-memory.md +0 -182
  360. package/src/core/agents/perf-analyzer-network.md +0 -157
  361. package/src/core/agents/perf-analyzer-queries.md +0 -155
  362. package/src/core/agents/perf-analyzer-rendering.md +0 -156
  363. package/src/core/agents/perf-consensus.md +0 -280
  364. package/src/core/agents/performance.md +0 -492
  365. package/src/core/agents/product.md +0 -535
  366. package/src/core/agents/qa.md +0 -765
  367. package/src/core/agents/readme-updater.md +0 -579
  368. package/src/core/agents/refactor.md +0 -558
  369. package/src/core/agents/research.md +0 -453
  370. package/src/core/agents/rlm-subcore.md +0 -207
  371. package/src/core/agents/schema-validator.md +0 -454
  372. package/src/core/agents/security-analyzer-api.md +0 -199
  373. package/src/core/agents/security-analyzer-auth.md +0 -160
  374. package/src/core/agents/security-analyzer-authz.md +0 -168
  375. package/src/core/agents/security-analyzer-deps.md +0 -147
  376. package/src/core/agents/security-analyzer-infra.md +0 -176
  377. package/src/core/agents/security-analyzer-injection.md +0 -148
  378. package/src/core/agents/security-analyzer-input.md +0 -191
  379. package/src/core/agents/security-analyzer-secrets.md +0 -175
  380. package/src/core/agents/security-consensus.md +0 -276
  381. package/src/core/agents/security.md +0 -486
  382. package/src/core/agents/seo-analyzer-content.md +0 -167
  383. package/src/core/agents/seo-analyzer-images.md +0 -187
  384. package/src/core/agents/seo-analyzer-performance.md +0 -206
  385. package/src/core/agents/seo-analyzer-schema.md +0 -176
  386. package/src/core/agents/seo-analyzer-sitemap.md +0 -172
  387. package/src/core/agents/seo-analyzer-technical.md +0 -144
  388. package/src/core/agents/seo-consensus.md +0 -289
  389. package/src/core/agents/team-coordinator.md +0 -333
  390. package/src/core/agents/team-lead.md +0 -171
  391. package/src/core/agents/test-analyzer-assertions.md +0 -181
  392. package/src/core/agents/test-analyzer-coverage.md +0 -183
  393. package/src/core/agents/test-analyzer-fragility.md +0 -185
  394. package/src/core/agents/test-analyzer-integration.md +0 -155
  395. package/src/core/agents/test-analyzer-maintenance.md +0 -173
  396. package/src/core/agents/test-analyzer-mocking.md +0 -178
  397. package/src/core/agents/test-analyzer-patterns.md +0 -189
  398. package/src/core/agents/test-analyzer-structure.md +0 -177
  399. package/src/core/agents/test-consensus.md +0 -294
  400. package/src/core/agents/testing.md +0 -527
  401. package/src/core/agents/ui-validator.md +0 -331
  402. package/src/core/agents/ui.md +0 -1227
  403. package/src/core/commands/adr/list.md +0 -191
  404. package/src/core/commands/adr/update.md +0 -258
  405. package/src/core/commands/adr/view.md +0 -274
  406. package/src/core/commands/adr.md +0 -394
  407. package/src/core/commands/ads/audit.md +0 -453
  408. package/src/core/commands/ads/budget.md +0 -97
  409. package/src/core/commands/ads/competitor.md +0 -112
  410. package/src/core/commands/ads/creative.md +0 -85
  411. package/src/core/commands/ads/generate.md +0 -238
  412. package/src/core/commands/ads/google.md +0 -112
  413. package/src/core/commands/ads/health.md +0 -327
  414. package/src/core/commands/ads/landing.md +0 -119
  415. package/src/core/commands/ads/linkedin.md +0 -112
  416. package/src/core/commands/ads/meta.md +0 -91
  417. package/src/core/commands/ads/microsoft.md +0 -115
  418. package/src/core/commands/ads/plan.md +0 -321
  419. package/src/core/commands/ads/test-plan.md +0 -317
  420. package/src/core/commands/ads/tiktok.md +0 -129
  421. package/src/core/commands/ads/track.md +0 -288
  422. package/src/core/commands/ads/youtube.md +0 -124
  423. package/src/core/commands/ads.md +0 -140
  424. package/src/core/commands/agent.md +0 -256
  425. package/src/core/commands/api.md +0 -267
  426. package/src/core/commands/assign.md +0 -369
  427. package/src/core/commands/audit.md +0 -531
  428. package/src/core/commands/auto.md +0 -556
  429. package/src/core/commands/automate.md +0 -415
  430. package/src/core/commands/babysit.md +0 -643
  431. package/src/core/commands/baseline.md +0 -743
  432. package/src/core/commands/batch.md +0 -551
  433. package/src/core/commands/blockers.md +0 -602
  434. package/src/core/commands/board.md +0 -509
  435. package/src/core/commands/browser-qa.md +0 -240
  436. package/src/core/commands/changelog.md +0 -582
  437. package/src/core/commands/choose.md +0 -430
  438. package/src/core/commands/ci.md +0 -330
  439. package/src/core/commands/code/accessibility.md +0 -363
  440. package/src/core/commands/code/api.md +0 -313
  441. package/src/core/commands/code/architecture.md +0 -313
  442. package/src/core/commands/code/completeness.md +0 -519
  443. package/src/core/commands/code/legal.md +0 -509
  444. package/src/core/commands/code/logic.md +0 -432
  445. package/src/core/commands/code/performance.md +0 -506
  446. package/src/core/commands/code/security.md +0 -509
  447. package/src/core/commands/code/test.md +0 -505
  448. package/src/core/commands/compress.md +0 -408
  449. package/src/core/commands/configure.md +0 -1159
  450. package/src/core/commands/context/export.md +0 -296
  451. package/src/core/commands/context/full.md +0 -353
  452. package/src/core/commands/context/note.md +0 -380
  453. package/src/core/commands/council.md +0 -592
  454. package/src/core/commands/debt.md +0 -491
  455. package/src/core/commands/deploy.md +0 -864
  456. package/src/core/commands/deps.md +0 -728
  457. package/src/core/commands/diagnose.md +0 -404
  458. package/src/core/commands/docs.md +0 -469
  459. package/src/core/commands/epic/edit.md +0 -213
  460. package/src/core/commands/epic/list.md +0 -190
  461. package/src/core/commands/epic/view.md +0 -267
  462. package/src/core/commands/epic.md +0 -477
  463. package/src/core/commands/export.md +0 -238
  464. package/src/core/commands/feedback.md +0 -603
  465. package/src/core/commands/handoff.md +0 -386
  466. package/src/core/commands/help.md +0 -194
  467. package/src/core/commands/ideate/brief.md +0 -363
  468. package/src/core/commands/ideate/discover.md +0 -399
  469. package/src/core/commands/ideate/features.md +0 -497
  470. package/src/core/commands/ideate/history.md +0 -403
  471. package/src/core/commands/ideate/new.md +0 -900
  472. package/src/core/commands/impact.md +0 -407
  473. package/src/core/commands/install.md +0 -529
  474. package/src/core/commands/learn/explain.md +0 -118
  475. package/src/core/commands/learn/glossary.md +0 -135
  476. package/src/core/commands/learn/patterns.md +0 -138
  477. package/src/core/commands/learn/tour.md +0 -126
  478. package/src/core/commands/maintain.md +0 -558
  479. package/src/core/commands/metrics.md +0 -844
  480. package/src/core/commands/migrate/codemods.md +0 -151
  481. package/src/core/commands/migrate/plan.md +0 -131
  482. package/src/core/commands/migrate/scan.md +0 -114
  483. package/src/core/commands/migrate/validate.md +0 -119
  484. package/src/core/commands/multi-expert.md +0 -447
  485. package/src/core/commands/packages.md +0 -535
  486. package/src/core/commands/pr.md +0 -337
  487. package/src/core/commands/readme-sync.md +0 -329
  488. package/src/core/commands/research/analyze.md +0 -798
  489. package/src/core/commands/research/ask.md +0 -864
  490. package/src/core/commands/research/import.md +0 -1025
  491. package/src/core/commands/research/list.md +0 -273
  492. package/src/core/commands/research/synthesize.md +0 -928
  493. package/src/core/commands/research/view.md +0 -323
  494. package/src/core/commands/retro.md +0 -795
  495. package/src/core/commands/review.md +0 -694
  496. package/src/core/commands/rlm.md +0 -446
  497. package/src/core/commands/roadmap/analyze.md +0 -400
  498. package/src/core/commands/rpi.md +0 -633
  499. package/src/core/commands/seo/audit.md +0 -444
  500. package/src/core/commands/seo/competitor.md +0 -174
  501. package/src/core/commands/seo/content.md +0 -107
  502. package/src/core/commands/seo/geo.md +0 -229
  503. package/src/core/commands/seo/hreflang.md +0 -140
  504. package/src/core/commands/seo/images.md +0 -96
  505. package/src/core/commands/seo/page.md +0 -198
  506. package/src/core/commands/seo/plan.md +0 -163
  507. package/src/core/commands/seo/programmatic.md +0 -131
  508. package/src/core/commands/seo/references/cwv-thresholds.md +0 -64
  509. package/src/core/commands/seo/references/eeat-framework.md +0 -110
  510. package/src/core/commands/seo/references/quality-gates.md +0 -91
  511. package/src/core/commands/seo/references/schema-types.md +0 -102
  512. package/src/core/commands/seo/schema.md +0 -183
  513. package/src/core/commands/seo/sitemap.md +0 -97
  514. package/src/core/commands/seo/technical.md +0 -100
  515. package/src/core/commands/seo.md +0 -107
  516. package/src/core/commands/session/cleanup.md +0 -452
  517. package/src/core/commands/session/end.md +0 -865
  518. package/src/core/commands/session/history.md +0 -293
  519. package/src/core/commands/session/init.md +0 -210
  520. package/src/core/commands/session/new.md +0 -827
  521. package/src/core/commands/session/resume.md +0 -291
  522. package/src/core/commands/session/spawn.md +0 -205
  523. package/src/core/commands/session/status.md +0 -274
  524. package/src/core/commands/skill/list.md +0 -139
  525. package/src/core/commands/skill/recommend.md +0 -216
  526. package/src/core/commands/sprint.md +0 -714
  527. package/src/core/commands/status/undo.md +0 -191
  528. package/src/core/commands/status.md +0 -423
  529. package/src/core/commands/story/edit.md +0 -204
  530. package/src/core/commands/story/list.md +0 -199
  531. package/src/core/commands/story/view.md +0 -312
  532. package/src/core/commands/story-validate.md +0 -491
  533. package/src/core/commands/story.md +0 -465
  534. package/src/core/commands/tdd-next.md +0 -238
  535. package/src/core/commands/tdd.md +0 -211
  536. package/src/core/commands/team/guide.md +0 -688
  537. package/src/core/commands/team/list.md +0 -59
  538. package/src/core/commands/team/start.md +0 -130
  539. package/src/core/commands/team/status.md +0 -66
  540. package/src/core/commands/team/stop.md +0 -78
  541. package/src/core/commands/template.md +0 -644
  542. package/src/core/commands/tests.md +0 -731
  543. package/src/core/commands/update.md +0 -591
  544. package/src/core/commands/validate-expertise.md +0 -305
  545. package/src/core/commands/velocity.md +0 -630
  546. package/src/core/commands/verify.md +0 -534
  547. package/src/core/commands/whats-new.md +0 -201
  548. package/src/core/commands/workflow.md +0 -449
  549. package/src/core/council/sessions/.gitkeep +0 -0
  550. package/src/core/council/shared_reasoning.template.md +0 -106
  551. package/src/core/experts/README.md +0 -236
  552. package/src/core/experts/_core-expertise.yaml +0 -105
  553. package/src/core/experts/accessibility/expertise.yaml +0 -115
  554. package/src/core/experts/accessibility/question.md +0 -41
  555. package/src/core/experts/accessibility/self-improve.md +0 -45
  556. package/src/core/experts/accessibility/workflow.md +0 -59
  557. package/src/core/experts/adr-writer/expertise.yaml +0 -138
  558. package/src/core/experts/adr-writer/question.md +0 -56
  559. package/src/core/experts/adr-writer/self-improve.md +0 -106
  560. package/src/core/experts/adr-writer/workflow.md +0 -184
  561. package/src/core/experts/analytics/expertise.yaml +0 -119
  562. package/src/core/experts/analytics/question.md +0 -74
  563. package/src/core/experts/analytics/self-improve.md +0 -163
  564. package/src/core/experts/analytics/workflow.md +0 -272
  565. package/src/core/experts/api/expertise.yaml +0 -124
  566. package/src/core/experts/api/question.md +0 -74
  567. package/src/core/experts/api/self-improve.md +0 -122
  568. package/src/core/experts/api/workflow.md +0 -248
  569. package/src/core/experts/ci/expertise.yaml +0 -106
  570. package/src/core/experts/ci/question.md +0 -69
  571. package/src/core/experts/ci/self-improve.md +0 -100
  572. package/src/core/experts/ci/workflow.md +0 -145
  573. package/src/core/experts/codebase-query/expertise.yaml +0 -121
  574. package/src/core/experts/codebase-query/question.md +0 -73
  575. package/src/core/experts/codebase-query/self-improve.md +0 -105
  576. package/src/core/experts/compliance/expertise.yaml +0 -101
  577. package/src/core/experts/compliance/question.md +0 -56
  578. package/src/core/experts/compliance/self-improve.md +0 -106
  579. package/src/core/experts/compliance/workflow.md +0 -184
  580. package/src/core/experts/database/expertise.yaml +0 -109
  581. package/src/core/experts/database/question.md +0 -74
  582. package/src/core/experts/database/self-improve.md +0 -121
  583. package/src/core/experts/database/workflow.md +0 -234
  584. package/src/core/experts/datamigration/expertise.yaml +0 -141
  585. package/src/core/experts/datamigration/question.md +0 -56
  586. package/src/core/experts/datamigration/self-improve.md +0 -106
  587. package/src/core/experts/datamigration/workflow.md +0 -184
  588. package/src/core/experts/design/expertise.yaml +0 -116
  589. package/src/core/experts/design/question.md +0 -56
  590. package/src/core/experts/design/self-improve.md +0 -106
  591. package/src/core/experts/design/workflow.md +0 -184
  592. package/src/core/experts/devops/expertise.yaml +0 -116
  593. package/src/core/experts/devops/question.md +0 -68
  594. package/src/core/experts/devops/self-improve.md +0 -102
  595. package/src/core/experts/devops/workflow.md +0 -142
  596. package/src/core/experts/documentation/expertise.yaml +0 -126
  597. package/src/core/experts/documentation/question.md +0 -41
  598. package/src/core/experts/documentation/self-improve.md +0 -45
  599. package/src/core/experts/documentation/workflow.md +0 -55
  600. package/src/core/experts/epic-planner/expertise.yaml +0 -144
  601. package/src/core/experts/epic-planner/question.md +0 -56
  602. package/src/core/experts/epic-planner/self-improve.md +0 -106
  603. package/src/core/experts/epic-planner/workflow.md +0 -184
  604. package/src/core/experts/integrations/expertise.yaml +0 -113
  605. package/src/core/experts/integrations/question.md +0 -74
  606. package/src/core/experts/integrations/self-improve.md +0 -151
  607. package/src/core/experts/integrations/workflow.md +0 -246
  608. package/src/core/experts/mentor/expertise.yaml +0 -125
  609. package/src/core/experts/mentor/question.md +0 -56
  610. package/src/core/experts/mentor/self-improve.md +0 -106
  611. package/src/core/experts/mentor/workflow.md +0 -184
  612. package/src/core/experts/mobile/expertise.yaml +0 -136
  613. package/src/core/experts/mobile/question.md +0 -72
  614. package/src/core/experts/mobile/self-improve.md +0 -140
  615. package/src/core/experts/mobile/workflow.md +0 -240
  616. package/src/core/experts/monitoring/expertise.yaml +0 -132
  617. package/src/core/experts/monitoring/question.md +0 -76
  618. package/src/core/experts/monitoring/self-improve.md +0 -150
  619. package/src/core/experts/monitoring/workflow.md +0 -264
  620. package/src/core/experts/performance/expertise.yaml +0 -68
  621. package/src/core/experts/performance/question.md +0 -41
  622. package/src/core/experts/performance/self-improve.md +0 -45
  623. package/src/core/experts/performance/workflow.md +0 -61
  624. package/src/core/experts/product/expertise.yaml +0 -143
  625. package/src/core/experts/product/question.md +0 -56
  626. package/src/core/experts/product/self-improve.md +0 -106
  627. package/src/core/experts/product/workflow.md +0 -184
  628. package/src/core/experts/qa/expertise.yaml +0 -110
  629. package/src/core/experts/qa/question.md +0 -56
  630. package/src/core/experts/qa/self-improve.md +0 -106
  631. package/src/core/experts/qa/workflow.md +0 -184
  632. package/src/core/experts/readme-updater/expertise.yaml +0 -141
  633. package/src/core/experts/readme-updater/question.md +0 -56
  634. package/src/core/experts/readme-updater/self-improve.md +0 -106
  635. package/src/core/experts/readme-updater/workflow.md +0 -184
  636. package/src/core/experts/refactor/expertise.yaml +0 -135
  637. package/src/core/experts/refactor/question.md +0 -41
  638. package/src/core/experts/refactor/self-improve.md +0 -45
  639. package/src/core/experts/refactor/workflow.md +0 -57
  640. package/src/core/experts/research/expertise.yaml +0 -143
  641. package/src/core/experts/research/question.md +0 -56
  642. package/src/core/experts/research/self-improve.md +0 -106
  643. package/src/core/experts/research/workflow.md +0 -184
  644. package/src/core/experts/security/expertise.yaml +0 -117
  645. package/src/core/experts/security/question.md +0 -77
  646. package/src/core/experts/security/self-improve.md +0 -102
  647. package/src/core/experts/security/workflow.md +0 -152
  648. package/src/core/experts/templates/expertise-template.yaml +0 -67
  649. package/src/core/experts/templates/question-template.md +0 -56
  650. package/src/core/experts/templates/self-improve-template.md +0 -106
  651. package/src/core/experts/templates/workflow-template.md +0 -184
  652. package/src/core/experts/testing/expertise.yaml +0 -112
  653. package/src/core/experts/testing/question.md +0 -68
  654. package/src/core/experts/testing/self-improve.md +0 -102
  655. package/src/core/experts/testing/workflow.md +0 -143
  656. package/src/core/experts/ui/expertise.yaml +0 -133
  657. package/src/core/experts/ui/question.md +0 -74
  658. package/src/core/experts/ui/self-improve.md +0 -122
  659. package/src/core/experts/ui/workflow.md +0 -262
  660. package/src/core/knowledge/ads/ad-audit-checklist-scoring.md +0 -424
  661. package/src/core/knowledge/ads/ad-optimization-logic.md +0 -590
  662. package/src/core/knowledge/ads/ad-technical-specifications.md +0 -385
  663. package/src/core/knowledge/ads/definitive-advertising-reference-2026.md +0 -506
  664. package/src/core/knowledge/ads/paid-advertising-research-2026.md +0 -445
  665. package/src/core/profiles/COMPARISON.md +0 -170
  666. package/src/core/profiles/README.md +0 -178
  667. package/src/core/profiles/claude-code.yaml +0 -111
  668. package/src/core/profiles/codex.yaml +0 -103
  669. package/src/core/profiles/cursor.yaml +0 -134
  670. package/src/core/profiles/examples.js +0 -250
  671. package/src/core/profiles/loader.js +0 -235
  672. package/src/core/profiles/windsurf.yaml +0 -159
  673. package/src/core/skills/_learnings/README.md +0 -91
  674. package/src/core/skills/_learnings/_template.yaml +0 -106
  675. package/src/core/skills/_learnings/code-review.yaml +0 -118
  676. package/src/core/skills/_learnings/commit.yaml +0 -69
  677. package/src/core/skills/_learnings/story-writer.yaml +0 -71
  678. package/src/core/teams/backend.json +0 -41
  679. package/src/core/teams/builder-validator.json +0 -51
  680. package/src/core/teams/code-review.json +0 -41
  681. package/src/core/teams/frontend.json +0 -41
  682. package/src/core/teams/fullstack.json +0 -41
  683. package/src/core/teams/logic-audit.json +0 -53
  684. package/src/core/teams/perf-audit.json +0 -71
  685. package/src/core/teams/qa.json +0 -41
  686. package/src/core/teams/security-audit.json +0 -71
  687. package/src/core/teams/solo.json +0 -35
  688. package/src/core/teams/test-audit.json +0 -71
  689. package/src/core/templates/CONTEXT.md.example +0 -49
  690. package/src/core/templates/README-template.md +0 -16
  691. package/src/core/templates/adr-template.md +0 -28
  692. package/src/core/templates/agent-coordination-pattern.md +0 -38
  693. package/src/core/templates/agent-profile-template.md +0 -51
  694. package/src/core/templates/agileflow-metadata.json +0 -150
  695. package/src/core/templates/browser-qa-spec.yaml +0 -94
  696. package/src/core/templates/ci-workflow.yml +0 -74
  697. package/src/core/templates/claude-settings.advanced.example.json +0 -75
  698. package/src/core/templates/claude-settings.example.json +0 -26
  699. package/src/core/templates/command-documentation.md +0 -187
  700. package/src/core/templates/command-prerequisites.yaml +0 -169
  701. package/src/core/templates/comms-note-template.md +0 -24
  702. package/src/core/templates/damage-control-patterns.yaml +0 -243
  703. package/src/core/templates/environment.json +0 -18
  704. package/src/core/templates/epic-template.md +0 -27
  705. package/src/core/templates/plan-template.md +0 -125
  706. package/src/core/templates/preserve-rules-common.md +0 -107
  707. package/src/core/templates/preserve-rules.json +0 -42
  708. package/src/core/templates/proactive-action-spec.md +0 -29
  709. package/src/core/templates/product-brief.md +0 -136
  710. package/src/core/templates/quality-gate-priorities.md +0 -34
  711. package/src/core/templates/research-template.md +0 -44
  712. package/src/core/templates/session-harness-protocol.md +0 -128
  713. package/src/core/templates/session-state.json +0 -56
  714. package/src/core/templates/story-lifecycle.md +0 -213
  715. package/src/core/templates/story-template.md +0 -92
  716. package/src/core/templates/tdd-test-template.js +0 -241
  717. package/src/core/templates/worktrees-guide.md +0 -231
  718. package/tools/agileflow-npx.js +0 -52
  719. package/tools/cli/agileflow-cli.js +0 -72
  720. package/tools/cli/commands/config.js +0 -285
  721. package/tools/cli/commands/doctor.js +0 -496
  722. package/tools/cli/commands/list.js +0 -385
  723. package/tools/cli/commands/session.js +0 -1176
  724. package/tools/cli/commands/setup.js +0 -255
  725. package/tools/cli/commands/status.js +0 -101
  726. package/tools/cli/commands/tui.js +0 -56
  727. package/tools/cli/commands/uninstall.js +0 -155
  728. package/tools/cli/commands/update.js +0 -299
  729. package/tools/cli/installers/core/installer.js +0 -892
  730. package/tools/cli/installers/ide/_base-ide.js +0 -518
  731. package/tools/cli/installers/ide/_interface.js +0 -238
  732. package/tools/cli/installers/ide/claude-code.js +0 -432
  733. package/tools/cli/installers/ide/codex.js +0 -426
  734. package/tools/cli/installers/ide/cursor.js +0 -217
  735. package/tools/cli/installers/ide/manager.js +0 -222
  736. package/tools/cli/installers/ide/windsurf.js +0 -282
  737. package/tools/cli/lib/command-context.js +0 -382
  738. package/tools/cli/lib/config-manager.js +0 -446
  739. package/tools/cli/lib/content-injector.js +0 -969
  740. package/tools/cli/lib/content-transformer.js +0 -496
  741. package/tools/cli/lib/docs-setup.js +0 -464
  742. package/tools/cli/lib/error-handler.js +0 -165
  743. package/tools/cli/lib/ide-error-factory.js +0 -421
  744. package/tools/cli/lib/ide-errors.js +0 -367
  745. package/tools/cli/lib/ide-generator.js +0 -357
  746. package/tools/cli/lib/ide-health-monitor.js +0 -364
  747. package/tools/cli/lib/ide-registry.js +0 -297
  748. package/tools/cli/lib/npm-utils.js +0 -103
  749. package/tools/cli/lib/self-update.js +0 -148
  750. package/tools/cli/lib/ui.js +0 -211
  751. package/tools/cli/lib/utils.js +0 -87
  752. package/tools/cli/lib/validation-middleware.js +0 -491
  753. package/tools/cli/lib/version-checker.js +0 -95
  754. package/tools/postinstall.js +0 -190
@@ -1,445 +0,0 @@
1
- # The State of Paid Advertising 2026: Technical Architecture, Algorithmic Shifts, and Strategic Optimization
2
-
3
- ## Executive Summary: The Signal-Based Paradigm
4
-
5
- The digital advertising ecosystem of February 2026 operates under a fundamentally new paradigm: the transition from keyword-centric targeting to signal-based intent modeling. For engineering teams and marketing architects building automated optimization tools like *claude-ads*, the operational reality has shifted from manual bid management to "signal feeding." This report serves as a comprehensive technical and strategic blueprint, dissecting the failure of the Google Privacy Sandbox, the rise of generative search inventory, and the specific API architectures required to audit and optimize campaigns across Google, Meta, TikTok, LinkedIn, and Microsoft.
6
-
7
- The deprecation of Google's Privacy Sandbox initiative in late 2025, combined with the indefinite persistence of third-party cookies in Chrome, has created a hybrid tracking environment where first-party data moats are the primary differentiator.<sup>1</sup> However, reliance on browser-side pixels is now a vulnerability; the industry standard has moved to server-side integrations (CAPI) and Media Mix Modeling (MMM) as the source of truth for attribution.<sup>2</sup> Platform architectures have evolved to prioritize "black box" automation--Google's AI Max for Search and Performance Max (PMax) dominate inventory, while Meta's Andromeda engine has restructured ad retrieval to favor creative portfolios over individual variants.<sup>3</sup>
8
-
9
- This document provides the specific logic, API endpoints, benchmarks, and scoring methodologies required to build a defensible, high-impact auditing tool for this new era.
10
-
11
- ---
12
-
13
- ## Section 1: The Macro-Environment & Privacy Infrastructure
14
-
15
- ### 1.1 The Post-Sandbox Reality and Cookie Persistence
16
-
17
- As of early 2026, the digital advertising industry has stabilized following the collapse of Google's Privacy Sandbox initiative. After six years of development, Google officially retired the initiative in October 2025 due to insurmountable regulatory scrutiny from the UK's Competition and Markets Authority (CMA) and significant performance degradation observed during industry testing.<sup>1</sup> The core APIs proposed--Topics, Protected Audience, and Attribution Reporting--have been shut down on both Chrome and Android.<sup>1</sup>
18
-
19
- The immediate implication for ad-tech architecture is that third-party cookies remain active in Chrome. However, this preservation comes with a critical caveat: Google has abandoned plans for a new user-choice prompt, maintaining existing controls instead.<sup>1</sup> This creates a false sense of security for advertisers relying solely on client-side tracking. While the cookies exist, the signal fidelity is degraded by browser-level protections and the massive adoption of iOS privacy frameworks.
20
-
21
- **Implications for *claude-ads* Architecture:** The auditing tool must not validate tracking health based solely on the presence of a pixel. It must prioritize server-side integrations as the standard. The logic should penalize accounts that lack a dual-tagging implementation (Pixel + Server-Side) because reliance on cookies is now a fragility rather than a standard. The tool must verify "Enhanced Conversions" in Google Ads and "Event Match Quality" (EMQ) in Meta to ensure data durability.<sup>5</sup>
22
-
23
- ### 1.2 The Rise of "AI Max" and Generative Search Inventory
24
-
25
- The most significant operational change in 2026 is the integration of ads into AI Overviews (AIO) via "AI Max." This is not merely a campaign type but a suite of features layering on top of Search. It utilizes Large Language Models (LLMs) to match landing page content directly to complex, conversational user queries, bypassing traditional keyword matching logic.<sup>6</sup>
26
-
27
- For an orchestration tool, this necessitates a shift in landing page auditing. Traditional SEO heuristics like keyword density are less relevant than "machine-interpretability"--specifically, the presence of structured data (Schema) and semantic hierarchy that allows Google's AI to scrape "answers" directly from the page to form ad copy.<sup>7</sup> The CLI tool must scrape landing pages to validate the existence of FAQPage and Product schema, ensuring the content is structured for AI ingestion.
28
-
29
- ### 1.3 The Media Mix Modeling (MMM) Renaissance
30
-
31
- With deterministic tracking fragmented, Media Mix Modeling (MMM) has re-emerged as the primary mechanism for budget allocation. Modern MMM tools in 2026, such as Google Meridian and Meta Robyn, use Bayesian methods to quantify uncertainty and calibrate incrementality.<sup>2</sup> The 2026 best practice is a "Hybrid Measurement Strategy," combining real-time multi-touch attribution (MTA) for tactical optimization with periodic MMM for strategic budget setting.<sup>2</sup>
32
-
33
- **Strategic Logic for Optimization:**
34
-
35
- When *claude-ads* recommends budget shifts, it cannot rely solely on platform-reported ROAS, which often claims credit for conversions driven by other channels. Ideally, the tool should ingest MMM coefficients or "incrementality multipliers" to weight the platform data. For example, a reported Meta ROAS of 4.0 might be weighted down by 30% based on MMM incrementality findings, while a YouTube View-Through conversion might be weighted up.
36
-
37
- ---
38
-
39
- ## Section 2: Google Ads Architecture & Optimization Logic
40
-
41
- ### 2.1 The New Search Logic: Broad Match & Smart Bidding
42
-
43
- The definitive "power pairing" for 2026 is Broad Match combined with Smart Bidding. The operational definition of "Exact Match" has loosened to capture "same meaning," while Broad Match now captures "intent" derived from user history, landing page context, and real-time signals.<sup>7</sup> This shift renders manual CPC bidding on exact match keywords largely obsolete for growth-focused accounts.
44
-
45
- **Audit Logic for Broad Match:**
46
-
47
- - **Pre-requisite Check:** Broad match should *never* be enabled without a Smart Bidding strategy (tCPA or tROAS) active. The *claude-ads* tool must flag any Broad Match keywords running on Manual CPC as a "Critical" error, as this combination leads to unrestricted spend on irrelevant queries without the safety rail of conversion probability modeling.<sup>7</sup>
48
- - **Negative Keyword Moats:** Because Broad Match expands reach aggressively, account-level negative keyword lists are mandatory. The tool must check for the presence of "theme-based" negative lists (e.g., "Competitor," "Cheap/Free," "Jobs") applied globally to filter low-intent traffic before it enters the auction.<sup>7</sup>
49
- - **Brand Guidelines:** The tool must verify that "Brand Guidelines" are configured in PMax and Search settings. This feature restricts the AI's generative copy capabilities to approved brand voice and terminology, preventing hallucinated or off-brand ad text during broad matching expansion.<sup>7</sup>
50
-
51
- ### 2.2 Performance Max (PMax) Maturity
52
-
53
- Performance Max has evolved from a "black box" to a configurable "grey box" by 2026. New controls allow for campaign-level negative keywords, brand exclusions, and improved asset reporting.<sup>9</sup> The primary frustration--lack of visibility--has been partially addressed through "Share of Voice" reporting and "Search Term Insights," which allow advertisers to see where the budget is actually going.<sup>10</sup>
54
-
55
- **PMax Structure for 2026:** The prevailing best practice is to structure Asset Groups by **User Intent** rather than Product Category. For example, instead of separate groups for "Running Shoes" vs. "Basketball Shoes," the structure should target "High-Performance Athletes" (featuring technical specs and dynamic imagery) vs. "Casual Commuters" (featuring lifestyle imagery and comfort-focused copy).<sup>7</sup> This aligns the creative assets with the audience signals the AI is optimizing for.
56
-
57
- **Audit Checkpoints:**
58
-
59
- - **Asset Density:** Each Asset Group must contain the maximum allowance of headlines (15), descriptions (5), and images (20). The tool should flag groups with fewer than 5 images or missing video assets.<sup>7</sup>
60
- - **Video Necessity:** PMax now generates robotic, low-quality videos from static images if no video is provided. The audit must detect asset groups lacking native video assets (vertical, square, and landscape) and mark them as "High Risk" for brand safety and Ad Strength.<sup>7</sup>
61
- - **New Customer Acquisition (NCA):** Verify that the "Only bid for new customers" or "Bid higher for new customers" value rules are active for prospecting campaigns. Failing to distinguish new vs. returning users is a primary cause of inflated ROAS metrics that do not drive incremental growth.<sup>7</sup>
62
-
63
- ### 2.3 Ad Rank and Quality Score in 2026
64
-
65
- The Ad Rank formula remains the core sorting mechanism: **Ad Rank = CPC Bid x Quality Score**. However, the weighting of Quality Score components has shifted significantly in 2026.<sup>11</sup>
66
-
67
- **The 2026 Quality Score Formula:**
68
-
69
- While the exact weights are proprietary, 2026 research indicates the following priority hierarchy:
70
-
71
- 1. **Expected Click-Through Rate (CTR):** The heaviest weighted component. It signals user satisfaction and relevance to the query.
72
- 2. **Landing Page Experience:** Critical for AI Overviews. Factors include Core Web Vitals (speed < 2s), mobile responsiveness, and semantic clarity.<sup>7</sup>
73
- 3. **Ad Relevance:** Measures how well the ad copy answers the user's intent.
74
-
75
- **Audit Calculation:**
76
-
77
- The *claude-ads* tool should approximate Ad Rank health by pulling the 1-10 Quality Score for all keywords.
78
-
79
- - **Score < 5:** Critical Warning (Wasting budget due to high CPC penalty).
80
- - **Score 5-7:** Warning (Optimization opportunity).
81
- - **Score 8-10:** Healthy.
82
- - *Formula:* Actual CPC = (Ad Rank of Advertiser Below / Your Quality Score) + $0.01.<sup>11</sup> This formula demonstrates that increasing Quality Score is the only mathematically viable way to lower costs while maintaining position.
83
-
84
- ### 2.4 Google Ads API v23 Integration
85
-
86
- The v23 update (January 2026) introduced critical capabilities for auditing and optimization. Developers must upgrade client libraries to utilize these features.<sup>13</sup>
87
-
88
- **Key API Features for Auditing:**
89
-
90
- - **Granular Invoice Details:** InvoiceService.ListInvoices now returns campaign-level cost breakdowns, enabling precise margin analysis at the billing level.<sup>13</sup>
91
- - **Share of Voice (SOV) in PMax:** New metrics for impression share lost to budget/rank in PMax are available via the API. This allows the tool to diagnose whether a campaign needs creative optimization (rank) or more money (budget).<sup>10</sup>
92
- - **Ad Strength Diagnostic:** The API now provides specific "Good" or "Excellent" ratings for RSA assets. The tool should enforce a policy where no ad group runs with "Poor" ad strength.<sup>14</sup>
93
- - **Campaign Scheduling:** New fields Campaign.start\_date\_time and Campaign.end\_date\_time allow for precise scheduling down to the minute, essential for "flash sale" automations.<sup>13</sup>
94
-
95
- ---
96
-
97
- ## Section 3: Meta Ads: The Andromeda Engine & Advantage+
98
-
99
- ### 3.1 The Andromeda Algorithm Update
100
-
101
- Meta's 2025/2026 infrastructure update, codenamed "Andromeda," has shifted the ad retrieval engine from a simple auction to a complex AI-driven matching system. Andromeda utilizes massive parallel computing to reconstruct latent user-ad interaction signals on the fly, optimizing for "creative portfolios" rather than single ads.<sup>4</sup>
102
-
103
- **Operational Shift:**
104
-
105
- - **Breathing Room:** The old rule of "3-5 ads per ad set" is obsolete. Andromeda requires larger creative volume to function effectively. It allows for higher ad counts per ad set because it can dynamically allocate budget to the specific asset that matches a user's momentary context.<sup>4</sup>
106
- - **Creative as Targeting:** The creative *is* the targeting. Broad targeting (no interests, no lookalikes) combined with specific creative angles allows Andromeda to find the audience based on who engages with the content.<sup>15</sup> The algorithm uses the visual and semantic data within the ad to determine who to show it to.
107
-
108
- ### 3.2 Account Structure: The "3-Stage" System
109
-
110
- The *claude-ads* tool should enforce a consolidated account structure to maximize signal density for Andromeda. The traditional "testing campaign" with many ad sets is replaced by a more streamlined flow <sup>15</sup>:
111
-
112
- 1. **Testing Campaign (ABO):** A single campaign for testing new concepts. It can handle multiple batches of concepts in a single ad set.
113
- 2. **Challenger ASC (Advantage+ Shopping Campaign):** A dedicated campaign for "graduating" winners. This prevents new winners from being starved of budget by legacy winners in the core campaign. It forces the system to give the new winner a fair shot.
114
- 3. **Core / Evergreen Campaign (CBO):** The home for proven, scalable assets that have survived the Challenger phase.
115
-
116
- **Red Flag Logic for Audits:**
117
-
118
- - **Fragmentation:** Flag accounts with >5 active campaigns targeting the same country/funnel stage. This fragments data and prevents Andromeda from learning effectively.<sup>16</sup>
119
- - **Audience Overlap:** Flag ad sets with high auction overlap rates, as this forces the advertiser to bid against themselves.
120
-
121
- ### 3.3 Creative Signals & "Social-Native" Content
122
-
123
- Meta explicitly rewards "social-native" content--ads that look like organic user posts. The algorithm favors vertical, raw content that feels like a friend's story.<sup>15</sup>
124
-
125
- **Audit Criteria for Creative:**
126
-
127
- - **Visual Signals:** The tool should analyze asset metadata for 9:16 aspect ratios. Handheld camera movement, selfie POV, native text overlays, and "lo-fi" production values are positive signals.<sup>15</sup>
128
- - **Hook Rate:** The first 3 seconds are critical. The API now provides a Reels Skip Rate metric. The tool should audit videos with >50% skip rates in the first 3 seconds and flag them for creative refresh.<sup>17</sup>
129
- - **Organic Boosting:** The most effective strategy in 2026 is identifying top-performing organic Instagram Reels and promoting them via partnership ads. This carries over the social proof (likes/comments), which acts as a quality signal in the auction.<sup>15</sup>
130
-
131
- ### 3.4 Meta Marketing API Best Practices
132
-
133
- - **Rate Limits:** Meta enforces strict rate limits calculated on a rolling 1-hour window. The tool must implement **exponential backoff** strategies when receiving error codes 613 or 80004 to avoid suspension.<sup>18</sup>
134
- - **Insights API:** Use the Insights endpoint to pull video\_avg\_time\_watched\_actions and outbound\_clicks to correlate engagement with conversion.<sup>17</sup>
135
- - **CAPI Health:** The "Event Match Quality" (EMQ) score is the north star for tracking. The tool must query the EMQ score for the Purchase event. A score below **7.0/10** indicates severe data loss and should trigger a high-priority alert.<sup>19</sup>
136
-
137
- ---
138
-
139
- ## Section 4: TikTok Ads: Commerce & Search Integration
140
-
141
- ### 4.1 TikTok as a Search Engine
142
-
143
- By 2026, TikTok has solidified its position as a primary search engine for Gen Z. The "Search Ads Toggle" in campaigns allows ads to appear in search results, capturing high-intent traffic.<sup>20</sup>
144
-
145
- **Strategy & Audit:** Advertisers must treat TikTok captions like SEO meta descriptions. High-intent keywords (e.g., "best acne cream 2026") must be integrated into the video text overlays and captions to trigger search ad placements. The tool should verify that the "Search Ads Toggle" is **ON** for all campaigns. Data suggests a 70% stronger CPA for ad groups with this toggle enabled.<sup>20</sup>
146
-
147
- ### 4.2 Smart+ Campaigns & Automation
148
-
149
- TikTok's "Smart+" campaigns (similar to Meta's Advantage+) automate targeting, bidding, and creative selection. This campaign type uses machine learning to predict which user is most likely to convert.<sup>21</sup>
150
-
151
- **Optimization Logic:**
152
-
153
- - **Creative Fatigue:** Smart+ rotates creatives rapidly. The tool should monitor the "Lifespan" of ads. If a creative has been active for >7 days with declining CTR, it should be flagged for replacement.<sup>21</sup>
154
- - **Creative Quantity:** Best practice dictates uploading at least **6 creative assets** per ad group to allow the system to optimize effectively.<sup>21</sup>
155
-
156
- ### 4.3 TikTok Shop Integration
157
-
158
- For e-commerce, TikTok Shop is the primary conversion engine. Integrating Video Shopping Ads (VSA) allows users to purchase directly without leaving the app, reducing friction.
159
-
160
- - **Audit Check:** The tool should audit whether the account is utilizing "Spark Ads" linked to creator profiles. Spark Ads typically outperform non-Spark ads because they leverage the creator's native authority and profile linkage.<sup>23</sup>
161
-
162
- ### 4.4 API Rate Limits & Engineering
163
-
164
- TikTok's API is stricter than Meta's, requiring careful engineering for the CLI tool.
165
-
166
- - **Rate Limit:** 600 requests per minute for core endpoints (/v2/ad/query/).<sup>24</sup>
167
- - **Throttling:** The tool must respect HTTP 429 responses and implement a queueing system to manage requests across multiple client accounts. It must handle error codes like rate\_limit\_exceeded gracefully by waiting for the Retry-After duration.<sup>24</sup>
168
-
169
- ---
170
-
171
- ## Section 5: LinkedIn Ads: The B2B Trust Engine
172
-
173
- ### 5.1 Thought Leader Ads (TLA)
174
-
175
- Thought Leader Ads are the dominant format for B2B in 2026. These allow companies to sponsor posts from their executives' or employees' personal profiles, leveraging the trust of individuals over corporate brands.
176
-
177
- - **Performance:** TLAs deliver **1.7x higher CTR** and **1.6x more engagement** than standard single-image company ads.<sup>25</sup>
178
- - **Cost Efficiency:** They can achieve CPCs as low as **$4.14** compared to **$22+** for standard brand campaigns.<sup>25</sup>
179
- - **Strategy:** The *claude-ads* tool should recommend allocating 30% of the budget to TLAs for "humanizing" the brand and building trust at the top of the funnel.
180
-
181
- ### 5.2 Conversation Ads vs. Message Ads
182
-
183
- - **Conversation Ads:** Interactive, "choose-your-own-path" messages. They achieve a **12% CTR** on average. These are best for complex offers where the user needs to self-qualify (e.g., "Which challenge are you facing? -> Here is a specific whitepaper").<sup>27</sup>
184
- - **Message Ads:** Linear, single-CTA messages. Best for direct event invites or simple announcements.
185
- - **Frequency Cap:** LinkedIn enforces a strict frequency cap (1 message per 30-45 days per user). The tool must track "Frequency" carefully; bidding aggressively (CPS - Cost Per Send) is recommended to win the auction for the user's limited inbox slot.<sup>27</sup>
186
-
187
- ### 5.3 Benchmarks & Bidding
188
-
189
- - **CPC:** High. $13.23 for single image ads vs. $2.29 for Thought Leader Ads.<sup>25</sup>
190
- - **CTR:** The benchmark for Sponsored Content is **0.44% - 0.65%**. Anything above 1% is exceptional.<sup>28</sup>
191
- - **Ad Format ROI:** Video ads have the lowest efficiency score (1.5), while TLAs have the highest (9.5).<sup>25</sup>
192
-
193
- ---
194
-
195
- ## Section 6: Microsoft Ads & Copilot
196
-
197
- ### 6.1 Performance Max & Copilot Integration
198
-
199
- Microsoft's PMax inventory now includes Copilot chat sessions. Ads displayed in Copilot chat have shown a **63% increase in conversion rates** compared to standard search ads.<sup>29</sup> This high intent makes Microsoft Ads a critical component of a holistic strategy.
200
-
201
- - **New Customer Acquisition:** Microsoft introduced a specific goal to "Target New Customers" in PMax (Beta in 2026). The tool should check if this setting is enabled for growth-focused accounts to ensure budget isn't wasted on retargeting.<sup>10</sup>
202
- - **Asset Imports:** Microsoft allows direct import of PMax campaigns from Google Ads. The tool should validate that asset group settings (especially URL options) transferred correctly, as these often break during import.<sup>10</sup>
203
-
204
- ---
205
-
206
- ## Section 7: Cross-Platform Benchmarks 2026
207
-
208
- To provide actionable "Pass/Fail" grading in the *claude-ads* tool, we must establish baseline metrics. The following table aggregates data from multiple 2026 industry reports to serve as the standard for performance auditing.
209
-
210
- | Metric | E-Commerce | B2B SaaS | Legal | Finance | Healthcare | Local Services |
211
- |---|---|---|---|---|---|---|
212
- | **Google Search CTR** | 4.13% | 4.28% | 5.20% | 4.65% | 4.90% | 5.50% |
213
- | **Google Search CPC** | $1.15 | $4.50 | $750+ | $900+ | $40+ | $15 - $30 |
214
- | **Google Search CVR** | 2.81% | 1.65% | 4.60% | 3.50% | 3.10% | 15.0% |
215
- | **Meta Ads CTR** | 1.38% | 0.90% | 0.85% | 0.70% | 1.10% | 1.50% |
216
- | **Meta Ads CPM** | $12.50 | $35.00 | $45.00 | $50.00 | $28.00 | $18.00 |
217
- | **LinkedIn CPC** | N/A | $13.23 | $25.00 | $35.00 | N/A | N/A |
218
- | **LinkedIn CTR** | N/A | 0.56% | 0.45% | 0.40% | N/A | N/A |
219
- | **TikTok Ads CPM** | $3.21 | $8.00 | N/A | N/A | N/A | $5.00 |
220
- | **ROAS Benchmark** | 4.0x - 7.5x | N/A | 3.0x | 3.5x | 2.8x | 5.0x |
221
-
222
- Data Sources: <sup>16</sup>
223
-
224
- **Analysis of Benchmarks:**
225
-
226
- - **High-Cost Verticals:** The Legal and Finance sectors have decoupled from standard PPC economics, with CPCs exceeding $750 and even $900 for high-intent terms like "Life Insurance Quotes".<sup>31</sup> For these industries, the audit must focus on **Lead Quality** and **Offline Conversion Import (OCI)** rather than CPC efficiency. A $900 click is acceptable if the case value is $50,000.
227
- - **E-Commerce Efficiency:** Meta Ads maintain a high ROAS potential (7.5x) for e-commerce, driven by the efficiency of Advantage+ Shopping Campaigns (ASC).<sup>16</sup>
228
- - **SaaS Realities:** B2B SaaS faces high LinkedIn CPCs ($13.23), meaning conversion rates must be optimized heavily at the landing page level to make the economics work.
229
-
230
- ---
231
-
232
- ## Section 8: The Universal Ad Account Audit Framework
233
-
234
- This framework defines the logic *claude-ads* will use to score accounts. It uses a weighted scoring system (Total Score: 100) to provide a single "health score" for any ad account.
235
-
236
- ### 8.1 Category A: Conversion Data Hygiene (Weight: 25%)
237
-
238
- - **Check 1:** Are "Enhanced Conversions" enabled? (Pass/Fail).<sup>6</sup>
239
- - **Check 2:** Is Server-Side Tracking (CAPI/OCI) active? (Pass/Fail).<sup>33</sup>
240
- - **Check 3:** Are "Micro-Conversions" (e.g., Add to Cart, Time on Site) separated from "Primary Conversions" in bidding goals? (Pass/Fail). *Logic: Mixing these confuses the Smart Bidding algorithm.*
241
- - **Check 4:** Is the "New Customer" value rule applied? (Pass/Fail).<sup>7</sup>
242
-
243
- ### 8.2 Category B: Account Structure & Bidding (Weight: 20%)
244
-
245
- - **Check 1:** Is Broad Match used *only* with Smart Bidding? (Pass/Fail). *Logic: Broad + Manual CPC = Fail.*
246
- - **Check 2:** Is the account utilizing Portfolio Bid Strategies? (Pass/Fail).<sup>33</sup> *Logic: Portfolios share data across campaigns, accelerating the learning phase.*
247
- - **Check 3:** Are there >5 active campaigns per funnel stage? (Pass/Fail). *Logic: Fragmentation dilutes data. Score down if True.*
248
- - **Check 4:** Are "Brand" and "Non-Brand" traffic separated? (Pass/Fail). *Logic: Essential for accurate ROAS measurement.*
249
-
250
- ### 8.3 Category C: Creative Diversity & Health (Weight: 25%)
251
-
252
- - **Check 1:** (Meta) Does the account have >3 distinct creative formats (Static, Video, Carousel) active? (Pass/Fail).<sup>15</sup>
253
- - **Check 2:** (Google) Do PMax asset groups have vertical (9:16) video assets? (Pass/Fail).<sup>7</sup>
254
- - **Check 3:** Ad Strength Check: What % of ads are "Poor"? *Logic: If >10% = Fail.*
255
- - **Check 4:** Creative Fatigue: Are any active ads showing a CTR drop of >30% over the last 14 days? (Pass/Fail).
256
-
257
- ### 8.4 Category D: Targeting & Exclusions (Weight: 15%)
258
-
259
- - **Check 1:** Are Account-Level Placement Exclusions applied? (Pass/Fail). *Logic: Must exclude "Games," "Apps," and known MFA (Made-For-Advertising) sites..*<sup>34</sup>
260
- - **Check 2:** Are Customer Match lists uploaded and refreshed in the last 30 days? (Pass/Fail).<sup>7</sup>
261
- - **Check 3:** (Meta) Is Advantage+ Audience enabled? (Pass/Fail).
262
-
263
- ### 8.5 Category E: Landing Page Experience (Weight: 15%)
264
-
265
- - **Check 1:** Mobile Speed Score via PageSpeed Insights API. *Logic: If >2.0s LCP = Fail.*<sup>7</sup>
266
- - **Check 2:** Presence of valid Schema markup (Product, FAQ). (Pass/Fail).
267
- - **Check 3:** Consistency Check: Does the H1 tag match the Ad Headline? (Semantic Similarity Score).
268
-
269
- ---
270
-
271
- ## Section 9: Industry-Specific Playbooks
272
-
273
- The *claude-ads* tool should apply different optimization logic based on the user's industry.
274
-
275
- ### 9.1 B2B SaaS & High-Ticket Services
276
-
277
- - **Core Strategy:** The "SME Engine." Use LinkedIn Thought Leader Ads to distribute content from the Founder/CTO to build trust.
278
- - **Funnel Logic:**
279
- - *TOFU:* Ungated value (video snippets, frameworks) via LinkedIn/Meta Video Views.
280
- - *MOFU:* Conversation Ads or Lead Forms for "High-Intent" assets (calculators, audits).
281
- - *BOFU:* Direct demo request retargeting on Google Search (Brand + Competitor keywords).
282
- - **Key Metric:** Pipeline ROI and Lead Quality (via Offline Conversion Import), *not* CPL.
283
- - **Optimization:** Bid aggressively on "Job Title" targeting in LinkedIn; use broad targeting restricted by "Business Interest" in Meta.<sup>26</sup>
284
-
285
- ### 9.2 E-Commerce (DTC)
286
-
287
- - **Core Strategy:** The "Four Peaks" theory. Plan quarterly "peaks" (sales/events) to reset algorithmic fatigue and inject fresh data signals.<sup>15</sup>
288
- - **Funnel Logic:**
289
- - *Acquisition:* PMax (Google) + Advantage+ Shopping (Meta) + TikTok Shop VSA. Consolidate budget into one "Hero" campaign per platform.
290
- - *Retention:* Email/SMS (Klaviyo) + Customer Match retargeting for cross-sells.
291
- - **Key Metric:** MER (Marketing Efficiency Ratio) and POAS (Profit on Ad Spend).
292
- - **Optimization:** Test creative concepts in a separate campaign; graduate winners to the ASC campaign. Use "Cost Caps" to protect margins.<sup>16</sup>
293
-
294
- ### 9.3 Local Services (Lead Gen)
295
-
296
- - **Core Strategy:** Trust & Proximity. Local Service Ads (LSA) + Google Maps Ads are critical for capturing high-intent, emergency queries.
297
- - **Funnel Logic:**
298
- - *Capture:* Google LSA (Pay-per-lead). Ensure "Google Guaranteed" badge is active.
299
- - *Retargeting:* Meta/YouTube ads geographically fenced to the service area + 5 miles.
300
- - **Key Metric:** Cost Per Booked Appointment.
301
- - **Optimization:** Dispute invalid leads in LSA dashboard weekly. Sync CRM to feed "Booked" status back to Google to train Smart Bidding.<sup>7</sup>
302
-
303
- ### 9.4 Info Products & Webinars
304
-
305
- - **Core Strategy:** The "Selfie-Style" Authority. Heavy reliance on founder-led video content on Meta/YouTube to build personal connection.
306
- - **Funnel Logic:**
307
- - *Ad:* Short-form video (pain point + solution hint) ->
308
- - *Opt-in:* VSL (Video Sales Letter) or Webinar Registration ->
309
- - *Conversion:* Low-ticket Tripwire ($27-$97) to liquidate ad spend -> High-ticket upsell.
310
- - **Optimization:** Monitor "Hook Rate" (3-second view) and "Hold Rate" (ThruPlay). If Hook Rate < 30%, rewrite the script intro.<sup>15</sup>
311
-
312
- ---
313
-
314
- ## Section 10: API Engineering & Technical Implementation Guide
315
-
316
- This section outlines the specific technical requirements for the *claude-ads* CLI to interact with ad platforms safely and effectively.
317
-
318
- ### 10.1 Rate Limiting & Throttling Logic
319
-
320
- To avoid IP bans or API suspensions, the tool must implement a **Token Bucket** algorithm for rate limiting.
321
-
322
- - **Google Ads API:**
323
- - *Limit:* 15,000 operations/day (Basic Access).<sup>36</sup>
324
- - *Strategy:* Batch Mutate operations. Group up to 5,000 changes into a single request envelope. Use partial\_failure=true to prevent one error from failing the entire batch.<sup>36</sup>
325
- - **Meta Marketing API:**
326
- - *Limit:* Calculated based on ad spend and user tier (Standard vs. Advanced). Rolling 1-hour window.
327
- - *Strategy:* Check header X-Business-Use-Case-Usage. If usage > 75%, pause requests for 5 minutes. Implement exponential backoff for error 613 (Rate Limit Reached).<sup>18</sup>
328
- - **TikTok Ads API:**
329
- - *Limit:* 600 requests/minute for reporting endpoints.
330
- - *Strategy:* Strict strict client-side throttling. If HTTP 429 is received, wait X seconds (where X is defined in the Retry-After header).<sup>24</sup>
331
-
332
- ### 10.2 Authentication Best Practices
333
-
334
- - **Token Storage:** Never store Access Tokens in plain text. Use a secure vault (e.g., system keychain or encrypted local file).
335
- - **Refresh Logic:**
336
- - *Google:* Use the Refresh Token to generate a short-lived Access Token (1 hour). Handle invalid\_grant errors (revoked access) by prompting the user to re-authenticate.
337
- - *Meta:* Exchange short-lived User Tokens for Long-Lived Tokens (60 days). The tool should check token expiration on startup and warn the user if < 7 days remain.<sup>18</sup>
338
-
339
- ### 10.3 Critical Endpoints for Auditing
340
-
341
- The *claude-ads* tool should query these specific endpoints to populate the audit report:
342
-
343
- | Platform | Goal | Endpoint / Service | Field / Metric |
344
- |---|---|---|---|
345
- | **Google** | Budget Analysis | CampaignBudgetService | recommended\_budget\_amount |
346
- | **Google** | Quality Score | KeywordView | quality\_score |
347
- | **Google** | Ad Strength | AdGroupAdService | ad\_strength |
348
- | **Meta** | Ad Quality | Insights | quality\_ranking, engagement\_rate\_ranking |
349
- | **Meta** | Creative Fatigue | Insights (Time Series) | ctr (compare last 7d vs last 30d) |
350
- | **TikTok** | Account Health | Account Health | is\_restricted, policy\_violations |
351
- | **LinkedIn** | Audience Quality | AdAnalytics | demographic\_metrics (Job Title/Function) |
352
-
353
- ### 10.4 Automating Optimization (Write Operations)
354
-
355
- For the "Optimize" and "Generate" commands of the tool:
356
-
357
- - **Safe Mode:** All write operations (e.g., pausing ads, changing bids) should initially be "Dry Run" or require explicit user confirmation (y/n).
358
- - **Change History:** Log every change made by the tool to a local claude-ads.log file with timestamps and previous values. This enables a "Rollback" feature.
359
- - **Generative AI Integration:** When generating ad copy, use the platform's constraints (e.g., Google Headlines: 30 chars) as strict system prompts to the LLM to prevent API rejection errors.
360
-
361
- ---
362
-
363
- ## Conclusion
364
-
365
- The 2026 advertising landscape demands a fundamental pivot from manual granularity to strategic orchestration. The "winners" in this era are not the best keyword miners, but the best *signal architects*--those who can feed clean, high-value data into the AI engines of Google, Meta, and TikTok.
366
-
367
- For *claude-ads*, the mission is clear: automate the technical hygiene (tracking, structure, exclusions) so the human marketer can focus on the only lever that still truly matters--**creative strategy and offer development**. By adhering to the audit frameworks and API standards outlined in this report, the tool will provide defensible, high-impact value to its users.
368
-
369
- **End of Report.**
370
-
371
- ---
372
-
373
- ## Works Cited
374
-
375
- 1. Google Privacy Sandbox Is Dead: What It Means For Your Brand, accessed February 10, 2026, [https://usercentrics.com/knowledge-hub/what-is-google-privacy-sandbox/](https://usercentrics.com/knowledge-hub/what-is-google-privacy-sandbox/)
376
-
377
- 2. 7 Best Marketing Mix Modeling Software Tools of 2026 - Cometly, accessed February 10, 2026, [https://www.cometly.com/post/marketing-mix-modeling-software](https://www.cometly.com/post/marketing-mix-modeling-software)
378
-
379
- 3. Meta Ads Updates 2025: What Actually Changed (and What You Need to Know for 2026), accessed February 10, 2026, [https://www.reddit.com/r/FacebookAds/comments/1pjt6i8/meta_ads_updates_2025_what_actually_changed_and/](https://www.reddit.com/r/FacebookAds/comments/1pjt6i8/meta_ads_updates_2025_what_actually_changed_and/)
380
-
381
- 4. Meta Ads Updates: What Really Changed - Giovanni Perilli, accessed February 10, 2026, [https://giovanniperilli.com/en/blog/meta-ads-updates-what-really-changed-in-2025-and-how-to-prepare-for-2026/](https://giovanniperilli.com/en/blog/meta-ads-updates-what-really-changed-in-2025-and-how-to-prepare-for-2026/)
382
-
383
- 5. Meta Conversions API: 2026 guide - DinMo, accessed February 10, 2026, [https://www.dinmo.com/third-party-cookies/solutions/conversions-api/meta-ads/](https://www.dinmo.com/third-party-cookies/solutions/conversions-api/meta-ads/)
384
-
385
- 6. What's New in Google Ads for 2026 - MentorCruise, accessed February 10, 2026, [https://mentorcruise.com/blog/whats-new-in-google-ads-for-2026-96017/](https://mentorcruise.com/blog/whats-new-in-google-ads-for-2026-96017/)
386
-
387
- 7. Google Ads Best Practices Every Marketer Should Know (2026 Guide), accessed February 10, 2026, [https://twominutereports.com/blog/google-ads-best-practices](https://twominutereports.com/blog/google-ads-best-practices)
388
-
389
- 8. The Future of Google Ads Keywords: 6 Experts Weigh In - WordStream, accessed February 10, 2026, [https://www.wordstream.com/blog/2025-google-ads-keywords](https://www.wordstream.com/blog/2025-google-ads-keywords)
390
-
391
- 9. Key Google Ads Trends & Predictions for 2026 | WordStream, accessed February 10, 2026, [https://www.wordstream.com/blog/2026-google-ads-trends](https://www.wordstream.com/blog/2026-google-ads-trends)
392
-
393
- 10. January 2026 product updates | Microsoft Advertising, accessed February 10, 2026, [https://about.ads.microsoft.com/en/blog/post/january-2026/performance-max-updates-and-other-product-news-for-january-2026](https://about.ads.microsoft.com/en/blog/post/january-2026/performance-max-updates-and-other-product-news-for-january-2026)
394
-
395
- 11. Understanding AdRank and Quality Score | Website.com, accessed February 10, 2026, [https://www.website.com/website-builder-and-web-design/understanding-adrank-and-quality-score](https://www.website.com/website-builder-and-web-design/understanding-adrank-and-quality-score)
396
-
397
- 12. Google Ads Quality Score: How To Use it in 2026 - Store Growers, accessed February 10, 2026, [https://www.storegrowers.com/google-ads-quality-score/](https://www.storegrowers.com/google-ads-quality-score/)
398
-
399
- 13. Announcing v23 of the Google Ads API, accessed February 10, 2026, [http://ads-developers.googleblog.com/2026/01/announcing-v23-of-google-ads-api.html](http://ads-developers.googleblog.com/2026/01/announcing-v23-of-google-ads-api.html)
400
-
401
- 14. About Ad strength for responsive search ads - Google Help, accessed February 10, 2026, [https://support.google.com/google-ads/answer/9921843?hl=en](https://support.google.com/google-ads/answer/9921843?hl=en)
402
-
403
- 15. Meta Ads Best Practices to Follow in 2026 - Flighted, accessed February 10, 2026, [https://www.flighted.co/blog/meta-ads-best-practices](https://www.flighted.co/blog/meta-ads-best-practices)
404
-
405
- 16. Meta Ads Benchmarks 2026 | Enrich Labs, accessed February 10, 2026, [https://www.enrichlabs.ai/blog/meta-ads-benchmarks-2025](https://www.enrichlabs.ai/blog/meta-ads-benchmarks-2025)
406
-
407
- 17. Meta Announces Updates for the Instagram Marketing API | Social Media Today, accessed February 10, 2026, [https://www.socialmediatoday.com/news/meta-announces-updates-for-the-instagram-marketing-api/807083/](https://www.socialmediatoday.com/news/meta-announces-updates-for-the-instagram-marketing-api/807083/)
408
-
409
- 18. Meta Ads API: Complete Guide for Advertisers and Developers (2025) | AdManage.ai Blog, accessed February 10, 2026, [https://admanage.ai/blog/meta-ads-api](https://admanage.ai/blog/meta-ads-api)
410
-
411
- 19. Meta Event Match Quality Score Explained - Conversion Tracking Specialist, accessed February 10, 2026, [https://conversiontracking.io/blog/facebook-meta-event-match-quality-score](https://conversiontracking.io/blog/facebook-meta-event-match-quality-score)
412
-
413
- 20. TikTok's 5 best practices for Search ads - The Thread - Gupta Media, accessed February 10, 2026, [https://thread.guptamedia.com/p/tiktok-5-best-practices-for-search-ads](https://thread.guptamedia.com/p/tiktok-5-best-practices-for-search-ads)
414
-
415
- 21. Best practices for Smart+ Web Campaigns - TikTok For Business, accessed February 10, 2026, [https://ads.tiktok.com/help/article/best-practices-for-smart-plus-web-campaigns](https://ads.tiktok.com/help/article/best-practices-for-smart-plus-web-campaigns)
416
-
417
- 22. About Smart+ Campaigns | TikTok Ads Manager, accessed February 10, 2026, [https://ads.tiktok.com/help/article/about-smart-plus-campaign?lang=en](https://ads.tiktok.com/help/article/about-smart-plus-campaign?lang=en)
418
-
419
- 23. Complete TikTok Ads Guide 2026 | $37B Opportunity - ALM Corp, accessed February 10, 2026, [https://almcorp.com/blog/tiktok-ads-guide-2026-creator-economy-opportunity/](https://almcorp.com/blog/tiktok-ads-guide-2026-creator-economy-opportunity/)
420
-
421
- 24. Understanding TikTok API Rate Limits - TikTok for Developers, accessed February 10, 2026, [https://developers.tiktok.com/doc/tiktok-api-v2-rate-limit?enter_method=left_navigation](https://developers.tiktok.com/doc/tiktok-api-v2-rate-limit?enter_method=left_navigation)
422
-
423
- 25. LinkedIn Thought Leader Ads: The Ultimate Guide for 2026 - ZenABM, accessed February 10, 2026, [https://zenabm.com/blog/linkedin-thought-leader-ads-ultimate-guide](https://zenabm.com/blog/linkedin-thought-leader-ads-ultimate-guide)
424
-
425
- 26. LinkedIn Thought Leadership Ads Strategy | B2B Marketing 2026, accessed February 10, 2026, [https://impactable.com/the-ultimate-linkedin-thought-leadership-ads-strategy-for-b2b-marketers-2025/](https://impactable.com/the-ultimate-linkedin-thought-leadership-ads-strategy-for-b2b-marketers-2025/)
426
-
427
- 27. Linkedin Ad Benchmarks 2026 - An Always Up-to-date Guide ..., accessed February 10, 2026, [https://www.theb2bhouse.com/linkedin-ad-benchmarks/](https://www.theb2bhouse.com/linkedin-ad-benchmarks/)
428
-
429
- 28. 12 LinkedIn ad stats you need to know for 2026 | Lever Digital, accessed February 10, 2026, [https://www.leverdigital.co.uk/post/12-linkedin-ad-stats-you-need-to-know](https://www.leverdigital.co.uk/post/12-linkedin-ad-stats-you-need-to-know)
430
-
431
- 29. Performance Max updates and other updates for October - Microsoft Advertising, accessed February 10, 2026, [https://about.ads.microsoft.com/en/blog/post/october-2024/performance-max-updates-and-other-updates-for-october](https://about.ads.microsoft.com/en/blog/post/october-2024/performance-max-updates-and-other-updates-for-october)
432
-
433
- 30. Google Ads benchmarks by industry in 2026 - Usermaven, accessed February 10, 2026, [https://usermaven.com/blog/google-ads-benchmarks](https://usermaven.com/blog/google-ads-benchmarks)
434
-
435
- 31. 2026 PPC Benchmarks: CPL, CPC, ROAS, and More by Industry, accessed February 10, 2026, [https://www.webfx.com/blog/marketing/ppc-benchmarks-to-know/](https://www.webfx.com/blog/marketing/ppc-benchmarks-to-know/)
436
-
437
- 32. Top 8 Advertising Benchmarks for SaaS in 2026 | Lever Digital, accessed February 10, 2026, [https://www.leverdigital.co.uk/post/top-10-advertising-benchmarks-for-saas](https://www.leverdigital.co.uk/post/top-10-advertising-benchmarks-for-saas)
438
-
439
- 33. Google Ads 2026 Strategy & Automation for Better Performance, accessed February 10, 2026, [https://www.rebid.co/google-ads-2026-account-structure-automation/](https://www.rebid.co/google-ads-2026-account-structure-automation/)
440
-
441
- 34. Google Ads Account-Level Placement Exclusions: Complete 2026 ..., accessed February 10, 2026, [https://almcorp.com/blog/google-ads-account-level-placement-exclusions-guide/](https://almcorp.com/blog/google-ads-account-level-placement-exclusions-guide/)
442
-
443
- 35. The Local Service Ads Playbook: A No-Nonsense Guide to Google's Pay-Per-Lead Model (Updated for... - Medium, accessed February 10, 2026, [https://medium.com/@SEQ_Den/the-local-service-ads-playbook-a-no-nonsense-guide-to-googles-pay-per-lead-model-updated-for-beb8e431ce57](https://medium.com/@SEQ_Den/the-local-service-ads-playbook-a-no-nonsense-guide-to-googles-pay-per-lead-model-updated-for-beb8e431ce57)
444
-
445
- 36. Access levels and RMF | Google Ads API | Google for Developers, accessed February 10, 2026, [https://developers.google.com/google-ads/api/docs/productionize/access-levels](https://developers.google.com/google-ads/api/docs/productionize/access-levels)
@@ -1,170 +0,0 @@
1
- # IDE Capability Comparison Matrix
2
-
3
- Complete comparison of all supported IDEs. Profiles at `/packages/cli/src/core/profiles/`.
4
-
5
- ## Core Capabilities
6
-
7
- | Capability | Claude Code | Cursor | Windsurf | Codex |
8
- |---|---|---|---|---|
9
- | **File Operations** | ✅ Native tools | ✅ read_file, edit_file | ✅ Native | ⚠️ Via skills |
10
- | **Shell Execution** | ✅ Bash tool | ✅ run_terminal_cmd | ✅ run_command | ⚠️ Via sandbox |
11
- | **File Search** | ✅ Glob, Grep | ✅ codebase_search, grep_search | ✅ search_files, search_codebase | ⚠️ Via sandbox |
12
- | **Interactive Input** | ✅ Structured (AskUserQuestion) | ⚠️ Conversational | ⚠️ Conversational | ⚠️ Text-only |
13
- | **Sub-Agents** | ✅ Task tool | ✅ Async native agents | ⚠️ Cascades + chaining | ❌ Cannot nest |
14
- | **Nested Sub-Agents** | ✅ Full nesting | ✅ Full nesting | ❌ Parallel only | ❌ None |
15
-
16
- ## Planning & Execution
17
-
18
- | Capability | Claude Code | Cursor | Windsurf | Codex |
19
- |---|---|---|---|---|
20
- | **Plan Mode** | ✅ EnterPlanMode/ExitPlanMode | ✅ Native | ✅ Native + "megaplan" | ❌ None |
21
- | **Plan Editing** | ✅ User can edit | ✅ User can edit | ✅ User can edit | N/A |
22
- | **Persistent Plans** | ✅ Yes | ✅ Yes | ✅ ~/.windsurf/plans/ | N/A |
23
-
24
- ## Lifecycle & Hooks
25
-
26
- | Hook Event | Claude Code | Cursor | Windsurf | Codex |
27
- |---|---|---|---|---|
28
- | **SessionStart** | ✅ | ❌ | ❌ | ❌ |
29
- | **PreToolUse** | ✅ | ❌ | ❌ | ❌ |
30
- | **PostToolUse** | ✅ | ❌ | ❌ | ❌ |
31
- | **beforeSubmitPrompt** | ❌ | ✅ | ❌ | ❌ |
32
- | **beforeShellExecution** | ❌ | ✅ | ❌ | ❌ |
33
- | **beforeMCPExecution** | ❌ | ✅ | ❌ | ❌ |
34
- | **beforeReadFile** | ❌ | ✅ | ❌ | ❌ |
35
- | **afterFileEdit** | ❌ | ✅ | ❌ | ❌ |
36
- | **pre_read_code** | ❌ | ❌ | ✅ | ❌ |
37
- | **post_read_code** | ❌ | ❌ | ✅ | ❌ |
38
- | **pre_write_code** | ❌ | ❌ | ✅ | ❌ |
39
- | **post_write_code** | ❌ | ❌ | ✅ | ❌ |
40
- | **pre_run_command** | ❌ | ❌ | ✅ | ❌ |
41
- | **post_run_command** | ❌ | ❌ | ✅ | ❌ |
42
- | **pre_mcp_tool_use** | ❌ | ❌ | ✅ | ❌ |
43
- | **post_mcp_tool_use** | ❌ | ❌ | ✅ | ❌ |
44
- | **pre_user_prompt** | ❌ | ❌ | ✅ | ❌ |
45
- | **post_cascade_response** | ❌ | ❌ | ✅ | ❌ |
46
- | **post_setup_worktree** | ❌ | ❌ | ✅ | ❌ |
47
- | **Total Hook Events** | 5 | 6 | 11 | 0 |
48
-
49
- **Status**: SessionStart, PreToolUse, PostToolUse (Claude Code); beforeSubmitPrompt, beforeShellExecution, beforeMCPExecution, beforeReadFile, afterFileEdit (Cursor); stop hook (all IDEs)
50
-
51
- ## External Integration
52
-
53
- | Capability | Claude Code | Cursor | Windsurf | Codex |
54
- |---|---|---|---|---|
55
- | **Web Search** | ✅ WebSearch | ✅ web_search + @web | ✅ web_search | ❌ |
56
- | **Web Fetch** | ✅ WebFetch | ✅ @web + MCP | ✅ url_read, view_chunk | ❌ |
57
- | **MCP Support** | ✅ Full | ✅ Full | ✅ Full | ✅ Extension |
58
- | **MCP Tool Cap** | **0 (unlimited)** | **40** | **100** | **0 (unlimited)** |
59
- | **Browser** | ✅ Playwright MCP | ✅ Native browser (v2.0+) | ✅ Browser Preview | ⚠️ Limited |
60
-
61
- ## Collaboration & Tracking
62
-
63
- | Capability | Claude Code | Cursor | Windsurf | Codex |
64
- |---|---|---|---|---|
65
- | **Task Tracking** | ✅ TaskCreate/Update/List | ❌ Plan checklists only | ❌ Conversation-embedded | ❌ None |
66
- | **Persistent Tasks** | ✅ Yes | ❌ | ❌ | ❌ |
67
- | **Git Worktrees** | ✅ EnterWorktree | ⚠️ Background agents use branches | ✅ Native (up to 20) | ⚠️ Manual |
68
- | **Parallel Execution** | ⚠️ Sequential Tasks | ✅ Async subagents | ✅ @cascade worktrees | ❌ |
69
-
70
- ## Configuration Paths
71
-
72
- | Item | Claude Code | Cursor | Windsurf | Codex |
73
- |---|---|---|---|---|
74
- | **Config Dir** | `.claude/` | `.cursor/` | `.windsurf/` | `.codex/` |
75
- | **Commands** | `.claude/commands/agileflow/` | `.cursor/commands/` | `.windsurf/workflows/` | N/A |
76
- | **Agents** | `.claude/agents/agileflow/` | `.cursor/agents/` | N/A (use workflows) | N/A |
77
- | **Skills** | `.claude/skills/` | N/A (use agents) | `.windsurf/skills/*/` | `.codex/skills/agileflow-*/` |
78
- | **Rules** | N/A | `.cursor/rules/` (MDC) | `.windsurf/rules/` | N/A |
79
- | **Hooks Config** | `.claude/settings.json` | `.cursor/hooks.json` | `.windsurf/hooks.json` | N/A |
80
- | **MCP Config** | `.claude/settings.json` | `.cursor/mcp.json` | `~/.codeium/windsurf/mcp_config.json` | N/A |
81
- | **Instructions** | `CLAUDE.md` | `CURSOR.md` | `WINDSURF.md` | `AGENTS.md` |
82
-
83
- ## Limits & Constraints
84
-
85
- | Constraint | Claude Code | Cursor | Windsurf | Codex |
86
- |---|---|---|---|---|
87
- | **Max File Size** | Unlimited | Unlimited | Unlimited | Unlimited |
88
- | **Max Command Length** | Unlimited | Unlimited | Unlimited | Unlimited |
89
- | **Workflow Size** | N/A | N/A | **12,000 chars** | N/A |
90
- | **MCP Tools** | 0 (unlimited) | **40** | 100 | 0 (unlimited) |
91
- | **Git Worktrees** | Via tool | Via branches | Up to 20 | Manual |
92
- | **Parallel Agents** | Sequential | Unlimited | Via @cascade | No nesting |
93
-
94
- **Key constraint**: Cursor's 40-tool MCP limit is the binding constraint for multi-IDE installations.
95
-
96
- ## AgileFlow Feature Support
97
-
98
- | Feature | Claude Code | Cursor | Windsurf | Codex |
99
- |---|---|---|---|---|
100
- | **/agileflow:babysit** | ✅ Full | ⚠️ Conversational input | ⚠️ Conversational input | ❌ Limited |
101
- | **AskUserQuestion** | ✅ Structured menus | ❌ Fallback to text | ❌ Fallback to text | ✅ Text-only |
102
- | **Task delegation** | ✅ Task tool | ✅ Async agents | ⚠️ Workflow chaining | ❌ Skill suggestions |
103
- | **Plan mode hooks** | ✅ Full integration | ✅ Native mode | ✅ Native mode | ❌ None |
104
- | **Sub-agent nesting** | ✅ Full support | ✅ Full support | ⚠️ Parallel only | ❌ None |
105
- | **Persistent task list** | ✅ Yes | ❌ | ❌ | ❌ |
106
- | **Async execution** | ❌ Sequential | ✅ Native | ⚠️ @cascade | ❌ |
107
-
108
- ## Implementation Notes
109
-
110
- ### Claude Code
111
- - **Recommended target** for new AgileFlow features
112
- - All capabilities validated here first
113
- - Full support for structured user interaction
114
- - No tool limits for multi-IDE deployments
115
-
116
- ### Cursor
117
- - **Fast-follower to Claude Code** (v2.5 Feb 2026)
118
- - Async native agents eliminate need for Task tool
119
- - 40-tool MCP cap is **binding constraint** for all IDEs
120
- - No AskUserQuestion - replace with numbered text prompts
121
- - Plan mode fully native (no enter/exit needed)
122
-
123
- ### Windsurf
124
- - **Most hook events** (11 total) but most restrictive
125
- - **No true sub-agent spawning** - use workflow chaining or @cascade
126
- - **12,000 char limit per workflow** - must split large commands
127
- - **Global MCP config only** - no project-level customization
128
- - Native worktrees (up to 20)
129
- - Browser preview built-in to IDE
130
-
131
- ### Codex
132
- - **Most restrictive** - use as minimum baseline
133
- - Skills cannot spawn other skills (no delegation)
134
- - No plan mode, hooks, or task tracking
135
- - Text-only user input
136
- - Best for linear workflows only
137
-
138
- ## Multi-IDE Deployment Strategy
139
-
140
- **Canonical source**: Claude Code format
141
- **Generation**: Read IDE profile → Transform to IDE-native format
142
- **MCP constraint**: Cap at 40 tools (Cursor's limit) for consistency
143
-
144
- **Fallback order when feature unavailable**:
145
- 1. Use native IDE equivalent (if exists)
146
- 2. Replace with text-based alternative
147
- 3. Document limitation in profile
148
-
149
- **Example - AskUserQuestion replacement**:
150
- ```
151
- Claude Code:
152
- AskUserQuestion(options=[{label: "Yes"}, {label: "No"}])
153
-
154
- Cursor/Windsurf:
155
- Would you like to continue? (Type "Yes" or "No")
156
-
157
- Codex:
158
- Please choose:
159
- 1. Yes
160
- 2. No
161
- ```
162
-
163
- ## Version Support
164
-
165
- - **Claude Code**: Latest (no version pinning)
166
- - **Cursor**: v2.5+ (Feb 2026)
167
- - **Windsurf**: Wave 13+ (native worktrees, 11 hooks)
168
- - **Codex**: Latest (limited feature set)
169
-
170
- Last updated: 2026-02-20 | Source: Cross-IDE Compatibility Findings