winter-super-cli 2026.6.20 → 2026.6.22

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 (211) hide show
  1. package/memories/readme.md +35 -0
  2. package/package.json +6 -1
  3. package/resources/local/agents.md/AGENTS.md +43 -0
  4. package/resources/local/agents.md/LICENSE +21 -0
  5. package/resources/local/agents.md/README.md +49 -0
  6. package/resources/local/agents.md/components/AboutSection.tsx +37 -0
  7. package/resources/local/agents.md/components/CodeExample.tsx +207 -0
  8. package/resources/local/agents.md/components/CompatibilitySection.tsx +378 -0
  9. package/resources/local/agents.md/components/ExampleListSection.tsx +188 -0
  10. package/resources/local/agents.md/components/ExamplesSection.tsx +22 -0
  11. package/resources/local/agents.md/components/FAQSection.tsx +113 -0
  12. package/resources/local/agents.md/components/Footer.tsx +17 -0
  13. package/resources/local/agents.md/components/Hero.tsx +230 -0
  14. package/resources/local/agents.md/components/HowToUseSection.tsx +66 -0
  15. package/resources/local/agents.md/components/Section.tsx +44 -0
  16. package/resources/local/agents.md/components/ThreeCanvas.tsx +240 -0
  17. package/resources/local/agents.md/components/WhySection.tsx +64 -0
  18. package/resources/local/agents.md/components/icons/ClipboardIcon.tsx +27 -0
  19. package/resources/local/agents.md/components/icons/CopyIcon.tsx +15 -0
  20. package/resources/local/agents.md/components/icons/GitHubIcon.tsx +24 -0
  21. package/resources/local/agents.md/components/icons/LinkIcon.tsx +27 -0
  22. package/resources/local/agents.md/components/icons/UserIcon.tsx +27 -0
  23. package/resources/local/agents.md/next.config.ts +8 -0
  24. package/resources/local/agents.md/package.json +27 -0
  25. package/resources/local/agents.md/pages/_app.tsx +24 -0
  26. package/resources/local/agents.md/pages/_document.tsx +24 -0
  27. package/resources/local/agents.md/pages/index.tsx +160 -0
  28. package/resources/local/agents.md/pnpm-lock.yaml +2782 -0
  29. package/resources/local/agents.md/postcss.config.mjs +5 -0
  30. package/resources/local/agents.md/public/favicon-dark.png +0 -0
  31. package/resources/local/agents.md/public/favicon-light.png +0 -0
  32. package/resources/local/agents.md/public/favicon.ico +0 -0
  33. package/resources/local/agents.md/public/logos/aider.svg +16 -0
  34. package/resources/local/agents.md/public/logos/amp.svg +5 -0
  35. package/resources/local/agents.md/public/logos/augment.svg +9 -0
  36. package/resources/local/agents.md/public/logos/codex.svg +3 -0
  37. package/resources/local/agents.md/public/logos/copilot.svg +1 -0
  38. package/resources/local/agents.md/public/logos/cursor.svg +15 -0
  39. package/resources/local/agents.md/public/logos/devin-dark.svg +1 -0
  40. package/resources/local/agents.md/public/logos/devin-light.svg +1 -0
  41. package/resources/local/agents.md/public/logos/factory.svg +3 -0
  42. package/resources/local/agents.md/public/logos/gemini.svg +27 -0
  43. package/resources/local/agents.md/public/logos/goose.svg +12 -0
  44. package/resources/local/agents.md/public/logos/jules.svg +3 -0
  45. package/resources/local/agents.md/public/logos/junie.svg +5 -0
  46. package/resources/local/agents.md/public/logos/kilo-code.svg +43 -0
  47. package/resources/local/agents.md/public/logos/ona-dark.svg +3 -0
  48. package/resources/local/agents.md/public/logos/ona-light.svg +3 -0
  49. package/resources/local/agents.md/public/logos/opencode.svg +40 -0
  50. package/resources/local/agents.md/public/logos/phoenix.svg +44 -0
  51. package/resources/local/agents.md/public/logos/roocode.svg +3 -0
  52. package/resources/local/agents.md/public/logos/semgrep.svg +7 -0
  53. package/resources/local/agents.md/public/logos/uipath.svg +6 -0
  54. package/resources/local/agents.md/public/logos/vscode-dark.svg +19 -0
  55. package/resources/local/agents.md/public/logos/vscode-light.svg +12 -0
  56. package/resources/local/agents.md/public/logos/warp.svg +7 -0
  57. package/resources/local/agents.md/public/logos/windsurf-dark.svg +3 -0
  58. package/resources/local/agents.md/public/logos/windsurf-light.svg +3 -0
  59. package/resources/local/agents.md/public/logos/zed.svg +3 -0
  60. package/resources/local/agents.md/public/og.png +0 -0
  61. package/resources/local/agents.md/styles/globals.css +415 -0
  62. package/resources/local/agents.md/tsconfig.json +34 -0
  63. package/resources/local/awesome-design-md/README.md +197 -0
  64. package/resources/local/awesome-design-md/design-md/airbnb/DESIGN.md +545 -0
  65. package/resources/local/awesome-design-md/design-md/airbnb/README.md +5 -0
  66. package/resources/local/awesome-design-md/design-md/airtable/DESIGN.md +554 -0
  67. package/resources/local/awesome-design-md/design-md/airtable/README.md +5 -0
  68. package/resources/local/awesome-design-md/design-md/apple/DESIGN.md +562 -0
  69. package/resources/local/awesome-design-md/design-md/apple/README.md +5 -0
  70. package/resources/local/awesome-design-md/design-md/binance/DESIGN.md +634 -0
  71. package/resources/local/awesome-design-md/design-md/binance/README.md +5 -0
  72. package/resources/local/awesome-design-md/design-md/bmw/DESIGN.md +544 -0
  73. package/resources/local/awesome-design-md/design-md/bmw/README.md +5 -0
  74. package/resources/local/awesome-design-md/design-md/bmw-m/DESIGN.md +503 -0
  75. package/resources/local/awesome-design-md/design-md/bmw-m/README.md +5 -0
  76. package/resources/local/awesome-design-md/design-md/bugatti/DESIGN.md +454 -0
  77. package/resources/local/awesome-design-md/design-md/bugatti/README.md +5 -0
  78. package/resources/local/awesome-design-md/design-md/cal/DESIGN.md +542 -0
  79. package/resources/local/awesome-design-md/design-md/cal/README.md +5 -0
  80. package/resources/local/awesome-design-md/design-md/claude/DESIGN.md +589 -0
  81. package/resources/local/awesome-design-md/design-md/claude/README.md +5 -0
  82. package/resources/local/awesome-design-md/design-md/clay/DESIGN.md +541 -0
  83. package/resources/local/awesome-design-md/design-md/clay/README.md +5 -0
  84. package/resources/local/awesome-design-md/design-md/clickhouse/DESIGN.md +544 -0
  85. package/resources/local/awesome-design-md/design-md/clickhouse/README.md +5 -0
  86. package/resources/local/awesome-design-md/design-md/cohere/DESIGN.md +451 -0
  87. package/resources/local/awesome-design-md/design-md/cohere/README.md +5 -0
  88. package/resources/local/awesome-design-md/design-md/coinbase/DESIGN.md +570 -0
  89. package/resources/local/awesome-design-md/design-md/coinbase/README.md +5 -0
  90. package/resources/local/awesome-design-md/design-md/composio/DESIGN.md +506 -0
  91. package/resources/local/awesome-design-md/design-md/composio/README.md +5 -0
  92. package/resources/local/awesome-design-md/design-md/cursor/DESIGN.md +537 -0
  93. package/resources/local/awesome-design-md/design-md/cursor/README.md +5 -0
  94. package/resources/local/awesome-design-md/design-md/elevenlabs/DESIGN.md +504 -0
  95. package/resources/local/awesome-design-md/design-md/elevenlabs/README.md +5 -0
  96. package/resources/local/awesome-design-md/design-md/expo/DESIGN.md +526 -0
  97. package/resources/local/awesome-design-md/design-md/expo/README.md +5 -0
  98. package/resources/local/awesome-design-md/design-md/ferrari/DESIGN.md +531 -0
  99. package/resources/local/awesome-design-md/design-md/ferrari/README.md +5 -0
  100. package/resources/local/awesome-design-md/design-md/figma/DESIGN.md +578 -0
  101. package/resources/local/awesome-design-md/design-md/figma/README.md +5 -0
  102. package/resources/local/awesome-design-md/design-md/framer/DESIGN.md +544 -0
  103. package/resources/local/awesome-design-md/design-md/framer/README.md +5 -0
  104. package/resources/local/awesome-design-md/design-md/hashicorp/DESIGN.md +575 -0
  105. package/resources/local/awesome-design-md/design-md/hashicorp/README.md +5 -0
  106. package/resources/local/awesome-design-md/design-md/ibm/DESIGN.md +550 -0
  107. package/resources/local/awesome-design-md/design-md/ibm/README.md +5 -0
  108. package/resources/local/awesome-design-md/design-md/intercom/DESIGN.md +546 -0
  109. package/resources/local/awesome-design-md/design-md/intercom/README.md +5 -0
  110. package/resources/local/awesome-design-md/design-md/kraken/DESIGN.md +125 -0
  111. package/resources/local/awesome-design-md/design-md/kraken/README.md +5 -0
  112. package/resources/local/awesome-design-md/design-md/lamborghini/DESIGN.md +288 -0
  113. package/resources/local/awesome-design-md/design-md/lamborghini/README.md +5 -0
  114. package/resources/local/awesome-design-md/design-md/linear.app/DESIGN.md +548 -0
  115. package/resources/local/awesome-design-md/design-md/linear.app/README.md +5 -0
  116. package/resources/local/awesome-design-md/design-md/lovable/DESIGN.md +298 -0
  117. package/resources/local/awesome-design-md/design-md/lovable/README.md +5 -0
  118. package/resources/local/awesome-design-md/design-md/mastercard/DESIGN.md +365 -0
  119. package/resources/local/awesome-design-md/design-md/mastercard/README.md +5 -0
  120. package/resources/local/awesome-design-md/design-md/meta/DESIGN.md +683 -0
  121. package/resources/local/awesome-design-md/design-md/meta/README.md +5 -0
  122. package/resources/local/awesome-design-md/design-md/minimax/DESIGN.md +746 -0
  123. package/resources/local/awesome-design-md/design-md/minimax/README.md +5 -0
  124. package/resources/local/awesome-design-md/design-md/mintlify/DESIGN.md +852 -0
  125. package/resources/local/awesome-design-md/design-md/mintlify/README.md +5 -0
  126. package/resources/local/awesome-design-md/design-md/miro/DESIGN.md +825 -0
  127. package/resources/local/awesome-design-md/design-md/miro/README.md +5 -0
  128. package/resources/local/awesome-design-md/design-md/mistral.ai/DESIGN.md +773 -0
  129. package/resources/local/awesome-design-md/design-md/mistral.ai/README.md +5 -0
  130. package/resources/local/awesome-design-md/design-md/mongodb/DESIGN.md +767 -0
  131. package/resources/local/awesome-design-md/design-md/mongodb/README.md +5 -0
  132. package/resources/local/awesome-design-md/design-md/nike/DESIGN.md +575 -0
  133. package/resources/local/awesome-design-md/design-md/nike/README.md +5 -0
  134. package/resources/local/awesome-design-md/design-md/notion/DESIGN.md +821 -0
  135. package/resources/local/awesome-design-md/design-md/notion/README.md +5 -0
  136. package/resources/local/awesome-design-md/design-md/nvidia/DESIGN.md +640 -0
  137. package/resources/local/awesome-design-md/design-md/nvidia/README.md +5 -0
  138. package/resources/local/awesome-design-md/design-md/ollama/DESIGN.md +539 -0
  139. package/resources/local/awesome-design-md/design-md/ollama/README.md +5 -0
  140. package/resources/local/awesome-design-md/design-md/opencode.ai/DESIGN.md +521 -0
  141. package/resources/local/awesome-design-md/design-md/opencode.ai/README.md +5 -0
  142. package/resources/local/awesome-design-md/design-md/pinterest/DESIGN.md +597 -0
  143. package/resources/local/awesome-design-md/design-md/pinterest/README.md +5 -0
  144. package/resources/local/awesome-design-md/design-md/playstation/DESIGN.md +661 -0
  145. package/resources/local/awesome-design-md/design-md/playstation/README.md +5 -0
  146. package/resources/local/awesome-design-md/design-md/posthog/DESIGN.md +690 -0
  147. package/resources/local/awesome-design-md/design-md/posthog/README.md +5 -0
  148. package/resources/local/awesome-design-md/design-md/raycast/DESIGN.md +669 -0
  149. package/resources/local/awesome-design-md/design-md/raycast/README.md +5 -0
  150. package/resources/local/awesome-design-md/design-md/renault/DESIGN.md +589 -0
  151. package/resources/local/awesome-design-md/design-md/renault/README.md +5 -0
  152. package/resources/local/awesome-design-md/design-md/replicate/DESIGN.md +616 -0
  153. package/resources/local/awesome-design-md/design-md/replicate/README.md +5 -0
  154. package/resources/local/awesome-design-md/design-md/resend/DESIGN.md +585 -0
  155. package/resources/local/awesome-design-md/design-md/resend/README.md +5 -0
  156. package/resources/local/awesome-design-md/design-md/revolut/DESIGN.md +636 -0
  157. package/resources/local/awesome-design-md/design-md/revolut/README.md +5 -0
  158. package/resources/local/awesome-design-md/design-md/runwayml/DESIGN.md +244 -0
  159. package/resources/local/awesome-design-md/design-md/runwayml/README.md +5 -0
  160. package/resources/local/awesome-design-md/design-md/sanity/DESIGN.md +357 -0
  161. package/resources/local/awesome-design-md/design-md/sanity/README.md +5 -0
  162. package/resources/local/awesome-design-md/design-md/sentry/DESIGN.md +262 -0
  163. package/resources/local/awesome-design-md/design-md/sentry/README.md +5 -0
  164. package/resources/local/awesome-design-md/design-md/shopify/DESIGN.md +350 -0
  165. package/resources/local/awesome-design-md/design-md/shopify/README.md +5 -0
  166. package/resources/local/awesome-design-md/design-md/spacex/DESIGN.md +194 -0
  167. package/resources/local/awesome-design-md/design-md/spacex/README.md +5 -0
  168. package/resources/local/awesome-design-md/design-md/spotify/DESIGN.md +246 -0
  169. package/resources/local/awesome-design-md/design-md/spotify/README.md +5 -0
  170. package/resources/local/awesome-design-md/design-md/starbucks/DESIGN.md +580 -0
  171. package/resources/local/awesome-design-md/design-md/starbucks/README.md +5 -0
  172. package/resources/local/awesome-design-md/design-md/stripe/DESIGN.md +322 -0
  173. package/resources/local/awesome-design-md/design-md/stripe/README.md +5 -0
  174. package/resources/local/awesome-design-md/design-md/supabase/DESIGN.md +255 -0
  175. package/resources/local/awesome-design-md/design-md/supabase/README.md +5 -0
  176. package/resources/local/awesome-design-md/design-md/superhuman/DESIGN.md +252 -0
  177. package/resources/local/awesome-design-md/design-md/superhuman/README.md +5 -0
  178. package/resources/local/awesome-design-md/design-md/tesla/DESIGN.md +286 -0
  179. package/resources/local/awesome-design-md/design-md/tesla/README.md +5 -0
  180. package/resources/local/awesome-design-md/design-md/theverge/DESIGN.md +339 -0
  181. package/resources/local/awesome-design-md/design-md/theverge/README.md +5 -0
  182. package/resources/local/awesome-design-md/design-md/together.ai/DESIGN.md +263 -0
  183. package/resources/local/awesome-design-md/design-md/together.ai/README.md +5 -0
  184. package/resources/local/awesome-design-md/design-md/uber/DESIGN.md +295 -0
  185. package/resources/local/awesome-design-md/design-md/uber/README.md +5 -0
  186. package/resources/local/awesome-design-md/design-md/vercel/DESIGN.md +310 -0
  187. package/resources/local/awesome-design-md/design-md/vercel/README.md +5 -0
  188. package/resources/local/awesome-design-md/design-md/vodafone/DESIGN.md +423 -0
  189. package/resources/local/awesome-design-md/design-md/vodafone/README.md +5 -0
  190. package/resources/local/awesome-design-md/design-md/voltagent/DESIGN.md +323 -0
  191. package/resources/local/awesome-design-md/design-md/voltagent/README.md +5 -0
  192. package/resources/local/awesome-design-md/design-md/warp/DESIGN.md +253 -0
  193. package/resources/local/awesome-design-md/design-md/warp/README.md +5 -0
  194. package/resources/local/awesome-design-md/design-md/webflow/DESIGN.md +92 -0
  195. package/resources/local/awesome-design-md/design-md/webflow/README.md +5 -0
  196. package/resources/local/awesome-design-md/design-md/wired/DESIGN.md +278 -0
  197. package/resources/local/awesome-design-md/design-md/wired/README.md +5 -0
  198. package/resources/local/awesome-design-md/design-md/wise/DESIGN.md +173 -0
  199. package/resources/local/awesome-design-md/design-md/wise/README.md +5 -0
  200. package/resources/local/awesome-design-md/design-md/x.ai/DESIGN.md +257 -0
  201. package/resources/local/awesome-design-md/design-md/x.ai/README.md +5 -0
  202. package/resources/local/awesome-design-md/design-md/zapier/DESIGN.md +328 -0
  203. package/resources/local/awesome-design-md/design-md/zapier/README.md +5 -0
  204. package/resources/local/awesome-design-md/design-md-cli.js +167 -0
  205. package/resources/local/karpathy-tools/CLAUDE.md +65 -0
  206. package/resources/local/karpathy-tools/karpathy-md.js +140 -0
  207. package/scripts/audit-pack.js +21 -0
  208. package/skills/coding.md +87 -0
  209. package/skills/debug.md +63 -0
  210. package/skills/test.md +64 -0
  211. package/src/cli/tool-call-adapter.js +24 -2
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+
3
+ export default function Footer() {
4
+ return (
5
+ <footer className="px-6 py-12 text-center text-sm text-gray-600 dark:text-gray-400 mt-24 bg-gray-50 dark:bg-gray-900/40 border-t border-gray-100 dark:border-gray-800">
6
+ <p>
7
+ Copyright © AGENTS.md a Series of LF Projects, LLC
8
+ <br />
9
+ For web site terms of use, trademark policy and other project policies please see{" "}
10
+ <a href="https://lfprojects.org" target="_blank" className="underline hover:no-underline">
11
+ https://lfprojects.org
12
+ </a>
13
+ .
14
+ </p>
15
+ </footer>
16
+ );
17
+ }
@@ -0,0 +1,230 @@
1
+ "use client";
2
+
3
+ import { useEffect, useRef, useState } from "react";
4
+ import dynamic from "next/dynamic";
5
+
6
+ const ThreeCanvas = dynamic(() => import("./ThreeCanvas"), { ssr: false });
7
+
8
+ export default function Hero() {
9
+ const [isVisible, setIsVisible] = useState(false);
10
+
11
+ useEffect(() => {
12
+ setIsVisible(true);
13
+ }, []);
14
+
15
+ return (
16
+ <section className="relative min-h-screen flex items-center justify-center overflow-hidden">
17
+ {/* Three.js Background */}
18
+ <div className="three-canvas">
19
+ <ThreeCanvas />
20
+ </div>
21
+
22
+ {/* Spotlight Glow Effects */}
23
+ <div
24
+ className="absolute top-1/4 left-1/2 -translate-x-1/2 -translate-y-1/2"
25
+ style={{
26
+ width: "800px",
27
+ height: "800px",
28
+ background:
29
+ "radial-gradient(circle, rgba(26, 38, 255, 0.3) 0%, transparent 70%)",
30
+ filter: "blur(100px)",
31
+ animation: "pulse-glow 4s ease-in-out infinite",
32
+ }}
33
+ />
34
+ <div
35
+ className="absolute bottom-1/4 right-1/4"
36
+ style={{
37
+ width: "400px",
38
+ height: "400px",
39
+ background:
40
+ "radial-gradient(circle, rgba(0, 212, 255, 0.2) 0%, transparent 70%)",
41
+ filter: "blur(80px)",
42
+ animation: "pulse-glow 5s ease-in-out infinite 1s",
43
+ }}
44
+ />
45
+
46
+ {/* Main Content */}
47
+ <div className="relative z-10 text-center px-6 max-w-5xl mx-auto">
48
+ {/* Badge */}
49
+ <div
50
+ className={`inline-flex items-center gap-2 mb-8 ${
51
+ isVisible ? "fade-in-up" : "opacity-0"
52
+ }`}
53
+ >
54
+ <span className="w-2 h-2 bg-green-500 rounded-full animate-pulse" />
55
+ <span className="badge-pill">Available for opportunities</span>
56
+ </div>
57
+
58
+ {/* Name with 3D Effect */}
59
+ <h1
60
+ className={`text-6xl md:text-8xl font-bold mb-6 tracking-tight ${
61
+ isVisible ? "fade-in-up stagger-1" : "opacity-0"
62
+ }`}
63
+ style={{
64
+ background: "linear-gradient(135deg, #ffffff 0%, #a8a8a8 100%)",
65
+ WebkitBackgroundClip: "text",
66
+ WebkitTextFillColor: "transparent",
67
+ textShadow: "0 0 60px rgba(26, 38, 255, 0.5)",
68
+ }}
69
+ >
70
+ Antony Nguyễn
71
+ </h1>
72
+
73
+ {/* Title */}
74
+ <p
75
+ className={`text-xl md:text-2xl text-[var(--color-body)] mb-4 ${
76
+ isVisible ? "fade-in-up stagger-2" : "opacity-0"
77
+ }`}
78
+ >
79
+ <span className="text-white">Staff Software Engineer</span>
80
+ <span className="mx-3 text-[var(--color-muted)]">•</span>
81
+ <span>8+ Years Experience</span>
82
+ </p>
83
+
84
+ {/* Tagline */}
85
+ <p
86
+ className={`text-lg text-[var(--color-muted)] mb-12 max-w-2xl mx-auto ${
87
+ isVisible ? "fade-in-up stagger-3" : "opacity-0"
88
+ }`}
89
+ >
90
+ Building scalable systems and leading high-performance teams.
91
+ Passionate about clean architecture and developer experience.
92
+ </p>
93
+
94
+ {/* Terminal Mockup */}
95
+ <div
96
+ className={`terminal-window max-w-3xl mx-auto mb-12 ${
97
+ isVisible ? "fade-in-up stagger-4" : "opacity-0"
98
+ }`}
99
+ >
100
+ <div className="terminal-header">
101
+ <div className="terminal-dot bg-red-500" />
102
+ <div className="terminal-dot bg-yellow-500" />
103
+ <div className="terminal-dot bg-green-500" />
104
+ <span className="ml-4 text-xs text-[var(--color-muted)] font-mono">
105
+ antony@portfolio ~ bash
106
+ </span>
107
+ </div>
108
+ <div className="terminal-content text-left">
109
+ <p>
110
+ <span className="code-comment"># Welcome to my digital space</span>
111
+ </p>
112
+ <p className="mt-2">
113
+ <span className="text-[var(--color-accent-cyan)]">❯</span>{" "}
114
+ <span className="code-function">whoami</span>
115
+ </p>
116
+ <p className="text-white">antony-nguyen</p>
117
+ <p className="mt-2">
118
+ <span className="text-[var(--color-accent-cyan)]">❯</span>{" "}
119
+ <span className="code-function">cat</span>{" "}
120
+ <span className="code-string">skills.json</span>
121
+ </p>
122
+ <p>
123
+ <span className="code-variable">&quot;expertise&quot;</span>:{" "}
124
+ <span className="code-string">
125
+ [&quot;System Design&quot;, &quot;TypeScript&quot;, &quot;React&quot;,
126
+ &quot;Node.js&quot;, &quot;AWS&quot;, &quot;Leadership&quot;]
127
+ </span>
128
+ </p>
129
+ <p className="mt-2">
130
+ <span className="text-[var(--color-accent-cyan)]">❯</span>{" "}
131
+ <span className="code-function">cat</span>{" "}
132
+ <span className="code-string">achievements.md</span>
133
+ </p>
134
+ <p>
135
+ <span className="text-[var(--color-success)]">✓</span> Built
136
+ systems serving{" "}
137
+ <span className="code-number">10M+</span> users
138
+ </p>
139
+ <p>
140
+ <span className="text-[var(--color-success)]">✓</span> Led teams
141
+ of{" "}
142
+ <span className="code-number">15+</span> engineers
143
+ </p>
144
+ <p>
145
+ <span className="text-[var(--color-success)]">✓</span> Open source
146
+ contributor with{" "}
147
+ <span className="code-number">2.5k+</span> stars
148
+ </p>
149
+ <p className="mt-2">
150
+ <span className="text-[var(--color-accent-cyan)]">❯</span>{" "}
151
+ <span className="animate-pulse">_</span>
152
+ </p>
153
+ </div>
154
+ </div>
155
+
156
+ {/* CTA Buttons */}
157
+ <div
158
+ className={`flex flex-wrap justify-center gap-4 ${
159
+ isVisible ? "fade-in-up stagger-5" : "opacity-0"
160
+ }`}
161
+ >
162
+ <a href="#projects" className="btn-primary">
163
+ <svg
164
+ className="w-5 h-5"
165
+ fill="none"
166
+ stroke="currentColor"
167
+ viewBox="0 0 24 24"
168
+ >
169
+ <path
170
+ strokeLinecap="round"
171
+ strokeLinejoin="round"
172
+ strokeWidth={2}
173
+ d="M19 14l-7 7m0 0l-7-7m7 7V3"
174
+ />
175
+ </svg>
176
+ View Projects
177
+ </a>
178
+ <a href="#contact" className="btn-secondary">
179
+ <svg
180
+ className="w-5 h-5"
181
+ fill="none"
182
+ stroke="currentColor"
183
+ viewBox="0 0 24 24"
184
+ >
185
+ <path
186
+ strokeLinecap="round"
187
+ strokeLinejoin="round"
188
+ strokeWidth={2}
189
+ d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
190
+ />
191
+ </svg>
192
+ Get in Touch
193
+ </a>
194
+ <a
195
+ href="https://github.com/antony-nguyen"
196
+ target="_blank"
197
+ rel="noopener noreferrer"
198
+ className="btn-outline"
199
+ >
200
+ <svg
201
+ className="w-5 h-5"
202
+ fill="currentColor"
203
+ viewBox="0 0 24 24"
204
+ >
205
+ <path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
206
+ </svg>
207
+ GitHub
208
+ </a>
209
+ </div>
210
+
211
+ {/* Scroll Indicator */}
212
+ <div
213
+ className={`absolute bottom-8 left-1/2 -translate-x-1/2 ${
214
+ isVisible ? "fade-in-up stagger-6" : "opacity-0"
215
+ }`}
216
+ >
217
+ <div className="flex flex-col items-center gap-2 text-[var(--color-muted)]">
218
+ <span className="text-xs uppercase tracking-widest">Scroll</span>
219
+ <div className="w-6 h-10 border-2 border-[var(--color-muted)] rounded-full flex justify-center pt-2">
220
+ <div
221
+ className="w-1.5 h-3 bg-[var(--color-primary)] rounded-full animate-bounce"
222
+ style={{ animationDuration: "1.5s" }}
223
+ />
224
+ </div>
225
+ </div>
226
+ </div>
227
+ </div>
228
+ </section>
229
+ );
230
+ }
@@ -0,0 +1,66 @@
1
+ import Section from "@/components/Section";
2
+ import React from "react";
3
+
4
+ export default function HowToUseSection() {
5
+ const steps = [
6
+ {
7
+ title: "Add AGENTS.md",
8
+ body: (
9
+ <>
10
+ Create an AGENTS.md file at the root of the repository. Most
11
+ coding agents can even scaffold one for you if you ask nicely.
12
+ </>
13
+ ),
14
+ },
15
+ {
16
+ title: "Cover what matters",
17
+ body: (
18
+ <>
19
+ <p className="mb-2">Add sections that help an agent work effectively with your project. Popular choices:</p>
20
+ <ul className="list-disc list-inside ml-4 space-y-1">
21
+ <li>Project overview</li>
22
+ <li>Build and test commands</li>
23
+ <li>Code style guidelines</li>
24
+ <li>Testing instructions</li>
25
+ <li>Security considerations</li>
26
+ </ul>
27
+ </>
28
+ ),
29
+ },
30
+ {
31
+ title: "Add extra instructions",
32
+ body: "Commit messages or pull request guidelines, security gotchas, large datasets, deployment steps: anything you’d tell a new teammate belongs here too.",
33
+ },
34
+ {
35
+ title: "Large monorepo? Use nested AGENTS.md files for subprojects",
36
+ body: (
37
+ <>
38
+ Place another AGENTS.md inside each package. Agents automatically read the nearest file in the directory tree, so the closest one takes precedence and every subproject can ship tailored instructions. For example, at time of writing the main OpenAI repo has 88 AGENTS.md files.
39
+ </>
40
+ ),
41
+ },
42
+ ];
43
+
44
+
45
+ return (
46
+ <Section
47
+ title="How to use AGENTS.md?"
48
+ className="py-12"
49
+ center
50
+ maxWidthClass="max-w-3xl"
51
+ >
52
+ <div className="space-y-6 text-left">
53
+ {steps.map((s, idx) => (
54
+ <div key={idx}>
55
+ <h3 className="text-xl font-semibold text-gray-900 dark:text-white mb-2">
56
+ {idx + 1}. {s.title}
57
+ </h3>
58
+ <div className="text-gray-700 dark:text-gray-300">
59
+ {s.body}
60
+ </div>
61
+ </div>
62
+ ))}
63
+ </div>
64
+ </Section>
65
+ );
66
+ }
@@ -0,0 +1,44 @@
1
+ import React from "react";
2
+
3
+ export type SectionProps = React.PropsWithChildren<{
4
+ id?: string;
5
+ className?: string;
6
+ title: string;
7
+ /**
8
+ * Center the heading and inner content horizontally (text-center).
9
+ */
10
+ center?: boolean;
11
+ /**
12
+ * Tailwind max-width utility to override the default container width.
13
+ * e.g. "max-w-4xl". Defaults to "max-w-6xl".
14
+ */
15
+ maxWidthClass?: string;
16
+ }>;
17
+
18
+ export default function Section({
19
+ className = "",
20
+ id,
21
+ title,
22
+ children,
23
+ center = false,
24
+ maxWidthClass = "max-w-6xl",
25
+ }: SectionProps) {
26
+ const containerClasses = `${maxWidthClass} mx-auto flex flex-col gap-6`;
27
+
28
+ return (
29
+ <section id={id} className={className + " px-6"}>
30
+ <div className={containerClasses}>
31
+ <h2
32
+ className={`text-3xl font-semibold tracking-tight ${center ? "mx-auto text-center" : ""}`}
33
+ >
34
+ {title}
35
+ </h2>
36
+ {/* prose class is useful for markdown-like content. For centered sections we don't want automatic left
37
+ margin on headings, so we keep it unconditionally; centering is handled by parent flex alignment. */}
38
+ <div className="prose prose-neutral dark:prose-invert max-w-none">
39
+ {children}
40
+ </div>
41
+ </div>
42
+ </section>
43
+ );
44
+ }
@@ -0,0 +1,240 @@
1
+ "use client";
2
+
3
+ import { useEffect, useRef } from "react";
4
+ import * as THREE from "three";
5
+ import { FontLoader } from "three/examples/jsm/loaders/FontLoader.js";
6
+ import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry.js";
7
+
8
+ export default function ThreeCanvas() {
9
+ const containerRef = useRef<HTMLDivElement>(null);
10
+ const sceneRef = useRef<THREE.Scene | null>(null);
11
+ const rendererRef = useRef<THREE.WebGLRenderer | null>(null);
12
+ const animationIdRef = useRef<number | null>(null);
13
+
14
+ useEffect(() => {
15
+ if (!containerRef.current) return;
16
+
17
+ // Scene setup
18
+ const scene = new THREE.Scene();
19
+ sceneRef.current = scene;
20
+
21
+ // Camera
22
+ const camera = new THREE.PerspectiveCamera(
23
+ 75,
24
+ window.innerWidth / window.innerHeight,
25
+ 0.1,
26
+ 1000
27
+ );
28
+ camera.position.z = 30;
29
+
30
+ // Renderer
31
+ const renderer = new THREE.WebGLRenderer({
32
+ alpha: true,
33
+ antialias: true,
34
+ });
35
+ renderer.setSize(window.innerWidth, window.innerHeight);
36
+ renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
37
+ containerRef.current.appendChild(renderer.domElement);
38
+ rendererRef.current = renderer;
39
+
40
+ // Particles
41
+ const particlesGeometry = new THREE.BufferGeometry();
42
+ const particlesCount = 3000;
43
+ const positions = new Float32Array(particlesCount * 3);
44
+ const colors = new Float32Array(particlesCount * 3);
45
+
46
+ const colorBlue = new THREE.Color(0x0007cd);
47
+ const colorCyan = new THREE.Color(0x00d4ff);
48
+ const colorWhite = new THREE.Color(0xffffff);
49
+
50
+ for (let i = 0; i < particlesCount; i++) {
51
+ const i3 = i * 3;
52
+ positions[i3] = (Math.random() - 0.5) * 100;
53
+ positions[i3 + 1] = (Math.random() - 0.5) * 100;
54
+ positions[i3 + 2] = (Math.random() - 0.5) * 100;
55
+
56
+ const mixColor =
57
+ Math.random() > 0.5 ? colorBlue : Math.random() > 0.5 ? colorCyan : colorWhite;
58
+ colors[i3] = mixColor.r;
59
+ colors[i3 + 1] = mixColor.g;
60
+ colors[i3 + 2] = mixColor.b;
61
+ }
62
+
63
+ particlesGeometry.setAttribute(
64
+ "position",
65
+ new THREE.BufferAttribute(positions, 3)
66
+ );
67
+ particlesGeometry.setAttribute("color", new THREE.BufferAttribute(colors, 3));
68
+
69
+ const particlesMaterial = new THREE.PointsMaterial({
70
+ size: 0.15,
71
+ vertexColors: true,
72
+ transparent: true,
73
+ opacity: 0.6,
74
+ blending: THREE.AdditiveBlending,
75
+ });
76
+
77
+ const particlesMesh = new THREE.Points(
78
+ particlesGeometry,
79
+ particlesMaterial
80
+ );
81
+ scene.add(particlesMesh);
82
+
83
+ // Floating geometric shapes
84
+ const shapes: THREE.Mesh[] = [];
85
+ const geometries = [
86
+ new THREE.IcosahedronGeometry(1, 0),
87
+ new THREE.OctahedronGeometry(1, 0),
88
+ new THREE.TetrahedronGeometry(1, 0),
89
+ ];
90
+
91
+ const material = new THREE.MeshBasicMaterial({
92
+ color: 0x0007cd,
93
+ wireframe: true,
94
+ transparent: true,
95
+ opacity: 0.3,
96
+ });
97
+
98
+ for (let i = 0; i < 15; i++) {
99
+ const geometry =
100
+ geometries[Math.floor(Math.random() * geometries.length)];
101
+ const mesh = new THREE.Mesh(geometry, material.clone());
102
+ mesh.position.set(
103
+ (Math.random() - 0.5) * 60,
104
+ (Math.random() - 0.5) * 60,
105
+ (Math.random() - 0.5) * 40
106
+ );
107
+ mesh.rotation.set(
108
+ Math.random() * Math.PI,
109
+ Math.random() * Math.PI,
110
+ Math.random() * Math.PI
111
+ );
112
+ mesh.userData = {
113
+ rotationSpeed: {
114
+ x: (Math.random() - 0.5) * 0.01,
115
+ y: (Math.random() - 0.5) * 0.01,
116
+ z: (Math.random() - 0.5) * 0.01,
117
+ },
118
+ floatSpeed: Math.random() * 0.5 + 0.5,
119
+ floatOffset: Math.random() * Math.PI * 2,
120
+ };
121
+ shapes.push(mesh);
122
+ scene.add(mesh);
123
+ }
124
+
125
+ // Text "Antony Nguyễn" - loaded asynchronously
126
+ let textMesh: THREE.Mesh | null = null;
127
+ let textLoaded = false;
128
+
129
+ const loadFont = () => {
130
+ const loader = new FontLoader();
131
+ loader.load(
132
+ "https://threejs.org/examples/fonts/helvetiker_bold.typeface.json",
133
+ (font) => {
134
+ const textGeometry = new TextGeometry("Antony Nguyễn", {
135
+ font: font,
136
+ size: 3,
137
+ height: 0.5,
138
+ curveSegments: 12,
139
+ bevelEnabled: true,
140
+ bevelThickness: 0.03,
141
+ bevelSize: 0.02,
142
+ bevelSegments: 5,
143
+ });
144
+
145
+ textGeometry.computeBoundingBox();
146
+ const centerOffset = new THREE.Vector3();
147
+ textGeometry.boundingBox?.getCenter(centerOffset);
148
+ textGeometry.translate(-centerOffset.x, -centerOffset.y, -centerOffset.z);
149
+
150
+ const textMaterial = new THREE.MeshPhongMaterial({
151
+ color: 0xffffff,
152
+ specular: 0x0007cd,
153
+ shininess: 100,
154
+ transparent: true,
155
+ opacity: 0.9,
156
+ });
157
+
158
+ textMesh = new THREE.Mesh(textGeometry, textMaterial);
159
+ textMesh.position.set(0, 8, 0);
160
+ scene.add(textMesh);
161
+ textLoaded = true;
162
+ },
163
+ undefined,
164
+ (error) => {
165
+ console.log("Font loading failed, using fallback text");
166
+ textLoaded = true;
167
+ }
168
+ );
169
+ };
170
+
171
+ loadFont();
172
+
173
+ // Mouse interaction
174
+ const mouse = { x: 0, y: 0 };
175
+ const handleMouseMove = (event: MouseEvent) => {
176
+ mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
177
+ mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;
178
+ };
179
+ window.addEventListener("mousemove", handleMouseMove);
180
+
181
+ // Resize handler
182
+ const handleResize = () => {
183
+ camera.aspect = window.innerWidth / window.innerHeight;
184
+ camera.updateProjectionMatrix();
185
+ renderer.setSize(window.innerWidth, window.innerHeight);
186
+ };
187
+ window.addEventListener("resize", handleResize);
188
+
189
+ // Animation
190
+ let time = 0;
191
+ const animate = () => {
192
+ animationIdRef.current = requestAnimationFrame(animate);
193
+ time += 0.01;
194
+
195
+ // Rotate particles
196
+ particlesMesh.rotation.y += 0.0005;
197
+ particlesMesh.rotation.x += 0.0002;
198
+
199
+ // Animate shapes
200
+ shapes.forEach((shape) => {
201
+ shape.rotation.x += shape.userData.rotationSpeed.x;
202
+ shape.rotation.y += shape.userData.rotationSpeed.y;
203
+ shape.rotation.z += shape.userData.rotationSpeed.z;
204
+
205
+ const floatY = Math.sin(time * shape.userData.floatSpeed + shape.userData.floatOffset) * 0.5;
206
+ shape.position.y += floatY * 0.01;
207
+ });
208
+
209
+ // Camera follows mouse slightly
210
+ camera.position.x += (mouse.x * 5 - camera.position.x) * 0.02;
211
+ camera.position.y += (mouse.y * 5 - camera.position.y) * 0.02;
212
+ camera.lookAt(scene.position);
213
+
214
+ // Text rotation
215
+ if (textMesh) {
216
+ textMesh.rotation.y = Math.sin(time * 0.5) * 0.3;
217
+ textMesh.position.y = 8 + Math.sin(time) * 0.5;
218
+ }
219
+
220
+ renderer.render(scene, camera);
221
+ };
222
+
223
+ animate();
224
+
225
+ // Cleanup
226
+ return () => {
227
+ window.removeEventListener("mousemove", handleMouseMove);
228
+ window.removeEventListener("resize", handleResize);
229
+ if (animationIdRef.current) {
230
+ cancelAnimationFrame(animationIdRef.current);
231
+ }
232
+ renderer.dispose();
233
+ if (containerRef.current && renderer.domElement) {
234
+ containerRef.current.removeChild(renderer.domElement);
235
+ }
236
+ };
237
+ }, []);
238
+
239
+ return <div ref={containerRef} className="three-canvas" />;
240
+ }
@@ -0,0 +1,64 @@
1
+ import Section from "@/components/Section";
2
+ import React from "react";
3
+ import ClipboardIcon from "@/components/icons/ClipboardIcon";
4
+ import UserIcon from "@/components/icons/UserIcon";
5
+ import LinkIcon from "@/components/icons/LinkIcon";
6
+
7
+ export default function WhySection() {
8
+ return (
9
+ <Section
10
+ id="why"
11
+ title="Why AGENTS.md?"
12
+ className="pt-24 pb-12"
13
+ center
14
+ maxWidthClass="max-w-3xl"
15
+ >
16
+ <div className="space-y-4">
17
+ <p className="mb-4">
18
+ README.md files are for humans: quick starts, project descriptions,
19
+ and contribution guidelines.
20
+ </p>
21
+ <p className="mb-4">
22
+ AGENTS.md complements this by containing the extra, sometimes detailed
23
+ context coding agents need: build steps, tests, and conventions that
24
+ might clutter a README or aren&rsquo;t relevant to human contributors.
25
+ </p>
26
+ <p className="mb-4">We intentionally kept it separate to:</p>
27
+ <div className="flex flex-col gap-4">
28
+ <div className="flex items-center gap-3">
29
+ <ClipboardIcon />
30
+ <p>
31
+ <span className="font-semibold block">
32
+ Give agents a clear, predictable place for instructions.
33
+ </span>
34
+ </p>
35
+ </div>
36
+
37
+ <div className="flex items-center gap-3">
38
+ <UserIcon />
39
+ <p>
40
+ <span className="font-semibold block">
41
+ Keep READMEs concise and focused on human contributors.
42
+ </span>
43
+ </p>
44
+ </div>
45
+
46
+ <div className="flex items-center gap-3">
47
+ <LinkIcon />
48
+ <p>
49
+ <span className="font-semibold block">
50
+ Provide precise, agent-focused guidance that complements
51
+ existing README and docs.
52
+ </span>
53
+ </p>
54
+ </div>
55
+ </div>
56
+ <p>
57
+ Rather than introducing another proprietary file, we chose a name and
58
+ format that could work for anyone. If you&rsquo;re building or using
59
+ coding agents and find this helpful, feel free to adopt it.
60
+ </p>
61
+ </div>
62
+ </Section>
63
+ );
64
+ }
@@ -0,0 +1,27 @@
1
+ import React from "react";
2
+
3
+ export default function ClipboardIcon({ className = "w-6 h-6 flex-shrink-0" }) {
4
+ return (
5
+ <svg
6
+ className={className}
7
+ fill="none"
8
+ stroke="currentColor"
9
+ strokeWidth={1.8}
10
+ viewBox="0 0 24 24"
11
+ xmlns="http://www.w3.org/2000/svg"
12
+ aria-hidden="true"
13
+ >
14
+ <path
15
+ strokeLinecap="round"
16
+ strokeLinejoin="round"
17
+ d="M9 2.25h6a.75.75 0 01.75.75v1.5h1.5A2.25 2.25 0 0120.25 6.75v12A2.25 2.25 0 0118 21h-12a2.25 2.25 0 01-2.25-2.25v-12A2.25 2.25 0 016 4.5h1.5V3a.75.75 0 01.75-.75z"
18
+ />
19
+ <path
20
+ strokeLinecap="round"
21
+ strokeLinejoin="round"
22
+ d="M9 12h6m-6 4h6"
23
+ />
24
+ </svg>
25
+ );
26
+ }
27
+