Communitygithub.com

wjlgatech/agentic-portfolio-public

Gere um portfólio pessoal agêntico para qualquer usuário do GitHub — um site Next.js + CopilotKit cujo agente de IA na página responde perguntas sobre o trabalho da pessoa, baseado no próprio conteúdo do repositório e alimentado por uma cadeia de sobrevivência FREE-LLM (NVIDIA NIM → Groq → Gemini → OpenAI), rodando a $0. Ele busca os repositórios ativos dos últimos 12 meses (públicos E privados, destaques seguros para IP privado), estrutura missão/valores/práticas 12X e uma seção de artigos do LinkedIn auto-atualizável. Use quando alguém quiser "montar meu portfólio", "criar um site de portfólio agêntico", "transformar meu GitHub em um site" ou "um site pessoal com chat de IA que conhece meus projetos". Dispara em 'portfólio', 'site pessoal', 'portfólio agêntico', 'portfólio free-llm'. Referência: github.com/wjlgatech/agentic-portfolio (o template que esta skill estrutura).

O que é agentic-portfolio-public?

Esta skill estrutura o aplicativo **agentic-portfolio**, um gerador de portfólio pessoal agêntico para qualquer usuário do GitHub. Ela cria um site Next.js 15 + CopilotKit onde um agente de IA integrado responde perguntas sobre o trabalho do usuário, usando dados do próprio repositório e uma cadeia de sobrevivência FREE-LLM (NVIDIA NIM → Groq → Gemini → OpenAI), que opera a custo zero. A skill busca automaticamente os repositórios ativos dos últimos 12 meses (públicos e privados, com destaques seguros para IP de privados), organiza-os em categorias e gera o conteúdo do perfil, missão, valores e práticas 12X. O agente pode ser acionado para adicionar artigos do LinkedIn ou responder perguntas dos visitantes. Ela é útil para desenvolvedores que desejam criar rapidamente um portfólio online com funcionalidades de IA, sem se preocupar com custos de LLM, e que querem uma solução que se atualize automaticamente com base na atividade do GitHub. A skill suporta plataformas como Vercel para deploy e requer ferramentas como Node.js, npm, gh e Python3 para funcionar. O código é reutilizável e os dados pessoais são mantidos em arquivos de conteúdo separados, garantindo segurança e personalização.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

/agentic-portfolio — crie um portfólio agêntico e alimentado por LLM gratuito para qualquer usuário do GitHub

Esta skill estrutura o aplicativo agentic-portfolio (Next.js 15 App Router + CopilotKit + a cadeia de sobrevivência /free-llm). A implementação de referência é github.com/wjlgatech/agentic-portfolio — clone-o como template e depois preencha os dados em content/ para o usuário alvo. Tudo que é pessoal são dados; o código do aplicativo é reutilizável tal como está.

0. Entradas e pré-requisitos

  • Login do GitHub (ex.: wjlgatech). Para repositórios privados + destaques, execute gh auth status — o usuário deve estar autenticado com escopo repo. Apenas público funciona sem autenticação.
  • node >= 18, npm, gh, python3.

1. Obter os repositórios ativos (últimos 12 meses)

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
# Para os repositórios PÚBLICOS de outro usuário: gh api "users/<login>/repos?per_page=100&sort=pushed" ...

Exclua forks (fork: true) e repositórios meta (dotfiles, um portfolio existente).

2. Curar em content/projects.json

Para cada repositório mantido, emita {name, category, highlight, featured, private, language, stars, pushed, url}:

  • Category — agrupe em um conjunto pequeno (ex.: Agentic OS · Frameworks & Tooling · AI Products · Faith/Family · Open Knowledge); escolha nomes que se encaixem no trabalho real do usuário.
  • highlight — uma linha segura para IP. Para repositórios privados: apenas em alto nível, e defina url: null (nunca vincule ou exponha detalhes internos).
  • featured — marque os ~15–18 mais fortes para a visualização padrão.

3. Preencher content/profile.ts e content/portfolio.yaml

  • profile.ts: nome, tagline, missão, valores, amor e as Práticas Futuras 12X (uma dúzia de disciplinas compostas). Elabore a partir da biografia do usuário + temas dos repositórios; deixe claro que é para o usuário editar.
  • portfolio.yaml: a superfície de controle — ordem/visibilidade/rótulos das seções, tema e a lista de artigos (comece vazia). O proprietário preenche artigos conversando com o agente ("adicione meu artigo do LinkedIn …") ou manualmente. O LinkedIn é autenticado — peça ao usuário para colar suas postagens, ou aceite URLs de artigos públicos e busque cada um via WebFetch.
  • Defina PORTFOLIO_OWNER_TOKEN no deploy para que apenas o proprietário possa aplicar edições do agente (visitantes permanecem somente leitura). Não definido = desenvolvimento local sem restrições.

4. Código do aplicativo — copie do template, não reescreva

As partes reutilizáveis (idênticas para cada usuário):

  • app/page.tsx, app/layout.tsx, app/globals.css
  • app/api/copilotkit/route.ts + lib/llm.ts (a cadeia free-LLM — chave apenas no servidor)
  • components/Copilot.tsx, components/Projects.tsx, components/Articles.tsx
  • configurações: package.json (fixe Next em uma versão 15.x corrigida), tailwind.config.ts, tsconfig.json, postcss.config.mjs, .env.example

5. Verificar e depois enviar

npm install && npm run build      # deve estar VERDE antes de enviar
gh repo create <login>/<repo-name> --public --source=. --remote=origin --push

Depois faça o deploy no Vercel (importar repositório → adicionar uma chave gratuita, ex.: NVIDIA_API_KEY → fazer deploy).

Diretrizes

  • Nunca vazar IP privado. Repositórios privados: destaque apenas, url: null.
  • Chave permanece no servidor. Apenas app/api/copilotkit/route.ts lê a chave do LLM.
  • Camadas gratuitas primeiro. Mantenha a ordem em lib/llm.ts: NIM → Groq → Gemini → pago.
  • Build deve estar verde antes de qualquer envio. Relate o status do build honestamente.
  • Controle humano sobre o envio do repositório a menos que o usuário tenha dito "criar e enviar".

Habilidades Relacionadas