diff --git a/docs/marketing/data/seo-geo-audit-workbook.csv b/docs/marketing/data/seo-geo-audit-workbook.csv new file mode 100644 index 0000000..52040dc --- /dev/null +++ b/docs/marketing/data/seo-geo-audit-workbook.csv @@ -0,0 +1,49 @@ +audit_id,baseline_id,experiment_id,route_role,canonical_path,target_user,query,query_cluster,surface,task_kind,evidence_fields,success_criteria,forbidden_claims,status,next_action +source_backed_assets_control_google_search_console,source_backed_assets_control,2026_q2_source_backed_assets_intent_validation,control,/product/github-repo-to-launch-package,product_marketer,GitHub repo to launch package,github_repo_to_launch_package,google_search_console,search_console_query_baseline,window_start|window_end|query|page|country|device|impressions|clicks|ctr|average_position,query_data_collected_and_mapped_to_canonical_page,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,export_14_day_search_console_query_page_metrics +source_backed_assets_control_chatgpt_search,source_backed_assets_control,2026_q2_source_backed_assets_intent_validation,control,/product/github-repo-to-launch-package,product_marketer,GitHub repo to launch package,github_repo_to_launch_package,chatgpt_search,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +source_backed_assets_control_perplexity,source_backed_assets_control,2026_q2_source_backed_assets_intent_validation,control,/product/github-repo-to-launch-package,product_marketer,GitHub repo to launch package,github_repo_to_launch_package,perplexity,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +source_backed_assets_control_google_ai_overview,source_backed_assets_control,2026_q2_source_backed_assets_intent_validation,control,/product/github-repo-to-launch-package,product_marketer,GitHub repo to launch package,github_repo_to_launch_package,google_ai_overview,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +source_backed_assets_control_gemini,source_backed_assets_control,2026_q2_source_backed_assets_intent_validation,control,/product/github-repo-to-launch-package,product_marketer,GitHub repo to launch package,github_repo_to_launch_package,gemini,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +source_backed_assets_control_claude,source_backed_assets_control,2026_q2_source_backed_assets_intent_validation,control,/product/github-repo-to-launch-package,product_marketer,GitHub repo to launch package,github_repo_to_launch_package,claude,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +source_backed_assets_variant_google_search_console,source_backed_assets_variant,2026_q2_source_backed_assets_intent_validation,variant,/product/source-backed-launch-assets,product_marketer,source backed launch assets,source_backed_launch_assets,google_search_console,search_console_query_baseline,window_start|window_end|query|page|country|device|impressions|clicks|ctr|average_position,query_data_collected_and_mapped_to_canonical_page,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,export_14_day_search_console_query_page_metrics +source_backed_assets_variant_chatgpt_search,source_backed_assets_variant,2026_q2_source_backed_assets_intent_validation,variant,/product/source-backed-launch-assets,product_marketer,source backed launch assets,source_backed_launch_assets,chatgpt_search,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +source_backed_assets_variant_perplexity,source_backed_assets_variant,2026_q2_source_backed_assets_intent_validation,variant,/product/source-backed-launch-assets,product_marketer,source backed launch assets,source_backed_launch_assets,perplexity,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +source_backed_assets_variant_google_ai_overview,source_backed_assets_variant,2026_q2_source_backed_assets_intent_validation,variant,/product/source-backed-launch-assets,product_marketer,source backed launch assets,source_backed_launch_assets,google_ai_overview,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +source_backed_assets_variant_gemini,source_backed_assets_variant,2026_q2_source_backed_assets_intent_validation,variant,/product/source-backed-launch-assets,product_marketer,source backed launch assets,source_backed_launch_assets,gemini,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +source_backed_assets_variant_claude,source_backed_assets_variant,2026_q2_source_backed_assets_intent_validation,variant,/product/source-backed-launch-assets,product_marketer,source backed launch assets,source_backed_launch_assets,claude,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +readme_cards_control_google_search_console,readme_cards_control,2026_q2_readme_cards_intent_validation,control,/product/github-repo-to-launch-package,design_lead,GitHub repo to launch package,github_repo_to_launch_package,google_search_console,search_console_query_baseline,window_start|window_end|query|page|country|device|impressions|clicks|ctr|average_position,query_data_collected_and_mapped_to_canonical_page,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,export_14_day_search_console_query_page_metrics +readme_cards_control_chatgpt_search,readme_cards_control,2026_q2_readme_cards_intent_validation,control,/product/github-repo-to-launch-package,design_lead,GitHub repo to launch package,github_repo_to_launch_package,chatgpt_search,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +readme_cards_control_perplexity,readme_cards_control,2026_q2_readme_cards_intent_validation,control,/product/github-repo-to-launch-package,design_lead,GitHub repo to launch package,github_repo_to_launch_package,perplexity,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +readme_cards_control_google_ai_overview,readme_cards_control,2026_q2_readme_cards_intent_validation,control,/product/github-repo-to-launch-package,design_lead,GitHub repo to launch package,github_repo_to_launch_package,google_ai_overview,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +readme_cards_control_gemini,readme_cards_control,2026_q2_readme_cards_intent_validation,control,/product/github-repo-to-launch-package,design_lead,GitHub repo to launch package,github_repo_to_launch_package,gemini,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +readme_cards_control_claude,readme_cards_control,2026_q2_readme_cards_intent_validation,control,/product/github-repo-to-launch-package,design_lead,GitHub repo to launch package,github_repo_to_launch_package,claude,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +readme_cards_variant_google_search_console,readme_cards_variant,2026_q2_readme_cards_intent_validation,variant,/product/readme-marketing-cards,design_lead,README marketing cards,readme_marketing_cards,google_search_console,search_console_query_baseline,window_start|window_end|query|page|country|device|impressions|clicks|ctr|average_position,query_data_collected_and_mapped_to_canonical_page,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,export_14_day_search_console_query_page_metrics +readme_cards_variant_chatgpt_search,readme_cards_variant,2026_q2_readme_cards_intent_validation,variant,/product/readme-marketing-cards,design_lead,README marketing cards,readme_marketing_cards,chatgpt_search,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +readme_cards_variant_perplexity,readme_cards_variant,2026_q2_readme_cards_intent_validation,variant,/product/readme-marketing-cards,design_lead,README marketing cards,readme_marketing_cards,perplexity,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +readme_cards_variant_google_ai_overview,readme_cards_variant,2026_q2_readme_cards_intent_validation,variant,/product/readme-marketing-cards,design_lead,README marketing cards,readme_marketing_cards,google_ai_overview,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +readme_cards_variant_gemini,readme_cards_variant,2026_q2_readme_cards_intent_validation,variant,/product/readme-marketing-cards,design_lead,README marketing cards,readme_marketing_cards,gemini,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +readme_cards_variant_claude,readme_cards_variant,2026_q2_readme_cards_intent_validation,variant,/product/readme-marketing-cards,design_lead,README marketing cards,readme_marketing_cards,claude,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +cold_start_materials_control_google_search_console,cold_start_materials_control,2026_q2_cold_start_materials_intent_validation,control,/product/github-repo-to-launch-package,ai_project_builder,GitHub repo to launch package,github_repo_to_launch_package,google_search_console,search_console_query_baseline,window_start|window_end|query|page|country|device|impressions|clicks|ctr|average_position,query_data_collected_and_mapped_to_canonical_page,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,export_14_day_search_console_query_page_metrics +cold_start_materials_control_chatgpt_search,cold_start_materials_control,2026_q2_cold_start_materials_intent_validation,control,/product/github-repo-to-launch-package,ai_project_builder,GitHub repo to launch package,github_repo_to_launch_package,chatgpt_search,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +cold_start_materials_control_perplexity,cold_start_materials_control,2026_q2_cold_start_materials_intent_validation,control,/product/github-repo-to-launch-package,ai_project_builder,GitHub repo to launch package,github_repo_to_launch_package,perplexity,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +cold_start_materials_control_google_ai_overview,cold_start_materials_control,2026_q2_cold_start_materials_intent_validation,control,/product/github-repo-to-launch-package,ai_project_builder,GitHub repo to launch package,github_repo_to_launch_package,google_ai_overview,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +cold_start_materials_control_gemini,cold_start_materials_control,2026_q2_cold_start_materials_intent_validation,control,/product/github-repo-to-launch-package,ai_project_builder,GitHub repo to launch package,github_repo_to_launch_package,gemini,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +cold_start_materials_control_claude,cold_start_materials_control,2026_q2_cold_start_materials_intent_validation,control,/product/github-repo-to-launch-package,ai_project_builder,GitHub repo to launch package,github_repo_to_launch_package,claude,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +cold_start_materials_variant_google_search_console,cold_start_materials_variant,2026_q2_cold_start_materials_intent_validation,variant,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,google_search_console,search_console_query_baseline,window_start|window_end|query|page|country|device|impressions|clicks|ctr|average_position,query_data_collected_and_mapped_to_canonical_page,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,export_14_day_search_console_query_page_metrics +cold_start_materials_variant_chatgpt_search,cold_start_materials_variant,2026_q2_cold_start_materials_intent_validation,variant,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,chatgpt_search,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +cold_start_materials_variant_perplexity,cold_start_materials_variant,2026_q2_cold_start_materials_intent_validation,variant,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,perplexity,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +cold_start_materials_variant_google_ai_overview,cold_start_materials_variant,2026_q2_cold_start_materials_intent_validation,variant,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,google_ai_overview,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +cold_start_materials_variant_gemini,cold_start_materials_variant,2026_q2_cold_start_materials_intent_validation,variant,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,gemini,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +cold_start_materials_variant_claude,cold_start_materials_variant,2026_q2_cold_start_materials_intent_validation,variant,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,claude,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +launch_materials_map_control_google_search_console,launch_materials_map_control,2026_q2_launch_materials_map_intent_validation,control,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,google_search_console,search_console_query_baseline,window_start|window_end|query|page|country|device|impressions|clicks|ctr|average_position,query_data_collected_and_mapped_to_canonical_page,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,export_14_day_search_console_query_page_metrics +launch_materials_map_control_chatgpt_search,launch_materials_map_control,2026_q2_launch_materials_map_intent_validation,control,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,chatgpt_search,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +launch_materials_map_control_perplexity,launch_materials_map_control,2026_q2_launch_materials_map_intent_validation,control,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,perplexity,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +launch_materials_map_control_google_ai_overview,launch_materials_map_control,2026_q2_launch_materials_map_intent_validation,control,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,google_ai_overview,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +launch_materials_map_control_gemini,launch_materials_map_control,2026_q2_launch_materials_map_intent_validation,control,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,gemini,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +launch_materials_map_control_claude,launch_materials_map_control,2026_q2_launch_materials_map_intent_validation,control,/product/cold-start-launch-materials,ai_project_builder,cold start launch materials,cold_start_launch_materials,claude,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +launch_materials_map_variant_google_search_console,launch_materials_map_variant,2026_q2_launch_materials_map_intent_validation,variant,/product/github-repo-launch-materials-map,ai_project_builder,GitHub repo launch materials map,github_repo_launch_materials_map,google_search_console,search_console_query_baseline,window_start|window_end|query|page|country|device|impressions|clicks|ctr|average_position,query_data_collected_and_mapped_to_canonical_page,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,export_14_day_search_console_query_page_metrics +launch_materials_map_variant_chatgpt_search,launch_materials_map_variant,2026_q2_launch_materials_map_intent_validation,variant,/product/github-repo-launch-materials-map,ai_project_builder,GitHub repo launch materials map,github_repo_launch_materials_map,chatgpt_search,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +launch_materials_map_variant_perplexity,launch_materials_map_variant,2026_q2_launch_materials_map_intent_validation,variant,/product/github-repo-launch-materials-map,ai_project_builder,GitHub repo launch materials map,github_repo_launch_materials_map,perplexity,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +launch_materials_map_variant_google_ai_overview,launch_materials_map_variant,2026_q2_launch_materials_map_intent_validation,variant,/product/github-repo-launch-materials-map,ai_project_builder,GitHub repo launch materials map,github_repo_launch_materials_map,google_ai_overview,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +launch_materials_map_variant_gemini,launch_materials_map_variant,2026_q2_launch_materials_map_intent_validation,variant,/product/github-repo-launch-materials-map,ai_project_builder,GitHub repo launch materials map,github_repo_launch_materials_map,gemini,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors +launch_materials_map_variant_claude,launch_materials_map_variant,2026_q2_launch_materials_map_intent_validation,variant,/product/github-repo-launch-materials-map,ai_project_builder,GitHub repo launch materials map,github_repo_launch_materials_map,claude,ai_answer_audit,audit_date|mentioned|cited|source_url|answer_summary|accuracy_status|competitors_cited|forbidden_claims_observed,answer_mentions_or_omits_quickfork_without_forbidden_claims,pricing|rankings|revenue|customer_count|conversion_lift|product_hunt_outcome|guaranteed_launch|validated_ai_citation,pending,run_prompt_and_record_mention_citation_accuracy_and_competitors diff --git a/docs/marketing/research/2026-06-03-seo-geo-evidence-workbook.md b/docs/marketing/research/2026-06-03-seo-geo-evidence-workbook.md new file mode 100644 index 0000000..4ceef03 --- /dev/null +++ b/docs/marketing/research/2026-06-03-seo-geo-evidence-workbook.md @@ -0,0 +1,91 @@ +# 2026-06-03 SEO/GEO Evidence Workbook Research Note + +## Summary + +The SEO/GEO evidence workbook turns QuickFork's registered Search/AI baseline prompts into a concrete audit queue. Each baseline row expands into one Google Search Console task and five AI-answer audit tasks across ChatGPT Search, Perplexity, Google AI Overview, Gemini, and Claude. + +This is a measurement slice, not SEO/GEO validation. + +## Why This Slice Matters + +- QuickFork now has multiple published product, use-case, resource, tool, and example routes, but the active experiments still have `pending_evidence`. +- Search Console exports and AI-answer audits are manual enough that evidence can drift unless the exact route, query, surface, required fields, and forbidden claims are fixed. +- A supervisor-grade workbook lets growth reviewers audit the same experiment contract across GA4, Search Console, and answer-engine surfaces before choosing the next landing page or product slice. +- This supports the current P0 priority: collect evidence before scaling more pages. + +## Target User + +- SEO/GEO supervisor reviewing whether QuickFork is indexable, extractable, and accurately summarized. +- Growth operator collecting route-level Search Console and AI-answer evidence. +- Product marketer deciding whether a page promise deserves more content, product, or paid-package investment. + +## Lifecycle Position + +- Discovery: query clusters and AI prompts are fixed by the Search/AI baseline contract. +- Validation: workbook rows specify the evidence needed before route comparisons can be decided. +- Activation: workbook decisions must be read alongside generation, artifact export, and launch materials map copy behavior. +- Monetization: paid package decisions still require lead quality and willingness-to-pay evidence. + +## Growth Contract + +Primary metric: + +- Completion of Search Console and AI-answer audit rows for each active experiment that requires search or AI evidence. + +Supporting metrics: + +- `page_view`, `cta_clicked`, `generation_started`, `generation_completed`, and `generation_failed` over the same 14-day window. +- `launch_materials_map_copied` for `2026_q2_launch_materials_map_intent_validation`. +- Lead-quality fields for full launch package requests when bottom-funnel pages are involved. + +Guardrails: + +- Do not treat workbook rows, prompt coverage, or page publication as search demand. +- Do not claim ranking wins, AI citations, revenue, customer count, conversion lift, Product Hunt results, guaranteed launches, or pricing validation. +- Keep the workbook PII-free: no raw emails, raw repo content, source notes, private launch notes, tokens, secrets, raw artifact bodies, or customer proof. + +## Implemented Surface + +- `src/marketing/seo-geo-audit-workbook.ts` +- `src/marketing/seo-geo-audit-workbook.test.ts` +- `docs/marketing/data/seo-geo-audit-workbook.csv` +- `docs/superpowers/plans/2026-06-03-seo-geo-evidence-workbook.md` + +## Workbook Contract + +Every Search/AI baseline row now produces six audit rows: + +- `google_search_console`: collect `window_start`, `window_end`, `query`, `page`, `country`, `device`, `impressions`, `clicks`, `ctr`, and `average_position`. +- `chatgpt_search`, `perplexity`, `google_ai_overview`, `gemini`, and `claude`: collect `audit_date`, `mentioned`, `cited`, `source_url`, `answer_summary`, `accuracy_status`, `competitors_cited`, and `forbidden_claims_observed`. + +The workbook keeps each row tied to: + +- Baseline id. +- Experiment id. +- Control or variant role. +- Canonical path. +- Target user. +- Query cluster. +- Surface. +- Expected terms. +- Forbidden claims. +- Pending status and next action. + +## Current Verification + +- RED test failed first because `src/marketing/seo-geo-audit-workbook.ts` did not exist. +- GREEN focused verification passed after adding the module and CSV mirror: `npm test -- src/marketing/seo-geo-audit-workbook.test.ts` returned 1 file passed and 5 tests passed. +- Related verification passed: `npm test -- src/marketing/seo-geo-audit-workbook.test.ts src/marketing/search-ai-baseline.test.ts src/marketing/growth-experiment-report.test.ts` returned 3 files passed and 21 tests passed. +- Initial full `npm test` attempts with the default forks pool hit Vitest worker startup timeouts in this local environment. +- Targeted reruns of the affected files passed, including `npm test -- src/App.test.tsx -t "keeps the generator studio|full launch package contact|landing architecture"` and `npm test -- src/server/marketing/launch-package-fit.test.ts`. +- Full verification passed with threads pool: `npm test -- --testTimeout=30000 --pool=threads` returned 25 files passed and 168 tests passed. +- Build verification passed: `npm run build` completed TypeScript build and Vite production build. +- Diff hygiene passed: `git diff --check` returned no whitespace errors. + +## Decision + +Treat the workbook as P0 measurement infrastructure. It makes SEO/GEO evidence collection executable, but it does not prove indexed demand, answer-engine citation, activation quality, lead quality, or willingness to pay. + +## Next Validation Step + +Use the workbook to collect 14-day Search Console and AI-answer evidence for the active validation experiments, then fill `docs/marketing/data/growth-experiment-evidence.csv` and decide whether each page should be promoted, rewritten, consolidated, or paused. diff --git a/docs/marketing/research/2026-06-03-sites-output-enablement.md b/docs/marketing/research/2026-06-03-sites-output-enablement.md new file mode 100644 index 0000000..887567f --- /dev/null +++ b/docs/marketing/research/2026-06-03-sites-output-enablement.md @@ -0,0 +1,45 @@ +# Sites Output Enablement + +Date: 2026-06-03 + +## Hypothesis + +If QuickFork exposes Sites as part of the launch package, founders, open-source maintainers, and DevRel operators can turn the same repository evidence into a reviewable site/page spine instead of treating launch output as only README, deck, social, visual, and outreach files. + +## Lifecycle Stage + +- Stage: Activation to monetization. +- Target user: AI/devtool builders, open-source maintainers, technical founders, and DevRel operators preparing a public launch. +- Product surface: generated launch brief, studio output presets, and full launch package qualification form. +- CTA: generate a similar launch package or request a reviewed full launch package. +- Primary metric: `launch_artifact_copied` or `launch_artifact_downloaded` where `artifact_type=site`; `sales_contact_requested` with package scope including `sites`. +- Guardrail metric: no raw README text, artifact body, email, token, secret, unsupported customer proof, ranking, revenue, or guaranteed-growth claim in browser analytics. + +## Change + +- Added `site` as a generated launch materials channel. +- Added a source-backed "Launch site page spine" export artifact. +- Added a Sites output preset for the studio. +- Added Sites to full launch package qualification scope. +- Kept Sites as a reviewable page spine, not automatic public publishing. + +## Evidence Observed + +- RED generation test failed first because the launch brief did not include the site channel. +- RED App tests failed first because the studio and contact scope form did not expose Sites. +- Focused GREEN verification passed after implementation: + - `npm test -- src/server/generation/generation.test.ts -t "source-backed free repo launch brief"` + - `npm test -- src/App.test.tsx -t "keeps the generator studio|full launch package contact"` + - `npm test -- src/server/marketing/launch-package-fit.test.ts src/server/marketing/lead-capture.test.ts -t "launch package fit|full launch package qualification"` +- Related focused verification passed after the final scope-count alignment: + - `npm test -- src/server/generation/generation.test.ts -t "source-backed free repo launch brief"` returned 1 file passed and 1 selected test passed. + - `npm test -- src/App.test.tsx -t "keeps the generator studio|full launch package contact|landing architecture"` returned 1 file passed and 3 selected tests passed. + - `npm test -- src/server/marketing/launch-package-fit.test.ts src/server/marketing/lead-capture.test.ts -t "launch package fit|full launch package qualification"` returned 2 files passed and 2 selected tests passed. +- Full verification with the default forks pool hit Vitest worker startup timeout in this local environment, but no Sites assertion failed after the scope-count fix. +- Full verification passed with threads pool: `npm test -- --testTimeout=30000 --pool=threads` returned 25 files passed and 168 tests passed. +- Build verification passed: `npm run build` completed TypeScript build and Vite production build. +- Diff hygiene passed: `git diff --check` returned no whitespace errors. + +## Remaining Validation Gap + +No production users have copied, downloaded, or requested the Sites scope yet. Treat the output as a monetization hypothesis until artifact interactions, full-package requests, or interviews show that launch site/page support is more valuable than the existing README, social, deck, visual, and outreach outputs. diff --git a/docs/plans/2026-06-01-quickfork-growth-lifecycle-prioritization.md b/docs/plans/2026-06-01-quickfork-growth-lifecycle-prioritization.md index 2377481..e98ca66 100644 --- a/docs/plans/2026-06-01-quickfork-growth-lifecycle-prioritization.md +++ b/docs/plans/2026-06-01-quickfork-growth-lifecycle-prioritization.md @@ -1646,3 +1646,113 @@ Decision: Next action: - Run full verification, merge, production smoke, then use `2026_q2_launch_materials_map_intent_validation` for 14 days of GA4, Search Console, and AI-answer evidence collection. + +## 2026-06-03 Sites Output Enablement Slice + +Hypothesis: + +- If QuickFork exposes Sites as part of the launch package, founders, open-source maintainers, and DevRel operators can turn repository evidence into a reviewable launch site/page spine instead of treating launch output as only README, deck, social, visual, and outreach material. + +Lifecycle stage: + +- Activation to monetization. + +Target user: + +- AI/devtool builders, open-source maintainers, technical founders, and DevRel operators preparing a public launch. + +Changed surface: + +- `src/server/generation/types.ts` +- `src/server/generation/launch-brief.ts` +- `src/server/generation/generation.test.ts` +- `src/components/landing/HeroSection.tsx` +- `src/components/studio/ProductStudio.tsx` +- `src/components/marketing/LeadCaptureForm.tsx` +- `src/core/pipeline.ts` +- `src/App.test.tsx` +- `src/server/marketing/launch-package-fit.test.ts` +- `src/server/marketing/lead-capture.test.ts` +- `docs/marketing/research/2026-06-03-sites-output-enablement.md` + +Metric: + +- `launch_artifact_copied` or `launch_artifact_downloaded` where `artifact_type=site`. +- `sales_contact_requested` with package scope including `sites`. + +Guardrail: + +- Sites output is a reviewable page spine, not automatic publishing. +- Do not send raw README text, raw artifact body, email, token, secret, unsupported customer proof, rankings, revenue, pricing, or guaranteed-growth claims to browser analytics. + +Evidence observed: + +- RED generation test failed first because the launch brief did not include the site channel. +- RED App tests failed first because the studio and full launch package form did not expose Sites. +- Focused generation verification passed: `npm test -- src/server/generation/generation.test.ts -t "source-backed free repo launch brief"` returned 1 file passed and 1 selected test passed. +- Focused App verification passed: `npm test -- src/App.test.tsx -t "keeps the generator studio|full launch package contact|landing architecture"` returned 1 file passed and 3 selected tests passed. +- Focused lead qualification verification passed: `npm test -- src/server/marketing/launch-package-fit.test.ts src/server/marketing/lead-capture.test.ts -t "launch package fit|full launch package qualification"` returned 2 files passed and 2 selected tests passed. +- Full verification passed with threads pool: `npm test -- --testTimeout=30000 --pool=threads` returned 25 files passed and 168 tests passed. +- Build verification passed: `npm run build` completed TypeScript build and Vite production build. +- Diff hygiene passed: `git diff --check` returned no whitespace errors. + +Decision: + +- Treat Sites as a product-output and monetization hypothesis. It fills a landing-page material gap in the launch package, but production users have not yet copied, downloaded, or requested this scope. + +Next action: + +- Track site artifact copy/download and full launch package requests with `sites` scope before investing in full hosted site generation, CMS export, or public landing-page automation. + +## 2026-06-03 SEO/GEO Evidence Workbook Slice + +Hypothesis: + +- If QuickFork expands each registered Search/AI baseline row into a surface-specific audit workbook, SEO/GEO reviewers can collect Search Console and AI-answer evidence without drifting from the experiment contract. + +Lifecycle stage: + +- Validation, P0 measurement and evidence. + +Target user: + +- SEO/GEO supervisor auditing whether QuickFork is indexable, extractable, and accurately summarized. +- Growth operator collecting Search Console and AI-answer evidence for active page-intent experiments. + +Changed surface: + +- `src/marketing/seo-geo-audit-workbook.ts` +- `src/marketing/seo-geo-audit-workbook.test.ts` +- `docs/marketing/data/seo-geo-audit-workbook.csv` +- `docs/marketing/research/2026-06-03-seo-geo-evidence-workbook.md` +- `docs/superpowers/plans/2026-06-03-seo-geo-evidence-workbook.md` + +Metric: + +- Completion of Search Console and AI-answer workbook rows for experiments that require search or AI evidence. +- Supporting route metrics remain `page_view`, `cta_clicked`, `generation_started`, `generation_completed`, and `generation_failed` over the same 14-day window. + +Guardrail: + +- Do not treat a workbook row, prompt, route, or crawler asset as validated search demand or AI visibility. +- Do not claim ranking wins, AI citations, customer traction, revenue, conversion lift, pricing validation, Product Hunt outcomes, or guaranteed launches. +- Keep workbook rows free of raw emails, raw repo text, source notes, private launch notes, tokens, secrets, raw artifacts, or unsupported proof. + +Evidence observed: + +- RED test failed first because the SEO/GEO audit workbook module did not exist. +- Focused verification passed after adding the module and CSV mirror: `npm test -- src/marketing/seo-geo-audit-workbook.test.ts` returned 1 file passed and 5 tests passed. +- Related verification passed: `npm test -- src/marketing/seo-geo-audit-workbook.test.ts src/marketing/search-ai-baseline.test.ts src/marketing/growth-experiment-report.test.ts` returned 3 files passed and 21 tests passed. +- Initial full `npm test` attempts with the default forks pool hit Vitest worker startup timeouts in this local environment. +- Targeted reruns of the affected files passed, including `npm test -- src/App.test.tsx -t "keeps the generator studio|full launch package contact|landing architecture"` and `npm test -- src/server/marketing/launch-package-fit.test.ts`. +- Full verification passed with threads pool: `npm test -- --testTimeout=30000 --pool=threads` returned 25 files passed and 168 tests passed. +- Build verification passed: `npm run build` completed TypeScript build and Vite production build. +- Diff hygiene passed: `git diff --check` returned no whitespace errors. + +Decision: + +- Treat this as P0 measurement infrastructure, not a validation result. It makes the current active experiments reviewable by a senior SEO/GEO operator before QuickFork scales more landing pages. + +Next action: + +- Run related/full verification, then use the workbook to collect 14-day Search Console and AI-answer evidence before deciding which active page-intent experiments should be promoted, rewritten, consolidated, or paused. diff --git a/docs/superpowers/plans/2026-06-03-seo-geo-evidence-workbook.md b/docs/superpowers/plans/2026-06-03-seo-geo-evidence-workbook.md new file mode 100644 index 0000000..4f6ed57 --- /dev/null +++ b/docs/superpowers/plans/2026-06-03-seo-geo-evidence-workbook.md @@ -0,0 +1,156 @@ +# SEO GEO Evidence Workbook Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Build a test-covered SEO/GEO evidence workbook that expands QuickFork's registered Search/AI baseline rows into human-auditable Search Console and AI-answer collection tasks. + +**Architecture:** Add a focused marketing module that derives audit rows from `search-ai-baseline.ts` rather than duplicating experiment definitions. Add an editable CSV mirror for human audit work and a research note explaining the validation boundary. + +**Tech Stack:** TypeScript, Vitest, CSV docs, Markdown docs. + +--- + +### Task 1: SEO/GEO Audit Workbook Tests + +**Files:** +- Create: `src/marketing/seo-geo-audit-workbook.test.ts` + +- [ ] **Step 1: Write the failing test** + +Create `src/marketing/seo-geo-audit-workbook.test.ts` with tests that import `searchAiBaselineRows`, `searchBaselineSurfaces`, and the future workbook helpers. The tests must assert: + +- Every baseline row expands to one workbook row per surface. +- `google_search_console` rows use task kind `search_console_query_baseline`. +- ChatGPT Search, Perplexity, Google AI Overview, Gemini, and Claude rows use task kind `ai_answer_audit`. +- Every row preserves `baselineId`, `experimentId`, `routeRole`, `canonicalPath`, `targetUser`, `query`, `queryCluster`, expected terms, forbidden claims, status `pending`, and a non-empty next action. +- The editable CSV at `docs/marketing/data/seo-geo-audit-workbook.csv` mirrors the generated workbook. +- The rendered runbook names the experiment, routes, Search Console, AI surfaces, required evidence fields, and explicitly keeps the decision as `insufficient_data`. +- The rendered runbook does not claim validated demand, ranking wins, revenue lift, customer traction, or guaranteed launch results. + +- [ ] **Step 2: Run test to verify it fails** + +Run: + +```bash +npm test -- src/marketing/seo-geo-audit-workbook.test.ts +``` + +Expected: FAIL because `src/marketing/seo-geo-audit-workbook.ts` and the CSV do not exist yet. + +### Task 2: SEO/GEO Audit Workbook Module + +**Files:** +- Create: `src/marketing/seo-geo-audit-workbook.ts` + +- [ ] **Step 1: Implement the minimal module** + +Create `src/marketing/seo-geo-audit-workbook.ts` with: + +- `seoGeoAuditStatuses = ["pending", "collected", "needs_reaudit"]`. +- Task kinds `search_console_query_baseline` and `ai_answer_audit`. +- `buildSeoGeoAuditWorkbookRows()` that maps every `SearchAiBaselineRow` surface to a `SeoGeoAuditWorkbookRow`. +- `getSeoGeoAuditWorkbookRowsForExperiment(experimentId)`. +- `renderSeoGeoAuditWorkbook(experimentId)` that returns a Markdown runbook with route rows, evidence fields, guardrails, and the decision line `Decision: insufficient_data_until_14_day_ga4_search_console_and_ai_answer_evidence_exists`. + +- [ ] **Step 2: Run focused test** + +Run: + +```bash +npm test -- src/marketing/seo-geo-audit-workbook.test.ts +``` + +Expected: still FAIL until the editable CSV is added. + +### Task 3: Editable SEO/GEO Audit CSV + +**Files:** +- Create: `docs/marketing/data/seo-geo-audit-workbook.csv` + +- [ ] **Step 1: Add the CSV mirror** + +Create a CSV with this header: + +```text +audit_id,baseline_id,experiment_id,route_role,canonical_path,target_user,query,query_cluster,surface,task_kind,evidence_fields,success_criteria,forbidden_claims,status,next_action +``` + +Add one row per baseline/surface pair. Use pipe-delimited lists inside fields. Keep all values PII-free and claim-safe. + +- [ ] **Step 2: Run focused test** + +Run: + +```bash +npm test -- src/marketing/seo-geo-audit-workbook.test.ts +``` + +Expected: PASS. + +### Task 4: Research Note And Lifecycle Plan Update + +**Files:** +- Create: `docs/marketing/research/2026-06-03-seo-geo-evidence-workbook.md` +- Modify: `docs/plans/2026-06-01-quickfork-growth-lifecycle-prioritization.md` + +- [ ] **Step 1: Add research note** + +Document: + +- Hypothesis: a generated audit workbook will reduce evidence drift across GA4, Search Console, and AI-answer audits. +- Lifecycle stage: Validation. +- Target user: SEO/GEO supervisor and growth operator. +- Changed surface: TypeScript workbook, CSV mirror, runbook renderer. +- Metric: completion of Search Console and AI-answer evidence rows for active experiments. +- Guardrail: no SEO/GEO, pricing, revenue, customer, or AI-citation claims until evidence is collected. +- Next action: run the workbook for each active experiment and fill the evidence CSV after the 14-day window. + +- [ ] **Step 2: Update lifecycle plan** + +Append a short dated section that records the SEO/GEO evidence workbook as a P0 measurement slice and states that it is instrumentation, not validation. + +### Task 5: Verification + +**Files:** +- Verify only. + +- [ ] **Step 1: Run focused related tests** + +Run: + +```bash +npm test -- src/marketing/seo-geo-audit-workbook.test.ts src/marketing/search-ai-baseline.test.ts src/marketing/growth-experiment-report.test.ts +``` + +Expected: PASS. + +- [ ] **Step 2: Run full verification** + +Run: + +```bash +npm test +npm run build +git diff --check +``` + +Expected: PASS. If the full suite fails for unrelated pre-existing reasons, record the exact failure and keep the focused verification result. + +### Task 6: Obsidian Mirror + +**Files:** +- Modify: `/Users/moose/Documents/Moose's Birth ID/QuickFork/SEO Growth/2026-06-01 QuickFork Cold Start Launch Growth Iteration.md` + +- [ ] **Step 1: Append dated entry** + +Append a dated entry with repo refs, hypothesis, lifecycle stage, target user, changed surface, metric, guardrail, evidence observed, decision, and next action. + +- [ ] **Step 2: Verify entry exists** + +Run: + +```bash +tail -n 120 "/Users/moose/Documents/Moose's Birth ID/QuickFork/SEO Growth/2026-06-01 QuickFork Cold Start Launch Growth Iteration.md" +``` + +Expected: The new SEO/GEO evidence workbook entry is visible and states that the workbook is not validation evidence by itself. diff --git a/src/App.test.tsx b/src/App.test.tsx index 20d433f..3f8b97e 100644 --- a/src/App.test.tsx +++ b/src/App.test.tsx @@ -106,6 +106,7 @@ describe("App", () => { expect(screen.getAllByText(/README/i).length).toBeGreaterThan(0); expect(screen.getAllByText(/PPT/i).length).toBeGreaterThan(0); expect(screen.getAllByText(/Social/i).length).toBeGreaterThan(0); + expect(screen.getAllByText(/Sites/i).length).toBeGreaterThan(0); }); it("tracks route-level page views with funnel intent metadata", () => { @@ -1057,6 +1058,7 @@ describe("App", () => { fireEvent.click(screen.getByLabelText(/^Social$/i)); fireEvent.click(screen.getByLabelText(/^Deck$/i)); fireEvent.click(screen.getByLabelText(/^Outreach$/i)); + fireEvent.click(screen.getByLabelText(/^Sites$/i)); fireEvent.click(screen.getByLabelText(/^Visual explainer$/i)); fireEvent.click(screen.getByLabelText(/human review needed/i)); fireEvent.change(screen.getByLabelText(/launch notes/i), { @@ -1080,7 +1082,7 @@ describe("App", () => { launchTimeline: "within_30_days", packageModel: "single_launch", buyingTrigger: "launch_deadline", - packageScope: ["readme", "social", "deck", "outreach", "visual_explainer"], + packageScope: ["readme", "social", "deck", "outreach", "sites", "visual_explainer"], humanReviewNeeded: true, notes: "Launching an AI repo and need source-backed README, deck, and outreach review.", }, @@ -1101,7 +1103,7 @@ describe("App", () => { launch_timeline: "within_30_days", package_model: "single_launch", buying_trigger: "launch_deadline", - package_scope_count: 5, + package_scope_count: 6, human_review_needed: true, }), ]), diff --git a/src/components/landing/HeroSection.tsx b/src/components/landing/HeroSection.tsx index 905d33b..297ee44 100644 --- a/src/components/landing/HeroSection.tsx +++ b/src/components/landing/HeroSection.tsx @@ -142,7 +142,7 @@ interface RepoLaunchMaterialsMapSummary { } interface RepoLaunchMaterialChannelSummary { - type: "readme" | "social" | "deck" | "visual" | "outreach"; + type: "readme" | "social" | "deck" | "site" | "visual" | "outreach"; label: string; primaryUser: string; jobToBeDone: string; @@ -154,7 +154,7 @@ interface RepoLaunchMaterialChannelSummary { } interface RepoLaunchBriefArtifactSummary { - type: "audience" | "story_map" | "materials_map" | "readme" | "social" | "deck" | "outreach" | "visual"; + type: "audience" | "story_map" | "materials_map" | "readme" | "social" | "deck" | "site" | "outreach" | "visual"; label: string; fileName: string; body: string; @@ -706,7 +706,7 @@ function LaunchBriefPanel({