chore(skills): include pcbjam-shared in the git-feature workflow

The pcbjam repo's own git-feature skills + scripts/git-workflow predated the
web/pcbjam-shared submodule and only covered root+kicad+wxwidgets. Add the MIT
contract repo as a fourth member everywhere:

- repos.sh: pcbjam_shared key (path web/pcbjam-shared, main `main`) + layout doc.
- assert-clean.sh / for-each-repo.sh: count-agnostic wording.
- git-feature-start/commit/sync/finish SKILL.md: pcbjam-shared in the branch /
  commit (kicad, wxwidgets, pcbjam-shared, then root) / rebase (root first) /
  finish orders; root pointer-bump staging + diff now include web/pcbjam-shared,
  and the root stage step excludes it like the other submodule trees.

Mirrors the root pcbjam-private skills, which already covered shared.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Gergő Törcsvári 2026-06-11 12:23:10 +02:00
commit 0665b30762
No known key found for this signature in database
GPG key ID: 8E75F2CDE64E5322
7 changed files with 44 additions and 31 deletions

View file

@ -1,5 +1,5 @@
#!/bin/bash
# Exit 0 if all 3 repos are clean (no staged, no unstaged, no untracked files).
# Exit 0 if all repos are clean (no staged, no unstaged, no untracked files).
# Exit 1 with a readable message listing the dirty repos otherwise.
# Untracked files count as dirty - this is intentional: starting a new feature
# while you have uncommitted new files is almost always a mistake.
@ -20,7 +20,7 @@ for repo in "${REPOS[@]}"; do
done
if [ ${#dirty[@]} -eq 0 ]; then
echo "All 3 repos clean."
echo "All ${#REPOS[@]} repos clean."
exit 0
fi

View file

@ -1,5 +1,5 @@
#!/bin/bash
# Run a git command in each of the 3 repos. Echoes before each run.
# Run a git command in each repo of the 4-repo tree. Echoes before each run.
# Usage: ./for-each-repo.sh <git-subcommand-and-args>
# e.g. ./for-each-repo.sh status --short
# ./for-each-repo.sh fetch origin

View file

@ -1,18 +1,28 @@
#!/bin/bash
# Sourced library. Single source of truth for the 3-repo layout.
# Sourced library. Single source of truth for the 4-repo layout:
#
# root = pcbjam main
# ├── kicad (kicad/) wasm-port
# ├── wxwidgets (wxwidgets/) wasm-port
# └── pcbjam-shared (web/pcbjam-shared/) main [MIT contract]
#
# Bash variable names can't contain '-', so pcbjam-shared's KEY is
# `pcbjam_shared`; its path/display name keep the dash.
# Usage: source "$(dirname "$0")/repos.sh"
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
REPOS=(root kicad wxwidgets)
REPOS=(root kicad wxwidgets pcbjam_shared)
PATH_root="$ROOT_DIR"
PATH_kicad="$ROOT_DIR/kicad"
PATH_wxwidgets="$ROOT_DIR/wxwidgets"
PATH_pcbjam_shared="$ROOT_DIR/web/pcbjam-shared"
MAIN_root="main"
MAIN_kicad="wasm-port"
MAIN_wxwidgets="wasm-port"
MAIN_pcbjam_shared="main"
repo_path() {
local var="PATH_$1"