Skip to content
SlashClone

Get found in search and see where sign-ups come from

@slashclone/website-traffic

Get your web app found in Google and AI search, and see which channels bring sign-ups. Sets up sitemap, robots, canonical URLs, share images, and structured data with a page checker, then consent-aware first-touch tracking from UTM tags and referral links, saved at sign-up. Includes a launch channel checklist. Engineering guidance, not legal advice.

SkillContentv0.1.1 (latest)Tested
Activity
New: be the first to try it
  1. 1{
  2. 2 "name": "website-traffic",
  3. 3 "owner": "slashclone",
  4. 4 "version": "0.1.1",
  5. 5 "type": "skill",
  6. 6 "title": "Get found in search and see where sign-ups come from",
  7. 7 "description": "Get your web app found in Google and AI search, and see which channels bring sign-ups. Sets up sitemap, robots, canonical URLs, share images, and structured data with a page checker, then consent-aware first-touch tracking from UTM tags and referral links, saved at sign-up. Includes a launch channel checklist. Engineering guidance, not legal advice.",
  8. 8 "category": "content",
  9. 9 "license": "MIT",
  10. 10 "compat": [
  11. 11 "claude-code"
  12. 12 ],
  13. 13 "permissions": {
  14. 14 "shell": [
  15. 15 "node scripts/page-check.mjs"
  16. 16 ],
  17. 17 "files": {
  18. 18 "read": [
  19. 19 "./examples/**",
  20. 20 "./data/**",
  21. 21 "./templates/**",
  22. 22 "./src/**",
  23. 23 "./app/**",
  24. 24 "./public/**"
  25. 25 ],
  26. 26 "write": [
  27. 27 "./out/page-check*"
  28. 28 ]
  29. 29 }
  30. 30 },
  31. 31 "tests": {
  32. 32 "cases": [
  33. 33 {
  34. 34 "name": "the example site has no problems",
  35. 35 "inputs": {},
  36. 36 "checks": [
  37. 37 {
  38. 38 "type": "command_exits_zero",
  39. 39 "command": "node scripts/page-check.mjs --pages examples/site --out out/page-check.json"
  40. 40 },
  41. 41 {
  42. 42 "type": "output_matches_schema",
  43. 43 "path": "out/page-check.json",
  44. 44 "schema": {
  45. 45 "type": "object",
  46. 46 "required": [
  47. 47 "problems",
  48. 48 "pages",
  49. 49 "sitemap"
  50. 50 ],
  51. 51 "properties": {
  52. 52 "problems": {
  53. 53 "type": "array",
  54. 54 "maxItems": 0
  55. 55 },
  56. 56 "pages": {
  57. 57 "type": "array",
  58. 58 "minItems": 4,
  59. 59 "maxItems": 4
  60. 60 },
  61. 61 "sitemap": {
  62. 62 "type": "object",
  63. 63 "properties": {
  64. 64 "urls": {
  65. 65 "const": 3
  66. 66 }
  67. 67 }
  68. 68 },
  69. 69 "robots": {
  70. 70 "const": true
  71. 71 }
  72. 72 }
  73. 73 }
  74. 74 }
  75. 75 ]
  76. 76 },
  77. 77 {
  78. 78 "name": "catches markup in an FAQ answer, a missing price, canonical, and share image",
  79. 79 "inputs": {
  80. 80 "data/bad/page.html": "<title>Pricing</title><script type=\"application/ld+json\">[{\"@type\":\"SoftwareApplication\",\"name\":\"App\",\"offers\":{\"@type\":\"Offer\",\"priceCurrency\":\"USD\"}},{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"Free?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"See <a href=\\\"/pricing\\\">pricing</a>.\"}}]}]</script>"
  81. 81 },
  82. 82 "checks": [
  83. 83 {
  84. 84 "type": "command_exits_zero",
  85. 85 "command": "node scripts/page-check.mjs --pages data/bad --out out/page-check.json --report-only"
  86. 86 },
  87. 87 {
  88. 88 "type": "output_matches_schema",
  89. 89 "path": "out/page-check.json",
  90. 90 "schema": {
  91. 91 "type": "object",
  92. 92 "properties": {
  93. 93 "problems": {
  94. 94 "type": "array",
  95. 95 "minItems": 4,
  96. 96 "maxItems": 4
  97. 97 }
  98. 98 }
  99. 99 }
  100. 100 }
  101. 101 ]
  102. 102 }
  103. 103 ]
  104. 104 }

Cookies that keep you signed in and remember these choices are always on. Everything else is off until you turn it on.