Communitygithub.com

yashrajnayak/developer-portfolio-skill

アップロードされたLinkedInプロフィールPDF/エクスポートまたは貼り付けテキストから、GitHub Pagesの開発者ポートフォリオとGitHubプロフィールREADMEを構築し、オプションで公開します。ユーザーがポートフォリオウェブサイト、プロフィールREADME、GitHub Pagesリポジトリ、またはLinkedInデータからのdeveloper-portfolio設定の生成を依頼した場合に使用します。特にLinkedIn PDF/エクスポート、GitHub CLI、gh auth、ポートフォリオ公開、developer-portfolioテンプレートについて言及した場合に有効です。

developer-portfolio-skill とは?

このスキルは、ユーザーが提供するLinkedInプロフィールデータ(PDFエクスポートまたは貼り付けテキスト)を基に、個人開発者ポートフォリオサイト(GitHub Pages)とGitHubプロフィールREADMEを自動生成・公開するためのClaude Codeスキルです。主なワークフローは、入力データの収集、PDFからのテキスト抽出(専用Pythonスクリプト使用)、プロフィールデータの正規化(JSON形式)、ポートフォリオ設定ファイルの生成、プロフィールREADMEの生成、そしてGitHub CLI(gh)を用いた安全な公開処理から構成されます。スキルはLinkedInのスクレイピングを禁止し、ユーザーが明示的にアップロードしたデータのみを信頼します。公開前にはgh auth statusによる認証確認と、生成ファイル内のローカルパス漏洩チェックを必須とし、強制プッシュを避けるなど、安全な公開フローを重視しています。デフォルトのテンプレートリポジトリとして `yashrajnayak/developer-portfolio` を使用し、GitHub Actions(npm run validate/build)による検証もサポートします。

対応~Claude Code~Codex CLI~Cursor
npx skills add yashrajnayak/developer-portfolio-skill

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

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

ドキュメント

開発者ポートフォリオスキル

基本ポリシー

ユーザーがアップロードしたLinkedIn PDF/エクスポート、または貼り付けられたプロフィールテキストを唯一の情報源として使用します。LinkedInをスクレイピングしたり、LinkedInの認証をバイパスしたりしないでください。ユーザーがLinkedIn URLのみを提供した場合は、プロフィールPDF/エクスポートをアップロードするか、プロフィールテキストを貼り付けるよう依頼してください。

GitHubへの書き込みを行う前に、gh auth status を確認し、必要に応じて gh auth login が必要であることをユーザーに伝えてください。ユーザーが明示的に自動公開を要求しない限り、プッシュ前にレビュー可能なドラフトを作成することを推奨します。

スクリプトと参照パスは、このスキルディレクトリからの相対パスで解決してください。生成されたREADMEファイル、ポートフォリオ設定、GitHubコミットにローカルの絶対ファイルシステムパスをコピーしないでください。

ワークフロー

  1. 入力の収集

    • LinkedIn PDF/エクスポートのパス、または貼り付けられたLinkedInテキスト。
    • GitHubユーザー名。認証済みの場合は gh api user --jq .login から取得することも可能。
    • オプションのターゲットリポジトリ名。デフォルト:
      • ポートフォリオ: <github-username>.github.io
      • プロフィールREADME: <github-username>
    • オプションのポートフォリオテンプレートソース。デフォルト: https://github.com/yashrajnayak/developer-portfolio。
  2. プロフィールテキストの抽出

    • PDFの場合:
      python scripts/extract_linkedin_pdf.py \
        --input <linkedin.pdf> \
        --out <workspace>/linkedin-profile.txt
      
    • 貼り付けテキストの場合は、linkedin-profile.txt として保存します。
  3. プロフィールデータの正規化

    • references/profile-schema.md を読み込みます。
    • linkedin-profile.txt を normalized-profile.json に変換します。
    • 情報はソースに忠実に保ちます。雇用主、日付、学位、認定資格、指標などを捏造しないでください。
    • GitHubユーザー名が判明している場合は、github_username を含めます。
    • ポートフォリオのベースURLが判明している場合は、portfolio_url を含めます。
  4. ポートフォリオ設定の生成

    • 実行:
      python scripts/write_portfolio_config.py \
        --profile normalized-profile.json \
        --out config.json \
        --github-username <github-username> \
        --portfolio-url https://<github-username>.github.io
      
    • 生成された config.json を、クローン/フォークした developer-portfolio テンプレートリポジトリにコピーします。
    • テンプレートリポジトリの検証/ビルドコマンドが利用可能な場合は実行します:
      npm run validate
      npm run build
      
  5. プロフィールREADMEの生成

    • 実行:
      python scripts/write_profile_readme.py \
        --profile normalized-profile.json \
        --out README.md
      
    • この出力はGitHubプロフィールリポジトリ <github-username>/<github-username> 用です。
  6. GitHub CLIでの公開

    • references/github-publish.md を読み込みます。
    • 認証確認:
      gh auth status
      gh api user --jq .login
      
    • プッシュ前に、生成されたポートフォリオファイル内のローカルパスをスキャンします。テンプレートリポジトリに npm run validate がある場合は、それを使用します。
    • 意図的にコミットします。強制プッシュはしないでください。既存のユーザーリポジトリを、現在の内容を確認せずに上書きしないでください。

出力期待値

以下を返します:

  • 使用されたソースPDF/テキスト。
  • 生成されたパス: normalized-profile.json、ポートフォリオ config.json、プロフィール README.md。
  • ターゲットGitHubリポジトリ。
  • 実行された検証コマンド。
  • GitHubプッシュが完了したか、認証不足/レビュー依頼によりブロックされたか。

参照

  • references/profile-schema.md: 正規化されたプロフィールJSONの契約とマッピングルール。
  • references/github-publish.md: 安全なGitHub CLI公開フロー。

関連スキル