Skip to content

/website-repo

Creates a GitHub repository for the website project, initializes git, and pushes the code.

shell
$ npx -y skills add GRCEngClub/claude-grc-engineering --skill website-repo --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/website-repo
How auto-invocation works

Context preview

The summary Claude sees to decide when to auto-load this skill.

Creates a GitHub repository for the website project, initializes git, and pushes the code.

SKILL.md

website-repo.SKILL.md
name: website-repo
description: Creates a GitHub repository for the website project, initializes git, and pushes the code.
allowed-tools: Bash, Read, Write, Edit, Glob

Website Repo Skill

You are running the `/grc-portfolio:repo` skill. Your job is to create a GitHub repository for the website project and push the code.

Step 1: Locate and Validate Config

Find `site-config.json`:

  • Check `$ARGUMENTS` for a project directory path
  • Check the current working directory
  • Ask the user if not found

Read it and validate that `status.buildComplete === true`. If not, tell the user to run `/grc-portfolio:build` first.

Step 2: Verify Prerequisites

Check that `gh` CLI is installed and authenticated:

gh --version
gh auth status

If not installed, tell the user to run:

brew install gh
gh auth login

Step 3: Ask Repository Details

Ask the user:

  • **Repo name** (suggest `projectName` from config)
  • **Visibility**: public or private (default: private)

Step 4: Ensure .gitignore

Check if `.gitignore` exists in the project directory. If not, create one:

# Dependencies
node_modules/

# Build output
dist/

# Environment variables
.env
.env.local
.env.production

# OS files
.DS_Store
Thumbs.db

# IDE
.vscode/
.idea/

# Logs
*.log
npm-debug.log*

# Lambda packages
lambda/*.zip

If it exists, verify it includes at least `node_modules`, `dist`, `.env`, `.env.local`, and `.DS_Store`. **If any of those entries are missing, add them before staging any files** — `git add -A` will happily stage `.env.local` with secrets in it otherwise.

Step 5: Initialize Git and Commit

cd <projectDir>
git init

Before staging, confirm `.env*` files are ignored:

git check-ignore -q .env .env.local 2>/dev/null && echo "ok: env files ignored"

If that fails (exit code 1), stop and fix `.gitignore` — do not run `git add -A` until env files are ignored.

git add -A
# Sanity check: nothing under .env* should be staged.
if git diff --cached --name-only | grep -E '^\.env(\.|$)'; then
  echo "ERROR: env file staged — unstage it and fix .gitignore" >&2
  exit 1
fi
git commit -m "Initial commit: scaffolded GRC portfolio website"

Step 6: Create GitHub Repo and Push

gh repo create <repoName> --<visibility> --source . --push

This creates the repo on GitHub, sets the remote, and pushes the code.

Step 7: Update Config

Get the repo URL and owner:

gh repo view --json url,owner

Update `site-config.json`:

  • Set `github.repoName` to the repo name
  • Set `github.repoUrl` to the full URL
  • Set `github.owner` to the owner login
  • Set `github.visibility` to public/private
  • Set `status.repoCreated = true`

Step 8: Summary

Tell the user:

  • The repo was created at `<github.repoUrl>`
  • The code has been pushed
  • Suggest running `/grc-portfolio:infra` next (if not done) or `/grc-portfolio:cicd` to set up continuous deployment

Variables

  • `$ARGUMENTS` = arguments passed after `/repo` (expected: project directory path)
Read more
Read it on GitHub ↗
Ships withtrust-center

Open-source GRC Engineering resource for Claude. claude-grc-engineering turns technical evidence from cloud, SaaS, code, and security tools into framework-aligned findings, gap reports, remediation guidance, evidence packages, and OSCAL workflows.

Get the whole plugin, auto-invoked