Skip to content
Back to skills

Add Project

ASecurity

Add new GitHub projects to nibzard-web projects page. Fetches repo metadata via gh CLI, generates appropriate topics, and formats entries for src/pages/projects.astro. Use when user says "add project", "add to projects page", or mentions adding GitHub repos to the site.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
toolsjavascriptjavabashgitapidatabase

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill add-project --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Add Project?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Add Project
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-add-project/badge)](https://www.skillsdirectory.com/skills/david-li0406-add-project)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: add-project
description: Add new GitHub projects to nibzard-web projects page. Fetches repo metadata via gh CLI, generates appropriate topics, and formats entries for src/pages/projects.astro. Use when user says "add project", "add to projects page", or mentions adding GitHub repos to the site.
allowed-tools: Bash, Read, Edit
---

# Add Project to nibzard-web

## Quick workflow

For each GitHub repo to add:

1. **Fetch metadata** using gh CLI:
   ```bash
   gh repo view OWNER/REPO --json name,description,repositoryTopics,primaryLanguage,languages,createdAt,updatedAt
   ```

2. **Fetch README** if description is empty or missing:
   ```bash
   gh api repos/OWNER/REPO/readme | jq -r '.content' | base64 -d | head -50
   ```

3. **Generate topics** if `repositoryTopics` is null:
   - Derive from: repo description, README content, primary language
   - Use 3-5 relevant lowercase tags (e.g., "ai", "database", "zig", "embedded")

4. **Read the projects file** to understand current format:
   ```bash
   src/pages/projects.astro
   ```

5. **Add the entry** to the `projects` array using this format:
   ```javascript
   {
     title: "repo-name",
     url: "https://github.com/OWNER/REPO",
     description: "Brief description from gh or README",
     topics: ["topic1", "topic2", "topic3"],
     date: "YYYY-MM-DD"  // use createdAt date
   }
   ```

6. **Insert before** the closing `].sort(...)` line

## Date format

Use `createdAt` from gh CLI, formatted as `YYYY-MM-DD` (extract from ISO date like "2026-01-12T11:00:03Z").

## Verification

After adding, run:
```bash
pnpm run build
```

## Example

```bash
# Fetch repo info
gh repo view nibzard/scribe --json name,description,repositoryTopics,primaryLanguage,languages,createdAt,updatedAt

# Result: description="Distraction-Free Writing firmware for the M5stack ESP32 based Tab5 device", createdAt="2026-01-12T11:00:03Z"

# Entry to add:
{
  title: "scribe",
  url: "https://github.com/nibzard/scribe",
  description: "Distraction-Free Writing firmware for the M5stack ESP32 based Tab5 device",
  topics: ["firmware", "embedded", "esp32", "writing", "m5stack"],
  date: "2026-01-12"
}
```

## Notes

- The array is auto-sorted by date (newest first)
- Use kebab-case for title matching repo name
- Keep descriptions under ~100 characters
- Topics should be single words or hyphenated terms

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…