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.0Tested
Activity
New: be the first to try it
  1. 1{
  2. 2 "name": "website-traffic",
  3. 3 "owner": "slashclone",
  4. 4 "version": "0.1.0",
  5. 5 "type": "skill",
  6. 6 "description": "Get a web app found and learn where its sign-ups come from: sitemap, robots, canonical URLs, titles, noindex, share images, and JSON-LD (real prices, lists, FAQs), then first-touch attribution from UTM tags, ?ref= links, and referring sites that waits for analytics consent and is saved at sign-up. Includes a page checker, templates, and a launch channel checklist.",
  7. 7 "category": "content",
  8. 8 "license": "MIT",
  9. 9 "compat": ["claude-code"],
  10. 10 "permissions": {
  11. 11 "shell": ["node scripts/page-check.mjs"],
  12. 12 "files": {
  13. 13 "read": [
  14. 14 "./examples/**",
  15. 15 "./data/**",
  16. 16 "./templates/**",
  17. 17 "./src/**",
  18. 18 "./app/**",
  19. 19 "./public/**"
  20. 20 ],
  21. 21 "write": ["./out/page-check*"]
  22. 22 }
  23. 23 },
  24. 24 "tests": {
  25. 25 "cases": [
  26. 26 {
  27. 27 "name": "the example site has no problems",
  28. 28 "inputs": {},
  29. 29 "checks": [
  30. 30 {
  31. 31 "type": "command_exits_zero",
  32. 32 "command": "node scripts/page-check.mjs --pages examples/site --out out/page-check.json"
  33. 33 },
  34. 34 {
  35. 35 "type": "output_matches_schema",
  36. 36 "path": "out/page-check.json",
  37. 37 "schema": {
  38. 38 "type": "object",
  39. 39 "required": ["problems", "pages", "sitemap"],
  40. 40 "properties": {
  41. 41 "problems": { "type": "array", "maxItems": 0 },
  42. 42 "pages": { "type": "array", "minItems": 4, "maxItems": 4 },
  43. 43 "sitemap": { "type": "object", "properties": { "urls": { "const": 3 } } },
  44. 44 "robots": { "const": true }
  45. 45 }
  46. 46 }
  47. 47 }
  48. 48 ]
  49. 49 },
  50. 50 {
  51. 51 "name": "catches markup in an FAQ answer, a missing price, canonical, and share image",
  52. 52 "inputs": {
  53. 53 "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>"
  54. 54 },
  55. 55 "checks": [
  56. 56 {
  57. 57 "type": "command_exits_zero",
  58. 58 "command": "node scripts/page-check.mjs --pages data/bad --out out/page-check.json --report-only"
  59. 59 },
  60. 60 {
  61. 61 "type": "output_matches_schema",
  62. 62 "path": "out/page-check.json",
  63. 63 "schema": {
  64. 64 "type": "object",
  65. 65 "properties": {
  66. 66 "problems": { "type": "array", "minItems": 4, "maxItems": 4 }
  67. 67 }
  68. 68 }
  69. 69 }
  70. 70 ]
  71. 71 }
  72. 72 ]
  73. 73 }

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