Communitygithub.com

agentic-portfolio

Erstelle ein agentisches, persönliches Portfolio für jeden GitHub-Nutzer – eine Next.js + CopilotKit-Website, deren KI-Agent auf der Seite Fragen zur Arbeit der Person beantwortet, basierend auf dem eigenen Repository-Inhalt und betrieben durch eine FREE-LLM-Überlebenskette (NVIDIA NIM → Groq → Gemini → OpenAI) – also praktisch kostenlos.

Was ist agentic-portfolio?

Dieses Skill generiert ein agentisches persönliches Portfolio für jeden GitHub-Nutzer, basierend auf einem Next.js 15 App Router und CopilotKit. Es nutzt eine mehrstufige, kostenlose LLM-Kette (NVIDIA NIM → Groq → Gemini → OpenAI), um die Betriebskosten auf Null zu reduzieren. Das Skill extrahiert die aktiven öffentlichen und privaten Repos der letzten 12 Monate, erstellt IP-sichere Zusammenfassungen für private Repos und generiert die Inhalte für Mission, Werte und 12X-Praktiken. Die resultierende Website enthält einen KI-Agenten, der Besuchern Fragen zu den Projekten des Nutzers beantwortet, eine sich selbst aktualisierende LinkedIn-Artikel-Sektion sowie eine klare Trennung zwischen wiederverwendbarem App-Code und persönlichen Inhalten. Es wird durch GitHub-Befehle gesteuert, erfordert npm, gh und Python3 und kann auf Vercel bereitgestellt werden.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

/agentic-portfolio – Erstelle ein agentisches, kostenloses LLM-betriebenes Portfolio für jeden GitHub-Nutzer

Dieses Skill erstellt die agentic-portfolio-App (Next.js 15 App Router + CopilotKit + die /free-llm-Überlebenskette). Die Referenzimplementierung ist github.com/wjlgatech/agentic-portfolio – klone sie als Vorlage und befüll dann die Daten in content/ für den Zielnutzer. Alles Persönliche sind Daten; der App-Code kann unverändert wiederverwendet werden.

0. Eingaben & Voraussetzungen

  • GitHub-Login (z. B. wjlgatech). Für private Repos + Highlights führe gh auth status aus – der Nutzer muss mit repo-Berechtigung authentifiziert sein. Nur öffentliche Repos funktionieren ohne Authentifizierung.
  • node >= 18, npm, gh, python3.

1. Aktive Repos abrufen (letzte 12 Monate)

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
# Für die ÖFFENTLICHEN Repos eines anderen Nutzers: gh api "users/<login>/repos?per_page=100&sort=pushed" ...

Schließe Forks (fork: true) und Meta-Repos (dotfiles, ein bestehendes portfolio) aus.

2. Inhalte in content/projects.json kuratieren

Gib für jedes behaltene Repo {name, category, highlight, featured, private, language, stars, pushed, url} aus:

  • Category – gruppiere in eine kleine Menge (z. B. Agentic OS · Frameworks & Tooling · AI Products · Faith/Family · Open Knowledge); wähle Namen, die zur tatsächlichen Arbeit des Nutzers passen.
  • highlight – eine IP-sichere Zeile. Für private Repos: nur allgemein halten und url: null setzen (niemals auf Interna verlinken oder diese offenlegen).
  • featured – markiere die etwa 15–18 stärksten für die Standardansicht.

3. content/profile.ts und content/portfolio.yaml befüllen

  • profile.ts: Name, Kurzvorstellung, Mission, Werte, Lieblingsprojekte und die 12X Future Practices (ein Dutzend sich verstärkende Disziplinen). Erstelle Entwürfe basierend auf der Bio des Nutzers und den Repo-Themen; weise deutlich darauf hin, dass die Inhalte vom Nutzer bearbeitet werden können.
  • portfolio.yaml: die Steuerungsoberfläche – Abschnittsreihenfolge/Sichtbarkeit/Beschriftungen, Design und die Artikel-Liste (zunächst leer). Der Besitzer füllt Artikel, indem er mit dem Agenten spricht („Füge meinen LinkedIn-Artikel hinzu …“) oder von Hand. LinkedIn ist durch Authentifizierung geschützt – bitte den Nutzer, seine Beiträge einzufügen, oder akzeptiere öffentliche Artikel-URLs und rufe jede per WebFetch ab.
  • Setze PORTFOLIO_OWNER_TOKEN beim Deployment, sodass nur der Besitzer Agenten-Änderungen anwenden kann (Besucher bleiben im Nur-Lesen-Modus). Nicht gesetzt = uneingeschränkte lokale Entwicklung.

4. App-Code – von der Vorlage kopieren, nicht neu schreiben

Die wiederverwendbaren Teile (für jeden Nutzer identisch):

  • app/page.tsx, app/layout.tsx, app/globals.css
  • app/api/copilotkit/route.ts + lib/llm.ts (die free-LLM-Kette – nur serverseitig)
  • components/Copilot.tsx, components/Projects.tsx, components/Articles.tsx
  • Konfigurationen: package.json (Next auf eine gepatchte 15.x-Version festlegen), tailwind.config.ts, tsconfig.json, postcss.config.mjs, .env.example

5. Überprüfen, dann ausliefern

npm install && npm run build      # muss GRÜN sein, bevor gepusht wird
gh repo create <login>/<repo-name> --public --source=. --remote=origin --push

Anschließend auf Vercel deployen (Repo importieren → einen kostenlosen Schlüssel hinzufügen, z. B. NVIDIA_API_KEY → deployen).

Absicherungen

  • Niemals private IP preisgeben. Bei privaten Repos: nur Highlights, url: null.
  • Schlüssel bleibt serverseitig. Nur app/api/copilotkit/route.ts liest den LLM-Schlüssel.
  • Kostenlose Stufen zuerst. Die Reihenfolge in lib/llm.ts beibehalten: NIM → Groq → Gemini → kostenpflichtig.
  • Build muss grün sein vor jedem Push. Den Build-Status ehrlich melden.
  • Menschliche Freigabe für den Repo-Push, es sei denn, der Nutzer hat „create & push“ gesagt.

Verwandte Skills