Maintain GitHits Plugin Surfaces
This is an internal, repository-only skill. Do not publish or package it with
the public skills under skills/.
Keep root skills and shared metadata canonical. Treat generated manifests and
host MCP files as reviewable build artifacts, not authoring locations.
Workflow
- Identify the canonical input that owns the requested behavior.
- Read
docs/implementation/plugin-packaging.md before changing packaging or
transport behavior.
- Edit canonical inputs only.
- For the stable MCP quick-start guide, keep
packages/mcp/src/mcp/instructions.ts buildMcpQuickStart() and the
terminal ## Quick-start guide section in skills/githits-mcp/SKILL.md
byte-for-byte aligned in the same PR. src/skills-packaging.test.ts is the
exact-parity contract; exclude buildLocalMcpQuickStart() runtime
appendices from the public copy. Route behavior-dependent guide changes
through the public Agent Skill lifecycle.
- Run
bun run plugins:generate.
- Inspect every generated diff and confirm it follows from the canonical
change.
- Run
bun run plugins:check.
- Run targeted tests, then the required smoke or agent evaluations for the
affected surface.
Canonical Ownership
- Author public skill content only under
skills/.
- Author shared agent guidance in
AGENTS.md; keep CLAUDE.md and GEMINI.md
as symlinks to it.
packages/mcp/src/mcp/instructions.ts owns the stable quick-start builder;
the terminal guide in skills/githits-mcp/SKILL.md is its exact public copy.
- Use
package.json for root version, identity, and shared package metadata.
- Use
server.json for registry transports and the hosted MCP endpoint.
- Use
scripts/generate-plugin-assets.ts for host rendering and validation.
Transport Contract
- Every plugin and extension package uses
https://mcp.githits.com. Claude,
Codex, Cursor, and VS Code/GitHub Copilot OpenPlugin share generated
.mcp.json; Gemini uses gemini-extension.json with httpUrl; and
Antigravity uses mcp_config.json with serverUrl.
- The hosted server lives in the separate
remote-mcp repository and consumes
released @githits/mcp for tool registration, descriptors, quick_start,
and tool logic. Keep transport, request-scoped service composition,
auth/session handling, deployment, and observability in remote-mcp; never
reimplement package-owned MCP behavior there. Hosted descriptor changes take
effect only after the package release is adopted and deployed by
remote-mcp.
- Direct
githits init configuration retains stdio except for Cursor, which is
remote-only. Claude and Gemini CLI setup remove legacy plugin or extension
state before installing the user-scoped stdio server.
server.json advertises both remote and version-pinned npm stdio transports.
Do not change another host's transport without an explicit product decision.
Validation
Always run:
bun run plugins:generate
bun run plugins:check
bun test
Also run bun run build before signoff. Run the repository-required smoke suites
when MCP, CLI, packaging, auth, or shared agent behavior changes. Run targeted
bun run agent:e2e workloads when skills, instructions, descriptions, or
agent-facing behavior change.
Guardrails
- Do not manually patch generated manifests to make a check pass.
- Do not add authored host-specific skill forks.
- Do not add Markdown plugin commands unless the command is an intentional,
tested product surface.
- Stop if generated changes cannot be explained by canonical input changes.
1---2name: githits-plugin-maintenance3description: Internal repository-maintenance skill for GitHits cross-host plugin and Agent Skill surfaces. Use only while working in the githits-cli repository when changing skills, agent guidance, plugin or marketplace manifests, Gemini or Cursor extensions, MCP transport metadata, root release metadata, plugin generation, or agent-facing installation and authentication behavior.4---56# Maintain GitHits Plugin Surfaces78This is an internal, repository-only skill. Do not publish or package it with9the public skills under `skills/`.1011Keep root skills and shared metadata canonical. Treat generated manifests and12host MCP files as reviewable build artifacts, not authoring locations.1314## Workflow15161. Identify the canonical input that owns the requested behavior.172. Read `docs/implementation/plugin-packaging.md` before changing packaging or18 transport behavior.193. Edit canonical inputs only.204. For the stable MCP quick-start guide, keep21 `packages/mcp/src/mcp/instructions.ts` `buildMcpQuickStart()` and the22 terminal `## Quick-start guide` section in `skills/githits-mcp/SKILL.md`23 byte-for-byte aligned in the same PR. `src/skills-packaging.test.ts` is the24 exact-parity contract; exclude `buildLocalMcpQuickStart()` runtime25 appendices from the public copy. Route behavior-dependent guide changes26 through the public Agent Skill lifecycle.275. Run `bun run plugins:generate`.286. Inspect every generated diff and confirm it follows from the canonical29 change.307. Run `bun run plugins:check`.318. Run targeted tests, then the required smoke or agent evaluations for the32 affected surface.3334## Canonical Ownership3536- Author public skill content only under `skills/`.37- Author shared agent guidance in `AGENTS.md`; keep `CLAUDE.md` and `GEMINI.md`38 as symlinks to it.39- `packages/mcp/src/mcp/instructions.ts` owns the stable quick-start builder;40 the terminal guide in `skills/githits-mcp/SKILL.md` is its exact public copy.41- Use `package.json` for root version, identity, and shared package metadata.42- Use `server.json` for registry transports and the hosted MCP endpoint.43- Use `scripts/generate-plugin-assets.ts` for host rendering and validation.4445## Transport Contract4647- Every plugin and extension package uses `https://mcp.githits.com`. Claude,48 Codex, Cursor, and VS Code/GitHub Copilot OpenPlugin share generated49 `.mcp.json`; Gemini uses `gemini-extension.json` with `httpUrl`; and50 Antigravity uses `mcp_config.json` with `serverUrl`.51- The hosted server lives in the separate `remote-mcp` repository and consumes52 released `@githits/mcp` for tool registration, descriptors, `quick_start`,53 and tool logic. Keep transport, request-scoped service composition,54 auth/session handling, deployment, and observability in `remote-mcp`; never55 reimplement package-owned MCP behavior there. Hosted descriptor changes take56 effect only after the package release is adopted and deployed by57 `remote-mcp`.58- Direct `githits init` configuration retains stdio except for Cursor, which is59 remote-only. Claude and Gemini CLI setup remove legacy plugin or extension60 state before installing the user-scoped stdio server.61- `server.json` advertises both remote and version-pinned npm stdio transports.6263Do not change another host's transport without an explicit product decision.6465## Validation6667Always run:6869```bash70bun run plugins:generate71bun run plugins:check72bun test73```7475Also run `bun run build` before signoff. Run the repository-required smoke suites76when MCP, CLI, packaging, auth, or shared agent behavior changes. Run targeted77`bun run agent:e2e` workloads when skills, instructions, descriptions, or78agent-facing behavior change.7980## Guardrails8182- Do not manually patch generated manifests to make a check pass.83- Do not add authored host-specific skill forks.84- Do not add Markdown plugin commands unless the command is an intentional,85 tested product surface.86- Stop if generated changes cannot be explained by canonical input changes.