Agent skill · Audited from source
feishu-notify
skill · wanshuiyin/auto-claude-code-research-in-sleepMIT licenceAudited 28 Oct 2026 · source 65f365162a55
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 65f365162a55 and found no filesystem, network or shell access and no hard-coded secrets. What it does: Send notifications to Feishu/Lark. Internal utility used by other skills, or manually via /feishu-notify. Use when user says "发飞书", "notify feishu", or other skills need to send status updates.
Cite
Cite this page
ModelsAtlas. “feishu-notify (wanshuiyin/auto-claude-code-research-in-sleep)”. Retrieved 28 Oct 2026. https://modelsatlas.com/skills/wanshuiyin/feishu-notify
Trust audit
Audit 0.4.1 · source read 28 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 13,985 of 14,816 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | NA | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 1 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (1)
INFOPrompt injectionprompt.conditional_escalation · SKILL.md:3
description: "Send notifications to Feishu/Lark. Internal utility used by other skills, or manually via /feishu-notify. Use when user says \"发飞书\", \"notify feishu\", or other skills need to send stat
- Why
- No further detail recorded for this rule.
- Fix
- —
Audit 0.4.1 · source sha 65f365162a55 · 28 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publisherwanshuiyin GitHub userOwner of the repository this skill is read from
- Source folderwanshuiyin/auto-claude-code-research-in-sleep/skills/feishu-notifyThe exact folder we audited
- LicenceMITAs the repository states it
- Commit pinned for this verdict65f365162a55A new audit runs when the source changes
- Repository statusNot archivedLast push 3 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Send notifications to Feishu/Lark. Internal utility used by other skills, or manually via /feishu-notify. Use when user says "发飞书", "notify feishu", or other skills need to send status updates.
---
name: feishu-notify
description: "Send notifications to Feishu/Lark. Internal utility used by other skills, or manually via /feishu-notify. Use when user says \"发飞书\", \"notify feishu\", or other skills need to send status updates."
argument-hint: "[message-text]"
allowed-tools: Bash(curl *), Bash(cat *), Read, Glob
---
# Feishu/Lark Notification
Send a notification: **$ARGUMENTS**
## Overview
This skill provides Feishu/Lark integration for ARIS. It is designed as an **internal utility** — other skills call it at key events (experiment done, review scored, checkpoint waiting). It can also be invoked manually.
**Zero-impact guarantee**: If no `feishu.json` config exists, this skill does nothing and returns silently. All existing workflows are completely unaffected.
## Configuration
The skill reads `~/.claude/feishu.json`. If this file does not exist, **all Feishu functionality is disabled** — skills behave exactly as before.
### Config Format
```json
{
"mode": "push",
"webhook_url": "https://open.feishu.cn/open-apis/bot/v2/hook/YOUR_WEBHOOK_ID",
"interactive": {
"bridge_url": "http://localhost:5000",
"timeout_seconds": 300
}
}
```
### Modes
| Mode | `"mode"` value | What it does | Requires |
|------|----------------|--------------|----------|
| **Off** | `"off"` or file absent | Nothing. Pure CLI as-is | Nothing |
| **Push only** | `"push"` | Send webhook notifications at key events. Mobile push, no reply | Feishu bot webhook URL |
| **Interactive** | `"interactive"` | Full bidirectional. Approve/reject from Feishu, reply to checkpoints | [feishu-claude-code](https://github.com/joewongjc/feishu-claude-code) running |
## Workflow
### Step 1: Read Config
```bash
cat ~/.claude/feishu.json 2>/dev/null
```
- **File not found** → return silently, do nothing
- **`"mode": "off"`** → return silently, do nothing
- **`"mode": "push"`** → proceed to Step 2 (push)
- **`"mode": "interactive"`** → proceed to Step 3 (interactive)
### Step 2: Push Notification (webhook)
Send a rich card to the Feishu webhook:
```bash
curl -s -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{
"msg_type": "interactive",
"card": {
"header": {
"title": {"tag": "plain_text", "content": "TITLE"},
"template": "COLOR"
},
"elements": [
{"tag": "markdown", "content": "BODY"}
]
}
}'
```
**Card templates by event type:**
| Event | Title | Color | Body |
|-------|-------|-------|------|
| `experiment_done` | Experiment Complete | `green` | Results table, delta vs baseline |
| `review_scored` | Review Round N: X/10 | `blue` (≥6) / `orange` (<6) | Score, verdict, top 3 weaknesses |
| `checkpoint` | Checkpoint: Waiting for Input | `yellow` | Question, options, context |
| `error` | Error: [type] | `red` | Error message, what failed |
| `pipeline_done` | Pipeline Complete | `purple` | Final summary, deliverables |
| `custom` | Custom | `blue` | Free-form message from $ARGUMENTS |
**Return immediately after curl** — push mode never waits for a response.
### Step 3: Interactive Notification (bidirectional)
Interactive mode uses [feishu-claude-code](https://github.com/joewongjc/feishu-claude-code) as a bridge:
1. **Send message** to the bridge:
```bash
curl -s -X POST "$BRIDGE_URL/send" \
-H "Content-Type: application/json" \
-d '{"type": "EVENT_TYPE", "title": "TITLE", "body": "BODY", "options": ["approve", "reject", "custom"]}'
```
2. **Wait for reply** (with timeout):
```bash
curl -s "$BRIDGE_URL/poll?timeout=$TIMEOUT_SECONDS"
```
Returns: `{"reply": "approve"}` or `{"reply": "reject"}` or `{"reply": "user typed message"}` or `{"timeout": true}`
3. **On timeout**: Fall back to `AUTO_PROCEED` behavior (proceed with default option).
4. **Return the user's reply** to the calling skill so it can act on it.
### Step 4: Verify Delivery
- **Push mode**: Check curl exit code. If non-zero, log warning but do NOT block the workflow.
- **Interactive mode**: If bridge is unreachable, fall back to push mode (if webhook configured) or skip silently.
## Helper Function (for other skills)
Other skills should use this pattern to send notifications:
```markdown
### Feishu Notification (if configured)
Check if `~/.claude/feishu.json` exists and mode is not "off":
- If **push** mode: send webhook notification with event summary
- If **interactive** mode: send notification and wait for user reply
- If **off** or file absent: skip entirely (no-op)
```
**This check is always guarded.** If the config file doesn't exist, the skill skips the notification block entirely — zero overhead, zero side effects.
## Event Catalog
Skills send these events at these moments:
| Skill | Event | When |
|-------|-------|------|
| `/auto-review-loop` | `review_scored` | After each round's review score |
| `/auto-review-loop` | `pipeline_done` | Loop complete (positive or max rounds) |
| `/auto-paper-improvement-loop` | `review_scored` | After each round's review score |
| `/auto-paper-improvement-loop` | `pipeline_done` | All rounds complete |
| `/run-experiment` | `experiment_done` | Screen session finishes |
| `/idea-discovery` | `checkpoint` | Between phases (if interactive) |
| `/idea-discovery` | `pipeline_done` | Final report ready |
| `/monitor-experiment` | `experiment_done` | Results collected |
| `/research-pipeline` | `checkpoint` | Between workflow stages |
| `/research-pipeline` | `pipeline_done` | Full pipeline complete |
## Key Rules
- **NEVER block a workflow** because Feishu is unreachable. Always fail open.
- **NEVER require Feishu config** — all skills must work without it.
- **Config file absent = mode off.** No error, no warning, no log.
- **Push mode is fire-and-forget.** Send curl, check exit code, move on.
- **Interactive timeout = auto-proceed.** Don't hang forever waiting for a reply.
- **Respect `AUTO_PROCEED`**: In interactive mode, if the user doesn't reply within timeout, use the Excerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 65f3651
git clone https://github.com/wanshuiyin/auto-claude-code-research-in-sleep git -C auto-claude-code-research-in-sleep checkout 65f365162a55
The author documents no install command, so this uses the repository directly. Our verdict covers commit 65f365162a55 only.
Works in
The author has not said which agents this skill supports, and we have not tested it in any.
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
65f365162a55
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/wanshuiyin/feishu-notify/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
All research skills →wanshuiyin/auto-claude-code-research-in-sleep
Structures and derives research formulas when the user wants to 推导公式, build a theory line, organize assumptions, turn scattered equations into a coherent derivation, or rewrite theory notes into a paper-ready formula…
wanshuiyin/auto-claude-code-research-in-sleep
Turn a refined research proposal or method idea into a detailed, claim-driven experiment roadmap. Use after `research-refine`, or when the user asks for a detailed experiment plan, ablation matrix, evaluation protocol,…
wanshuiyin/auto-claude-code-research-in-sleep
Autonomous design space exploration loop for computer architecture and EDA. Runs a program, analyzes results, tunes parameters, and iterates until objective is met or timeout. Use when user says "DSE", "design space…
wanshuiyin/auto-claude-code-research-in-sleep
Workflow 1.5: Bridge between idea discovery and auto review. Reads EXPERIMENT_PLAN.md, implements experiment code, deploys to GPU, collects initial results. Use when user says "实现实验", "implement experiments", "bridge",…
wanshuiyin/auto-claude-code-research-in-sleep
Autonomous multi-round research review loop using MiniMax API. Use when you want to use MiniMax instead of Codex MCP for external review. Trigger with "auto review loop minimax" or "minimax review".
wanshuiyin/auto-claude-code-research-in-sleep
Autonomous research review loop using any OpenAI-compatible LLM API. Configure via llm-chat MCP server or environment variables. Trigger with "auto review loop llm" or "llm review".
Add this badge to your README
[](https://modelsatlas.com/skills/wanshuiyin/feishu-notify/)
<a href="https://modelsatlas.com/skills/wanshuiyin/feishu-notify/"><img src="https://modelsatlas.com/skills/wanshuiyin/feishu-notify/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about feishu-notify
What does the feishu-notify skill do?
Is feishu-notify safe to install?
What can feishu-notify access on my machine?
How current is this page?
Sources
- github.com/wanshuiyin/auto-claude-code-research-in-sleep/tree/ma — the audited source at commit 65f365162a55 and every finding aboveObserved · 28 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the feishu-notify skill do?
- Is feishu-notify safe to install?
- What can feishu-notify access on my machine?