|
1 | 1 | { |
2 | 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", |
3 | | - "description": "Baseline content hashes for spec-drift sentinel. Updated automatically by workflow.", |
4 | | - "last_updated": "2026-07-31T10:14:31Z", |
| 3 | + "description": "Baseline hashes for canonical specification content. Human-facing URLs are kept separately from machine-readable content URLs.", |
| 4 | + "last_updated": "2026-08-01T00:00:00Z", |
5 | 5 | "sources": { |
6 | 6 | "s-tier": { |
7 | 7 | "agent-skills-spec": { |
8 | 8 | "url": "https://agentskills.io/specification", |
9 | | - "hash": "5c5ca872a1c4ac8596b903b90c931847eaad8da5f7bd5916a1ee1f44a7a1eec5", |
| 9 | + "content_url": "https://raw.githubusercontent.com/agentskills/agentskills/main/docs/specification.mdx", |
| 10 | + "hash": "4e758a27be17f5bd9af8d6506890895a412f774a4c09f08ee1cc7565391d16ef", |
10 | 11 | "rules": [ |
11 | 12 | "AS-001", |
12 | 13 | "AS-002", |
|
22 | 23 | ] |
23 | 24 | }, |
24 | 25 | "mcp-spec": { |
25 | | - "url": "https://modelcontextprotocol.io/specification/2025-11-25", |
26 | | - "hash": "596023030ef80f6769857c05b15946c157d3ef7024c26a5da2d28d5f7e8eaa7e", |
27 | | - "github_repo": "modelcontextprotocol/specification", |
| 26 | + "url": "https://modelcontextprotocol.io/specification/2026-07-28", |
| 27 | + "content_url": "https://modelcontextprotocol.io/specification/2026-07-28/index.md", |
| 28 | + "hash": "44e96c2715af9074905a5c47ff7c6c0bb77a50000eb577ed772242a077efd086", |
| 29 | + "github_repo": "modelcontextprotocol/modelcontextprotocol", |
| 30 | + "rules": [ |
| 31 | + "MCP-001", |
| 32 | + "MCP-005", |
| 33 | + "MCP-007" |
| 34 | + ] |
| 35 | + }, |
| 36 | + "mcp-spec-schema": { |
| 37 | + "url": "https://modelcontextprotocol.io/specification/2026-07-28/schema", |
| 38 | + "content_url": "https://raw.githubusercontent.com/modelcontextprotocol/modelcontextprotocol/2026-07-28/schema/2026-07-28/schema.ts", |
| 39 | + "hash": "680f5b5ee98ed107a3b6638d7662bff22656056c5014452f87e4a4fc8f0db8e7", |
28 | 40 | "rules": [ |
29 | 41 | "MCP-001", |
| 42 | + "MCP-002", |
| 43 | + "MCP-003", |
| 44 | + "MCP-007", |
| 45 | + "MCP-008", |
| 46 | + "MCP-013", |
| 47 | + "MCP-014", |
| 48 | + "MCP-015", |
| 49 | + "MCP-016", |
| 50 | + "MCP-020" |
| 51 | + ] |
| 52 | + }, |
| 53 | + "mcp-spec-tools": { |
| 54 | + "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/tools", |
| 55 | + "content_url": "https://modelcontextprotocol.io/specification/2026-07-28/server/tools.md", |
| 56 | + "hash": "465e76457fe4ce0825efde208fc2ea4f00877fd72e0610a663a11a21812a484b", |
| 57 | + "rules": [ |
30 | 58 | "MCP-002", |
31 | 59 | "MCP-003", |
32 | 60 | "MCP-004", |
33 | 61 | "MCP-005", |
34 | 62 | "MCP-006", |
35 | | - "MCP-007", |
36 | | - "MCP-008" |
| 63 | + "MCP-013", |
| 64 | + "MCP-014" |
| 65 | + ] |
| 66 | + }, |
| 67 | + "mcp-spec-resources": { |
| 68 | + "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/resources", |
| 69 | + "content_url": "https://modelcontextprotocol.io/specification/2026-07-28/server/resources.md", |
| 70 | + "hash": "026934f8e3bc46c705205555ab5f1d5cb9f7ffce1e51840e7cbb53b2500b389e", |
| 71 | + "rules": [ |
| 72 | + "MCP-015" |
| 73 | + ] |
| 74 | + }, |
| 75 | + "mcp-spec-prompts": { |
| 76 | + "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/prompts", |
| 77 | + "content_url": "https://modelcontextprotocol.io/specification/2026-07-28/server/prompts.md", |
| 78 | + "hash": "0719ebea71899029d37f56691308369d6cda170647376ead96b097e994c59da0", |
| 79 | + "rules": [ |
| 80 | + "MCP-016" |
| 81 | + ] |
| 82 | + }, |
| 83 | + "mcp-spec-transports": { |
| 84 | + "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/transports", |
| 85 | + "content_url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/transports.md", |
| 86 | + "hash": "89251827c733dabd578cb9a2bd225dcb76849a3496ac2d3aab1d969334ff789c", |
| 87 | + "rules": [ |
| 88 | + "MCP-009", |
| 89 | + "MCP-010", |
| 90 | + "MCP-011", |
| 91 | + "MCP-012", |
| 92 | + "MCP-017", |
| 93 | + "MCP-022", |
| 94 | + "MCP-023", |
| 95 | + "MCP-024" |
| 96 | + ] |
| 97 | + }, |
| 98 | + "mcp-spec-security": { |
| 99 | + "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/security_best_practices", |
| 100 | + "content_url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/security_best_practices.md", |
| 101 | + "hash": "bb9f423d0bb7189d06559c60a9e209b696da2eab5f15d225f6b2b09ed346688e", |
| 102 | + "rules": [ |
| 103 | + "MCP-018", |
| 104 | + "MCP-019", |
| 105 | + "MCP-021" |
| 106 | + ] |
| 107 | + }, |
| 108 | + "mcp-spec-versioning": { |
| 109 | + "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/versioning", |
| 110 | + "content_url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/versioning.md", |
| 111 | + "hash": "83178defeda24c09389a964334c3806a73cec78a65c3c3a3b297085f3d73e6bd", |
| 112 | + "rules": [ |
| 113 | + "MCP-008", |
| 114 | + "MCP-020" |
37 | 115 | ] |
38 | 116 | }, |
39 | 117 | "claude-code-memory": { |
40 | 118 | "url": "https://code.claude.com/docs/en/memory", |
41 | | - "hash": "24530d887609888d1b5d8abec4e659dd9fc74fff1fb3d2cf0af383a5b7abeea4", |
| 119 | + "content_url": "https://code.claude.com/docs/en/memory.md", |
| 120 | + "hash": "eea3a7b7d4da9409c6a627e26142373f52171526fcfe901070ac77d20cf15513", |
42 | 121 | "rules": [ |
43 | 122 | "CC-MEM-001", |
44 | 123 | "CC-MEM-002", |
|
48 | 127 | }, |
49 | 128 | "claude-code-hooks": { |
50 | 129 | "url": "https://code.claude.com/docs/en/hooks", |
51 | | - "hash": "f8673e2e6c30b9a3a08d30590020207af3221f714d129a4efd2eae1096e26998", |
| 130 | + "content_url": "https://code.claude.com/docs/en/hooks.md", |
| 131 | + "hash": "b318b60616297d4a5a8c83d628a2061bf2c65dc0d05a17b5579482b971165ebb", |
52 | 132 | "rules": [ |
53 | 133 | "CC-HK-001", |
54 | 134 | "CC-HK-002", |
|
65 | 145 | }, |
66 | 146 | "claude-code-skills": { |
67 | 147 | "url": "https://code.claude.com/docs/en/skills", |
68 | | - "hash": "b4386cd9f7aa8da4e505afa37e0550b770fb259b6a4626339560dc4c98a1b7d6", |
| 148 | + "content_url": "https://code.claude.com/docs/en/skills.md", |
| 149 | + "hash": "1f08c689cea03dc2d12ff6646c33b740a3219ba0c2bec960ac05fcd7a4a4c308", |
69 | 150 | "rules": [ |
70 | 151 | "CC-SK-001", |
71 | 152 | "CC-SK-002", |
|
75 | 156 | }, |
76 | 157 | "claude-code-plugins": { |
77 | 158 | "url": "https://code.claude.com/docs/en/plugins-reference", |
78 | | - "hash": "3cba97ea5d7d1055d223458387b9214d2c77bbbf46437c136be3d9afe0bd801d", |
| 159 | + "content_url": "https://code.claude.com/docs/en/plugins-reference.md", |
| 160 | + "hash": "a07104858eefd300ed179c1e8727d5d92d1611140f0e524e82f68ae010e13cf7", |
79 | 161 | "rules": [ |
80 | 162 | "CC-PL-002", |
81 | 163 | "CC-PL-003", |
|
86 | 168 | }, |
87 | 169 | "claude-code-subagents": { |
88 | 170 | "url": "https://code.claude.com/docs/en/sub-agents", |
89 | | - "hash": "9326cd9931f2c31a3d04cd0d520e6f414e698f98671040efc45fc7a8035b7caf", |
| 171 | + "content_url": "https://code.claude.com/docs/en/sub-agents.md", |
| 172 | + "hash": "5b209909ee8304b3af61709d9a5fe7bacaf87feeec9b1dc8f8c48b3f4136d4cb", |
90 | 173 | "rules": [ |
91 | 174 | "CC-AG-001", |
92 | 175 | "CC-AG-002", |
|
110 | 193 | }, |
111 | 194 | "codex-cli-agents-md": { |
112 | 195 | "url": "https://learn.chatgpt.com/docs/agent-configuration/agents-md", |
113 | | - "hash": "daa9ae6966e3c4125f5a84111fc85fa44b8ce763853b6781c0992aab38c16534", |
| 196 | + "content_url": "https://learn.chatgpt.com/docs/agent-configuration/agents-md.md", |
| 197 | + "hash": "9d1f87a2d1cb55b4782b95abe710692b35b9659789c2db31a22c7074a3383e8e", |
114 | 198 | "rules": [ |
115 | 199 | "AGM-001", |
116 | 200 | "AGM-002", |
|
128 | 212 | }, |
129 | 213 | "opencode-rules": { |
130 | 214 | "url": "https://opencode.ai/docs/rules/", |
131 | | - "hash": "6301a2a1a80af127fb120d05943c412a3a3d3ddb2431b0746407472ae41cefc9", |
| 215 | + "content_url": "https://raw.githubusercontent.com/anomalyco/opencode/dev/packages/web/src/content/docs/rules.mdx", |
| 216 | + "hash": "9ec707ba349c3eb2c37f2085d40875247b59e135386217b7150ba98f7e293aa8", |
132 | 217 | "rules": [ |
133 | 218 | "XP-001", |
134 | 219 | "XP-002", |
|
142 | 227 | "a-tier": { |
143 | 228 | "cursor-rules": { |
144 | 229 | "url": "https://cursor.com/docs/rules", |
145 | | - "hash": "24529507938b37d3e3815e86b8c1c87cbaf78230c899854f0d74b2d5356c676a", |
| 230 | + "content_url": "https://cursor.com/docs/rules.md", |
| 231 | + "hash": "c861f9650a843824b496f0a3190ecd9671c121acae623e150b041d0eb9e84d70", |
146 | 232 | "rules": [ |
147 | 233 | "CUR-001", |
148 | 234 | "CUR-002", |
|
152 | 238 | "CUR-006", |
153 | 239 | "CUR-007", |
154 | 240 | "CUR-008", |
155 | | - "CUR-009" |
| 241 | + "CUR-009", |
| 242 | + "CUR-020" |
156 | 243 | ] |
157 | 244 | }, |
158 | 245 | "cursor-hooks": { |
159 | 246 | "url": "https://cursor.com/docs/hooks", |
160 | | - "hash": "4f55df64b01fe7d2c55a9d544eafdda070e35d7f84045c021f4a5ea9fcdd05d8", |
| 247 | + "content_url": "https://cursor.com/docs/hooks.md", |
| 248 | + "hash": "952d09cb40387dcb70944ce73fffa446317b6cb4f107c9bc2a52d236bc887e3b", |
161 | 249 | "rules": [ |
162 | 250 | "CUR-010", |
163 | 251 | "CUR-011", |
164 | 252 | "CUR-012", |
165 | | - "CUR-013" |
| 253 | + "CUR-013", |
| 254 | + "CUR-017", |
| 255 | + "CUR-018", |
| 256 | + "CUR-019" |
166 | 257 | ] |
167 | 258 | }, |
168 | 259 | "cursor-subagents": { |
169 | 260 | "url": "https://cursor.com/docs/subagents", |
170 | | - "hash": "f849221f0342190122e8411587e47f129c915902077da6995753f26c8a03cc9a", |
| 261 | + "content_url": "https://cursor.com/docs/subagents.md", |
| 262 | + "hash": "c9c01a48171c3a0bcaa37f9412654395c27fecbd5f50535bfa59363f49c8bd46", |
171 | 263 | "rules": [ |
172 | 264 | "CUR-014", |
173 | 265 | "CUR-015" |
174 | 266 | ] |
175 | 267 | }, |
176 | 268 | "cursor-environment": { |
177 | 269 | "url": "https://cursor.com/docs/cloud-agent/setup", |
178 | | - "hash": "326a48176a4541dc5e1d94d7f1ef94c50a007dc4798b85e97e8ada5ec75e8a9e", |
| 270 | + "content_url": "https://cursor.com/docs/cloud-agent/setup.md", |
| 271 | + "hash": "058418e383b5bf20786c8a858f37856aa73719759774874b73bf7fb86f18fcd0", |
179 | 272 | "rules": [ |
180 | 273 | "CUR-016" |
181 | 274 | ] |
182 | 275 | }, |
| 276 | + "cursor-mcp": { |
| 277 | + "url": "https://cursor.com/docs/mcp", |
| 278 | + "content_url": "https://cursor.com/docs/mcp.md", |
| 279 | + "hash": "0d85294f9c849ef4f69194ca97242599e4d8f1c6bc44b77cfaedcc2bfc56da98", |
| 280 | + "rules": [ |
| 281 | + "MCP-009", |
| 282 | + "MCP-010", |
| 283 | + "MCP-011", |
| 284 | + "MCP-012", |
| 285 | + "MCP-017", |
| 286 | + "MCP-018", |
| 287 | + "MCP-019", |
| 288 | + "MCP-020", |
| 289 | + "MCP-021", |
| 290 | + "MCP-022", |
| 291 | + "MCP-023", |
| 292 | + "MCP-024" |
| 293 | + ] |
| 294 | + }, |
183 | 295 | "github-copilot": { |
184 | 296 | "url": "https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions/add-repository-instructions", |
185 | | - "hash": "668c75acb7948484e1334aeb040332961836fbe187561fa830219afcde8ae289", |
| 297 | + "content_url": "https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/add-custom-instructions/add-repository-instructions.md", |
| 298 | + "hash": "4e5454048929b4aee6357c707cd28cd3ff86a2b3717bea094be98458b1c7bc98", |
186 | 299 | "rules": [ |
187 | 300 | "COP-001", |
188 | 301 | "COP-002", |
|
214 | 327 | }, |
215 | 328 | "cline-rules": { |
216 | 329 | "url": "https://docs.cline.bot/customization/cline-rules", |
217 | | - "hash": "3a42acacd88e62655c440c04214bed9e622793007489f1d9ef68a2ea85360063", |
| 330 | + "content_url": "https://raw.githubusercontent.com/cline/cline/main/docs/customization/cline-rules.mdx", |
| 331 | + "hash": "b50f382a5626c0627cfb47b7fad2eab724be354fa21b445752f8c8abf5403e88", |
218 | 332 | "rules": [ |
219 | 333 | "CL-SK-001", |
220 | 334 | "CL-SK-002", |
|
0 commit comments