CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

access-control

Missing modifiers, wrong msg.sender checks, default-public functions, missing onlyOwner / onlyRole / onlyDAO authorization.

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./packages/decepticon/decepticon/skills/standard/contracts/access-control/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

71%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A lean, genuinely actionable audit playbook: concrete grep/slither commands, modifier bug-pattern tables, executable Foundry PoCs, and severity calibration outweigh its flaws. The main gaps are a dangling cross-skill reference, PoC confirmation not explicitly tied into the workflow as a validation step, and exemplar/template bulk that would be better split into reference files.

Suggestions

Make PoC confirmation an explicit workflow step (e.g. step 8: "For each candidate, write and run a PoC from the template below before reporting") to close the validation loop.

Remove or fix the dangling "sig-replay/SKILL.md" reference, and move the known-exemplars list and PoC templates into references/ files (e.g. references/exemplars.md, references/poc-templates.md) to slim the main SKILL.md.

Drop the off-scope exemplars (Wormhole signature bug, Multichain key compromise) that the skill itself flags as not strictly access-control, and verify the slither-check-erc usage for selector-collision detection.

DimensionReasoningScore

Conciseness

The body is dense — tables of modifier patterns, grep commands, and Foundry PoCs with almost no explanation of concepts Claude already knows. Not 5: the "most boring class — and the most common" commentary and the two exemplars flagged as "not strictly access-control" (Wormhole, Multichain) are tokens that don't earn their place.

4 / 5

Actionability

Highly concrete throughout: copy-paste greps (`grep -rn 'tx.origin' src/`), slither commands, full Foundry test templates, and a remediation contract. Not 5: `slither-check-erc src/Impl.sol --erc ERC1967` for selector collisions is dubious tool usage, and the BRE alternation in `grep -v 'internal\|private\|public\|external'` is fragile across grep variants.

4 / 5

Workflow Clarity

A clearly sequenced 7-step audit process (find state-changers → interrogate each → audit modifiers → grep anti-patterns → initializer/proxy checks → role hierarchy) with a severity-calibration decision table. Not 5: the PoC template section is presented as reference material rather than wired in as an explicit "confirm each candidate with a PoC before reporting" checkpoint, so the validation loop is implicit.

4 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/), yet the body cites "adjacent (sig-replay/SKILL.md)" — a dangling pointer to a nonexistent file. At ~195 lines, the known-exemplar list and four PoC templates are content that could live in references/ files; sections are well-organized but inlined bulk keeps this at the 'could be better organized' anchor rather than 4.

3 / 5

Total

15

/

20

Passed

Description

70%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A terse, highly domain-specific bug-pattern enumeration that would trigger reliably for smart-contract access-control work but reads as a fragment list rather than a capability statement. Its main weakness is the missing 'Use when...' trigger clause and the absence of any action verb, leaving both 'what it does' implicit and 'when to use it' unstated.

Suggestions

Lead with a verb-led capability statement, e.g. "Audit smart-contract access control: find missing modifiers, wrong msg.sender checks...", so the 'what' is explicit rather than implied by a noun-phrase list.

Append an explicit trigger clause such as "Use when auditing Solidity contracts for unauthorized calls, unprotected admin functions, or privilege-escalation bugs." to lift completeness above the cap of 3.

Include the umbrella phrase "access control" and synonyms like "privilege escalation" / "unauthorized" in the description itself, not only in metadata.when_to_use.

DimensionReasoningScore

Specificity

The description enumerates several concrete, domain-specific bug patterns ("wrong msg.sender checks", "default-public functions", "missing onlyOwner / onlyRole / onlyDAO authorization"), matching the 'several specific actions; minor gaps' anchor. It falls short of 5 because it is a noun-phrase list with no action verb (find/audit/detect) stating what the skill actually does, and above 3 because the coverage goes beyond 1-2 items.

4 / 5

Completeness

The 'what' is specific but only implicit — the description lists bug patterns without a verb saying the skill finds/audits them — and the 'when' is entirely absent from the description field, which caps completeness at 3 per the judging guidelines. It is not 2 because the 'what' is concrete and multi-part rather than vague.

3 / 5

Trigger Term Quality

Strong natural keywords for this domain — "onlyOwner", "onlyRole", "msg.sender", "missing modifiers" are phrases an auditor would actually say. Not 5: the umbrella phrase "access control" itself never appears in the description (only in the name/metadata), and common synonyms like "privilege escalation" or "unauthorized" are missing.

4 / 5

Distinctiveness Conflict Risk

"msg.sender", "onlyDAO", "onlyRole" are unambiguously Solidity-specific terms, giving the skill a clear niche with minimal conflict risk against non-smart-contract skills.

5 / 5

Total

16

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

metadata_field

'metadata' should map string keys to string values

Warning

Total

14

/

16

Passed

Repository

PurpleAILAB/Decepticon

Path

packages/decepticon/decepticon/skills/standard/contracts/access-control/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.