metagit-projects
Skill4 starsChanged 12 days agoMITView on GitHub
Ongoing workspace and project management for OpenClaw and Hermes agents. Use when starting work, organizing repos, or before creating a new project folder so existing metagit projects are reused instead of duplicated.
In this repository62 other files it gives its agents.
- agentsAGENTS.md
- docs/agents.mdAGENTS.md
- agentsAGENTS.md
- agentsCopilot instructions
- .cursor/rules/github-cli.mdcCursor rule
- .cursor/rules/project-level.mdcCursor rule
- llms.txtllms.txt
- gitnexus-cliSkill
- gitnexus-debuggingSkill
- gitnexus-exploringSkill
- gitnexus-guideSkill
- gitnexus-impact-analysisSkill
- gitnexus-refactoringSkill
- humanizerSkill
- metagit-agent-accessSkill
- metagit-agent-coordinationSkill
- metagit-aosSkill
- metagit-bootstrapSkill
- metagit-campaignSkill
- metagit-cliSkill
- metagit-config-refreshSkill
- metagit-context-packSkill
- metagit-control-centerSkill
- metagit-gatingSkill
- metagit-gitnexusSkill
- metagit-graph-maintainSkill
- metagit-mcp-resourcesSkill
- metagit-multi-repoSkill
- metagit-projectsSkill
- metagit-release-auditSkill
- metagit-repo-impactSkill
- metagit-rewrite-campaignSkill
- metagit-sharing-stateSkill
- metagit-stampSkill
- metagit-upstream-scanSkill
- metagit-upstream-triageSkill
- metagit-workspace-scopeSkill
- metagit-workspace-syncSkill
- metagit-agent-accessSkill
- metagit-agent-coordinationSkill
- metagit-aosSkill
- metagit-bootstrapSkill
- metagit-campaignSkill
- metagit-cliSkill
- metagit-cliSkill
- metagit-config-refreshSkill
- metagit-context-packSkill
- metagit-control-centerSkill
- metagit-gatingSkill
- metagit-gitnexusSkill
- metagit-graph-maintainSkill
- metagit-mcp-resourcesSkill
- metagit-multi-repoSkill
- metagit-release-auditSkill
- metagit-repo-impactSkill
- metagit-rewrite-campaignSkill
- metagit-sharing-stateSkill
- metagit-stampSkill
- metagit-upstream-scanSkill
- metagit-upstream-triageSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 9 are distinctive, and 12 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Use this skill when the user starts new work, reorganizes repositories, or asks you to create a project folder.
- Distinctive: line 26
Never: create a new project directory or clone into the workspace until you have checked metagit for an existing match.
- Very specific: line 29
Prefer the user’s umbrella .metagit.yml if known.
- Distinctive: line 47
If the directory already exists, reuse it.
- Distinctive: line 100
When bootstrapping a workspace coordinator repo:
- Very specific: line 110
Use this decision rule for workspace.projects[].repos[] entries:
- Very specific: line 112
Keep path for local-only, machine-specific, or non-git sources.
- Very specific: line 113
Use url for shared repos, CI-targeted repos, or reproducible agent workflows.
- Distinctive: line 115
When converting a path-based entry to git-managed form, use promote:
- Very specific: line 130
If promote fails, report the specific failure (protected, source_missing, no_url, invalid_url, duplicate_identity, sync_failed) and suggest …
- Very specific: line 136
Run metagit-workspace-scope (or metagit mcp serve --status-once when MCP is available).
- Very specific: line 138
Use metagit search before assuming a repo is missing or lives elsewhere.
- Distinctive: line 141
When the user names a target folder:
- Very specific: line 144
If unmanaged but present on disk under the project sync folder, report it and offer to add via metagit project repo add rather than …
- Very specific: line 156
Use --scope project when installing into a specific umbrella repository checkout.
- Distinctive: line 160
After project-management actions, report:
- Distinctive: line 170
Do not clone, delete, or overwrite sync directories without explicit user approval.
- Very specific: line 171
Do not edit .metagit.yml without validating afterward (metagit config validate).
- Very specific: line 172
When the manifest uses includes:, change the project fragment (.metagit.d/projects/<slug>.yml) instead of the root.
- Distinctive: line 173
Prefer reusing configured repos over creating duplicate checkouts.
- Very specific: line 174
Keep unrelated experiments in separate workspace.projects entries when the user wants clear boundaries.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Ongoing Project Management
Use this skill when the user starts new work, reorganizes repositories, or asks you to create a project folder. Metagit is the source of truth for what already exists in the workspace.
Concepts
Metagit uses a three-level hierarchy (see project terminology docs):
| Level | Meaning |
| Workspace | Root folder where projects are synced (from app config workspace.path, often ./.metagit/). Holds many projects. |
| Project | Named group of one or more managed repositories or local folders. Multi-repo products are one project; unrelated repos can also share a workspace under different project names. |
| Repo | A single repository entry under workspace.projects[].repos in .metagit.yml, using exactly one locator: url (git remote) or path (local folder). |
A project is not always “one product.” It is whatever grouping helps the user and agents reason about related (or intentionally grouped) repositories. A workspace may contain unrelated projects side by side (for example default, client-a, experiments).
The umbrella .metagit.yml (workspace definition, often kind: umbrella) lives in a coordinating repository or central config checkout. Application repos may have their own .metagit.yml for metadata mode.
Mandatory: check before creating folders
Never create a new project directory or clone into the workspace until you have checked metagit for an existing match.
- Locate the workspace definition
- Prefer the user’s umbrella
.metagit.ymlif known. - Otherwise use
.metagit.ymlin the current repo with--definition /path/to/.metagit.yml.
- Prefer the user’s umbrella
- List configured projects and repo counts
Repeatmetagit config info --config-path /path/to/.metagit.yml metagit project list --config /path/to/.metagit.yml --project default--projectfor each project name returned byconfig info. - Search managed repos by name, URL fragment, or tag
metagit search "<proposed-name-or-url>" --definition /path/to/.metagit.yml metagit search "<name>" --definition /path/to/.metagit.yml --json - Inspect on disk (workspace path from app config, default
./.metagit/)- Expected layout:
{workspace.path}/{project_name}/{repo_name}/ - If the directory already exists, reuse it; do not create a parallel tree.
- Expected layout:
- Decide
- Match found → use existing project/repo; run
metagit project synconly if the user wants checkouts refreshed. - No match → proceed with registration steps below (still add to workspace; do not leave orphan folders).
- Match found → use existing project/repo; run
Registering new work in the workspace
New repository in an existing project
From the directory containing the workspace .metagit.yml (or pass --config):
metagit project repo add --project <project_name> --prompt
# or non-interactive:
metagit project repo add --project <project_name> --name <repo> --url <git-url>
metagit project repo add --project <project_name> --name <repo> --path <local-folder-path>
metagit config validate --config-path .metagit.yml
metagit project sync --project <project_name>In the new application repo (if applicable):
cd /path/to/new/repo
metagit init --kind application --no-prompt
metagit detect repository -p . -o summary # optional compact enrichNew project group (new workspace.projects[] entry)
There is no separate project create CLI today. Add a project block to .metagit.yml:
workspace:
projects:
- name: my-new-project
description: Short purpose for agents and humans
repos: []Then validate, add repos, and sync:
metagit config validate --config-path .metagit.yml
metagit project repo add --project my-new-project --prompt
metagit project sync --project my-new-projectChoose a distinct project name; avoid duplicating an existing workspace.projects[].name.
New umbrella workspace
When bootstrapping a workspace coordinator repo:
metagit init --kind umbrella
metagit project repo add --project default --prompt
metagit project syncRepo Locator Migration (path to url)
Use this decision rule for workspace.projects[].repos[] entries:
- Keep
pathfor local-only, machine-specific, or non-git sources. - Use
urlfor shared repos, CI-targeted repos, or reproducible agent workflows.
When converting a path-based entry to git-managed form, use promote:
metagit project --project <project_name> repo promote --name <repo_name> --dry-run
metagit project --project <project_name> repo promote --name <repo_name>
metagit project --project <project_name> repo promote --name <repo_name> --url <git-url>After promotion:
metagit config validate --config-path .metagit.yml
metagit project sync --project <project_name>If promote fails, report the specific failure (protected, source_missing, no_url, invalid_url, duplicate_identity, sync_failed) and suggest the minimal safe remediation.
Ongoing session habits
At the start of sustained work:
- Run metagit-workspace-scope (or
metagit mcp serve --status-oncewhen MCP is available). - Confirm active project matches the user’s intent (
metagit workspace select --project <name>when switching). - Use
metagit searchbefore assuming a repo is missing or lives elsewhere. - For multi-repo tasks, prefer metagit-control-center or metagit-multi-repo over ad-hoc cloning.
When the user names a target folder:
- Resolve it against managed config first.
- If unmanaged but present on disk under the project sync folder, report it and offer to add via
metagit project repo addrather than recreating.
OpenClaw and Hermes setup
Install bundled skills (including this one) for agent hosts:
metagit skills list
metagit skills install --scope user --target openclaw --target hermes
metagit mcp install --scope user --target openclaw --target hermesUse --scope project when installing into a specific umbrella repository checkout.
Output contract
After project-management actions, report:
- workspace definition path used
- whether the target was existing or newly registered
- project name and repo name(s) affected
- sync status if
project syncwas run - recommended next command (
workspace select,project select, ordetect)
Safety
- Do not clone, delete, or overwrite sync directories without explicit user approval.
- Do not edit
.metagit.ymlwithout validating afterward (metagit config validate). - When the manifest uses
includes:, change the project fragment (.metagit.d/projects/<slug>.yml) instead of the root. Catalog add and remove write that fragment. - Prefer reusing configured repos over creating duplicate checkouts.
- Keep unrelated experiments in separate
workspace.projectsentries when the user wants clear boundaries.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

