From jobops
Creates or updates timestamped GitHub portfolio Markdown files by fetching and analyzing repository READMEs and structure via /github-portfolio <repo-url>. Use for career documentation snapshots.
How this skill is triggered — by the user, by Claude, or both
Slash command
/jobops:github-portfolioThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Read `.jobops/config.json`. If missing, stop with:
Read .jobops/config.json. If missing, stop with:
JOBOPS NOT CONFIGURED Run /jobops:setup to initialize your workspace.
Use config.directories.<key> for all file paths in this skill.
Use config.preferences.cultural_profile if this skill generates resume-style content.
Use config.preferences.default_jurisdiction if this skill has jurisdiction-sensitive logic (crisis/legal skills accept --jurisdiction=<ISO-3166-2> to override).
Creates or updates a GitHub portfolio document.
Output file: {config.directories.career_analysis}/github_portfolio_{YYYYMMDD}.md — a fresh timestamped snapshot is written on every run (create, add, or refresh).
Usage forms:
/github-portfolio <repository-url> — create if no prior snapshot exists, otherwise add the repo to the latest snapshot./github-portfolio <repository-url> -create — force a brand-new snapshot (first repository)./github-portfolio <repository-url> -update — add the repository to the latest existing snapshot./github-portfolio -update — full portfolio refresh/reorganization of the latest snapshot (no URL needed).Arguments:
$1: Repository URL (required for adding repositories) OR the -update flag for refresh-only mode.$2: Mode flag (optional, defaults to auto-detect):
-create: Force create a new portfolio snapshot.-update: Force update of the latest portfolio snapshot.Repository URL: $1 Mode Flag: ${2:-auto}
Checking arguments:
$1 is -update and no $2: Refresh Mode (reorganize existing portfolio)$1 is a URL: Repository Addition Mode (create or update)
$2 flagChecking whether a prior portfolio snapshot already exists in {config.directories.career_analysis}/ (any file matching github_portfolio_*.md). When more than one exists, use the most recent by date suffix as the working snapshot for add/refresh operations.
Result: [Snapshot exists/does not exist]
Based on arguments and portfolio existence:
Purpose: Create initial github_portfolio_{YYYYMMDD}.md snapshot with first repository.
Repository URL Provided: $1
I'll try to access the repository directly to read its README and structure.
Attempting to fetch: $1
Access Methods:
[If WebFetch succeeds]:
[If WebFetch fails with 403/private/inaccessible]:
The repository is not publicly accessible or I cannot reach it directly.
No problem! Please run this analysis script in the repository's codespace/terminal and paste the complete results back to me:
#!/bin/bash
echo "=== REPOSITORY ANALYSIS FOR PORTFOLIO DOCUMENTATION ==="
echo ""
echo "## Basic Repository Information"
echo "Repository: $(basename $(git rev-parse --show-toplevel 2>/dev/null || pwd))"
echo "Current Branch: $(git branch --show-current 2>/dev/null || echo 'N/A')"
echo "Total Commits: $(git rev-list --count HEAD 2>/dev/null || echo 'N/A')"
echo "Last Commit: $(git log -1 --format='%h - %s (%ar)' 2>/dev/null || echo 'N/A')"
echo ""
echo "## File Structure"
echo "Total Files: $(find . -type f -not -path '*/\.*' | wc -l)"
echo ""
echo "Directory Tree (top 3 levels):"
tree -L 3 -I 'node_modules|.git|__pycache__|*.pyc' 2>/dev/null || find . -type d -not -path '*/\.*' -maxdepth 3 | sort
echo ""
echo "## README Content"
if [ -f README.md ]; then
echo "--- START README.md ---"
cat README.md
echo "--- END README.md ---"
else
echo "No README.md found"
fi
echo ""
echo "## Package/Dependency Information"
if [ -f package.json ]; then
echo "--- package.json ---"
cat package.json
fi
if [ -f requirements.txt ]; then
echo "--- requirements.txt ---"
cat requirements.txt
fi
if [ -f pyproject.toml ]; then
echo "--- pyproject.toml ---"
cat pyproject.toml
fi
echo ""
echo "## Code Statistics"
echo "Python files: $(find . -name '*.py' -not -path '*/\.*' | wc -l)"
echo "JavaScript files: $(find . -name '*.js' -not -path '*/\.*' | wc -l)"
echo "TypeScript files: $(find . -name '*.ts' -not -path '*/\.*' | wc -l)"
echo "Bash scripts: $(find . -name '*.sh' -not -path '*/\.*' | wc -l)"
echo "Markdown files: $(find . -name '*.md' -not -path '*/\.*' | wc -l)"
echo ""
echo "## Sample Code (largest Python/Bash/TypeScript files)"
for file in $(find . \( -name '*.py' -o -name '*.sh' -o -name '*.ts' \) | grep -v '.git' | grep -v 'node_modules' | head -5); do
echo "--- $file ($(wc -l < "$file") lines) ---"
head -50 "$file"
echo ""
done
echo "## Git Activity"
echo "Commit History (last 10):"
git log --oneline -10 2>/dev/null || echo "Git history not available"
echo ""
echo "Recent Contributors:"
git shortlog -sn --no-merges | head -5 2>/dev/null || echo "N/A"
echo ""
echo "=== END ANALYSIS ==="
Instructions:
Once you provide the analysis, I'll create your initial portfolio entry.
Purpose: Add new repository to the latest snapshot and write a new timestamped snapshot.
Repository URL Provided: $1
Read the most recent {config.directories.career_analysis}/github_portfolio_*.md file.
Current Portfolio Status:
Attempting to fetch: $1
Access Methods:
[If WebFetch succeeds]:
The repository is not publicly accessible.
Please run this analysis script in the repository's codespace and paste the results:
#!/bin/bash
echo "=== REPOSITORY ANALYSIS FOR PORTFOLIO DOCUMENTATION ==="
echo ""
echo "## Basic Repository Information"
echo "Repository: $(basename $(git rev-parse --show-toplevel 2>/dev/null || pwd))"
echo "Current Branch: $(git branch --show-current 2>/dev/null || echo 'N/A')"
echo "Total Commits: $(git rev-list --count HEAD 2>/dev/null || echo 'N/A')"
echo "Last Commit: $(git log -1 --format='%h - %s (%ar)' 2>/dev/null || echo 'N/A')"
echo ""
echo "## File Structure"
echo "Total Files: $(find . -type f -not -path '*/\.*' | wc -l)"
echo ""
echo "Directory Tree (top 3 levels):"
tree -L 3 -I 'node_modules|.git|__pycache__|*.pyc' 2>/dev/null || find . -type d -not -path '*/\.*' -maxdepth 3 | sort
echo ""
echo "## README Content"
if [ -f README.md ]; then
echo "--- START README.md ---"
cat README.md
echo "--- END README.md ---"
else
echo "No README.md found"
fi
echo ""
echo "## Package/Dependency Information"
if [ -f package.json ]; then
echo "--- package.json ---"
cat package.json
fi
if [ -f requirements.txt ]; then
echo "--- requirements.txt ---"
cat requirements.txt
fi
if [ -f pyproject.toml ]; then
echo "--- pyproject.toml ---"
cat pyproject.toml
fi
echo ""
echo "## Code Statistics"
echo "Python files: $(find . -name '*.py' -not -path '*/\.*' | wc -l)"
echo "JavaScript files: $(find . -name '*.js' -not -path '*/\.*' | wc -l)"
echo "TypeScript files: $(find . -name '*.ts' -not -path '*/\.*' | wc -l)"
echo "Bash scripts: $(find . -name '*.sh' -not -path '*/\.*' | wc -l)"
echo "Markdown files: $(find . -name '*.md' -not -path '*/\.*' | wc -l)"
echo ""
echo "## Sample Code (largest Python/Bash/TypeScript files)"
for file in $(find . \( -name '*.py' -o -name '*.sh' -o -name '*.ts' \) | grep -v '.git' | grep -v 'node_modules' | head -5); do
echo "--- $file ($(wc -l < "$file") lines) ---"
head -50 "$file"
echo ""
done
echo "## Git Activity"
echo "Commit History (last 10):"
git log --oneline -10 2>/dev/null || echo "Git history not available"
echo ""
echo "Recent Contributors:"
git shortlog -sn --no-merges | head -5 2>/dev/null || echo "N/A"
echo ""
echo "=== END ANALYSIS ==="
After receiving analysis:
Purpose: Full portfolio reorganization and content refresh without adding new repositories.
Triggered When: User runs /github-portfolio -update with no URL
Read the most recent {config.directories.career_analysis}/github_portfolio_*.md file as the working snapshot.
Current Portfolio Status:
Repository Entries Consistency:
Capability Matrices Accuracy:
Positioning and Messaging:
Table of Contents:
Version and Date:
Quality Checks:
After refresh, provide summary of:
When adding a new repository, use this comprehensive structure:
### N. [repository-name](https://github.com/username/repo-name)
**Status**: Production (vX.Y.Z) | **License**: [License] | **Commits**: N
One-paragraph description highlighting core purpose and key technologies.
**Technical Architecture**:
- **Key Component 1**: Description with metrics
- **Key Component 2**: Description with metrics
- **Key Component 3**: Description with metrics
- **Key Component 4**: Description with metrics
- **Key Component 5**: Description with metrics
**Technical Sophistication**:
- **Scale Metric**: Total files, lines of code, complexity indicators
- **Advanced Pattern 1**: Specific implementation details
- **Advanced Pattern 2**: Specific implementation details
- **Advanced Pattern 3**: Specific implementation details
- **Advanced Pattern 4**: Specific implementation details
**Skills Demonstrated**:
- **Skill 1** (proficiency level: specific evidence)
- **Skill 2** (proficiency level: specific evidence)
- **Skill 3** (proficiency level: specific evidence)
- **Skill 4** (proficiency level: specific evidence)
- **Skill 5** (proficiency level: specific evidence)
- **Skill 6** (proficiency level: specific evidence)
**Business Impact**:
- Quantified improvement 1
- Quantified improvement 2
- Quantified improvement 3
- Use case or application context
**Development Approach**:
How this was built, key learning journey, relationship to other repositories, development philosophy demonstrated.
**Domain Specialization** (if applicable):
Specific industry domain, technical specialty, or problem space this addresses.
**Key Innovation**:
**Bold Innovation Name**: One-paragraph description of the unique approach, pattern, or solution this repository demonstrates. What makes this different or notable.
**[Optional] Component Breakdown**:
- **Category 1**: List of components/features
- **Category 2**: List of components/features
When updating portfolio, ensure these capability matrices remain comprehensive and accurate:
Matrix Format:
| Capability | Proficiency | Evidence | Development Method |
|---|---|---|---|
| **Capability Name** | Proficiency description | Specific evidence from repositories | How acquired/developed |
Always maintain these core positioning principles:
File Location: {config.directories.career_analysis}/github_portfolio_{YYYYMMDD}.md (new timestamped snapshot per run)
YAML Front Matter:
---
title: GitHub Repositories & Derived Technical Capabilities
person: Reggie Chan
lastUpdated: YYYY-MM-DD (today's date)
category: Technology Portfolio
keywords: AI-assisted-development, Python, machine-learning, financial-systems, Claude-Code
shareable: true
profileType: technical-portfolio
---
Version Tracking:
lastUpdated field to today's datePortfolio Version at end of document (format: X.Y)
Quality Checks:
Let me proceed with the selected mode.
npx claudepluginhub reggiechan74/jobops --plugin jobopsGenerates brag documents from GitHub activity using LLM APIs (OpenAI/Anthropic). Useful for performance reviews, promotion packets, and self-assessments.
Reviews and optimizes GitHub profiles and repositories for discoverability, clarity, and trust signals using documented search, metadata, and structure guidance.
Analyzes GitHub contributions to extract an engineer's coding style, patterns, best practices, architecture, and review feedback into a structured knowledge base.