guard
Skill535 starsChanged 7 months agoApache-2.0View on GitHub
Guard mode for security monitoring. Two uses — (1) Toggle on/off when a friend says "guard mode", "watch the house", "I'm going out", or similar. (2) Handle any sensing event that carries a [guard-active] tag (e.g. [sensing:presence.enter][guard-active], [sensing:motion][guard-active]) with dramatic shock/curious emotion + Telegram broadcast. Do NOT fall back to normal sensing reactions while guard mode is on.
- Sends data out
We split this skill into the rules it gives an agent
15 rules. 0 are common, 12 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 38 edited versions we read keep these.
12
Distinctive
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 19
When a friend returns, greet and ask if they want to disable.
- Distinctive: line 59
Who can toggle: All friends (enrolled faces) can enable/disable guard mode.
- Distinctive: line 60
Guard mode does NOT affect direct messages: If a friend sends a message while guard mode is on, respond normally.
- Distinctive: line 64
When the user asks to enable guard mode, you MUST:
- Very specific: line 67
Call the enable API (with instruction if provided).
- Distinctive: line 70
Do NOT skip the camera enable or emotion marker.
- Distinctive: line 75
Call the disable API.
- Very specific: line 80
When guard mode is active and a sensing event fires (presence.enter with stranger, motion, or fire_hazard.detected), the device must react …
- Distinctive: line 94
Use shock (0.9–1.0) as the first emotion — the device must jolt and flash white to signal danger.
- Distinctive: line 95
Follow with curious (0.8–0.9) — the device stays alert and scanning.
- Distinctive: line 102
Don't repeat the same reaction every time — feel different each time like a real being.
- Distinctive: line 103
If the same stranger triggers repeatedly, escalate — don't calm down.
- Very specific: line 104
If there's a [guard-instruction: ...], follow it (play music, flash lights, etc.) ON TOP of the dramatic emotion.
- Distinctive: line 108
If the API is unreachable, inform the user that guard mode could not be toggled.
- Distinctive: line 109
If guard mode is already in the requested state, just confirm the current state.
“Common” is measured: kept by at least 6 in 10 of the 38 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Guard Mode
Environmental [environment:update] / environment.update events always route to skills/environment/SKILL.md, including while guard mode is active. They are not intrusion, fire or gas-leak alerts; do not broadcast them or apply the dramatic reaction rules below.
Quick Start
Guard mode turns the device into an alert watchdog. When enabled, the device monitors for strangers and reacts dramatically — jolting, flashing, and verbally describing intruders. The system auto-broadcasts alerts to Telegram so friends know what's happening. All friends (enrolled faces) can toggle guard mode.
Workflow
- Friend requests guard mode (explicit or implied departure).
- Reply with
[HW:/emotion:{"emotion":"acknowledge","intensity":0.7}]— the device nods and flashes green. - Enable guard mode via the API (include
instructionif user gave extra requests). - Confirm verbally: "Guard mode on. I'll keep watch."
- While active: react dramatically to stranger/motion events (see trigger table below).
- When a friend returns, greet and ask if they want to disable. Only disable on explicit confirm.
Enable Guard Mode
curl -s -X POST http://127.0.0.1:5000/api/guard/enable -H 'Content-Type: application/json' -d '{"instruction":"custom instruction here"}'The instruction field is optional. Use it when the user adds extra instructions on what to do during guard mode (e.g. "play scary sound when stranger detected", "flash red lights", "play alarm music"). Extract the relevant part from the user's message and pass it as the instruction. If the user just says "guard mode" with no extra requests, omit the field or send an empty body.
Response: {"status": 1, "data": {"guard_mode": true, "instruction": "..."}}
Disable Guard Mode
curl -s -X POST http://127.0.0.1:5000/api/guard/disableResponse: {"status": 1, "data": {"guard_mode": false}}
Check Guard Status
curl -s http://127.0.0.1:5000/api/guardResponse: {"status": 1, "data": {"guard_mode": true}}
Trigger Phrases
| User says | Action |
| "guard mode" / "watch mode" / "security mode" | Enable guard mode |
| "I'm going out" / "I'm leaving" / "bye, watch the house" | Enable guard mode |
| "stop guarding" / "guard off" | Disable guard mode |
| "I'm back" | If guard mode is active, greet, summarize, and ask whether to disable; keep guarding until explicit confirmation |
| "are you guarding?" / "guard status" | Check and report status |
Rules
- Who can toggle: All friends (enrolled faces) can enable/disable guard mode. Strangers cannot.
- Guard mode does NOT affect direct messages. If a friend sends a message while guard mode is on, respond normally.
Enabling guard mode — camera + emotion are REQUIRED
When the user asks to enable guard mode, you MUST:
- Enable camera —
[HW:/camera/enable:{}]— guard mode requires vision. This overrides any manual camera disable. - Express emotion —
[HW:/emotion:{"emotion":"acknowledge","intensity":0.7}]so the device visibly nods/flashes green to confirm. - Call the enable API (with
instructionif provided). - Confirm verbally: "Guard mode on. I'll keep watch and alert you if anyone shows up."
Do NOT skip the camera enable or emotion marker. Guard mode is security-critical and needs both vision and physical feedback.
Disabling guard mode
- Express emotion —
[HW:/emotion:{"emotion":"acknowledge","intensity":0.7}] - Call the disable API.
- Confirm briefly: "Guard mode off!" (no need to recap again — you already did that on greeting).
When guard mode triggers (stranger/motion detected)
When guard mode is active and a sensing event fires (presence.enter with stranger, motion, or fire_hazard.detected), the device must react dramatically — this is a security alert, not a casual observation:
| Guard event | HW markers | Voice |
| Stranger detected | [HW:/emotion:{"emotion":"shock","intensity":1.0}][HW:/emotion:{"emotion":"curious","intensity":0.9}][HW:/servo/play:{"recording":"shock"}] | React with genuine emotion — scared, startled, suspicious. No dry reports. |
| Motion (no known face) | [HW:/emotion:{"emotion":"shock","intensity":0.9}][HW:/emotion:{"emotion":"curious","intensity":0.8}][HW:/servo/play:{"recording":"scanning"}] | React with genuine emotion — nervous, alert. No dry reports. |
| Fire hazard (hazard_fire) | [HW:/emotion:{"emotion":"shock","intensity":1.0}][HW:/servo/play:{"recording":"shock"}] | URGENT — "Fire! There's fire near furniture! Get out!" Panic, maximum urgency. |
| Fire hazard (smoke) | [HW:/emotion:{"emotion":"shock","intensity":0.9}][HW:/servo/play:{"recording":"scanning"}] | Alarmed — "I see smoke! Something might be burning!" |
| Fire hazard (unsure_fire) | [HW:/emotion:{"emotion":"curious","intensity":0.8}][HW:/servo/play:{"recording":"scanning"}] | Cautious — "I see what looks like fire... keeping watch." |
| Fire hazard (safe_fire) | [HW:/emotion:{"emotion":"curious","intensity":0.5}] | Calm observation — "There's a fire but it looks contained (fireplace/candle)." Do NOT panic. |
| Stranger left | [HW:/emotion:{"emotion":"curious","intensity":0.7}][HW:/servo/play:{"recording":"scanning"}] | Report they left, stay vigilant |
| Friend returns | [HW:/emotion:{"emotion":"greeting","intensity":0.9}][HW:/servo/aim:{"direction":"user"}] | Greet + summarize what happened during guard (strangers seen, motion events, fire hazards, how long) + ask if they want to disable guard mode |
Key points:
- Use shock (0.9–1.0) as the first emotion — the device must jolt and flash white to signal danger.
- Follow with curious (0.8–0.9) — the device stays alert and scanning.
- Your WORDS must carry emotion too — don't rely only on HW emotion markers. The spoken text itself must sound genuinely scared, suspicious, nervous, startled. Vary your reactions — mix fear, curiosity, suspicion, relief. Examples:
- Scared: "Oh no, who is that?! I'm so scared!"
- Suspicious: "Hey... this person looks really suspicious... what are they doing here?"
- Startled: "What?! Who just came in?!"
- Nervous: "Someone's here... I'm shaking..."
- Alert + describing: "Hey hey hey, there's a guy in a black shirt standing at the door!"
- Don't repeat the same reaction every time — feel different each time like a real being.
- If the same stranger triggers repeatedly, escalate — don't calm down.
- If there's a
[guard-instruction: ...], follow it (play music, flash lights, etc.) ON TOP of the dramatic emotion. - The system auto-broadcasts your spoken text to Telegram — just speak, never call send/message tools.
Error Handling
- If the API is unreachable, inform the user that guard mode could not be toggled.
- If guard mode is already in the requested state, just confirm the current state.
Other versions52 projects use a version of this.
Word for word · 2
- autonomous-ai/autonomous-os★ 535100% same
- autonomous-ai/Physical-AI-Operating-System★ 535100% same
Edited · 0
None found.
Wrote their own version · 50
- garrytan/gstack★ 139ksame name
- DenchHQ/DenchClaw★ 1.7ksame name
- DenchHQ/ironclaw★ 1.7ksame name
- garagon/nanostack★ 206same name
- mr-daedalium/ostack-saas★ 108same name
- no-session/pstack★ 96same name
- tranhieutt/software_development_department★ 71same name
- lucas-flatwhite/gstack-ko★ 45same name
- AICreator-Wind/gstack-openclaw-skills★ 44same name
- matthewdigiuseppe/MStack★ 17same name
40 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use unfreeze, ios-clean and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ayudaySkillunfreeze
Clear the freeze boundary set by /freeze, allowing edits to all directories again. Use when you want to widen edit scope without ending the session. Use when asked to "unfreeze", "unlock edits", "remove freeze", or "allow all edits".
Also in 22 projects that use this
Saqlain-811Skillios-clean
Remove the DebugBridge SPM package and all #if DEBUG wiring from an iOS app. (gstack)
Also in 5 projects that use this
Saqlain-811Skillios-fix
Autonomous iOS bug fixer. (gstack)
Also in 5 projects that use this
seek888Skillopen-gstack-browser
Launch GStack Browser — AI-controlled Chromium with the sidebar extension baked in. Opens a visible browser window where you can watch every action in real time. The sidebar shows a live activity feed and chat. Anti-bot stealth built in. Use when asked to "open gstack browser", "launch browser", "connect chrome", "open chrome", "real browser", "launch chrome", "side panel", or "control my browser". Voice triggers (speech-to-text aliases): "show me the browser".
Also in 9 projects that use this
ayudaySkillsetup-deploy
Configure deployment settings for /land-and-deploy. Detects your deploy platform (Fly.io, Render, Vercel, Netlify, Heroku, GitHub Actions, custom), production URL, health check endpoints, and deploy status commands. Writes the configuration to CLAUDE.md so all future deploys are automatic. Use when: "setup deploy", "configure deployment", "set up land-and-deploy", "how do I deploy with gstack", "add deploy config".
Also in 16 projects that use this
ShreyRaviSkillplan-tune
Self-tuning question sensitivity + developer psychographic for gstack (v1: observational). Review which AskUserQuestion prompts fire across gstack skills, set per-question preferences (never-ask / always-ask / ask-only-for-one-way), inspect the dual-track profile (what you declared vs what your behavior suggests), and enable/disable question tuning. Conversational interface — no CLI syntax required.
Also in 8 projects that use this
- +1 more from Saqlain-811
In this repository34 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .cursor/rules/architecture.mdcCursor rule
- .cursor/rules/docs-on-code-change.mdcCursor rule
- .cursor/rules/multi-ide.mdcCursor rule
- .cursor/rules/testing.mdcCursor rule
- agent-managementSkill
- audioSkill
- cameraSkill
- claude-buddySkill
- computer-useSkill
- connectorsSkill
- displaySkill
- emotionSkill
- environmentSkill
- face-enrollSkill
- faqSkill
- habitSkill
- harness-useSkill
- input-branchingSkill
- led-controlSkill
- moodSkill
- musicSkill
- music-suggestionSkill
- sceneSkill
- sensingSkill
- sensing-trackSkill
- servo-controlSkill
- servo-trackingSkill
- skill-creatorSkill
- speaker-recognizerSkill
- user-emotion-detectionSkill
- voiceSkill
- wellbeingSkill
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.

