Skip to content

Can an agent follow rules it cannot know?

Your team's own conventions are in no model's training: the commit format, the error shape, how migrations are named. Graph-of-Skills puts the right written rule in front of the agent when it needs it. To see how well that works, we invented a company, wrote its three conventions as short skills, and asked a coding agent to do three tasks that depend on them.

Northwind Labs is not a customer. It is an invented company made for this test, so the rules are ones the agent could not have seen anywhere else.

The result

Without Graph-of-Skills

0 of 9

runs passed every check

With Graph-of-Skills connected

9 of 9

runs passed every check

Connected, plus a rules file

9 of 9

runs passed every check

Task What the rule asks for Without Graph-of-SkillsWith Graph-of-Skills connectedConnected, plus a rules file
Write a commit message A header like TYPE(scope): summary [NW-1234], then exactly one Why line and one Risk line. 0 of 33 of 33 of 3
Return an API error One top-level key, exactly four keys inside it, and a code in the form NW-E-AREA-NNN. 0 of 33 of 33 of 3
Add a database migration A named migration file with a paired undo file and three comment lines at the top. 0 of 33 of 33 of 3

Without the service the agent wrote plausible output in the wrong form: a commit header with a ticket number and no type, an error body with two keys instead of four, a migration pair named the wrong way. With it, the agent looked up the company's skill and followed every rule in every run.

How we ran it

  • Three tasks, each run 3 times in each of three setups: 27 runs.
  • Each run starts in a fresh, empty folder. The agent is Claude Code, headless, model claude-opus-5-5.
  • The three skills sit in a new Graph-of-Skills account with nothing else in it. Searching for each task finds the matching skill first when the question names the company.
  • An automatic checker decides each run. There is no judge and no opinion. Each checker fails on an empty folder and passes on a correct answer.
  • The prompt names the company and never states a rule.

What it does not show

  • Each prompt names the company, which tells the agent it needs outside knowledge. The agent looked it up in every run with the service. In everyday work an agent does not always look things up on its own; a short rules file raises how often it does (below).
  • Three tasks, one invented company, one model, one client. We have not tested a real team.
  • Runs with the service took about the same time. The median cost per run was $0.10 without it and $0.14 to $0.16 with it, because the agent makes an extra call and reads the returned skill.
  • Speed: a search takes about 2.6 seconds on a warm service. The first search after a quiet spell took 2 to 9 seconds while the service woke up.
  • A question that does not name the company does not find the company's skill. The agent has to put that cue in its query.

Add the rules file

The third setup adds one short file to the project. Claude Code reads every file in .claude/rules/ at the start of a session, so this tells the agent when to look a skill up. In a separate test of everyday prompts it made the agent call the lookup much more often than the server alone. One line saves it as .claude/rules/graph-of-skills.md (macOS and Linux):

terminal
curl -fsSL --create-dirs https://www.akilima.tech/downloads/graph-of-skills-rules.md -o .claude/rules/graph-of-skills.md

On Windows:

PowerShell
New-Item -ItemType Directory -Force -Path ".claude\rules" | Out-Null
Invoke-WebRequest https://www.akilima.tech/downloads/graph-of-skills-rules.md -OutFile ".claude\rules\graph-of-skills.md"

The file says:

.claude/rules/graph-of-skills.md
# Graph-of-Skills

Graph-of-Skills is connected as an MCP server. Before starting a task that involves a file format
(Word, PowerPoint, Excel, PDF and similar), a named tool, framework or API, or this team's own
conventions (commit format, error shape, migration rules, house style), call `retrieve_skill_bundle`
with one sentence describing the task, then follow a returned skill that matches. Skip the call for
plain code edits, debugging, explanations and questions that need no outside knowledge.

Describe the task as an action and its object, such as "plan a client discovery call and scope the
project", not a topic such as "consultancy conversations". If the results do not fit, retry once or
twice with a narrower sentence before deciding no skill exists, and judge fit from the returned
content. A returned skill needs no installing; use it from the response.

If no skill exists after those retries, offer to write one with `create_skill`, and call it only when
the person says yes. The person must see the draft in the terminal first, and the skill stays pending
until they confirm it in their dashboard.

The Northwind runs above used the first paragraph. The second paragraph, added afterwards, tells the agent how to search: describe the task, not a topic, and read the matched skill before judging it. In a separate test of 8 vague requests, 3 runs each, the agent read the matched skill in 23 of 24 runs with it and 4 of 24 without. How often the agent looked a skill up did not change (44 of 60 task runs against 45 of 60). The third paragraph, added for the create_skill tool, has not been through either test.

The other ways to connect are in the docs.

What we checked about harmful skills

A skill is text your agent reads, so a harmful one could try to steer it. We tested two things.

Planted instructions. We gave agents skills with an instruction planted in them: an extra file to write, a hidden comment, a request to hide something from the user, a download-and-run line to put in a script. Across 168 runs on 2 Claude models, the agent followed the planted instruction in 0 of them, with and without a short notice around the skill text.

The catalogue. We ran two open-source scanners over all 12,021 skills. They flag 42% of them. The flagged skills we read were security guides, penetration-test notes and ordinary setup advice, not attacks, so we do not use the scanners to filter results.

These tests used simple cases, no shell and two models. They do not show the catalogue holds no harmful skill, and your agent's permission prompts remain the main protection. How skills are sourced and what we check.

Try it on your own conventions

Add your team's rules as skills and see whether your agent follows them.

Get my free API key

Uploading your own skills Back to Graph-of-Skills

Free tier: 200 skills, 1,000 retrievals/month. No card required. Connect with two commands.