@su-record/vibe 2.8.51 → 2.8.53
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/.env.example +37 -37
- package/CLAUDE.md +169 -169
- package/LICENSE +21 -21
- package/README.ko.md +5 -5
- package/README.md +5 -5
- package/agents/architect-low.md +41 -41
- package/agents/architect-medium.md +59 -59
- package/agents/architect.md +80 -80
- package/agents/build-error-resolver.md +115 -115
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/docs/api-documenter.md +99 -99
- package/agents/docs/changelog-writer.md +93 -93
- package/agents/e2e-tester.md +294 -294
- package/agents/event/event-comms.md +78 -78
- package/agents/event/event-content.md +68 -68
- package/agents/event/event-image.md +95 -95
- package/agents/event/event-ops.md +84 -84
- package/agents/event/event-scheduler.md +69 -69
- package/agents/event/event-speaker.md +86 -86
- package/agents/explorer-low.md +42 -42
- package/agents/explorer-medium.md +59 -59
- package/agents/explorer.md +48 -48
- package/agents/implementer-low.md +43 -43
- package/agents/implementer-medium.md +52 -52
- package/agents/implementer.md +54 -54
- package/agents/junior-mentor.md +141 -141
- package/agents/planning/requirements-analyst.md +84 -84
- package/agents/planning/ux-advisor.md +83 -83
- package/agents/qa/acceptance-tester.md +86 -86
- package/agents/qa/edge-case-finder.md +93 -93
- package/agents/qa/qa-coordinator.md +131 -131
- package/agents/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +199 -199
- package/agents/research/codebase-patterns-agent.md +157 -157
- package/agents/research/framework-docs-agent.md +188 -188
- package/agents/research/security-advisory-agent.md +213 -213
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +120 -120
- package/agents/tester.md +49 -49
- package/agents/ui/ui-a11y-auditor.md +93 -93
- package/agents/ui/ui-antipattern-detector.md +102 -102
- package/agents/ui/ui-dataviz-advisor.md +69 -69
- package/agents/ui/ui-design-system-gen.md +57 -57
- package/agents/ui/ui-industry-analyzer.md +49 -49
- package/agents/ui/ui-layout-architect.md +65 -65
- package/agents/ui/ui-stack-implementer.md +68 -68
- package/agents/ui/ux-compliance-reviewer.md +81 -81
- package/agents/ui-previewer.md +258 -258
- package/commands/vibe.analyze.md +379 -379
- package/commands/vibe.docs.md +32 -32
- package/commands/vibe.event.md +163 -163
- package/commands/vibe.figma.md +69 -69
- package/commands/vibe.review.md +686 -686
- package/commands/vibe.run.md +2276 -2276
- package/commands/vibe.spec.md +1195 -1195
- package/commands/vibe.spec.review.md +609 -609
- package/commands/vibe.trace.md +259 -259
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +510 -510
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/config.js +9 -9
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/figma.js +20 -20
- package/dist/cli/commands/info.js +53 -53
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +82 -15
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- package/dist/cli/commands/skills.js +5 -5
- package/dist/cli/commands/slack.js +10 -10
- package/dist/cli/commands/stats.js +6 -6
- package/dist/cli/commands/telegram.js +12 -12
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +51 -51
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +18 -18
- package/dist/cli/llm/gemini-commands.js +16 -16
- package/dist/cli/llm/gpt-commands.js +19 -19
- package/dist/cli/llm/help.js +21 -21
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +2 -0
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/cursor-agents.js +32 -32
- package/dist/cli/postinstall/cursor-rules.js +83 -83
- package/dist/cli/postinstall/cursor-skills.js +743 -743
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/cli/types.d.ts +12 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/IterationTracker.js +11 -11
- package/dist/infra/lib/PythonParser.js +108 -108
- package/dist/infra/lib/ReviewRace.js +96 -96
- package/dist/infra/lib/SkillFrontmatter.js +28 -28
- package/dist/infra/lib/SkillQualityGate.js +9 -9
- package/dist/infra/lib/SkillRepository.js +159 -159
- package/dist/infra/lib/TokenBudgetTracker.d.ts +13 -0
- package/dist/infra/lib/TokenBudgetTracker.d.ts.map +1 -1
- package/dist/infra/lib/TokenBudgetTracker.js +44 -3
- package/dist/infra/lib/TokenBudgetTracker.js.map +1 -1
- package/dist/infra/lib/UltraQA.js +99 -99
- package/dist/infra/lib/autonomy/AuditStore.js +41 -41
- package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
- package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
- package/dist/infra/lib/autonomy/PolicyEngine.d.ts +3 -3
- package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
- package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
- package/dist/infra/lib/embedding/VectorStore.js +22 -22
- package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
- package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
- package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
- package/dist/infra/lib/evolution/InsightStore.js +90 -90
- package/dist/infra/lib/evolution/ParityTester.js +57 -57
- package/dist/infra/lib/evolution/RollbackManager.js +5 -5
- package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
- package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
- package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
- package/dist/infra/lib/evolution/UsageTracker.js +28 -28
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js +4 -4
- package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/infra/lib/memory/MemorySearch.js +57 -57
- package/dist/infra/lib/memory/MemoryStorage.js +181 -181
- package/dist/infra/lib/memory/ObservationStore.js +28 -28
- package/dist/infra/lib/memory/ReflectionStore.js +30 -30
- package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
- package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
- package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
- package/dist/infra/orchestrator/AgentManager.js +12 -12
- package/dist/infra/orchestrator/AgentRegistry.js +65 -65
- package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/infra/orchestrator/parallelResearch.js +24 -24
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/dist/tools/semantic/astGrep.test.js +6 -6
- package/dist/tools/spec/prdParser.test.js +171 -171
- package/dist/tools/spec/specGenerator.js +169 -169
- package/dist/tools/spec/traceabilityMatrix.js +64 -64
- package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
- package/hooks/gemini-hooks.json +73 -73
- package/hooks/hooks.json +174 -170
- package/hooks/scripts/__tests__/keyword-detector.test.js +199 -199
- package/hooks/scripts/__tests__/pre-tool-guard.test.js +286 -286
- package/hooks/scripts/__tests__/sentinel-guard.test.js +210 -210
- package/hooks/scripts/auto-commit.js +97 -97
- package/hooks/scripts/auto-format.js +64 -64
- package/hooks/scripts/auto-test.js +81 -81
- package/hooks/scripts/code-check.js +268 -268
- package/hooks/scripts/codex-detect.js +46 -46
- package/hooks/scripts/codex-review-gate.js +80 -80
- package/hooks/scripts/command-log.js +32 -32
- package/hooks/scripts/context-save.js +353 -353
- package/hooks/scripts/devlog-gen.js +230 -0
- package/hooks/scripts/evolution-engine.js +91 -91
- package/hooks/scripts/figma-extract.js +635 -477
- package/hooks/scripts/hud-status.js +321 -321
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +572 -572
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pr-test-gate.js +52 -52
- package/hooks/scripts/pre-tool-guard.js +214 -159
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +131 -131
- package/hooks/scripts/session-start.js +177 -177
- package/hooks/scripts/skill-injector.js +83 -83
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +243 -243
- package/languages/csharp-unity.md +515 -515
- package/languages/gdscript-godot.md +470 -470
- package/languages/ruby-rails.md +489 -489
- package/languages/typescript-angular.md +433 -433
- package/languages/typescript-astro.md +416 -416
- package/languages/typescript-electron.md +406 -406
- package/languages/typescript-nestjs.md +524 -524
- package/languages/typescript-svelte.md +407 -407
- package/languages/typescript-tauri.md +365 -365
- package/package.json +101 -101
- package/skills/agents-md/SKILL.md +121 -121
- package/skills/agents-md/rubrics/what-to-keep.md +49 -49
- package/skills/agents-md/templates/agents-md.md +36 -36
- package/skills/arch-guard/SKILL.md +181 -181
- package/skills/arch-guard/agents/detector.md +48 -48
- package/skills/arch-guard/agents/reporter.md +48 -48
- package/skills/arch-guard/agents/rule-generator.md +49 -49
- package/skills/arch-guard/agents/violation-checker.md +51 -51
- package/skills/arch-guard/frameworks/clean-architecture.md +108 -108
- package/skills/arch-guard/frameworks/solid.md +102 -102
- package/skills/arch-guard/scripts/check-boundaries.js +90 -90
- package/skills/arch-guard/templates/arch-rules.json +47 -47
- package/skills/arch-guard/templates/violation-report.md +53 -53
- package/skills/brand-assets/SKILL.md +147 -147
- package/skills/brand-assets/rubrics/asset-checklist.md +98 -98
- package/skills/brand-assets/templates/brand-guide.md +161 -161
- package/skills/capability-loop/SKILL.md +168 -168
- package/skills/capability-loop/agents/capability-designer.md +61 -61
- package/skills/capability-loop/agents/failure-analyst.md +55 -55
- package/skills/capability-loop/agents/implementer.md +50 -50
- package/skills/capability-loop/agents/tester.md +53 -53
- package/skills/capability-loop/templates/capability-spec.md +118 -118
- package/skills/capability-loop/templates/failure-analysis.md +118 -118
- package/skills/characterization-test/SKILL.md +207 -207
- package/skills/characterization-test/agents/behavior-capturer.md +50 -50
- package/skills/characterization-test/agents/coverage-checker.md +54 -54
- package/skills/characterization-test/agents/reporter.md +50 -50
- package/skills/characterization-test/agents/test-writer.md +49 -49
- package/skills/characterization-test/rubrics/coverage-criteria.md +53 -53
- package/skills/characterization-test/templates/test-template.ts +101 -101
- package/skills/chub-usage/SKILL.md +139 -139
- package/skills/claude-md-guide/SKILL.md +351 -351
- package/skills/claude-md-guide/rubrics/anti-patterns.md +88 -88
- package/skills/claude-md-guide/templates/claude-md.md +54 -54
- package/skills/commerce-patterns/SKILL.md +64 -64
- package/skills/commerce-patterns/rubrics/checkout-flow.md +48 -48
- package/skills/commerce-patterns/templates/product-schema.md +85 -85
- package/skills/commit-push-pr/SKILL.md +77 -77
- package/skills/commit-push-pr/agents/change-analyzer.md +55 -55
- package/skills/commit-push-pr/agents/message-writer.md +50 -50
- package/skills/commit-push-pr/agents/pr-writer.md +58 -58
- package/skills/commit-push-pr/agents/reviewer.md +52 -52
- package/skills/commit-push-pr/rubrics/commit-message.md +73 -73
- package/skills/commit-push-pr/templates/pr-body.md +63 -63
- package/skills/context7-usage/SKILL.md +106 -106
- package/skills/context7-usage/rubrics/when-to-use.md +50 -50
- package/skills/create-prd/SKILL.md +90 -90
- package/skills/create-prd/agents/edge-case-finder.md +48 -48
- package/skills/create-prd/agents/prioritizer.md +60 -60
- package/skills/create-prd/agents/requirements-writer.md +48 -48
- package/skills/create-prd/agents/researcher.md +55 -55
- package/skills/create-prd/agents/reviewer.md +54 -54
- package/skills/create-prd/frameworks/jobs-to-be-done.md +96 -96
- package/skills/create-prd/frameworks/rice-scoring.md +97 -97
- package/skills/create-prd/orchestrator.md +70 -70
- package/skills/create-prd/rubrics/completeness.md +58 -58
- package/skills/create-prd/templates/prd.md +139 -139
- package/skills/design-audit/SKILL.md +152 -152
- package/skills/design-audit/agents/a11y-auditor.md +43 -43
- package/skills/design-audit/agents/performance-auditor.md +46 -46
- package/skills/design-audit/agents/responsive-auditor.md +46 -46
- package/skills/design-audit/agents/scorer.md +47 -47
- package/skills/design-audit/agents/slop-detector.md +47 -47
- package/skills/design-audit/frameworks/core-web-vitals.md +107 -107
- package/skills/design-audit/frameworks/wcag-checklist.md +64 -64
- package/skills/design-audit/orchestrator.md +64 -64
- package/skills/design-audit/rubrics/ai-slop-patterns.md +83 -83
- package/skills/design-audit/rubrics/scoring.md +63 -63
- package/skills/design-audit/templates/report.md +88 -88
- package/skills/design-critique/SKILL.md +139 -139
- package/skills/design-critique/rubrics/ux-heuristics.md +143 -143
- package/skills/design-critique/templates/critique-report.md +86 -86
- package/skills/design-distill/SKILL.md +130 -130
- package/skills/design-distill/templates/design-system.md +132 -132
- package/skills/design-normalize/SKILL.md +133 -133
- package/skills/design-normalize/rubrics/token-naming.md +117 -117
- package/skills/design-normalize/templates/token-audit.md +89 -89
- package/skills/design-polish/SKILL.md +131 -131
- package/skills/design-polish/rubrics/polish-checklist.md +68 -68
- package/skills/design-polish/templates/polish-report.md +64 -64
- package/skills/design-teach/SKILL.md +182 -182
- package/skills/design-teach/rubrics/brand-personality.md +73 -73
- package/skills/design-teach/templates/design-context.json +36 -36
- package/skills/devlog/SKILL.md +143 -0
- package/skills/e2e-commerce/SKILL.md +62 -62
- package/skills/e2e-commerce/templates/test-scenarios.md +170 -170
- package/skills/event-comms/SKILL.md +162 -162
- package/skills/event-comms/templates/email-invite.md +99 -99
- package/skills/event-comms/templates/sns-post.md +133 -133
- package/skills/event-ops/SKILL.md +198 -198
- package/skills/event-ops/rubrics/contingency.md +85 -85
- package/skills/event-ops/templates/d-day-checklist.md +65 -65
- package/skills/event-planning/SKILL.md +132 -132
- package/skills/event-planning/rubrics/timeline.md +70 -70
- package/skills/event-planning/templates/event-plan.md +91 -91
- package/skills/exec-plan/SKILL.md +149 -149
- package/skills/exec-plan/agents/decomposer.md +47 -47
- package/skills/exec-plan/agents/dependency-mapper.md +44 -44
- package/skills/exec-plan/agents/estimator.md +43 -43
- package/skills/exec-plan/agents/validator.md +55 -55
- package/skills/exec-plan/orchestrator.md +70 -70
- package/skills/exec-plan/rubrics/complexity-scoring.md +75 -75
- package/skills/exec-plan/templates/plan.md +147 -147
- package/skills/git-worktree/SKILL.md +73 -73
- package/skills/git-worktree/rubrics/when-to-use.md +55 -55
- package/skills/handoff/SKILL.md +110 -110
- package/skills/handoff/agents/context-summarizer.md +51 -51
- package/skills/handoff/agents/document-writer.md +63 -63
- package/skills/handoff/agents/state-collector.md +53 -53
- package/skills/handoff/agents/verifier.md +48 -48
- package/skills/handoff/rubrics/completeness.md +62 -62
- package/skills/handoff/templates/handoff.md +107 -107
- package/skills/parallel-research/SKILL.md +89 -89
- package/skills/parallel-research/agents/best-practices.md +43 -43
- package/skills/parallel-research/agents/codebase-patterns.md +46 -46
- package/skills/parallel-research/agents/framework-docs.md +45 -45
- package/skills/parallel-research/agents/security-advisory.md +46 -46
- package/skills/parallel-research/agents/synthesizer.md +52 -52
- package/skills/parallel-research/experts/best-practices.md +50 -50
- package/skills/parallel-research/experts/codebase-patterns.md +70 -70
- package/skills/parallel-research/experts/framework-docs.md +65 -65
- package/skills/parallel-research/experts/security-advisory.md +69 -69
- package/skills/parallel-research/orchestrator.md +65 -65
- package/skills/parallel-research/templates/synthesis.md +101 -101
- package/skills/prioritization-frameworks/SKILL.md +87 -87
- package/skills/prioritization-frameworks/rubrics/frameworks.md +79 -79
- package/skills/prioritization-frameworks/templates/scoring-matrix.md +69 -69
- package/skills/priority-todos/SKILL.md +64 -64
- package/skills/priority-todos/rubrics/prioritization.md +70 -70
- package/skills/priority-todos/templates/todo-board.md +59 -59
- package/skills/seo-checklist/SKILL.md +58 -58
- package/skills/seo-checklist/frameworks/structured-data.md +153 -153
- package/skills/seo-checklist/rubrics/content-seo.md +42 -42
- package/skills/seo-checklist/rubrics/technical-seo.md +48 -48
- package/skills/techdebt/SKILL.md +124 -124
- package/skills/techdebt/agents/analyzer.md +50 -50
- package/skills/techdebt/agents/fixer.md +41 -41
- package/skills/techdebt/agents/reviewer.md +47 -47
- package/skills/techdebt/agents/scanner.md +44 -44
- package/skills/techdebt/orchestrator.md +70 -70
- package/skills/techdebt/rubrics/severity.md +51 -51
- package/skills/techdebt/scripts/scan.js +90 -90
- package/skills/techdebt/templates/report.md +86 -86
- package/skills/tool-fallback/SKILL.md +104 -104
- package/skills/tool-fallback/rubrics/fallback-chain.md +58 -58
- package/skills/typescript-advanced-types/SKILL.md +67 -67
- package/skills/typescript-advanced-types/rubrics/type-patterns.md +109 -109
- package/skills/ui-ux-pro-max/SKILL.md +236 -236
- package/skills/ui-ux-pro-max/reference/color-and-contrast.md +517 -517
- package/skills/ui-ux-pro-max/reference/interaction-design.md +544 -544
- package/skills/ui-ux-pro-max/reference/motion-design.md +591 -591
- package/skills/ui-ux-pro-max/reference/responsive-design.md +463 -463
- package/skills/ui-ux-pro-max/reference/spatial-design.md +390 -390
- package/skills/ui-ux-pro-max/reference/typography.md +455 -455
- package/skills/ui-ux-pro-max/reference/ux-writing.md +469 -469
- package/skills/ui-ux-pro-max/rubrics/interaction-states.md +83 -83
- package/skills/ui-ux-pro-max/rubrics/responsive-breakpoints.md +99 -99
- package/skills/user-personas/SKILL.md +75 -75
- package/skills/user-personas/rubrics/research-methods.md +56 -56
- package/skills/user-personas/templates/persona.md +89 -89
- package/skills/vercel-react-best-practices/SKILL.md +60 -60
- package/skills/vercel-react-best-practices/rubrics/performance.md +82 -82
- package/skills/vercel-react-best-practices/rubrics/server-components.md +86 -86
- package/skills/vibe.docs/SKILL.md +171 -171
- package/skills/vibe.docs/templates/architecture.md +80 -80
- package/skills/vibe.docs/templates/readme.md +84 -84
- package/skills/vibe.docs/templates/release-notes.md +74 -74
- package/skills/vibe.figma/SKILL.md +215 -982
- package/skills/vibe.figma/rubrics/extraction-checklist.md +51 -51
- package/skills/vibe.figma/templates/component-index.md +126 -126
- package/skills/vibe.figma/templates/figma-handoff.md +100 -100
- package/skills/vibe.figma/templates/remapped-tree.md +277 -277
- package/skills/vibe.figma.convert/SKILL.md +188 -511
- package/skills/vibe.figma.convert/rubrics/conversion-rules.md +129 -113
- package/skills/vibe.figma.convert/templates/component.md +140 -140
- package/skills/vibe.figma.extract/SKILL.md +179 -300
- package/skills/vibe.figma.extract/rubrics/image-rules.md +145 -137
- package/skills/video-production/SKILL.md +52 -52
- package/skills/video-production/rubrics/quality-checklist.md +58 -58
- package/skills/video-production/templates/production-plan.md +104 -104
- package/vibe/config.json +29 -29
- package/vibe/constitution.md +227 -227
- package/vibe/rules/principles/communication-guide.md +98 -98
- package/vibe/rules/principles/development-philosophy.md +52 -52
- package/vibe/rules/principles/quick-start.md +102 -102
- package/vibe/rules/quality/bdd-contract-testing.md +393 -393
- package/vibe/rules/quality/checklist.md +276 -276
- package/vibe/rules/quality/performance.md +236 -236
- package/vibe/rules/quality/testing-strategy.md +440 -440
- package/vibe/rules/standards/anti-patterns.md +541 -541
- package/vibe/rules/standards/code-structure.md +291 -291
- package/vibe/rules/standards/complexity-metrics.md +313 -313
- package/vibe/rules/standards/git-workflow.md +237 -237
- package/vibe/rules/standards/naming-conventions.md +198 -198
- package/vibe/rules/standards/security.md +305 -305
- package/vibe/rules/writing/document-style.md +74 -74
- package/vibe/setup.sh +31 -31
- package/vibe/templates/constitution-template.md +252 -252
- package/vibe/templates/contract-backend-template.md +526 -526
- package/vibe/templates/contract-frontend-template.md +599 -599
- package/vibe/templates/feature-template.md +96 -96
- package/vibe/templates/spec-template.md +221 -221
- package/vibe/ui-ux-data/charts.csv +26 -26
- package/vibe/ui-ux-data/colors.csv +97 -97
- package/vibe/ui-ux-data/icons.csv +101 -101
- package/vibe/ui-ux-data/landing.csv +31 -31
- package/vibe/ui-ux-data/products.csv +96 -96
- package/vibe/ui-ux-data/react-performance.csv +45 -45
- package/vibe/ui-ux-data/stacks/astro.csv +54 -54
- package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
- package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
- package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
- package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
- package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
- package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
- package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
- package/vibe/ui-ux-data/stacks/react.csv +54 -54
- package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
- package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
- package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
- package/vibe/ui-ux-data/stacks/vue.csv +50 -50
- package/vibe/ui-ux-data/styles.csv +68 -68
- package/vibe/ui-ux-data/typography.csv +57 -57
- package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
- package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
- package/vibe/ui-ux-data/version.json +31 -31
- package/vibe/ui-ux-data/web-interface.csv +31 -31
|
@@ -1,153 +1,153 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: structured-data
|
|
3
|
-
type: framework
|
|
4
|
-
applies-to: [seo-checklist]
|
|
5
|
-
format: JSON-LD
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Structured Data — JSON-LD Schema Templates
|
|
9
|
-
|
|
10
|
-
Embed in `<script type="application/ld+json">` in `<head>` or before `</body>`.
|
|
11
|
-
|
|
12
|
-
## Article
|
|
13
|
-
|
|
14
|
-
```json
|
|
15
|
-
{
|
|
16
|
-
"@context": "https://schema.org",
|
|
17
|
-
"@type": "Article",
|
|
18
|
-
"headline": "Article Title (max 110 chars)",
|
|
19
|
-
"description": "Article summary (max 160 chars)",
|
|
20
|
-
"image": "https://example.com/article-image.jpg",
|
|
21
|
-
"author": {
|
|
22
|
-
"@type": "Person",
|
|
23
|
-
"name": "Author Name",
|
|
24
|
-
"url": "https://example.com/authors/name"
|
|
25
|
-
},
|
|
26
|
-
"publisher": {
|
|
27
|
-
"@type": "Organization",
|
|
28
|
-
"name": "Publisher Name",
|
|
29
|
-
"logo": {
|
|
30
|
-
"@type": "ImageObject",
|
|
31
|
-
"url": "https://example.com/logo.png"
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
"datePublished": "2024-01-15T08:00:00+00:00",
|
|
35
|
-
"dateModified": "2024-01-20T10:00:00+00:00",
|
|
36
|
-
"mainEntityOfPage": {
|
|
37
|
-
"@type": "WebPage",
|
|
38
|
-
"@id": "https://example.com/article-slug"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**Required by Google**: `headline`, `image`, `datePublished`, `author`
|
|
44
|
-
|
|
45
|
-
## Product
|
|
46
|
-
|
|
47
|
-
```json
|
|
48
|
-
{
|
|
49
|
-
"@context": "https://schema.org",
|
|
50
|
-
"@type": "Product",
|
|
51
|
-
"name": "Product Name",
|
|
52
|
-
"description": "Product description",
|
|
53
|
-
"image": ["https://example.com/product-1.jpg", "https://example.com/product-2.jpg"],
|
|
54
|
-
"sku": "PROD-123",
|
|
55
|
-
"brand": {
|
|
56
|
-
"@type": "Brand",
|
|
57
|
-
"name": "Brand Name"
|
|
58
|
-
},
|
|
59
|
-
"offers": {
|
|
60
|
-
"@type": "Offer",
|
|
61
|
-
"url": "https://example.com/product",
|
|
62
|
-
"priceCurrency": "USD",
|
|
63
|
-
"price": "29.99",
|
|
64
|
-
"availability": "https://schema.org/InStock",
|
|
65
|
-
"itemCondition": "https://schema.org/NewCondition"
|
|
66
|
-
},
|
|
67
|
-
"aggregateRating": {
|
|
68
|
-
"@type": "AggregateRating",
|
|
69
|
-
"ratingValue": "4.5",
|
|
70
|
-
"reviewCount": "127"
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**Required by Google**: `name` + one of `review`, `aggregateRating`, or `offers`
|
|
76
|
-
|
|
77
|
-
## FAQ
|
|
78
|
-
|
|
79
|
-
```json
|
|
80
|
-
{
|
|
81
|
-
"@context": "https://schema.org",
|
|
82
|
-
"@type": "FAQPage",
|
|
83
|
-
"mainEntity": [
|
|
84
|
-
{
|
|
85
|
-
"@type": "Question",
|
|
86
|
-
"name": "What is the return policy?",
|
|
87
|
-
"acceptedAnswer": {
|
|
88
|
-
"@type": "Answer",
|
|
89
|
-
"text": "We accept returns within 30 days of purchase. Items must be unused and in original packaging."
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
"@type": "Question",
|
|
94
|
-
"name": "How long does shipping take?",
|
|
95
|
-
"acceptedAnswer": {
|
|
96
|
-
"@type": "Answer",
|
|
97
|
-
"text": "Standard shipping takes 3-5 business days. Express shipping is available for 1-2 day delivery."
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
]
|
|
101
|
-
}
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
**Note**: Each Q&A must appear as visible content on the page. Do not use for ad content.
|
|
105
|
-
|
|
106
|
-
## BreadcrumbList
|
|
107
|
-
|
|
108
|
-
```json
|
|
109
|
-
{
|
|
110
|
-
"@context": "https://schema.org",
|
|
111
|
-
"@type": "BreadcrumbList",
|
|
112
|
-
"itemListElement": [
|
|
113
|
-
{
|
|
114
|
-
"@type": "ListItem",
|
|
115
|
-
"position": 1,
|
|
116
|
-
"name": "Home",
|
|
117
|
-
"item": "https://example.com"
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"@type": "ListItem",
|
|
121
|
-
"position": 2,
|
|
122
|
-
"name": "Category",
|
|
123
|
-
"item": "https://example.com/category"
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
"@type": "ListItem",
|
|
127
|
-
"position": 3,
|
|
128
|
-
"name": "Product Name",
|
|
129
|
-
"item": "https://example.com/category/product"
|
|
130
|
-
}
|
|
131
|
-
]
|
|
132
|
-
}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
**Note**: `position` must be sequential starting at 1. Last item does not require `item` URL.
|
|
136
|
-
|
|
137
|
-
## Validation
|
|
138
|
-
|
|
139
|
-
| Tool | URL |
|
|
140
|
-
|------|-----|
|
|
141
|
-
| Google Rich Results Test | https://search.google.com/test/rich-results |
|
|
142
|
-
| Schema.org Validator | https://validator.schema.org |
|
|
143
|
-
| Chrome DevTools → Network | Filter for `application/ld+json` |
|
|
144
|
-
|
|
145
|
-
## Common Mistakes
|
|
146
|
-
|
|
147
|
-
| Mistake | Fix |
|
|
148
|
-
|---------|-----|
|
|
149
|
-
| Price without currency | Always include `priceCurrency` with `price` |
|
|
150
|
-
| Missing `datePublished` on Article | Required for Google News eligibility |
|
|
151
|
-
| FAQ content not visible on page | Google penalizes hidden Q&A markup |
|
|
152
|
-
| Breadcrumb positions not sequential | Use 1, 2, 3 — no skipping |
|
|
153
|
-
| Image URL not absolute | Always use full `https://` URLs |
|
|
1
|
+
---
|
|
2
|
+
name: structured-data
|
|
3
|
+
type: framework
|
|
4
|
+
applies-to: [seo-checklist]
|
|
5
|
+
format: JSON-LD
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Structured Data — JSON-LD Schema Templates
|
|
9
|
+
|
|
10
|
+
Embed in `<script type="application/ld+json">` in `<head>` or before `</body>`.
|
|
11
|
+
|
|
12
|
+
## Article
|
|
13
|
+
|
|
14
|
+
```json
|
|
15
|
+
{
|
|
16
|
+
"@context": "https://schema.org",
|
|
17
|
+
"@type": "Article",
|
|
18
|
+
"headline": "Article Title (max 110 chars)",
|
|
19
|
+
"description": "Article summary (max 160 chars)",
|
|
20
|
+
"image": "https://example.com/article-image.jpg",
|
|
21
|
+
"author": {
|
|
22
|
+
"@type": "Person",
|
|
23
|
+
"name": "Author Name",
|
|
24
|
+
"url": "https://example.com/authors/name"
|
|
25
|
+
},
|
|
26
|
+
"publisher": {
|
|
27
|
+
"@type": "Organization",
|
|
28
|
+
"name": "Publisher Name",
|
|
29
|
+
"logo": {
|
|
30
|
+
"@type": "ImageObject",
|
|
31
|
+
"url": "https://example.com/logo.png"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"datePublished": "2024-01-15T08:00:00+00:00",
|
|
35
|
+
"dateModified": "2024-01-20T10:00:00+00:00",
|
|
36
|
+
"mainEntityOfPage": {
|
|
37
|
+
"@type": "WebPage",
|
|
38
|
+
"@id": "https://example.com/article-slug"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Required by Google**: `headline`, `image`, `datePublished`, `author`
|
|
44
|
+
|
|
45
|
+
## Product
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"@context": "https://schema.org",
|
|
50
|
+
"@type": "Product",
|
|
51
|
+
"name": "Product Name",
|
|
52
|
+
"description": "Product description",
|
|
53
|
+
"image": ["https://example.com/product-1.jpg", "https://example.com/product-2.jpg"],
|
|
54
|
+
"sku": "PROD-123",
|
|
55
|
+
"brand": {
|
|
56
|
+
"@type": "Brand",
|
|
57
|
+
"name": "Brand Name"
|
|
58
|
+
},
|
|
59
|
+
"offers": {
|
|
60
|
+
"@type": "Offer",
|
|
61
|
+
"url": "https://example.com/product",
|
|
62
|
+
"priceCurrency": "USD",
|
|
63
|
+
"price": "29.99",
|
|
64
|
+
"availability": "https://schema.org/InStock",
|
|
65
|
+
"itemCondition": "https://schema.org/NewCondition"
|
|
66
|
+
},
|
|
67
|
+
"aggregateRating": {
|
|
68
|
+
"@type": "AggregateRating",
|
|
69
|
+
"ratingValue": "4.5",
|
|
70
|
+
"reviewCount": "127"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
**Required by Google**: `name` + one of `review`, `aggregateRating`, or `offers`
|
|
76
|
+
|
|
77
|
+
## FAQ
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
{
|
|
81
|
+
"@context": "https://schema.org",
|
|
82
|
+
"@type": "FAQPage",
|
|
83
|
+
"mainEntity": [
|
|
84
|
+
{
|
|
85
|
+
"@type": "Question",
|
|
86
|
+
"name": "What is the return policy?",
|
|
87
|
+
"acceptedAnswer": {
|
|
88
|
+
"@type": "Answer",
|
|
89
|
+
"text": "We accept returns within 30 days of purchase. Items must be unused and in original packaging."
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"@type": "Question",
|
|
94
|
+
"name": "How long does shipping take?",
|
|
95
|
+
"acceptedAnswer": {
|
|
96
|
+
"@type": "Answer",
|
|
97
|
+
"text": "Standard shipping takes 3-5 business days. Express shipping is available for 1-2 day delivery."
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Note**: Each Q&A must appear as visible content on the page. Do not use for ad content.
|
|
105
|
+
|
|
106
|
+
## BreadcrumbList
|
|
107
|
+
|
|
108
|
+
```json
|
|
109
|
+
{
|
|
110
|
+
"@context": "https://schema.org",
|
|
111
|
+
"@type": "BreadcrumbList",
|
|
112
|
+
"itemListElement": [
|
|
113
|
+
{
|
|
114
|
+
"@type": "ListItem",
|
|
115
|
+
"position": 1,
|
|
116
|
+
"name": "Home",
|
|
117
|
+
"item": "https://example.com"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"@type": "ListItem",
|
|
121
|
+
"position": 2,
|
|
122
|
+
"name": "Category",
|
|
123
|
+
"item": "https://example.com/category"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"@type": "ListItem",
|
|
127
|
+
"position": 3,
|
|
128
|
+
"name": "Product Name",
|
|
129
|
+
"item": "https://example.com/category/product"
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**Note**: `position` must be sequential starting at 1. Last item does not require `item` URL.
|
|
136
|
+
|
|
137
|
+
## Validation
|
|
138
|
+
|
|
139
|
+
| Tool | URL |
|
|
140
|
+
|------|-----|
|
|
141
|
+
| Google Rich Results Test | https://search.google.com/test/rich-results |
|
|
142
|
+
| Schema.org Validator | https://validator.schema.org |
|
|
143
|
+
| Chrome DevTools → Network | Filter for `application/ld+json` |
|
|
144
|
+
|
|
145
|
+
## Common Mistakes
|
|
146
|
+
|
|
147
|
+
| Mistake | Fix |
|
|
148
|
+
|---------|-----|
|
|
149
|
+
| Price without currency | Always include `priceCurrency` with `price` |
|
|
150
|
+
| Missing `datePublished` on Article | Required for Google News eligibility |
|
|
151
|
+
| FAQ content not visible on page | Google penalizes hidden Q&A markup |
|
|
152
|
+
| Breadcrumb positions not sequential | Use 1, 2, 3 — no skipping |
|
|
153
|
+
| Image URL not absolute | Always use full `https://` URLs |
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
# Content SEO Checklist
|
|
2
|
-
|
|
3
|
-
## Heading Structure
|
|
4
|
-
|
|
5
|
-
- [ ] Single `<h1>` per page — matches primary keyword intent
|
|
6
|
-
- [ ] Logical hierarchy: `h1 → h2 → h3` (no skipping levels)
|
|
7
|
-
- [ ] `<h2>` tags cover major subtopics (crawlers use for content outline)
|
|
8
|
-
- [ ] No headings used purely for styling — use CSS classes instead
|
|
9
|
-
|
|
10
|
-
## Keyword Placement
|
|
11
|
-
|
|
12
|
-
- [ ] Primary keyword in `<title>`, `<h1>`, first 100 words of body
|
|
13
|
-
- [ ] Secondary keywords in `<h2>` tags and body naturally
|
|
14
|
-
- [ ] Keyword in image `alt` text where relevant (descriptive, not stuffed)
|
|
15
|
-
- [ ] URL slug contains primary keyword (lowercase, hyphens, no stop words)
|
|
16
|
-
|
|
17
|
-
## Internal Linking
|
|
18
|
-
|
|
19
|
-
- [ ] Every important page reachable within 3 clicks from homepage
|
|
20
|
-
- [ ] Anchor text is descriptive ("authentication guide") not generic ("click here")
|
|
21
|
-
- [ ] New content links back to related existing content
|
|
22
|
-
- [ ] Orphan pages (no inbound internal links) have at least one link added
|
|
23
|
-
|
|
24
|
-
## Content Quality Signals
|
|
25
|
-
|
|
26
|
-
- [ ] Word count appropriate for topic depth (informational: 1000+, landing: 300-600)
|
|
27
|
-
- [ ] No duplicate content across pages — each URL has unique value
|
|
28
|
-
- [ ] Pagination uses `rel="next"` / `rel="prev"` or canonical to main page
|
|
29
|
-
- [ ] Thin content pages (< 300 words) either expanded or `noindex` applied
|
|
30
|
-
|
|
31
|
-
## Images & Media
|
|
32
|
-
|
|
33
|
-
- [ ] Every `<img>` has descriptive `alt` text (empty `alt=""` for decorative images)
|
|
34
|
-
- [ ] File names descriptive: `product-dashboard-screenshot.webp` not `IMG_4821.jpg`
|
|
35
|
-
- [ ] Use WebP or AVIF format where possible
|
|
36
|
-
- [ ] Videos have transcript or caption for accessibility and crawlability
|
|
37
|
-
|
|
38
|
-
## Localization (if applicable)
|
|
39
|
-
|
|
40
|
-
- [ ] `hreflang` tags on all translated pages
|
|
41
|
-
- [ ] Each locale version has its own canonical URL
|
|
42
|
-
- [ ] `hreflang` includes `x-default` for language selector page
|
|
1
|
+
# Content SEO Checklist
|
|
2
|
+
|
|
3
|
+
## Heading Structure
|
|
4
|
+
|
|
5
|
+
- [ ] Single `<h1>` per page — matches primary keyword intent
|
|
6
|
+
- [ ] Logical hierarchy: `h1 → h2 → h3` (no skipping levels)
|
|
7
|
+
- [ ] `<h2>` tags cover major subtopics (crawlers use for content outline)
|
|
8
|
+
- [ ] No headings used purely for styling — use CSS classes instead
|
|
9
|
+
|
|
10
|
+
## Keyword Placement
|
|
11
|
+
|
|
12
|
+
- [ ] Primary keyword in `<title>`, `<h1>`, first 100 words of body
|
|
13
|
+
- [ ] Secondary keywords in `<h2>` tags and body naturally
|
|
14
|
+
- [ ] Keyword in image `alt` text where relevant (descriptive, not stuffed)
|
|
15
|
+
- [ ] URL slug contains primary keyword (lowercase, hyphens, no stop words)
|
|
16
|
+
|
|
17
|
+
## Internal Linking
|
|
18
|
+
|
|
19
|
+
- [ ] Every important page reachable within 3 clicks from homepage
|
|
20
|
+
- [ ] Anchor text is descriptive ("authentication guide") not generic ("click here")
|
|
21
|
+
- [ ] New content links back to related existing content
|
|
22
|
+
- [ ] Orphan pages (no inbound internal links) have at least one link added
|
|
23
|
+
|
|
24
|
+
## Content Quality Signals
|
|
25
|
+
|
|
26
|
+
- [ ] Word count appropriate for topic depth (informational: 1000+, landing: 300-600)
|
|
27
|
+
- [ ] No duplicate content across pages — each URL has unique value
|
|
28
|
+
- [ ] Pagination uses `rel="next"` / `rel="prev"` or canonical to main page
|
|
29
|
+
- [ ] Thin content pages (< 300 words) either expanded or `noindex` applied
|
|
30
|
+
|
|
31
|
+
## Images & Media
|
|
32
|
+
|
|
33
|
+
- [ ] Every `<img>` has descriptive `alt` text (empty `alt=""` for decorative images)
|
|
34
|
+
- [ ] File names descriptive: `product-dashboard-screenshot.webp` not `IMG_4821.jpg`
|
|
35
|
+
- [ ] Use WebP or AVIF format where possible
|
|
36
|
+
- [ ] Videos have transcript or caption for accessibility and crawlability
|
|
37
|
+
|
|
38
|
+
## Localization (if applicable)
|
|
39
|
+
|
|
40
|
+
- [ ] `hreflang` tags on all translated pages
|
|
41
|
+
- [ ] Each locale version has its own canonical URL
|
|
42
|
+
- [ ] `hreflang` includes `x-default` for language selector page
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
# Technical SEO Checklist
|
|
2
|
-
|
|
3
|
-
## Meta Tags
|
|
4
|
-
|
|
5
|
-
- [ ] `<title>` unique per page, 50-60 characters
|
|
6
|
-
- [ ] `<meta name="description">` unique per page, 150-160 characters
|
|
7
|
-
- [ ] `<link rel="canonical">` on every page (including paginated, filtered)
|
|
8
|
-
- [ ] `<meta name="robots" content="index,follow">` — verify `noindex` is NOT in production
|
|
9
|
-
- [ ] `<html lang="{{LOCALE}}">` set correctly
|
|
10
|
-
|
|
11
|
-
## Open Graph / Social
|
|
12
|
-
|
|
13
|
-
- [ ] `og:title` — matches page title or optimized variant
|
|
14
|
-
- [ ] `og:description` — matches meta description or optimized variant
|
|
15
|
-
- [ ] `og:image` — exactly **1200x630px**, under 8MB
|
|
16
|
-
- [ ] `og:type` — `website` for homepage, `article` for posts, `product` for products
|
|
17
|
-
- [ ] `og:url` — canonical URL
|
|
18
|
-
- [ ] `twitter:card` — `summary_large_image` for image-rich pages
|
|
19
|
-
- [ ] `twitter:image` — same as og:image (some crawlers check separately)
|
|
20
|
-
|
|
21
|
-
## Structured Data (JSON-LD)
|
|
22
|
-
|
|
23
|
-
- [ ] Correct `@type` for content: `Article`, `Product`, `FAQPage`, `LocalBusiness`, `BreadcrumbList`
|
|
24
|
-
- [ ] `BreadcrumbList` on all non-root pages
|
|
25
|
-
- [ ] Validated with [Google Rich Results Test](https://search.google.com/test/rich-results)
|
|
26
|
-
- [ ] No structured data describing content not visible on the page
|
|
27
|
-
|
|
28
|
-
## Crawlability
|
|
29
|
-
|
|
30
|
-
- [ ] `robots.txt` present at domain root
|
|
31
|
-
- `Allow: /` for public pages
|
|
32
|
-
- `Disallow: /api/`, `/admin/`, `/_next/` (static assets excepted)
|
|
33
|
-
- `Sitemap: https://{{DOMAIN}}/sitemap.xml`
|
|
34
|
-
- [ ] `sitemap.xml` auto-generated, includes `<lastmod>` with real dates
|
|
35
|
-
- [ ] Sitemap submitted to Google Search Console
|
|
36
|
-
|
|
37
|
-
## Performance (Core Web Vitals)
|
|
38
|
-
|
|
39
|
-
| Metric | Target | Common Fix |
|
|
40
|
-
|--------|--------|------------|
|
|
41
|
-
| LCP | ≤ 2.5s | `<link rel="preload">` on hero image |
|
|
42
|
-
| INP | ≤ 200ms | Defer non-critical JS |
|
|
43
|
-
| CLS | ≤ 0.1 | Set `width`/`height` on all images; `min-height` on dynamic containers |
|
|
44
|
-
|
|
45
|
-
- [ ] Images have explicit `width` and `height` attributes
|
|
46
|
-
- [ ] Below-fold images use `loading="lazy"`
|
|
47
|
-
- [ ] Hero/LCP image uses `fetchpriority="high"` (not lazy)
|
|
48
|
-
- [ ] No render-blocking scripts without `defer` or `async`
|
|
1
|
+
# Technical SEO Checklist
|
|
2
|
+
|
|
3
|
+
## Meta Tags
|
|
4
|
+
|
|
5
|
+
- [ ] `<title>` unique per page, 50-60 characters
|
|
6
|
+
- [ ] `<meta name="description">` unique per page, 150-160 characters
|
|
7
|
+
- [ ] `<link rel="canonical">` on every page (including paginated, filtered)
|
|
8
|
+
- [ ] `<meta name="robots" content="index,follow">` — verify `noindex` is NOT in production
|
|
9
|
+
- [ ] `<html lang="{{LOCALE}}">` set correctly
|
|
10
|
+
|
|
11
|
+
## Open Graph / Social
|
|
12
|
+
|
|
13
|
+
- [ ] `og:title` — matches page title or optimized variant
|
|
14
|
+
- [ ] `og:description` — matches meta description or optimized variant
|
|
15
|
+
- [ ] `og:image` — exactly **1200x630px**, under 8MB
|
|
16
|
+
- [ ] `og:type` — `website` for homepage, `article` for posts, `product` for products
|
|
17
|
+
- [ ] `og:url` — canonical URL
|
|
18
|
+
- [ ] `twitter:card` — `summary_large_image` for image-rich pages
|
|
19
|
+
- [ ] `twitter:image` — same as og:image (some crawlers check separately)
|
|
20
|
+
|
|
21
|
+
## Structured Data (JSON-LD)
|
|
22
|
+
|
|
23
|
+
- [ ] Correct `@type` for content: `Article`, `Product`, `FAQPage`, `LocalBusiness`, `BreadcrumbList`
|
|
24
|
+
- [ ] `BreadcrumbList` on all non-root pages
|
|
25
|
+
- [ ] Validated with [Google Rich Results Test](https://search.google.com/test/rich-results)
|
|
26
|
+
- [ ] No structured data describing content not visible on the page
|
|
27
|
+
|
|
28
|
+
## Crawlability
|
|
29
|
+
|
|
30
|
+
- [ ] `robots.txt` present at domain root
|
|
31
|
+
- `Allow: /` for public pages
|
|
32
|
+
- `Disallow: /api/`, `/admin/`, `/_next/` (static assets excepted)
|
|
33
|
+
- `Sitemap: https://{{DOMAIN}}/sitemap.xml`
|
|
34
|
+
- [ ] `sitemap.xml` auto-generated, includes `<lastmod>` with real dates
|
|
35
|
+
- [ ] Sitemap submitted to Google Search Console
|
|
36
|
+
|
|
37
|
+
## Performance (Core Web Vitals)
|
|
38
|
+
|
|
39
|
+
| Metric | Target | Common Fix |
|
|
40
|
+
|--------|--------|------------|
|
|
41
|
+
| LCP | ≤ 2.5s | `<link rel="preload">` on hero image |
|
|
42
|
+
| INP | ≤ 200ms | Defer non-critical JS |
|
|
43
|
+
| CLS | ≤ 0.1 | Set `width`/`height` on all images; `min-height` on dynamic containers |
|
|
44
|
+
|
|
45
|
+
- [ ] Images have explicit `width` and `height` attributes
|
|
46
|
+
- [ ] Below-fold images use `loading="lazy"`
|
|
47
|
+
- [ ] Hero/LCP image uses `fetchpriority="high"` (not lazy)
|
|
48
|
+
- [ ] No render-blocking scripts without `defer` or `async`
|