mirror of
https://github.com/gbessoni/seobuild-onpage.git
synced 2026-06-23 11:58:37 +02:00
Research pipeline (scripts/research.py): - extract_meta_entities() mines bolded query-matched phrases from the `highlighted` field of competitor SERP results, with inline <b>/<strong>/** fallback parsing. These are the entities Google's snippet generator already validated as relevant. - extract_target_ngrams() tokenizes top 3 competitors' headings + titles, filters via inlined English stopwords, returns top 5 bigrams/trigrams. - detect_secondary_intent() maps the funnel-next intent (Orcas 1 dual intent) with overrides for transactional title signals and brand- domain dominance. - All four signals (primary_intent, secondary_intent, meta_entities, target_ngrams) now surface at top level of research output for direct brief consumption. Compact + brief output formats updated. - DataForSEOClient._extract_serp now passes through the `highlighted` field per organic result (was being dropped silently). Framework (SKILL.md): - 41-point checklist -> 45-point checklist with Meta Entity Isolation, N-Gram AI Alignment, Dual-Intent, and Status Code Governance checks. Passing threshold raised to 36/45. - New "Technical Codebase Execution Rules" section: when run inside a project repo, detect framework (Next.js, Astro, Hugo, Jekyll, etc.), inject semantic HTML into source files, emit Apache/.htaccess + Nginx + next.config.js + Vercel snippets for 301/410 redirects. - HARD RULES rewritten as positive naming guidance. Docs: - README.md "What It Actually Does" block expanded 13 -> 14 steps reflecting dual-intent mapping, n-gram seeding, 301/410 governance. - references/quality-checklist.md adds the 4 new pass/fail checks with field references back to research.py output. - CLAUDE.md framework features list updated. Tests: - New tests/test_research_v171.py with 13 tests covering meta-entity extraction (highlighted + inline-tag + dedup), n-gram extraction (stopword filter, top-N limit, empty input), tokenizer, and secondary-intent funnel + overrides. - Live smoke-tested against airport parking JFK: meta_entities returns 8 real bolded SERP phrases; target_ngrams returns "jfk airport", "airport parking", "uncovered valet" etc. as expected. All existing test files still pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>