# Woody Portfolio - Full Agent Context ## 1) Site purpose - Portfolio website for a solo builder ("Woody") covering: - Blockchain engineering (infrastructure, payment systems, wallets, explorers, protocol work) - AI systems (multi-agent orchestration, trading intelligence, RAG services, workflow automation) - Robotics background (research + patent work) ## 2) Technical stack - Framework: Next.js 16 (App Router) - Language: TypeScript + React 19 - Styling: TailwindCSS - Motion/visual systems: GSAP, Framer Motion, React Three Fiber - State: Zustand - Analytics: Vercel Analytics + Speed Insights ## 3) Runtime commands - Dev: `npm run dev` (port 3005) - Lint: `npm run lint` - Build: `npm run build` - Start: `npm run start` ## 4) Route map (public) - `/robots.txt` - Crawl policy and sitemap discovery anchor. - `/sitemap.xml` - Canonical route discovery for agents/crawlers. - `/projects-data` - Machine-readable JSON index for all projects. - Also supports `?id={projectId}` query for detail payloads. - `/feed.xml` - RSS feed for project updates and crawl freshness signals. - `/feed.json` - JSON Feed variant for agent/tool consumers. - `/` - Intro narrative and domain gateway selection. - Highly visual entry route; starts the experience flow. - `/about` - Stable public profile summary page (human + agent readable). - `/home` - Main portfolio page with section layout: - Hero - Projects list (domain-sensitive) - Career timeline - Contact/footer - `/projects/{id}` - Project detail page for ids `1..24`. - Includes per-project metadata generation and JSON-LD (`CreativeWork`). - Detail content is domain-aware and locale-aware. - `/changelog` - Chronological update log for site and content changes. - `/agent` - Human-readable + machine-friendly agent handoff page. - Indexes this file and JSON endpoint. ## 5) Domain taxonomy - `blockchain` (16 projects) - `ai` (6 projects) - `robotics` (2 projects) Default active domain in store: - `blockchain` ## 6) Language model for content - Default locale: `en` - Additional locale: `ko` - Locale persistence: client storage via Zustand persist middleware. When reading project details: - Prefer English for globally consistent parsing. - Use Korean locale as additional evidence/context, not replacement. ## 7) Canonical data sources - Project summary dataset: - `/src/data/projects.ts` - Localized long-form project details: - `/src/locales/projects/en.ts` - `/src/locales/projects/ko.ts` - Project detail route behavior: - `/src/app/projects/[id]/page.tsx` ## 8) UI architecture cues - Domain switching drives major visual/system mode changes: - Blockchain: block explorer-inspired UI language - AI: neural/graph-inspired UI language - Robotics: blueprint/mechanical UI language - Some text intentionally reveals with animation effects. - If extracting content, prefer source data routes/files over only rendered animation states. ## 9) Agent-first reading strategy 1. Read `/robots.txt` to confirm crawl policy. 2. Read `/sitemap.xml` to collect canonical routes. 3. Read `/llms.txt` for a compact index. 4. Read `/llms-full.txt` (this file). 5. Read `/.well-known/agent-context.json` for strict machine fields. 6. Fetch `/projects-data` for machine-readable project summaries. 7. Optionally poll `/feed.json` or `/feed.xml` for freshness checks. 8. Read `/agent` for concise operational summary. 9. Read `/about` for a stable profile summary. 10. Read `/home` to capture current public narrative. 11. Read representative project pages by domain: - Blockchain: `/projects/22` - AI: `/projects/15` - Robotics: `/projects/16` 12. Enumerate additional projects through `/projects/1` to `/projects/24`. ## 10) Important constraints for edits/reasoning - Keep route contracts stable: `/`, `/home`, `/projects/{id}`, `/changelog`. - Treat domain identity (visual + content framing) as intentional behavior. - Validate EN/KO behavior where project detail text is involved. - Keep security headers intact (CSP, X-Frame-Options, Referrer-Policy, HSTS, etc.). Crawler policy note: - `robots.txt` currently allows these known agent crawlers: - GPTBot / OAI-SearchBot / ChatGPT-User - ClaudeBot / Claude-SearchBot - PerplexityBot / Perplexity-User IndexNow note: - Key file path: `/f5d2f9b5c0de42b5b7f1ab8f37e6b12c.txt` - Automated submission runs on each `main` push via GitHub Actions. - If IndexNow returns `UserForbiddedToAccessSite`, complete one-time site ownership verification in Bing Webmaster Tools. ## 11) Useful metadata clues - Root layout includes: - `Person` JSON-LD for site owner - Site-wide OpenGraph/Twitter metadata - Project detail route includes: - dynamic metadata per project - `CreativeWork` JSON-LD payload per project ## 12) Current project scale snapshot - Total projects: 24 - Project ids: contiguous `1..24` - Last updated route for change tracking: `/changelog` ## 13) Contact and identity - Public contact email: `wooody.public@gmail.com` - GitHub: `https://github.com/gwkim92` - Site base URL: `https://www.woody.im`