Communitygithub.com

wjlgatech/agentic-portfolio-public

任意のGitHubユーザーのためのエージェント機能付きパーソナルポートフォリオを生成します。Next.js + CopilotKit で構築され、無料のLLMサバイバルチェーン(NVIDIA NIM → Groq → Gemini → OpenAI)を搭載したAIエージェントが、ユーザーの成果物に関する質問に回答します。

agentic-portfolio-public とは?

このスキルは **agentic-portfolio** アプリ(Next.js 15 App Router + CopilotKit + `/free-llm` サバイバルチェーン)を基盤として、任意のGitHubユーザーのためのエージェント機能付きパーソナルポートフォリオサイトを生成します。テンプレートリポジトリ(github.com/wjlgatech/agentic-portfolio)からアプリコードをコピーし、`content/` ディレクトリ内のデータ(プロジェクト、プロフィール、記事)を対象ユーザー向けに書き換えることで動作します。直近12ヶ月のアクティブなリポジトリ(公開・非公開両方)をGitHub APIで取得し、非公開リポジトリについてはIPセーフなハイライトのみを表示します。また、ユーザーのミッション・バリュー・12Xプラクティスを自動生成し、LinkedInの記事セクションも自己更新可能です。デプロイはVercelに行い、無料枠のLLMキー(NVIDIA、Groq、Geminiなど)のみを使用してコストゼロで運用できます。開発者は「ポートフォリオを作って」「AIとチャットできる個人サイトが欲しい」といった要望に対して、このスキルを呼び出すだけで即座に実用的なサイトを提供できます。

対応~Claude Code✓Codex CLI~Cursor✓Antigravity✓Gemini CLI
npx skills add https://github.com/wjlgatech/agentic-portfolio-public/tree/HEAD/skill

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

/agentic-portfolio — build an agentic, free-LLM-powered portfolio for any GitHub user

This skill scaffolds the agentic-portfolio app (Next.js 15 App Router + CopilotKit + the /free-llm survival chain). The reference implementation is github.com/wjlgatech/agentic-portfolio — clone it as the template, then repopulate the content/ data for the target user. Everything personal is data; the app code is reusable as-is.

0. Inputs & prerequisites

  • GitHub login (e.g. wjlgatech). For private repos + highlights, run gh auth status — the user must be authenticated with repo scope. Public-only works without auth.
  • node >= 18, npm, gh, python3.

1. Pull the active repos (last 12 months)

SINCE=$(python3 -c "import datetime as d;print((d.date.today()-d.timedelta(days=365)).isoformat())")
gh api -X GET 'user/repos?per_page=100&sort=pushed&affiliation=owner' --paginate \
  --jq ".[] | select(.pushed_at >= \"$SINCE\") | {name,private,fork,lang:.language,desc:.description,pushed:.pushed_at[0:10],stars:.stargazers_count,url:.html_url}" \
  > repos.ndjson
# For another user's PUBLIC repos: gh api "users/<login>/repos?per_page=100&sort=pushed" ...

Exclude forks (fork: true) and meta repos (dotfiles, an existing portfolio).

2. Curate into content/projects.json

For each kept repo emit {name, category, highlight, featured, private, language, stars, pushed, url}:

  • Category — group into a small set (e.g. Agentic OS · Frameworks & Tooling · AI Products · Faith/Family · Open Knowledge); pick names that fit the user's actual work.
  • highlight — one IP-safe line. For private repos: high-level only, and set url: null (never link or expose internals).
  • featured — flag the ~15–18 strongest for the default view.

3. Fill content/profile.ts and content/portfolio.yaml

  • profile.ts: name, tagline, mission, values, love, and the 12X Future Practices (a dozen compounding disciplines). Draft from the user's bio + repo themes; mark clearly that it's theirs to edit.
  • portfolio.yaml: the control surface — section order/visibility/labels, theme, and the articles list (start empty). The owner fills articles by talking to the agent ("add my LinkedIn article …") or by hand. LinkedIn is auth-walled — ask the user to paste their posts, or accept public article URLs and WebFetch each.
  • Set PORTFOLIO_OWNER_TOKEN on the deploy so only the owner can apply agent edits (visitors stay view-only). Unset = un-gated local dev.

4. App code — copy from the template, don't rewrite

The reusable parts (identical for every user):

  • app/page.tsx, app/layout.tsx, app/globals.css
  • app/api/copilotkit/route.ts + lib/llm.ts (the free-LLM chain — key server-side only)
  • components/Copilot.tsx, components/Projects.tsx, components/Articles.tsx
  • configs: package.json (pin Next to a patched 15.x), tailwind.config.ts, tsconfig.json, postcss.config.mjs, .env.example

5. Verify, then ship

npm install && npm run build      # must be GREEN before pushing
gh repo create <login>/<repo-name> --public --source=. --remote=origin --push

Then deploy on Vercel (import repo → add one free key, e.g. NVIDIA_API_KEY → deploy).

Guardrails

  • Never leak private IP. Private repos: highlight only, url: null.
  • Key stays server-side. Only app/api/copilotkit/route.ts reads the LLM key.
  • Free tiers first. Keep the lib/llm.ts order NIM → Groq → Gemini → paid.
  • Build must be green before any push. Report the build status honestly.
  • Human-gate the repo push unless the user has said "create & push".

関連スキル