diff --git a/apps/audit/DemoHog3001 b/apps/audit/DemoHog3001 new file mode 160000 index 00000000..e7b6b5f1 --- /dev/null +++ b/apps/audit/DemoHog3001 @@ -0,0 +1 @@ +Subproject commit e7b6b5f18a96d1b4baa69fe7cae3316c9f88395f diff --git a/apps/audit/cal-diy b/apps/audit/cal-diy new file mode 160000 index 00000000..07edb535 --- /dev/null +++ b/apps/audit/cal-diy @@ -0,0 +1 @@ +Subproject commit 07edb535e6799f6b70f463ce28a9618ce3c1b707 diff --git a/apps/audit/posthog-demo-3000 b/apps/audit/posthog-demo-3000 new file mode 160000 index 00000000..4d13907b --- /dev/null +++ b/apps/audit/posthog-demo-3000 @@ -0,0 +1 @@ +Subproject commit 4d13907b1fae767e18e9572e03d31d9159350d2d diff --git a/apps/manifest.json b/apps/manifest.json index 45a91a0f..cc6e4869 100644 --- a/apps/manifest.json +++ b/apps/manifest.json @@ -14,6 +14,13 @@ "description": "Wire Stripe + PostHog for revenue tracking", "ciCapable": true }, + { + "id": "audit", + "dir": "audit", + "label": "Audit", + "description": "Audit a project's PostHog setup", + "ciCapable": false + }, { "id": "skill", "dir": "misc", diff --git a/services/wizard-ci/utils.ts b/services/wizard-ci/utils.ts index 00ecd6cf..de40173b 100644 --- a/services/wizard-ci/utils.ts +++ b/services/wizard-ci/utils.ts @@ -167,6 +167,7 @@ export interface WizardOptions { apiKey?: string; command?: string; skillId?: string; + areas?: string; } /** @@ -194,6 +195,9 @@ export function runWizard(appPath: string, options: WizardOptions = {}): Promise if (options.skillId) { args.push(`--skill=${options.skillId}`); } + if (options.areas) { + args.push(`--areas=${options.areas}`); + } args.push("--local-mcp"); if (options.ci) { diff --git a/services/wizard-run/index.ts b/services/wizard-run/index.ts index f0cdab6c..b3342c04 100644 --- a/services/wizard-run/index.ts +++ b/services/wizard-run/index.ts @@ -112,6 +112,13 @@ async function main(): Promise { } } + // If the audit command was selected, optionally prompt for --areas + let auditAreas: string | undefined; + if (command.id === 'audit') { + const input = await prompt('Audit areas (e.g. "web analytics, feature flags") — leave blank for all: '); + if (input) auditAreas = input; + } + const scopedAppsDir = join(APPS_DIR, command.appsDir); const apps = findApps(scopedAppsDir); if (apps.length === 0) { @@ -135,6 +142,7 @@ async function main(): Promise { region: opts.region, command: commandToSubcommand(command.id), skillId, + areas: auditAreas, }); if (!result.success) {