用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/Dev-Toolbelt/dev-team-agents --skill credentials命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | credentials |
| description | Remote environment credentials (staging, production) — access and read-only enforcement. |
Use this skill whenever a task requires accessing a remote environment (staging, production, QA, etc.).
.dev-team-agents/user-data/credentials.local.json
This file is gitignored and never committed. It is created automatically by install.sh and the health check.
The file follows a category → environment → credential pattern. Two top-level categories are provided by default; users may add more. It also carries two flat top-level settings unrelated to credentials — work_feedback_active and work_feedback_interval_minutes, consumed by skills/shared/work-feedback/SKILL.md, not by this skill:
{
"work_feedback_active": true,
"work_feedback_interval_minutes": 5,
"devops": {
"agents": ["software-architect", "devops-specialist", "security-specialist"],
"staging": {
"ssh": { "user": "", "host": "", "privateKeyPath": "", "path": "" },
"database": [
{ "type": "", "host": "", "port": "", "database": "", "username": "", "password": "" }
]
},
"production": {
"ssh": { "user": "", "host": "", "privateKeyPath": "", "path": "" },
"docker": {},
"database": [
{ "type": "", "host": "", "port": "", "database": "", "username": "", "password": "" }
]
}
},
"app": {
"agents": ["software-architect", "backend-developer", "frontend-developer", "code-reviewer", "backend-reviewer", "frontend-reviewer", "qa-specialist", "security-specialist", "backend-test-specialist", "frontend-test-specialist"],
"staging": { "appUrl": "", "username": "", "password": "" },
"production": { "appUrl": "", "username": "", "password": "" }
}
}
agentsEach category has an agents array listing which agents typically need that category's credentials. This is a suggestion — any agent may use any category if the task requires it.
Users may add:
"qa", "review", "sandbox") under any category"monitoring", "ci", "cloud")Treat any unknown key as valid. Never reject or remove user-added structure.
CRED_FILE=".dev-team-agents/user-data/credentials.local.json"
if [ ! -f "$CRED_FILE" ]; then
echo "MISSING"
fi
If the file does not exist, notify the user and ask them to create it or run a health check.
import json
with open(".dev-team-agents/user-data/credentials.local.json") as f:
creds = json.load(f)
"devops" for infrastructure, "app" for application access)"staging", "production")If a required field is empty ("", {}, null, or missing):
Ask the user: "The field
<field>under<category>→<environment>is empty. How should I access this environment?"
Use AskUserQuestion with relevant options (SSH key path, password, token, etc.) or let the user type free-form input.
By default, you may only READ from remote environments. This includes:
ssh user@host ls, docker ps, kubectl get pods, database SELECT)You MUST ask for explicit user permission before:
rm, mv, sed -i, kubectl apply, database INSERT/UPDATE/DELETE)When you need write/execute access, pause and ask:
"I need to
<action>on<environment>. This is not read-only. Do you authorize this operation?"
Proceed only after the user explicitly confirms.
| Protocol | Read-only patterns |
|---|---|
| HTTP/HTTPS | curl -s <url>, browser GET, API calls without side effects |
| SSH | ssh <user>@<host> <command> with read-only commands |
| Docker | docker exec <container> <read-command>, docker logs, docker ps |
| Database | SELECT queries only (via psql, mysql, sqlite3, etc.) |
| Kubernetes | kubectl get, kubectl describe, kubectl logs |
If the target environment is not in the file, ask the user for connection details and suggest they add it to credentials.local.json for future use.