ARCA (Asset Resolution for AI Assistants) is a decentralized standard for distributing, versioning, and consuming agentic assets (rules, skills, instructions).
| Actor | Responsibility |
|---|---|
| 🧑💻 Maintainer | Publishes assets to a Source Repository (hosting the arca-manifest.yaml). |
| 👤 Consumer | Developers and tools using assets via .arca-assets.yaml. |
| 📦 Source Repository | A Git-based or local host containing asset files and the manifest. |
| ☁️ Provider | Hosting services (GitHub, Azure DevOps, Local FS). |
| ⚙️ ARCA CLI | The Go binary used to resolve, fetch, and verify assets. |
| 🤖 AI Assistant | The consumer (GitHub Copilot, Claude Code, ChatGPT, Antigravity, Cursor, Manus, etc.) that utilizes the projected assets. |
ARCA operates using three primary data structures: the Manifest, the Configuration, and the Lockfile.
Generated by
arca initorarca publish
Located at the root of an asset source, this file defines what assets are available and their version history.
schema: 1.0
assets:
<asset-id>:
kind: skill | instruction
description: "Brief description taken from the asset Frontmatter"
versions:
<version-string>:
path: "path/to/file.md"
ref: "v1.0.0" # Optional. Git tag/commit.Generated by
arca install
Located in the consumer's project, this file declares which assets the project depends on and where they should be projected.
schema: 1.0
sources:
my-org:
type: git | local
url: "https://github.com/my-org/agent-assets"
path: "~/local-assets" # if type: local
assets:
- id: refactor-logic
kind: instruction | skill
source: my-org
version: "^1.2.0"
projections:
default: ".github/instructions/refactor.md"
cursor: ".cursor/instructions/refactor.md"Generated by ARCA, this ensures that everyone on the project uses the exact same content.
{
"assets": [
{
"id": "refactor-logic",
"version": "1.2.5",
"source": "my-org",
"commit": "abc12345",
"sha256": "df7a8b9c...",
"manifestHash": "...",
"resolvedAt": "2026-02-17T..."
}
]
}flowchart TD
A["📄 .arca-assets.yaml"] -->|"arca sync / install"| B["🔍 Discovery
Fetch arca-manifest.yaml from source"]
B --> C["🔢 Version Matching
Resolve SemVer constraints"]
C --> D["📥 Download
Fetch asset at resolved Git ref/SHA"]
D --> E["🧹 LF-Normalization
Normalize line endings to LF"]
E --> F["🔐 Validation
Compute SHA-256 & compare to lockfile"]
F -->|"✅ Valid"| G["💾 Caching
Store in ~/.arca-cache"]
F -->|"❌ Mismatch"| ERR["🚨 Error
Integrity check failed"]
G --> H["🗂️ Projection
Symlink/copy to tool-specific paths"]
H --> I["📝 Write .arca-assets.lock"]
H --> J["📂 .github/instructions/"]
H --> K["📂 .cursor/rules/"]
H --> L["📂 Other AI tool paths..."]
- 🔍 Discovery: Read
.arca-assets.yamland fetch the latestarca-manifest.yamlfrom its source. - 🔢 Version Matching: Resolve SemVer constraints to a specific version.
- 📥 Download: Fetch the asset content from the source repository at the resolved Git ref/SHA.
- 🧹 LF-Normalization: Normalize all text-based assets to LF (
\n) for platform-independent hashing. - 🔐 Validation: Compute SHA-256 and compare against the lockfile (if present).
- 💾 Caching: Store validated content in the global
~/.arca-cache. - 🗂️ Projection: Create symlinks (or copies) from the cache to the project's tool-specific paths — allowing one asset to be used by multiple AI assistants simultaneously.
The ARCA CLI provides machine-readable output (--json) to allow IDE extensions and other tools to integrate seamlessly.
Previous: Getting Started | Documentation Index | Next: Contribution Guide