Skip to content

fix(ci): point license gate at packages/cli and align plugin tool namespace to codehub#193

Merged
theagenticguy merged 1 commit into
mainfrom
roadmap/license-gate-plugin-ns
Jun 6, 2026
Merged

fix(ci): point license gate at packages/cli and align plugin tool namespace to codehub#193
theagenticguy merged 1 commit into
mainfrom
roadmap/license-gate-plugin-ns

Conversation

@theagenticguy
Copy link
Copy Markdown
Owner

Summary

Two independent fixes for CI/runtime gates that were green but checking nothing after the package collapse (#189).

Item A — License gates were vacuous post-#189

After the 17→1 package collapse, the root package.json is private: true with dependencies: {}. So license-checker-rseidelsohn --production --excludePrivatePackages invoked from the repo root traverses zero packages and passes vacuously, leaving the real packages/cli runtime deps (including lru-cache@11.5.0, which is BlueOak-1.0.0) unvalidated. The allowlist string also diverged between callers.

Fix — all four callers now scan the cli production deps via --start packages/cli and share one unified allowlist superset:

  • scripts/acceptance.sh (gate 5)
  • mise.toml ([tasks.licenses])
  • .github/workflows/ci.yml (licenses job)
  • .github/workflows/pre-release-gate.yml (licenses-reassert job)

Unified allowlist: Apache-2.0;MIT;BSD-2-Clause;BSD-3-Clause;ISC;CC0-1.0;BlueOak-1.0.0;0BSD (acceptance.sh previously omitted BlueOak-1.0.0 and 0BSD).

Verified: the corrected command traverses 25 cli production packages and exits 0; lru-cache (BlueOak-1.0.0) is present and permitted. A deliberately-narrow allowlist (no BlueOak) correctly fails on lru-cache — proving the scan is no longer vacuous. The cli license set is {MIT, Apache-2.0, ISC, BlueOak-1.0.0}, fully covered.

Item B — Plugin tool namespace was broken at runtime

The MCP server registers under the key codehub, so the live tools are mcp__codehub__*. The plugin's code-analyst agent tool grants and the skill files referenced mcp__opencodehub__*, which matched zero real tools.

Fix — rewrote mcp__opencodehub__mcp__codehub__ across the plugins/ runtime tree (agent frontmatter grants + skill invocation/reference text) and the committed .claude/ install mirror. Server key, CLI bin name, and setup.ts are unchanged. Post-edit grep confirms zero residual mcp__opencodehub__ in the runtime trees.

Broad doc/ADR mcp__opencodehub__ prose references (docs/, packages/docs/, .erpaval/, root CLAUDE.md) are intentionally left for a follow-up branding-consistency PR — they are non-runtime.

🤖 Surfaced by an automated roadmap-survey workflow; implemented + verified in an isolated worktree (build/test/lint green).

…espace to codehub

Two independent fixes for gates that were green but checking nothing.

License gate (vacuous post package-collapse):
After the 17->1 package collapse, the root package.json is private with no
runtime dependencies, so license-checker-rseidelsohn --production
--excludePrivatePackages run from the repo root traversed zero packages and
passed vacuously. The real third-party runtime deps (including lru-cache,
which is BlueOak-1.0.0) live in packages/cli. All four callers
(scripts/acceptance.sh, mise.toml, .github/workflows/ci.yml, and
.github/workflows/pre-release-gate.yml) now pass --start packages/cli so the
checker traverses the cli production deps, and all four share one unified
allowlist superset:
Apache-2.0;MIT;BSD-2-Clause;BSD-3-Clause;ISC;CC0-1.0;BlueOak-1.0.0;0BSD
(acceptance.sh previously omitted BlueOak-1.0.0 and 0BSD). Verified the
corrected command now lists 25 cli production packages and exits 0, and a
deliberately-narrow allowlist correctly fails on lru-cache, proving the scan
is no longer vacuous.

Plugin tool namespace (broken at runtime):
The MCP server registers under the key codehub, so the live tools are
mcp__codehub__*. The plugin's code-analyst agent tool grants and the skill
files referenced tools as mcp__opencodehub__*, which matched zero real tools.
Rewrote mcp__opencodehub__ -> mcp__codehub__ across the plugins/ runtime tree
and the committed .claude/ install mirror (agent frontmatter grants + skill
invocation/reference text). Server key, CLI bin name, and setup.ts are
unchanged.
@theagenticguy theagenticguy merged commit 7c67d23 into main Jun 6, 2026
42 checks passed
@theagenticguy theagenticguy deleted the roadmap/license-gate-plugin-ns branch June 6, 2026 04:02
@github-actions github-actions Bot mentioned this pull request Jun 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant