
doppler-secret-validation
Validate and test Doppler secrets. TRIGGERS - add to Doppler, store secret, validate token, test credentials.
- Installs
- 133
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/terrylica/cc-skills --skill doppler-secret-validation- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads doppler-secret-validation automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Doppler Secret Validation
Self-Evolving Skill: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
Overview
Workflow for securely adding, validating, and testing API tokens and credentials in Doppler secrets management.
When to Use This Skill
Use this skill when:
- User provides API tokens or credentials (PyPI, GitHub, AWS, etc.)
- User mentions "add to Doppler", "store secret", "validate token"
- User wants to test authentication before production use
- User needs to verify secret storage and retrieval
Workflow
Step 1: Test Token Format (Before Adding to Doppler)
Before storing in Doppler, validate token format:
# Check token format, length, prefix
python3 -c "token = 'TOKEN_VALUE'; print(f'Prefix: {token[:20]}...'); print(f'Length: {len(token)}')"
Common token formats:
- PyPI:
pypi-...(179 chars) - GitHub:
ghp_...(40+ chars) - AWS: 20-char access key + 40-char secret
Step 2: Add Secret to Doppler
doppler secrets set SECRET_NAME="value" --project PROJECT --config CONFIG
Example:
doppler secrets set PYPI_TOKEN="pypi-AgEI..." \
--project private-config --config prd
Important: CLI doesn't support --note. Add notes via dashboard:
- https://dashboard.doppler.com
- Navigate: PROJECT → CONFIG → SECRET_NAME
- Edit → Add descriptive note
Step 3: Validate Storage
Use the bundled validation script:
/usr/bin/env bash << 'VALIDATE_EOF'
ROOT="$(cc-plugin-root devops-tools)"
cd "$ROOT/skills/doppler-secret-validation"
uv run scripts/validate_secret.py \
--project PROJECT \
--config CONFIG \
--secret SECRET_NAME
VALIDATE_EOF
This validates:
- Secret exists in Doppler
- Secret retrieval works
- Environment injection works via
doppler run
Example:
uv run scripts/validate_secret.py \
--project private-config \
--config prd \
--secret PYPI_TOKEN
Step 4: Test API Authentication
Use the bundled auth test script (adapt test_api_authentication() for specific API):
/usr/bin/env bash << 'CONFIG_EOF'
ROOT="$(cc-plugin-root devops-tools)"
doppler run --project PROJECT --config CONFIG -- \
"$ROOT/skills/doppler-secret-validation/scripts/test_api_auth.py" \
--secret SECRET_NAME \
--api-url API_ENDPOINT
CONFIG_EOF
Example (PyPI):
doppler run --project private-config --config prd -- \
uv run scripts/test_api_auth.py \
--secret PYPI_TOKEN \
--api-url https://upload.pypi.org/legacy/
Step 5: Document Usage
After validation, document the usage pattern for the user:
/usr/bin/env bash << 'CONFIG_EOF_2'
# Pattern 1: Doppler run (recommended for CI/scripts)
doppler run --project PROJECT --config CONFIG -- COMMAND
# Pattern 2: Manual export (for troubleshooting)
export SECRET_NAME=$(doppler secrets get SECRET_NAME \
--project PROJECT --config CONFIG --plain)
CONFIG_EOF_2
Step 5b: Directory-Scoped Doppler Config (Local Development)
For per-directory credentials, bind the directory to a Doppler project/config once with doppler setup; every later doppler run in that directory picks it up without --project/--config:
cd ~/project && doppler setup --project myproject --config prd --no-interactive
doppler run -- COMMAND
GitHub tokens are the exception: do not inject GH_TOKEN/GITHUB_TOKEN from Doppler into a directory (ADR 2026-06-21). GitHub multi-account auth is driven by the repo's origin host-alias, and a token resolves fresh per-repo via ~/.claude/tools/bin/gh-token-for-repo.
Common Patterns
Multiple Configs (dev, stg, prd)
Add secret to multiple environments:
# Production
doppler secrets set TOKEN="prod-value" --project foo --config prd
# Development
doppler secrets set TOKEN="dev-value" --project foo --config dev
Verify Secret Across Configs
/usr/bin/env bash << 'CONFIG_EOF_3'
for config in dev stg prd; do
echo "=== $config ==="
doppler secrets get TOKEN --project foo --config $config --plain | head -c 20
echo "..."
done
CONFIG_EOF_3
Security Guidelines
- Never log full secrets: Use
${SECRET:0:20}...masking - Prefer doppler run: Scopes secrets to single command
- Use --plain only for piping: Human-readable view masks secrets
- Separate configs per environment: dev/stg/prd isolation
Bundled Resources
- scripts/validate_secret.py - Complete validation suite (existence, retrieval, injection)
- scripts/test_api_auth.py - Template for API authentication testing
- references/doppler-patterns.md - Common CLI patterns and examples
Reference
- Doppler docs: https://docs.doppler.com/docs
- CLI install:
brew install dopplerhq/cli/doppler - See doppler-patterns.md for comprehensive patterns
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| Secret not found | Wrong project/config specified | Verify with doppler secrets ls --project X --config |
| Auth test fails with 401 | Token expired or invalid | Regenerate token, re-add to Doppler |
| doppler run hangs | CLI waiting for input | Add --no-interactive flag |
| Token prefix mismatch | Wrong token type used | Check expected format (pypi-, ghp-, AKIA, etc.) |
| Validation script not found | Wrong directory context | Use cc-plugin-root devops-tools to find the plugin root, then cd to the skill directory |
| Secret retrieval empty | Secret name typo | List secrets: doppler secrets ls --project X |
| Multiple configs confusion | Secrets differ across envs | Use explicit --config flag for each command |
Post-Execution Reflection
After this skill completes, reflect before closing the task:
- Locate yourself. — Find this SKILL.md's canonical path before editing.
- What failed? — Fix the instruction that caused it.
- What worked better than expected? — Promote to recommended practice.
- What drifted? — Fix any script, reference, or dependency that no longer matches reality.
- Log it. — Evolution-log entry with trigger, fix, and evidence.
Do NOT defer. The next invocation inherits whatever you leave behind.
FAQ
What does the doppler-secret-validation skill do?
Validate and test Doppler secrets. TRIGGERS - add to Doppler, store secret, validate token, test credentials.
How do I install doppler-secret-validation?
Run npx skills add https://github.com/terrylica/cc-skills --skill doppler-secret-validation in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/doppler-secret-validation/ (personal) or .claude/skills/doppler-secret-validation/ (project).
Which AI agents can use doppler-secret-validation?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is doppler-secret-validation safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains doppler-secret-validation?
It is published by terrylica in terrylica/cc-skills. It has 133 recorded installs.
More from terrylica/cc-skills
mise-tasks
terrylica/cc-skills
Orchestrate multi-step project workflows using mise task definitions with dependency management and argument handling. Use whenever the user.
pandoc-pdf-generation
terrylica/cc-skills
PDF generation from markdown via Pandoc/XeLaTeX. TRIGGERS - markdown for PDF, print document, pandoc
mql5-indicator-patterns
terrylica/cc-skills
MQL5 indicator development patterns. TRIGGERS - MQL5 indicator, OnCalculate, indicator buffers, MetaTrader 5.
python-logging-best-practices
terrylica/cc-skills
Python logging with loguru, structlog, and orjson. TRIGGERS - loguru, structlog, structured logging
gdrive-access
terrylica/cc-skills
Access Google Drive via CLI with 1Password OAuth: list files, download, and sync folders. TRIGGERS - google drive, gdrive, drive folder, download drive, sync drive.
Popular testing & qa skills
tdd
mattpocock/skills
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
grilling
mattpocock/skills
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
migrate-to-shoehorn
mattpocock/skills
Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.
run-train
lllllllama/rigorpilot-skills
Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.
test-driven-development
obra/superpowers
Use when implementing any feature or bugfix, before writing implementation code
finishing-a-development-branch
obra/superpowers
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work