بنقرة واحدة
add-project
Add or update a portfolio project entry from a GitHub URL, repo name or user input.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Add or update a portfolio project entry from a GitHub URL, repo name or user input.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | add-project |
| description | Add or update a portfolio project entry from a GitHub URL, repo name or user input. |
Add or update src/content/projects/<slug>.md using GitHub CLI. No cloning. Portfolio root: ~/projects/portfolio/.
Accept any of:
https://github.com/owner/repolomartins/badbbadb → assume owner lomartinsOptional flags user may provide [AskUserQuestion] (otherwise ask or infer):
--tier S|A|B|C — sort order (S = best, C = lowest)--featured / --no-featured--emoji 🦀Extract owner/repo. If only repo name given, default owner = lomartins.
# Metadata
gh repo view <owner/repo> --json name,description,repositoryTopics,primaryLanguage,languages,url
# README (decode base64)
gh api repos/<owner/repo>/readme --jq '.content' | base64 -d 2>/dev/null
Slug = repo name lowercased, hyphens preserved.
src/content/projects/<slug>.md exists → update mode| Field | Source |
|---|---|
name | Repo name prettified (badb → badb, my-cool-app → My Cool App) |
emoji | Infer from primary language/topics. Ask if unclear. Update: keep existing unless overridden |
tier | Ask user if not provided. Update: keep existing unless overridden |
featured | Ask user if not provided. Update: keep existing unless overridden |
description | Repo description ≤ 120 chars. Fall back to first README sentence |
tech | Primary language + topics filtered for tech terms. Update: merge with existing |
github | Full repo URL |
Tech inference rules:
primaryLanguage.namerepositoryTopics[].name if it looks like a technologyopen-source, portfolio, hacktoberfest, awesomerust → Rust, kotlin → Kotlin, cli → CLI, kmp → KMP, android → AndroidSummarize README into 2–4 short Markdown paragraphs. Focus on:
Strip: badges, shields, install commands, license sections, contributing guides.
Start with ## <Project Name> heading.
Update mode: rewrite body from fresh README data, don't preserve stale content.
File path: src/content/projects/<slug>.md
Format:
---
name: Project Name
emoji: '🦀'
tier: B
featured: false
description: 'Short description ≤ 120 chars.'
tech: ['Rust', 'CLI']
github: 'https://github.com/lomartins/repo'
---
## Project Name
Body here...
Mode: created | updated
File: src/content/projects/<slug>.md
Tech: [Rust, CLI]
Tier: B | Featured: false
gh repo view lomartins/badb --json name,description,repositoryTopics,primaryLanguage,languages,url
gh api repos/lomartins/badb/readme --jq '.content' | base64 -d
gh repo view lomartins/badb --json repositoryTopics --jq '.repositoryTopics[].name'
gh repo view lomartins/badb --json languages --jq '.languages[].node.name'