tribunal-kit 9.0.0 → 9.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/ARCHITECTURE.md +2 -2
- package/.agent/agents/backend-specialist.md +1 -1
- package/.agent/agents/code-archaeologist.md +1 -1
- package/.agent/agents/database-architect.md +1 -1
- package/.agent/agents/debugger.md +1 -1
- package/.agent/agents/devops-engineer.md +1 -1
- package/.agent/agents/documentation-writer.md +1 -1
- package/.agent/agents/explorer-agent.md +1 -1
- package/.agent/agents/game-developer.md +1 -1
- package/.agent/agents/minimalist-reviewer.md +1 -1
- package/.agent/agents/mobile-developer.md +1 -1
- package/.agent/agents/orchestrator.md +1 -1
- package/.agent/agents/penetration-tester.md +1 -1
- package/.agent/agents/performance-optimizer.md +1 -1
- package/.agent/agents/product-manager.md +1 -1
- package/.agent/agents/product-owner.md +1 -1
- package/.agent/agents/project-planner.md +1 -1
- package/.agent/agents/qa-automation-engineer.md +1 -1
- package/.agent/agents/seo-specialist.md +1 -1
- package/.agent/agents/test-engineer.md +1 -1
- package/.agent/config/slash-commands.json +13 -1
- package/.agent/config/system-prompt.md +21 -7
- package/.agent/routing_index.json +1546 -268
- package/.agent/scripts/browser_audit.js +94 -0
- package/.agent/scripts/context_compiler.js +9 -0
- package/.agent/scripts/prompt_compiler.js +105 -13
- package/.agent/skill_topic_map.json +2 -1
- package/.agent/skills/12-principles-of-animation/SKILL.md +63 -25
- package/.agent/skills/60fps-animation/SKILL.md +68 -24
- package/.agent/skills/accessible-animation/SKILL.md +208 -44
- package/.agent/skills/adapt/SKILL.md +63 -25
- package/.agent/skills/advanced-rag-pipelines/SKILL.md +65 -25
- package/.agent/skills/agent-organizer/SKILL.md +60 -31
- package/.agent/skills/agentic-patterns/SKILL.md +60 -31
- package/.agent/skills/agentic-workflows-2026/SKILL.md +67 -27
- package/.agent/skills/ai-app-hardening/SKILL.md +67 -27
- package/.agent/skills/ai-prompt-injection-defense/SKILL.md +59 -31
- package/.agent/skills/animation-on-scroll/SKILL.md +187 -51
- package/.agent/skills/animation-systems/SKILL.md +230 -40
- package/.agent/skills/antfu-conventions/SKILL.md +64 -26
- package/.agent/skills/api-patterns/SKILL.md +61 -31
- package/.agent/skills/api-security-auditor/SKILL.md +59 -31
- package/.agent/skills/app-builder/SKILL.md +61 -31
- package/.agent/skills/appflow-wireframe/SKILL.md +62 -33
- package/.agent/skills/apple-design/SKILL.md +63 -25
- package/.agent/skills/architecture/SKILL.md +61 -31
- package/.agent/skills/audit-and-fix/SKILL.md +63 -25
- package/.agent/skills/authentication-best-practices/SKILL.md +59 -31
- package/.agent/skills/backend-security-expert/SKILL.md +61 -31
- package/.agent/skills/baseline-ui/SKILL.md +63 -25
- package/.agent/skills/bash-linux/SKILL.md +59 -31
- package/.agent/skills/behavioral-modes/SKILL.md +60 -31
- package/.agent/skills/better-colors/SKILL.md +63 -25
- package/.agent/skills/better-typography/SKILL.md +63 -36
- package/.agent/skills/better-ui/SKILL.md +64 -24
- package/.agent/skills/bolder/SKILL.md +63 -25
- package/.agent/skills/brainstorming/SKILL.md +61 -31
- package/.agent/skills/browser-audit/SKILL.md +170 -0
- package/.agent/skills/browser-native-ai/SKILL.md +64 -26
- package/.agent/skills/build-primitive/SKILL.md +63 -25
- package/.agent/skills/building-native-ui/SKILL.md +59 -31
- package/.agent/skills/cicd-pro/SKILL.md +65 -25
- package/.agent/skills/clarify/SKILL.md +63 -25
- package/.agent/skills/clean-code/SKILL.md +59 -31
- package/.agent/skills/cloud-architect/SKILL.md +65 -25
- package/.agent/skills/cobejs/SKILL.md +63 -25
- package/.agent/skills/code-review-checklist/SKILL.md +59 -31
- package/.agent/skills/codebase-design/SKILL.md +65 -25
- package/.agent/skills/colorize/SKILL.md +63 -25
- package/.agent/skills/compact-landing/SKILL.md +63 -25
- package/.agent/skills/company-logos/SKILL.md +63 -25
- package/.agent/skills/config-validator/SKILL.md +59 -31
- package/.agent/skills/containerization-pro/SKILL.md +65 -25
- package/.agent/skills/context-engineering-pro/SKILL.md +67 -27
- package/.agent/skills/create-design-md/SKILL.md +63 -25
- package/.agent/skills/critique/SKILL.md +64 -25
- package/.agent/skills/csharp-developer/SKILL.md +59 -31
- package/.agent/skills/data-validation-schemas/SKILL.md +59 -31
- package/.agent/skills/database-design/SKILL.md +61 -31
- package/.agent/skills/delight/SKILL.md +63 -25
- package/.agent/skills/deployment-procedures/SKILL.md +59 -31
- package/.agent/skills/design-lab/SKILL.md +65 -26
- package/.agent/skills/devops-engineer/SKILL.md +59 -31
- package/.agent/skills/devops-incident-responder/SKILL.md +59 -31
- package/.agent/skills/diagnosing-bugs/SKILL.md +64 -27
- package/.agent/skills/distill/SKILL.md +63 -25
- package/.agent/skills/documentation-templates/SKILL.md +59 -31
- package/.agent/skills/domain-modeling/SKILL.md +64 -26
- package/.agent/skills/duckdb-analytical-sql/SKILL.md +66 -26
- package/.agent/skills/edge-ai-mobile/SKILL.md +66 -26
- package/.agent/skills/edge-computing/SKILL.md +59 -31
- package/.agent/skills/emil-design-eng/SKILL.md +64 -24
- package/.agent/skills/error-resilience/SKILL.md +59 -31
- package/.agent/skills/expo-router-v4/SKILL.md +65 -26
- package/.agent/skills/extract-design-system/SKILL.md +59 -31
- package/.agent/skills/fabel-protocol/SKILL.md +64 -25
- package/.agent/skills/fixing-accessibility/SKILL.md +63 -25
- package/.agent/skills/fixing-metadata/SKILL.md +63 -25
- package/.agent/skills/fixing-motion-performance/SKILL.md +63 -25
- package/.agent/skills/framer-motion-expert/SKILL.md +68 -30
- package/.agent/skills/frontend-design/SKILL.md +63 -25
- package/.agent/skills/frontend-security-expert/SKILL.md +61 -31
- package/.agent/skills/game-design-expert/SKILL.md +59 -31
- package/.agent/skills/game-engineering-expert/SKILL.md +59 -31
- package/.agent/skills/generative-ui-expert/SKILL.md +64 -26
- package/.agent/skills/geo-fundamentals/SKILL.md +59 -31
- package/.agent/skills/git-pro/SKILL.md +65 -25
- package/.agent/skills/github-operations/SKILL.md +59 -31
- package/.agent/skills/gpt-taste/SKILL.md +63 -25
- package/.agent/skills/gsap-core/SKILL.md +65 -25
- package/.agent/skills/gsap-frameworks/SKILL.md +65 -25
- package/.agent/skills/gsap-performance/SKILL.md +65 -25
- package/.agent/skills/gsap-plugins/SKILL.md +65 -25
- package/.agent/skills/gsap-react/SKILL.md +65 -25
- package/.agent/skills/gsap-scrolltrigger/SKILL.md +65 -25
- package/.agent/skills/gsap-timeline/SKILL.md +65 -25
- package/.agent/skills/gsap-utils/SKILL.md +65 -25
- package/.agent/skills/harden/SKILL.md +63 -25
- package/.agent/skills/harness-protocol/SKILL.md +64 -25
- package/.agent/skills/i18n-localization/SKILL.md +59 -31
- package/.agent/skills/impeccable/SKILL.md +63 -25
- package/.agent/skills/improve-codebase-architecture/SKILL.md +64 -26
- package/.agent/skills/improve-ui/SKILL.md +63 -25
- package/.agent/skills/intelligent-routing/SKILL.md +63 -23
- package/.agent/skills/knowledge-graph/SKILL.md +64 -25
- package/.agent/skills/landing-page/SKILL.md +63 -25
- package/.agent/skills/lint-and-validate/SKILL.md +59 -31
- package/.agent/skills/llm-engineering/SKILL.md +59 -31
- package/.agent/skills/local-first/SKILL.md +59 -31
- package/.agent/skills/local-first-architecture/SKILL.md +64 -24
- package/.agent/skills/lottie-animation/SKILL.md +63 -25
- package/.agent/skills/marquee-loop/SKILL.md +63 -25
- package/.agent/skills/masked-reveal/SKILL.md +246 -55
- package/.agent/skills/mcp-builder/SKILL.md +59 -31
- package/.agent/skills/micro-interaction/SKILL.md +255 -61
- package/.agent/skills/mobile-design/SKILL.md +61 -31
- package/.agent/skills/monorepo-management/SKILL.md +59 -31
- package/.agent/skills/morphing-icons/SKILL.md +366 -51
- package/.agent/skills/motion-engineering/SKILL.md +64 -26
- package/.agent/skills/nextjs-react-expert/SKILL.md +61 -31
- package/.agent/skills/nodejs-best-practices/SKILL.md +59 -31
- package/.agent/skills/observability/SKILL.md +59 -31
- package/.agent/skills/opentelemetry-observability/SKILL.md +66 -26
- package/.agent/skills/page-transition-animation/SKILL.md +63 -25
- package/.agent/skills/parallel-agents/SKILL.md +60 -31
- package/.agent/skills/performance-profiling/SKILL.md +60 -31
- package/.agent/skills/plan-writing/SKILL.md +59 -31
- package/.agent/skills/platform-engineer/SKILL.md +59 -31
- package/.agent/skills/platform-engineering-opentofu/SKILL.md +66 -27
- package/.agent/skills/playwright-ai-e2e/SKILL.md +67 -27
- package/.agent/skills/playwright-best-practices/SKILL.md +60 -31
- package/.agent/skills/polish/SKILL.md +63 -25
- package/.agent/skills/powershell-windows/SKILL.md +59 -31
- package/.agent/skills/pricing-page/SKILL.md +63 -25
- package/.agent/skills/product-aware-heuristics/SKILL.md +63 -25
- package/.agent/skills/progressive-blur/SKILL.md +63 -25
- package/.agent/skills/project-idioms/SKILL.md +60 -36
- package/.agent/skills/property-based-testing/SKILL.md +67 -27
- package/.agent/skills/python-patterns/SKILL.md +59 -31
- package/.agent/skills/python-pro/SKILL.md +61 -31
- package/.agent/skills/quieter/SKILL.md +63 -25
- package/.agent/skills/react-doctor/SKILL.md +63 -25
- package/.agent/skills/react-specialist/SKILL.md +61 -31
- package/.agent/skills/readme-builder/SKILL.md +59 -31
- package/.agent/skills/realtime-patterns/SKILL.md +59 -31
- package/.agent/skills/red-team-tactics/SKILL.md +59 -31
- package/.agent/skills/redesign-skill/SKILL.md +63 -25
- package/.agent/skills/review-animations/SKILL.md +64 -26
- package/.agent/skills/rust-pro/SKILL.md +61 -31
- package/.agent/skills/seo-fundamentals/SKILL.md +59 -31
- package/.agent/skills/server-management/SKILL.md +59 -31
- package/.agent/skills/shadcn-ui-expert/SKILL.md +59 -31
- package/.agent/skills/shape/SKILL.md +64 -25
- package/.agent/skills/skill-creator/SKILL.md +66 -24
- package/.agent/skills/soft-skill/SKILL.md +63 -25
- package/.agent/skills/sounds-on-the-web/SKILL.md +63 -25
- package/.agent/skills/sql-pro/SKILL.md +59 -31
- package/.agent/skills/supabase-postgres-best-practices/SKILL.md +59 -31
- package/.agent/skills/svg-animation/SKILL.md +369 -51
- package/.agent/skills/swiftui-expert/SKILL.md +59 -31
- package/.agent/skills/swiss-design/SKILL.md +63 -25
- package/.agent/skills/system-design-pro/SKILL.md +65 -25
- package/.agent/skills/systematic-debugging/SKILL.md +60 -31
- package/.agent/skills/tailwind-patterns/SKILL.md +59 -31
- package/.agent/skills/taste-skill/SKILL.md +63 -25
- package/.agent/skills/tdd-workflow/SKILL.md +66 -25
- package/.agent/skills/test-result-analyzer/SKILL.md +59 -32
- package/.agent/skills/testing-patterns/SKILL.md +60 -31
- package/.agent/skills/thermo-nuclear-code-quality-review/SKILL.md +64 -26
- package/.agent/skills/thinking-protocol/SKILL.md +58 -34
- package/.agent/skills/to-spring-or-not-to-spring/SKILL.md +63 -25
- package/.agent/skills/transitions-dev/SKILL.md +63 -25
- package/.agent/skills/trend-researcher/SKILL.md +58 -32
- package/.agent/skills/typescript-advanced/SKILL.md +59 -32
- package/.agent/skills/typeset/SKILL.md +63 -25
- package/.agent/skills/ui-reasoning-engine/SKILL.md +63 -25
- package/.agent/skills/ui-skill-packs/SKILL.md +64 -24
- package/.agent/skills/ui-skills-root/SKILL.md +63 -25
- package/.agent/skills/ui-ux-pro-max/SKILL.md +64 -24
- package/.agent/skills/ui-ux-researcher/SKILL.md +58 -32
- package/.agent/skills/vector-search-pgvector/SKILL.md +66 -26
- package/.agent/skills/verification-before-completion/SKILL.md +69 -16
- package/.agent/skills/vue-expert/SKILL.md +61 -31
- package/.agent/skills/vulnerability-scanner/SKILL.md +61 -31
- package/.agent/skills/web-accessibility-auditor/SKILL.md +59 -31
- package/.agent/skills/web-design-guidelines/SKILL.md +63 -25
- package/.agent/skills/web-quality-audit/SKILL.md +63 -25
- package/.agent/skills/webapp-testing/SKILL.md +60 -31
- package/.agent/skills/webgpu-performance/SKILL.md +64 -26
- package/.agent/skills/whimsy-injector/SKILL.md +58 -32
- package/.agent/skills/workflow-optimizer/SKILL.md +58 -31
- package/.agent/skills/zero-trust-passkeys/SKILL.md +66 -26
- package/.agent/templates/sdd/implementer-prompt.md +10 -1
- package/.agent/templates/sdd/re-review-prompt.md +9 -1
- package/.agent/templates/sdd/task-reviewer-prompt.md +20 -1
- package/.agent/workflows/audit-live.md +52 -0
- package/.agent/workflows/compare-web.md +35 -0
- package/.agent/workflows/context.md +100 -0
- package/.agent/workflows/plan.md +1 -1
- package/.agent/workflows/skill-enhancement-engine.md +88 -0
- package/.agent/workflows/super-prompt.md +101 -21
- package/.agents/skills/12-principles-of-animation/SKILL.md +126 -0
- package/.agents/skills/60fps-animation/SKILL.md +164 -0
- package/.agents/skills/accessible-animation/SKILL.md +266 -0
- package/.agents/skills/adapt/SKILL.md +131 -0
- package/.agents/skills/advanced-rag-pipelines/SKILL.md +169 -0
- package/.agents/skills/agent-organizer/SKILL.md +192 -0
- package/.agents/skills/agentic-patterns/SKILL.md +356 -0
- package/.agents/skills/agentic-workflows-2026/SKILL.md +157 -0
- package/.agents/skills/ai-app-hardening/SKILL.md +125 -0
- package/.agents/skills/ai-prompt-injection-defense/SKILL.md +237 -0
- package/.agents/skills/animation-on-scroll/SKILL.md +267 -0
- package/.agents/skills/animation-systems/SKILL.md +273 -0
- package/.agents/skills/antfu-conventions/SKILL.md +129 -0
- package/.agents/skills/api-patterns/SKILL.md +293 -0
- package/.agents/skills/api-patterns/scripts/api_validator.py +211 -0
- package/.agents/skills/api-security-auditor/SKILL.md +230 -0
- package/.agents/skills/app-builder/SKILL.md +610 -0
- package/.agents/skills/app-builder/templates/SKILL.md +108 -0
- package/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
- package/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
- package/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
- package/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
- package/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
- package/.agents/skills/appflow-wireframe/SKILL.md +173 -0
- package/.agents/skills/apple-design/SKILL.md +164 -0
- package/.agents/skills/architecture/SKILL.md +263 -0
- package/.agents/skills/audit-and-fix/SKILL.md +136 -0
- package/.agents/skills/authentication-best-practices/SKILL.md +232 -0
- package/.agents/skills/backend-security-expert/SKILL.md +148 -0
- package/.agents/skills/baseline-ui/SKILL.md +130 -0
- package/.agents/skills/bash-linux/SKILL.md +214 -0
- package/.agents/skills/behavioral-modes/SKILL.md +275 -0
- package/.agents/skills/better-colors/SKILL.md +191 -0
- package/.agents/skills/better-typography/SKILL.md +164 -0
- package/.agents/skills/better-ui/SKILL.md +193 -0
- package/.agents/skills/bolder/SKILL.md +124 -0
- package/.agents/skills/brainstorming/SKILL.md +534 -0
- package/.agents/skills/browser-audit/SKILL.md +170 -0
- package/.agents/skills/browser-native-ai/SKILL.md +147 -0
- package/.agents/skills/build-primitive/SKILL.md +125 -0
- package/.agents/skills/building-native-ui/SKILL.md +237 -0
- package/.agents/skills/cicd-pro/SKILL.md +487 -0
- package/.agents/skills/clarify/SKILL.md +130 -0
- package/.agents/skills/clean-code/SKILL.md +442 -0
- package/.agents/skills/cloud-architect/SKILL.md +484 -0
- package/.agents/skills/cobejs/SKILL.md +145 -0
- package/.agents/skills/code-review-checklist/SKILL.md +238 -0
- package/.agents/skills/codebase-design/SKILL.md +151 -0
- package/.agents/skills/colorize/SKILL.md +132 -0
- package/.agents/skills/compact-landing/SKILL.md +125 -0
- package/.agents/skills/company-logos/SKILL.md +129 -0
- package/.agents/skills/config-validator/SKILL.md +200 -0
- package/.agents/skills/containerization-pro/SKILL.md +497 -0
- package/.agents/skills/context-engineering-pro/SKILL.md +136 -0
- package/.agents/skills/create-design-md/SKILL.md +167 -0
- package/.agents/skills/critique/SKILL.md +154 -0
- package/.agents/skills/csharp-developer/SKILL.md +553 -0
- package/.agents/skills/data-validation-schemas/SKILL.md +372 -0
- package/.agents/skills/database-design/SKILL.md +294 -0
- package/.agents/skills/database-design/scripts/schema_validator.py +172 -0
- package/.agents/skills/delight/SKILL.md +121 -0
- package/.agents/skills/deployment-procedures/SKILL.md +207 -0
- package/.agents/skills/design-lab/SKILL.md +117 -0
- package/.agents/skills/devops-engineer/SKILL.md +380 -0
- package/.agents/skills/devops-incident-responder/SKILL.md +178 -0
- package/.agents/skills/diagnosing-bugs/SKILL.md +247 -0
- package/.agents/skills/distill/SKILL.md +120 -0
- package/.agents/skills/documentation-templates/SKILL.md +326 -0
- package/.agents/skills/domain-modeling/SKILL.md +136 -0
- package/.agents/skills/duckdb-analytical-sql/SKILL.md +125 -0
- package/.agents/skills/edge-ai-mobile/SKILL.md +116 -0
- package/.agents/skills/edge-computing/SKILL.md +218 -0
- package/.agents/skills/emil-design-eng/SKILL.md +209 -0
- package/.agents/skills/error-resilience/SKILL.md +478 -0
- package/.agents/skills/expo-router-v4/SKILL.md +146 -0
- package/.agents/skills/extract-design-system/SKILL.md +195 -0
- package/.agents/skills/fabel-protocol/SKILL.md +352 -0
- package/.agents/skills/fixing-accessibility/SKILL.md +162 -0
- package/.agents/skills/fixing-metadata/SKILL.md +158 -0
- package/.agents/skills/fixing-motion-performance/SKILL.md +153 -0
- package/.agents/skills/framer-motion-expert/SKILL.md +312 -0
- package/.agents/skills/frontend-design/SKILL.md +178 -0
- package/.agents/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/.agents/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/.agents/skills/frontend-security-expert/SKILL.md +131 -0
- package/.agents/skills/game-design-expert/SKILL.md +167 -0
- package/.agents/skills/game-engineering-expert/SKILL.md +183 -0
- package/.agents/skills/generative-ui-expert/SKILL.md +175 -0
- package/.agents/skills/geo-fundamentals/SKILL.md +183 -0
- package/.agents/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/.agents/skills/git-pro/SKILL.md +476 -0
- package/.agents/skills/github-operations/SKILL.md +370 -0
- package/.agents/skills/gpt-taste/SKILL.md +125 -0
- package/.agents/skills/gsap-core/SKILL.md +352 -0
- package/.agents/skills/gsap-frameworks/SKILL.md +243 -0
- package/.agents/skills/gsap-performance/SKILL.md +169 -0
- package/.agents/skills/gsap-plugins/SKILL.md +516 -0
- package/.agents/skills/gsap-react/SKILL.md +288 -0
- package/.agents/skills/gsap-scrolltrigger/SKILL.md +387 -0
- package/.agents/skills/gsap-timeline/SKILL.md +197 -0
- package/.agents/skills/gsap-utils/SKILL.md +374 -0
- package/.agents/skills/harden/SKILL.md +130 -0
- package/.agents/skills/harness-protocol/SKILL.md +115 -0
- package/.agents/skills/i18n-localization/SKILL.md +209 -0
- package/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/.agents/skills/impeccable/SKILL.md +127 -0
- package/.agents/skills/improve-codebase-architecture/SKILL.md +123 -0
- package/.agents/skills/improve-ui/SKILL.md +145 -0
- package/.agents/skills/intelligent-routing/SKILL.md +283 -0
- package/.agents/skills/knowledge-graph/SKILL.md +146 -0
- package/.agents/skills/landing-page/SKILL.md +140 -0
- package/.agents/skills/lint-and-validate/SKILL.md +299 -0
- package/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/.agents/skills/llm-engineering/SKILL.md +435 -0
- package/.agents/skills/local-first/SKILL.md +213 -0
- package/.agents/skills/local-first-architecture/SKILL.md +137 -0
- package/.agents/skills/lottie-animation/SKILL.md +137 -0
- package/.agents/skills/marquee-loop/SKILL.md +147 -0
- package/.agents/skills/masked-reveal/SKILL.md +305 -0
- package/.agents/skills/mcp-builder/SKILL.md +180 -0
- package/.agents/skills/micro-interaction/SKILL.md +321 -0
- package/.agents/skills/mobile-design/SKILL.md +320 -0
- package/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/.agents/skills/monorepo-management/SKILL.md +370 -0
- package/.agents/skills/morphing-icons/SKILL.md +423 -0
- package/.agents/skills/motion-engineering/SKILL.md +272 -0
- package/.agents/skills/nextjs-react-expert/SKILL.md +293 -0
- package/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/.agents/skills/nodejs-best-practices/SKILL.md +617 -0
- package/.agents/skills/observability/SKILL.md +378 -0
- package/.agents/skills/opentelemetry-observability/SKILL.md +125 -0
- package/.agents/skills/page-transition-animation/SKILL.md +161 -0
- package/.agents/skills/parallel-agents/SKILL.md +185 -0
- package/.agents/skills/performance-profiling/SKILL.md +305 -0
- package/.agents/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/.agents/skills/plan-writing/SKILL.md +202 -0
- package/.agents/skills/platform-engineer/SKILL.md +183 -0
- package/.agents/skills/platform-engineering-opentofu/SKILL.md +133 -0
- package/.agents/skills/playwright-ai-e2e/SKILL.md +126 -0
- package/.agents/skills/playwright-best-practices/SKILL.md +224 -0
- package/.agents/skills/polish/SKILL.md +114 -0
- package/.agents/skills/powershell-windows/SKILL.md +197 -0
- package/.agents/skills/pricing-page/SKILL.md +123 -0
- package/.agents/skills/product-aware-heuristics/SKILL.md +465 -0
- package/.agents/skills/progressive-blur/SKILL.md +155 -0
- package/.agents/skills/project-idioms/SKILL.md +166 -0
- package/.agents/skills/property-based-testing/SKILL.md +124 -0
- package/.agents/skills/python-patterns/SKILL.md +295 -0
- package/.agents/skills/python-pro/SKILL.md +380 -0
- package/.agents/skills/quieter/SKILL.md +124 -0
- package/.agents/skills/react-doctor/SKILL.md +126 -0
- package/.agents/skills/react-specialist/SKILL.md +355 -0
- package/.agents/skills/readme-builder/SKILL.md +345 -0
- package/.agents/skills/realtime-patterns/SKILL.md +358 -0
- package/.agents/skills/red-team-tactics/SKILL.md +266 -0
- package/.agents/skills/redesign-skill/SKILL.md +121 -0
- package/.agents/skills/review-animations/SKILL.md +120 -0
- package/.agents/skills/review-animations/STANDARDS.md +87 -0
- package/.agents/skills/rust-pro/SKILL.md +727 -0
- package/.agents/skills/seo-fundamentals/SKILL.md +214 -0
- package/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/.agents/skills/server-management/SKILL.md +253 -0
- package/.agents/skills/shadcn-ui-expert/SKILL.md +271 -0
- package/.agents/skills/shape/SKILL.md +131 -0
- package/.agents/skills/skill-creator/SKILL.md +136 -0
- package/.agents/skills/soft-skill/SKILL.md +128 -0
- package/.agents/skills/sounds-on-the-web/SKILL.md +151 -0
- package/.agents/skills/sql-pro/SKILL.md +699 -0
- package/.agents/skills/supabase-postgres-best-practices/SKILL.md +132 -0
- package/.agents/skills/svg-animation/SKILL.md +431 -0
- package/.agents/skills/swiftui-expert/SKILL.md +239 -0
- package/.agents/skills/swiss-design/SKILL.md +119 -0
- package/.agents/skills/system-design-pro/SKILL.md +393 -0
- package/.agents/skills/systematic-debugging/SKILL.md +198 -0
- package/.agents/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/.agents/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/.agents/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/.agents/skills/tailwind-patterns/SKILL.md +658 -0
- package/.agents/skills/taste-skill/SKILL.md +127 -0
- package/.agents/skills/tdd-workflow/SKILL.md +179 -0
- package/.agents/skills/test-result-analyzer/SKILL.md +345 -0
- package/.agents/skills/testing-patterns/SKILL.md +609 -0
- package/.agents/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/.agents/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
- package/.agents/skills/thinking-protocol/SKILL.md +97 -0
- package/.agents/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
- package/.agents/skills/transitions-dev/SKILL.md +165 -0
- package/.agents/skills/trend-researcher/SKILL.md +273 -0
- package/.agents/skills/typescript-advanced/SKILL.md +381 -0
- package/.agents/skills/typeset/SKILL.md +135 -0
- package/.agents/skills/ui-reasoning-engine/SKILL.md +230 -0
- package/.agents/skills/ui-skill-packs/SKILL.md +132 -0
- package/.agents/skills/ui-skills-root/SKILL.md +144 -0
- package/.agents/skills/ui-ux-pro-max/SKILL.md +185 -0
- package/.agents/skills/ui-ux-researcher/SKILL.md +274 -0
- package/.agents/skills/vector-search-pgvector/SKILL.md +144 -0
- package/.agents/skills/verification-before-completion/SKILL.md +178 -0
- package/.agents/skills/vue-expert/SKILL.md +334 -0
- package/.agents/skills/vulnerability-scanner/SKILL.md +453 -0
- package/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/.agents/skills/web-accessibility-auditor/SKILL.md +254 -0
- package/.agents/skills/web-design-guidelines/SKILL.md +124 -0
- package/.agents/skills/web-quality-audit/SKILL.md +122 -0
- package/.agents/skills/webapp-testing/SKILL.md +203 -0
- package/.agents/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/.agents/skills/webgpu-performance/SKILL.md +163 -0
- package/.agents/skills/whimsy-injector/SKILL.md +380 -0
- package/.agents/skills/workflow-optimizer/SKILL.md +263 -0
- package/.agents/skills/zero-trust-passkeys/SKILL.md +156 -0
- package/.claude-plugin/marketplace.json +1 -4
- package/.hermes-plugin/plugin.yaml +1 -1
- package/.kimi-plugin/plugin.json +6 -6
- package/.opencode/INSTALL.md +2 -2
- package/.opencode/rules.md +258 -0
- package/AGENTS.md +91 -0
- package/CLAUDE.md +442 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +66 -69
- package/bin/adapter-install.js +40 -16
- package/bin/mcp-server.js +426 -0
- package/bin/proxy-server.js +18 -9
- package/bin/spawn-agent.js +9 -3
- package/bin/wrapper.js +19 -4
- package/dist/browser/audit.js +229 -0
- package/dist/browser/case_bridge.js +189 -0
- package/dist/browser/cdp.js +513 -0
- package/dist/browser/compare.js +110 -0
- package/dist/browser/discovery.js +140 -0
- package/dist/browser/idpi.js +142 -0
- package/dist/browser/index.js +89 -0
- package/dist/browser/launcher.js +154 -0
- package/dist/browser/sentinel.js +202 -0
- package/dist/browser/synapse.js +251 -0
- package/dist/browser/trimmer.js +210 -0
- package/dist/cli.js +70 -48
- package/dist/commands/audit-web.js +112 -0
- package/dist/commands/browse.js +56 -0
- package/dist/commands/compare-web.js +61 -0
- package/dist/commands/deconstruct.js +58 -0
- package/dist/commands/heal.js +99 -0
- package/dist/commands/init.js +10 -1
- package/dist/commands/sdd.js +229 -0
- package/dist/commands/uninstall.js +12 -0
- package/dist/tui/banner.js +1 -1
- package/gemini-extension.json +1 -1
- package/hooks/hooks-cursor.json +2 -8
- package/hooks/hooks.json +2 -8
- package/marketplace.json +14 -0
- package/package.json +176 -165
- package/plugin.json +26 -0
- package/scripts/apply-version.js +57 -0
- package/scripts/clean-pycache.js +42 -0
- package/scripts/context_compiler.js +944 -0
- package/scripts/package-cores.js +113 -0
- package/scripts/skill_enhancement_engine.js +473 -0
- package/scripts/sync-skills.js +61 -0
- package/skills/12-principles-of-animation/SKILL.md +126 -0
- package/skills/60fps-animation/SKILL.md +164 -0
- package/skills/accessible-animation/SKILL.md +266 -0
- package/skills/adapt/SKILL.md +131 -0
- package/skills/advanced-rag-pipelines/SKILL.md +169 -0
- package/skills/agent-organizer/SKILL.md +192 -0
- package/skills/agentic-patterns/SKILL.md +356 -0
- package/skills/agentic-workflows-2026/SKILL.md +157 -0
- package/skills/ai-app-hardening/SKILL.md +125 -0
- package/skills/ai-prompt-injection-defense/SKILL.md +237 -0
- package/skills/animation-on-scroll/SKILL.md +267 -0
- package/skills/animation-systems/SKILL.md +273 -0
- package/skills/antfu-conventions/SKILL.md +129 -0
- package/skills/api-patterns/SKILL.md +293 -0
- package/skills/api-patterns/scripts/api_validator.py +211 -0
- package/skills/api-security-auditor/SKILL.md +230 -0
- package/skills/app-builder/SKILL.md +610 -0
- package/skills/app-builder/templates/SKILL.md +108 -0
- package/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +126 -0
- package/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +127 -0
- package/skills/app-builder/templates/nextjs-static/TEMPLATE.md +172 -0
- package/skills/app-builder/templates/nuxt-app/TEMPLATE.md +139 -0
- package/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/skills/app-builder/templates/react-native-app/TEMPLATE.md +122 -0
- package/skills/appflow-wireframe/SKILL.md +173 -0
- package/skills/apple-design/SKILL.md +164 -0
- package/skills/architecture/SKILL.md +263 -0
- package/skills/audit-and-fix/SKILL.md +136 -0
- package/skills/authentication-best-practices/SKILL.md +232 -0
- package/skills/backend-security-expert/SKILL.md +148 -0
- package/skills/baseline-ui/SKILL.md +130 -0
- package/skills/bash-linux/SKILL.md +214 -0
- package/skills/behavioral-modes/SKILL.md +275 -0
- package/skills/better-colors/SKILL.md +191 -0
- package/skills/better-typography/SKILL.md +164 -0
- package/skills/better-ui/SKILL.md +193 -0
- package/skills/bolder/SKILL.md +124 -0
- package/skills/brainstorming/SKILL.md +534 -0
- package/skills/browser-audit/SKILL.md +170 -0
- package/skills/browser-native-ai/SKILL.md +147 -0
- package/skills/build-primitive/SKILL.md +125 -0
- package/skills/building-native-ui/SKILL.md +237 -0
- package/skills/cicd-pro/SKILL.md +487 -0
- package/skills/clarify/SKILL.md +130 -0
- package/skills/clean-code/SKILL.md +442 -0
- package/skills/cloud-architect/SKILL.md +484 -0
- package/skills/cobejs/SKILL.md +145 -0
- package/skills/code-review-checklist/SKILL.md +238 -0
- package/skills/codebase-design/SKILL.md +151 -0
- package/skills/colorize/SKILL.md +132 -0
- package/skills/compact-landing/SKILL.md +125 -0
- package/skills/company-logos/SKILL.md +129 -0
- package/skills/config-validator/SKILL.md +200 -0
- package/skills/containerization-pro/SKILL.md +497 -0
- package/skills/context-engineering-pro/SKILL.md +136 -0
- package/skills/create-design-md/SKILL.md +167 -0
- package/skills/critique/SKILL.md +154 -0
- package/skills/csharp-developer/SKILL.md +553 -0
- package/skills/data-validation-schemas/SKILL.md +372 -0
- package/skills/database-design/SKILL.md +294 -0
- package/skills/database-design/scripts/schema_validator.py +172 -0
- package/skills/delight/SKILL.md +121 -0
- package/skills/deployment-procedures/SKILL.md +207 -0
- package/skills/design-lab/SKILL.md +117 -0
- package/skills/devops-engineer/SKILL.md +380 -0
- package/skills/devops-incident-responder/SKILL.md +178 -0
- package/skills/diagnosing-bugs/SKILL.md +247 -0
- package/skills/distill/SKILL.md +120 -0
- package/skills/documentation-templates/SKILL.md +326 -0
- package/skills/domain-modeling/SKILL.md +136 -0
- package/skills/duckdb-analytical-sql/SKILL.md +125 -0
- package/skills/edge-ai-mobile/SKILL.md +116 -0
- package/skills/edge-computing/SKILL.md +218 -0
- package/skills/emil-design-eng/SKILL.md +209 -0
- package/skills/error-resilience/SKILL.md +478 -0
- package/skills/expo-router-v4/SKILL.md +146 -0
- package/skills/extract-design-system/SKILL.md +195 -0
- package/skills/fabel-protocol/SKILL.md +352 -0
- package/skills/fixing-accessibility/SKILL.md +162 -0
- package/skills/fixing-metadata/SKILL.md +158 -0
- package/skills/fixing-motion-performance/SKILL.md +153 -0
- package/skills/framer-motion-expert/SKILL.md +312 -0
- package/skills/frontend-design/SKILL.md +178 -0
- package/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/skills/frontend-security-expert/SKILL.md +131 -0
- package/skills/game-design-expert/SKILL.md +167 -0
- package/skills/game-engineering-expert/SKILL.md +183 -0
- package/skills/generative-ui-expert/SKILL.md +175 -0
- package/skills/geo-fundamentals/SKILL.md +183 -0
- package/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/skills/git-pro/SKILL.md +476 -0
- package/skills/github-operations/SKILL.md +370 -0
- package/skills/gpt-taste/SKILL.md +125 -0
- package/skills/gsap-core/SKILL.md +352 -0
- package/skills/gsap-frameworks/SKILL.md +243 -0
- package/skills/gsap-performance/SKILL.md +169 -0
- package/skills/gsap-plugins/SKILL.md +516 -0
- package/skills/gsap-react/SKILL.md +288 -0
- package/skills/gsap-scrolltrigger/SKILL.md +387 -0
- package/skills/gsap-timeline/SKILL.md +197 -0
- package/skills/gsap-utils/SKILL.md +374 -0
- package/skills/harden/SKILL.md +130 -0
- package/skills/harness-protocol/SKILL.md +115 -0
- package/skills/i18n-localization/SKILL.md +209 -0
- package/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/skills/impeccable/SKILL.md +127 -0
- package/skills/improve-codebase-architecture/SKILL.md +123 -0
- package/skills/improve-ui/SKILL.md +145 -0
- package/skills/intelligent-routing/SKILL.md +283 -0
- package/skills/knowledge-graph/SKILL.md +146 -0
- package/skills/landing-page/SKILL.md +140 -0
- package/skills/lint-and-validate/SKILL.md +299 -0
- package/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/skills/llm-engineering/SKILL.md +435 -0
- package/skills/local-first/SKILL.md +213 -0
- package/skills/local-first-architecture/SKILL.md +137 -0
- package/skills/lottie-animation/SKILL.md +137 -0
- package/skills/marquee-loop/SKILL.md +147 -0
- package/skills/masked-reveal/SKILL.md +305 -0
- package/skills/mcp-builder/SKILL.md +180 -0
- package/skills/micro-interaction/SKILL.md +321 -0
- package/skills/mobile-design/SKILL.md +320 -0
- package/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/skills/monorepo-management/SKILL.md +370 -0
- package/skills/morphing-icons/SKILL.md +423 -0
- package/skills/motion-engineering/SKILL.md +272 -0
- package/skills/nextjs-react-expert/SKILL.md +293 -0
- package/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/skills/nodejs-best-practices/SKILL.md +617 -0
- package/skills/observability/SKILL.md +378 -0
- package/skills/opentelemetry-observability/SKILL.md +125 -0
- package/skills/page-transition-animation/SKILL.md +161 -0
- package/skills/parallel-agents/SKILL.md +185 -0
- package/skills/performance-profiling/SKILL.md +305 -0
- package/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/skills/plan-writing/SKILL.md +202 -0
- package/skills/platform-engineer/SKILL.md +183 -0
- package/skills/platform-engineering-opentofu/SKILL.md +133 -0
- package/skills/playwright-ai-e2e/SKILL.md +126 -0
- package/skills/playwright-best-practices/SKILL.md +224 -0
- package/skills/polish/SKILL.md +114 -0
- package/skills/powershell-windows/SKILL.md +197 -0
- package/skills/pricing-page/SKILL.md +123 -0
- package/skills/product-aware-heuristics/SKILL.md +465 -0
- package/skills/progressive-blur/SKILL.md +155 -0
- package/skills/project-idioms/SKILL.md +166 -0
- package/skills/property-based-testing/SKILL.md +124 -0
- package/skills/python-patterns/SKILL.md +295 -0
- package/skills/python-pro/SKILL.md +380 -0
- package/skills/quieter/SKILL.md +124 -0
- package/skills/react-doctor/SKILL.md +126 -0
- package/skills/react-specialist/SKILL.md +355 -0
- package/skills/readme-builder/SKILL.md +345 -0
- package/skills/realtime-patterns/SKILL.md +358 -0
- package/skills/red-team-tactics/SKILL.md +266 -0
- package/skills/redesign-skill/SKILL.md +121 -0
- package/skills/review-animations/SKILL.md +120 -0
- package/skills/review-animations/STANDARDS.md +87 -0
- package/skills/rust-pro/SKILL.md +727 -0
- package/skills/seo-fundamentals/SKILL.md +214 -0
- package/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/skills/server-management/SKILL.md +253 -0
- package/skills/shadcn-ui-expert/SKILL.md +271 -0
- package/skills/shape/SKILL.md +131 -0
- package/skills/skill-creator/SKILL.md +136 -0
- package/skills/soft-skill/SKILL.md +128 -0
- package/skills/sounds-on-the-web/SKILL.md +151 -0
- package/skills/sql-pro/SKILL.md +699 -0
- package/skills/supabase-postgres-best-practices/SKILL.md +132 -0
- package/skills/svg-animation/SKILL.md +431 -0
- package/skills/swiftui-expert/SKILL.md +239 -0
- package/skills/swiss-design/SKILL.md +119 -0
- package/skills/system-design-pro/SKILL.md +393 -0
- package/skills/systematic-debugging/SKILL.md +198 -0
- package/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/tailwind-patterns/SKILL.md +658 -0
- package/skills/taste-skill/SKILL.md +127 -0
- package/skills/tdd-workflow/SKILL.md +179 -0
- package/skills/test-result-analyzer/SKILL.md +345 -0
- package/skills/testing-patterns/SKILL.md +609 -0
- package/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/skills/thermo-nuclear-code-quality-review/SKILL.md +137 -0
- package/skills/thinking-protocol/SKILL.md +97 -0
- package/skills/to-spring-or-not-to-spring/SKILL.md +118 -0
- package/skills/transitions-dev/SKILL.md +165 -0
- package/skills/trend-researcher/SKILL.md +273 -0
- package/skills/typescript-advanced/SKILL.md +381 -0
- package/skills/typeset/SKILL.md +135 -0
- package/skills/ui-reasoning-engine/SKILL.md +230 -0
- package/skills/ui-skill-packs/SKILL.md +132 -0
- package/skills/ui-skills-root/SKILL.md +144 -0
- package/skills/ui-ux-pro-max/SKILL.md +185 -0
- package/skills/ui-ux-researcher/SKILL.md +274 -0
- package/skills/vector-search-pgvector/SKILL.md +144 -0
- package/skills/verification-before-completion/SKILL.md +178 -0
- package/skills/vue-expert/SKILL.md +334 -0
- package/skills/vulnerability-scanner/SKILL.md +453 -0
- package/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/skills/web-accessibility-auditor/SKILL.md +254 -0
- package/skills/web-design-guidelines/SKILL.md +124 -0
- package/skills/web-quality-audit/SKILL.md +122 -0
- package/skills/webapp-testing/SKILL.md +203 -0
- package/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/skills/webgpu-performance/SKILL.md +163 -0
- package/skills/whimsy-injector/SKILL.md +380 -0
- package/skills/workflow-optimizer/SKILL.md +263 -0
- package/skills/zero-trust-passkeys/SKILL.md +156 -0
- package/.agent/skills/api-patterns/scripts/__pycache__/api_validator.cpython-311.pyc +0 -0
- package/.agent/skills/database-design/scripts/__pycache__/schema_validator.cpython-311.pyc +0 -0
- package/.agent/skills/frontend-design/scripts/__pycache__/accessibility_checker.cpython-311.pyc +0 -0
- package/.agent/skills/frontend-design/scripts/__pycache__/ux_audit.cpython-311.pyc +0 -0
- package/.agent/skills/geo-fundamentals/scripts/__pycache__/geo_checker.cpython-311.pyc +0 -0
- package/.agent/skills/i18n-localization/scripts/__pycache__/i18n_checker.cpython-311.pyc +0 -0
- package/.agent/skills/lint-and-validate/scripts/__pycache__/lint_runner.cpython-311.pyc +0 -0
- package/.agent/skills/lint-and-validate/scripts/__pycache__/type_coverage.cpython-311.pyc +0 -0
- package/.agent/skills/mobile-design/scripts/__pycache__/mobile_audit.cpython-311.pyc +0 -0
- package/.agent/skills/nextjs-react-expert/scripts/__pycache__/convert_rules.cpython-311.pyc +0 -0
- package/.agent/skills/nextjs-react-expert/scripts/__pycache__/react_performance_checker.cpython-311.pyc +0 -0
- package/.agent/skills/performance-profiling/scripts/__pycache__/lighthouse_audit.cpython-311.pyc +0 -0
- package/.agent/skills/seo-fundamentals/scripts/__pycache__/seo_checker.cpython-311.pyc +0 -0
- package/.agent/skills/testing-patterns/scripts/__pycache__/test_runner.cpython-311.pyc +0 -0
- package/.agent/skills/vulnerability-scanner/scripts/__pycache__/security_scan.cpython-311.pyc +0 -0
- package/.agent/skills/webapp-testing/scripts/__pycache__/playwright_runner.cpython-311.pyc +0 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: geo-fundamentals
|
|
3
|
+
description: Use when Generative Engine Optimization (GEO) mastery. Structuring content for LLM ingestion. Adapting SEO for AI interfaces (ChatGPT, Claude, Perplexity), optimizing markdown semantic hierarchies, citation structuring, minimizing boilerplate, reducing HTML DOM depth, and API-first content delivery. Use when making information discoverable not just to Google, but directly to AI indexing agents.
|
|
4
|
+
version: 5.0.0
|
|
5
|
+
last-updated: 2026-09-13
|
|
6
|
+
skills:
|
|
7
|
+
- seo-fundamentals
|
|
8
|
+
- browser-native-ai
|
|
9
|
+
- readme-builder
|
|
10
|
+
tools: Read, Grep, Glob, Bash, Edit, Write
|
|
11
|
+
scripts-binding:
|
|
12
|
+
- .agent/scripts/lint_runner.js
|
|
13
|
+
- .agent/scripts/verify_all.js
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Generative Engine Optimization (GEO)
|
|
17
|
+
|
|
18
|
+
## Mandatory Pre-Flight Context Inspection
|
|
19
|
+
|
|
20
|
+
Before generating, refactoring, or reviewing code in the `geo-fundamentals` domain, inspect these 5 critical parameters:
|
|
21
|
+
|
|
22
|
+
1. **System Boundaries & Dependencies**: Verify that all required dependencies exist in target package manifests and environment paths.
|
|
23
|
+
2. **Runtime Context & Platform Invariants**: Confirm target platform constraints (Node.js, Browser, Mobile OS, Edge runtime) before applying APIs.
|
|
24
|
+
3. **Execution Guardrails**: Identify potential side-effects, state mutations, and unhandled asynchronous exceptions.
|
|
25
|
+
4. **Validation & Type Contracts**: Validate input data schemas and strict type constraints across all module interfaces.
|
|
26
|
+
5. **Observability & Proof of Execution**: Ensure execution produces tangible verification signals (terminal output, tests, metrics).
|
|
27
|
+
|
|
28
|
+
## Activation Boundaries
|
|
29
|
+
|
|
30
|
+
- **Activate when:** Use when Generative Engine Optimization (GEO) mastery. Structuring content for LLM ingestion. Adapting SEO for AI interfaces (ChatGPT, Claude, Perplexity), optimizing markdown semantic hierarchies, citation structuring, minimizing boilerplate, reducing HTML DOM depth, and API-first content delivery. Use when making information discoverable not just to Google, but directly to AI indexing agents.
|
|
31
|
+
- **DO NOT activate when:** The task falls outside the `geo-fundamentals` domain or is managed by a different dedicated specialist.
|
|
32
|
+
|
|
33
|
+
## 🔁 Multi-Pass Execution Protocol
|
|
34
|
+
|
|
35
|
+
Execute all non-trivial tasks through this 7-pass cognitive loop:
|
|
36
|
+
|
|
37
|
+
| Pass | Phase | Core Action |
|
|
38
|
+
|:---|:---|:---|
|
|
39
|
+
| **Pass 1** | **Understand** | Deconstruct the user's explicit objective, implicit requirements, and platform constraints. |
|
|
40
|
+
| **Pass 2** | **Plan** | Decompose the task into smallest logical steps; map dependencies and required tool calls. |
|
|
41
|
+
| **Pass 3** | **Execute** | Implement the solution with production-grade craft, zero placeholders, and strict typing. |
|
|
42
|
+
| **Pass 4** | **Verify** | Run linters, unit tests, or compiler checks to validate structural correctness. |
|
|
43
|
+
| **Pass 5** | **Attack** | Perform an adversarial review searching for edge-case failures, race conditions, and traps. |
|
|
44
|
+
| **Pass 6** | **Improve** | Eliminate discovered friction, optimize performance, and harden error boundaries. |
|
|
45
|
+
| **Pass 7** | **Quality Gate** | Enforce Verification-Before-Completion (VBC) with concrete terminal proof before finalizing. |
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 🛠️ Technical Architecture & Reference Recipes
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## Hallucination Traps (Read First)
|
|
55
|
+
|
|
56
|
+
- ❌ Assuming SEO and GEO are the same -> ✅ GEO optimizes for AI crawlers and LLM ingestion, not just search engine ranking
|
|
57
|
+
- ❌ Using complex nested HTML for content -> ✅ AI parsers prefer flat, semantic HTML with clear heading hierarchies
|
|
58
|
+
- ❌ Ignoring structured data (JSON-LD) -> ✅ LLMs heavily weight structured data for citation and fact extraction
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 1. The Death of Boilerplate (Information Density)
|
|
65
|
+
|
|
66
|
+
When ChatGPT or Perplexity queries a website, it has a finite context window.
|
|
67
|
+
|
|
68
|
+
If your website contains 8,000 words of "fluff" marketing copy and only 200 words of actionable data (pricing, API limits, support contact), the LLM will truncate the page and hallucinates the rest.
|
|
69
|
+
|
|
70
|
+
### The GEO Markdown Fallback
|
|
71
|
+
|
|
72
|
+
Modern sites should natively serve structured markdown if they detect an AI User-Agent (like `ChatGPT-User` or `PerplexityBot`).
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
// Next.js Edge Middleware for GEO
|
|
76
|
+
export function middleware(req: NextRequest) {
|
|
77
|
+
const ua = req.headers.get('user-agent') || '';
|
|
78
|
+
const isBot = /ChatGPT|Perplexity|ClaudeBot/i.test(ua);
|
|
79
|
+
|
|
80
|
+
if (isBot) {
|
|
81
|
+
// Reroute the AI bot to a hyper-dense, unstyled Markdown data dump
|
|
82
|
+
// This removes 3MB of React DOM hierarchy, getting straight to the facts.
|
|
83
|
+
return NextResponse.rewrite(new URL(`/api/geo-export${req.nextUrl.pathname}`, req.url));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 2. Citation Optimization
|
|
91
|
+
|
|
92
|
+
LLMs (like Perplexity and Gemini Search) require explicit sources to reference your website in their output.
|
|
93
|
+
If a statistic on your site is hard to source, the AI will ignore it in favor of a competitor.
|
|
94
|
+
|
|
95
|
+
**Rule: Explicit Claim-to-Source Mapping**
|
|
96
|
+
Do not use vague external links at the bottom of the page. Anchor exact claims to explicit references directly within the text block. Use standardized `<cite>` tags or JSON-LD.
|
|
97
|
+
|
|
98
|
+
```html
|
|
99
|
+
<!-- ❌ BAD: Vague SEO -->
|
|
100
|
+
<p>We are the fastest vector database on the market. Read our docs.</p>
|
|
101
|
+
|
|
102
|
+
<!-- ✅ GOOD: GEO Citation Architecture -->
|
|
103
|
+
<p>We process 10M vectors at 10ms latency (P99), making us 3x faster than Competitor A.</p>
|
|
104
|
+
<cite xmlns="http://schema.org" typeof="WebPage">
|
|
105
|
+
<span property="name">Benchmark Methodology 2026</span> -
|
|
106
|
+
<a property="url" href="/benchmarks-2026.pdf">[Source PDF]</a>
|
|
107
|
+
</cite>
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 3. High-Clarity Semantic Taxonomy
|
|
113
|
+
|
|
114
|
+
Traditional SEO relies heavily on long-tail keyword placement.
|
|
115
|
+
GEO relies heavily on **Taxonomy and Relational Mapping**. The LLM wants to know exactly _what_ entity this page represents.
|
|
116
|
+
|
|
117
|
+
**Implement Explicit FAQs:**
|
|
118
|
+
LLMs love QA formats because user prompts are usually questions.
|
|
119
|
+
Transform prose into rigid QA objects using standard semantic data blocks.
|
|
120
|
+
|
|
121
|
+
```html
|
|
122
|
+
<dl>
|
|
123
|
+
<dt><h3>What is the data retention limit for the Free Tier?</h3></dt>
|
|
124
|
+
<dd><p>The Free Tier limits data retention to precisely 14 rolling days.</p></dd>
|
|
125
|
+
|
|
126
|
+
<dt><h3>Does the platform support HIPAA compliance?</h3></dt>
|
|
127
|
+
<dd><p>Yes, Enterprise Tiers support full BAA HIPAA compliance parameters.</p></dd>
|
|
128
|
+
</dl>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 4. API Docs Readability (The Primary AI Target)
|
|
134
|
+
|
|
135
|
+
When an AI tries to write code using your product, it scrapes your API documentation.
|
|
136
|
+
|
|
137
|
+
1. **Eliminate Image-Based Architecture:** Highlighting your architecture solely in a PNG graphic is invisible. Describe the system architecture using text or standard Mermaid.js code blocks.
|
|
138
|
+
2. **Provide Concrete Copy-Paste Examples:** The easiest way to get an LLM to use your platform correctly is to ensure your docs contain perfectly working `curl`, `TypeScript`, and `Python` code snippets with zero external dependencies.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 🚨 Edge-Case & Failure Mode Matrix
|
|
143
|
+
|
|
144
|
+
| Scenario | Risk | Mitigation Strategy |
|
|
145
|
+
|:---|:---|:---|
|
|
146
|
+
| **Empty or Null Inputs** | Unhandled exception or unexpected rendering collapse | Enforce fallback guards, optional chaining, and explicit empty state handlers |
|
|
147
|
+
| **Network Timeout / Latency** | Hanging operations or duplicate side-effects | Implement bounded abort controllers, exponential backoff, and idempotency keys |
|
|
148
|
+
| **Concurrency / Race Conditions** | Stale state overwrite or inconsistent data mutations | Use atomic transactions, mutex locking, or cancel-on-resubmit controls |
|
|
149
|
+
| **Invalid Schema / Malformed Payload** | Downstream runtime errors or security injection | Validate boundary payloads with Zod/Pydantic schemas prior to execution |
|
|
150
|
+
| **Resource / Memory Saturation** | OOM errors, frame drops, or memory leaks | Clean up listeners, cancel active timers, and enforce pagination/virtualization |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 🤖 LLM-Specific Traps Table
|
|
155
|
+
|
|
156
|
+
| Anti-Pattern | What AI Commonly Does Wrong | What Is Actually Correct |
|
|
157
|
+
|:---|:---|:---|
|
|
158
|
+
| **Hallucinated Tool Capabilities** | Assuming an external library or CLI command exists without verification | Run a verification check or verify package.json before referencing tools |
|
|
159
|
+
| **Premature Completion Claim** | Declaring a task finished because code was generated without verification | Execute tests, linters, or terminal commands to provide concrete proof |
|
|
160
|
+
| **Context Bloat Dumping** | Pasting entire multi-thousand-line files into prompt context | Extract targeted excerpts, symbols, and signatures to preserve tokens |
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 🏛️ Tribunal Verification & Guardrails
|
|
165
|
+
|
|
166
|
+
**Active Reviewers:** `orchestrator` · `agent-organizer` · `logic-reviewer`
|
|
167
|
+
**Slash Command:** `/review` or `/tribunal-full`
|
|
168
|
+
|
|
169
|
+
### ✅ Pre-Flight Self-Audit Checklist
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
✅ Did I deconstruct the root objective before proposing architecture?
|
|
173
|
+
✅ Did I identify dependencies, bottlenecks, and parallelizable sub-tasks?
|
|
174
|
+
✅ Did I avoid over-engineering and select the simplest effective pattern?
|
|
175
|
+
✅ Did I verify assumptions with concrete file reads instead of speculation?
|
|
176
|
+
✅ Did I establish measurable verification criteria before completion?
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### 🛑 Verification-Before-Completion (VBC) Protocol
|
|
180
|
+
|
|
181
|
+
**CRITICAL:** You must follow a strict "evidence-based closeout" state machine.
|
|
182
|
+
- ❌ **Forbidden:** Declaring a task complete because the output "looks correct."
|
|
183
|
+
- ✅ **Required:** You are explicitly forbidden from finalizing any task without providing **concrete evidence** (terminal output, passing test suites, compiler success, or equivalent operational proof) that your output works as intended.
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
GEO Checker - Generative Engine Optimization Audit
|
|
4
|
+
Checks PUBLIC WEB CONTENT for AI citation readiness.
|
|
5
|
+
|
|
6
|
+
PURPOSE:
|
|
7
|
+
- Analyze pages that will be INDEXED by AI engines (ChatGPT, Perplexity, etc.)
|
|
8
|
+
- Check for structured data, author info, dates, FAQ sections
|
|
9
|
+
- Help content rank in AI-generated answers
|
|
10
|
+
|
|
11
|
+
WHAT IT CHECKS:
|
|
12
|
+
- HTML files (actual web pages)
|
|
13
|
+
- JSX/TSX files (React page components)
|
|
14
|
+
- NOT markdown files (those are developer docs, not public content)
|
|
15
|
+
|
|
16
|
+
Usage:
|
|
17
|
+
python geo_checker.py <project_path>
|
|
18
|
+
"""
|
|
19
|
+
import sys
|
|
20
|
+
import re
|
|
21
|
+
import json
|
|
22
|
+
from pathlib import Path
|
|
23
|
+
|
|
24
|
+
# Fix Windows console encoding
|
|
25
|
+
try:
|
|
26
|
+
sys.stdout.reconfigure(encoding='utf-8', errors='replace')
|
|
27
|
+
sys.stderr.reconfigure(encoding='utf-8', errors='replace')
|
|
28
|
+
except AttributeError:
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
# Directories to skip (not public content)
|
|
33
|
+
SKIP_DIRS = {
|
|
34
|
+
'node_modules', '.next', 'dist', 'build', '.git', '.github',
|
|
35
|
+
'__pycache__', '.vscode', '.idea', 'coverage', 'test', 'tests',
|
|
36
|
+
'__tests__', 'spec', 'docs', 'documentation'
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
# Files to skip (not public pages)
|
|
40
|
+
SKIP_FILES = {
|
|
41
|
+
'jest.config', 'webpack.config', 'vite.config', 'tsconfig',
|
|
42
|
+
'package.json', 'package-lock', 'yarn.lock', '.eslintrc',
|
|
43
|
+
'tailwind.config', 'postcss.config', 'next.config'
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def is_page_file(file_path: Path) -> bool:
|
|
48
|
+
"""Check if this file is likely a public-facing page."""
|
|
49
|
+
name = file_path.stem.lower()
|
|
50
|
+
|
|
51
|
+
# Skip config/utility files
|
|
52
|
+
if any(skip in name for skip in SKIP_FILES):
|
|
53
|
+
return False
|
|
54
|
+
|
|
55
|
+
# Skip test files
|
|
56
|
+
if name.endswith('.test') or name.endswith('.spec'):
|
|
57
|
+
return False
|
|
58
|
+
if name.startswith('test_') or name.startswith('spec_'):
|
|
59
|
+
return False
|
|
60
|
+
|
|
61
|
+
# Likely page indicators
|
|
62
|
+
page_indicators = ['page', 'index', 'home', 'about', 'contact', 'blog',
|
|
63
|
+
'post', 'article', 'product', 'service', 'landing']
|
|
64
|
+
|
|
65
|
+
# Check if it's in a pages/app directory (Next.js, etc.)
|
|
66
|
+
parts = [p.lower() for p in file_path.parts]
|
|
67
|
+
if 'pages' in parts or 'app' in parts or 'routes' in parts:
|
|
68
|
+
return True
|
|
69
|
+
|
|
70
|
+
# Check filename indicators
|
|
71
|
+
if any(ind in name for ind in page_indicators):
|
|
72
|
+
return True
|
|
73
|
+
|
|
74
|
+
# HTML files are usually pages
|
|
75
|
+
if file_path.suffix.lower() == '.html':
|
|
76
|
+
return True
|
|
77
|
+
|
|
78
|
+
return False
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def find_web_pages(project_path: Path) -> list:
|
|
82
|
+
"""Find public-facing web pages only."""
|
|
83
|
+
patterns = ['**/*.html', '**/*.htm', '**/*.jsx', '**/*.tsx']
|
|
84
|
+
|
|
85
|
+
files = []
|
|
86
|
+
for pattern in patterns:
|
|
87
|
+
for f in project_path.glob(pattern):
|
|
88
|
+
# Skip excluded directories
|
|
89
|
+
if any(skip in f.parts for skip in SKIP_DIRS):
|
|
90
|
+
continue
|
|
91
|
+
|
|
92
|
+
# Check if it's likely a page
|
|
93
|
+
if is_page_file(f):
|
|
94
|
+
files.append(f)
|
|
95
|
+
|
|
96
|
+
return files[:30] # Limit to 30 pages
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
def check_page(file_path: Path) -> dict:
|
|
100
|
+
"""Check a single web page for GEO elements."""
|
|
101
|
+
try:
|
|
102
|
+
content = file_path.read_text(encoding='utf-8', errors='ignore')
|
|
103
|
+
except Exception as e:
|
|
104
|
+
return {'file': str(file_path.name), 'passed': [], 'issues': [f"Error: {e}"], 'score': 0}
|
|
105
|
+
|
|
106
|
+
issues = []
|
|
107
|
+
passed = []
|
|
108
|
+
|
|
109
|
+
# 1. JSON-LD Structured Data (Critical for AI)
|
|
110
|
+
if 'application/ld+json' in content:
|
|
111
|
+
passed.append("JSON-LD structured data found")
|
|
112
|
+
if '"@type"' in content:
|
|
113
|
+
if 'Article' in content:
|
|
114
|
+
passed.append("Article schema present")
|
|
115
|
+
if 'FAQPage' in content:
|
|
116
|
+
passed.append("FAQ schema present")
|
|
117
|
+
if 'Organization' in content or 'Person' in content:
|
|
118
|
+
passed.append("Entity schema present")
|
|
119
|
+
else:
|
|
120
|
+
issues.append("No JSON-LD structured data (AI engines prefer structured content)")
|
|
121
|
+
|
|
122
|
+
# 2. Heading Structure
|
|
123
|
+
h1_count = len(re.findall(r'<h1[^>]*>', content, re.I))
|
|
124
|
+
h2_count = len(re.findall(r'<h2[^>]*>', content, re.I))
|
|
125
|
+
|
|
126
|
+
if h1_count == 1:
|
|
127
|
+
passed.append("Single H1 heading (clear topic)")
|
|
128
|
+
elif h1_count == 0:
|
|
129
|
+
issues.append("No H1 heading - page topic unclear")
|
|
130
|
+
else:
|
|
131
|
+
issues.append(f"Multiple H1 headings ({h1_count}) - confusing for AI")
|
|
132
|
+
|
|
133
|
+
if h2_count >= 2:
|
|
134
|
+
passed.append(f"{h2_count} H2 subheadings (good structure)")
|
|
135
|
+
else:
|
|
136
|
+
issues.append("Add more H2 subheadings for scannable content")
|
|
137
|
+
|
|
138
|
+
# 3. Author Attribution (E-E-A-T signal)
|
|
139
|
+
author_patterns = ['author', 'byline', 'written-by', 'contributor', 'rel="author"']
|
|
140
|
+
has_author = any(p in content.lower() for p in author_patterns)
|
|
141
|
+
if has_author:
|
|
142
|
+
passed.append("Author attribution found")
|
|
143
|
+
else:
|
|
144
|
+
issues.append("No author info (AI prefers attributed content)")
|
|
145
|
+
|
|
146
|
+
# 4. Publication Date (Freshness signal)
|
|
147
|
+
date_patterns = ['datePublished', 'dateModified', 'datetime=', 'pubdate', 'article:published']
|
|
148
|
+
has_date = any(re.search(p, content, re.I) for p in date_patterns)
|
|
149
|
+
if has_date:
|
|
150
|
+
passed.append("Publication date found")
|
|
151
|
+
else:
|
|
152
|
+
issues.append("No publication date (freshness matters for AI)")
|
|
153
|
+
|
|
154
|
+
# 5. FAQ Section (Highly citable)
|
|
155
|
+
faq_patterns = [r'<details', r'faq', r'frequently.?asked', r'"FAQPage"']
|
|
156
|
+
has_faq = any(re.search(p, content, re.I) for p in faq_patterns)
|
|
157
|
+
if has_faq:
|
|
158
|
+
passed.append("FAQ section detected (highly citable)")
|
|
159
|
+
|
|
160
|
+
# 6. Lists (Structured content)
|
|
161
|
+
list_count = len(re.findall(r'<(ul|ol)[^>]*>', content, re.I))
|
|
162
|
+
if list_count >= 2:
|
|
163
|
+
passed.append(f"{list_count} lists (structured content)")
|
|
164
|
+
|
|
165
|
+
# 7. Tables (Comparison data)
|
|
166
|
+
table_count = len(re.findall(r'<table[^>]*>', content, re.I))
|
|
167
|
+
if table_count >= 1:
|
|
168
|
+
passed.append(f"{table_count} table(s) (comparison data)")
|
|
169
|
+
|
|
170
|
+
# 8. Entity Recognition (E-E-A-T signal) - NEW 2025
|
|
171
|
+
entity_patterns = [
|
|
172
|
+
r'"@type"\s*:\s*"Organization"',
|
|
173
|
+
r'"@type"\s*:\s*"LocalBusiness"',
|
|
174
|
+
r'"@type"\s*:\s*"Brand"',
|
|
175
|
+
r'itemtype.*schema\.org/(Organization|Person|Brand)',
|
|
176
|
+
r'rel="author"'
|
|
177
|
+
]
|
|
178
|
+
has_entity = any(re.search(p, content, re.I) for p in entity_patterns)
|
|
179
|
+
if has_entity:
|
|
180
|
+
passed.append("Entity/Brand recognition (E-E-A-T)")
|
|
181
|
+
|
|
182
|
+
# 9. Original Statistics/Data (AI citation magnet) - NEW 2025
|
|
183
|
+
stat_patterns = [
|
|
184
|
+
r'\d+%', # Percentages
|
|
185
|
+
r'\$[\d,]+', # Dollar amounts
|
|
186
|
+
r'study\s+(shows|found)', # Research citations
|
|
187
|
+
r'according to', # Source attribution
|
|
188
|
+
r'data\s+(shows|reveals)', # Data-backed claims
|
|
189
|
+
r'\d+x\s+(faster|better|more)', # Comparison stats
|
|
190
|
+
r'(million|billion|trillion)', # Large numbers
|
|
191
|
+
]
|
|
192
|
+
stat_matches = sum(1 for p in stat_patterns if re.search(p, content, re.I))
|
|
193
|
+
if stat_matches >= 2:
|
|
194
|
+
passed.append("Original statistics/data (citation magnet)")
|
|
195
|
+
|
|
196
|
+
# 10. Conversational/Direct answers - NEW 2025
|
|
197
|
+
direct_answer_patterns = [
|
|
198
|
+
r'is defined as',
|
|
199
|
+
r'refers to',
|
|
200
|
+
r'means that',
|
|
201
|
+
r'the answer is',
|
|
202
|
+
r'in short,',
|
|
203
|
+
r'simply put,',
|
|
204
|
+
r'<dfn'
|
|
205
|
+
]
|
|
206
|
+
has_direct = any(re.search(p, content, re.I) for p in direct_answer_patterns)
|
|
207
|
+
if has_direct:
|
|
208
|
+
passed.append("Direct answer patterns (LLM-friendly)")
|
|
209
|
+
|
|
210
|
+
# Calculate score
|
|
211
|
+
total = len(passed) + len(issues)
|
|
212
|
+
score = (len(passed) / total * 100) if total > 0 else 0
|
|
213
|
+
|
|
214
|
+
return {
|
|
215
|
+
'file': str(file_path.name),
|
|
216
|
+
'passed': passed,
|
|
217
|
+
'issues': issues,
|
|
218
|
+
'score': round(score)
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
|
|
222
|
+
def main():
|
|
223
|
+
target = sys.argv[1] if len(sys.argv) > 1 else "."
|
|
224
|
+
target_path = Path(target).resolve()
|
|
225
|
+
|
|
226
|
+
print("\n" + "=" * 60)
|
|
227
|
+
print(" GEO CHECKER - AI Citation Readiness Audit")
|
|
228
|
+
print("=" * 60)
|
|
229
|
+
print(f"Project: {target_path}")
|
|
230
|
+
print("-" * 60)
|
|
231
|
+
|
|
232
|
+
# Find web pages only
|
|
233
|
+
pages = find_web_pages(target_path)
|
|
234
|
+
|
|
235
|
+
if not pages:
|
|
236
|
+
print("\n[!] No public web pages found.")
|
|
237
|
+
print(" Looking for: HTML, JSX, TSX files in pages/app directories")
|
|
238
|
+
print(" Skipping: docs, tests, config files, node_modules")
|
|
239
|
+
output = {"script": "geo_checker", "pages_found": 0, "passed": True}
|
|
240
|
+
print("\n" + json.dumps(output, indent=2))
|
|
241
|
+
sys.exit(0)
|
|
242
|
+
|
|
243
|
+
print(f"Found {len(pages)} public pages to analyze\n")
|
|
244
|
+
|
|
245
|
+
# Check each page
|
|
246
|
+
results = []
|
|
247
|
+
for page in pages:
|
|
248
|
+
result = check_page(page)
|
|
249
|
+
results.append(result)
|
|
250
|
+
|
|
251
|
+
# Print results
|
|
252
|
+
for result in results:
|
|
253
|
+
status = "[OK]" if result['score'] >= 60 else "[!]"
|
|
254
|
+
print(f"{status} {result['file']}: {result['score']}%")
|
|
255
|
+
if result['issues'] and result['score'] < 60:
|
|
256
|
+
for issue in result['issues'][:2]: # Show max 2 issues
|
|
257
|
+
print(f" - {issue}")
|
|
258
|
+
|
|
259
|
+
# Average score
|
|
260
|
+
avg_score = sum(r['score'] for r in results) / len(results) if results else 0
|
|
261
|
+
|
|
262
|
+
print("\n" + "=" * 60)
|
|
263
|
+
print(f"AVERAGE GEO SCORE: {avg_score:.0f}%")
|
|
264
|
+
print("=" * 60)
|
|
265
|
+
|
|
266
|
+
if avg_score >= 80:
|
|
267
|
+
print("[OK] Excellent - Content well-optimized for AI citations")
|
|
268
|
+
elif avg_score >= 60:
|
|
269
|
+
print("[OK] Good - Some improvements recommended")
|
|
270
|
+
elif avg_score >= 40:
|
|
271
|
+
print("[!] Needs work - Add structured elements")
|
|
272
|
+
else:
|
|
273
|
+
print("[X] Poor - Content needs GEO optimization")
|
|
274
|
+
|
|
275
|
+
# JSON output
|
|
276
|
+
output = {
|
|
277
|
+
"script": "geo_checker",
|
|
278
|
+
"project": str(target_path),
|
|
279
|
+
"pages_checked": len(results),
|
|
280
|
+
"average_score": round(avg_score),
|
|
281
|
+
"passed": avg_score >= 60
|
|
282
|
+
}
|
|
283
|
+
print("\n" + json.dumps(output, indent=2))
|
|
284
|
+
|
|
285
|
+
sys.exit(0 if avg_score >= 60 else 1)
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
if __name__ == "__main__":
|
|
289
|
+
main()
|