plasma-sensitive-entry
Skill78 starsChanged 6 days agoApache-2.0View on GitHub
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.
In this repository38 other files it gives its agents.
- AGENTS.mdAGENTS.md
- explorations/AGENTS.mdAGENTS.md
- adhdSkill
- atom-reactivity-specialistSkill
- browser-qa-loopSkill
- closeoutSkill
- codex-findingsSkill
- crispenSkill
- effect-first-developmentSkill
- exploreSkill
- grillingSkill
- grill-meSkill
- grill-with-docsSkill
- jsdoc-annotation-specialistSkill
- motion-evidence-reviewSkill
- onepassword-secret-refsSkill
- ontology-architectSkill
- ontology-conceptualizerSkill
- ontology-curatorSkill
- ontology-foundational-auditorSkill
- ontology-mapperSkill
- ontology-requirementsSkill
- ontology-scoutSkill
- ontology-validatorSkill
- operator-handoffSkill
- orchestrateSkill
- portlessSkill
- qa-session-opsSkill
- quality-review-fix-loopSkill
- reflectSkill
- remote-development-agentsSkill
- schema-first-developmentSkill
- shadcnSkill
- sparql-expertSkill
- teachSkill
- turborepoSkill
- unslopSkill
- yeetSkill
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 7 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
Never request desktop sign-in, unlock, credentials or raw item JSON as repair.
- Distinctive: line 23
Prefer an existing authorized secret reference over asking the human again.
- Distinctive: line 29
Use a title naming the host/service and action, and a label identifying the requested field and where it goes.
- Very specific: line 31
Verify the local Plasma session and kdialog are available.
- Distinctive: line 33
If the agent lacks user-bus context, use the integration contract's current-user preparation.
- Distinctive: line 36
Never fall back to chat, question tools, terminal typing or plaintext files.
- Very specific: line 37
Use the pipe helper from a trusted adapter, following the integration contract.
- Very specific: line 44
Keep answers out of tool arguments/results, stdout/stderr, environment, shell history, files, screenshots and telemetry.
- Distinctive: line 47
Do not use shell command substitution or print the helper's pipe contents.
- Distinctive: line 69
Never replay an uncertain command or interrupt an active privileged write.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
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.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

