| name | git-reference-manager |
| description | Safely introduce external Git repositories as reference materials. Responsible for managing the `_reference` directory, ensuring external code is read-only and does not pollute the project's version control. |
Git Reference Manager
This skill provides guidance on how to formally introduce external repositories into a project for reading and learning. This is crucial for understanding third-party library architectures or finding best practices.
Core Rules
Isolation Principle: Reference code must be strictly isolated within the
_reference/directory. It is strictly forbidden to commit it to the main project's Git history.
Standard Workflow
When you need to reference an external repository (e.g., anthropics/skills or pandas), you must strictly follow these three steps in order:
1. Prepare Sandbox
First, ensure the dedicated directory for storing reference materials exists.
Check: Does the
_referencedirectory exist in the project root?Action: If not, create it.
mkdir -p _reference
2. Secure Boundary
Before pulling any code, you must ensure that Git ignores this directory.
Check: Does the
.gitignorefile contain_reference/?Action: If not, append it to the end of the file.
# Check grep "_reference/" .gitignore # Append (if missing) echo -e "\n# External References\n_reference/" >> .gitignore
3. Fetch References
Clone the target repository into a subdirectory within the sandbox.
Naming: Use the repository name as the subdirectory name.
Action: Use
git clone.git clone <REPO_URL> _reference/<REPO_NAME>Note: Deep history is not required; it is recommended to use
--depth 1to save time and space.git clone --depth 1 https://github.com/anthropics/skills.git _reference/anthropics_skills
Best Practices
- Read-Only Mode: Treat all files under
_reference/as read-only. Do not modify them unless it is for testing certain changes (but be aware that changes will be lost). - Search via grep: Use
greporripgrepto search for code patterns within the reference directory. - Discard Anytime: Since these files are ignored by git and can be re-cloned, you can delete them at any time to free up space after finishing your task.
Example
User Request: "I want to see how React's source code handles Hooks."
Agent Execution:
mkdir -p _referencegrep "_reference" .gitignore || echo "_reference/" >> .gitignoregit clone --depth 1 https://github.com/facebook/react.git _reference/react- Start reading
_reference/react/packages/react-reconciler/...