Repositorio-sugestao para estudar, adaptar e montar um harness portatil para agentes de coding com Claude, OpenCode e PI.
Ele foi pensado como ponto de partida para programadores em inicio de jornada: voce pode usar o que fizer sentido, ignorar o que for complexo demais por enquanto e evoluir o setup aos poucos.
- quem esta comecando e quer um exemplo concreto de como organizar
rules,skills,hooks,templateseadapters - quem quer aprender como instalar e versionar um setup compartilhado sem misturar segredos e estado local no repositório
- quem prefere partir de uma base opinativa, mas editavel, em vez de um framework fechado
Prerequisito: go no PATH para o install.sh delegar ao CLI em tools/installer/.
- comece por
QUICKSTART.md - rode
./install.sh all --tool all --project /caminho/do/projeto - explore
docs/install/para entender e adaptar cada target no seu ritmo
- leia
CONTRIBUTING.md - use
docs/README.mdcomo índice de navegação - rode
go test ./...ebash tests/smoke/all.sh
- oferecer um exemplo legivel de como versionar
policy,rules,hooks,skills,templateseadapters - explicitar
guides,sensors,profilesequery loopsem depender de conhecimento escondido fora do repo - separar material publicavel de estado operacional, caches, historicos e segredos
- instalar por
symlinkpor padrao, com fallback paracopy, para facilitar estudo e adaptacao local - fazer merge idempotente de configuracoes por ferramenta sem exigir uma stack pesada de dependencias
flowchart LR
Repo[Repo AI-Dotfiles] --> Installer[install.sh]
Installer --> GoCLI[tools/installer]
GoCLI --> Home[Home do usuário]
GoCLI --> Project[Projeto bootstrapado]
Home --> Claude[Claude carrega harness]
Home --> OpenCode[OpenCode carrega harness]
Home --> PI[PI carrega harness]
.
├── cmd/
│ └── ai-dotfiles/
├── docs/
├── examples/
├── features/
├── shared/
│ └── core/
├── targets/
│ ├── claude/
│ ├── opencode/
│ └── pi/
├── tests/
│ └── smoke/
├── go.mod
├── install.sh
└── QUICKSTART.md
- o núcleo do installer agora vive em
tools/installer/ install.shcontinua sendo o entrypoint estável para uso local e docsinstall.shagora exigegodisponível no ambiente- contribuidores podem validar o binário com
go build ./tools/installer
Se voce estiver aprendendo, vale olhar primeiro para install.sh e depois para tools/installer/: o shell ficou como uma casca fina, enquanto a logica principal passou a viver em Go de forma mais facil de testar.
./install.sh install-shared --tool all
./install.sh merge-target --tool all
./install.sh bootstrap-project --project /caminho/do/projetoOu em uma passada:
./install.sh all --tool all --project /caminho/do/projetoUse --sync strict quando quiser sincronização mais rígida no modo copy.
QUICKSTART.mdmostra output real do./install.sh alle o diff antes/depois do bootstrapexamples/contém exemplos sanitizados de configs locaistargets/*/README.mdresume o merge e os assets reais de cada adapter
go test ./...valida build e contratos básicos do installer Gobash tests/smoke/all.shvalida hooks, banner do PI, statusline e o installer fim a fim- GitHub Actions roda smoke tests em
ubuntu-latestemacos-latest - GitHub Actions roda
shellcheckeyamllint - integrações reais com binaries externos de
Claude,OpenCodeePIcontinuam fora do gate automático
Checklist manual para integrações reais:
- instalar o target real em diretório temporário com
./install.sh all --tool <tool> --project <dir> - abrir o harness real correspondente e confirmar que a configuração gerada carrega sem erro
- exercitar a superfície principal do adapter alterado no corte atual
- registrar o resultado manual na feature ou no PR quando a mudança tocar contratos reais do adapter
- a suíte smoke valida
install-shared,merge-target,bootstrap-projecteall - o gate automático cobre
statusline, hooks, banner do PI, merge idempotente e bootstrap de projeto - o gate automático cobre o contrato público de
--mode copy --sync stricte um rerun idempotente do fluxoall
- o gate automático não cobre
windows-latest - o gate automático não valida integrações reais com os harnesses/binários externos de
Claude,OpenCodeePI - o gate automático não substitui a validação manual quando a mudança toca contratos reais do adapter ou comportamento carregado pelo software externo
| Target | Escopo | Status |
|---|---|---|
| Claude | hooks, skills, statusline, fragments de settings | oficial |
| OpenCode | instructions, commands, plugins, merge de config | oficial |
| PI | settings, skills, prompts, extensões mínimas | oficial |
QUICKSTART.mde a melhor primeira leitura praticadocs/README.mdorganiza a documentacao por assuntodocs/harness/explica o control plane do repo e a relacao entre core e adaptersdocs/reference/resume o modelo de merge e extensao de cada harnessdocs/publishing/sanitization.mdmostra o que pode ou nao ir ao reposhared/core/templates/project/mostra o esqueleto de projeto que o bootstrap gera