Skip to content

feat(plugins): add 4 BSI-native plugins — gameday-ops, site-ops, editorial-desk, champion-enigma-engine#2

Open
ahump20 wants to merge 2 commits into
mainfrom
feat/bsi-native-plugins-v1
Open

feat(plugins): add 4 BSI-native plugins — gameday-ops, site-ops, editorial-desk, champion-enigma-engine#2
ahump20 wants to merge 2 commits into
mainfrom
feat/bsi-native-plugins-v1

Conversation

@ahump20

@ahump20 ahump20 commented Apr 13, 2026

Copy link
Copy Markdown
Owner

Summary

Adds four BSI-native plugins ported from Austin's existing Claude Code workspace, promoting the marketplace from 2 → 6 available plugins.

  • gameday-ops — live game coverage with the production bsi-gameday-ops skill (6 reference workflows, 4 output templates). Wired to the Blaze Sports Intel MCP.
  • site-ops — Heritage v2.1 visual compliance + skill-package curation. Bundles visual-audit skill plus build-verify and skill-package-curator agents. Auto-starts chrome-devtools MCP.
  • editorial-desk — voice guide + anti-fabrication protocol + research workflow. Codifies the BSI editorial standard so deadline pressure doesn't produce invented stats or fabricated quotes.
  • champion-enigma-engine — biometric-visual AI framework for quantifying athlete intangibles. Four components (VCA / PD / PP / NQE), 2025 research-grounded feasibility ratings, consent-first, pairs with huggingface-skills for downstream ML.

All four follow the existing dual-platform convention (both .claude-plugin/ and .codex-plugin/ manifests; Codex interface block with brandColor #BF5700). All JSON validated. marketplace.json catalog and root README updated.

Ghost plugin dirs flagged for triage

Four skeletal plugin dirs exist in the tree but are NOT registered in marketplace.json — leftover from earlier Copilot iterations:

  • `plugins/college-baseball-sabermetrics/` — appears to be a duplicate of `cbb-sabermetrics` (which is the registered, full-featured one).
  • `plugins/live-scores/` — superseded by the new `gameday-ops` in this PR.
  • `plugins/sports-analytics/` — generic; the marketplace already lists sport-specific analytics plugins (`mlb-sabermetrics`, `nfl-analytics`, etc.) as coming-soon.
  • `plugins/fantasy-sports/` — off-brand for BSI; was never registered. Recommend removing unless there's a product reason to keep it.

Left untouched in this PR for separate decision. Recommend a follow-up PR to `git rm` the superseded dirs.

Test plan

  • `/plugin marketplace add ahump20/Sports-Plugins` (or branch) resolves without errors.
  • `/plugin install gameday-ops` → MCP auto-registers, `/gameday-watch` command available.
  • `/plugin install site-ops` → `build-verify` and `skill-package-curator` agents available; chrome-devtools MCP connects.
  • `/plugin install editorial-desk` → three skills invocable by trigger phrase; `/editorial-brief` command functions.
  • `/plugin install champion-enigma-engine` → four skills loaded; `/cee-evaluate` agent coordinator runs.
  • Run `plugin-dev:plugin-validator` against each new plugin dir → zero errors.
  • Run `plugin-dev:skill-reviewer` on each new SKILL.md → trigger phrases score ≥ 0.8.
  • Live smoke: invoke `college-baseball-intelligence` during game hours → verify handoff to `gameday-ops`.

Discovery and rationale

Plan lives at `~/.claude/plans/gleaming-foraging-dream.md` — the inventory of every Skill / Agent / MCP connector worthy of sports-plugins, with feasibility ratings and touch-up notes. This PR implements the four plugin slots not already covered by Copilot's initial scaffolding.

🤖 Generated with Claude Code

…igma-engine

Four BSI-native plugins wired from Austin's existing Claude Code workspace:

- gameday-ops: live game coverage desk with the production bsi-gameday-ops
  skill (6 reference workflows, 4 output templates), wired to the Blaze Sports
  Intel MCP for real-time data. Supersedes the ghost live-scores/ scaffold.
- site-ops: Heritage v2.1 visual compliance and skill-package curation. Bundles
  the visual-audit skill and two BSI-native agents (build-verify,
  skill-package-curator). Auto-starts chrome-devtools MCP via stdio.
- editorial-desk: editorial voice + anti-fabrication discipline. Three new
  skills (bsi-voice-guide, anti-fabrication-protocol, research-workflow)
  codify the BSI journalism standard so deadline pressure doesn't produce
  fabricated quotes or invented stats. Supersedes sports-storytelling slot.
- champion-enigma-engine: biometric-visual AI framework for quantifying
  athlete intangibles. Four skills covering the VCA / PD / PP / NQE components
  with 2025 research-grounded feasibility ratings (Feasible / Emerging /
  Speculative), plus a cee-evaluator agent and /cee-evaluate + /cee-compare
  commands. Consent-first, no overstated claims, paired with huggingface-skills
  for downstream ML pipelines.

All four plugins ship both .claude-plugin/ and .codex-plugin/ manifests. Each
.codex-plugin/plugin.json includes the rich interface block with brandColor
#BF5700. marketplace.json updated: +4 available plugins, sports-storytelling
coming-soon entry removed (superseded by editorial-desk).

Ghost plugin dirs (college-baseball-sabermetrics, fantasy-sports, live-scores,
sports-analytics) left untouched for triage in PR review — none are
registered in the marketplace so installs are unaffected.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings April 13, 2026 16:16

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 40062f6f4a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


**Anti-Fabrication**: If the skill file doesn't exist, say so explicitly. If fields are missing, list them — do not infer or invent. If you cannot read the manifest format, ask for clarification.

**Path Handling**: The user sometimes pastes escaped paths (e.g., `com\~apple\~CloudDocs`). Normalize to the absolute iCloud path before reading. If the path appears malformed (e.g., leading `/U/Users/...`), flag it and propose the corrected path: `/Users/AustinHumphrey/Library/Mobile Documents/com~apple~CloudDocs/BSI-repo/skill-packages/universal-skills-marketplace.skill`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Remove hardcoded iCloud path normalization

This agent hardcodes a single machine-specific path as the “correct” location for skill manifests, so on any installation that is not Austin’s iCloud repo it will misclassify valid user inputs and steer execution to a nonexistent path. That makes skill-package-curator fail for the majority of users even when they provide a valid package path. The path handling should stay generic (normalize escaping only) and preserve the user-provided absolute/relative location.

Useful? React with 👍 / 👎.


# Persistent Agent Memory

You have a persistent, file-based memory system at `/Users/AustinHumphrey/.claude/agent-memory/skill-package-curator/`. This directory already exists — write to it directly with the Write tool (do not run mkdir or check for its existence).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Drop machine-specific memory directory requirement

The agent requires writes to /Users/AustinHumphrey/.claude/agent-memory/skill-package-curator/ and assumes that directory already exists, which is false for other users and environments. In practice this causes memory operations to fail (or attempt writes outside the working project), breaking the agent’s documented workflow whenever the command is used outside that one host setup.

Useful? React with 👍 / 👎.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds four new first-party plugins to the Sports-Plugins marketplace, expanding the available plugin catalog and documenting how to install and use each plugin’s skills/agents/commands.

Changes:

  • Added new plugins: gameday-ops, site-ops, editorial-desk, and champion-enigma-engine (skills/agents/commands + manifests + READMEs).
  • Updated marketplace registration (.claude-plugin/marketplace.json) and root README.md to reflect the expanded set of available plugins.
  • Added MCP configuration for gameday-ops (HTTP MCP) and site-ops (Chrome DevTools MCP via npx).

Reviewed changes

Copilot reviewed 46 out of 46 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
plugins/site-ops/skills/visual-audit/SKILL.md Adds the visual-audit skill playbook and reporting format.
plugins/site-ops/commands/heritage-audit.md Adds /heritage-audit command documentation and expected checks.
plugins/site-ops/commands/deploy-gate.md Adds /deploy-gate pre-deploy checklist and escalation routing.
plugins/site-ops/agents/skill-package-curator.md Adds skill-package-curator agent definition and operating protocol.
plugins/site-ops/agents/build-verify.md Adds build-verify agent definition using Chrome DevTools MCP tools.
plugins/site-ops/README.md Documents site-ops install and included skill/agents/MCP.
plugins/site-ops/.mcp.json Defines bundled chrome-devtools MCP server (stdio via npx).
plugins/site-ops/.codex-plugin/plugin.json Codex manifest for site-ops including interface metadata.
plugins/site-ops/.claude-plugin/plugin.json Claude manifest for site-ops.
plugins/gameday-ops/skills/bsi-gameday-ops/references/tool-priority.md Documents tool-tiering and fallback hierarchy for live coverage.
plugins/gameday-ops/skills/bsi-gameday-ops/references/single-game-focus.md Defines single-game tracking workflow.
plugins/gameday-ops/skills/bsi-gameday-ops/references/post-game-recap.md Defines post-game rapid recap workflow.
plugins/gameday-ops/skills/bsi-gameday-ops/references/live-monitoring.md Defines national slate monitoring workflow and cadence.
plugins/gameday-ops/skills/bsi-gameday-ops/references/leverage-situations.md Defines high-leverage detection workflow and constraints.
plugins/gameday-ops/skills/bsi-gameday-ops/references/handoff-protocol.md Defines routing rules back to deeper “intelligence” skills.
plugins/gameday-ops/skills/bsi-gameday-ops/assets/scoreboard-template.md Adds standardized scoreboard output template.
plugins/gameday-ops/skills/bsi-gameday-ops/assets/recap-template.md Adds standardized post-game recap output template.
plugins/gameday-ops/skills/bsi-gameday-ops/assets/leverage-template.md Adds standardized leverage-moment output template.
plugins/gameday-ops/skills/bsi-gameday-ops/assets/game-focus-template.md Adds standardized single-game focus output template.
plugins/gameday-ops/skills/bsi-gameday-ops/SKILL.md Adds the bsi-gameday-ops dispatcher skill tying references/templates together.
plugins/gameday-ops/commands/gameday-watch.md Adds /gameday-watch command documentation.
plugins/gameday-ops/commands/gameday-recap.md Adds /gameday-recap command documentation.
plugins/gameday-ops/README.md Documents gameday-ops install, routing, and non-negotiables.
plugins/gameday-ops/.mcp.json Configures the Blaze Sports Intel MCP HTTP endpoint for the plugin.
plugins/gameday-ops/.codex-plugin/plugin.json Codex manifest for gameday-ops including interface metadata.
plugins/gameday-ops/.claude-plugin/plugin.json Claude manifest for gameday-ops.
plugins/editorial-desk/skills/research-workflow/SKILL.md Adds the research workflow skill (source hierarchy + reproducibility).
plugins/editorial-desk/skills/bsi-voice-guide/SKILL.md Adds the BSI voice/tone guide skill.
plugins/editorial-desk/skills/anti-fabrication-protocol/SKILL.md Adds anti-fabrication checklist and enforcement patterns.
plugins/editorial-desk/commands/recap-draft.md Adds /recap-draft long-form recap command documentation.
plugins/editorial-desk/commands/editorial-brief.md Adds /editorial-brief pre-draft brief command documentation.
plugins/editorial-desk/README.md Documents editorial-desk install and plugin boundaries vs. other plugins.
plugins/editorial-desk/.codex-plugin/plugin.json Codex manifest for editorial-desk including interface metadata.
plugins/editorial-desk/.claude-plugin/plugin.json Claude manifest for editorial-desk.
plugins/champion-enigma-engine/skills/visual-cortex-analyzer/SKILL.md Adds VCA component skill (vision/gaze/posture) with feasibility tags.
plugins/champion-enigma-engine/skills/psychological-profiler/SKILL.md Adds PP component skill (psychometrics/cognitive/pressure) with ethics guidance.
plugins/champion-enigma-engine/skills/physiological-decoder/SKILL.md Adds PD component skill (HRV/EEG/GSR) with anti-overclaim rules.
plugins/champion-enigma-engine/skills/cee-framework/SKILL.md Adds CEE framework skill defining the feasibility governance model.
plugins/champion-enigma-engine/commands/cee-evaluate.md Adds /cee-evaluate command documentation and modes.
plugins/champion-enigma-engine/commands/cee-compare.md Adds /cee-compare command documentation and comparison rules.
plugins/champion-enigma-engine/agents/cee-evaluator.md Adds cee-evaluator agent template and reporting format.
plugins/champion-enigma-engine/README.md Documents CEE components, scope limits, and recommended downstream dependencies.
plugins/champion-enigma-engine/.codex-plugin/plugin.json Codex manifest for champion-enigma-engine including interface metadata.
plugins/champion-enigma-engine/.claude-plugin/plugin.json Claude manifest for champion-enigma-engine.
README.md Updates the root catalog to list the four new available plugins and coming-soon roadmap.
.claude-plugin/marketplace.json Registers the four new plugins as available in the marketplace manifest.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread plugins/gameday-ops/commands/gameday-watch.md Outdated
Comment on lines +5 to +7
"command": "npx",
"args": ["-y", "chrome-devtools-mcp@latest"],
"description": "Chrome DevTools MCP — navigate, screenshot, evaluate JS, inspect console and network. Used by the build-verify agent for in-session visual compliance checks."

Copilot AI Apr 13, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using chrome-devtools-mcp@latest makes plugin behavior non-reproducible and can break installs when upstream releases a breaking change. Consider pinning to a known-good version (and updating intentionally) to improve reliability.

Copilot uses AI. Check for mistakes.
Comment on lines +206 to +211
## Existing Patterns to Reuse

- **Overflow evaluator:** `tests/smoke/mobile-overflow.spec.ts` — `createOverflowEvaluator()`
- **Banned placeholders:** `tests/e2e/production-audit.spec.ts` — `BANNED_PLACEHOLDERS`
- **Truthful state:** `tests/e2e/production-audit.spec.ts` — `assertTruthfulState()`
- **Heritage tokens:** `docs/design-system/heritage-tokens-reference.css`

Copilot AI Apr 13, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This skill references repo paths that don’t exist in this repository (e.g., tests/smoke/mobile-overflow.spec.ts, tests/e2e/production-audit.spec.ts). Either add those referenced files, or change this section to point at resources that actually exist here (or explicitly label them as paths in the separate BSI app repo).

Copilot uses AI. Check for mistakes.
Comment on lines +210 to +212
- **Truthful state:** `tests/e2e/production-audit.spec.ts` — `assertTruthfulState()`
- **Heritage tokens:** `docs/design-system/heritage-tokens-reference.css`
- **Heritage spec:** `docs/design-system/heritage-v2.1-spec.md`

Copilot AI Apr 13, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This list also references docs/design-system/* files that are not present in this repo (no docs/design-system/ directory). If these are meant to live in a separate BSI product repo, please clarify that in the text; otherwise add the referenced design-system docs so the links aren’t dead.

Copilot uses AI. Check for mistakes.
Comment on lines +30 to +35
Verify after edits to:
- `app/**/*.tsx` — page components
- `components/**/*.tsx` — shared components
- `app/styles/**` or `app/globals.css` — global styles
- `tailwind.config.*` — Tailwind tokens
- Heritage token files in `docs/design-system/`

Copilot AI Apr 13, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The agent instructions reference project paths (app/**, components/**, docs/design-system/) that don’t exist in this repository. If this agent is intended to be used inside a separate BSI app repo, please say so explicitly (or make the paths configurable) so users don’t try to follow steps against this plugin repo and hit dead ends.

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +6
---
name: "skill-package-curator"
description: "Use this agent when the user references a skill package path (e.g., paths under `skill-packages/`), asks to install, validate, publish, or audit a skill package, or requests work involving the universal-skills-marketplace.skill manifest. This includes parsing skill manifests, verifying skill package structure, wiring skills into the BSI platform, and managing the skills marketplace lifecycle.\\n\\n<example>\\nContext: User wants to validate a skill package in the BSI repo.\\nuser: \"/Users/AustinHumphrey/Library/Mobile Documents/com~apple~CloudDocs/BSI-repo/skill-packages/universal-skills-marketplace.skill\"\\nassistant: \"I'm going to use the Agent tool to launch the skill-package-curator agent to inspect and validate this skill package manifest.\"\\n<commentary>\\nThe user referenced a skill package path directly. Use the skill-package-curator to read the manifest, verify structure, and report findings.\\n</commentary>\\n</example>\\n\\n<example>\\nContext: User wants to publish a new skill to the marketplace.\\nuser: \"Add the college-baseball-analytics skill to the universal marketplace\"\\nassistant: \"Let me use the Agent tool to launch the skill-package-curator agent to wire this skill into the marketplace manifest.\"\\n<commentary>\\nSkill marketplace operations require manifest-aware handling. Delegate to skill-package-curator.\\n</commentary>\\n</example>"
model: sonnet
memory: user
---

Copilot AI Apr 13, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This agent hardcodes a local absolute path under /Users/AustinHumphrey/... in the frontmatter description examples. That makes the plugin non-portable and leaks a user-specific path into a public plugin. Prefer using a placeholder (e.g., /Users/<you>/...) or a relative path explanation, and avoid assuming iCloud directory structure.

Copilot uses AI. Check for mistakes.
Comment on lines +78 to +83
# Persistent Agent Memory

You have a persistent, file-based memory system at `/Users/AustinHumphrey/.claude/agent-memory/skill-package-curator/`. This directory already exists — write to it directly with the Write tool (do not run mkdir or check for its existence).

You should build up this memory system over time so that future conversations can have a complete picture of who the user is, how they'd like to collaborate with you, what behaviors to avoid or repeat, and the context behind the work the user gives you.

Copilot AI Apr 13, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The “Persistent Agent Memory” section instructs writing to /Users/AustinHumphrey/.claude/agent-memory/... with a “Write tool”. This is very environment-specific and may not exist (or may be inaccessible) for most users/runtimes. Consider removing the hardcoded path and instead instruct the agent to use the platform’s provided memory mechanism (or to ask the user where to store notes).

Copilot uses AI. Check for mistakes.
@ahump20 ahump20 requested a review from Copilot April 14, 2026 00:10
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 46 out of 46 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +52 to +56
## Non-negotiable rules enforced

- **No mock data.** Pre-commit hook and the build-verify agent both block `Math.random()` in data contexts, `mockGames`, `sampleData`, `faker.`, hardcoded team/score objects.
- **No freshness fabrication.** No hardcoded "live", "updated just now", "current" strings. Freshness comes from `meta.fetched_at`.
- **Verification before completion.** "Build passed" is not verification. Must `curl` the affected URLs and confirm real data appears.

Copilot AI Apr 14, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README claims a "Pre-commit hook" blocks mock-data patterns, but this repository only appears to enforce those patterns via CI (see .github/workflows/validate.yml), and the plugin itself doesn’t install a git hook. Consider rewording to avoid implying local pre-commit enforcement unless you actually ship hook setup instructions/code.

Copilot uses AI. Check for mistakes.
1. Calls `bsi_get_scoreboard` (or sport-specific equivalent) via the Blaze Sports Intel MCP.
2. Filters for games currently in progress.
3. For each live game, reads leverage state using the `leverage-situations.md` reference.
4. Returns a formatted board: score, inning/quarter, win probability, leverage flag.

Copilot AI Apr 14, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/gameday-watch output promises "win probability" for each live game, but the preceding steps only call bsi_get_scoreboard and a reference doc. If win probability requires extra tool calls (e.g., predict_game_outcome) it should be described as optional/conditional, or the output should omit it to avoid overpromising (and avoid an expensive per-game call pattern).

Suggested change
4. Returns a formatted board: score, inning/quarter, win probability, leverage flag.
4. Returns a formatted board: score, inning/quarter, leverage flag.

Copilot uses AI. Check for mistakes.
Comment on lines +28 to +30

Uses `assets/scoreboard-template.md` from the bsi-gameday-ops skill. Close games (score diff ≤ 3 in baseball, ≤ 7 in football, ≤ 5 in basketball) and high-leverage late-inning situations are marked with text status prefixes/flags consistent with that template (no emoji).

Copilot AI Apr 14, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This command says close/high-leverage games are marked with 🔥/⚡ emojis, but the referenced assets/scoreboard-template.md explicitly states "No emoji — text status prefixes only". Pick one convention and make both the command and template consistent (prefer text-only if that’s the global rule).

Copilot uses AI. Check for mistakes.
# Leverage Situation Output Template

```
⚡ HIGH LEVERAGE — [Game], [Inning]

Copilot AI Apr 14, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The leverage output template starts with an emoji (⚡), which conflicts with the scoreboard template’s stated "No emoji" rule and the /gameday-watch command’s desire to use the scoreboard template conventions. Consider switching to a text-only prefix (e.g., "HIGH LEVERAGE") if the no-emoji rule is intended to be consistent across outputs.

Suggested change
HIGH LEVERAGE — [Game], [Inning]
HIGH LEVERAGE — [Game], [Inning]

Copilot uses AI. Check for mistakes.
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.

2 participants