Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add t3chn/codex-skills --skill "vi-sops-dev"
Install specific skill from multi-skill repository
# Description
Work effectively in the getsops/sops codebase (Go + Rust functional tests): trace CLI behavior (edit/encrypt/decrypt/rotate/updatekeys), debug encryption/decryption + metadata/MAC issues, add or modify key providers (KMS/GCP/Azure/Vault/age/PGP), add file-format stores (YAML/JSON/INI/ENV/binary), update config (.sops.yaml), and run the right test suites. Use when a task mentions SOPS, getsops/sops, sops CLI internals, master keys, keyservice, stores, or functional-tests.
# SKILL.md
name: vi-sops-dev
description: "Work effectively in the getsops/sops codebase (Go + Rust functional tests): trace CLI behavior (edit/encrypt/decrypt/rotate/updatekeys), debug encryption/decryption + metadata/MAC issues, add or modify key providers (KMS/GCP/Azure/Vault/age/PGP), add file-format stores (YAML/JSON/INI/ENV/binary), update config (.sops.yaml), and run the right test suites. Use when a task mentions SOPS, getsops/sops, sops CLI internals, master keys, keyservice, stores, or functional-tests."
Vi Sops Dev
Quick Start
- Start from the repo map in
references/repo-map.mdto pick the right entry point fast. - Run the developer test loop from
references/testing.md(make test, thenmake functional-tests). - Use
--verbose(or per-command--verbosewhere available) to enable debug logging in the CLI.
Workflow
1) Triage the user request
- Identify whether the change is primarily:
- CLI plumbing (
cmd/sops/...) - crypto/tree/metadata (
sops.go,aes/,stores/) - key provider (
kms/,gcpkms/,azkv/,hckms/,hcvault/,age/,pgp/) - config parsing (
config/) - keyservice / gRPC (
keyservice/,cmd/sops/subcommand/keyservice/) - functional tests (
functional-tests/)
2) Trace the execution path
- If the behavior is user-facing, start at
cmd/sops/main.goand follow into the command implementation incmd/sops/*.go. - If the behavior is encryption/decryption:
- CLI calls helpers in
cmd/sops/common/(load/decrypt/encrypt). - Core logic lives in
sops.go(Tree/Metadata, MAC, key groups, store interfaces).
3) Make a minimal reproduction
- Prefer a small fixture (YAML/JSON/ENV/INI) in
example.*style, or use existingexample.yaml/example.json. - Prefer unit tests (
go test ./...) for pure logic and functional tests (functional-tests/) for end-to-end CLI behavior.
4) Implement the change
- Match existing patterns in the nearest package (key providers, stores, CLI command wiring).
- Keep backwards compatibility in mind: encrypted-file schema + metadata fields are part of the ecosystem.
5) Validate
- Run
make testand (when relevant)make functional-tests. Seereferences/testing.md.
Pointers
- Repo map:
references/repo-map.md - Testing:
references/testing.md - Key providers:
references/key-providers.md - Optional quick overview script:
scripts/sops-repo-map.sh
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.