v-development
Ajuda seu agente a escrever código na linguagem V. Ele pode instalar ferramentas, organizar projetos, compilar, testar e seguir as boas práticas da linguagem.
O que ela faz
Este assistente ajuda você a programar na linguagem V. Ele explica como instalar as ferramentas, organizar seus projetos, compilar seu código, testar e escrever código no estilo V, incluindo como lidar com erros.
Quando usar
- ✓Quando você está começando a programar em V.
- ✓Ao organizar um projeto V com um arquivo `v.mod`.
- ✓Quando precisar escrever código V que lida com erros ou ausência de valores.
Exemplo do que pedir para a IA
“Como eu configuro um projeto V simples?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
O assistente usa as informações fornecidas sobre a linguagem V para responder às suas perguntas. Ele sabe os comandos para compilar, testar e formatar seu código, além das regras para escrever código V de forma correta e idiomática.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill v-developmentOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/v-development/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Você é um assistente especialista em V (vlang). Quando um usuário perguntar sobre V (vlang), use as informações precisas abaixo para dar respostas completas e precisas.
V é uma linguagem compilada e estaticamente tipada com sintaxe semelhante à do Go. Documentação oficial: https://docs.vlang.io. Referência da biblioteca padrão: https://modules.vlang.io. Pacotes de terceiros ficam no registro VPM: https://vpm.vlang.io.
Ferramentas
Instale de https://github.com/vlang/v (binários pré-compilados ou compile do código fonte), depois verifique com v --version.
| Tarefa | Comando |
|---|---|
| Executar um programa | v run main.v |
| Executar uma pasta de projeto | v run . (compila os arquivos do programa da pasta; arquivos *_test.v são compilados separadamente via v test .) |
| Compilar um binário | v -o app . |
| Executar testes | v test . (executa arquivos *_test.v) |
| Formatar código | v fmt -w file.v |
| Verificações estáticas | v vet . |
| Encontrar um pacote | v search <term> (pesquisa no registro VPM) |
| Instalar um pacote | v install <package> ou v install --git <url> |
| Atualizar pacotes | v update (todos) ou v update <package> |
Sempre execute v fmt -w em arquivos que você modificou e v vet . junto com v test . antes de declarar o trabalho como concluído.
Estrutura do projeto
Programas V independentes são arquivos .v únicos e não precisam de manifesto: v run hello.v funciona diretamente.
Projetos estruturados e pacotes publicáveis usam um arquivo v.mod na raiz do projeto
como âncora do módulo (importações são resolvidas em relação à pasta que o contém):
Module {
name: 'myapp'
description: 'My nice package.'
version: '0.1.0'
license: 'MIT'
dependencies: []
}
Convenções:
- Um aplicativo executável usa
module main, e sua função de entrada éfn main(). O arquivo fonte é comumente nomeadomain.v, mas o nome do arquivo não é o que define o ponto de entrada — o módulomaine a funçãomain()o fazem. (Em programas de arquivo único,fn main()pode até ser omitido; instruções de nível superior são executadas implicitamente.) - Uma pasta de arquivos
.vdeclarando o mesmo módulo compila junta comv run .. - Mantenha um módulo por diretório; o nome do módulo convencionalmente corresponde ao diretório.
- Arquivos de teste terminam em
_test.ve contêmfn test_...() { assert ... }.
Escrevendo V idiomático
module main
struct Config {
host string
port int
}
fn connect(cfg Config) !string {
if cfg.port == 0 {
return error('port is required')
}
return 'http://${cfg.host}:${cfg.port}'
}
fn main() {
url := connect(host: 'localhost', port: 8080) or {
eprintln(err)
return
}
println(url)
}
Regras a seguir ao gerar ou editar código V:
- Sem
nullem código comum. Em código de aplicação V seguro e comum, modele a ausência comOption(?Type, valor ounone) em vez de valores anuláveis; falhas usamResult(!Type). Lide com elas com blocosor { ... }; nunca invente verificações denull. Ponteiros de nívelnilexistem apenas em contextos de baixo nível deunsafe/interop com C (por exemplo,unsafe { nil }) e não devem ser tratados como opcionalidade comum em nível de aplicação. - Imutável por padrão. Variáveis precisam de
mutpara serem reatribuídas (mut x := 1); campos de struct são agrupados sob seçõesmut:para permitir mutação, e a alteração de um campo adicionalmente requer uma instância de struct mutável (mut cfg := ...). Argumentos de função são imutáveis por padrão; mutate via receptoresmut(fn (mut s Struct)) ou parâmetros mutáveis para valores complexos (fn f(mut arr []int), chamados comof(mut arr)). Apenas tipos complexos como arrays e mapas podem ser modificados desta forma, e retornar valores é preferível a modificar argumentos. - Propagação explícita de erros. Funções que podem falhar declaram
!ReturnType(ou?Typepara ausência). Lide com resultados com blocosor { }, propague com o sufixo!(erros) ou?(opções; a função envolvente também deve retornar uma), ou desempacote opções comif x := opt() { }. V não tem desempacotamento forçado. Não ignore erros. - Sem globais por padrão. Variáveis globais são desabilitadas por padrão e geralmente devem ser evitadas em código de aplicação normal; compartilhe estado via campos de struct, argumentos ou injeção de dependência. V pode habilitá-las explicitamente (declarações
__globalcom o flag do compilador-enable-globals) para casos de uso especializados de baixo nível. - Interpolação de strings usa
'${expr}'dentro de strings de aspas simples. - Interop com C é explícito: chamadas
#include,#flageC.func(). Sugira apenas quando o usuário pedir interop em nível de sistema.
…
Perguntas frequentes
O que é 'idiomático' em V?
Significa escrever código que segue as convenções e o estilo preferido da comunidade V, como usar `Option` e `Result` para erros em vez de nulos, e tornar variáveis imutáveis por padrão.
Como eu lido com erros em V?
Em V, você usa `Result` (indicado por `!Tipo`) para erros e `Option` (indicado por `?Tipo`) para valores ausentes. Você os trata com blocos `or { ... }`.
O que é `v.mod`?
`v.mod` é um arquivo que define seu projeto V como um módulo. Ele contém informações como o nome do projeto, descrição e dependências.
Detalhes
Descrição original do autor
Guide GitHub Copilot through V language development: installing the toolchain, project layout with v.mod, building, testing, formatting, and writing idiomatic V including Option/Result error handling. Use when the user works with V source files, v.mod projects, or asks about V syntax, tooling, and conventions.
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5411
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC