internal-audit-for-srs
Skill29k starsChanged 3 months agoMITView on GitHub
Use to check one SRS commit or review group for defects before the user reads it or before a merge, when the srs-autopilot review workflow or the srs-develop Review a PR and Scan PRs workflows ask for an audit, after a cherry-pick to another branch, or when the user asks to audit a commit. Reports what does not hold up; fixing, committing and the review result stay with the caller.
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Every finding needs a concrete scenario: these steps leave this state wrong, with the file and line.
- Distinctive: line 24
Leave out everything smaller: style, naming, logs, comments, a missing test alone, and a rare corner case with no harm.
- Very specific: line 41
Run scripts/audit-diffs.sh <commit|base..tip> <out-dir> with <out-dir> in the scratchpad.
- Very specific: line 54
Start one subagent with this prompt, with <dir> filled in:
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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
SRS Internal Change Audit
An audit is a second reading of a change by an agent that did not write it and does not share its context. It reads the code first, commits to what the code should do, and only then reads the commit message and the tests. The parent workflow (the srs-autopilot review, or the srs-develop Review a PR, Scan PRs or a cherry-pick) owns the review; this skill owns the audit's method, its report, and the list of smells.
Why the order matters
An agent that writes a test and a fix in one run, from one bug report, gives no independent check: the test restates the fix. The commit message then explains the fix in confident words, and a reviewer who reads the message first checks the code against the message, not against the protocol. The audit breaks that chain by withholding the message and the tests until the auditor has written down its own expectations.
Core Rules
- The auditor runs in a fresh context: a subagent that gets only the files this skill names, never the task file, the fixer's conversation, or the review session's notes.
- The commit message, the code comments and the tests are claims, not evidence. The code and the protocol are the evidence.
- Every finding needs a concrete scenario: these steps leave this state wrong, with the file and line. A worry without a scenario is listed under "Not checked", not under findings.
- Report only severe, P0 bugs:
- A crash, an abort, or a read or write past a buffer.
- A security hole.
- A valid client refused or broken, or a stream or its data lost.
- A wrong result a user or an operator relies on.
- Leave out everything smaller: style, naming, logs, comments, a missing test alone, and a rare corner case with no harm. Do not try to find every bug.
- "Nothing found" is a valid result, with what was tried. The auditor is not scored on the number of findings.
- The auditor never edits code, never commits, never touches any branch or worktree, and never fixes. It reads with
git showandgit diffonly. - The parent puts the report in front of the user before the code, and logs each finding as a work item in the task file, or in its report when it has no task file. Fixes go through the review, as the user decides.
- Match the repository's rules on the way to the result: plain commands and script files only, no multi-line shell blobs; temporary files in the scratchpad.
Path Resolution
- Resolve
references/andscripts/relative to the directory containing thisSKILL.md. - Resolve repository paths such as
trunk/,cmd/, orskills/relative to the current working directory.
Workflow: Audit a Change
The parent runs this for one commit, or for one review group (its squashed commit, or <base>..<tip>).
1. Split the change
Run scripts/audit-diffs.sh <commit|base..tip> <out-dir> with <out-dir> in the scratchpad. It writes:
code.diff— the change without its tests.stat.txt— the code files changed.base.txt— the commit before the change, for reading the code around it withgit show <base>:<path>.tests.diff— the test files changed:trunk/src/utest,cmd/integ,trunk/3rdparty/srs-bench,*_test.go,*test*.sh.message.txt— the commit messages.tip.txt— the audited commit.
The auditor gets the first three in phase 1 and the rest in phase 2. It returns each phase's sections as text in its report, and the parent saves them to <dir>/audit.md: a subagent is refused a Write of a report file, so the auditor does not write one.
2. Phase 1, blind
Start one subagent with this prompt, with <dir> filled in:
Audit a code change blind. Load skills/internal-audit-for-srs/SKILL.md and its references/report-template.md.
Inputs: <dir>/code.diff (the change without its tests), <dir>/stat.txt, and <dir>/base.txt (the commit before the change; read the code around the change with `git show <base>:<path>`, and the docs at `git show <base>:trunk/conf/full.conf` and the srs-develop and internal-docs-for-srs skills).
You have no commit message, no tests, and no task text on purpose: do not run git log on the branch, do not read the test directories, and do not read tasks/.
Return sections 1 to 4 of the report template as text, verbatim, in your report; do not write files: the change's files; the expectations at each step of the lifecycle the change touches, each with its source (the protocol, full.conf, the docs, or the sibling code that does the same thing for another protocol); the blind read, what the code does in plain words, without guessing the intent; and the tests you would write. Then stop.Save the returned sections to <dir>/audit.md.
3. Phase 2, the claims
Continue the same subagent (SendMessage, so its expectations stay in its context) with:
Phase 2. The audited commit is <tip>. Read <dir>/message.txt and <dir>/tests.diff, and load references/smells.md.
Return sections 5 to 10 of the report template as text, verbatim, in your report; do not write files: the code against the message; the test gaps, from your own list against the tests present; the decisions the change makes without saying so; the smells matched; the severe findings only, ranked, each with a concrete scenario and the file and line, or "Nothing found" with what you tried; and what the audit could not check.
Never edit code, never commit, never touch any branch. End with the one-line summary of each finding, or that nothing was found.Append the returned sections to <dir>/audit.md.
4. Hand over
The parent reads the report, tells the user the findings and the test gaps before the user reads the code, and logs each finding as a work item in the task file, or in its report when it has no task file. The audit's report path goes in the Work log entry.
Report
references/report-template.md is the report's shape. Keep its sections and order: the first four prove the auditor committed before it saw the claims; the user can tell a real audit from a rubber stamp by reading them.
Smells
references/smells.md lists the mistakes this project has seen an agent make, one line each, with an example. The auditor reads it in phase 2 only, so the list guides the check and does not replace the blind read. Add a line whenever the user's own read catches something the audit missed.
Trending
More talk lately.about the whole repository
Who's talking about ossrs/srs
- 迷途小书童的Note“使用开源视频服务器SRS搭建自己的直播、点播系统”YouTube · Apr 14, 2019 · 4.6k views
- SRS Community“CommCon2023: Sub-Second Latency Streaming Technologies and Applications”YouTube · Jul 28, 2023 · 876 views
- CodeTimelapse“The Birth of SRS: A Real-Time Media Server's First Commit 🚀”YouTube · Oct 2, 2026 · 238 views
- CodeTimelapse“The Birth of SRS: A Real-Time Media Server's First Code Steps ✨”YouTube · Sep 8, 2026 · 54 views
- githubrepo_cloud“🔥 [1 Repo Every Developer Should Know] srs: The Free Tool Taking Over GitHub! #shorts”YouTube · Oct 7, 2026 · 39 views
The biggest 5 of 67 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 67
Talked about on GitHub, Stack Overflow, YouTube and the web (67 times).
On GitHub · 50
- Apr 16, 2023FFmpeg: Add Whip Muxer support for subsecond latency streaming — ossrs/ffmpeg-webrtc22 reactions · 4 comments
- Mar 16, 2017视频直播的技术原理和实现思路方案整理 — f2e-journey/xueqianban18 reactions · 4 comments
- Jan 17, 2024Wishlist for new benchmarks — dtcxzyw/llvm-opt-benchmarksays it tested it5 reactions · 15 comments
- Aug 14, 2024克隆人像和声音,metahuman与GPT-SoVITS接口打通,过程汇总。 — lipku/LiveTalking2 reactions · 4 comments
- Apr 8, 2024srs: init at 5.0-r2 — NixOS/nixpkgs2 reactions · 9 comments
45 more on GitHub
- Apr 8, 2024Package request: srs — NixOS/nixpkgs1 reaction · 2 comments
- Jun 15, 2022编译运行之后日志正常但是sip和rtc的端口都未启动,以服务形式运行则不能正常启动,但是没有有效的错误日志 — ossrs/srs-gb281811 reaction · 1 comment
- Jan 5, 2022GB28181: srs部署再云端的,海康摄像头GB28181配置完成后,显示在线,但是查询所有会话,devices是空的。 #2417 — ossrs/srs-gb281811 reaction
- Apr 18, 2020Support MSG_ZEROCOPY for streaming server. — ossrs/state-threads1 reaction · 9 comments
- Feb 25, 2017Use KCP or go-kcp for realtime transport over UDP — ossrs/httpx-static1 reaction · 1 comment
- Aug 11, 2026Add FFmpeg 8.1.2 with WHIP and Enhanced RTMP HEVC support — ossrs/dev-docker0 reactions
- Jul 25, 2026Add fingerprint rule for simple_realtime_server (SRS) — hexbay/finger-rules0 reactions
- May 22, 2026Evaluate: mediamtx vs SRS (ossrs/srs) for streaming relay — thejoeejoee/co-ansible0 reactions
- Mar 16, 2026fix: update SRS reference link to GitHub repo — thomedw/blog0 reactions
- Aug 27, 2025add ffmpeg 7.1.1 to docker image. — ossrs/dev-docker0 reactions
- Jun 27, 2025fix config hot-reload on k8s — mostlygeek/llama-swap0 reactions · 2 comments
- Nov 1, 2024Let oryx backend by srs origin cluster — ossrs/oryx0 reactions · 3 comments
- Apr 17, 2024srs yum install — wlnmp/wlnmp0 reactions
- Nov 8, 2023Adding extended RTMP support — noirotm/flvmeta0 reactions · 11 comments
- Nov 2, 2023Add WebRTC-HTTP ingestion protocol (WHIP) muxer & WebRTC-HTTP egress protocol (WHEP) demuxer — nativewaves/FFmpeg0 reactions · 2 comments
- Jun 28, 2023使用SRS搭建GB28181服务器 | H5NVR--专注监控视频流在线分发-长沙零天信息科技有限公司 — scdn/gitalk0 reactions
- Jun 28, 2023使用SRS搭建GB28181服务器 | H5NVR--专注监控视频流在线分发-长沙零天信息科技有限公司 — scdn/gitalk0 reactions
- Jun 5, 2023测试用的rtmp服务器 — flxxyz/go-rtmp-to-websocket0 reactions
- May 11, 2023rtmp server和rtmp client能否支持302重定向? — ireader/media-server0 reactions · 1 comment
- Apr 23, 2023SRS编译失败 — ossrs/srs-sctp0 reactions
- Feb 26, 2023Updated single-repositories/github/ossrs/srs.yml — oss-compass/compass-projects-information0 reactions · 2 comments
- Feb 6, 2023Change play url from whip-play to whep — ossrs/srs-unity0 reactions · 1 comment
- Nov 30, 2022About file issue — ossrs/dev-docker0 reactions
- Nov 8, 2022Audio streaming — Wint3rmute/libretakt0 reactions
- Oct 8, 2022Add empty streamid doc in srt-url — ossrs/srs-docs0 reactions
- Aug 31, 2022addpatch: srs 4.0_r2-2 — felixonmars/archriscv-packages0 reactions
- Mar 31, 2022二进制安装的srs_ingest_helper 启动后,浏览器访问http://ip:8086 服务就宕了 这是为什么啊? — alongL/srs_ingest_helper0 reactions · 1 comment
- Jan 24, 2022HLS and HTTP TS stream support in ossrs/srs — aniclover/vrc-aniclover-world0 reactions
- Jan 19, 2022关于replace_startcode_with_nalulen的热点较高 — ossrs/srs-gb281810 reactions
- Jan 5, 2022What about H.265? #2155 — ossrs/srs-gb281810 reactions · 1 comment
- Jan 5, 2022海康gb28181 有流,但是无法用vlc播放 #2841 — ossrs/srs-gb281810 reactions · 1 comment
- Jan 5, 2022GB28181接入NVR,跑一段时间后奔溃,进程退出 #1790 — ossrs/srs-gb281810 reactions · 1 comment
- Jan 5, 2022delchannel chid is not required — ossrs/srs-gb281810 reactions
- Jan 5, 2022Fix #2570, remove useless audio track info in PMT when no audio — ossrs/srs-gb281810 reactions
- Jan 5, 2022GB28181: fixed crash when deleting gb28181 channel — ossrs/srs-gb281810 reactions
- May 8, 2021Add optional tcUrl field for request_connection — KallDrexx/rust-media-libs0 reactions · 1 comment
- Jan 9, 2021srs #2071 这个问题帮忙给个修改思路 谢谢 — xialixin/srs0 reactions
- Jun 28, 2020夏老板,能不能帮忙看看28181的问题 — xialixin/srs0 reactions
- Jun 15, 2020SRS 4.0,大量推流,会有内存泄漏 — chatop2020/SRSManager0 reactions · 3 comments
- Apr 23, 2020Fully implement SRS callback API — chaoswest-tv/portier0 reactions
- Apr 18, 2020Support sendmmsg for UDP. — ossrs/state-threads0 reactions · 2 comments
- Dec 17, 2019feature request: pls add callback function just like srs do — jbl19860422/go_srs0 reactions · 1 comment
- Oct 29, 2018Remove HLS #EXT-X-ALLOW-CACHE deprecated. — lino-network/srs0 reactions
- Mar 13, 2018推流成功后观看视频画面一直花屏 — begeekmyfriend/yasea0 reactions · 1 comment
- May 26, 2017how to support http-flv live stream use nginx-rtmp-module and nginx? — arut/nginx-rtmp-module0 reactions · 2 comments
On Stack Overflow · 8
- Apr 23, 2020SRS (RTMP) authentification with PHP error4 votes · 2 answers
- Oct 15, 2020SRS how enable HTTPS for HLS stream?2 votes · 1 answer
- Mar 21, 2019How to build a stream website like twitch with spring1 vote
- Jan 19, 2019C# Camera stream server with Console App using Raspberry Pi Raspberrian1 vote
- Apr 14, 2022DVR RTMP Stream into HLS (m3u8) in SRS0 votes · 1 answer
3 more on Stack Overflow
- Apr 1, 2022Stream published to open source RTMP servers does not appear on resttream.io0 votes · 1 answer
- Feb 2, 2019Convert MJPEG RTP stream to MP4 RTP stream with FFMPEG - how?0 votes · 1 answer
- Jul 18, 2020How to make project from github-1 votes · 3 answers
On YouTube · 6
- Apr 14, 2019使用开源视频服务器SRS搭建自己的直播、点播系统 — 迷途小书童的Note4.6k views · 21 comments
- Jul 28, 2023CommCon2023: Sub-Second Latency Streaming Technologies and Applications — SRS Community876 views · 2 comments
- Oct 2, 2026The Birth of SRS: A Real-Time Media Server's First Commit 🚀 — CodeTimelapse238 views
- Sep 8, 2026The Birth of SRS: A Real-Time Media Server's First Code Steps ✨ — CodeTimelapse54 views
- Oct 7, 2026🔥 [1 Repo Every Developer Should Know] srs: The Free Tool Taking Over GitHub! #shorts — githubrepo_cloud39 views
1 more on YouTube
- Oct 6, 2026CVE-2026-105486: SRS Streaming Server Hijack Explained — SecureTechIn34 views
On the web · 3
- Nov 5, 2021Chrome screen sharing is streamed to SRS via WebRTC ... — google.com
- Mar 25, 2020Improve Performance for SRS · Issue #1673 · ossrs/srs — google.com
- Oct 18, 2016The SRS server crashed after stopping the stream. · Issue ... — google.com
In this repository9 other files it gives its agents.
- .openclaw/AGENTS.mdAGENTS.md
- internal-chrome-controlSkill
- internal-codemap-for-srsSkill
- internal-docs-for-srsSkill
- internal-obs-controlSkill
- internal-perf-for-srsSkill
- srs-autopilotSkill
- srs-developSkill
- srs-supportSkill
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.

