<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/one-rules-folder-for-all-your-coding-agents-76uc7ueqn" -->

---
title: One Rules Folder for All Your Coding Agents | daily.dev
description: One markdown folder, `.agents`, can serve as the single source of truth for rules shared across Cursor, Claude Code, Codex, Kiro, ZCode, and Antigravity....
canonical: https://daily.dev/posts/one-rules-folder-for-all-your-coding-agents-76uc7ueqn
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: One Rules Folder for All Your Coding Agents | daily.dev
og:description: One markdown folder, `.agents`, can serve as the single source of truth for rules shared across Cursor, Claude Code, Codex, Kiro, ZCode, and Antigravity....
og:url: https://daily.dev/posts/one-rules-folder-for-all-your-coding-agents-76uc7ueqn
og:image: https://api.daily.dev/og/posts/76Uc7uEqn.png
og:image:alt: One Rules Folder for All Your Coding Agents
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# One Rules Folder for All Your Coding Agents

**[Pragmatic Pineapple](https://daily.dev/sources/pragmaticpineapple)** · [@nikolalsvk](https://daily.dev/nikolalsvk) · 15 min read · 2 upvotes · 0 comments

## Summary

One markdown folder, `.agents`, can serve as the single source of truth for rules shared across Cursor, Claude Code, Codex, Kiro, ZCode, and Antigravity. Cursor and Claude Code read the same file via a symlink, but filenames must match each tool's expectations: `.mdc` for Cursor, `.md` for Claude. Kiro cannot follow symlinks in `.kiro/steering` due to an open bug (kirodotdev/Kiro#2921), so that folder needs a real copy. Frontmatter keys like `alwaysApply`, `paths`, `trigger`, and `inclusion` differ per tool but can coexist in one block. The GitHub Copilot desktop app did not load `AGENTS.md` in the author's test, while the Copilot CLI does read it.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://pragmaticpineapple.com/one-agent-rules-folder>

## Questions this post answers

### How do I share the same rules file between Cursor and Claude Code without duplicating it?

Keep the rule's markdown in one folder, such as .agents/rules, and create symlinks with the filename each tool expects: a .mdc symlink for Cursor and a .md symlink for Claude Code, both pointing at the same source file. Cursor refuses to load a plain .md in .cursor/rules, and Claude Code refuses to load a file named .mdc, so only the link name needs to differ.

_daily.dev surfaces practical fixes like this for developers juggling rules across multiple coding agents._

### Why isn't Claude Code loading my always-on rule when it's just a symlink with no paths key?

A symlinked rule file with no paths key does not get loaded by Claude Code as an always-on rule; it gets skipped entirely. The fix is to import the file directly from CLAUDE.md using a reference like 'See @./.agents/rules/your-rule.md' with the leading ./ required, since a bare @.agents/... reference is left as unexpanded text.

_developers debugging agent config quirks can track fixes like this on daily.dev._

### Why won't Kiro load my steering file when it's a symlink pointing to another rule file?

Kiro's steering loader has a bug where it does not follow symlinks placed in .kiro/steering, nor does it expand the #[[file:...]] inline reference syntax its own docs describe; both are silently skipped. Until the issue (tracked as kirodotdev/Kiro#2921) is fixed, the workaround is to keep a real, duplicated copy of the rule body directly in .kiro/steering.

_teams standardizing agent rules across tools can watch for issue fixes like this via daily.dev._

## Similar posts on daily.dev

- [Claude Skills vs Cursor Rules vs Copilot \(2026\)](https://daily.dev/posts/claude-skills-vs-cursor-rules-vs-copilot-2026--okunjphk6) · Alex CloudStar · 0 upvotes · 0 comments
- [How to Manage Context Files in Your Codebase and Get Better Output From AI Coding Agents](https://daily.dev/posts/how-to-manage-context-files-in-your-codebase-and-get-better-output-from-ai-coding-agents-jmjpmaeus) · freeCodeCamp · 2 upvotes · 1 comments
- [AI Code Completion Customization: Stack-Specific Configuration](https://daily.dev/posts/ai-code-completion-customization-stack-specific-configuration-kymews994) · SitePoint · 0 upvotes · 1 comments

---

Tags: [#ai-agents](https://daily.dev/tags/ai-agents), [#claude-code](https://daily.dev/tags/claude-code), [#kiro](https://daily.dev/tags/kiro)

[View this post on daily.dev](https://daily.dev/posts/one-rules-folder-for-all-your-coding-agents-76uc7ueqn)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"One Rules Folder for All Your Coding Agents","url":"https://daily.dev/posts/one-rules-folder-for-all-your-coding-agents-76uc7ueqn","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/one-rules-folder-for-all-your-coding-agents-76uc7ueqn"},"datePublished":"2026-10-25T09:43:00.002Z","dateModified":"2026-10-26T06:00:15.053Z","description":"One markdown folder, `.agents`, can serve as the single source of truth for rules shared across Cursor, Claude Code, Codex, Kiro, ZCode, and Antigravity....","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/52fad15d9aa4d68681b2b2b84935ddf2?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/52fad15d9aa4d68681b2b2b84935ddf2?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Pragmatic Pineapple","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Person","name":"Nikola Đuza","url":"https://daily.dev/nikolalsvk","image":"https://lh3.googleusercontent.com/a-/AOh14Gghsm_GS0pjA11tIS3xv6TJvmw2TfsMY41a7f2_52o=s100","interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":210}},"commentCount":0,"discussionUrl":"https://daily.dev/posts/one-rules-folder-for-all-your-coding-agents-76uc7ueqn","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"ai-agents,claude-code,kiro","timeRequired":"PT15M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Pragmatic Pineapple","item":"https://daily.dev/sources/pragmaticpineapple"},{"@type":"ListItem","position":3,"name":"One Rules Folder for All Your Coding Agents"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/one-rules-folder-for-all-your-coding-agents-76uc7ueqn#faq","mainEntity":[{"@type":"Question","name":"How do I share the same rules file between Cursor and Claude Code without duplicating it?","acceptedAnswer":{"@type":"Answer","text":"Keep the rule's markdown in one folder, such as .agents/rules, and create symlinks with the filename each tool expects: a .mdc symlink for Cursor and a .md symlink for Claude Code, both pointing at the same source file. Cursor refuses to load a plain .md in .cursor/rules, and Claude Code refuses to load a file named .mdc, so only the link name needs to differ. daily.dev surfaces practical fixes like this for developers juggling rules across multiple coding agents."}},{"@type":"Question","name":"Why isn't Claude Code loading my always-on rule when it's just a symlink with no paths key?","acceptedAnswer":{"@type":"Answer","text":"A symlinked rule file with no paths key does not get loaded by Claude Code as an always-on rule; it gets skipped entirely. The fix is to import the file directly from CLAUDE.md using a reference like 'See @./.agents/rules/your-rule.md' with the leading ./ required, since a bare @.agents/... reference is left as unexpanded text. developers debugging agent config quirks can track fixes like this on daily.dev."}},{"@type":"Question","name":"Why won't Kiro load my steering file when it's a symlink pointing to another rule file?","acceptedAnswer":{"@type":"Answer","text":"Kiro's steering loader has a bug where it does not follow symlinks placed in .kiro/steering, nor does it expand the #[[file:...]] inline reference syntax its own docs describe; both are silently skipped. Until the issue (tracked as kirodotdev/Kiro#2921) is fixed, the workaround is to keep a real, duplicated copy of the rule body directly in .kiro/steering. teams standardizing agent rules across tools can watch for issue fixes like this via daily.dev."}}]}
```

