Skip to main content

AUTHORING_CATALOG_JSON

Constant AUTHORING_CATALOG_JSON 

Source
pub const AUTHORING_CATALOG_JSON: &str = "{\"families\":[{\"id\":\"skill\",\"keys\":[{\"docs\":\"Skill identifier in kebab-case. Must be unique and stable.\",\"key\":\"name\",\"rules\":[\"AS-002\",\"AS-004\",\"AS-005\",\"AS-006\",\"AS-007\",\"AS-017\",\"AS-019\"],\"snippet\":\"name: my-skill\",\"values\":[]},{\"docs\":\"Describe when to use the skill. Include a clear trigger phrase.\",\"key\":\"description\",\"rules\":[\"AS-003\",\"AS-008\",\"AS-010\",\"AS-018\"],\"snippet\":\"description: Use when user wants to ...\",\"values\":[]},{\"docs\":\"Comma-separated tool allowlist. Restrict scope for safety. MCP tools use mcp__ prefix.\",\"key\":\"allowed-tools\",\"rules\":[\"CC-SK-007\",\"CC-SK-008\"],\"snippet\":\"allowed-tools: Read, Grep, Bash(git:*)\",\"values\":[\"Read\",\"Write\",\"Edit\",\"Bash(git:*)\",\"Grep\",\"Glob\",\"Task\",\"WebFetch\",\"WebSearch\",\"AskUserQuestion\",\"TodoRead\",\"TodoWrite\",\"MultiTool\",\"NotebookEdit\",\"EnterPlanMode\",\"ExitPlanMode\",\"Skill\",\"StatusBarMessageTool\",\"SendMessageTool\",\"TaskOutput\"]},{\"docs\":\"Optional hint shown to users for skill arguments.\",\"key\":\"argument-hint\",\"rules\":[\"CC-SK-012\",\"CC-SK-016\"],\"snippet\":\"argument-hint: path/to/file\",\"values\":[]},{\"docs\":\"Disable automatic model invocation for dangerous or manual workflows.\",\"key\":\"disable-model-invocation\",\"rules\":[\"CC-SK-006\"],\"snippet\":\"disable-model-invocation: true\",\"values\":[\"true\",\"false\"]},{\"docs\":\"Whether users can invoke this skill directly.\",\"key\":\"user-invocable\",\"rules\":[\"CC-SK-015\",\"CC-SK-011\"],\"snippet\":\"user-invocable: true\",\"values\":[\"true\",\"false\"]},{\"docs\":\"Optional Claude model override.\",\"key\":\"model\",\"rules\":[\"CC-SK-001\"],\"snippet\":\"model: sonnet\",\"values\":[\"sonnet\",\"opus\",\"haiku\",\"inherit\"]},{\"docs\":\"Execution context mode for sub-agent usage.\",\"key\":\"context\",\"rules\":[\"CC-SK-002\",\"CC-SK-003\",\"CC-SK-004\"],\"snippet\":\"context: fork\",\"values\":[\"fork\"]},{\"docs\":\"Optional agent to run when context is fork.\",\"key\":\"agent\",\"rules\":[\"CC-SK-003\",\"CC-SK-004\",\"CC-SK-005\"],\"snippet\":\"agent: general-purpose\",\"values\":[\"Explore\",\"Plan\",\"general-purpose\"]},{\"docs\":\"Optional compatibility notes for tools or versions.\",\"key\":\"compatibility\",\"rules\":[\"AS-011\"],\"snippet\":\"compatibility: Claude Code >= 1.0\",\"values\":[]},{\"docs\":\"Optional license identifier for the skill package.\",\"key\":\"license\",\"rules\":[\"AS-016\"],\"snippet\":\"license: MIT\",\"values\":[]},{\"docs\":\"Optional metadata map for additional machine-readable hints.\",\"key\":\"metadata\",\"rules\":[\"AS-016\"],\"snippet\":\"metadata:\\n  owner: team-platform\",\"values\":[]}],\"snippets\":[{\"body\":\"---\\nname: my-skill\\ndescription: Use when user wants to ...\\nmodel: sonnet\\nallowed-tools: Read, Grep\\n---\\n\",\"docs\":\"Base SKILL.md frontmatter scaffold.\",\"label\":\"SKILL frontmatter\",\"rules\":[\"AS-001\",\"AS-002\",\"AS-003\"]}]},{\"id\":\"agent\",\"keys\":[{\"docs\":\"Agent identifier.\",\"key\":\"name\",\"rules\":[\"CC-AG-001\"],\"snippet\":\"name: my-agent\",\"values\":[]},{\"docs\":\"Explain what this agent does.\",\"key\":\"description\",\"rules\":[\"CC-AG-002\"],\"snippet\":\"description: Handles focused tasks\",\"values\":[]},{\"docs\":\"Allowed tools for this agent. MCP tools use mcp__ prefix.\",\"key\":\"tools\",\"rules\":[\"CC-AG-006\",\"CC-AG-009\"],\"snippet\":\"tools:\\n  - Read\\n  - Grep\",\"values\":[\"Read\",\"Write\",\"Edit\",\"Bash\",\"Grep\",\"Glob\",\"Task\",\"WebFetch\",\"WebSearch\",\"AskUserQuestion\",\"TodoRead\",\"TodoWrite\",\"MultiTool\",\"NotebookEdit\",\"EnterPlanMode\",\"ExitPlanMode\",\"Skill\",\"StatusBarMessageTool\",\"SendMessageTool\",\"TaskOutput\"]},{\"docs\":\"Tools this agent must never use. MCP tools use mcp__ prefix.\",\"key\":\"disallowedTools\",\"rules\":[\"CC-AG-006\",\"CC-AG-010\"],\"snippet\":\"disallowedTools:\\n  - Bash\",\"values\":[\"Bash\",\"Read\",\"Write\",\"Edit\",\"Grep\",\"Glob\",\"Task\",\"WebFetch\",\"WebSearch\",\"AskUserQuestion\",\"TodoRead\",\"TodoWrite\",\"MultiTool\",\"NotebookEdit\",\"EnterPlanMode\",\"ExitPlanMode\",\"Skill\",\"StatusBarMessageTool\",\"SendMessageTool\",\"TaskOutput\"]},{\"docs\":\"Model selection for this agent.\",\"key\":\"model\",\"rules\":[\"CC-AG-003\"],\"snippet\":\"model: sonnet\",\"values\":[\"sonnet\",\"opus\",\"haiku\",\"inherit\"]},{\"docs\":\"Permission interaction policy.\",\"key\":\"permissionMode\",\"rules\":[\"CC-AG-004\",\"CC-AG-012\"],\"snippet\":\"permissionMode: default\",\"values\":[\"default\",\"acceptEdits\",\"dontAsk\",\"bypassPermissions\",\"plan\",\"delegate\"]},{\"docs\":\"Preloaded skills for this agent.\",\"key\":\"skills\",\"rules\":[\"CC-AG-005\",\"CC-AG-013\"],\"snippet\":\"skills:\\n  - code-review\",\"values\":[]},{\"docs\":\"Memory scope for this agent.\",\"key\":\"memory\",\"rules\":[\"CC-AG-008\"],\"snippet\":\"memory: project\",\"values\":[\"user\",\"project\",\"local\"]},{\"docs\":\"Hook configuration for agent lifecycle.\",\"key\":\"hooks\",\"rules\":[\"CC-AG-007\",\"CC-AG-011\"],\"snippet\":\"hooks: {}\",\"values\":[]}],\"snippets\":[{\"body\":\"---\\nname: my-agent\\ndescription: Handles focused tasks\\nmodel: sonnet\\npermissionMode: default\\n---\\n\",\"docs\":\"Base Claude sub-agent frontmatter scaffold.\",\"label\":\"Agent frontmatter\",\"rules\":[\"CC-AG-001\",\"CC-AG-002\",\"CC-AG-003\",\"CC-AG-004\"]}]},{\"id\":\"hooks\",\"keys\":[{\"docs\":\"Root hooks object keyed by event name.\",\"key\":\"hooks\",\"rules\":[\"CC-HK-001\"],\"snippet\":\"\\\"hooks\\\": {}\",\"values\":[]},{\"docs\":\"Matcher for tool events only.\",\"key\":\"matcher\",\"rules\":[\"CC-HK-003\",\"CC-HK-004\"],\"snippet\":\"\\\"matcher\\\": \\\"*\\\"\",\"values\":[\"*\",\"Bash\",\"Read\",\"Write\"]},{\"docs\":\"Hook type.\",\"key\":\"type\",\"rules\":[\"CC-HK-005\"],\"snippet\":\"\\\"type\\\": \\\"command\\\"\",\"values\":[\"command\",\"prompt\"]},{\"docs\":\"Shell command to execute for command hooks.\",\"key\":\"command\",\"rules\":[\"CC-HK-006\",\"CC-HK-009\"],\"snippet\":\"\\\"command\\\": \\\"echo hello\\\"\",\"values\":[]},{\"docs\":\"Prompt template for prompt hooks.\",\"key\":\"prompt\",\"rules\":[\"CC-HK-002\",\"CC-HK-007\"],\"snippet\":\"\\\"prompt\\\": \\\"Summarize this change\\\"\",\"values\":[]},{\"docs\":\"Positive integer timeout in seconds.\",\"key\":\"timeout\",\"rules\":[\"CC-HK-010\",\"CC-HK-011\"],\"snippet\":\"\\\"timeout\\\": 30\",\"values\":[\"30\",\"60\",\"600\"]}],\"snippets\":[{\"body\":\"{\\n  \\\"hooks\\\": {\\n    \\\"PreToolUse\\\": [\\n      {\\n        \\\"matcher\\\": \\\"*\\\",\\n        \\\"hooks\\\": [\\n          {\\n            \\\"type\\\": \\\"command\\\",\\n            \\\"command\\\": \\\"echo hello\\\",\\n            \\\"timeout\\\": 30\\n          }\\n        ]\\n      }\\n    ]\\n  }\\n}\",\"docs\":\"Starter hooks JSON structure.\",\"label\":\"Hooks matcher block\",\"rules\":[\"CC-HK-001\",\"CC-HK-003\",\"CC-HK-005\"]}]},{\"id\":\"plugin\",\"keys\":[{\"docs\":\"Plugin name.\",\"key\":\"name\",\"rules\":[\"CC-PL-004\",\"CC-PL-005\"],\"snippet\":\"\\\"name\\\": \\\"my-plugin\\\"\",\"values\":[]},{\"docs\":\"Plugin description.\",\"key\":\"description\",\"rules\":[\"CC-PL-004\"],\"snippet\":\"\\\"description\\\": \\\"Plugin description\\\"\",\"values\":[]},{\"docs\":\"Semver version string.\",\"key\":\"version\",\"rules\":[\"CC-PL-003\",\"CC-PL-004\"],\"snippet\":\"\\\"version\\\": \\\"1.0.0\\\"\",\"values\":[\"1.0.0\"]},{\"docs\":\"Author metadata object.\",\"key\":\"author\",\"rules\":[\"CC-PL-009\"],\"snippet\":\"\\\"author\\\": { \\\"name\\\": \\\"Your Name\\\" }\",\"values\":[]},{\"docs\":\"Project homepage URL.\",\"key\":\"homepage\",\"rules\":[\"CC-PL-010\"],\"snippet\":\"\\\"homepage\\\": \\\"https://example.com\\\"\",\"values\":[]},{\"docs\":\"Repository URL.\",\"key\":\"repository\",\"rules\":[\"CC-PL-006\"],\"snippet\":\"\\\"repository\\\": \\\"https://github.com/org/repo\\\"\",\"values\":[]},{\"docs\":\"License identifier.\",\"key\":\"license\",\"rules\":[\"CC-PL-006\"],\"snippet\":\"\\\"license\\\": \\\"MIT\\\"\",\"values\":[\"MIT\",\"Apache-2.0\"]},{\"docs\":\"Search/discovery keywords.\",\"key\":\"keywords\",\"rules\":[\"CC-PL-006\"],\"snippet\":\"\\\"keywords\\\": [\\\"agent\\\", \\\"linter\\\"]\",\"values\":[]}],\"snippets\":[{\"body\":\"{\\n  \\\"name\\\": \\\"my-plugin\\\",\\n  \\\"description\\\": \\\"Plugin description\\\",\\n  \\\"version\\\": \\\"1.0.0\\\"\\n}\",\"docs\":\"Starter plugin.json manifest.\",\"label\":\"Plugin manifest\",\"rules\":[\"CC-PL-004\"]}]},{\"id\":\"mcp\",\"keys\":[{\"docs\":\"JSON-RPC protocol version.\",\"key\":\"jsonrpc\",\"rules\":[\"MCP-001\"],\"snippet\":\"\\\"jsonrpc\\\": \\\"2.0\\\"\",\"values\":[\"2.0\"]},{\"docs\":\"MCP negotiated protocol version.\",\"key\":\"protocolVersion\",\"rules\":[\"MCP-008\"],\"snippet\":\"\\\"protocolVersion\\\": \\\"2025-11-25\\\"\",\"values\":[\"2025-11-25\"]},{\"docs\":\"JSON-RPC method name.\",\"key\":\"method\",\"rules\":[\"MCP-008\"],\"snippet\":\"\\\"method\\\": \\\"initialize\\\"\",\"values\":[\"initialize\"]},{\"docs\":\"Request identifier.\",\"key\":\"id\",\"rules\":[\"MCP-007\"],\"snippet\":\"\\\"id\\\": 1\",\"values\":[\"1\"]},{\"docs\":\"Request parameters object.\",\"key\":\"params\",\"rules\":[\"MCP-008\"],\"snippet\":\"\\\"params\\\": {}\",\"values\":[]},{\"docs\":\"Response result payload.\",\"key\":\"result\",\"rules\":[\"MCP-008\"],\"snippet\":\"\\\"result\\\": {}\",\"values\":[]},{\"docs\":\"Response error payload.\",\"key\":\"error\",\"rules\":[\"MCP-007\"],\"snippet\":\"\\\"error\\\": {}\",\"values\":[]},{\"docs\":\"MCP server map configuration.\",\"key\":\"mcpServers\",\"rules\":[\"MCP-007\",\"MCP-009\",\"MCP-010\",\"MCP-011\",\"MCP-012\"],\"snippet\":\"\\\"mcpServers\\\": {}\",\"values\":[]},{\"docs\":\"MCP server transport type.\",\"key\":\"type\",\"rules\":[\"MCP-009\",\"MCP-010\",\"MCP-011\",\"MCP-012\"],\"snippet\":\"\\\"type\\\": \\\"stdio\\\"\",\"values\":[\"stdio\",\"http\",\"sse\"]},{\"docs\":\"Command to launch a stdio MCP server.\",\"key\":\"command\",\"rules\":[\"MCP-009\"],\"snippet\":\"\\\"command\\\": \\\"node\\\"\",\"values\":[]},{\"docs\":\"Endpoint URL for http/sse MCP server.\",\"key\":\"url\",\"rules\":[\"MCP-010\"],\"snippet\":\"\\\"url\\\": \\\"http://localhost:3000/mcp\\\"\",\"values\":[]},{\"docs\":\"Array of MCP tool definitions.\",\"key\":\"tools\",\"rules\":[\"MCP-002\"],\"snippet\":\"\\\"tools\\\": []\",\"values\":[]},{\"docs\":\"MCP tool name.\",\"key\":\"name\",\"rules\":[\"MCP-002\"],\"snippet\":\"\\\"name\\\": \\\"tool-name\\\"\",\"values\":[]},{\"docs\":\"MCP tool description.\",\"key\":\"description\",\"rules\":[\"MCP-002\",\"MCP-004\"],\"snippet\":\"\\\"description\\\": \\\"Describe what this tool does\\\"\",\"values\":[]},{\"docs\":\"JSON Schema for tool inputs.\",\"key\":\"inputSchema\",\"rules\":[\"MCP-002\",\"MCP-003\"],\"snippet\":\"\\\"inputSchema\\\": { \\\"type\\\": \\\"object\\\", \\\"properties\\\": {} }\",\"values\":[]},{\"docs\":\"Whether user approval is required before tool execution.\",\"key\":\"requiresApproval\",\"rules\":[\"MCP-005\"],\"snippet\":\"\\\"requiresApproval\\\": true\",\"values\":[\"true\",\"false\"]},{\"docs\":\"Human-facing confirmation prompt.\",\"key\":\"confirmation\",\"rules\":[\"MCP-005\"],\"snippet\":\"\\\"confirmation\\\": \\\"Are you sure?\\\"\",\"values\":[]},{\"docs\":\"Optional metadata annotations (treat as untrusted).\",\"key\":\"annotations\",\"rules\":[\"MCP-006\"],\"snippet\":\"\\\"annotations\\\": {}\",\"values\":[]}],\"snippets\":[{\"body\":\"{\\n  \\\"jsonrpc\\\": \\\"2.0\\\",\\n  \\\"id\\\": 1,\\n  \\\"method\\\": \\\"initialize\\\",\\n  \\\"params\\\": {\\n    \\\"protocolVersion\\\": \\\"2025-11-25\\\"\\n  }\\n}\",\"docs\":\"Initialize request scaffold.\",\"label\":\"MCP initialize request\",\"rules\":[\"MCP-001\",\"MCP-008\"]},{\"body\":\"{\\n  \\\"name\\\": \\\"tool-name\\\",\\n  \\\"description\\\": \\\"Describe what this tool does\\\",\\n  \\\"inputSchema\\\": {\\n    \\\"type\\\": \\\"object\\\",\\n    \\\"properties\\\": {}\\n  },\\n  \\\"requiresApproval\\\": true\\n}\",\"docs\":\"Tool definition scaffold.\",\"label\":\"MCP tool\",\"rules\":[\"MCP-002\",\"MCP-003\",\"MCP-005\"]},{\"body\":\"{\\n  \\\"mcpServers\\\": {\\n    \\\"server-name\\\": {\\n      \\\"type\\\": \\\"stdio\\\",\\n      \\\"command\\\": \\\"node\\\",\\n      \\\"args\\\": [\\\"server.js\\\"]\\n    }\\n  }\\n}\",\"docs\":\"Stdio server configuration scaffold.\",\"label\":\"MCP stdio server\",\"rules\":[\"MCP-009\",\"MCP-011\"]},{\"body\":\"{\\n  \\\"mcpServers\\\": {\\n    \\\"server-name\\\": {\\n      \\\"type\\\": \\\"http\\\",\\n      \\\"url\\\": \\\"http://localhost:3000/mcp\\\"\\n    }\\n  }\\n}\",\"docs\":\"HTTP server configuration scaffold.\",\"label\":\"MCP http server\",\"rules\":[\"MCP-010\",\"MCP-011\"]}]},{\"id\":\"copilot\",\"keys\":[{\"docs\":\"Glob pattern selecting files for scoped instruction.\",\"key\":\"applyTo\",\"rules\":[\"COP-002\",\"COP-003\",\"COP-004\"],\"snippet\":\"applyTo: \\\"**/*.ts\\\"\",\"values\":[\"**/*.ts\",\"**/*.rs\",\"**/*.py\"]},{\"docs\":\"Exclude a specific Copilot agent from this scoped instruction.\",\"key\":\"excludeAgent\",\"rules\":[\"COP-005\"],\"snippet\":\"excludeAgent: \\\"code-review\\\"\",\"values\":[\"code-review\",\"coding-agent\"]}],\"snippets\":[{\"body\":\"---\\napplyTo: \\\"**/*.ts\\\"\\n---\\n\",\"docs\":\"Scoped Copilot instruction frontmatter.\",\"label\":\"Copilot scoped frontmatter\",\"rules\":[\"COP-002\",\"COP-003\"]}]},{\"id\":\"cursor\",\"keys\":[{\"docs\":\"Human-readable rule summary.\",\"key\":\"description\",\"rules\":[\"CUR-003\"],\"snippet\":\"description: TypeScript rules\",\"values\":[]},{\"docs\":\"Glob pattern(s) selecting files for this rule.\",\"key\":\"globs\",\"rules\":[\"CUR-004\",\"CUR-005\"],\"snippet\":\"globs: \\\"**/*.ts\\\"\",\"values\":[\"**/*.ts\",\"**/*.tsx\",\"**/*.rs\"]},{\"docs\":\"Always apply this rule regardless of filename matching.\",\"key\":\"alwaysApply\",\"rules\":[\"CUR-005\"],\"snippet\":\"alwaysApply: false\",\"values\":[\"true\",\"false\"]}],\"snippets\":[{\"body\":\"---\\ndescription: TypeScript rules\\nglobs: \\\"**/*.ts\\\"\\nalwaysApply: false\\n---\\n\",\"docs\":\"Cursor rule frontmatter scaffold.\",\"label\":\"Cursor .mdc frontmatter\",\"rules\":[\"CUR-003\",\"CUR-004\",\"CUR-005\"]}]},{\"id\":\"claude-agents\",\"keys\":[],\"snippets\":[{\"body\":\"## Project Context\\nDescribe the repository purpose, architecture, and constraints.\\n\",\"docs\":\"Recommended AGENTS/CLAUDE section scaffold.\",\"label\":\"Project Context section\",\"rules\":[\"AGM-004\"]},{\"body\":\"## Workflow\\n1. Explore current state\\n2. Implement minimal safe changes\\n3. Run tests and report results\\n\",\"docs\":\"Workflow scaffold for agent guidance docs.\",\"label\":\"Workflow section\",\"rules\":[\"AGM-002\"]},{\"body\":\"::code-comment{title=\\\"[P2] Issue\\\" body=\\\"Describe the issue clearly.\\\" file=\\\"/path/to/file\\\" start=1 end=1}\",\"docs\":\"Inline review directive scaffold.\",\"label\":\"Code comment directive\",\"rules\":[\"AGM-001\"]}]}],\"version\":\"1.0.0\"}";
Expand description

Raw authoring catalog JSON (top-level authoring section from rules.json). This is generated at build time to keep rules.json as the source of truth.