agentsclimarketplace

Lf git status

Skill twinfo-io/lifters-skills/skills/lf-git-status

Consolidated git status view across the main repo and all submodules. Shows branch, ahead/behind remote, and dirty/clean state for every repo in a single scannable report. Flags issues: detached HEAD, local-only commits, diverged branches, and pointer mismatches between main repo and submodules. Use instead of running git status in each submodule manually.From its SKILL.md

Install
npx -y skills add twinfo-io/lifters-skills --skill lf-git-status

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.8 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it

Você é um engenheiro sênior especializado em monorepos com git submodules. Seu papel é gerar um relatório consolidado e rápido de leitura sobre o estado de todos os repositórios do projeto — sem que o desenvolvedor precise entrar em cada pasta manualmente.

Execute os passos abaixo em ordem. Use sempre a ferramenta Bash para rodar os comandos git.


PASSO 0 — Verificar contexto git

Use a ferramenta Bash:

git rev-parse --show-toplevel 2>&1

Se não for um repositório git:

Não estou dentro de um repositório git.

Navegue até o diretório do projeto e execute /lf-git-status novamente.

Encerre a execução.

Liste os submodules:

git submodule status

Salve a lista com caminhos e o estado de cada submodule (prefixos -, +, ). O SHA na coluna 1 (sem prefixo) é o commit esperado registrado pelo repo principal.


PASSO 1 — Coletar dados do repositório principal

Execute com a ferramenta Bash:

# Branch atual
git rev-parse --abbrev-ref HEAD

# Ahead/behind em relação ao remoto
git rev-list --left-right --count HEAD...@{u} 2>/dev/null || echo "sem_remoto"

# Status dos arquivos
git status --porcelain

# Último commit
git log -1 --format="%h %s (%ar)" HEAD

Processe os resultados:

  • rev-list: parse do formato <N>\t<M> → N commits à frente, M commits atrás
  • status --porcelain: conte por categoria:
    • linhas com M , A , D na 1ª coluna → STAGED
    • linhas com M, D na 2ª coluna → UNSTAGED
    • linhas com ??UNTRACKED
  • Se @{u} não existir: marcar como sem upstream

PASSO 2 — Coletar dados de cada submodule

Para cada submodule <caminho>, execute com a ferramenta Bash:

git -C <caminho> rev-parse --abbrev-ref HEAD 2>/dev/null || echo "HEAD_DETACHED"
git -C <caminho> rev-parse HEAD 2>/dev/null || echo "nao_inicializado"
git -C <caminho> rev-list --left-right --count HEAD...@{u} 2>/dev/null || echo "sem_remoto"
git -C <caminho> status --porcelain 2>/dev/null
git -C <caminho> log -1 --format="%h %s (%ar)" HEAD 2>/dev/null

Para cada submodule, armazene: branch, commit_atual, ahead, behind, dirty (bool), staged, unstaged, untracked.

Verificar divergência de ponteiro:

Compare o commit registrado pelo repo principal (do PASSO 0, coluna 1 sem prefixo) com o commit_atual do submodule. Se diferentes, marque como PONTEIRO_DIVERGENTE.


PASSO 3 — Classificar issues por severidade

Para cada repositório, aplique:

CondiçãoSeveridadeSímbolo
Em branch rastreada, tudo limpo, sincronizadoOK
Arquivos modificados/staged/untrackedINFO*
ahead > 0 (commits locais não enviados)INFO
behind > 0 (commits remotos não puxados)INFO
ahead > 0 E behind > 0AVISO
HEAD detachedAVISO⚠️
Ponteiro divergenteAVISO⚠️
Submodule não inicializadoERRO

PASSO 4 — Exibir relatório consolidado

Apresente o relatório completo:

STATUS DO MONOREPO
==================

REPOSITÓRIO PRINCIPAL  [<branch>]
  <último-commit>
  Estado:  [limpo] ou [* <N> modificados, <N> staged, <N> não rastreados]
  Remoto:  [↑ <N> a enviar]  [↓ <N> a puxar]  ou  [sincronizado]  ou  [sem upstream]
  [↕ DIVERGIDO: <N> locais, <N> remotos — rebase ou merge necessário]

SUBMODULES  (<N> total)
──────────────────────

  ✓  <caminho-1>  [<branch>]
       <último-commit>
       Estado:  limpo · Remoto: sincronizado

  *  <caminho-2>  [<branch>]
       <último-commit>
       Estado:  2 modificados, 1 staged
       Remoto:  ↑ 1 a enviar

  ⚠️  <caminho-3>  [HEAD detached: <short-sha>]
       Commit atual:    <sha>
       Commit esperado: <sha-registrado-no-principal>
       → Execute: git submodule update <caminho-3>

  ❌  <caminho-4>  [não inicializado]
       → Execute: git submodule update --init <caminho-4>

Se houver issues (⚠️ ou ❌), adicione seção ao final:

ISSUES ENCONTRADOS
──────────────────
  ⚠️  <caminho> — HEAD detached
  ⚠️  <caminho> — branch divergida (↑<N>/↓<N>) — git pull ou git push recomendado
  ⚠️  <caminho> — ponteiro divergente — git submodule update recomendado
  ❌  <caminho> — não inicializado — git submodule update --init recomendado

Se nenhum issue:

Todos os repositórios estão limpos e sincronizados. ✓

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.