feat: cross-platform support for Claude Code, Cursor, and Copilot (v0.3.0)#12
Merged
feat: cross-platform support for Claude Code, Cursor, and Copilot (v0.3.0)#12
Conversation
Adds /harness-compile skill to the harness-share plugin. Compiles a harness.yaml into native config files for Claude Code, Cursor, and GitHub Copilot — instruction files, MCP server configs, skill files, and permissions. Supports --target, --dry-run, and --clean flags. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add --verbose flag to Step 1 flag list - Make MCP collision warning use dynamic target file path Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Inventories skills, MCP configs, and harness instruction blocks across Claude Code, Cursor, and Copilot; reports divergence; and executes push or pull sync with explicit conflict resolution. Push path delegates to harness-compile logic; pull path updates harness.yaml then recompiles. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
After generating Claude Code install commands, harness-import now detects Cursor and Copilot in the project and offers to copy skill files, write platform-specific MCP configs, and compile instructions to each tool's native format (Step 5.5, extended Step 6, extended Step 8, Step 9.5 report). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Extend Step 1 to scan Cursor, Copilot, and agentskills.io skill directories in addition to ~/.claude/skills/, with deduplication and combined display. Add Step 2.5 to detect harness-generated instruction blocks in cross-platform files (.cursor/rules/harness.mdc, .github/copilot-instructions.md) and offer to include them in the export. Add Step 2.6 to detect MCP servers from .mcp.json, .cursor/mcp.json, and .vscode/mcp.json, merge with deduplication, and offer to include them. Add harness-compile and harness-sync to the known-plugins table in Step 3. Update Step 4 rules to reference content collected in Steps 2.5 and 2.6. Update Step 5 to mention /harness-compile as the next step after export. Update README to reflect cross-platform sourcing, v1 output format, and /harness-compile next step. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nventory - Fix broken plugins/stage/ link → plugins/capture-session/ - Fix contradictory "Requires Claude Code" header → lists all three platforms - Add --verbose to harness-compile README flags table - Add .agents/skills/ (shared) to harness-sync skill inventory table - Clarify harness-compile reference in harness-sync related skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- harness-import README: note MCP configs are written to Cursor/Copilot - harness-sync README: clarify pull modifies harness.yaml source of truth Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix dead link in README.md (cross-harness setup guide) → harnessprotocol.io - Correct compiler-targets.md: platform-specific dirs are default, .agents/skills/ is opt-in - Add disable-model-invocation: true to harness-import (consistent with other 3 skills) - Fix harness-import README cross-platform report to show slot names per SKILL.md Step 9.5 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…iles Scaffold the full marketplace Next.js app with Supabase backend: - Dense list-row layout for plugins and profiles (not card grid) - Two-column plugin detail page with sticky sidebar - Sort controls (installs/recent), sidebar filters, inline metadata - Routes: /plugins, /plugins/[slug], /profiles, /profiles/[slug] - API routes: search, install tracking, registration, GitHub sync - Shared types package (@harness-kit/shared) - pnpm workspace with marketplace + shared packages - Profile YAML definitions and website doc reorganization Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… naming - Apply category and tag filters to plugin browse query (were parsed but ignored) - Sanitize PostgREST filter metacharacters in search API .or() fallback - Add atomic increment_install_count RPC to avoid read-then-write race - Use constant-time comparison for webhook signature verification - Reject webhook requests when GITHUB_WEBHOOK_SECRET is unset - Rename remaining "components" → "plugins" in metadata and profile detail Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…plugin docs All 10 plugin docs had marketplace links pointing to the old /components/ route. Updated to /plugins/ to match the marketplace route rename. Also added missing language tag on overview install code block. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add missing harness-validate SKILL.md embed to harness-share doc - Add Profiles section to plugin overview with role-based profile table - Clarify secrets management links (schema vs setup guide) - Explain empty matcher field in capture-session Stop hook example Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add API key auth to /api/register endpoint (prevents spam registration) - Sanitize tsquery operators and ilike wildcards in search API - Add disable-model-invocation to harness-validate SKILL.md frontmatter - Create missing harness-validate README.md - Fix harness-share.mdx section ordering (group Runtime Config, then Plugin Docs) - Replace siracusa5 org references with harnessprotocol in validate and import skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
41ea053 to
43ec1d7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/harness-compile— Compiles a singleharness.yamlto native config files for Claude Code, Cursor, and GitHub Copilot. Handles instruction files (with section markers for safe re-compilation), MCP server configs, skill file deployment with frontmatter adaptation, and permissions. Supports--target,--dry-run, and--cleanflags./harness-sync— Bidirectional sync across platforms. Inventories skills, instruction blocks, and MCP configs; detects divergence; supports push (Claude Code or Cursor → other platforms) or pull (native changes → harness.yaml → recompile). Never silently overwrites — all conflicts shown side-by-side./harness-import— Now detects Cursor/Copilot at import time and optionally copies skills, writes MCP configs, and compiles instructions to those platforms. New Steps 5.5 and 9.5./harness-export— Now scans.cursor/skills/,.github/skills/, and.agents/skills/in addition to~/.claude/skills/. Steps 2.5 and 2.6 detect harness instruction content and MCP configs from cross-platform files for reverse-engineering into harness.yaml.harness-share0.2.0→0.3.0(bothplugin.jsonandmarketplace.json)harness-protocol/extensions/compiler-targets.md— added Skills section documenting the agentskills.io compilation mapping and frontmatter adaptation rules/pluginsand/profilesroutes, sort controls, two-column detail pages with sticky sidebar, search API, install tracking, GitHub webhook sync, and shared types packageChanges
marketplace/Next.js 15 app with Supabase integrationpackages/shared/for cross-package TypeScript typespackage.json,pnpm-workspace.yaml)profiles/directory with YAML definitions (data-engineer, full-stack-engineer, research-knowledge)/componentsroutes to/pluginsacross the marketplace appTest Plan
pnpm --filter harness-kit-marketplace buildsucceeds/pluginsroute loads,/components404s/componentsreferences in app code/harness-compilewith--target cursoron a project with.cursor/— only Cursor files written/harness-compile --dry-run— no files written, preview shown/harness-syncon a project where one platform has an extra skill — divergence detectedNotes
NEXT_PUBLIC_SUPABASE_URLandNEXT_PUBLIC_SUPABASE_ANON_KEYenv vars for data; gracefully renders empty states without themdangerouslySetInnerHTMLused for markdown rendering is trusted content from our own Supabase database onlypackages/shared/dist/excluded via.gitignore— consumers build from source via workspace🤖 Generated with Claude Code