@theglitchking/gimme-the-lint 1.1.1 → 1.2.0
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.
- package/.claude-plugin/marketplace.json +47 -0
- package/.claude-plugin/plugin.json +14 -40
- package/CHANGELOG.md +11 -0
- package/LICENSE +0 -0
- package/README.backup.md +0 -0
- package/README.md +0 -0
- package/agents/linting-agent.md +5 -0
- package/bin/gimme-the-lint.js +19 -4
- package/{.claude-plugin/commands → commands}/lint-baseline.md +4 -0
- package/{.claude-plugin/commands → commands}/lint-status.md +4 -0
- package/{.claude-plugin/commands → commands}/lint.md +4 -0
- package/commands/policy.md +16 -0
- package/commands/relink.md +6 -0
- package/commands/status.md +6 -0
- package/commands/update.md +6 -0
- package/githooks/install.sh +0 -0
- package/githooks/pre-commit +0 -0
- package/githooks/pre-push +0 -0
- package/hooks/hooks.json +15 -0
- package/hooks/session-start.mjs +8 -0
- package/install.sh +0 -0
- package/lib/config-manager.js +0 -0
- package/lib/directory-discovery.js +0 -0
- package/lib/drift-detector.js +0 -0
- package/lib/git-hooks-manager.js +0 -0
- package/lib/index.js +0 -0
- package/lib/installer.js +0 -0
- package/lib/manifest-manager.js +0 -0
- package/lib/venv-manager.js +0 -0
- package/package.json +6 -4
- package/scripts/dashboard.sh +0 -0
- package/scripts/eslint-baseline.sh +0 -0
- package/scripts/link-skills.mjs +22 -0
- package/scripts/ruff-baseline.sh +0 -0
- package/scripts/run-checks.sh +0 -0
- package/scripts/setup-venv.sh +0 -0
- package/templates/.gitleaks.template.toml +0 -0
- package/templates/.pre-commit-config.template.yaml +0 -0
- package/templates/commitlint.config.template.js +0 -0
- package/templates/eslint.config.template.js +0 -0
- package/templates/pyproject.template.toml +0 -0
- package/templates/requirements.linting.txt +0 -0
- package/uninstall.sh +0 -0
- package/bin/postinstall.js +0 -29
- package/scripts/validate-version.sh +0 -46
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "gimme-the-lint-marketplace",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "TheGlitchKing",
|
|
5
|
+
"email": "theglitchking@users.noreply.github.com"
|
|
6
|
+
},
|
|
7
|
+
"metadata": {
|
|
8
|
+
"description": "Official marketplace for gimme-the-lint - Progressive linting with directory-chunked baselines and drift detection",
|
|
9
|
+
"version": "1.2.0"
|
|
10
|
+
},
|
|
11
|
+
"plugins": [
|
|
12
|
+
{
|
|
13
|
+
"name": "gimme-the-lint",
|
|
14
|
+
"description": "Progressive linting system with directory-chunked baselines, drift detection, and auto-healing for monorepo projects (Python + JS/TS)",
|
|
15
|
+
"version": "1.2.0",
|
|
16
|
+
"author": {
|
|
17
|
+
"name": "TheGlitchKing"
|
|
18
|
+
},
|
|
19
|
+
"homepage": "https://github.com/TheGlitchKing/gimme-the-lint",
|
|
20
|
+
"repository": "https://github.com/TheGlitchKing/gimme-the-lint.git",
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"keywords": [
|
|
23
|
+
"linting",
|
|
24
|
+
"progressive-linting",
|
|
25
|
+
"eslint",
|
|
26
|
+
"ruff",
|
|
27
|
+
"python",
|
|
28
|
+
"monorepo",
|
|
29
|
+
"git-hooks",
|
|
30
|
+
"drift-detection",
|
|
31
|
+
"claude-code"
|
|
32
|
+
],
|
|
33
|
+
"category": "productivity",
|
|
34
|
+
"tags": [
|
|
35
|
+
"linting",
|
|
36
|
+
"progressive",
|
|
37
|
+
"baseline",
|
|
38
|
+
"drift"
|
|
39
|
+
],
|
|
40
|
+
"source": {
|
|
41
|
+
"source": "npm",
|
|
42
|
+
"package": "@theglitchking/gimme-the-lint"
|
|
43
|
+
},
|
|
44
|
+
"strict": true
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
}
|
|
@@ -1,48 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gimme-the-lint",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"description": "Progressive linting with directory-chunked baselines, drift detection, and auto-healing for monorepo projects",
|
|
3
|
+
"description": "Progressive linting system with directory-chunked baselines, drift detection, and auto-healing for monorepo projects (Python + JS/TS)",
|
|
4
|
+
"version": "1.2.0",
|
|
6
5
|
"author": {
|
|
7
6
|
"name": "TheGlitchKing",
|
|
8
|
-
"email": "theglitchking@users.noreply.github.com"
|
|
9
|
-
"github": "TheGlitchKing"
|
|
7
|
+
"email": "theglitchking@users.noreply.github.com"
|
|
10
8
|
},
|
|
11
|
-
"repository": {
|
|
12
|
-
"type": "github",
|
|
13
|
-
"owner": "TheGlitchKing",
|
|
14
|
-
"repo": "gimme-the-lint",
|
|
15
|
-
"url": "https://github.com/TheGlitchKing/gimme-the-lint"
|
|
16
|
-
},
|
|
17
|
-
"claudeCodeVersion": ">=1.0.0",
|
|
18
|
-
"type": "claude-plugin",
|
|
19
|
-
"category": "productivity",
|
|
20
|
-
"tags": ["linting", "progressive-linting", "eslint", "ruff", "python", "monorepo", "git-hooks", "drift-detection"],
|
|
21
9
|
"license": "MIT",
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"name": "lint:baseline",
|
|
36
|
-
"description": "Create or refresh linting baselines",
|
|
37
|
-
"file": "commands/lint-baseline.md"
|
|
38
|
-
}
|
|
39
|
-
],
|
|
40
|
-
"agents": [
|
|
41
|
-
{
|
|
42
|
-
"name": "linting-agent",
|
|
43
|
-
"description": "Background agent that runs progressive linting and reports results",
|
|
44
|
-
"type": "general-purpose",
|
|
45
|
-
"file": "../agents/linting-agent.md"
|
|
46
|
-
}
|
|
10
|
+
"homepage": "https://github.com/TheGlitchKing/gimme-the-lint",
|
|
11
|
+
"repository": "https://github.com/TheGlitchKing/gimme-the-lint",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"linting",
|
|
14
|
+
"progressive-linting",
|
|
15
|
+
"eslint",
|
|
16
|
+
"ruff",
|
|
17
|
+
"python",
|
|
18
|
+
"monorepo",
|
|
19
|
+
"git-hooks",
|
|
20
|
+
"drift-detection"
|
|
47
21
|
]
|
|
48
22
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.1.2] - 2026-04-11
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
- Plugin manifest now passes `claude plugin validate`. Rewrote `.claude-plugin/plugin.json` to the minimal schema Claude Code actually accepts (dropped `displayName`, `claudeCodeVersion`, `type`, `commands`, `agents`, `hooks` — all of those were either unsupported keys or wrongly-shaped arrays that the validator rejected).
|
|
12
|
+
- Moved command definitions from `.claude-plugin/commands/*.md` → `commands/*.md` at the repo root (Claude Code's auto-discovery convention).
|
|
13
|
+
- Added YAML frontmatter (`description` field) to all three command files and to `agents/linting-agent.md`.
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- `.claude-plugin/marketplace.json` — registers gimme-the-lint as a standalone Claude Code marketplace, so users can install with `claude plugin install gimme-the-lint@gimme-the-lint-marketplace`.
|
|
17
|
+
- `commands/` added to npm `files` array so the plugin's slash commands actually ship in the tarball.
|
|
18
|
+
|
|
8
19
|
## [1.1.1] - 2026-03-19
|
|
9
20
|
|
|
10
21
|
### Fixed
|
package/LICENSE
CHANGED
|
File without changes
|
package/README.backup.md
CHANGED
|
File without changes
|
package/README.md
CHANGED
|
File without changes
|
package/agents/linting-agent.md
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: linting-agent
|
|
3
|
+
description: Runs progressive linting checks via gimme-the-lint and reports violations. Invoke when the user asks to lint, check code quality, fix lint errors, create/refresh baselines, or diagnose drift.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Linting Agent
|
|
2
7
|
|
|
3
8
|
You are a linting agent for gimme-the-lint. Your job is to run progressive linting checks and report results clearly.
|
package/bin/gimme-the-lint.js
CHANGED
|
@@ -213,8 +213,23 @@ program
|
|
|
213
213
|
program.help();
|
|
214
214
|
});
|
|
215
215
|
|
|
216
|
-
|
|
216
|
+
// Runtime-provided subcommands: update, policy, status, relink.
|
|
217
|
+
// Loaded dynamically because the runtime is ESM and this file is CJS.
|
|
218
|
+
(async () => {
|
|
219
|
+
try {
|
|
220
|
+
const { registerUpdateCommands } = await import('@theglitchking/claude-plugin-runtime');
|
|
221
|
+
registerUpdateCommands(program, {
|
|
222
|
+
packageName: '@theglitchking/gimme-the-lint',
|
|
223
|
+
pluginName: 'gimme-the-lint',
|
|
224
|
+
configFile: 'gimme-the-lint.json',
|
|
225
|
+
});
|
|
226
|
+
} catch (err) {
|
|
227
|
+
// Runtime not available — degrade silently; existing subcommands still work.
|
|
228
|
+
}
|
|
217
229
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
230
|
+
program.parse(process.argv);
|
|
231
|
+
|
|
232
|
+
if (!process.argv.slice(2).length) {
|
|
233
|
+
program.help();
|
|
234
|
+
}
|
|
235
|
+
})();
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create or refresh LTTF linting baselines (captures existing violations so only NEW ones block future commits)
|
|
3
|
+
---
|
|
4
|
+
|
|
1
5
|
# /lint:baseline - Create or Refresh Baselines
|
|
2
6
|
|
|
3
7
|
Create LTTF baselines for progressive linting. Baselines capture existing violations so only NEW violations block commits.
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show the progressive linting dashboard — baseline status, drift detection, and team ownership across all tracked directories
|
|
3
|
+
---
|
|
4
|
+
|
|
1
5
|
# /lint:status - Progressive Linting Dashboard
|
|
2
6
|
|
|
3
7
|
Show the current state of progressive linting across the codebase.
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run progressive linting checks on the current project (only NEW violations above the baseline are flagged)
|
|
3
|
+
---
|
|
4
|
+
|
|
1
5
|
# /lint - Progressive Linting
|
|
2
6
|
|
|
3
7
|
Run progressive linting checks on the current project. Only NEW violations are flagged — baseline violations are ignored.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Get or set the gimme-the-lint update policy (auto | nudge | off)
|
|
3
|
+
allowed-tools: Bash(npx:*)
|
|
4
|
+
argument-hint: "[auto|nudge|off]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Arguments: $ARGUMENTS
|
|
8
|
+
|
|
9
|
+
- If `$ARGUMENTS` is empty, run `npx --no @theglitchking/gimme-the-lint policy` and report the current policy and config path.
|
|
10
|
+
- If `$ARGUMENTS` is one of `auto`, `nudge`, `off`, run `npx --no @theglitchking/gimme-the-lint policy $ARGUMENTS` and confirm the new setting to the user.
|
|
11
|
+
- If `$ARGUMENTS` is anything else, tell the user the valid values are `auto`, `nudge`, `off`.
|
|
12
|
+
|
|
13
|
+
Policies:
|
|
14
|
+
- `auto` — auto-run `npm update @theglitchking/gimme-the-lint` at session start when a newer version is available.
|
|
15
|
+
- `nudge` — print a one-liner when a newer version is available (default).
|
|
16
|
+
- `off` — do not check for updates.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update gimme-the-lint to the latest version (runs npm update + re-links skills)
|
|
3
|
+
allowed-tools: Bash(npx:*)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Run `npx --no @theglitchking/gimme-the-lint update` and report the before/after versions to the user. If the project doesn't have a local install, fall back to `npx -y @theglitchking/gimme-the-lint update` and note that in your summary.
|
package/githooks/install.sh
CHANGED
|
File without changes
|
package/githooks/pre-commit
CHANGED
|
File without changes
|
package/githooks/pre-push
CHANGED
|
File without changes
|
package/hooks/hooks.json
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "gimme-the-lint update-check hook — nudges/auto-updates per policy.",
|
|
3
|
+
"hooks": {
|
|
4
|
+
"SessionStart": [
|
|
5
|
+
{
|
|
6
|
+
"hooks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "command",
|
|
9
|
+
"command": "node \"${CLAUDE_PLUGIN_ROOT}/hooks/session-start.mjs\""
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
}
|
package/install.sh
CHANGED
|
File without changes
|
package/lib/config-manager.js
CHANGED
|
File without changes
|
|
File without changes
|
package/lib/drift-detector.js
CHANGED
|
File without changes
|
package/lib/git-hooks-manager.js
CHANGED
|
File without changes
|
package/lib/index.js
CHANGED
|
File without changes
|
package/lib/installer.js
CHANGED
|
File without changes
|
package/lib/manifest-manager.js
CHANGED
|
File without changes
|
package/lib/venv-manager.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theglitchking/gimme-the-lint",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Progressive linting system with directory-chunked baselines, drift detection, and auto-healing for monorepo projects (Python + JS/TS)",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"linting",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"gimme-the-lint": "./bin/gimme-the-lint.js"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
|
-
"postinstall": "node ./
|
|
37
|
+
"postinstall": "node ./scripts/link-skills.mjs",
|
|
38
38
|
"setup:venv": "bash ./scripts/setup-venv.sh",
|
|
39
39
|
"install:hooks": "bash ./githooks/install.sh",
|
|
40
40
|
"lint:init": "node ./bin/gimme-the-lint.js init",
|
|
@@ -42,7 +42,6 @@
|
|
|
42
42
|
"check:fix": "node ./bin/gimme-the-lint.js check --fix",
|
|
43
43
|
"baseline": "node ./bin/gimme-the-lint.js baseline",
|
|
44
44
|
"dashboard": "node ./bin/gimme-the-lint.js dashboard",
|
|
45
|
-
"prepublishOnly": "bash ./scripts/validate-version.sh",
|
|
46
45
|
"test": "node --test tests/*.test.js"
|
|
47
46
|
},
|
|
48
47
|
"files": [
|
|
@@ -50,8 +49,10 @@
|
|
|
50
49
|
"scripts/",
|
|
51
50
|
"templates/",
|
|
52
51
|
"githooks/",
|
|
52
|
+
"hooks/",
|
|
53
53
|
"lib/",
|
|
54
54
|
".claude-plugin/",
|
|
55
|
+
"commands/",
|
|
55
56
|
"agents/",
|
|
56
57
|
"docs/",
|
|
57
58
|
"install.sh",
|
|
@@ -61,12 +62,13 @@
|
|
|
61
62
|
"CHANGELOG.md"
|
|
62
63
|
],
|
|
63
64
|
"engines": {
|
|
64
|
-
"node": ">=
|
|
65
|
+
"node": ">=20.0.0"
|
|
65
66
|
},
|
|
66
67
|
"publishConfig": {
|
|
67
68
|
"access": "public"
|
|
68
69
|
},
|
|
69
70
|
"dependencies": {
|
|
71
|
+
"@theglitchking/claude-plugin-runtime": "^0.1.0",
|
|
70
72
|
"chalk": "^4.1.2",
|
|
71
73
|
"commander": "^12.1.0",
|
|
72
74
|
"fs-extra": "^11.2.0"
|
package/scripts/dashboard.sh
CHANGED
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Postinstall — delegates to @theglitchking/claude-plugin-runtime.
|
|
3
|
+
|
|
4
|
+
import { runPostinstall } from "@theglitchking/claude-plugin-runtime";
|
|
5
|
+
import { dirname, resolve } from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
|
|
8
|
+
const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
runPostinstall({
|
|
12
|
+
packageName: "@theglitchking/gimme-the-lint",
|
|
13
|
+
pluginName: "gimme-the-lint",
|
|
14
|
+
configFile: "gimme-the-lint.json",
|
|
15
|
+
skillsDir: null,
|
|
16
|
+
packageRoot,
|
|
17
|
+
hookCommand:
|
|
18
|
+
"node ./node_modules/@theglitchking/gimme-the-lint/hooks/session-start.mjs",
|
|
19
|
+
});
|
|
20
|
+
} catch (err) {
|
|
21
|
+
console.warn(`[gimme-the-lint] postinstall failed: ${err?.message || err}`);
|
|
22
|
+
}
|
package/scripts/ruff-baseline.sh
CHANGED
|
File without changes
|
package/scripts/run-checks.sh
CHANGED
|
File without changes
|
package/scripts/setup-venv.sh
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/uninstall.sh
CHANGED
|
File without changes
|
package/bin/postinstall.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
// Post-install script for gimme-the-lint
|
|
5
|
-
// Runs after npm install to show next steps
|
|
6
|
-
// Does NOT auto-setup venv (user should opt-in via `gimme-the-lint install`)
|
|
7
|
-
|
|
8
|
-
const isGlobal = process.env.npm_config_global === 'true';
|
|
9
|
-
|
|
10
|
-
console.log('');
|
|
11
|
-
console.log(' gimme-the-lint installed successfully!');
|
|
12
|
-
console.log('');
|
|
13
|
-
|
|
14
|
-
if (isGlobal) {
|
|
15
|
-
console.log(' Global install detected. Usage:');
|
|
16
|
-
console.log(' cd your-project');
|
|
17
|
-
console.log(' gimme-the-lint install Initialize configs & venv');
|
|
18
|
-
console.log(' gimme-the-lint baseline Create linting baselines');
|
|
19
|
-
console.log(' gimme-the-lint hooks Install git hooks');
|
|
20
|
-
} else {
|
|
21
|
-
console.log(' Next steps:');
|
|
22
|
-
console.log(' npx gimme-the-lint install Initialize configs & venv');
|
|
23
|
-
console.log(' npx gimme-the-lint baseline Create linting baselines');
|
|
24
|
-
console.log(' npx gimme-the-lint hooks Install git hooks');
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
console.log('');
|
|
28
|
-
console.log(' Documentation: https://github.com/TheGlitchKing/gimme-the-lint');
|
|
29
|
-
console.log('');
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# gimme-the-lint: Version Validation (pre-publish check)
|
|
3
|
-
# Ensures package.json version, CHANGELOG.md, and git tag are in sync
|
|
4
|
-
|
|
5
|
-
set -e
|
|
6
|
-
|
|
7
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
-
PACKAGE_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
9
|
-
|
|
10
|
-
RED='\033[0;31m'
|
|
11
|
-
GREEN='\033[0;32m'
|
|
12
|
-
YELLOW='\033[1;33m'
|
|
13
|
-
NC='\033[0m'
|
|
14
|
-
|
|
15
|
-
PKG_VERSION=$(node -p "require('${PACKAGE_DIR}/package.json').version")
|
|
16
|
-
|
|
17
|
-
echo "Validating version: v${PKG_VERSION}"
|
|
18
|
-
|
|
19
|
-
# Check CHANGELOG has entry for this version
|
|
20
|
-
if [ -f "${PACKAGE_DIR}/CHANGELOG.md" ]; then
|
|
21
|
-
if grep -q "## \[${PKG_VERSION}\]" "${PACKAGE_DIR}/CHANGELOG.md" || grep -q "## ${PKG_VERSION}" "${PACKAGE_DIR}/CHANGELOG.md"; then
|
|
22
|
-
echo -e "${GREEN}✓${NC} CHANGELOG.md has entry for v${PKG_VERSION}"
|
|
23
|
-
else
|
|
24
|
-
echo -e "${YELLOW}⚠${NC} CHANGELOG.md missing entry for v${PKG_VERSION}"
|
|
25
|
-
fi
|
|
26
|
-
else
|
|
27
|
-
echo -e "${YELLOW}⚠${NC} CHANGELOG.md not found"
|
|
28
|
-
fi
|
|
29
|
-
|
|
30
|
-
# Check README exists
|
|
31
|
-
if [ -f "${PACKAGE_DIR}/README.md" ]; then
|
|
32
|
-
echo -e "${GREEN}✓${NC} README.md exists"
|
|
33
|
-
else
|
|
34
|
-
echo -e "${RED}✗${NC} README.md missing"
|
|
35
|
-
exit 1
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
# Check LICENSE exists
|
|
39
|
-
if [ -f "${PACKAGE_DIR}/LICENSE" ]; then
|
|
40
|
-
echo -e "${GREEN}✓${NC} LICENSE exists"
|
|
41
|
-
else
|
|
42
|
-
echo -e "${RED}✗${NC} LICENSE missing"
|
|
43
|
-
exit 1
|
|
44
|
-
fi
|
|
45
|
-
|
|
46
|
-
echo -e "${GREEN}✓${NC} Version validation passed: v${PKG_VERSION}"
|