Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "harness-local",
"interface": {
"displayName": "Harness Local"
},
"plugins": [
{
"name": "harness-codex",
"source": {
"source": "local",
"path": "./plugins/harness-codex"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"description": "The team-architecture factory for Claude Code — a meta-skill that turns a domain description into an agent team and the skills they use, with six pre-defined team-architecture patterns (Pipeline, Fan-out/Fan-in, Expert Pool, Producer-Reviewer, Supervisor, Hierarchical Delegation). Claude Code용 팀 아키텍처 팩토리: 도메인 한 문장을 에이전트 팀과 스킬 세트로 변환하는 메타 스킬.",
"version": "1.2.0",
"author": {
"name": "robin",
"name": "revfactory",
"url": "https://github.com/revfactory"
},
"homepage": "https://github.com/revfactory/harness",
Expand Down
40 changes: 30 additions & 10 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,36 +14,56 @@ body:

**Triage SLA:** we aim to label new issues within 48h and respond substantively within 72h on business days (see [CONTRIBUTING.md](../../CONTRIBUTING.md)).

- type: input
id: claude-code-version
- type: dropdown
id: runtime
attributes:
label: Claude Code version
description: Output of `claude --version` (e.g. `2.3.1`)
placeholder: "2.x.y"
label: Runtime
description: Where did you hit this bug?
options:
- "Claude Code"
- "Codex"
- "Both"
- "Other / not sure"
validations:
required: true

- type: input
id: runtime-version
attributes:
label: Runtime version
description: Output of `claude --version`, Codex app version, or other relevant runtime version.
placeholder: "Claude Code 2.x.y / Codex version / unknown"
validations:
required: false

- type: dropdown
id: experimental-flag
attributes:
label: Experimental Agent Teams flag state
description: Is `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` set in the shell where you hit this bug?
description: For Claude Code reports, is `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` set in the shell where you hit this bug?
options:
- "Yes, flag is set to 1"
- "No, flag is unset"
- "I don't know / N/A"
- "N/A — Codex"
- "I don't know"
validations:
required: true
required: false

- type: textarea
id: reproduction
attributes:
label: Reproduction steps
description: Minimal steps to reproduce. Commands, config, and inputs please.
placeholder: |
1. `claude plugin marketplace add harness@harness`
2. `export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`
Claude Code:
1. `/plugin marketplace add revfactory/harness`
2. `/plugin install harness@harness-marketplace`
3. `claude "build a harness for ..."`

Codex:
1. Open this repository in Codex
2. Install `harness-codex` from the `Harness Local` marketplace
3. `$harness Build a Codex harness for ...`
4. observe ...
validations:
required: true
Expand Down
3 changes: 2 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ See CONTRIBUTING.md for branch naming, commit conventions, and SLAs.

- [ ] Skill / meta-skill logic
- [ ] Agent template(s)
- [ ] Plugin manifest (`.claude-plugin/plugin.json`, `marketplace.json`)
- [ ] Claude plugin manifest (`.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`)
- [ ] Codex plugin manifest (`plugins/harness-codex/.codex-plugin/plugin.json`, `.agents/plugins/marketplace.json`)
- [ ] Documentation (`README.md`, `README_KO.md`, `README_JA.md`, `docs/`)
- [ ] `CHANGELOG.md`
- [ ] CI / GitHub Actions
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,14 @@
## [Unreleased]

### Added
- README 3종과 기여 템플릿에 로컬 Codex 플러그인(`harness-codex`) 안내 추가
- 신규 에이전트/스킬 생성 전 중복 검토 단계 (Phase 3-0, Phase 4-0)
- `references/agent-design-patterns.md` "에이전트 재사용 설계" 섹션
- `references/skill-writing-guide.md` §9 "스킬 재사용 설계"

### Changed
- 버그 리포트/PR 템플릿이 Claude Code와 Codex 포트 변경을 모두 구분하도록 수정
- Codex Harness 스킬 frontmatter의 `description`을 YAML 유효 형식으로 수정
- Phase 선택 매트릭스에 3-0/4-0 명시
- Phase 2-3에 재사용 검토 단계 포인터 추가
- 산출물 체크리스트에 재사용 검토 항목 2개 추가
Expand Down
13 changes: 9 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Different kinds of contributions go through different entry points. Pick the one
### Bug report

- Open an issue using the **Bug report** form (`.github/ISSUE_TEMPLATE/bug_report.yml`).
- Required: Claude Code version, `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` flag state, reproduction steps, expected vs actual, OS.
- Required: runtime, reproduction steps, expected vs actual, OS. Include the Claude Code version and `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` flag state for Claude reports, or the Codex app/version and `harness-codex` install path for Codex reports.
- Small reproductions (< 30 lines) are ideal. If your repro needs a full project, link a public fork.

### Feature request
Expand Down Expand Up @@ -62,7 +62,8 @@ Different kinds of contributions go through different entry points. Pick the one

### Prerequisites

- Claude Code `v2.x` (Agent Teams API required)
- Claude Code `v2.x` for the Claude plugin (Agent Teams API required)
- Codex for the local `harness-codex` plugin path
- Node.js `>= 18` (for local tooling used in CI)
- Git

Expand All @@ -74,7 +75,7 @@ Harness currently requires Claude Code's experimental Agent Teams feature. Set t
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1
```

We track this dependency in `docs/experimental-dependency.md` (if Anthropic promotes the flag to stable, we update the README within 72h per the SLA above).
This flag applies to the Claude Code plugin only. The Codex port does not use Claude Code Agent Teams primitives. We track the Claude dependency in `docs/experimental-dependency.md` (if Anthropic promotes the flag to stable, we update the README within 72h per the SLA above).

### Local plugin link

Expand All @@ -90,13 +91,17 @@ claude plugin list | grep harness

Unlink with `claude plugin unlink harness` when you're done.

### Local Codex plugin

To test the Codex port, open this repository in Codex and install `harness-codex` from the `Harness Local` marketplace. The Codex plugin lives under `plugins/harness-codex/` and is exposed through `.agents/plugins/marketplace.json`; see `docs/codex-quickstart.md`.

### Running the meta-skill

```bash
claude "build a harness for a fintech risk-assessment team"
```

Scaffolded agents and skills land under `.claude/agents/` and `.claude/skills/` in the target project.
The Claude plugin scaffolds agents and skills under `.claude/agents/` and `.claude/skills/` in the target project. The Codex plugin generates `.agents/skills/`, `AGENTS.md`, and `_workspace/` artifacts instead.

### Tests & lints

Expand Down
25 changes: 21 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Harness lives at the **L3 Meta-Factory** layer of the Claude Code ecosystem —
|-------|--------------|---------------------------|
| **L3 — Meta-Factory / Team-Architecture Factory** (us) | Domain sentence → agent team + skills, via 6 pre-defined team patterns | — |
| L3 — Meta-Factory / Runtime-Configuration Factory | Deterministic, repeatable runtime configurations | [coleam00/Archon](https://github.com/coleam00/Archon) |
| L3 — Meta-Factory / Codex Runtime Port | Same concept, Codex runtime | [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) |
| L3 — Meta-Factory / Codex Runtime Port | Same concept, Codex runtime | Local [`harness-codex`](docs/codex-quickstart.md), [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) |
| L2 — Cross-Harness Workflow | Standardize skills/rules/hooks across multiple harnesses | [affaan-m/ECC](https://github.com/affaan-m/everything-claude-code) |

> Archon generates deterministic runtime configurations. Harness generates team architectures (pipeline, fan-out/fan-in, expert pool, producer-reviewer, supervisor, hierarchical delegation) plus the skills agents use. Different sub-layers of the same L3. Pick Archon for runtime determinism, Harness for team architecture, or combine them.
Expand Down Expand Up @@ -89,6 +89,12 @@ Phase 6: Validation & Testing
/plugin install harness@harness-marketplace
```

### Codex Local Plugin

This repository also ships a Codex-ready plugin at `plugins/harness-codex/`, exposed through
`.agents/plugins/marketplace.json`. See [docs/codex-quickstart.md](docs/codex-quickstart.md)
for local installation and usage.

### Direct Installation as Global Skill

```shell
Expand All @@ -102,6 +108,16 @@ cp -r skills/harness ~/.claude/skills/harness
harness/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
├── .agents/
│ └── plugins/
│ └── marketplace.json # Repo-local Codex marketplace
├── plugins/
│ └── harness-codex/
│ ├── .codex-plugin/
│ │ └── plugin.json # Codex plugin manifest
│ └── skills/
│ └── harness/
│ └── SKILL.md # Codex-native Harness skill
├── skills/
│ └── harness/
│ ├── SKILL.md # Main skill definition (6-Phase workflow)
Expand Down Expand Up @@ -233,7 +249,7 @@ Harness is not alone in the Claude Code / agent-framework ecosystem. The followi
| Repo | Their position | Relationship to Harness |
|------|----------------|-------------------------|
| [coleam00/Archon](https://github.com/coleam00/Archon) | "harness builder" — deterministic, repeatable runtime configurations | **Same L3, neighbor sub-layer.** Archon is a Runtime-Configuration Factory, Harness is a Team-Architecture Factory. Pick Archon for runtime determinism, Harness for team architecture, or combine them. |
| [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) | Codex port of the same concept | **Same L3, different runtime.** Use Harness on Claude Code, meta-harness on Codex. |
| [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) | Independent Codex implementation of the same concept | **Same L3, different runtime lineage.** Use this repo's `harness-codex` plugin for the local Codex port, or compare with meta-harness as a sibling implementation. |
| [affaan-m/ECC](https://github.com/affaan-m/everything-claude-code) | "Agent harness performance & workflow layer" (sits on top of existing harnesses) | **Different layer.** ECC is a standardization layer across harnesses; Harness is a factory that generates harnesses. Serial combination possible. |
| [wshobson/agents](https://github.com/wshobson/agents) | Subagent / skill catalog (182 agents, 149 skills) | **Factory ↔ parts supply.** wshobson is a catalog to shop from; Harness designs the team. Absorb wshobson entries as parts inside a Harness-generated team. |
| [LangGraph](https://langchain-ai.github.io/langgraph/) | State-graph orchestration, LLM-agnostic | **Different track.** LangGraph is for long-running, state-recoverable orchestration; Harness is for fast Claude-Code-native team design. |
Expand Down Expand Up @@ -290,10 +306,11 @@ Key finding: effectiveness scales with task complexity — the harder the task,
<details>
<summary><b>Q3. Isn't "Claude Code only" too narrow? What about Gemini/Codex?</b></summary>

**A.** Currently the official runtime is Claude Code only. A Codex port of the same concept — [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) — is already public, so Codex teams can start there. Harness chose "Claude-Code-native, deep" over "multi-runtime, shallow"; cross-runtime collaboration with sibling repos (meta-harness, harness-init, OpenRig) is on the roadmap.
**A.** The primary runtime remains Claude Code, but this repository now includes a local Codex plugin at `plugins/harness-codex/`. Codex users can install it through the repo-local marketplace in `.agents/plugins/marketplace.json`; see [docs/codex-quickstart.md](docs/codex-quickstart.md). The external [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) project remains a sibling implementation worth comparing.

**Evidence:**
- Codex port: [github.com/SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness)
- Local Codex quickstart: [docs/codex-quickstart.md](docs/codex-quickstart.md)
- Sibling Codex implementation: [github.com/SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness)
- Cross-runtime scaffolder: [github.com/Gizele1/harness-init](https://github.com/Gizele1/harness-init)
</details>

Expand Down
27 changes: 22 additions & 5 deletions README_JA.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ Harness は Claude Code エコシステムの **L3 Meta-Factory** 層 — 他の
|----|----------|--------------|
| **L3 — Meta-Factory / Team-Architecture Factory** (当プロジェクト) | ドメイン記述 → エージェントチーム + スキル、事前定義された 6 種のチームパターン経由 | — |
| L3 — Meta-Factory / Runtime-Configuration Factory | 決定的で再現可能なランタイム構成 | [coleam00/Archon](https://github.com/coleam00/Archon) |
| L3 — Meta-Factory / Codex Runtime Port | 同一コンセプトの Codex ランタイム版 | [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) |
| L3 — Meta-Factory / Codex Runtime Port | 同一コンセプトの Codex ランタイム版 | ローカル [`harness-codex`](docs/codex-quickstart.md), [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) |
| L2 — Cross-Harness Workflow | 複数ハーネスにまたがるスキル・ルール・フックの標準化 | [affaan-m/ECC](https://github.com/affaan-m/everything-claude-code) |

> Archon は決定的なランタイム構成を生成します。Harness はチームアーキテクチャ(パイプライン・ファンアウト/ファンイン・エキスパートプール・プロデューサー-レビューア・スーパーバイザー・階層的委任)と、エージェントが使うスキルを生成します。同じ L3 の異なるサブ層です。ランタイムの決定性が欲しければ Archon、チームアーキテクチャが欲しければ Harness、あるいは両者を組み合わせて利用できます。
Expand Down Expand Up @@ -89,9 +89,15 @@ Phase 6: 検証とテスト

#### プラグインのインストール
```shell
/plugin install harness-marketplace
/plugin install harness@harness-marketplace
```

### Codex ローカルプラグイン

このリポジトリには `plugins/harness-codex/` に Codex 用プラグインも含まれています。
repo-local マーケットプレイスは `.agents/plugins/marketplace.json` にあり、インストールと利用方法は
[docs/codex-quickstart.md](docs/codex-quickstart.md) を参照してください。

### グローバルスキルとして直接インストール

```shell
Expand All @@ -105,6 +111,16 @@ cp -r skills/harness ~/.claude/skills/harness
harness/
├── .claude-plugin/
│ └── plugin.json # プラグインマニフェスト
├── .agents/
│ └── plugins/
│ └── marketplace.json # repo-local Codex マーケットプレイス
├── plugins/
│ └── harness-codex/
│ ├── .codex-plugin/
│ │ └── plugin.json # Codex プラグインマニフェスト
│ └── skills/
│ └── harness/
│ └── SKILL.md # Codex ネイティブ Harness スキル
├── skills/
│ └── harness/
│ ├── SKILL.md # メインスキル定義(6フェーズワークフロー)
Expand Down Expand Up @@ -236,7 +252,7 @@ Harness は Claude Code / エージェントフレームワークのエコシス
| リポジトリ | 相手のポジション | Harness との関係 |
|------------|------------------|------------------|
| [coleam00/Archon](https://github.com/coleam00/Archon) | "harness builder" — 決定的で再現可能なランタイム構成 | **同じ L3、隣のサブ層。** Archon は Runtime-Configuration Factory、Harness は Team-Architecture Factory。ランタイム決定性は Archon、チームアーキテクチャは Harness、または両者の組み合わせ。 |
| [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) | 同一コンセプトの Codex 移植 | **同じ L3、異なるランタイム。** Claude Code では Harness、Codex では meta-harness。 |
| [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) | 同一コンセプトの独立した Codex 実装 | **同じ L3、異なるランタイム系譜。** このリポジトリのローカル Codex 移植は `harness-codex` プラグインを使い、meta-harness は比較可能な兄弟実装として参照。 |
| [affaan-m/ECC](https://github.com/affaan-m/everything-claude-code) | "Agent harness performance & workflow layer" — 既存ハーネスの上に乗る標準化層 | **異なる層。** ECC は複数ハーネスの上の標準化層、Harness はハーネスを生成するファクトリー。直列的に組み合わせ可能。 |
| [wshobson/agents](https://github.com/wshobson/agents) | サブエージェント / スキルカタログ (182 agents, 149 skills) | **ファクトリー ↔ 部品供給。** wshobson は「ショッピングするカタログ」、Harness は「チーム設計」。Harness が生成したチーム内に wshobson のエントリを部品として取り込み可能。 |
| [LangGraph](https://langchain-ai.github.io/langgraph/) | ステートグラフ・オーケストレーション、LLM-agnostic | **異なるトラック。** 長時間実行・状態復元が要なら LangGraph、Claude Code ネイティブでの素早いチーム設計が要なら Harness。 |
Expand Down Expand Up @@ -293,10 +309,11 @@ Harness は Claude Code / エージェントフレームワークのエコシス
<details>
<summary><b>Q3. 「Claude Code 専用」は狭すぎませんか? Gemini・Codex は?</b></summary>

**A.** 現時点で公式のランタイムは Claude Code のみです。同一コンセプトの Codex 移植 [SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) がすでに公開されており、既存の Codex チームはそちらから開始できます。Harness は「Claude Code ネイティブ・深く」を選択しており、クロスランタイムの需要は共存リポジトリ(meta-harness、harness-init、OpenRig)との連携計画としてロードマップに反映される予定です
**A.** 主なランタイムは引き続き Claude Code ですが、このリポジトリには `plugins/harness-codex/` のローカル Codex プラグインが含まれています。Codex ユーザーは `.agents/plugins/marketplace.json` の repo-local マーケットプレイスからインストールできます。詳しくは [docs/codex-quickstart.md](docs/codex-quickstart.md) を参照してください。[SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness) は比較可能な兄弟実装として残ります

**Evidence:**
- Codex 移植: [github.com/SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness)
- ローカル Codex クイックスタート: [docs/codex-quickstart.md](docs/codex-quickstart.md)
- 兄弟 Codex 実装: [github.com/SaehwanPark/meta-harness](https://github.com/SaehwanPark/meta-harness)
- クロスランタイム・スキャフォルダー: [github.com/Gizele1/harness-init](https://github.com/Gizele1/harness-init)
</details>

Expand Down
Loading