Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Agent guidance

## Required core context

Before any design, implementation, review, or delegation, read every document in `docs/mods/official/` using the local
files, not web summaries or memory. These are the core Claude Code Mods documents required for all repository work.
Within the same session, later tasks may consult the relevant sections instead of rereading unchanged copies. Every
delegation brief must name this directory and require the receiving agent to read it before work. Use the installed
build's declarations to resolve version-specific differences.

## This is a public repository and a public plugin

relay-plugin-cc is open source, and anyone can install the plugin. Everything you write here is published: code,
Expand Down
21 changes: 21 additions & 0 deletions docs/mods/official/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Official Claude Code Mods documentation

These are unmodified Markdown copies of Anthropic's official Claude Code Mods documentation, downloaded on
24 October 2026. They are kept here as a local reference for relay's Mods development. Anthropic owns the
source documentation.

The canonical documentation index is <https://code.claude.com/docs/llms.txt>. The online pages and their native
Markdown versions are the authoritative sources; the declarations generated for the installed Claude Code build
take precedence when they differ, as described in the creation guide.

| Local copy | Canonical Markdown source |
|---|---|
| [Mods overview](overview.md) | <https://code.claude.com/docs/en/plugins/mods/overview.md> |
| [Create a mod](create.md) | <https://code.claude.com/docs/en/plugins/mods/create.md> |
| [Use the mods API](api.md) | <https://code.claude.com/docs/en/plugins/mods/api.md> |
| [React to events](events.md) | <https://code.claude.com/docs/en/plugins/mods/events.md> |
| [Draw in the interface](interface.md) | <https://code.claude.com/docs/en/plugins/mods/interface.md> |
| [Mods API reference](reference.md) | <https://code.claude.com/docs/en/plugins/mods/reference.md> |
| [Test a mod](test.md) | <https://code.claude.com/docs/en/plugins/mods/test.md> |
| [Troubleshoot mods](troubleshoot.md) | <https://code.claude.com/docs/en/plugins/mods/troubleshoot.md> |
| [Sample mods gallery](gallery.md) | <https://code.claude.com/docs/en/plugins/mods/gallery.md> |
416 changes: 416 additions & 0 deletions docs/mods/official/api.md

Large diffs are not rendered by default.

366 changes: 366 additions & 0 deletions docs/mods/official/create.md

Large diffs are not rendered by default.

393 changes: 393 additions & 0 deletions docs/mods/official/events.md

Large diffs are not rendered by default.

399 changes: 399 additions & 0 deletions docs/mods/official/gallery.md

Large diffs are not rendered by default.

880 changes: 880 additions & 0 deletions docs/mods/official/interface.md

Large diffs are not rendered by default.

254 changes: 254 additions & 0 deletions docs/mods/official/overview.md

Large diffs are not rendered by default.

408 changes: 408 additions & 0 deletions docs/mods/official/reference.md

Large diffs are not rendered by default.

412 changes: 412 additions & 0 deletions docs/mods/official/test.md

Large diffs are not rendered by default.

333 changes: 333 additions & 0 deletions docs/mods/official/troubleshoot.md

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions tests/skills-text.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,19 @@ test("AGENTS.md rule prose cannot enter the public content corpus", () => {
assert.deepEqual(publicTextViolations(entries), ["docs/guide.md"]);
});

const orgGuidanceText = /\b(?:libar-infra|Greptile|CodeRabbit|model roster|do not use Fable|never use Fable)\b/i;

test("built-in skills stay free of organisation-specific model and review policies", () => {
const skillFiles = filesBelow(path.join(plugin, "skills")).filter(file => file.endsWith(".md"));
assert.ok(skillFiles.length > 0);
for (const file of skillFiles) {
assert.doesNotMatch(fs.readFileSync(file, "utf8"), orgGuidanceText, path.relative(plugin, file));
}
for (const text of ["model roster: Astra high", "follow libar-infra", "ask Greptile", "do not use Fable"]) {
assert.ok(orgGuidanceText.test(text), text);
}
});

test("load guard documentation describes holds and the explicit off switch", () => {
for (const file of ["README.md", "docs/guide.md", "plugins/relay/skills/jobs/internals.md", "plugins/relay/commands/setup.md"]) {
const source = fs.readFileSync(new URL(`../${file}`, import.meta.url), "utf8");
Expand Down
Loading