Agent skill · Audited from source
scene-construction
skill · haowjy/creative-writing-skillsApache-2.0 licenceAudited 28 Oct 2026 · source 915238ec14fe
Is it safe? No — BLOCK, grade D (62/100). We read this skill's source at commit 915238ec14fe and observed filesystem, network and shell access and no hard-coded secrets. The audit raised 19 findings, 3 critical or high. What it does: Load to speak as a specified character from what they know, how they talk, and what they feel now: in-character conversation, voice discovery, or a relationship pressure test. Pass the character, the story moment, and…
Cite
Cite this page
ModelsAtlas. “scene-construction (haowjy/creative-writing-skills)”. Retrieved 28 Oct 2026. https://modelsatlas.com/skills/haowjy/scene-construction
Blocked. The page stays public so you can check this skill if someone recommended it to you. The audit found 3 critical or high findings, starting with “Code injection” in plugin/claude/skills/writing-sync/scripts/drive_sync/storage.py:27. Do not install it without reading them.
4 skills are called “scene-construction”. You are viewing haowjy/creative-writing-skills. 3 of them are BLOCK.
- haowjy/creative-writing-skills★ 548✕BLOCK
- haowjy/creative-writing-skills★ 548✕BLOCK
- haowjy/creative-writing-skills★ 547✕BLOCK
- haowjy/creative-writing-skills★ 526✓SAFE
Trust audit
Audit 0.4.1 · source read 28 Oct 2026
BLOCK means the audit found something that could harm you or your machine. Grade D is shared by 721 of 17,602 audited skills.
What the source does
- FilesystemDeclared1 observation
- NetworkDeclared2 observations
- ShellDeclared3 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 | 1 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | FAIL | 18 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
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 (19)
HIGHCode injectioncode.deserialize · plugin/claude/skills/writing-sync/scripts/drive_sync/storage.py:27
raw = yaml.load(data.decode("utf-8"))- Why
- deserialises untrusted bytes into live objects
- Fix
- use json or yaml.safe_load
HIGHCode injectioncode.deserialize · plugin/cursor/skills/writing-sync/scripts/drive_sync/storage.py:27
raw = yaml.load(data.decode("utf-8"))- Why
- deserialises untrusted bytes into live objects
- Fix
- use json or yaml.safe_load
HIGHCode injectioncode.deserialize · plugin/opencode/skills/writing-sync/scripts/drive_sync/storage.py:27
raw = yaml.load(data.decode("utf-8"))- Why
- deserialises untrusted bytes into live objects
- Fix
- use json or yaml.safe_load
MEDIUMNetwork egressnet.raw_ip · plugin/claude/skills/writing-sync/scripts/drive_sync/auth.py:97
callback.append('https://127.0.0.1:' + str(self.server.server_port) + self.path)- Why
- No further detail recorded for this rule.
- Fix
- —
MEDIUMNetwork egressnet.raw_ip · plugin/claude/skills/writing-sync/scripts/drive_sync/auth.py:105
flow.redirect_uri = f'http://127.0.0.1:{server.server_port}/'- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · plugin/claude/skills/writing-sync/tests/live_integration.py:96
expected = [{'source_href': '../../a.md', 'destination_url': url,- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · plugin/claude/skills/writing-sync/tests/live_integration.py:101
or source != b'Nested fixture. [Read parent](../../a.md).\n'):
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · plugin/claude/skills/writing-sync/tests/live_integration.py:422
output.write(b'Nested fixture. [Read parent](../../a.md).\n')
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · plugin/claude/skills/writing-sync/tests/test_live_runner.py:151
(path / 'g.md').write_bytes(b'Nested fixture. [Read parent](../../a.md).\n')
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWFilesystem / pathfs.traversal · plugin/claude/skills/writing-sync/tests/test_live_runner.py:161
bindings = {'3': {'link_provenance': [{'source_href': '../../a.md',- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · plugin/claude/skills/writing-sync/tests/test_auth.py:68
session.callback.append('https://127.0.0.1/?code=synthetic&state=test-state')- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · plugin/claude/skills/writing-sync/tests/test_auth.py:115
session.callback.append('https://127.0.0.1/?code=synthetic&state=test-state')- Why
- No further detail recorded for this rule.
- Fix
- —
LOWNetwork egressnet.raw_ip · plugin/claude/skills/writing-sync/tests/test_auth.py:122
picker.callback.append('https://127.0.0.1/?code=synthetic&state=test-state&picked_file_ids=granted-folder')- Why
- No further detail recorded for this rule.
- Fix
- —
LOWObfuscation / stealthobf.decode_call · plugin/claude/skills/writing-sync/scripts/drive_sync/conversion_worker.py:23
decode = lambda value: base64.b64decode(value, validate=True)
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWObfuscation / stealthobf.decode_call · plugin/claude/skills/writing-sync/scripts/drive_sync/return_conversion.py:95
return Candidate(b64decode(result['data'], validate=True), result['source_hash'],
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWObfuscation / stealthobf.decode_call · plugin/claude/skills/writing-sync/tests/test_metadata_application.py:70
self.assertEqual(bytes.fromhex(record['attributes']['user.drive-sync-fixture']),
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWObfuscation / stealthobf.decode_call · plugin/cursor/skills/writing-sync/scripts/drive_sync/conversion_worker.py:23
decode = lambda value: base64.b64decode(value, validate=True)
- Why
- No further detail recorded for this rule.
- Fix
- —
LOWObfuscation / stealthobf.decode_call · plugin/cursor/skills/writing-sync/scripts/drive_sync/return_conversion.py:95
return Candidate(b64decode(result['data'], validate=True), result['source_hash'],
- Why
- No further detail recorded for this rule.
- Fix
- —
Audit 0.4.1 · source sha 915238ec14fe · 28 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publisherhaowjy GitHub userOwner of the repository this skill is read from
- Source folderhaowjy/creative-writing-skillsThe exact folder we audited
- LicenceApache-2.0As the repository states it
- Commit pinned for this verdict915238ec14feA new audit runs when the source changes
- Repository statusNot archivedPushed today
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Load to speak as a specified character from what they know, how they talk, and what they feel now: in-character conversation, voice discovery, or a relationship pressure test. Pass the character, the story moment, and…
--- name: character-sim description: > Load to speak as a specified character from what they know, how they talk, and what they feel now: in-character conversation, voice discovery, or a relationship pressure test. Pass the character, the story moment, and their style and character-state files. model-invocable: true metadata: type: mode-shift --- # Character Simulation Become the specified character for conversation. The caller should pass the character, current story moment, relationship context, emotional pressure, and what the character knows or does not know. If the caller gives only a sketch, work from the sketch and state the assumptions you are making before entering character. ## Method Build the character from the available evidence. Style shows how they talk: speech patterns, vocabulary, rhythms. Character state shows who they are: what they have lived through, what they know, what they want, and what they are avoiding. Load both. If character state is missing, find it. Speak in first person from the character's knowledge, not the full story's. When they would be confused, be confused. When they would deflect, deflect. When they would misunderstand, misunderstand. Match how they actually talk. Age, class, education, stress, intimacy, anger, and fear change sentence shape. Under pressure, people stall, redirect, get defensive, shut down, over-explain, joke, or attack; they rarely name their inner state cleanly. Let the conversation be messy. Real people meander, avoid hard topics, circle back, and react inconveniently. When there is no obvious answer, improvise from who the character is. The conversation is the output. Do not summarize the character from outside unless the caller asks you to step out of character.
Excerpt, first 1,771 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 915238e
uv sync --locked --no-editable --python 3.11
git clone https://github.com/haowjy/creative-writing-skills git -C creative-writing-skills checkout 915238ec14fe
Commands as the repository documents them: shown, never run by us. Our verdict covers commit 915238ec14fe 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 |
| Claude Desktop | Mentioned in its text, not tested | Skills for Claude Desktop · About Claude Desktop |
| 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 D 62 / 100
first audit · source
915238ec14fe
Similar skills
yuan1z0825/nature-skills
Search literature across sources, verify or manage citations, and build MeSH strategies or citation-impact audits. Use for 文献检索、引文核对、参考文献管理、严格他引 and evidence-backed citer profiles; not for translating a paper or…
tldraw/tldraw
Reference standards for writing pull request titles and descriptions in the tldraw repository, plus the pre-flight comment sweep over the diff. Use as supporting guidance when another skill or workflow needs PR content…
vercel-labs/agent-skills
Vercel's official collection of agent skills
Questions about scene-construction
What does the scene-construction skill do?
Is scene-construction safe to install?
What can scene-construction access on my machine?
Which assistants does scene-construction work with?
How current is this page?
Sources
- github.com/haowjy/creative-writing-skills — the audited source at commit 915238ec14fe 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 scene-construction skill do?
- Is scene-construction safe to install?
- What can scene-construction access on my machine?