From devops-tools
Manage credentials and secrets through Doppler for publishing and deployment workflows. Use whenever the user needs to publish Python packages.
How this skill is triggered — by the user, by Claude, or both
Slash command
/devops-tools:doppler-workflowsThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **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.
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.
Use this skill when:
Standard Usage:
doppler run --project <project> --config <config> --command='<command>'
Why --command flag:
$VAR before Doppler runs → empty stringdoppler run --project claude-config --config dev \
--command='uv publish --token "$PYPI_TOKEN"'
doppler run --project aws-credentials --config dev \
--command='aws s3 ls --region $AWS_DEFAULT_REGION'
doppler secrets notes set <SECRET> "<note>"echo -n 'secret' | doppler secrets setecho ${#VAR} to verify lengthSERVICE_TOKEN_{ABBREV} for clarityFor detailed information, see:
Bundled Specifications:
PYPI_REFERENCE.yaml - Complete PyPI specAWS_SPECIFICATION.yaml - AWS credential architectureFor local development, mise [env] provides a simpler alternative to doppler run:
# .mise.toml
[env]
# Fetch from Doppler with caching for performance
PYPI_TOKEN = "{{ cache(key='pypi_token', duration='1h', run='doppler secrets get PYPI_TOKEN --project claude-config --config prd --plain') }}"
Do NOT use mise
[env]for GitHub tokens (ADR 2026-06-21). GitHub multi-account auth is driven by the repo'soriginhost-alias ([email protected]<account>:…), not mise. A token resolves fresh per-repo via~/.claude/tools/bin/gh-token-for-repo; an ambientGH_TOKENoutranks the isolated gh profile and 401s after a rotation. The.secrets/gh-token-*files are deleted.
When to use mise [env] (for non-GitHub secrets like PYPI_TOKEN):
When to use doppler run:
See mise-configuration skill for complete patterns.
For PyPI publishing, see pypi-doppler skill for LOCAL-ONLY workspace policy.
Do NOT configure PyPI publishing in GitHub Actions or CI/CD pipelines.
| Issue | Cause | Solution |
|---|---|---|
| 403 on PyPI publish | Token expired or wrong scope | Regenerate project-scoped token, update in Doppler |
| InvalidClientTokenId (AWS) | Access key rotated or deleted | Run AWS key rotation workflow, update Doppler |
| Variable expands empty | Using $VAR without --command | Always use --command='...$VAR...' pattern |
| Doppler CLI not found | Not installed | brew install dopplerhq/cli/doppler |
| Wrong config selected | Ambiguous project/config | Specify both --project and --config explicitly |
| mise [env] not loading | Not in directory with .mise.toml | cd to project directory or check mise.toml path |
| Secret retrieval slow | No caching configured | Use mise cache() with duration for repeated access |
| Token length mismatch | Copied with extra whitespace | Trim token: echo -n 'secret' | doppler secrets set |
After this skill completes, check before closing:
Only update if the issue is real and reproducible — not speculative.
npx claudepluginhub terrylica/cc-skills --plugin devops-toolsValidate and test Doppler secrets. TRIGGERS - add to Doppler, store secret, validate token, test credentials.
Manages Doppler secrets platform: CLI operations, project/config/environment management, secrets injection, CI/CD integrations, and security best practices.
LOCAL-ONLY PyPI publishing with Doppler credentials. TRIGGERS - publish to PyPI, pypi upload, local publish. NEVER use in CI/CD.