SuperAPI AI Directory

harness-parity-council

Agents & models

View repository

Updated 10-15 20:13

About this skill

Harness Parity Council

Use this skill inside the Lisa repository when Claude needs structured parity advice from external coding-agent CLIs before changing Lisa behavior.

This skill is Lisa-only. Keep it under .agents/skills/ and do not move or mirror it into plugins/, generated plugin artifacts, host-project templates, install output, or marketplace bundles.

Use Cases

  • Research a new runtime-support PRD before decomposition or implementation.
  • Review a design sketch, branch diff, or issue for Claude/Codex/Cursor/Copilot/Antigravity parity risks.
  • Collect runtime-specific naming, packaging, permission, testing, or migration advice before editing Lisa features.

Invocation Contract

Run this skill from Claude as the lead orchestrator. Claude remains the final decision-maker. External CLI output is evidence, not authority.

Base invocation shape:

/harness-parity-council <topic-or-artifact> [--runtime <name>] [--second-round] [--dry-run] [--write-mode <mode>]

Examples:

/harness-parity-council "Codex parity for install-time hooks"
/harness-parity-council https://github.com/CodySwannGT/lisa/issues/721 --runtime codex
/harness-parity-council "review current diff for Cursor/Codex parity gaps" --second-round
/harness-parity-council "plan Antigravity support" --dry-run

Arguments

  • <topic-or-artifact>: Required. Plain-language feature prompt, issue URL, PRD URL, branch/diff summary, or other Lisa-local context to review.
  • --runtime <name>: Optional. Narrow to one runtime. Supported names: cursor, codex, copilot, antigravity.
  • --second-round: Optional. After the first advisory round, share Claude's sanitized synthesis back to available runtimes for critique.
  • --dry-run: Optional. Print planned adapter invocations and safety settings without calling external CLIs.
  • --write-mode <mode>: Optional and opt-in only. Default behavior is still read-only advisory mode. Any write-enabled mode now hard-fails unless both of these are true:
    • the run is inside an isolated worktree path (.codex/worktrees/ or .claude/worktrees/) or the maintainer explicitly sets LISA_COUNCIL_GUARDED_WORKSPACE=1 for a comparable guarded workspace
    • the maintainer explicitly acknowledges mutation intent with LISA_COUNCIL_ALLOW_WRITE=1

Runtime Adapters

The skill is designed around these configurable CLI command slots:

  • cursor via LISA_CURSOR_CLI, default candidate cursor-agent
  • codex via LISA_CODEX_CLI, default candidate codex
  • copilot via LISA_COPILOT_CLI, default candidate copilot
  • antigravity via LISA_ANTIGRAVITY_CLI, default candidate agy
  • guarded workspace override via LISA_COUNCIL_GUARDED_WORKSPACE=1
  • explicit write acknowledgement via LISA_COUNCIL_ALLOW_WRITE=1

Adapter implementation details, safe flags, timeout handling, auth detection, and output capture are handled by follow-on council tickets. This scaffold defines the contract they must satisfy.

The current adapter source of truth lives in ./runtime-adapters.mjs. Run node .agents/skills/harness-parity-council/runtime-adapters.mjs to print the resolved command slots, read-only-safe base flags, timeout budget, and local help/version probe results for each runtime.

The first-round consultation source of truth lives in ./first-round.mjs. Run node .agents/skills/harness-parity-council/first-round.mjs "<topic>" to emit the structured runtime prompt, normalized first-round capture shape, and Claude-facing synthesis inputs for the currently available runtimes.

Operating Rules

  • Default to read-only advisory execution.
  • Do not let external CLIs edit files, install dependencies, commit, push, or open PRs unless the user explicitly requests a guarded write mode.
  • Reject any explicit write mode unless the run is isolated in a worktree or comparable guarded workspace and the maintainer has acknowledged mutation intent via LISA_COUNCIL_ALLOW_WRITE=1.
  • Do not send secrets, token files, .env contents, private keys, or MCP auth artifacts to external CLIs.
  • Treat missing or unauthenticated CLIs as non-fatal. Record them as unavailable and continue.
  • Keep Claude's final synthesis separate from raw runtime responses.
  • Prefer inline summaries or gitignored Lisa-local temp artifacts over durable repo files unless a later ticket explicitly adds storage.

Expected Output

Each run should produce a concise synthesis with:

  • runtimes consulted and runtimes unavailable
  • native feature surfaces each runtime claims to support
  • parity gaps or risks
  • testing and documentation implications
  • open questions Claude should resolve before implementation

Maintainer Smoke Checks

Use these checks when changing the council scaffolding, adapter metadata, or first-round capture logic. They are internal Lisa maintainer checks only; do not ship them into host-project artifacts.

  1. Probe metadata smoke: node .agents/skills/harness-parity-council/runtime-adapters.mjs codex cursor Expect JSON output with the resolved command slot, read-only-safe args, timeout budget, and help/version probe captures for each requested runtime.
  2. First-round synthesis smoke: node .agents/skills/harness-parity-council/first-round.mjs "Codex parity for install-time hooks" Expect JSON output with availableRuntimes, unavailableRuntimes, responseEvidence, and the Claude synthesis template. Missing or unauthenticated CLIs should be recorded as unavailable instead of crashing the entire run.
  3. Fixture contract smoke: bun x vitest run tests/unit/strategies/harness-parity-council-*.test.ts Expect deterministic coverage for successful, missing, failing, and hanging runtime fixtures plus the Lisa-only placement/documentation guards.

Notes For Maintainers

  • This skill intentionally lives only in .agents/skills/.
  • The follow-on implementation tickets should add adapter execution, safety enforcement, redaction, packaging checks, and fixture-backed verification without changing this Lisa-only placement.