arcane
AGENTS.md8.1k starsChanged 29 days agoBSD-3-ClauseView on GitHub
Arcane is a Docker management platform with a Go backend, SvelteKit frontend, headless agent modes, and a Cobra CLI. Follow AI_POLICY.md, including its maintainer exemption. Outside contributors must disclose AI assistance and meet the policy's development and human verification requirements. New functionality belongs in the domain that owns it. Keep each file focused on one clear responsibility. Do not create god files in services, components, or CLI commands. Use the standard domain file set and move substantial child features into…
We split this AGENTS.md into the rules it gives an agent
37 rules. About 0 are common, 18 are distinctive, and 19 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈18
Distinctive · estimate
This author's own choices. Worth a look.
19
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 7
Follow AI_POLICY.md, including its maintainer exemption.
- Distinctive: line 9
Never run state-changing Git commands.
- Distinctive: line 11
Search the owning domain and existing helpers before adding functions, services, API clients, components, or utilities.
- Distinctive: line 12
Do not add stubs, compatibility shims, pass-through wrappers, or duplicate implementations.
- Distinctive: line 13
Add tests only for new functionality.
- Distinctive: line 14
Never add handler tests. Test new business behavior at the service layer or in its owning logic package.
- Very specific: line 15
After every change, including documentation changes, run just format all, then just lint all.
- Very specific: line 22
Use the standard domain file set and move substantial child features into children/<feature>/.
- Distinctive: line 24
Keep comments short. If the structure needs a paragraph to explain it, simplify the code.
- Very specific: line 26
Avoid nested or chained ternary expressions unless absolutely necessary.
- Distinctive: line 30
Use default Go import names.
- Very specific: line 31
Put public and shared Go contracts in the top-level types/ module.
- Very specific: line 32
Put reusable helper utilities in the appropriate package under backend/pkg/utils/.
- Very specific: line 68
Use these files under backend/internal/<domain>/:
- Distinctive: line 76
Create a file only when it has a real responsibility.
- Very specific: line 80
Place substantial features under <domain>/children/<feature>/ and use the same standard file set.
- Distinctive: line 82
Only a child package's immediate parent may import it.
- Very specific: line 86
Do not expose child types through parent API signatures or inject child instances into outside packages.
- Very specific: line 98
Use helpers_nonunix.go for a !unix implementation.
- Distinctive: line 107
Never create a production file just to justify a test filename.
- Very specific: line 122
Keep startup order, lifecycle hooks, database migration wiring, and router assembly in internal/bootstrap.
- Very specific: line 128
Use Echo v5 as the router and Huma v2 for typed REST/OpenAPI operations.
- Distinctive: line 149
Before adding backend logic, search the owning domain and the relevant shared packages:
- Very specific: line 159
Use database.BaseModel and existing database helpers where appropriate.
- Very specific: line 161
Keep persistence models separate from the public API contracts in types/.
- Distinctive: line 179
Update existing commands and reuse the CLI client, configuration, and output code.
- Distinctive: line 181
Keep commands focused on input, API calls, and output.
- Very specific: line 207
Use Svelte 5 runes: $props, $state, $derived, and $effect.
- Very specific: line 208
Do not use export let, $:, on:event, $$props, $$restProps, or legacy slots.
- Very specific: line 210
Use precise TypeScript types.
- Distinctive: line 226
Put every rendered string behind Paraglide messages.
- Very specific: line 228
Add new keys only to en.json.
- Distinctive: line 244
Keep the permission catalog, access-surface registry, and frontend navigation gates as separate layers.
- Distinctive: line 264
Run the narrowest relevant existing coverage for the changed behavior, then choose the appropriate repository test target:
- Very specific: line 272
Use just test e2e for browser coverage when the required environment is available.
- Distinctive: line 274
Do not start a development stack implicitly to satisfy a test target.
- Distinctive: line 278
After every change, including documentation changes, run these commands in order:
≈ “Common” is an estimate: at least 1 in 5 of the 36,368 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Arcane agent guide
Arcane is a Docker management platform with a Go backend, SvelteKit frontend, headless agent modes, and a Cobra CLI.
Rules that apply to every change
Follow AI_POLICY.md, including its maintainer exemption. Outside contributors must disclose AI assistance and meet the policy's development and human verification requirements.
- Never run state-changing Git commands. Do not stage, commit, push, tag, stash, create branches, or create worktrees.
- For maintainer work, do not start, restart, or rebuild the development stack unless the user explicitly asks.
- Search the owning domain and existing helpers before adding functions, services, API clients, components, or utilities. Update existing logic and its callers directly.
- Do not add stubs, compatibility shims, pass-through wrappers, or duplicate implementations. Call existing helpers directly.
- Add tests only for new functionality. For bug fixes and refactors, update existing tests when needed and run relevant existing coverage. Do not add regression tests.
- Never add handler tests. Test new business behavior at the service layer or in its owning logic package. Preserve existing handler tests.
- After every change, including documentation changes, run
just format all, thenjust lint all. Fix every issue and keep the formatter's output. - Report what you verified and any blockers. Never claim manual verification that did not happen.
Keep changes focused
New functionality belongs in the domain that owns it. Keep each file focused on one clear responsibility. Do not create god files in services, components, or CLI commands.
Use the standard domain file set and move substantial child features into children/<feature>/. Split code by responsibility rather than a fixed line count. Avoid trivial packages, unnecessary abstractions, and unrelated restructuring.
Keep comments short. If the structure needs a paragraph to explain it, simplify the code.
Avoid nested or chained ternary expressions unless absolutely necessary. Prefer if/else or switch for conditional logic with multiple branches.
Go imports and shared code
- Use default Go import names. Add an alias only to resolve an actual naming conflict.
- Put public and shared Go contracts in the top-level
types/module. Keep persistence models in their owning domain. - Put reusable helper utilities in the appropriate package under
backend/pkg/utils/.
Repository layout
The Go workspace contains three modules:
backend/ Go application, HTTP API, domain logic, jobs, and embedded frontend
cli/ Cobra CLI and its API client
types/ Public domain and API contracts shared by backend and CLIThe frontend lives in frontend/. End-to-end tests live in tests/.
Backend
The backend is organized by domain. Each domain owns its behavior and routes.
backend/
├── cmd/ process entrypoint
├── api/ API assembly and exceptional HTTP/stream/WebSocket routes
├── internal/
│ ├── <domain>/ module, routes, business logic, and persistence models
│ ├── bootstrap/ application lifecycle, router, jobs, and startup wiring
│ ├── di/ Fx dependency graph and providers
│ ├── config/ environment configuration
│ ├── database/ database setup and shared persistence primitives
│ └── middleware/ authentication, authorization, and environment proxying
├── pkg/ reusable engines, infrastructure, and helpers
├── resources/ migrations, email templates, and runtime assets
└── frontend/ embedded frontend buildDomain files
Use these files under backend/internal/<domain>/:
module.go: composition and route registrationservice.go: business operations and orchestrationmodel.go: persistence modelshandler.go: HTTP input and outputhelpers.go: package-local helpers with a clear purpose
Create a file only when it has a real responsibility. Do not add placeholders.
Child features and import boundaries
Place substantial features under <domain>/children/<feature>/ and use the same standard file set. The children/ directory itself must contain no Go files.
Only a child package's immediate parent may import it. Siblings, higher-level ancestors, other domains, DI, bootstrap, and API assembly must use the parent's API. Apply this boundary recursively.
Children must not import their parent. The parent coordinates interactions between children and keeps child instances private. Image patching belongs under image/children/patch. System recovery backups belong under system/children/backup, with snapshots and system-managed volumes beneath that feature.
Do not expose child types through parent API signatures or inject child instances into outside packages. Keep shared persistence models in the parent's model.go and shared contracts in the top-level types/ module.
Filenames and test pairing
Production filenames must be single words without underscores. Build-tagged files may append their tag:
service_playwright.go
service_buildables.go
helpers_unix.goUse helpers_nonunix.go for a !unix implementation.
Tests belong beside the production file they cover. Use the exact production basename followed by _test.go:
service.go → service_test.go
service_playwright.go → service_playwright_test.goNever create a production file just to justify a test filename.
These layout rules apply to business domains and their children. The filename policy excludes:
- Infrastructure packages:
bootstrap,common,config,database, anddi backend/pkg- CLI packages
- Shared types
Middleware uses descriptive, single-word production filenames such as cors.go, csrf.go, and environment.go, with the same exact test-file pairing.
Wiring and API assembly
Wire dependencies in internal/di.
Keep startup order, lifecycle hooks, database migration wiring, and router assembly in internal/bootstrap.
The remaining api/ code handles API assembly, diagnostics, streams, WebSockets, and webhook dispatch. Ordinary REST endpoints belong in their domains. Do not expand api/handlers into a central handler layer or recreate a global internal/services or models package.
HTTP and business logic
Use Echo v5 as the router and Huma v2 for typed REST/OpenAPI operations. Register permissioned endpoints with middleware.RegisterWithPermission.
Direct Echo routes are reserved for:
- WebSockets and streams
- Diagnostics and webhooks
- Playwright support
- The environment proxy
- Embedded frontend delivery
Handlers translate typed HTTP data and call services. They must not contain business logic. Services receive dependencies through constructors/Fx.
Use:
slogfor structured logging- Standard
errorsandfmt.Errorf("…: %w")for error handling and wrapping internal/common.Classifyfor semantic errorstypes/base.FieldErrorfor validation fields
Existing helpers
Before adding backend logic, search the owning domain and the relevant shared packages:
go.getarcane.app/docker(Kit): Docker names, labels, clients, logs, and stream helpersbackend/pkg/projects: Compose parsing, discovery, and image referencesbackend/pkg/pagination: in-memory and database paginationbackend/pkg/libarcane: reusable Arcane engines and transport behaviorbackend/pkg/utils: shared infrastructure utilities
Persistence
Use database.BaseModel and existing database helpers where appropriate. Reuse GORM relationships and Preload.
Keep persistence models separate from the public API contracts in types/.
CLI and shared types
cli/
├── main.go CLI entrypoint
├── pkg/ Cobra root and domain command packages
└── internal/
├── client/ shared API client
├── config/ CLI configuration
├── cmdutil/ command support
├── output/ output rendering
└── ... prompts, runtime state, and other internal support
types/ shared domain and API contracts, grouped by domainUpdate existing commands and reuse the CLI client, configuration, and output code.
Keep commands focused on input, API calls, and output. Backend business behavior belongs in its owning backend domain.
Shared contracts in types/ must remain independent of backend persistence and application wiring.
Frontend
The frontend uses SvelteKit v3 and Svelte 5. Configuration lives in frontend/vite.config.ts.
frontend/src/
├── routes/ SvelteKit pages and layouts
└── lib/
├── components/ shared UI components
├── config/ navigation and access-surface configuration
├── hooks/ reusable reactive behavior
├── layouts/ shared layout components
├── query/ shared query keys
├── paraglide/ generated message code
├── services/ API clients extending BaseAPIService
├── stores/ rune-based application state
├── types/ frontend-only TypeScript types
└── utils/ frontend utilitiesComponents and state
- Use Svelte 5 runes:
$props,$state,$derived, and$effect. - Do not use
export let,$:,on:event,$$props,$$restProps, or legacy slots. - Extend
BaseAPIServiceand reuse existing services and query/mutation patterns. - Use precise TypeScript types. Do not introduce
any. - Reuse shared components before creating page-local variants.
Error handling
Component error paths must do more than call console.error:
- For one-shot actions, use
handleApiResultWithCallbacks. - Where a
Resultdoes not fit, such as TanStackonError, usetoast.error(headline, { description: extractApiErrorMessage(err) }). - For streams and polling feeds, show an inline unavailable state where the data renders.
- For page loads, rethrow through
throwPageLoadError.
A thrown APIError.message already contains the server's message. Surface that message rather than showing only a canned string.
Translations
- Put every rendered string behind Paraglide messages.
- Reuse a matching key from
frontend/messages/en.jsonbefore adding one. - Add new keys only to
en.json. Crowdin manages every other locale. - Generate Paraglide output through the existing tooling. Do not edit generated files by hand.
Environments and authorization
Environment-scoped behavior
- Environment ID
"0"is the local Docker environment. - Environment-scoped API paths use
/environments/{id}/.... - Await
environmentStore.readyorgetCurrentEnvironmentId()before making requests. - Redirect environment-specific detail pages when the selected environment changes.
Permissions
Backend permission middleware is authoritative. Frontend gates are for user experience only.
Keep the permission catalog, access-surface registry, and frontend navigation gates as separate layers.
Determine global admin status through PermissionSet.IsGlobalAdmin() or the user DTO's isGlobalAdmin. Never infer it from a role ID.
Runtime modes and jobs
- Manager mode serves the UI and manages environments.
- Direct agent mode uses
AGENT_MODE=trueand accepts manager connections. - Edge agent mode uses
EDGE_AGENT=truewithMANAGER_API_URLand dials the manager.
Background jobs implement the scheduler job contract. Wire them through internal/di and register them in internal/bootstrap/jobs_bootstrap.go.
Multi-step, fan-out, or resumable jobs use backend/pkg/scheduler/flow: Francis workflows that run inside coordinator runs. Follow the migration recipe in its package doc. Steps are idempotent service methods, the last step returns scheduler.Outcome, the job registers a flow.Job, and flowtest.AssertDefinitions guards version bumps. Keep single-operation jobs as ordinary jobs.
Validation
Tests
Adding tests and running tests are separate decisions. The new-functionality-only rule does not remove the need to verify changes.
Run the narrowest relevant existing coverage for the changed behavior, then choose the appropriate repository test target:
just test backend
just test cli
just test typesUse just test e2e for browser coverage when the required environment is available. just test all includes E2E tests and requires their prerequisites.
Do not start a development stack implicitly to satisfy a test target. Documentation-only changes do not require adding tests.
Required checks
After every change, including documentation changes, run these commands in order:
just format all
just lint allFix every reported issue and retain the formatter's output.
Report what ran, what passed, and anything you could not verify. Outside contributions must also meet the development and human testing requirements in AI_POLICY.md before submission.
Trending
Surging: 1 new project took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about getarcaneapp/arcane
- @ponceto91.bsky.social“Arcane est un projet open-source sous licence BSD 3-Clause, permettant de gérer depuis une interface web …”Bluesky · Jul 31, 2026 · 20 likes
- @golangch.bsky.social“A beautiful, intuitive interface for managing your Docker containers, images, networks, and volumes. No …”Bluesky · Dec 21, 2025 · 5 likes
- @camilleroux.com“Arcane : une interface web self-hosted pour gérer Docker, conteneurs, images, volumes, sans passer par la …”Bluesky · Jul 20, 2026 · 3 likes
- @matsuu.bsky.social“モダンを謳うdocker管理GUI。ブラウザベースで操作。Go実装”Bluesky · Oct 12, 2026 · 2 likes
- @lcheylus.bsky.social“Arcane: an open-source WebApp for modern Docker management - A beautiful, intuitive interface for managing …”Bluesky · Jul 15, 2026 · 2 likes
The biggest 5 of 58 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 58
Talked about on GitHub and Bluesky (58 times).
On GitHub · 50
- Oct 26, 2026fix: refactor updater to have safer and more consistent upgrades — ACRT-EVAL/arcane-307-cr51 reaction
- Jul 16, 2026refactor: use the jsonv2 package — getarcaneapp/streams1 reaction · 1 comment
- Jul 11, 2026fix: force Docker Engine builds to use BuildKit — getarcaneapp/builds1 reaction · 1 comment
- Mar 27, 2026feat(arcane): adding default Arcane credential — ihebski/DefaultCreds-cheat-sheet1 reaction · 1 comment
- Oct 27, 2026chore(deps): update arcane to v2.17.1 — skriptfabrik/docker-images0 reactions
45 more on GitHub
- Oct 26, 2026fix: refactor updater to have safer and more consistent upgrades — ACRT-EVAL/arcane-307-cr90 reactions
- Oct 26, 2026Update Arcane to 2.17.1 — ShobuPrime/home-assistant-apps0 reactions · 1 comment
- Oct 26, 2026fix: refactor updater to have safer and more consistent upgrades — ACRT-EVAL/arcane-307-cr110 reactions
- Oct 26, 2026chore(deps): update ghcr.io/getarcaneapp/manager docker tag to v2.17.1 — EckPhi/mistborn-store0 reactions
- Oct 26, 2026Security triage review: 2026-10-26 (part 12/13) — flatcar/security-triage0 reactions · 1 comment
- Oct 26, 2026chore(deps): update ghcr.io/getarcaneapp/arcane docker tag to v2.17.1 — D-A-W-N/homeserver0 reactions
- Oct 25, 2026chore(deps): update ghcr.io/getarcaneapp/manager docker tag to v2.17.1 — sebdanielsson/infra0 reactions
- Oct 25, 2026Update ghcr.io/getarcaneapp/manager Docker tag to v2.17.1 — Vidariondr/nixos-server0 reactions
- Oct 25, 2026arcane-cli 2.17.1 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 25, 2026chore(deps): update arcane to v2.17.1 — uniget-org/tools0 reactions · 2 comments
- Oct 25, 2026fix: refactor updater to have safer and more consistent upgrades — ACRT-EVAL/arcane-307-cr70 reactions · 1 comment
- Oct 25, 2026fix: refactor updater to have safer and more consistent upgrades — ACRT-EVAL/arcane-307-cr100 reactions · 2 comments
- Oct 25, 2026fix: refactor updater to have safer and more consistent upgrades — ACRT-EVAL/arcane-307-cr10 reactions · 1 comment
- Oct 25, 2026fix(container): update image ghcr.io/getarcaneapp/manager ( v2.17.0 → v2.17.1 ) — tyriis/home-ops0 reactions · 6 comments
- Oct 25, 2026fix(container): update image ghcr.io/getarcaneapp/agent ( v2.17.0 → v2.17.1 ) — tyriis/home-ops0 reactions · 6 comments
- Oct 25, 2026chore(deps): update ghcr.io/getarcaneapp/manager docker tag to v2.17.1 — yxtay/docker-stacks0 reactions · 4 comments
- Oct 25, 2026Update ghcr.io/getarcaneapp/manager Docker tag to v2.17.1 — jnstockley/infrastructure0 reactions
- Oct 25, 2026Update ghcr.io/getarcaneapp/agent Docker tag to v2.17.1 — jnstockley/infrastructure0 reactions
- Oct 25, 2026fix(container): update image ghcr.io/getarcaneapp/manager (v2.17.0 ➔ v2.17.1) — dreadster3/home-ops0 reactions
- Oct 25, 2026Update ghcr.io/getarcaneapp/arcane Docker tag to v2.17.1 — DavBax/docker-compose0 reactions · 1 comment
- Oct 25, 2026Update ghcr.io/getarcaneapp/arcane Docker tag to v2.17.1 — danything/genkan0 reactions
- Oct 23, 2026chore(deps): update arcane to v2.17.1 — ilkersigirci/homeserver-docker0 reactions
- Oct 22, 2026Security triage review: 2026-10-22 (part 12/13) — flatcar/security-triage0 reactions · 1 comment
- Oct 21, 2026arcane-cli 2.17.0 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 21, 2026chore(docker-compose): bump the docker-compose group across 3 directories with 3 updates — yxtay/docker-stacks0 reactions · 5 comments
- Oct 16, 2026x/vulndb: potential Go vuln in github.com/getarcaneapp/arcane/backend/v2: GHSA-pw5q-rjx4-7f7p — golang/vulndb0 reactions · 1 comment
- Oct 16, 2026x/vulndb: potential Go vuln in github.com/getarcaneapp/arcane/backend/v2: GHSA-mp22-58ff-6fhr — golang/vulndb0 reactions · 1 comment
- Oct 15, 2026arcane-cli 2.16.1 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 13, 2026arcane-cli 2.16.0 — Homebrew/homebrew-core0 reactions · 2 comments
- Oct 11, 2026Lane: Arcane — Docker management UI — rrahul0904/agent-work-os0 reactions
- Oct 7, 2026chore(deps): bump the arcane group across 1 directory with 2 updates — skriptfabrik/docker-images0 reactions
- Oct 7, 2026arcane-cli 2.15.1 — Homebrew/homebrew-core0 reactions · 1 comment
- Oct 6, 2026chore(deps): bump the arcane group across 1 directory with 2 updates — skriptfabrik/docker-images0 reactions
- Oct 6, 2026container: Arcane — ajnart/dcm0 reactions
- Oct 5, 2026deps(deps): bump getarcaneapp/manager from v2.8.0 to v2.15.0 in the patch-minor group — INAPP-Mobile/railway-arcane0 reactions · 1 comment
- Sep 28, 2026chore(deps): bump the arcane group across 1 directory with 2 updates — skriptfabrik/docker-images0 reactions
- Sep 28, 2026Update to Arcane 2.14.0 — timblazing/hassio-arcane-edge-agent0 reactions
- Sep 22, 2026chore(deps): bump the arcane group across 1 directory with 2 updates — skriptfabrik/docker-images0 reactions
- Sep 21, 2026Update to Arcane 2.13.0 — timblazing/hassio-arcane-edge-agent0 reactions
- Sep 21, 2026chore(deps): bump the arcane group across 1 directory with 2 updates — skriptfabrik/docker-images0 reactions
- Sep 16, 2026chore(deps): bump the arcane group across 1 directory with 2 updates — skriptfabrik/docker-images0 reactions
- Sep 15, 2026🟡 [Security] arcane Quadlet default pinned to v2.10.2 — one minor version behind current (v2.11.1) — danmwallace/ansible-collection-podman0 reactions · 67 comments
- Sep 14, 2026chore(deps): bump the arcane group across 1 directory with 2 updates — skriptfabrik/docker-images0 reactions
- Sep 7, 2026chore(deps): bump the arcane group across 1 directory with 2 updates — skriptfabrik/docker-images0 reactions
- Sep 2, 2026chore(deps): bump the arcane group across 1 directory with 2 updates — skriptfabrik/docker-images0 reactions
On Bluesky · 8
- Jul 31, 2026Arcane est un projet open-source sous licence BSD 3-Clause, permettant de gérer depuis une interface web les conteneurs, images, volumes,… — @ponceto91.bsky.social20 likes and reposts · 1 reply
- Dec 21, 2025A beautiful, intuitive interface for managing your Docker containers, images, networks, and volumes. No terminal required #golang backend… — @golangch.bsky.social5 likes and reposts
- Jul 20, 2026Arcane : une interface web self-hosted pour gérer Docker, conteneurs, images, volumes, sans passer par la ligne de commande. ⬇️… — @camilleroux.com3 likes and reposts · 2 replies
- Oct 12, 2026モダンを謳うdocker管理GUI。ブラウザベースで操作。Go実装 — @matsuu.bsky.social2 likes and reposts
- Jul 15, 2026Arcane: an open-source WebApp for modern Docker management - A beautiful, intuitive interface for managing your Docker containers, images,… — @lcheylus.bsky.social2 likes and reposts
3 more on Bluesky
- Oct 18, 2026Oh on that note @scottspence.dev - you might enjoy github.com/getarcaneapp... ICYMI We now use that at work for the backend team (frontend… — @fubits.dev1 likes and repost
- Oct 9, 2026looks like maybe arcane might be good and fit my requirements? maybe i should try it out ,, github.com/getarcaneapp... — @spooky.imi.boo1 likes and repost
- Jan 25, 2026github.com/getarcaneapp/arcane GitHub - getarcaneapp/arcane: Modern Docker Management, Designed for Everyone — @technews4869.bsky.social1 likes and repost
Other versions1 project uses a version of this.
Word for word · 1
- ofkm/arcane★ 7.9k100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 28,693 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

