plasma-sensitive-entry
Requests sensitive human input through a masked KDE Plasma dialog and delivers it directly to an authorized consumer. Use whenever an agent needs a password, OTP, recovery code, token, or other sensitive text from the human. Apply before asking in chat, a question tool, terminal input, or an ordinary form. Existing YubiKey, remote authentication wrappers, and agent 1Password routes take precedence.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-10
- Stars
- ★ 80
- Forks
- 14
01 前言 Front Matter
- name
- plasma-sensitive-entry
- description
- Requests sensitive human input through a masked KDE Plasma dialog and delivers it directly to an authorized consumer. Use whenever an agent needs a password, OTP, recovery code, token, or other sensitive text from the human. Apply before asking in chat, a question tool, terminal input, or an ordinary form. Existing YubiKey, remote authentication wrappers, and agent 1Password routes take precedence.
- compatibility
- KDE Plasma with kdialog, Python 3, and a reachable user session bus; otherwise stop sensitive collection.
02 资源文件 5
- 参考文档references/integration.md10.8 KB
- 脚本scripts/install.py3.3 KB
- 脚本scripts/prompt.py4.5 KB
- 脚本scripts/ssh-askpass.py3.8 KB
- 脚本scripts/test_prompt.py16.4 KB
03 SKILL.md 正文
Plasma sensitive entry
This is the default process when an authorized task needs sensitive text from the human. Announce the purpose and destination without asking for the value in chat. A dialog collects the value; the agent receives only sanitized status.
Choose the existing authentication route first
- Local sudo/pkexec uses the canonical
yubi-sudo/yubi-pkexecwrappers in a real PTY, including their notification, sound, serialized touch and retry rules. Never substitute a password dialog for local YubiKey PAM. - Remote SSH/YubiKey wrappers remain canonical. Use this skill only for a text challenge the approved route actually requires, such as an OTP.
- Agent 1Password operations use
opfrom PATH and their existing automation backend. On failure runop-doctoronce and stop a still-failing operation. Never request desktop sign-in, unlock, credentials or raw item JSON as repair. - Prefer an existing authorized secret reference over asking the human again. This skill grants no new authority, capture scope, host trust, or privilege.
Deliver text without exposing it
- Establish the exact authorized destination, challenge and owning process. Use a title naming the host/service and action, and a label identifying the requested field and where it goes. Never put a secret in either string.
- Verify the local Plasma session and
kdialogare available. Use only the selected session's display and bus metadata; never print its environment. If the agent lacks user-bus context, use the integration contract's current-user preparation. A missing GUI is a blocker: arrange human entry in the trusted application. Never fall back to chat, question tools, terminal typing or plaintext files. - Use the pipe helper from a trusted adapter, following
the integration contract. The adapter creates
a private pipe, passes its write descriptor using
pass_fds, and consumes the read side in memory. The helper refuses standard descriptors and only writes a successful, nonempty answer to that inherited pipe. The bundled SSH askpass adapter is the concrete SSH consumer; never run it directly. - Keep answers out of tool arguments/results, stdout/stderr, environment,
shell history, files, screenshots and telemetry. Do not invoke
kdialog --passworddirectly as an agent tool: its stdout contains the answer. Do not use shell command substitution or print the helper's pipe contents. - Forward the answer directly to the intended consumer. For a PTY, verify echo is disabled and suppress all child bytes until independently confirmed authentication; echoed input must never reach the transcript. Drop answer and capture-buffer references immediately after delivery. Python cannot guarantee memory erasure; do not claim otherwise.
- Report only success, cancellation, timeout or sanitized failure. Never return the answer, length, prefix, digest or an untrusted exception message.
Own the lifecycle
- Serialize sensitive dialogs and physical-key requests. A running session is pending; resume that exact session. Never duplicate an uncertain request.
- On explicit cancellation stop immediately. A dialog deadline is 60 seconds
by default. Close only the adapter's own dialog and authentication process,
reap them, close pipe/PTY descriptors, restore terminal attributes and remove
owned temporary helpers. Handle EOF and PTY
EIOas a closed connection. - Bound every wait, including shutdown: TERM, timed wait, KILL if necessary, then reap. Never broad-kill processes, remove another session's SSH socket, or disrupt unrelated authentication prompts.
- Retry only an authentication challenge known to have failed, at most three total attempts, announcing fresh attempts. Cancellation is not a retry. Never replay an uncertain command or interrupt an active privileged write.
- Preserve existing local YubiKey rules: cancel a password fallback, confirm the owned request ended, and retry the wrapped touch without asking for a password. A foreign holder requires coordination with its owner.
Verification
Run PYTHONDONTWRITEBYTECODE=1 python3 -B -m unittest discover -s <skill>/scripts -p 'test_*.py'.
Tests use synthetic input and fake dialogs; they never request real credentials.
A live masked-dialog acceptance check must be explicitly described as such and
use disposable synthetic input. Automated tests alone do not prove GUI delivery.
04 同仓库更多 Skills
auth-environments
Sign Claude Code in to a chosen Claude subscription on every linked T3 fleet host (grok-bot, beep-worker, dankserver, tbk-worker, tom-pc-1-wsl). Use when a Claude account hits its weekly limit, when `bun run beep accounts` shows the fleet's account used up, or on `/auth-environments`. Opens each host's OAuth page and a masked KDE code dialog together and verifies the admitted account.
shadcn
Fixture for immutable shadcn skill provenance.
qa-inventory-judge
暂无简介
practice-onboarding
Set up a lawyer's computer for their practice through the practice gateway. Use when the lawyer asks to get set up, to connect their documents, mail, calendar or practice tools, or when the practice gateway reports that setup is incomplete. Interviews the lawyer one question at a time, saves a practice profile, then checks and repairs the computer until setup is complete.
triage-nda
Screen NDAs before inventor disclosures or client pitches at Oppold IP Law. Flag disclosure, residuals, marking, term, and hidden IP rights for attorney review.
review-contract
Review IP agreements for Oppold IP Law. Use for assignments, licenses, inventor agreements, joint development, or NDAs involving inventions. Prepare cited issues and proposed revisions for attorney review.