Configuration
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).
Usage and Arguments
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-updateflag 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.
Step 1: Parse Arguments and Determine Mode
Repository URL: $1 Mode Flag: ${2:-auto}
Checking arguments:
- If
$1is-updateand no$2: Refresh Mode (reorganize existing portfolio) - If
$1is a URL: Repository Addition Mode (create or update)- If portfolio exists: Update mode
- If portfolio doesn't exist: Create mode
- Mode can be forced with
$2flag
Step 2: Check Portfolio Existence
Checking 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]
Step 3: Mode Selection
Based on arguments and portfolio existence:
- Mode: [CREATE NEW | ADD TO EXISTING | REFRESH EXISTING]
Mode: CREATE NEW PORTFOLIO
Purpose: Create initial github_portfolio_{YYYYMMDD}.md snapshot with first repository.
Repository URL Provided: $1
Step 3.1: Attempt to Access Repository
I'll try to access the repository directly to read its README and structure.
Attempting to fetch: $1
Access Methods:
- Try WebFetch to read README.md from GitHub URL
- If that fails (403, private repo, etc.), provide manual analysis script
Step 3.2A: If Repository Accessible
[If WebFetch succeeds]:
- Read README.md content
- Parse repository name, description
- Attempt to infer technical details from README
- Ask user for additional details (commits, file counts, specific metrics)
- Proceed to create portfolio entry
Step 3.2B: If Repository NOT Accessible (Most Likely)
[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:
- Open a terminal in the repository's codespace or local clone
- Copy the entire script above
- Paste it into the terminal and press Enter
- Copy ALL the output (from "=== REPOSITORY ANALYSIS" to "=== END ANALYSIS ===")
- Paste the complete output in your next message
Once you provide the analysis, I'll create your initial portfolio entry.
Mode: ADD TO EXISTING PORTFOLIO
Purpose: Add new repository to the latest snapshot and write a new timestamped snapshot.
Repository URL Provided: $1
Step 3.1: Read Latest Portfolio Snapshot
Read the most recent {config.directories.career_analysis}/github_portfolio_*.md file.
Current Portfolio Status:
- Total repositories: [count from file]
- Next repository number: [N+1]
- Portfolio version: [current version]
- Last updated: [date from file]
Step 3.2: Attempt to Access Repository
Attempting to fetch: $1
Access Methods:
- Try WebFetch to read README.md from GitHub URL
- If that fails, provide manual analysis script
Step 3.3A: If Repository Accessible
[If WebFetch succeeds]:
- Parse repository information
- Ask for additional metrics if needed
- Create comprehensive repository entry
- Update portfolio
Step 3.3B: If Repository NOT Accessible
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:
- Parse repository analysis output
- Create comprehensive repository entry following established format
- Insert into Primary Repositories section (next available number)
- Update capability matrices with new skills/technologies
- Update conclusion to reference new repository count
- Increment portfolio version number
- Update "Last Updated" date
Mode: REFRESH EXISTING PORTFOLIO
Purpose: Full portfolio reorganization and content refresh without adding new repositories.
Triggered When: User runs /github-portfolio -update with no URL
Step 3.1: Read Latest Portfolio Snapshot
Read the most recent {config.directories.career_analysis}/github_portfolio_*.md file as the working snapshot.
Current Portfolio Status:
- Total repositories: [count]
- Portfolio version: [current version]
- Last updated: [date]
Step 3.2: Comprehensive Review Tasks
Repository Entries Consistency:
- Verify all entries follow current template format
- Check for complete sections in each entry
- Ensure consistent emoji usage and status indicators
- Verify all repository links work
Capability Matrices Accuracy:
- Review all 11 matrices for current proficiency levels
- Add any new skills/technologies from recent work
- Ensure honest positioning (AI-collaborative vs independent)
- Check evidence references are current
Positioning and Messaging:
- Refresh conclusion with current repository count
- Update "What I Bring" / "What I Don't Claim" sections
- Review application language examples for relevance
- Ensure "AI-Collaborative Builder" philosophy is consistent
Table of Contents:
- Verify all anchor links work correctly
- Ensure all repositories are listed
- Check capability matrix links
- Confirm career positioning sections are linked
Version and Date:
- Increment portfolio version (minor: X.Y+1)
- Update lastUpdated to today's date in YAML frontmatter
- Update "Last Updated" at bottom of document
Quality Checks:
- Remove any outdated information
- Fix broken internal references
- Ensure development philosophy remains honest and accurate
- Verify all repository counts match
Step 3.3: Generate Update Summary
After refresh, provide summary of:
- Changes made
- New version number
- Items requiring user attention (if any)
Repository Entry Template
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
Capability Matrices to Maintain
When updating portfolio, ensure these capability matrices remain comprehensive and accurate:
- Core Programming & Software Engineering (7 capabilities)
- Data Science & Machine Learning (5 capabilities)
- Financial Domain & Real Estate (4 capabilities)
- AI Collaboration & Modern Development (6 capabilities)
- AI Agent Systems & Orchestration (6 capabilities)
- API & Data Integration (5 capabilities)
- Bash Scripting & System Automation (6 capabilities)
- Research Automation & Knowledge Management (7 capabilities)
- Performance Engineering & Optimization (5 capabilities)
- Workflow Automation & Process Design (6 capabilities)
- Strategic & Analytical Capabilities (5 capabilities)
Matrix Format:
| Capability | Proficiency | Evidence | Development Method |
|---|---|---|---|
| **Capability Name** | Proficiency description | Specific evidence from repositories | How acquired/developed |
Development Philosophy Principles
Always maintain these core positioning principles:
- Radical Honesty: "Zero software engineering experience, ALL built through Claude Code collaboration"
- AI-Collaborative Builder: Domain expert who learned to leverage AI as development partner
- What I Bring: Domain expertise, architectural thinking, AI collaboration skills, proof of capability
- What I Don't Claim: Traditional SWE credentials, ability to code independently, ML engineering qualification
- Value Proposition: Living case study of domain expert to AI builder transformation
Output Requirements
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:
- Update
lastUpdatedfield to today's date - Increment
Portfolio Versionat end of document (format: X.Y)- Major version (X): Adding new repository or major restructuring
- Minor version (Y): Content updates, refinements, corrections
Quality Checks:
- All repository entries follow consistent format
- Table of Contents links work correctly
- Capability matrices are complete and accurate
- Conclusion reflects current repository count
- Application language examples are current
- Repository Links section is complete
- Version and date are updated
Let me proceed with the selected mode.