@jaimevalasek/aioson 1.6.0 → 1.7.0

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.
Files changed (252) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +729 -232
  3. package/docs/design-previews/pt.squarespace.com-homepage.html +889 -0
  4. package/docs/integrations/sdlc-genius-boundary.md +76 -0
  5. package/docs/integrations/sdlc-genius-eval-matrix.md +75 -0
  6. package/docs/integrations/sdlc-genius-install-checklist.md +93 -0
  7. package/docs/integrations/sdlc-genius-review-samples.md +86 -0
  8. package/docs/pt/README.md +3 -0
  9. package/docs/pt/agentes.md +1 -0
  10. package/docs/pt/comandos-cli.md +888 -2
  11. package/docs/pt/design-hybrid-forge.md +255 -6
  12. package/docs/pt/devlog-pipeline.md +270 -0
  13. package/docs/pt/fluxo-artefatos.md +178 -0
  14. package/docs/pt/hooks-session-guard.md +454 -0
  15. package/docs/pt/monitor-de-contexto.md +59 -5
  16. package/docs/pt/sdd-automation-scripts.md +557 -0
  17. package/docs/pt/site-forge.md +309 -0
  18. package/docs/pt/spec-learnings-pipeline.md +265 -0
  19. package/package.json +1 -1
  20. package/src/a2a/client.js +165 -0
  21. package/src/a2a/server.js +223 -0
  22. package/src/cli.js +235 -1
  23. package/src/commands/agent-audit.js +397 -0
  24. package/src/commands/agent-export-skill.js +229 -0
  25. package/src/commands/artifact-validate.js +189 -0
  26. package/src/commands/brief-gen.js +405 -0
  27. package/src/commands/brief-validate.js +65 -0
  28. package/src/commands/classify.js +256 -0
  29. package/src/commands/context-compact.js +49 -0
  30. package/src/commands/context-health.js +175 -0
  31. package/src/commands/context-monitor.js +71 -0
  32. package/src/commands/context-trim.js +177 -0
  33. package/src/commands/detect-test-runner.js +55 -0
  34. package/src/commands/devlog-export-brains.js +27 -0
  35. package/src/commands/devlog-process.js +292 -0
  36. package/src/commands/devlog-watch.js +131 -0
  37. package/src/commands/feature-close.js +165 -0
  38. package/src/commands/gate-check.js +228 -0
  39. package/src/commands/hooks-emit.js +253 -0
  40. package/src/commands/hooks-install.js +347 -0
  41. package/src/commands/learning-auto-promote.js +195 -0
  42. package/src/commands/learning-evolve.js +18 -9
  43. package/src/commands/learning-export.js +103 -0
  44. package/src/commands/learning-rollback.js +164 -0
  45. package/src/commands/live.js +25 -1
  46. package/src/commands/pattern-detect.js +33 -0
  47. package/src/commands/preflight-context.js +30 -0
  48. package/src/commands/preflight.js +208 -0
  49. package/src/commands/pulse-update.js +130 -0
  50. package/src/commands/runner-daemon.js +274 -0
  51. package/src/commands/runner-plan.js +70 -0
  52. package/src/commands/runner-queue-from-plan.js +166 -0
  53. package/src/commands/runner-queue.js +189 -0
  54. package/src/commands/runner-run.js +129 -0
  55. package/src/commands/runtime.js +47 -1
  56. package/src/commands/self-implement-loop.js +256 -0
  57. package/src/commands/session-guard.js +218 -0
  58. package/src/commands/sizing.js +165 -0
  59. package/src/commands/skill.js +65 -0
  60. package/src/commands/spec-checkpoint.js +177 -0
  61. package/src/commands/spec-status.js +79 -0
  62. package/src/commands/spec-sync.js +190 -0
  63. package/src/commands/spec-tasks.js +288 -0
  64. package/src/commands/squad-autorun.js +1220 -0
  65. package/src/commands/squad-bus.js +217 -0
  66. package/src/commands/squad-card.js +149 -0
  67. package/src/commands/squad-daemon.js +134 -0
  68. package/src/commands/squad-dependency-graph.js +164 -0
  69. package/src/commands/squad-review.js +106 -0
  70. package/src/commands/squad-scaffold.js +55 -0
  71. package/src/commands/squad-tool-register.js +157 -0
  72. package/src/commands/state-save.js +122 -0
  73. package/src/commands/update.js +2 -0
  74. package/src/commands/verify-gate.js +572 -0
  75. package/src/commands/workflow-execute.js +241 -0
  76. package/src/constants.js +9 -0
  77. package/src/install-profile.js +2 -2
  78. package/src/install-wizard.js +3 -2
  79. package/src/installer.js +6 -0
  80. package/src/lib/health-check.js +158 -0
  81. package/src/lib/hook-protocol.js +76 -0
  82. package/src/mcp/apps/squad-dashboard/app.js +163 -0
  83. package/src/mcp/apps/squad-dashboard/index.html +261 -0
  84. package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -0
  85. package/src/mcp/resources/squad-state.js +130 -0
  86. package/src/preflight-engine.js +443 -0
  87. package/src/runner/cascade.js +97 -0
  88. package/src/runner/cli-launcher.js +109 -0
  89. package/src/runner/plan-importer.js +63 -0
  90. package/src/runner/queue-store.js +159 -0
  91. package/src/runtime-store.js +61 -3
  92. package/src/squad/agent-teams-adapter.js +264 -0
  93. package/src/squad/brief-validator.js +350 -0
  94. package/src/squad/bus-bridge.js +140 -0
  95. package/src/squad/context-compactor.js +265 -0
  96. package/src/squad/cross-ai-synthesizer.js +250 -0
  97. package/src/squad/hooks-generator.js +196 -0
  98. package/src/squad/inter-squad-events.js +175 -0
  99. package/src/squad/intra-bus.js +345 -0
  100. package/src/squad/learning-extractor.js +213 -0
  101. package/src/squad/pattern-detector.js +365 -0
  102. package/src/squad/preflight-context.js +296 -0
  103. package/src/squad/recovery-context.js +242 -71
  104. package/src/squad/reflection.js +365 -0
  105. package/src/squad/squad-scaffold.js +177 -0
  106. package/src/squad/state-manager.js +310 -0
  107. package/src/squad/task-decomposer.js +652 -0
  108. package/src/squad/verify-gate.js +303 -0
  109. package/src/updater.js +4 -5
  110. package/src/worker-runner.js +186 -1
  111. package/template/.aioson/agents/analyst.md +62 -1
  112. package/template/.aioson/agents/architect.md +61 -1
  113. package/template/.aioson/agents/design-hybrid-forge.md +14 -0
  114. package/template/.aioson/agents/dev.md +242 -24
  115. package/template/.aioson/agents/deyvin.md +66 -8
  116. package/template/.aioson/agents/discovery-design-doc.md +44 -0
  117. package/template/.aioson/agents/genome.md +14 -0
  118. package/template/.aioson/agents/neo.md +78 -1
  119. package/template/.aioson/agents/orache.md +50 -4
  120. package/template/.aioson/agents/orchestrator.md +197 -1
  121. package/template/.aioson/agents/pm.md +35 -0
  122. package/template/.aioson/agents/product.md +50 -5
  123. package/template/.aioson/agents/profiler-enricher.md +14 -0
  124. package/template/.aioson/agents/profiler-forge.md +14 -0
  125. package/template/.aioson/agents/profiler-researcher.md +14 -0
  126. package/template/.aioson/agents/qa.md +172 -21
  127. package/template/.aioson/agents/setup.md +79 -9
  128. package/template/.aioson/agents/sheldon.md +131 -6
  129. package/template/.aioson/agents/site-forge.md +1753 -0
  130. package/template/.aioson/agents/squad.md +162 -0
  131. package/template/.aioson/agents/tester.md +53 -0
  132. package/template/.aioson/agents/ux-ui.md +34 -1
  133. package/template/.aioson/brains/README.md +128 -0
  134. package/template/.aioson/brains/_index.json +16 -0
  135. package/template/.aioson/brains/scripts/query.js +103 -0
  136. package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -0
  137. package/template/.aioson/config.md +143 -13
  138. package/template/.aioson/constitution.md +33 -0
  139. package/template/.aioson/context/project-pulse.md +34 -0
  140. package/template/.aioson/docs/LAYERS.md +79 -0
  141. package/template/.aioson/docs/README.md +76 -0
  142. package/template/.aioson/docs/example-external-api-context.md +72 -0
  143. package/template/.aioson/locales/en/agents/architect.md +17 -0
  144. package/template/.aioson/locales/en/agents/dev.md +79 -13
  145. package/template/.aioson/locales/en/agents/orache.md +6 -0
  146. package/template/.aioson/locales/en/agents/orchestrator.md +24 -0
  147. package/template/.aioson/locales/en/agents/product.md +50 -0
  148. package/template/.aioson/locales/en/agents/sheldon.md +115 -0
  149. package/template/.aioson/locales/en/agents/squad.md +14 -0
  150. package/template/.aioson/locales/en/agents/tester.md +6 -0
  151. package/template/.aioson/locales/es/agents/analyst.md +2 -0
  152. package/template/.aioson/locales/es/agents/architect.md +19 -0
  153. package/template/.aioson/locales/es/agents/dev.md +64 -4
  154. package/template/.aioson/locales/es/agents/deyvin.md +2 -0
  155. package/template/.aioson/locales/es/agents/discovery-design-doc.md +2 -0
  156. package/template/.aioson/locales/es/agents/genome.md +2 -0
  157. package/template/.aioson/locales/es/agents/neo.md +2 -0
  158. package/template/.aioson/locales/es/agents/orache.md +2 -0
  159. package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
  160. package/template/.aioson/locales/es/agents/pair.md +2 -0
  161. package/template/.aioson/locales/es/agents/pm.md +2 -0
  162. package/template/.aioson/locales/es/agents/product.md +52 -0
  163. package/template/.aioson/locales/es/agents/profiler-enricher.md +2 -0
  164. package/template/.aioson/locales/es/agents/profiler-forge.md +2 -0
  165. package/template/.aioson/locales/es/agents/profiler-researcher.md +2 -0
  166. package/template/.aioson/locales/es/agents/qa.md +2 -0
  167. package/template/.aioson/locales/es/agents/setup.md +2 -0
  168. package/template/.aioson/locales/es/agents/sheldon.md +117 -0
  169. package/template/.aioson/locales/es/agents/squad.md +16 -0
  170. package/template/.aioson/locales/es/agents/tester.md +9 -0
  171. package/template/.aioson/locales/es/agents/ux-ui.md +2 -0
  172. package/template/.aioson/locales/fr/agents/analyst.md +2 -0
  173. package/template/.aioson/locales/fr/agents/architect.md +19 -0
  174. package/template/.aioson/locales/fr/agents/dev.md +64 -4
  175. package/template/.aioson/locales/fr/agents/deyvin.md +2 -0
  176. package/template/.aioson/locales/fr/agents/discovery-design-doc.md +2 -0
  177. package/template/.aioson/locales/fr/agents/genome.md +2 -0
  178. package/template/.aioson/locales/fr/agents/neo.md +2 -0
  179. package/template/.aioson/locales/fr/agents/orache.md +2 -0
  180. package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
  181. package/template/.aioson/locales/fr/agents/pair.md +2 -0
  182. package/template/.aioson/locales/fr/agents/pm.md +2 -0
  183. package/template/.aioson/locales/fr/agents/product.md +52 -0
  184. package/template/.aioson/locales/fr/agents/profiler-enricher.md +2 -0
  185. package/template/.aioson/locales/fr/agents/profiler-forge.md +2 -0
  186. package/template/.aioson/locales/fr/agents/profiler-researcher.md +2 -0
  187. package/template/.aioson/locales/fr/agents/qa.md +2 -0
  188. package/template/.aioson/locales/fr/agents/setup.md +2 -0
  189. package/template/.aioson/locales/fr/agents/sheldon.md +117 -0
  190. package/template/.aioson/locales/fr/agents/squad.md +16 -0
  191. package/template/.aioson/locales/fr/agents/tester.md +9 -0
  192. package/template/.aioson/locales/fr/agents/ux-ui.md +2 -0
  193. package/template/.aioson/locales/pt-BR/agents/analyst.md +64 -3
  194. package/template/.aioson/locales/pt-BR/agents/architect.md +42 -0
  195. package/template/.aioson/locales/pt-BR/agents/dev.md +147 -14
  196. package/template/.aioson/locales/pt-BR/agents/deyvin.md +47 -0
  197. package/template/.aioson/locales/pt-BR/agents/neo.md +62 -1
  198. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +158 -2
  199. package/template/.aioson/locales/pt-BR/agents/pm.md +95 -1
  200. package/template/.aioson/locales/pt-BR/agents/product.md +145 -18
  201. package/template/.aioson/locales/pt-BR/agents/qa.md +16 -0
  202. package/template/.aioson/locales/pt-BR/agents/setup.md +101 -18
  203. package/template/.aioson/locales/pt-BR/agents/sheldon.md +132 -1
  204. package/template/.aioson/locales/pt-BR/agents/squad.md +14 -0
  205. package/template/.aioson/locales/pt-BR/agents/tester.md +449 -0
  206. package/template/.aioson/rules/README.md +69 -0
  207. package/template/.aioson/rules/data-format-convention.md +136 -0
  208. package/template/.aioson/rules/example-monetary-values.md +30 -0
  209. package/template/.aioson/schemas/squad-manifest.schema.json +124 -3
  210. package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -0
  211. package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -0
  212. package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -0
  213. package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -0
  214. package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -0
  215. package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -0
  216. package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -0
  217. package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +1 -0
  218. package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -0
  219. package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -0
  220. package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -0
  221. package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -0
  222. package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +35 -0
  223. package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -0
  224. package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -0
  225. package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -0
  226. package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +4 -1
  227. package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +15 -0
  228. package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +32 -0
  229. package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +20 -0
  230. package/template/.aioson/skills/process/simplify/SKILL.md +173 -0
  231. package/template/.aioson/skills/static/context-budget-guide.md +46 -0
  232. package/template/.aioson/skills/static/harness-sensors.md +74 -0
  233. package/template/.aioson/skills/static/multi-agent-patterns.md +43 -0
  234. package/template/.aioson/skills/static/react-motion-patterns.md +22 -0
  235. package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -0
  236. package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -0
  237. package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -0
  238. package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -0
  239. package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -0
  240. package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -0
  241. package/template/.aioson/skills/static/static-html-patterns.md +58 -1913
  242. package/template/.aioson/skills/static/threejs-patterns.md +929 -0
  243. package/template/.aioson/skills/static/web-research-cache.md +112 -0
  244. package/template/.aioson/tasks/implementation-plan.md +21 -1
  245. package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -0
  246. package/template/.claude/commands/aioson/agent/orache.md +5 -0
  247. package/template/.claude/commands/aioson/agent/sheldon.md +5 -0
  248. package/template/.claude/commands/aioson/agent/site-forge.md +5 -0
  249. package/template/AGENTS.md +55 -3
  250. package/template/CLAUDE.md +30 -0
  251. package/template/OPENCODE.md +4 -0
  252. package/template/researchs/.gitkeep +0 -0
@@ -98,9 +98,9 @@
98
98
  "title": { "type": "string" },
99
99
  "type": {
100
100
  "type": "string",
101
- "enum": ["worker", "agent", "clone", "assistant", "human-gate"],
101
+ "enum": ["worker", "agent", "clone", "assistant", "human-gate", "research", "reviewer", "skill"],
102
102
  "default": "agent",
103
- "description": "Executor type: worker (deterministic script, no LLM), agent (LLM with defined role), clone (cognitive replica of real person), assistant (domain specialist with behavioral profile), human-gate (human approval checkpoint)"
103
+ "description": "Executor type: worker (deterministic script, no LLM), agent (LLM with defined role), clone (cognitive replica of real person), assistant (domain specialist with behavioral profile), human-gate (human approval checkpoint), research (web research with cache, no LLM), reviewer (cross-AI review synthesis), skill (external Agent Skills Standard skill)"
104
104
  },
105
105
  "role": { "type": "string" },
106
106
  "file": { "type": "string" },
@@ -121,6 +121,14 @@
121
121
  "type": "string",
122
122
  "description": "Script path for worker executors"
123
123
  },
124
+ "skill": {
125
+ "type": "string",
126
+ "description": "Agent Skills Standard skill identifier (for type: 'skill'). E.g. '@anthropic/code-review'"
127
+ },
128
+ "source": {
129
+ "type": "string",
130
+ "description": "Skill source path or package. E.g. 'npm:@org/skill', './skills/my-skill/'"
131
+ },
124
132
  "domain": {
125
133
  "type": "string",
126
134
  "description": "Specialized domain for assistant executors"
@@ -198,11 +206,85 @@
198
206
  "order": { "type": "integer", "minimum": 1 },
199
207
  "file": { "type": "string", "description": "Path to the task .md file" },
200
208
  "input": { "type": "string", "description": "What this task receives" },
201
- "output": { "type": "string", "description": "What this task produces" }
209
+ "output": { "type": "string", "description": "What this task produces" },
210
+ "review_loop": {
211
+ "type": "boolean",
212
+ "default": false,
213
+ "description": "Enable evaluator-optimizer loop: dev implements, qa evaluates, repeat up to max_review_iterations"
214
+ },
215
+ "review_criteria": {
216
+ "type": "array",
217
+ "items": { "type": "string" },
218
+ "description": "Criteria the evaluator uses to PASS/FAIL the output (used with review_loop: true)"
219
+ },
220
+ "max_review_iterations": {
221
+ "type": "integer",
222
+ "minimum": 1,
223
+ "maximum": 5,
224
+ "default": 3,
225
+ "description": "Maximum dev→qa iterations before escalating to human (used with review_loop: true)"
226
+ },
227
+ "voting": {
228
+ "type": "object",
229
+ "description": "Sampling-and-Voting: run N parallel instances and reach consensus. Best for critical decisions.",
230
+ "properties": {
231
+ "instances": {
232
+ "type": "integer",
233
+ "minimum": 2,
234
+ "maximum": 10,
235
+ "default": 3,
236
+ "description": "Number of parallel instances to spawn"
237
+ },
238
+ "threshold": {
239
+ "type": "number",
240
+ "minimum": 0.5,
241
+ "maximum": 1,
242
+ "default": 0.66,
243
+ "description": "Minimum consensus fraction to accept result (0.66 = 66%)"
244
+ },
245
+ "on_no_consensus": {
246
+ "type": "string",
247
+ "enum": ["escalate", "use_majority", "fail"],
248
+ "default": "escalate",
249
+ "description": "What to do when consensus < threshold"
250
+ }
251
+ }
252
+ }
202
253
  }
203
254
  },
204
255
  "description": "Granular tasks within this executor, executed in order"
205
256
  },
257
+ "research": {
258
+ "type": "object",
259
+ "description": "Configuration for research executor type (type: 'research')",
260
+ "properties": {
261
+ "topic": { "type": "string", "description": "Cache key / topic slug (e.g. 'youtube-shorts-2026')" },
262
+ "urls": {
263
+ "type": "array",
264
+ "items": { "type": "string" },
265
+ "description": "URLs to scrape for this research topic"
266
+ },
267
+ "cache_hours": { "type": "integer", "default": 168, "description": "Cache TTL in hours (default 168 = 7 days)" },
268
+ "cache_dir": { "type": "string", "default": "researchs/", "description": "Base directory for research cache" },
269
+ "max_sources": { "type": "integer", "default": 5, "description": "Maximum number of URLs to scrape" }
270
+ }
271
+ },
272
+ "cross_ai": {
273
+ "type": "boolean",
274
+ "description": "If true (for reviewer type), send to multiple AI CLIs and synthesize responses"
275
+ },
276
+ "review": {
277
+ "type": "object",
278
+ "description": "Configuration for reviewer executor type",
279
+ "properties": {
280
+ "detect_clis": {
281
+ "type": "array",
282
+ "items": { "type": "string", "enum": ["claude", "gemini", "codex"] }
283
+ },
284
+ "exclude_current": { "type": "boolean", "default": true },
285
+ "synthesize_to": { "type": "string", "description": "Output path for REVIEWS.md" }
286
+ }
287
+ },
206
288
  "formats": {
207
289
  "type": "array",
208
290
  "items": { "type": "string" },
@@ -705,5 +787,44 @@
705
787
  }
706
788
  }
707
789
  },
790
+ "depends_on": {
791
+ "type": "array",
792
+ "description": "Inter-squad dependencies: this squad will consume published events from these squads before starting a run",
793
+ "items": {
794
+ "type": "object",
795
+ "required": ["squad", "event"],
796
+ "properties": {
797
+ "squad": {
798
+ "type": "string",
799
+ "pattern": "^[a-z0-9][a-z0-9-]*[a-z0-9]$",
800
+ "description": "Slug of the squad whose events this squad depends on"
801
+ },
802
+ "event": {
803
+ "type": "string",
804
+ "description": "Event pattern to subscribe to (e.g. 'episode.created', 'review.*', '*')"
805
+ },
806
+ "input_mapping": {
807
+ "type": "object",
808
+ "description": "Maps event payload fields to task context fields",
809
+ "additionalProperties": { "type": "string" }
810
+ }
811
+ }
812
+ }
813
+ },
814
+ "hooks": {
815
+ "type": "object",
816
+ "description": "Hook scripts that gate squad execution (exit 0=allow, exit 2=deny)",
817
+ "properties": {
818
+ "pre_run": {
819
+ "type": "string",
820
+ "description": "Shell command to run before squad:autorun starts. Exit code 2 aborts the run."
821
+ }
822
+ }
823
+ },
824
+ "subscriptions": {
825
+ "type": "array",
826
+ "description": "Event patterns this squad subscribes to (consumed at the start of each autorun). Short form of depends_on[*].event.",
827
+ "items": { "type": "string" }
828
+ },
708
829
  "additionalProperties": true
709
830
  }
@@ -0,0 +1,31 @@
1
+ {
2
+ "id": "pt.squarespace.com",
3
+ "name": "Squarespace Design System",
4
+ "source": "https://pt.squarespace.com/",
5
+ "extractedAt": "2026-03-31",
6
+ "theme": "light-dark",
7
+ "baseUnit": "4px",
8
+ "referenceSkill": null,
9
+ "type": "extracted",
10
+ "designPillars": [
11
+ "Sharp minimalism — zero border-radius",
12
+ "Bold typographic hierarchy — Clarkson font family",
13
+ "High contrast — black/white with teal accents"
14
+ ],
15
+ "colors": {
16
+ "primary": "#000000",
17
+ "accent": "#1E4C41",
18
+ "background": "#FFFFFF",
19
+ "surface": "#F5F5F4"
20
+ },
21
+ "fonts": {
22
+ "display": "Clarkson, Helvetica, sans-serif",
23
+ "body": "Helvetica Neue, Helvetica, Arial, sans-serif",
24
+ "serif": "Clarkson Serif, Georgia, serif"
25
+ },
26
+ "breakpoints": {
27
+ "desktop": 1440,
28
+ "tablet": 768,
29
+ "mobile": 390
30
+ }
31
+ }
@@ -0,0 +1,66 @@
1
+ # Squarespace (pt.squarespace.com) Design System
2
+
3
+ > Extracted from https://pt.squarespace.com/ on 2026-03-31.
4
+ > Deep analysis completed 2026-04-01 via static file extraction (CSS/JS/fonts/media from saved site).
5
+ > Visual clone skill — do not use in unrelated projects without adapting the tokens.
6
+
7
+ ## Identity
8
+
9
+ **Theme:** light (with dark hero/footer sections)
10
+ **Personality:** Clean, professional SaaS aesthetic with strong typographic hierarchy, minimal decoration, and bold black-white contrast punctuated by occasional teal accents.
11
+
12
+ ## Design pillars
13
+
14
+ 1. **Sharp minimalism** — Zero border-radius throughout; geometric precision dominates
15
+ 2. **Bold typographic hierarchy** — Large headlines (Clarkson 300), clear size differentiation
16
+ 3. **High contrast** — Black and white with teal accent; no gradients, no shadows
17
+
18
+ ## Animation philosophy
19
+
20
+ **CSS-first, zero third-party libraries.** No GSAP, no Framer Motion, no AOS, no Lottie.
21
+ All animations are pure `@keyframes` + class toggling + `IntersectionObserver`.
22
+
23
+ Signature effects:
24
+ - CTA hover: `mix-blend-mode: difference` pseudo-element (not a color transition)
25
+ - Mobile menu: `clip-path: polygon()` swipe animation (not `translateX`)
26
+ - Link underline: `background-position` animated on two linear-gradients
27
+ - Scroll reveals: `IntersectionObserver` adds `.in-view`, CSS handles transition
28
+
29
+ ## Local assets available
30
+
31
+ These files were extracted from the saved site and are ready to use directly:
32
+
33
+ **Fonts** (`public/fonts/`):
34
+ - `clarkson-300.woff2` — Clarkson Light (hero headlines)
35
+ - `clarkson-400.woff2` — Clarkson Regular (body, nav)
36
+ - `clarkson-500.woff2` — Clarkson Medium (CTAs, labels)
37
+ - `clarkson-serif-300.woff2` — Clarkson Serif Light
38
+ - `clarkson-serif-400.woff2` — Clarkson Serif Regular
39
+
40
+ **Videos** (`public/videos/pt.squarespace.com/`):
41
+ - `video-desktop.webm` + `.mp4` — Hero background video (1280×720)
42
+ - `video-mobile.webm` + `.mp4` — Hero background video, portrait-optimized
43
+ - `templates.webm` + `.mp4` — Template showcase animation
44
+ - `blueprint-ai.webm` + `.mp4` — AI blueprint feature demo
45
+ - `design-intelligence-3.mp4` — Design intelligence card video
46
+ - `conversion-centered.mp4` — Final CTA section video
47
+
48
+ > Reference files — replace with your own assets before publishing.
49
+
50
+ ## When to use
51
+
52
+ Activate when building projects that need a professional, clean SaaS website aesthetic inspired by Squarespace's homepage — minimal, typography-forward, with dark hero sections and teal accents.
53
+
54
+ ## Activation
55
+
56
+ Load `references/design-tokens.md` before writing any component.
57
+ Load `references/motion.md` before implementing any animation or interaction.
58
+ Load `references/components.md` to get the real class naming conventions and hover mechanics.
59
+
60
+ ## Skill files
61
+
62
+ - `references/design-tokens.md` — CSS custom properties (colors, typography, spacing, real easing curves)
63
+ - `references/components.md` — Component patterns, real class names, CTA hover mechanics
64
+ - `references/patterns.md` — Page layout patterns with real section IDs
65
+ - `references/motion.md` — All 12 extracted @keyframes, exact timings, animation usage map
66
+ - `references/websites.md` — Complete page topology including all 11 sections
@@ -0,0 +1,368 @@
1
+ # Components — pt.squarespace.com
2
+
3
+ ## Button
4
+
5
+ ### Variants
6
+
7
+ | Variant | Description | Token Usage |
8
+ |---------|-------------|-------------|
9
+ | `primary` | Solid white bg, dark text | `bg: white`, `color: black` |
10
+ | `secondary` | Ghost/outline style | `border: 1px solid var(--border)` |
11
+ | `inline` | Text with arrow suffix | `color: var(--text-primary)` |
12
+ | `cta--light` | For dark backgrounds | `bg: white`, `color: black` |
13
+ | `cta--dark` | For light backgrounds | `bg: black`, `color: white` |
14
+
15
+ ### States
16
+
17
+ - **default:** Base colors per variant
18
+ - **hover (primary/secondary):** `mix-blend-mode: difference` pseudo-element scales in — NOT a color transition. The white pseudo-element with blend mode creates a color inversion effect.
19
+ - **active:** Slight scale (0.98) if any
20
+ - **disabled:** `opacity: 0.5`, `pointer-events: none`
21
+ - **loading:** Spinner or text change
22
+
23
+ ### CTA Hover Mechanic — mix-blend-mode: difference
24
+
25
+ **This is Squarespace's real CTA effect.** Do NOT implement as a simple `background-color` transition:
26
+
27
+ ```css
28
+ .cta--primary,
29
+ .cta--secondary {
30
+ position: relative;
31
+ overflow: hidden;
32
+ }
33
+
34
+ .cta--primary::after,
35
+ .cta--secondary::after {
36
+ content: '';
37
+ mix-blend-mode: difference;
38
+ background-color: white;
39
+ transform-origin: 0;
40
+ width: 100%;
41
+ height: 100%;
42
+ position: absolute;
43
+ top: 0;
44
+ left: 0;
45
+ transform: scaleX(0);
46
+ transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
47
+ }
48
+
49
+ .cta--primary:hover::after,
50
+ .cta--secondary:hover::after {
51
+ transform: scaleX(1);
52
+ }
53
+ ```
54
+
55
+ **Effect:** The white fill + `difference` blend mode inverts the button colors — a black button with white text becomes white with black text without any `color:` change.
56
+
57
+ ### DOM Structure
58
+ ```html
59
+ <a class="cta cta--primary cta--light">Button Text</a>
60
+ <!-- or -->
61
+ <button class="cta cta--primary">Button Text</button>
62
+ ```
63
+
64
+ ### Tokens Applied
65
+ - `font-family: var(--font-display)`
66
+ - `font-size: var(--text-sm)`
67
+ - `font-weight: var(--font-medium)`
68
+ - `padding: var(--space-3) var(--space-4)`
69
+ - `border-radius: var(--radius-none)` (0px)
70
+ - `transition: var(--transition-all)`
71
+ - `cursor: pointer`
72
+
73
+ ### Tertiary CTA — Sliding Underline (.cta--tertiary)
74
+
75
+ Text links with an animated dual-gradient underline. The underline slides in from left on hover and out to right on mouse-leave:
76
+
77
+ ```css
78
+ .cta--tertiary {
79
+ background-image:
80
+ linear-gradient(currentColor, currentColor),
81
+ linear-gradient(currentColor, currentColor);
82
+ background-size: 100% 1px, 0% 1px;
83
+ background-repeat: no-repeat;
84
+ background-position: -200% 100%, -100% 100%;
85
+ animation: 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) forwards ctaUnderlineSlideOut;
86
+ }
87
+
88
+ .cta--tertiary:hover {
89
+ animation: 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) forwards ctaUnderlineSlideIn;
90
+ }
91
+ ```
92
+
93
+ Requires `@keyframes ctaUnderlineSlideIn / ctaUnderlineSlideOut` from `motion.md`.
94
+
95
+ ---
96
+
97
+ ## Navigation
98
+
99
+ ### Variants
100
+
101
+ | Variant | Description |
102
+ |---------|-------------|
103
+ | `desktop` | Horizontal links, logo left, CTAs right |
104
+ | `mobile` | Hamburger + slide-out drawer |
105
+
106
+ ### States
107
+
108
+ - **default:** Transparent background initially
109
+ - **scrolled:** Solid background (e.g. `bg: white`) kicks in after ~50px scroll
110
+ - **mobile-open:** Hamburger becomes X, drawer wipes in from right via `clip-path` animation (NOT `translateX`)
111
+
112
+ ### Mobile Menu — clip-path Swipe
113
+
114
+ The mobile drawer does NOT use `transform: translateX`. It uses `clip-path: polygon()` animation:
115
+
116
+ ```css
117
+ /* Open */
118
+ .global-navigation__mobile-menu--open {
119
+ animation: 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards swipeIn;
120
+ }
121
+
122
+ /* Close */
123
+ .global-navigation__mobile-menu--close {
124
+ animation: 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards swipeOut;
125
+ }
126
+ ```
127
+
128
+ Requires `@keyframes swipeIn / swipeOut` from `motion.md`. The menu covers full viewport, background `rgb(0, 0, 0)` with white links.
129
+
130
+ ### Accordion (Mobile Nav)
131
+
132
+ Sub-menus use CSS grid transition — no JS height calculation:
133
+
134
+ ```css
135
+ .global-navigation__accordion-content {
136
+ display: grid;
137
+ grid-template-rows: 0fr;
138
+ transition: grid-template-rows 0.7s cubic-bezier(0.165, 0.84, 0.44, 1),
139
+ padding 0.7s cubic-bezier(0.165, 0.84, 0.44, 1);
140
+ }
141
+ .global-navigation__accordion-content--open {
142
+ grid-template-rows: 1fr;
143
+ }
144
+ ```
145
+
146
+ ### DOM Structure
147
+ ```html
148
+ <header class="global-navigation">
149
+ <a class="global-navigation__logo-link">Logo</a>
150
+ <nav class="global-navigation__links">
151
+ <a class="cta cta--inline">Products</a>
152
+ <a class="cta cta--inline">Solutions</a>
153
+ <button class="cta cta--inline">Resources</button>
154
+ </nav>
155
+ <div class="global-navigation__cta">
156
+ <a class="cta cta--inline">Login</a>
157
+ <a class="cta cta--primary cta--light">Get Started</a>
158
+ </div>
159
+ <button class="global-navigation__hamb">☰</button>
160
+ </header>
161
+ ```
162
+
163
+ ### Tokens Applied
164
+ - `font-family: var(--font-body)`
165
+ - `font-size: var(--text-base)`
166
+ - `font-weight: var(--font-normal)`
167
+ - `padding: var(--space-4) var(--space-4)`
168
+ - `gap: var(--space-4)`
169
+ - `transition: top var(--transition-medium) var(--ease-sqsp-cta)`
170
+
171
+ ---
172
+
173
+ ## Link
174
+
175
+ ### Variants
176
+
177
+ | Variant | Description | Context |
178
+ |---------|-------------|---------|
179
+ | `nav-link` | Navigation links | Header |
180
+ | `footer-link` | Footer links | Footer |
181
+ | `cta--inline` | Inline CTA with arrow | Various |
182
+
183
+ ### States
184
+
185
+ - **default:** `color: var(--text-primary)` or `var(--text-inverse)`
186
+ - **hover:** `color: var(--text-muted)`, optional underline
187
+
188
+ ### Tokens Applied
189
+ - `font-family: var(--font-body)`
190
+ - `font-size: var(--text-base)`
191
+ - `font-weight: var(--font-normal)`
192
+ - `transition: var(--transition-colors)`
193
+
194
+ ---
195
+
196
+ ## Input
197
+
198
+ ### Variants
199
+
200
+ | Variant | Description |
201
+ |---------|-------------|
202
+ | `text` | Standard text input |
203
+ | `domain` | Domain search input with search button |
204
+
205
+ ### States
206
+
207
+ - **default:** `border: 1px solid var(--border)`
208
+ - **focus:** Border color changes to accent
209
+ - **error:** Border color `var(--error)`
210
+ - **disabled:** `opacity: 0.5`
211
+
212
+ ### DOM Structure
213
+ ```html
214
+ <div class="input-wrapper">
215
+ <input type="text" class="input input--domain" placeholder="Digite seu domínio">
216
+ </div>
217
+ ```
218
+
219
+ ### Tokens Applied
220
+ - `background: var(--bg-base)`
221
+ - `border: 1px solid var(--border)`
222
+ - `border-radius: var(--radius-none)`
223
+ - `padding: var(--space-3)`
224
+ - `font-family: var(--font-body)`
225
+ - `font-size: var(--text-base)`
226
+
227
+ ---
228
+
229
+ ## Card
230
+
231
+ ### Variants
232
+
233
+ | Variant | Description |
234
+ |---------|-------------|
235
+ | `feature-card` | Icon + title + description |
236
+ | `stat-card` | Large number + label |
237
+ | `pricing-card` | Price + features + CTA |
238
+
239
+ ### States
240
+
241
+ - **default:** No shadow, flat design
242
+ - **hover:** May have subtle color shift
243
+
244
+ ### Tokens Applied
245
+ - `background: var(--bg-surface)` or transparent
246
+ - `border-radius: var(--radius-none)`
247
+ - `box-shadow: var(--shadow-sm)` (none typically)
248
+ - `padding: var(--space-5)`
249
+
250
+ ---
251
+
252
+ ## Card Carousel (Platform / One Platform section)
253
+
254
+ A horizontally scrollable row of cards that loop. Each card holds a `<video>` or `<img>` with an absolute text label.
255
+
256
+ ### DOM Structure
257
+ ```html
258
+ <div class="card-carousel">
259
+ <div class="card-carousel__track">
260
+ <div class="card-carousel__card">
261
+ <video autoplay muted loop playsinline preload="none">
262
+ <source src="/videos/website-editing.webm" type="video/webm">
263
+ </video>
264
+ <span class="card-carousel__label">Edição de website</span>
265
+ </div>
266
+ <!-- repeat cards -->
267
+ </div>
268
+ </div>
269
+ ```
270
+
271
+ ### Key CSS
272
+ ```css
273
+ .card-carousel__card {
274
+ position: relative;
275
+ flex-shrink: 0;
276
+ border-radius: var(--radius-none);
277
+ overflow: hidden;
278
+ }
279
+
280
+ .card-carousel__label {
281
+ position: absolute;
282
+ bottom: var(--space-4);
283
+ left: var(--space-4);
284
+ font-family: var(--font-display);
285
+ font-size: var(--text-sm);
286
+ color: var(--text-inverse);
287
+ background: rgba(0, 0, 0, 0.55);
288
+ padding: var(--space-2) var(--space-3);
289
+ }
290
+ ```
291
+
292
+ Cards use `preload="none"` — only hero video is eager-loaded.
293
+
294
+ ---
295
+
296
+ ## Section
297
+
298
+ ### Hero Section
299
+ - Full viewport dark background (`background: var(--bg-inverse)`)
300
+ - Video background: `<video autoPlay muted loop playsInline preload="auto">` with WebM + MP4 sources
301
+ - Dark overlay: `rgba(0, 0, 0, 0.52)` absolute layer over video
302
+ - Centered content
303
+ - Large headline: `font-family: var(--font-display)`, `font-size: var(--text-3xl)`, `font-weight: var(--font-light)`
304
+ - Single CTA button (`.cta--primary.cta--light`)
305
+
306
+ ### Content Section
307
+ - Max-width container
308
+ - Light background
309
+ - H2 headline
310
+ - Grid or flex content layout
311
+
312
+ ### CTA Section
313
+ - Colored background (teal or dark)
314
+ - Centered headline + CTA
315
+ - White text
316
+
317
+ ### Footer
318
+ - Dark background (`bg: var(--bg-inverse)`)
319
+ - 4-column grid of links
320
+ - Bottom row with legal text
321
+ - `padding: var(--space-16) var(--space-8)`
322
+
323
+ ---
324
+
325
+ ## Typography Components
326
+
327
+ ### Display Heading (H1)
328
+ ```css
329
+ font-family: var(--font-display);
330
+ font-size: var(--text-3xl);
331
+ font-weight: var(--font-light);
332
+ color: var(--text-inverse);
333
+ line-height: var(--leading-tight);
334
+ ```
335
+
336
+ ### Section Heading (H2)
337
+ ```css
338
+ font-family: var(--font-display);
339
+ font-size: var(--text-xl);
340
+ font-weight: var(--font-normal);
341
+ color: var(--text-primary);
342
+ line-height: var(--leading-normal);
343
+ ```
344
+
345
+ ### Serif Heading (H3)
346
+ ```css
347
+ font-family: var(--font-serif);
348
+ font-size: var(--text-lg);
349
+ font-weight: var(--font-normal);
350
+ color: var(--text-inverse);
351
+ ```
352
+
353
+ ### Body Text
354
+ ```css
355
+ font-family: var(--font-body);
356
+ font-size: var(--text-base);
357
+ font-weight: var(--font-normal);
358
+ color: var(--text-primary);
359
+ line-height: var(--leading-relaxed);
360
+ ```
361
+
362
+ ### Caption/Muted
363
+ ```css
364
+ font-family: var(--font-body);
365
+ font-size: var(--text-sm);
366
+ font-weight: var(--font-normal);
367
+ color: var(--text-muted);
368
+ ```