codingbuddy-rules 5.1.1 → 5.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -42,6 +42,13 @@
|
|
|
42
42
|
"icon": "🔍",
|
|
43
43
|
"file": "seo.json",
|
|
44
44
|
"description": "SEO optimization items (metadata, structure, links)"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "release",
|
|
48
|
+
"name": "Release",
|
|
49
|
+
"icon": "📦",
|
|
50
|
+
"file": "release.json",
|
|
51
|
+
"description": "Release readiness validation (version sync, lockfile, manifests, security audit)"
|
|
45
52
|
}
|
|
46
53
|
]
|
|
47
54
|
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domain": "release",
|
|
3
|
+
"icon": "📦",
|
|
4
|
+
"description": "Release readiness validation — version sync, lockfile, manifests, security audit",
|
|
5
|
+
"categories": [
|
|
6
|
+
{
|
|
7
|
+
"name": "version_consistency",
|
|
8
|
+
"triggers": {
|
|
9
|
+
"files": [
|
|
10
|
+
"**/package.json",
|
|
11
|
+
"**/pyproject.toml",
|
|
12
|
+
"**/setup.py",
|
|
13
|
+
"**/build.gradle*",
|
|
14
|
+
"**/pom.xml",
|
|
15
|
+
"**/Cargo.toml",
|
|
16
|
+
"**/go.mod"
|
|
17
|
+
],
|
|
18
|
+
"patterns": ["version"]
|
|
19
|
+
},
|
|
20
|
+
"items": [
|
|
21
|
+
{
|
|
22
|
+
"id": "rel-ver-001",
|
|
23
|
+
"text": "All version-bearing files contain the same version number",
|
|
24
|
+
"priority": "critical",
|
|
25
|
+
"reason": "Version drift between files causes install failures and confusion"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "rel-ver-002",
|
|
29
|
+
"text": "Version follows semver — breaking changes bump major, features bump minor",
|
|
30
|
+
"priority": "high",
|
|
31
|
+
"reason": "Incorrect semver breaks dependency resolution for consumers"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "rel-ver-003",
|
|
35
|
+
"text": "CHANGELOG updated with release notes for new version",
|
|
36
|
+
"priority": "high",
|
|
37
|
+
"reason": "Users need to know what changed before upgrading"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "lockfile_sync",
|
|
43
|
+
"triggers": {
|
|
44
|
+
"files": [
|
|
45
|
+
"**/yarn.lock",
|
|
46
|
+
"**/package-lock.json",
|
|
47
|
+
"**/pnpm-lock.yaml",
|
|
48
|
+
"**/Pipfile.lock",
|
|
49
|
+
"**/poetry.lock",
|
|
50
|
+
"**/Cargo.lock",
|
|
51
|
+
"**/go.sum"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
"items": [
|
|
55
|
+
{
|
|
56
|
+
"id": "rel-lock-001",
|
|
57
|
+
"text": "Lockfile is in sync with dependency declarations (no frozen-lockfile failures)",
|
|
58
|
+
"priority": "critical",
|
|
59
|
+
"reason": "Lockfile drift causes CI failures and non-reproducible builds"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"id": "rel-lock-002",
|
|
63
|
+
"text": "No new high/critical vulnerabilities in dependency audit",
|
|
64
|
+
"priority": "high",
|
|
65
|
+
"reason": "Shipping known vulnerabilities exposes users to security risks"
|
|
66
|
+
}
|
|
67
|
+
]
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "manifest_validation",
|
|
71
|
+
"triggers": {
|
|
72
|
+
"files": [
|
|
73
|
+
"**/.claude-plugin/plugin.json",
|
|
74
|
+
"**/.claude-plugin/marketplace.json",
|
|
75
|
+
"**/plugin.json",
|
|
76
|
+
"**/manifest.json"
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
"items": [
|
|
80
|
+
{
|
|
81
|
+
"id": "rel-mfst-001",
|
|
82
|
+
"text": "Plugin manifest version matches package version",
|
|
83
|
+
"priority": "critical",
|
|
84
|
+
"reason": "Version mismatch causes marketplace listing to show wrong version"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "rel-mfst-002",
|
|
88
|
+
"text": "Plugin manifest passes schema validation",
|
|
89
|
+
"priority": "high",
|
|
90
|
+
"reason": "Invalid manifest fields can break plugin installation"
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "ci_quality_gate",
|
|
96
|
+
"triggers": {
|
|
97
|
+
"files": [
|
|
98
|
+
"**/.github/workflows/**",
|
|
99
|
+
"**/.gitlab-ci.yml",
|
|
100
|
+
"**/Jenkinsfile",
|
|
101
|
+
"**/bitbucket-pipelines.yml"
|
|
102
|
+
],
|
|
103
|
+
"patterns": ["ci", "pipeline", "workflow"]
|
|
104
|
+
},
|
|
105
|
+
"items": [
|
|
106
|
+
{
|
|
107
|
+
"id": "rel-ci-001",
|
|
108
|
+
"text": "All CI checks pass (lint, typecheck, test, build)",
|
|
109
|
+
"priority": "critical",
|
|
110
|
+
"reason": "Shipping with failing CI means shipping broken code"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"id": "rel-ci-002",
|
|
114
|
+
"text": "Test coverage meets project threshold",
|
|
115
|
+
"priority": "high",
|
|
116
|
+
"reason": "Coverage regression indicates untested new code"
|
|
117
|
+
}
|
|
118
|
+
]
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://codingbuddy.dev/schemas/marketplace.schema.json",
|
|
4
|
+
"title": "Claude Code Marketplace Manifest",
|
|
5
|
+
"description": "Schema for .claude-plugin/marketplace.json — marketplace listing configuration",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["name", "plugins"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"name": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "Marketplace namespace identifier",
|
|
12
|
+
"minLength": 1
|
|
13
|
+
},
|
|
14
|
+
"metadata": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"properties": {
|
|
17
|
+
"description": { "type": "string" }
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"owner": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"name": { "type": "string" },
|
|
24
|
+
"email": { "type": "string" }
|
|
25
|
+
},
|
|
26
|
+
"required": ["name"]
|
|
27
|
+
},
|
|
28
|
+
"plugins": {
|
|
29
|
+
"type": "array",
|
|
30
|
+
"minItems": 1,
|
|
31
|
+
"items": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"required": ["name", "source", "version"],
|
|
34
|
+
"properties": {
|
|
35
|
+
"name": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"description": "Plugin name",
|
|
38
|
+
"minLength": 1
|
|
39
|
+
},
|
|
40
|
+
"source": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"description": "Relative path to plugin directory"
|
|
43
|
+
},
|
|
44
|
+
"description": {
|
|
45
|
+
"type": "string"
|
|
46
|
+
},
|
|
47
|
+
"version": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(-[a-zA-Z0-9.]+)?$"
|
|
50
|
+
},
|
|
51
|
+
"category": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"enum": ["development", "productivity", "testing", "devops", "other"]
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"additionalProperties": false
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"additionalProperties": false
|
|
61
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://codingbuddy.dev/schemas/plugin.schema.json",
|
|
4
|
+
"title": "Claude Code Plugin Manifest",
|
|
5
|
+
"description": "Schema for .claude-plugin/plugin.json — valid fields for Claude Code plugin system",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["name", "version", "description"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"name": {
|
|
10
|
+
"type": "string",
|
|
11
|
+
"description": "Plugin identifier (kebab-case)",
|
|
12
|
+
"minLength": 1,
|
|
13
|
+
"pattern": "^[a-z0-9][a-z0-9-]*$"
|
|
14
|
+
},
|
|
15
|
+
"version": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "Semantic version (X.Y.Z)",
|
|
18
|
+
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(-[a-zA-Z0-9.]+)?$"
|
|
19
|
+
},
|
|
20
|
+
"description": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "Short description of the plugin",
|
|
23
|
+
"minLength": 1
|
|
24
|
+
},
|
|
25
|
+
"author": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"properties": {
|
|
28
|
+
"name": { "type": "string" },
|
|
29
|
+
"email": { "type": "string" }
|
|
30
|
+
},
|
|
31
|
+
"required": ["name"]
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"additionalProperties": false
|
|
35
|
+
}
|