# Harness Parity Council

> Lisa-only advisory workflow for consulting external coding-agent CLIs about runtime parity without bundling this skill into host projects

- Skill: `codyswanngt/harness-parity-council` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add codyswanngt/harness-parity-council`
- Raw SKILL.md: https://api.skillmd.com/api/skills/codyswanngt/harness-parity-council/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: codyswanngt (https://skillmd.com/u/codyswanngt)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/codyswanngt/harness-parity-council

---


# 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:

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

Examples:

```text
/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.

