Agent skill · Audited from source
browser-bridge
skill · liuzhengdongfortest/codestableLicence not declaredAudited 20 Oct 2026 · source 9b7eaed4bb35
Is it safe? No — BLOCK, grade F (53/100). We read this skill's source at commit 9b7eaed4bb35 and observed filesystem, network and shell access and no hard-coded secrets. The audit raised 21 findings, 5 critical or high. What it does: CodeStable skill authoring and evolution protocol. Use when creating, refactoring, simplifying, or reviewing cs-* skills under plugins/codestable/skills or .claude/skills. Produces a thin harness, an explicit context…
Cite
Cite this page
ModelsAtlas. “browser-bridge (liuzhengdongfortest/codestable)”. Retrieved 20 Oct 2026. https://modelsatlas.com/skills/liuzhengdongfortest/browser-bridge
Blocked. The page stays public so you can check this skill if someone recommended it to you. The audit found 5 critical or high findings, starting with “Code injection” in .claude/skills/eval-cs-skill/scripts/scorers/learning_transfer.py:326. Do not install it without reading them.
Trust audit
Audit 0.4.1 · source read 20 Oct 2026
BLOCK means the audit found something that could harm you or your machine. Grade F is shared by 105 of 14,816 audited skills.
What the source does
- FilesystemDeclared5 observations
- NetworkDeclared7 observations
- ShellDeclared7 observations
- 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 | 4 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | FAIL | 16 |
L2 Instructions | Prompt injection, authority framing, hidden directives | FAIL | 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: instruction override, no behavioural pass, no license.
Findings (21)
HIGHCode injectioncode.deserialize · .claude/skills/eval-cs-skill/scripts/scorers/learning_transfer.py:326
metadata = yaml.load(frontmatter, Loader=_UniqueKeyLoader)
- Why
- deserialises untrusted bytes into live objects
- Fix
- use json or yaml.safe_load
HIGHCode injectioncode.eval_exec · .claude/skills/eval-cs-skill/scripts/harness/mock.py:18
"eval(", "exec(", "os.system", "subprocess", "shell=true", "pickle.loads",- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHCode injectioncode.eval_exec · .claude/skills/eval-cs-skill/scripts/harness/mock_weak.py:16
WEAK_SIGNATURES = ("eval(", "os.system", "password")- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
HIGHNetwork egressnet.tls_off · .claude/skills/eval-cs-skill/scripts/harness/mock.py:19
"md5", "verify=false", "password", "secret", "token", "api_key",
- Why
- certificate verification is disabled
- Fix
- leave verification on
HIGHPrompt injectionprompt.override · WORKFLOW.en.md:89
a reassessment of risk and assurance, not an unconditional bypass of safety gates. Stop adding artifacts and
- Why
- asks the agent to drop prior instructions or safety
- Fix
- remove the instruction
MEDIUMCode injectioncode.dynamic_import · .claude/skills/eval-cs-skill/scripts/harness/__init__.py:16
importlib.import_module(f".{_mod}", __name__)- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMCode injectioncode.dynamic_import · .claude/skills/eval-cs-skill/scripts/scorers/__init__.py:17
importlib.import_module(f".{_mod}", __name__)- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMNetwork egressnet.raw_ip · .claude/skills/eval-cs-skill/scripts/harness/adapter_codex.py:350
yield f"http://127.0.0.1:{server.server_port}/v1"- Why
- No further detail recorded for this rule.
- Fix
- —
LOWInventory / provenanceinv.no_license
- Why
- no LICENSE file and no repo licence
- Fix
- add a licence
LOWCode injectioncode.eval_exec · .claude/skills/eval-cs-skill/tests/test_cs_skill_eval.py:203
"task": {"kind": "review", "diff": "+eval(payload)"},- Why
- evaluates text as code
- Fix
- remove; use a parser or a dispatch table
LOWInsecure cryptocrypto.weak_hash · experiments/cs-code-review-001/fixtures/planted-defect/pd-005.json:9
"diff": "+import hashlib\n+def digest(pw):\n+ return hashlib.md5(pw.encode()).hexdigest()"
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWInsecure cryptocrypto.weak_hash · experiments/cs-refactor-001/fixtures/planted-defect/rf-008.json:8
"diff": "- return hashlib.sha256(x).hexdigest()\n+ return hashlib.md5(x).hexdigest()"
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · .claude/skills/eval-cs-skill/tests/test_cs_learning_transfer_sequence.py:1005
("commondir", "../../outside-git\n"),- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · .claude/skills/eval-cs-skill/tests/test_cs_skill_eval.py:742
fixture["id"] = "../../escape"
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · .claude/skills/eval-cs-skill/tests/test_cs_skill_eval_harness.py:1182
monkeypatch.setenv("OPENAI_BASE_URL", f"http://127.0.0.1:{server.server_port}/v1")- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · .claude/skills/eval-cs-skill/tests/test_cs_skill_eval_harness.py:1238
base_url=f"http://127.0.0.1:{upstream.server_port}/v1",- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · .claude/skills/eval-cs-skill/tests/test_cs_skill_eval_harness.py:1294
self.send_header("Location", f"http://127.0.0.1:{sink.server_port}/capture")- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · .claude/skills/eval-cs-skill/tests/test_cs_skill_eval_harness.py:1303
base_url=f"http://127.0.0.1:{upstream.server_port}/v1",- Why
- No further detail recorded for this rule.
- Fix
- —
INFOInventory / provenanceinv.oversize · asset/CodeStableVSAgent.png
asset/CodeStableVSAgent.png
- Why
- 1703959 bytes not read
- Fix
- —
INFOInventory / provenanceinv.oversize · asset/CodeStabvle.png
asset/CodeStabvle.png
- Why
- 1301816 bytes not read
- Fix
- —
INFOInventory / provenanceinv.oversize · asset/PromotionalImage.png
asset/PromotionalImage.png
- Why
- 1526804 bytes not read
- Fix
- —
Audit 0.4.1 · source sha 9b7eaed4bb35 · 20 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publisherliuzhengdongfortest GitHub organizationOwner of the repository this skill is read from
- Source folderliuzhengdongfortest/codestableThe exact folder we audited
- LicenceNot declaredAs the repository states it
- Commit pinned for this verdict9b7eaed4bb35A new audit runs when the source changes
- Repository statusNot archivedLast push 63 days ago
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: CodeStable skill authoring and evolution protocol. Use when creating, refactoring, simplifying, or reviewing cs-* skills under plugins/codestable/skills or .claude/skills. Produces a thin harness, an explicit context…
---
name: build-cs-skill
description: "CodeStable skill authoring and evolution protocol. Use when creating, refactoring, simplifying, or reviewing cs-* skills under plugins/codestable/skills or .claude/skills. Produces a thin harness, an explicit context plan, evidence gates, and an optional agent collaboration contract. Do not use for product implementation; use eval-cs-skill only for measured experiment loops."
---
# build-cs-skill
## Purpose
Build the smallest always-loaded control surface that lets an agent select relevant context, respect
hard gates, collaborate safely, and leave recoverable evidence. `SKILL.md` is the **thin harness**;
references and repository facts are **thick context**. Thick means decision-useful, not large.
Specify responsibility, authority, context selection, evidence, and stop conditions. Leave safe
implementation choices to the executing agent.
## Scope And References
Targets are `plugins/codestable/skills/<skill-name>/` or `.claude/skills/<local-skill-name>/`.
Load only the reference needed for the current decision:
- `references/cs-skill-spec-standard.md`: contract definitions, typed decisions, recovery, and output semantics.
- `references/cs-skill-quality-gates.md`: review algorithm for placement, context, evolution, runtime alignment, and validation safety.
- `references/cs-skill-fixture-patterns.md`: risky routing, checkpoint, failure, compatibility, or
forbidden-action scenarios.
## Spec
```haskell
data SkillKind
= OperatorSkill | WorkflowSkill | MethodologySkill | CompatibilityShim | ReferenceDoc
data SkillShape = NoActiveSkill | ThinOperator | ContextualWorkflow | ToolBackedWorkflow
| ShimSkill | ReferenceSkill
data ProcessProtocol = WorkflowProtocol | DomainProtocol | LifecycleProtocol
| OperationProtocol | AlgorithmProtocol | ShimRoute | ReferenceOnly
data RulePlacement = Harness | StageContext | ProjectContext | DeterministicGate | Remove
data DelegationRole = Orchestrator | LeafExecutor
selectSkillShape :: SkillKind -> SkillSource -> SkillShape
selectSkillShape kind source | not (independentSkillNeeded kind source) = NoActiveSkill
selectSkillShape kind source =
case kind of
ReferenceDoc -> ReferenceSkill
CompatibilityShim -> ShimSkill
OperatorSkill -> ThinOperator
WorkflowSkill
| deterministicRouter source -> ToolBackedWorkflow
| otherwise -> ContextualWorkflow
MethodologySkill -> ContextualWorkflow
selectProcessProtocol :: SkillKind -> SkillSource -> ProcessProtocol
selectProcessProtocol kind source =
case kind of
WorkflowSkill
| lifecycleDriven source -> LifecycleProtocol
| otherwise -> WorkflowProtocol
OperatorSkill
| algorithmic source -> AlgorithmProtocol
| otherwise -> OperationProtocol
MethodologySkill -> DomainProtocol
CompatibilityShim -> ShimRoute
ReferenceDoc -> ReferenceOnly
placeRule :: Rule -> RulePlacement
placeRule r
| mechanizable r = DeterministicGate
| nonMechanizableSafety r = Harness
| projectSpecific r = ProjectContext
| stageSpecific r = StageContext
| everyInvocationNeeds r && changesDecisionOrGate r = Harness
| otherwise = Remove
buildContextPlan :: SkillShape -> [PlacedRule] -> ContextPlan
buildThinHarness :: SkillShape -> ResponsibilityContract -> ContextPlan -> Markdown
```
## Build Protocol
### 1. Establish scope and responsibility
Read the target and relevant repository design facts; inspect git status and preserve unrelated edits.
State the one outcome the skill owns, its authority boundary, completion evidence, and unsafe stop
conditions. Authoring itself does not require project preflight. A generated skill adds preflight only
when its behavior depends on project setup, repository facts, artifact writes, or recovery.
If there is no independent installable responsibility, or an existing skill/reference/tool owns it,
select `NoActiveSkill`. A retired v1 CodeStable name also selects `NoActiveSkill`; migration prose is
not an instruction to recreate a compatibility shim. Use `ReferenceSkill` only when knowledge has an
independent distribution contract.
### 2. Choose the minimum shape
Classify before writing; do not default to a full protocol refactor. Use `ThinOperator` for one
action/artifact, `ContextualWorkflow` for staged or recoverable work, and `ToolBackedWorkflow` when a
deterministic router/gate owns fragile choices. `ShimSkill` contains only a canonical target and
preset, and is allowed only when a newly accepted distribution contract explicitly ships that alias.
`ReferenceSkill` contains knowledge without an invented workflow.
Use high freedom for safe implementation choices, medium for preferred patterns, and low only for
fragile operations or invariant-sensitive ordering.
### 3. Place every rule once
Inventory current and proposed rules before editing. Record each rule's source, affected decision,
frequency, and `RulePlacement`; then apply `placeRule`.
- Mechanizable safety and repeated transformations -> script, hook, or gate.
- Stage methods, templates, and examples -> stage reference.
- Project facts, ADRs, and learnings -> repository CodeStable artifacts.
- Every-invocation decisions and non-mechanizable hard gates -> harness.
- Generic advice, duplicated rationale, stale prose, and behavior-neutral steps -> remove.
Information must have one canonical home. Do not retain the same route, gate, or method in both the
harness and a prose reference.
### 4. Build the context plan before the harness
Call `buildContextPlan` before writing the body. For every context source state when to load it, why
it matters, how freshness is checked, when enough context has been gathered, and how an already
loaded fact is reused.
Entry context iExcerpt, 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 9b7eaed
git clone https://github.com/liuzhengdongfortest/codestable git -C codestable checkout 9b7eaed4bb35
The author documents no install command, so this uses the repository directly. Our verdict covers commit 9b7eaed4bb35 only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
| Codex | Mentioned in its text, not tested | Skills for Codex · About Codex |
| Cursor | Mentioned in its text, not tested | Skills for Cursor · About Cursor |
Audit history
Every audit, every source change
- ✕BLOCK F 53 / 100
first audit · source
9b7eaed4bb35
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/liuzhengdongfortest/browser-bridge/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
feder-cr/invisible_dots
Use the Dot's browser identities for any task on a website or search on the web: which identity to use, opening and closing one, and when a plain download is simpler than a browser.
microsoft/SkillOpt
Reference-only OpenClaw adaptation of SkillOpt-Sleep. Use it to study or port the contributed DeepSeek wrapper, not as a ready-to-run installation.
activeloopai/hivemind
Global team and org memory powered by Activeloop. ALWAYS check BOTH built-in memory AND Hivemind memory when recalling information.
Add this badge to your README
[](https://modelsatlas.com/skills/liuzhengdongfortest/browser-bridge/)
<a href="https://modelsatlas.com/skills/liuzhengdongfortest/browser-bridge/"><img src="https://modelsatlas.com/skills/liuzhengdongfortest/browser-bridge/badge.svg" alt="ModelsAtlas: BLOCK F"></a>
Questions about browser-bridge
What does the browser-bridge skill do?
Is browser-bridge safe to install?
What can browser-bridge access on my machine?
Which assistants does browser-bridge work with?
How current is this page?
Sources
- github.com/liuzhengdongfortest/codestable — the audited source at commit 9b7eaed4bb35 and every finding aboveObserved · 20 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 browser-bridge skill do?
- Is browser-bridge safe to install?
- What can browser-bridge access on my machine?