inspect
Skill63 starsChanged yesterdayMITView on GitHub
Look at a page step by step in the account's own gated browser (AdsPower first) before writing code for it (rule 29), on any platform with a browser path. `log inspect start` opens the account's headed browser; `log inspect do` runs one action at a time and records each step's accessibility snapshot (refs), screenshot, HAR and rea reading as it happens. Use before writing or fixing any click/selector code, when a run hits a page nobody has looked at, or when the owner says "look at the page", "introspect", "what is on there".
15 other projects use a version of this.
Adopted by
Most recently taken up by
- Noah-OS/longhaultheir own version, first seen Nov 15, 2026
- sanityops-org/sanityops-frameworktheir own version, first seen Nov 4, 2026
- cyrilichti/agent-workflowstheir own version, first seen Oct 17, 2026
- chalk-lab/Mooncake.jltheir own version, first seen Oct 8, 2026
- saleh-alhaddad/itqan-engineeringtheir own version, first seen Sep 29, 2026
- ZeeshanSultan/DocGovtheir own version, first seen Sep 13, 2026
Other versions15 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 15
- chalk-lab/Mooncake.jl★ 413same name
- Arman-Kudaibergenov/1c-ai-development-kit★ 163same name
- bluzir/claude-code-design★ 102same name
- NakaokaRei/swift-mcp-gui★ 61same name
- howardpen9/cc-inspect★ 17same name
- saleh-alhaddad/itqan-engineering★ 10same name
- HaipingShi/coderail★ 8same name
- Noah-OS/longhaul★ 4same name
- cyrilichti/agent-workflows★ 3same name
- sanityops-org/sanityops-framework★ 3same name
5 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.
In this repository82 other files it gives its agents.
- AGENTS.mdAGENTS.md
- log-discord-channel-replySkill
- log-discord-forum-postsSkill
- log-discord-group-chat-readSkill
- log-discord-meme-replySkill
- log-discord-server-replySkill
- log-discord-server-searchSkill
- log-facebook-groupsSkill
- log-facebook-marketplace-listingsSkill
- log-inbox-boss-maxxingSkill
- log-inbox-governor-resetSkill
- log-inbox-reactionsSkill
- log-inbox-rea-looksmaxxingSkill
- log-inbox-scope-ajobSkill
- log-inbox-show-meSkill
- log-inbox-sign-inSkill
- log-inbox-triageSkill
- log-inbox-voice-noteSkill
- log-instagram-dm-replySkill
- log-instagram-new-platformSkill
- log-linkedin-networkSkill
- log-linkedin-postsSkill
- log-reddit-contributor-maxxingSkill
- log-slack-dm-replySkill
- log-twitter-affiliate-marketingSkill
- log-twitter-collab-maxxingSkill
- log-twitter-dm-inboxSkill
- log-twitter-engagement-repliesSkill
- log-twitter-engager-dmsSkill
- log-twitter-followersSkill
- log-twitter-follow-upsSkill
- log-twitter-get-the-actionSkill
- log-twitter-manager-maxxingSkill
- log-twitter-network-maxingSkill
- log-twitter-niche-map-regionSkill
- log-twitter-notificationsSkill
- log-twitter-recruitingSkill
- log-twitter-reply-guy-funnelSkill
- log-twitter-topic-repliesSkill
- log-twitter-who-needs-youSkill
- log-web-competitor-trafficSkill
- accountToDryRunSkill
- adsPowerSkill
- agentHooksSkill
- callTimingSkill
- captureRuleSkill
- commitLogSkill
- consoleSkill
- conversationsSkill
- devlogMaxxingSkill
- discordServersSkill
- facebookFlowsSkill
- facebookInspectSkill
- facebookWarmupSkill
- flowSkill
- governorSkill
- hostSkill
- humanMouseSkill
- instagramSkill
- knowledgeBaseSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
1 rule. 0 are common, 0 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 13 edited versions we read keep these.
0
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 54
Every do then reads its own step:
“Common” is measured: kept by at least 6 in 10 of the 13 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
inspect
The order is: open the page, look at it, then write the code (rules 25, 29). This is camofox-mcp's model (accessibility snapshots with element refs) on log-cli's own launch, in the account's own browser (rules 35, 44).
Hard boundaries
- One launch, every gate (rules 19, 35): headed, proxy in
country, the account's device and locale, the self-check, the raw HAR, the
launch budget.
--bypassonly for the owner's runs outside waking hours. - Read-only unless the owner asked (rule 8):
goto,snapshot,back,waitread;click,type,pressact on the platform and need--live(over MCP,inspectDoLivewith confirmLive). - Live (rule 26): run
startthrough Monitor; every step prints as it happens. - One session per account: two accounts can be open at once, and
--accountpicks the session (log inspect sessionslists them).
The routine
# terminal 1 (or Monitor): the browser stays open until `do stop` or 30 idle minutes
log inspect start --account <a> --url <url> 2>&1 | tee <log>
# terminal 2: one step at a time
log inspect do snapshot
log inspect do goto <url>
log inspect do click e12 --live # only when the owner asked
log inspect do stopEach do prints where the page is, the requests the step made to the platform
(GraphQL by name, redirects with their target), rea's Evidence ID, and the
page's elements with their refs. Everything is kept in order in
~/.logCli/runs/inspect/<time>_<a>/steps/NN_<action>/: snapshot.yml,
screenshot.png, network.har, rea.json.
Reading every step (rule 73)
What each part must do is in the spec, docs/specs/inspectRuleOne.md.
Give the session its goal when you open it, in plain words:
log inspect start --account <a> --goal "<what the session must get done>" --detachEvery do then reads its own step:
- The internal API, by code: each call the step triggered, what was
sent and what came back, in seconds from the step's first request. It's
printed under "Internal API in this step" and kept in the step folder as
exchanges.jsonandexchanges.md. A repeated call shows only what changed since its last call (the query as it was typed, letter by letter, with each answer). Code loading and cross-site media are left out. - A step no known page state names goes to SubQ with everything around
it: the goal, the account, what we did (the mouse, how long it took),
every call, the page text, the screenshot and the earlier steps. SubQ
says what it means. The reading comes first in the result, starting with
>>> UNKNOWN STATE, and the page-state hook puts it into your context. Name that state before the flow goes on. - The goal is judged across the session, not one step. Each earlier
step carries what the platform saved in it (its mutations that answered
OK), and
goalSoFarcounts them since the goal was set, this step included. "Like 2 to 3 posts" is reached only once 2 likes are saved. A goal set withinspect goal --setcounts only the steps after it. --goalon onedooverrides the session's goal for that step.log inspect read <run>/steps/NN_action --account <a> --goal "..."reads a recorded step again (over MCP:inspectRead).
Each reading is one SubQ call ($0.04 per million input tokens).
reading.json and readingState.json hold the answers and exactly what
was sent.
Keep going until the goal is reached, and write what went wrong (rule 73)
With a goal set, the turn isn't over until a step's reading says the goal is reached. The page-state hook holds the Stop and says what's missing:
A step went wrong (its reading: wrong result, stopped by the platform, unclear, or SubQ failed). Write its finding before the next step, as P.E.E.:
log inspect finding --account <a> --step <NN_action> \ --point "<the issue, in one sentence>" \ --explain "<why the evidence shows it, and what caused it>"- Point: the issue, in one sentence.
- Evidence: filled in from the step's reading (each call SubQ
flagged, with what was sent and what came back).
--evidenceadds your own. - Explain: why the evidence shows it, and what caused it.
- The goal isn't reached yet. Take the next inspect step towards it.
- The goal is reached. Say how each finding was fixed:
log inspect finding --account <a> --fixes 1 --fix "<what fixed it>"
log inspect goal --account <a> shows the goal, whether it's
reached, and every finding. The run keeps them as goalFindings.md. What
only a person can clear (an ID, a video selfie) never holds the turn: say it
to the owner.
Then write the code from it: the selectors and the order of clicks come from
snapshot.yml, the waits from what network.har shows the page asking for.
Rebuild the platform's request docs after.
Facebook's pages, worked examples, request docs and sign-in: skills/facebookInspect/SKILL.md (the facebookBrowser guide).
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.

