project-references
dboeckli/ai-agent-skills
Look up conventions and patterns from your own GitHub repositories checked out locally.
What is project-references?
This skill manages a local mirror of your GitHub repositories under ~/projects/referenzen/ and lets you search for implementation patterns, architectural decisions, and configuration conventions without guessing. Use it whenever you need to verify how something is done across your codebase family—Helm charts, Kubernetes manifests, CI/CD pipelines, Docker Compose setups, or framework patterns.
- Search and cite conventions from sibling projects (Helm charts, Kubernetes manifests, framework configs, CI/CD pipelines)
- Clone or update individual reference repositories via scripts/clone-or-update.sh
- Sync all tracked repositories from a manual list or GitHub API via scripts/sync-all.sh
- Generate an overview and Markdown report of GitHub Actions triggers (push, pull_request, schedule/cron) across all reference repos
- Read-only access to reference projects—only git clone and git pull write to ~/projects/referenzen/
How to install project-references
npx skills add https://github.com/dboeckli/ai-agent-skills --skill project-references- Local checkout directory ~/projects/referenzen/ (created automatically on first use)
- Optional: ~/claude-shared/projekte.txt file listing GitHub repository URLs or owner/name slugs (one per line)
- git command available in PATH
- gh (GitHub CLI) available if using automatic repository discovery
How to use project-references
- 1.Run ls ~/projects/referenzen/ to see which reference repositories are already cloned locally
- 2.Ask the user which sibling project is most relevant rather than scanning all repos blindly
- 3.Use find to locate a specific file (e.g., Chart.yaml, docker-compose.yml) in the target reference project
- 4.Use grep or cat to read only the relevant section of the file
- 5.Always cite the source project and file path when adopting a pattern (e.g., 'adopted from your-service/helm-charts/Chart.yaml line 4')
- 6.Run bash scripts/clone-or-update.sh owner/repo to clone a single repository or pull updates
- 7.Run bash scripts/sync-all.sh only when the user explicitly requests 'sync all' or 'update all references'
- 8.Run bash scripts/list-workflow-triggers.sh to generate a time-sorted overview of GitHub Actions triggers and a Markdown report
Use cases
- Verify Helm chart structure before creating a new chart for a sibling service
- Look up database pool configuration patterns from proven projects
- Check how CI/CD pipelines are triggered across your project family (push vs. PR vs. scheduled)
- Find Docker Compose or Kubernetes manifest conventions before implementing infrastructure code
- Generate a consolidated report of all GitHub Actions schedules to avoid overlapping cron jobs
- Backend and platform engineers managing multiple related services
- DevOps and infrastructure teams maintaining consistent Helm charts and Kubernetes patterns
- Teams with a family of related GitHub repositories needing pattern consistency
- Developers onboarding to a codebase who need to understand local conventions
project-references FAQ
Run bash scripts/clone-or-update.sh owner/repo to clone it. The script will refuse to pull if local changes are present (exit code 2), ensuring your reference repos remain read-only.
No. Ask the user which sibling project is most relevant, or list available repos and let them choose. This keeps context focused and avoids blindly reading all repos.
No. All operations are read-only. Only git clone and git pull write to ~/projects/referenzen/. Never make edits or stash changes in reference repos.
Run bash scripts/list-workflow-triggers.sh to scan all reference repos for .github/workflows/*.yml files, extract triggers (push, pull_request, schedule, etc.), sort scheduled workflows by weekday/time, and generate a Markdown report.
It is an optional manual list of GitHub repository URLs or owner/name slugs (one per line). If present, sync-all.sh uses it; otherwise it falls back to gh repo list. Create it to control which repos are tracked.
Full instructions (SKILL.md)
Source of truth, from dboeckli/ai-agent-skills.
name: project-references 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."
Project References
This skill manages a local mirror of your own GitHub repositories under
~/projects/referenzen/ 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
git clone and git pull write into that directory — never edits.
Instructions
Step 1: Check whether the relevant repo is already cloned
ls ~/projects/referenzen/
If the needed repo is missing, run scripts/clone-or-update.sh owner/repo 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 uses this pattern?" or list the available repos and let the user pick.
Step 3: Search targeted — file first, then grep
Use find to locate a file by name, then cat or grep to read only the relevant section. For search commands and patterns, consult references/search-patterns.md.
Step 4: Cite the source when adopting a pattern
Always state which project and file path a pattern came from before applying it:
Pattern adopted from
your-service→helm-charts/Chart.yamlline 4
Step 5: Sync only when explicitly requested
Run scripts/sync-all.sh only when the user says "sync all" or "update all references". For a single repo, prefer scripts/clone-or-update.sh.
Examples
Example 1: Looking up a Helm chart convention
User says: "How should I structure the Helm chart for this project?"
Actions:
- Run
ls ~/projects/referenzen/to see available repos - Ask: "Which sibling project should I use as reference?" — user says
your-service - Run
find ~/projects/referenzen/your-service -name "Chart.yaml"to locate it - Read the file, note the structure (apiVersion, dependencies, version pattern)
- Apply the same structure; cite: "adopted from
your-service/helm-charts/Chart.yaml"
Result: Helm chart consistent with sibling projects, traceable source cited.
Example 2: Checking out a new reference repo
User says: "Clone my other-service project as a reference"
Actions:
- Run
bash scripts/clone-or-update.sh owner/other-service - Stream output so user sees CLONE/PULL/SKIP progress
- Confirm with
ls ~/projects/referenzen/other-service/
Result: Repo available locally for pattern lookups; no edits made.
Example 3: Finding a configuration pattern
User says: "How do I configure the database pool like in the other projects?"
Actions:
ls ~/projects/referenzen/— pick a relevant sibling projectgrep -rn "database.pool" ~/projects/referenzen/your-service/src/main/resources/- Read the relevant config section
- Cite: "pattern from
your-service/src/main/resources/application.yamlline 42"
Result: Exact config from a proven sibling project, not guessed.
Example 4: Overview of GitHub Actions triggers
User says: "When do my projects run their GitHub Actions — push, PR, or schedule?"
Actions:
- Run
bash scripts/list-workflow-triggers.sh(add--globto narrow to one pipeline,--rootfor a different checkout directory) - Present the sorted overview (weekday/time, human-readable plus original cron) and the event-only workflows
- Point the user to the generated report at
target/workflow-triggers.md
Result: Consolidated, time-sorted trigger overview across all reference repos plus a Markdown report, without opening each workflow file.
Repository source
Two sources are supported — prefer the manual list when it exists:
- Manual list (
~/claude-shared/projekte.txt): one GitHub repo URL orowner/nameslug per line, blank lines and#comments ignored. - Automatic discovery:
gh repo list --limit 200 --json nameWithOwnerwhen the file is absent or the user explicitly asks for a full sync.
Scripts
Two ready-made scripts live in scripts/ — use them instead of writing
inline Bash. Both accept REFERENZEN_DIR as an env override (default:
~/projects/referenzen).
scripts/clone-or-update.sh <owner/repo>
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.
bash scripts/clone-or-update.sh owner/your-repo
Exit codes: 0 = ok, 2 = skipped (local changes), 3 = clone/pull failed.
scripts/sync-all.sh [--list <file>] [--limit <n>]
Iterates over all repositories and calls the clone-or-update logic for each.
Prefers ~/claude-shared/projekte.txt as source; falls back to gh repo list
when the file is absent. Prints a summary line at the end.
# Sync everything (auto-detect source)
bash scripts/sync-all.sh
# Use a specific list file
bash scripts/sync-all.sh --list ~/claude-shared/projekte.txt
# Limit gh repo list to 50 repos
bash scripts/sync-all.sh --limit 50
Do not run sync-all blindly — use it only when the user explicitly says
"sync all" or "update all references". For a single repo prefer
clone-or-update.sh.
scripts/list-workflow-triggers.sh [--root <dir>] [--glob <pattern>] [--out <file>] [--no-report]
Scans every repo checkout for .github/workflows/*.yml and *.yaml, extracts
the triggers from the on: block (push, pull_request, schedule,
workflow_dispatch, release, …) plus any cron: expressions, prints the
overview and writes a Markdown report. Scheduled workflows are sorted by
weekday/time and shown with a human-readable run time (e.g. Monday 02:05) next to the original cron expression; workflows without a schedule
are listed in a separate event-only section. Read-only, no network access.
--root <dir>— directory containing repo checkouts. Default:$REFERENZEN_DIRor~/projects/referenzen.--glob <pattern>— optional filename filter, e.g.maven-build.yml. Default: all workflows.--out <file>— Markdown report path. Default:target/workflow-triggers.md(relative to the current project directory, created if missing).--no-report— print to stdout only, skip the report file.
# Overview + report for all reference repos
bash scripts/list-workflow-triggers.sh
# Only maven-build.yml, custom report location
bash scripts/list-workflow-triggers.sh --glob 'maven-build.yml' --out target/maven-triggers.md
# A different checkout root (e.g. Windows mount)
bash scripts/list-workflow-triggers.sh --root /mnt/c/Development/projects/all-git-repos
Workflows
1. Check out or update repositories
Run the appropriate script and stream output so the user sees every CLONE / PULL / SKIP action as it happens.
2. Search within reference projects
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 references/search-patterns.md.
3. Discover available reference projects
ls ~/projects/referenzen/
If ~/claude-shared/projekte.txt exists, show its contents alongside to
explain which repos are tracked vs. which are locally present.
4. Overview of GitHub Actions triggers
Run scripts/list-workflow-triggers.sh to get a cross-repo overview of every
workflow's on: triggers and cron: entries. It also writes the report to
target/workflow-triggers.md. Use --glob to focus on a single pipeline
(e.g. maven-build.yml) and --root for a different checkout directory.
When to suggest this skill proactively
Suggest looking up a reference project when:
- 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.)
- There is more than one reasonable approach and consistency with sibling projects matters
- The user says "like the other projects" or "same as before" without specifying which project
Ask the user which reference project is most relevant rather than scanning all of them — scanning is expensive in context.
Safety rules
- Never edit, stage, commit, or delete files inside
~/projects/referenzen/. - If
git pullwould fail due to local changes, report the conflict clearly and stop — do not stash, reset, or force. - Do not expose repository contents that contain secrets (
.env, credential files) in the response — read and cite structure only.
Related skills
More from dboeckli/ai-agent-skills and the wider catalog.

skill-best-practices
Guide for creating, structuring, and improving Claude skills (SKILL.md).

camel-matrix
Generate Apache Camel Spring Boot compatibility matrices with version range support.

cc-best-practices
Master Claude Code with context management, verification strategies, and the explore-plan-implement workflow.

claude-command-converter
Convert Claude Code commands to portable Agent Skills format for multi-runtime compatibility.

speckit-analyze
Analyze spec.md, plan.md, and tasks.md for consistency, coverage gaps, and quality issues.

speckit-baseline
Generate feature specifications by analyzing existing source code.