--- Project References This skill manages a local mirror of your own GitHub repositories under and lets you look up conventions and implementation patterns without guessing or reading all repos blindly. All operations are read-only on the reference projects themselves. Only and write into that directory — never edits. --- Instructions Step 1: Check whether the relevant repo is already cloned If the needed repo is missing, run to clone it first. Step 2: Ask the user which reference project is most relevant Do not scan all repos blindly — that fills context. Ask: "Which of your sibling projects…

|| true\n}\n\nSCHED_TSV=\"$(mktemp)\"\nEVENT_TSV=\"$(mktemp)\"\ntrap 'rm -f \"$SCHED_TSV\" \"$EVENT_TSV\"' EXIT\n\ndeclare -A SEEN_REPOS=()\nWF_COUNT=0\nSCHED_COUNT=0\n\nfor repo in \"$ROOT\"/*/; do\n\tWF_DIR=\"${repo%/}/.github/workflows\"\n\t[[ -d \"$WF_DIR\" ]] || continue\n\n\tREPO_NAME=\"$(basename \"${repo%/}\")\"\n\tif [[ -n \"$GLOB\" ]]; then\n\t\tworkflows=(\"$WF_DIR\"/$GLOB)\n\telse\n\t\tworkflows=(\"$WF_DIR\"/*.yml \"$WF_DIR\"/*.yaml)\n\tfi\n\n\tfor wf in \"${workflows[@]}\"; do\n\t\t[[ -f \"$wf\" ]] || continue\n\n\t\tSEEN_REPOS[\"$REPO_NAME\"]=1\n\t\tWF_COUNT=$((WF_COUNT + 1))\n\n\t\tmapfile -t TRIGGERS \u003c \u003c(extract_triggers \"$wf\")\n\t\tmapfile -t CRONS \u003c \u003c(extract_crons \"$wf\")\n\n\t\ttriggers=\"—\"\n\t\tif [[ ${#TRIGGERS[@]} -gt 0 ]]; then\n\t\t\ttriggers=\"$(printf '%s, ' \"${TRIGGERS[@]}\")\"\n\t\t\ttriggers=\"${triggers%, }\"\n\t\tfi\n\n\t\tif [[ ${#CRONS[@]} -eq 0 ]]; then\n\t\t\tprintf '%s\\t%s\\t%s\\n' \"$REPO_NAME\" \"$(basename \"$wf\")\" \"$triggers\" >>\"$EVENT_TSV\"\n\t\telse\n\t\t\tcrons=\"$(printf '%s;' \"${CRONS[@]}\")\"\n\t\t\tcrons=\"${crons%;}\"\n\t\t\tprintf '%s\\t%s\\t%s\\t%s\\n' \"$REPO_NAME\" \"$(basename \"$wf\")\" \"$triggers\" \"$crons\" >>\"$SCHED_TSV\"\n\t\t\tSCHED_COUNT=$((SCHED_COUNT + ${#CRONS[@]}))\n\t\tfi\n\tdone\ndone\n\n# Build sorted scheduled rows: key \\t readable \\t repo \\t workflow \\t cron \\t triggers\nSORTED=\"$(\n\tawk -F'\\t' '\n\t\tfunction iso(d) { return (d == 0 ? 7 : d) }\n\t\tfunction dowName(d) {\n\t\t\tif (d == 0) return \"Sunday\"\n\t\t\tif (d == 1) return \"Monday\"\n\t\t\tif (d == 2) return \"Tuesday\"\n\t\t\tif (d == 3) return \"Wednesday\"\n\t\t\tif (d == 4) return \"Thursday\"\n\t\t\tif (d == 5) return \"Friday\"\n\t\t\treturn \"Saturday\"\n\t\t}\n\t\t{\n\t\t\trepo = $1; wf = $2; trig = $3\n\t\t\tnc = split($4, crons, \";\")\n\t\t\tfor (i = 1; i \u003c= nc; i++) {\n\t\t\t\tcron = crons[i]\n\t\t\t\tgsub(/^[ \\t]+|[ \\t]+$/, \"\", cron)\n\t\t\t\tif (cron == \"\") continue\n\t\t\t\tn = split(cron, f, /[ \\t]+/)\n\t\t\t\tif (n != 5) { printf \"z\\t%s\\t%s\\t%s\\t%s\\t%s\\n\", \"custom\", repo, wf, cron, trig; continue }\n\t\t\t\tmn = f[1]; hr = f[2]; dom = f[3]; mon = f[4]; dow = f[5]\n\t\t\t\tif (mn !~ /^[0-9]+$/ || hr !~ /^[0-9]+$/) {\n\t\t\t\t\tprintf \"z\\t%s\\t%s\\t%s\\t%s\\t%s\\n\", \"custom\", repo, wf, cron, trig; continue\n\t\t\t\t}\n\t\t\t\tif (dow == \"*\" && dom == \"*\") { dk = 0; label = \"daily\" }\n\t\t\t\telse if (dow ~ /^[0-7]$/ && dom == \"*\") { dk = iso(dow + 0); label = dowName(dow + 0) }\n\t\t\t\telse if (dow == \"1-5\" && dom == \"*\") { dk = 1; label = \"weekdays\" }\n\t\t\t\telse if (dom ~ /^[0-9]+$/ && dow == \"*\") { dk = 0; label = \"monthly day \" dom }\n\t\t\t\telse { printf \"z\\t%s\\t%s\\t%s\\t%s\\t%s\\n\", \"custom\", repo, wf, cron, trig; continue }\n\t\t\t\tkey = sprintf(\"%02d %02d:%02d\", dk, hr + 0, mn + 0)\n\t\t\t\treadable = sprintf(\"%s %02d:%02d\", label, hr + 0, mn + 0)\n\t\t\t\tprintf \"%s\\t%s\\t%s\\t%s\\t%s\\t%s\\n\", key, readable, repo, wf, cron, trig\n\t\t\t}\n\t\t}\n\t' \"$SCHED_TSV\" | sort\n)\"\n\nREPO_COUNT=${#SEEN_REPOS[@]}\n\n# --- Console output ---\necho \"Scheduled workflows (sorted by weekday/time):\"\necho\nif [[ -z \"$SORTED\" ]]; then\n\techo \" (none)\"\nelse\n\twhile IFS=

--- Project References This skill manages a local mirror of your own GitHub repositories under and lets you look up conventions and implementation patterns without guessing or reading all repos blindly. All operations are read-only on the reference projects themselves. Only and write into that directory — never edits. --- Instructions Step 1: Check whether the relevant repo is already cloned If the needed repo is missing, run to clone it first. Step 2: Ask the user which reference project is most relevant Do not scan all repos blindly — that fills context. Ask: "Which of your sibling projects…

\\t' read -r _key readable repo wf cron triggers; do\n\t\tprintf ' %-16s %-30s %-24s %s\\n' \"$readable\" \"$repo\" \"$wf\" \"[$cron]\"\n\tdone \u003c\u003c\u003c\"$SORTED\"\nfi\n\necho\necho \"Event-only workflows (no schedule):\"\necho\nif [[ ! -s \"$EVENT_TSV\" ]]; then\n\techo \" (none)\"\nelse\n\twhile IFS=

--- Project References This skill manages a local mirror of your own GitHub repositories under and lets you look up conventions and implementation patterns without guessing or reading all repos blindly. All operations are read-only on the reference projects themselves. Only and write into that directory — never edits. --- Instructions Step 1: Check whether the relevant repo is already cloned If the needed repo is missing, run to clone it first. Step 2: Ask the user which reference project is most relevant Do not scan all repos blindly — that fills context. Ask: "Which of your sibling projects…

\\t' read -r repo wf triggers; do\n\t\tprintf ' %-30s %-24s %s\\n' \"$repo\" \"$wf\" \"$triggers\"\n\tdone \u003c\"$EVENT_TSV\"\nfi\n\necho\necho \"Repositories: $REPO_COUNT Workflows: $WF_COUNT Scheduled entries: $SCHED_COUNT\"\n\n# --- Markdown report ---\nif [[ $WRITE_REPORT -eq 1 ]]; then\n\tmkdir -p \"$(dirname \"$OUT\")\"\n\t{\n\t\techo \"# GitHub Actions Trigger Overview\"\n\t\techo\n\t\techo \"- Root: \\`$ROOT\\`\"\n\t\techo \"- Generated: $(date '+%Y-%m-%d %H:%M:%S %z')\"\n\t\techo \"- Repositories: $REPO_COUNT\"\n\t\techo \"- Workflows: $WF_COUNT\"\n\t\techo \"- Scheduled entries: $SCHED_COUNT\"\n\t\techo\n\t\techo \"## Scheduled workflows (sorted by weekday/time)\"\n\t\techo\n\t\tif [[ -z \"$SORTED\" ]]; then\n\t\t\techo \"_No scheduled workflows found._\"\n\t\telse\n\t\t\techo \"| Run | Repository | Workflow | Cron | Triggers |\"\n\t\t\techo \"| --- | ---------- | -------- | ---- | -------- |\"\n\t\t\twhile IFS=

--- Project References This skill manages a local mirror of your own GitHub repositories under and lets you look up conventions and implementation patterns without guessing or reading all repos blindly. All operations are read-only on the reference projects themselves. Only and write into that directory — never edits. --- Instructions Step 1: Check whether the relevant repo is already cloned If the needed repo is missing, run to clone it first. Step 2: Ask the user which reference project is most relevant Do not scan all repos blindly — that fills context. Ask: "Which of your sibling projects…

\\t' read -r _key readable repo wf cron triggers; do\n\t\t\t\techo \"| $readable | $repo | $wf | \\`$cron\\` | $triggers |\"\n\t\t\tdone \u003c\u003c\u003c\"$SORTED\"\n\t\tfi\n\t\techo\n\t\techo \"## Event-only workflows (no schedule)\"\n\t\techo\n\t\tif [[ ! -s \"$EVENT_TSV\" ]]; then\n\t\t\techo \"_None._\"\n\t\telse\n\t\t\techo \"| Repository | Workflow | Triggers |\"\n\t\t\techo \"| ---------- | -------- | -------- |\"\n\t\t\twhile IFS=

--- Project References This skill manages a local mirror of your own GitHub repositories under and lets you look up conventions and implementation patterns without guessing or reading all repos blindly. All operations are read-only on the reference projects themselves. Only and write into that directory — never edits. --- Instructions Step 1: Check whether the relevant repo is already cloned If the needed repo is missing, run to clone it first. Step 2: Ask the user which reference project is most relevant Do not scan all repos blindly — that fills context. Ask: "Which of your sibling projects…

\\t' read -r repo wf triggers; do\n\t\t\t\techo \"| $repo | $wf | $triggers |\"\n\t\t\tdone \u003c\"$EVENT_TSV\"\n\t\tfi\n\t} >\"$OUT\"\n\techo\n\techo \"Report written to $OUT\"\nfi\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":7014,"content_sha256":"82afcb5fbc4b0625b55bd87e78d74cdc87db71c69123145d892f79623c2967f9"},{"filename":"scripts/sync-all.sh","content":"#!/usr/bin/env bash\n# Sync all repositories to ~/projects/referenzen/.\n# Reads from ~/claude-shared/projekte.txt if present, otherwise uses gh repo list.\n# Usage: sync-all.sh [--list \u003cfile>] [--limit \u003cn>]\n# --list \u003cfile> override the default projekte.txt path\n# --limit \u003cn> max repos when using gh repo list (default: 200)\n\nset -euo pipefail\n\nREFERENZEN_DIR=\"${REFERENZEN_DIR:-$HOME/projects/referenzen}\"\nPROJEKTE_FILE=\"${PROJEKTE_FILE:-$HOME/claude-shared/projekte.txt}\"\nGH_LIMIT=200\nSCRIPT_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\n\nwhile [[ $# -gt 0 ]]; do\n\tcase \"$1\" in\n\t--list)\n\t\tPROJEKTE_FILE=\"$2\"\n\t\tshift 2\n\t\t;;\n\t--limit)\n\t\tGH_LIMIT=\"$2\"\n\t\tshift 2\n\t\t;;\n\t*)\n\t\techo \"Unknown option: $1\" >&2\n\t\texit 1\n\t\t;;\n\tesac\ndone\n\nmkdir -p \"$REFERENZEN_DIR\"\n\n# --- Determine repo list ---\nif [[ -f \"$PROJEKTE_FILE\" ]]; then\n\techo \"Source: $PROJEKTE_FILE\"\n\tREPOS=$(grep -v '^\\s*#' \"$PROJEKTE_FILE\" | grep -v '^\\s*

--- Project References This skill manages a local mirror of your own GitHub repositories under and lets you look up conventions and implementation patterns without guessing or reading all repos blindly. All operations are read-only on the reference projects themselves. Only and write into that directory — never edits. --- Instructions Step 1: Check whether the relevant repo is already cloned If the needed repo is missing, run to clone it first. Step 2: Ask the user which reference project is most relevant Do not scan all repos blindly — that fills context. Ask: "Which of your sibling projects…

|| true)\nelse\n\techo \"Source: gh repo list (limit $GH_LIMIT) — projekte.txt not found at $PROJEKTE_FILE\"\n\tREPOS=$(gh repo list --limit \"$GH_LIMIT\" --json nameWithOwner --jq '.[].nameWithOwner')\nfi\n\nTOTAL=$(echo \"$REPOS\" | grep -c . || true)\necho \"Repositories to sync: $TOTAL\"\necho \"Target directory: $REFERENZEN_DIR\"\necho \"---\"\n\nCLONED=0\nPULLED=0\nSKIPPED=0\nFAILED=0\n\ninc() { eval \"$1=\\$(( \\${$1} + 1 ))\"; }\n\nwhile IFS= read -r REPO; do\n\t[[ -z \"$REPO\" ]] && continue\n\n\tNAME=\"${REPO##*/}\"\n\tTARGET=\"$REFERENZEN_DIR/$NAME\"\n\n\tif [[ -d \"$TARGET/.git\" ]]; then\n\t\tSTATUS=$(git -C \"$TARGET\" status --porcelain)\n\t\tif [[ -n \"$STATUS\" ]]; then\n\t\t\techo \"SKIP $REPO — local changes present:\"\n\t\t\tgit -C \"$TARGET\" status --short | sed 's/^/ /'\n\t\t\tinc SKIPPED\n\t\telse\n\t\t\techo \"PULL $REPO\"\n\t\t\tif git -C \"$TARGET\" pull --ff-only 2>&1 | sed 's/^/ /'; then\n\t\t\t\tinc PULLED\n\t\t\telse\n\t\t\t\techo \" FAILED\" >&2\n\t\t\t\tinc FAILED\n\t\t\tfi\n\t\tfi\n\telse\n\t\techo \"CLONE $REPO → $TARGET\"\n\t\tif gh repo clone \"$REPO\" \"$TARGET\" -- --quiet 2>&1 | sed 's/^/ /'; then\n\t\t\techo \" OK\"\n\t\t\tinc CLONED\n\t\telse\n\t\t\techo \" FAILED\" >&2\n\t\t\tinc FAILED\n\t\tfi\n\tfi\ndone \u003c\u003c\u003c\"$REPOS\"\n\necho \"---\"\necho \"Done. Cloned: $CLONED Pulled: $PULLED Skipped (local changes): $SKIPPED Failed: $FAILED\"\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":2194,"content_sha256":"6abce300ac9c5a28a1a11c01f95bb7c6d028fa60c02f01b410961a980793fb37"}],"content_json":{"type":"doc","content":[{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":1},"content":[{"text":"Project References","type":"text"}]},{"type":"paragraph","content":[{"text":"This skill manages a local mirror of your own GitHub repositories under ","type":"text"},{"text":"~/projects/referenzen/","type":"text","marks":[{"type":"code_inline"}]},{"text":" and lets you look up conventions and implementation patterns without guessing or reading all repos blindly.","type":"text"}]},{"type":"paragraph","content":[{"text":"All operations are ","type":"text"},{"text":"read-only","type":"text","marks":[{"type":"strong"}]},{"text":" on the reference projects themselves. Only ","type":"text"},{"text":"git clone","type":"text","marks":[{"type":"code_inline"}]},{"text":" and ","type":"text"},{"text":"git pull","type":"text","marks":[{"type":"code_inline"}]},{"text":" write into that directory — never edits.","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Instructions","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 1: Check whether the relevant repo is already cloned","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"ls ~/projects/referenzen/","type":"text"}]},{"type":"paragraph","content":[{"text":"If the needed repo is missing, run ","type":"text"},{"text":"scripts/clone-or-update.sh owner/repo","type":"text","marks":[{"type":"code_inline"}]},{"text":" to clone it first.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 2: Ask the user which reference project is most relevant","type":"text"}]},{"type":"paragraph","content":[{"text":"Do not scan all repos blindly — that fills context. Ask: \"Which of your sibling projects uses this pattern?\" or list the available repos and let the user pick.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 3: Search targeted — file first, then grep","type":"text"}]},{"type":"paragraph","content":[{"text":"Use ","type":"text"},{"text":"find","type":"text","marks":[{"type":"code_inline"}]},{"text":" to locate a file by name, then ","type":"text"},{"text":"cat","type":"text","marks":[{"type":"code_inline"}]},{"text":" or ","type":"text"},{"text":"grep","type":"text","marks":[{"type":"code_inline"}]},{"text":" to read only the relevant section. For search commands and patterns, consult ","type":"text"},{"text":"references/search-patterns.md","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 4: Cite the source when adopting a pattern","type":"text"}]},{"type":"paragraph","content":[{"text":"Always state which project and file path a pattern came from before applying it:","type":"text"}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"Pattern adopted from ","type":"text"},{"text":"your-service","type":"text","marks":[{"type":"code_inline"}]},{"text":" → ","type":"text"},{"text":"helm-charts/Chart.yaml","type":"text","marks":[{"type":"code_inline"}]},{"text":" line 4","type":"text"}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 5: Sync only when explicitly requested","type":"text"}]},{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"scripts/sync-all.sh","type":"text","marks":[{"type":"code_inline"}]},{"text":" only when the user says \"sync all\" or \"update all references\". For a single repo, prefer ","type":"text"},{"text":"scripts/clone-or-update.sh","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Examples","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Example 1: Looking up a Helm chart convention","type":"text"}]},{"type":"paragraph","content":[{"text":"User says: \"How should I structure the Helm chart for this project?\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Actions:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"ls ~/projects/referenzen/","type":"text","marks":[{"type":"code_inline"}]},{"text":" to see available repos","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ask: \"Which sibling project should I use as reference?\" — user says ","type":"text"},{"text":"your-service","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"find ~/projects/referenzen/your-service -name \"Chart.yaml\"","type":"text","marks":[{"type":"code_inline"}]},{"text":" to locate it","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read the file, note the structure (apiVersion, dependencies, version pattern)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Apply the same structure; cite: \"adopted from ","type":"text"},{"text":"your-service/helm-charts/Chart.yaml","type":"text","marks":[{"type":"code_inline"}]},{"text":"\"","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Result: Helm chart consistent with sibling projects, traceable source cited.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Example 2: Checking out a new reference repo","type":"text"}]},{"type":"paragraph","content":[{"text":"User says: \"Clone my other-service project as a reference\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Actions:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"bash scripts/clone-or-update.sh owner/other-service","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Stream output so user sees CLONE/PULL/SKIP progress","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Confirm with ","type":"text"},{"text":"ls ~/projects/referenzen/other-service/","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"paragraph","content":[{"text":"Result: Repo available locally for pattern lookups; no edits made.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Example 3: Finding a configuration pattern","type":"text"}]},{"type":"paragraph","content":[{"text":"User says: \"How do I configure the database pool like in the other projects?\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Actions:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"ls ~/projects/referenzen/","type":"text","marks":[{"type":"code_inline"}]},{"text":" — pick a relevant sibling project","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"grep -rn \"database.pool\" ~/projects/referenzen/your-service/src/main/resources/","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Read the relevant config section","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Cite: \"pattern from ","type":"text"},{"text":"your-service/src/main/resources/application.yaml","type":"text","marks":[{"type":"code_inline"}]},{"text":" line 42\"","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Result: Exact config from a proven sibling project, not guessed.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Example 4: Overview of GitHub Actions triggers","type":"text"}]},{"type":"paragraph","content":[{"text":"User says: \"When do my projects run their GitHub Actions — push, PR, or schedule?\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Actions:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"bash scripts/list-workflow-triggers.sh","type":"text","marks":[{"type":"code_inline"}]},{"text":" (add ","type":"text"},{"text":"--glob","type":"text","marks":[{"type":"code_inline"}]},{"text":" to narrow to one pipeline, ","type":"text"},{"text":"--root","type":"text","marks":[{"type":"code_inline"}]},{"text":" for a different checkout directory)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Present the sorted overview (weekday/time, human-readable plus original cron) and the event-only workflows","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Point the user to the generated report at ","type":"text"},{"text":"target/workflow-triggers.md","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"paragraph","content":[{"text":"Result: Consolidated, time-sorted trigger overview across all reference repos plus a Markdown report, without opening each workflow file.","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Repository source","type":"text"}]},{"type":"paragraph","content":[{"text":"Two sources are supported — prefer the manual list when it exists:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Manual list","type":"text","marks":[{"type":"strong"}]},{"text":" (","type":"text"},{"text":"~/claude-shared/projekte.txt","type":"text","marks":[{"type":"code_inline"}]},{"text":"): one GitHub repo URL or ","type":"text"},{"text":"owner/name","type":"text","marks":[{"type":"code_inline"}]},{"text":" slug per line, blank lines and ","type":"text"},{"text":"#","type":"text","marks":[{"type":"code_inline"}]},{"text":" comments ignored.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Automatic discovery","type":"text","marks":[{"type":"strong"}]},{"text":": ","type":"text"},{"text":"gh repo list --limit 200 --json nameWithOwner","type":"text","marks":[{"type":"code_inline"}]},{"text":" when the file is absent or the user explicitly asks for a full sync.","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Scripts","type":"text"}]},{"type":"paragraph","content":[{"text":"Two ready-made scripts live in ","type":"text"},{"text":"scripts/","type":"text","marks":[{"type":"code_inline"}]},{"text":" — use them instead of writing inline Bash. Both accept ","type":"text"},{"text":"REFERENZEN_DIR","type":"text","marks":[{"type":"code_inline"}]},{"text":" as an env override (default: ","type":"text"},{"text":"~/projects/referenzen","type":"text","marks":[{"type":"code_inline"}]},{"text":").","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"scripts/clone-or-update.sh \u003cowner/repo>","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"paragraph","content":[{"text":"Clones a single repository or pulls if it already exists locally. Refuses to pull when local changes are present (exit code 2) — never stashes or resets.","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"bash scripts/clone-or-update.sh owner/your-repo","type":"text"}]},{"type":"paragraph","content":[{"text":"Exit codes: ","type":"text"},{"text":"0","type":"text","marks":[{"type":"code_inline"}]},{"text":" = ok, ","type":"text"},{"text":"2","type":"text","marks":[{"type":"code_inline"}]},{"text":" = skipped (local changes), ","type":"text"},{"text":"3","type":"text","marks":[{"type":"code_inline"}]},{"text":" = clone/pull failed.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"scripts/sync-all.sh [--list \u003cfile>] [--limit \u003cn>]","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"paragraph","content":[{"text":"Iterates over all repositories and calls the clone-or-update logic for each. Prefers ","type":"text"},{"text":"~/claude-shared/projekte.txt","type":"text","marks":[{"type":"code_inline"}]},{"text":" as source; falls back to ","type":"text"},{"text":"gh repo list","type":"text","marks":[{"type":"code_inline"}]},{"text":" when the file is absent. Prints a summary line at the end.","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Sync everything (auto-detect source)\nbash scripts/sync-all.sh\n\n# Use a specific list file\nbash scripts/sync-all.sh --list ~/claude-shared/projekte.txt\n\n# Limit gh repo list to 50 repos\nbash scripts/sync-all.sh --limit 50","type":"text"}]},{"type":"paragraph","content":[{"text":"Do not","type":"text","marks":[{"type":"strong"}]},{"text":" run sync-all blindly — use it only when the user explicitly says \"sync all\" or \"update all references\". For a single repo prefer ","type":"text"},{"text":"clone-or-update.sh","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"scripts/list-workflow-triggers.sh [--root \u003cdir>] [--glob \u003cpattern>] [--out \u003cfile>] [--no-report]","type":"text","marks":[{"type":"code_inline"}]}]},{"type":"paragraph","content":[{"text":"Scans every repo checkout for ","type":"text"},{"text":".github/workflows/*.yml","type":"text","marks":[{"type":"code_inline"}]},{"text":" and ","type":"text"},{"text":"*.yaml","type":"text","marks":[{"type":"code_inline"}]},{"text":", extracts the triggers from the ","type":"text"},{"text":"on:","type":"text","marks":[{"type":"code_inline"}]},{"text":" block (","type":"text"},{"text":"push","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"pull_request","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"schedule","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"workflow_dispatch","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"release","type":"text","marks":[{"type":"code_inline"}]},{"text":", …) plus any ","type":"text"},{"text":"cron:","type":"text","marks":[{"type":"code_inline"}]},{"text":" expressions, prints the overview and writes a Markdown report. Scheduled workflows are ","type":"text"},{"text":"sorted by weekday/time","type":"text","marks":[{"type":"strong"}]},{"text":" and shown with a ","type":"text"},{"text":"human-readable run time","type":"text","marks":[{"type":"strong"}]},{"text":" (e.g. ","type":"text"},{"text":"Monday 02:05","type":"text","marks":[{"type":"code_inline"}]},{"text":") next to the ","type":"text"},{"text":"original cron expression","type":"text","marks":[{"type":"strong"}]},{"text":"; workflows without a schedule are listed in a separate event-only section. Read-only, no network access.","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"--root \u003cdir>","type":"text","marks":[{"type":"code_inline"}]},{"text":" — directory containing repo checkouts. Default: ","type":"text"},{"text":"$REFERENZEN_DIR","type":"text","marks":[{"type":"code_inline"}]},{"text":" or ","type":"text"},{"text":"~/projects/referenzen","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"--glob \u003cpattern>","type":"text","marks":[{"type":"code_inline"}]},{"text":" — optional filename filter, e.g. ","type":"text"},{"text":"maven-build.yml","type":"text","marks":[{"type":"code_inline"}]},{"text":". Default: all workflows.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"--out \u003cfile>","type":"text","marks":[{"type":"code_inline"}]},{"text":" — Markdown report path. Default: ","type":"text"},{"text":"target/workflow-triggers.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" (relative to the current project directory, created if missing).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"--no-report","type":"text","marks":[{"type":"code_inline"}]},{"text":" — print to stdout only, skip the report file.","type":"text"}]}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Overview + report for all reference repos\nbash scripts/list-workflow-triggers.sh\n\n# Only maven-build.yml, custom report location\nbash scripts/list-workflow-triggers.sh --glob 'maven-build.yml' --out target/maven-triggers.md\n\n# A different checkout root (e.g. Windows mount)\nbash scripts/list-workflow-triggers.sh --root /mnt/c/Development/projects/all-git-repos","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Workflows","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"1. Check out or update repositories","type":"text"}]},{"type":"paragraph","content":[{"text":"Run the appropriate script and stream output so the user sees every CLONE / PULL / SKIP action as it happens.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"2. Search within reference projects","type":"text"}]},{"type":"paragraph","content":[{"text":"Scope the search to what the user actually needs. Prefer targeted lookups over broad recursive greps. For ready-made search commands and citing patterns, consult ","type":"text"},{"text":"references/search-patterns.md","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3. Discover available reference projects","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"ls ~/projects/referenzen/","type":"text"}]},{"type":"paragraph","content":[{"text":"If ","type":"text"},{"text":"~/claude-shared/projekte.txt","type":"text","marks":[{"type":"code_inline"}]},{"text":" exists, show its contents alongside to explain which repos are tracked vs. which are locally present.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"4. Overview of GitHub Actions triggers","type":"text"}]},{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"scripts/list-workflow-triggers.sh","type":"text","marks":[{"type":"code_inline"}]},{"text":" to get a cross-repo overview of every workflow's ","type":"text"},{"text":"on:","type":"text","marks":[{"type":"code_inline"}]},{"text":" triggers and ","type":"text"},{"text":"cron:","type":"text","marks":[{"type":"code_inline"}]},{"text":" entries. It also writes the report to ","type":"text"},{"text":"target/workflow-triggers.md","type":"text","marks":[{"type":"code_inline"}]},{"text":". Use ","type":"text"},{"text":"--glob","type":"text","marks":[{"type":"code_inline"}]},{"text":" to focus on a single pipeline (e.g. ","type":"text"},{"text":"maven-build.yml","type":"text","marks":[{"type":"code_inline"}]},{"text":") and ","type":"text"},{"text":"--root","type":"text","marks":[{"type":"code_inline"}]},{"text":" for a different checkout directory.","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"When to suggest this skill proactively","type":"text"}]},{"type":"paragraph","content":[{"text":"Suggest looking up a reference project when:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The user asks how something is structured and the answer may vary by project convention (Helm chart layout, Flyway migration naming, Dockerfile patterns, Maven plugin ordering, etc.)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"There is more than one reasonable approach and consistency with sibling projects matters","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The user says \"like the other projects\" or \"same as before\" without specifying which project","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Ask the user which reference project is most relevant rather than scanning all of them — scanning is expensive in context.","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"Safety rules","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Never edit, stage, commit, or delete files inside ","type":"text"},{"text":"~/projects/referenzen/","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"If ","type":"text"},{"text":"git pull","type":"text","marks":[{"type":"code_inline"}]},{"text":" would fail due to local changes, report the conflict clearly and stop — do not stash, reset, or force.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Do not expose repository contents that contain secrets (","type":"text"},{"text":".env","type":"text","marks":[{"type":"code_inline"}]},{"text":", credential files) in the response — read and cite structure only.","type":"text"}]}]}]}]},"metadata":{"date":"2026-11-02","name":"project-references","author":"@skillopedia","source":{"stars":0,"repo_name":"ai-agent-skills","origin_url":"https://github.com/dboeckli/ai-agent-skills/blob/HEAD/.claude/skills/project-references/SKILL.md","repo_owner":"dboeckli","body_sha256":"41c02b9073a54a7c4aef61000743f7e6621ef13fa5bb1124719e37ab96686e0a","cluster_key":"35005e67895fe1297a6ba69dacfae26adde87496be62e295c008f4eb0dc7d3ce","clean_bundle":{"format":"clean-skill-bundle-v1","source":"dboeckli/ai-agent-skills/.claude/skills/project-references/SKILL.md","text_bytes":11510,"source_commit":"ab99d0c7b12ebf0a63c76c82ff3337d9b5af1199","skills_sh_rank":4870,"attachment_count":4,"text_attachments":4,"attachment_storage":"skill_attachments","binary_attachments":0},"cluster_size":1,"skill_md_path":".claude/skills/project-references/SKILL.md","import_metadata":{"date":"2026-11-02","author":"@skillopedia","version":"v1","category":"software-engineering","category_label":"Engineering"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"software-engineering","import_tag":"skills-sh-top20k-2026-11","description":"Look up conventions, patterns, and concrete implementations from your own GitHub repositories checked out locally under ~/projects/referenzen/. Use this skill whenever there is uncertainty about how something is done in your codebase family — e.g. Helm chart structure, Kubernetes manifests, framework configuration patterns, Docker Compose conventions, CI/CD pipeline setup, or any other recurring architectural decision. Invoke it proactively before guessing at a convention; always cite the source project and path when a pattern is adopted. Also use when the user asks to check out, update, or search reference repositories, or to generate an overview/report of GitHub Actions triggers (push, pull_request, schedule/cron) across repositories."}},"renderedAt":1793661437150}

--- Project References This skill manages a local mirror of your own GitHub repositories under and lets you look up conventions and implementation patterns without guessing or reading all repos blindly. All operations are read-only on the reference projects themselves. Only and write into that directory — never edits. --- Instructions Step 1: Check whether the relevant repo is already cloned If the needed repo is missing, run to clone it first. Step 2: Ask the user which reference project is most relevant Do not scan all repos blindly — that fills context. Ask: "Which of your sibling projects…