agentsclimarketplace

Lf git status

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

Lifters oficial collections of agent skills

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.

What its author says it does

Copied from the file, not written here

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.

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. ✓

Keep looking

Skills are one crate of 328,083. 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.