Skip to content

Commit 032dc85

Browse files
committed
feat: initial release of AgentHarness
0 parents  commit 032dc85

70 files changed

Lines changed: 3600 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# CODEOWNERS - Harness Engineering Framework
2+
# Reference: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customize-your-repository/about-code-owners
3+
4+
# Harness core documentation
5+
AGENTS.md @zuoyui
6+
ARCHITECTURE.md @zuoyui
7+
README.md @zuoyui
8+
9+
# Windsurf config
10+
.windsurf/ @zuoyui
11+
12+
# GitHub config
13+
.github/ @zuoyui
14+
15+
# Scripts
16+
scripts/ @zuoyui
17+
18+
# Documentation system
19+
docs/DESIGN.md @zuoyui
20+
docs/SECURITY.md @zuoyui
21+
docs/QUALITY_SCORE.md @zuoyui
22+
23+
# Execution plans
24+
docs/exec-plans/ @zuoyui
25+
26+
# Default owner
27+
* @zuoyui

.github/CONTRIBUTING.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Contributing to Harness Engineering Framework
2+
3+
## Quick Start
4+
5+
### Create New Project Using This Template
6+
7+
1. Click "Use this template" on GitHub page
8+
2. Clone the new repository locally
9+
3. Run `/bootstrap-harness` to initialize the project
10+
11+
### Integrate into Existing Project
12+
13+
Copy the following directories to the target repository:
14+
- `AGENTS.md`
15+
- `ARCHITECTURE.md`
16+
- `docs/`
17+
- `.windsurf/`
18+
- `.github/`
19+
- `scripts/`
20+
21+
## Development Workflow
22+
23+
### When Entering a Project
24+
25+
```text
26+
Don't develop features immediately. Complete bootstrap per repository harness conventions:
27+
1. Read AGENTS.md, ARCHITECTURE.md, docs/DESIGN.md, docs/SECURITY.md, docs/QUALITY_SCORE.md
28+
2. Identify install/dev/lint/test/build commands
29+
3. Generate or update exec plan for current task
30+
4. Only fill minimal missing harness, don't make major changes to business logic
31+
5. Output current gaps and next step suggestions
32+
```
33+
34+
### When Developing Features
35+
36+
1. Read entry documentation first
37+
2. Write exec plan first
38+
3. Make small incremental changes
39+
4. Verify locally immediately after changes
40+
5. Update docs synchronously
41+
6. Prepare PR body
42+
43+
### When Fixing Bugs
44+
45+
1. Reproduce first
46+
2. Write minimal fix
47+
3. Write verification path
48+
4. Update documentation / decision records
49+
5. Generate PR summary
50+
51+
## Variables to Modify
52+
53+
When integrating into a new project, prioritize modifying:
54+
55+
1. install/dev/lint/test/build commands in `AGENTS.md`
56+
2. Layering model in `ARCHITECTURE.md`
57+
3. Sensitive paths in `docs/SECURITY.md`
58+
4. Scoring dimensions in `docs/QUALITY_SCORE.md`
59+
5. Project-specific constraints in `.windsurf/rules/`
60+
6. Dependency installation and `.env` copy logic in `scripts/setup_worktree.sh`
61+
62+
## PR Standards
63+
64+
- Use `.github/PULL_REQUEST_TEMPLATE.md`
65+
- Must reference exec plan or issue
66+
- Must explain verification steps
67+
- Must explain documentation update status
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
name: 🔌 New Adapter Request
3+
about: Request support for a new AI coding agent
4+
title: '[Adapter]: '
5+
labels: adapter, enhancement
6+
assignees: ''
7+
---
8+
9+
## Agent Name
10+
11+
The name of the AI coding agent you want supported (e.g., Aider, Continue.dev, GitHub Copilot).
12+
13+
## Agent Documentation
14+
15+
Link to the agent's official documentation, especially:
16+
- Entry file support (AGENTS.md, CLAUDE.md, etc.)
17+
- Rules/constraints configuration
18+
- Hooks support
19+
- Workflows support
20+
21+
## Why This Agent?
22+
23+
Why would this agent be valuable to support? How popular is it?
24+
25+
## Configuration Details
26+
27+
If you know how this agent should be configured, describe:
28+
- Entry file format
29+
- Rules directory structure
30+
- Hooks configuration
31+
- Any special features
32+
33+
## Would you be willing to contribute?
34+
35+
- [ ] Yes, I'd like to help implement this adapter
36+
- [ ] I can provide testing/feedback
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
name: 🐛 Bug Report
3+
about: Report a bug or unexpected behavior
4+
title: '[Bug]: '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Description
10+
11+
A clear and concise description of what the bug is.
12+
13+
## Steps to Reproduce
14+
15+
1.
16+
2.
17+
3.
18+
19+
## Expected Behavior
20+
21+
What you expected to happen.
22+
23+
## Actual Behavior
24+
25+
What actually happened.
26+
27+
## Environment
28+
29+
- **Agent**: [e.g. Windsurf, Codex, Claude Code, Cursor]
30+
- **Adapter version**: [e.g. v0.1.0]
31+
- **OS**: [e.g. macOS, Windows, Linux]
32+
- **Project type**: [e.g. Next.js, Python, Monorepo]
33+
34+
## Relevant Files
35+
36+
If applicable, list relevant files or paste small code snippets.
37+
38+
## Additional Context
39+
40+
Add any other context about the problem here.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: 📖 Documentation
4+
url: https://github.com/zuoyui/agentharness#readme
5+
about: Check the README for quickstart guide and examples
6+
- name: 💬 Ask a Question
7+
url: https://github.com/zuoyui/agentharness/discussions
8+
about: Ask questions and discuss with the community in GitHub Discussions
9+
- name: 🔧 Adapter Help
10+
url: https://github.com/zuoyui/agentharness/discussions/categories/adapters
11+
about: Get help with specific adapters (Windsurf, Codex, Claude Code, Cursor)
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
name: ✨ Feature Request
3+
about: Suggest a new feature or enhancement
4+
title: '[Feature]: '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Problem Statement
10+
11+
A clear and concise description of what problem this feature would solve.
12+
13+
## Proposed Solution
14+
15+
A clear and concise description of what you want to happen.
16+
17+
## Alternatives Considered
18+
19+
A clear description of any alternative solutions or features you've considered.
20+
21+
## Use Case
22+
23+
How would this feature be used? Who would benefit from it?
24+
25+
## Additional Context
26+
27+
Add any other context, screenshots, or mockups about the feature request here.
28+
29+
## Would you be willing to submit a PR?
30+
31+
- [ ] Yes, I'd like to submit a PR for this feature

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
## PR 摘要
2+
3+
<!-- 简要描述本次变更的目的和内容 -->
4+
5+
## 关联任务
6+
7+
<!-- 关联的 exec plan、issue 或 product-spec -->
8+
- Exec Plan: `docs/exec-plans/active/...`
9+
- Issue: #
10+
11+
## 变更类型
12+
13+
- [ ] 功能开发
14+
- [ ] Bug 修复
15+
- [ ] 重构
16+
- [ ] 文档更新
17+
- [ ] Harness 基础设施
18+
19+
## 验证步骤
20+
21+
<!-- 描述如何验证本次变更 -->
22+
1.
23+
2.
24+
3.
25+
26+
## 风险评估
27+
28+
<!-- 是否涉及高风险路径、破坏性变更、安全相关 -->
29+
- 高风险路径:否 / 是(说明)
30+
- 破坏性变更:否 / 是(说明)
31+
- 安全相关:否 / 是(说明)
32+
33+
## 文档更新
34+
35+
- [ ] 已更新 `docs/` 相关文档
36+
- [ ] 已更新 `AGENTS.md``ARCHITECTURE.md`(如涉及架构变更)
37+
- [ ] 无需更新文档(说明原因)
38+
39+
## Checklist
40+
41+
- [ ] 本地已运行最小验证(lint/test)
42+
- [ ] 变更范围可控,未引入意外副作用
43+
- [ ] 已同步更新执行计划状态

.github/workflows/ci.yml

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# Harness Engineering CI
2+
# Multi-language template: Choose based on project tech stack, remove inapplicable parts
3+
4+
name: CI
5+
6+
on:
7+
push:
8+
branches: [main]
9+
pull_request:
10+
branches: [main]
11+
12+
jobs:
13+
# ============================================
14+
# Node.js project - Remove this block if not applicable
15+
# ============================================
16+
nodejs:
17+
runs-on: ubuntu-latest
18+
if: ${{ false }} # Change to true to enable
19+
strategy:
20+
matrix:
21+
node-version: [18.x, 20.x]
22+
steps:
23+
- uses: actions/checkout@v4
24+
25+
- name: Setup Node.js ${{ matrix.node-version }}
26+
uses: actions/setup-node@v4
27+
with:
28+
node-version: ${{ matrix.node-version }}
29+
cache: 'npm' # or 'pnpm'
30+
31+
# If using pnpm, uncomment the following steps
32+
# - uses: pnpm/action-setup@v2
33+
# with:
34+
# version: 8
35+
36+
- name: Install dependencies
37+
run: npm ci # or pnpm install --frozen-lockfile
38+
39+
- name: Lint
40+
run: npm run lint # Modify to actual command
41+
42+
- name: Test
43+
run: npm test # Modify to actual command
44+
45+
- name: Build
46+
run: npm run build # Modify to actual command
47+
48+
# ============================================
49+
# Python project - Remove this block if not applicable
50+
# ============================================
51+
python:
52+
runs-on: ubuntu-latest
53+
if: ${{ false }} # Change to true to enable
54+
strategy:
55+
matrix:
56+
python-version: ['3.10', '3.11', '3.12']
57+
steps:
58+
- uses: actions/checkout@v4
59+
60+
- name: Setup Python ${{ matrix.python-version }}
61+
uses: actions/setup-python@v5
62+
with:
63+
python-version: ${{ matrix.python-version }}
64+
cache: 'pip' # or 'pipenv', 'poetry'
65+
66+
# If using poetry, uncomment the following steps
67+
# - name: Install poetry
68+
# uses: abatilo/actions-poetry@v2
69+
# with:
70+
# poetry-version: 1.7
71+
72+
- name: Install dependencies
73+
run: |
74+
python -m pip install --upgrade pip
75+
pip install -r requirements.txt # or poetry install
76+
77+
- name: Lint
78+
run: |
79+
pip install ruff mypy
80+
ruff check .
81+
mypy . # Optional
82+
83+
- name: Test
84+
run: pytest # Modify to actual command
85+
86+
- name: Build
87+
run: |
88+
pip install build
89+
python -m build # Optional
90+
91+
# ============================================
92+
# Harness check - Check documentation sync
93+
# ============================================
94+
harness-check:
95+
runs-on: ubuntu-latest
96+
steps:
97+
- uses: actions/checkout@v4
98+
99+
- name: Check harness files exist
100+
run: |
101+
echo "Checking harness infrastructure..."
102+
test -f AGENTS.md || echo "::warning::AGENTS.md missing"
103+
test -f ARCHITECTURE.md || echo "::warning::ARCHITECTURE.md missing"
104+
test -f docs/DESIGN.md || echo "::warning::docs/DESIGN.md missing"
105+
test -f docs/SECURITY.md || echo "::warning::docs/SECURITY.md missing"
106+
test -f docs/QUALITY_SCORE.md || echo "::warning::docs/QUALITY_SCORE.md missing"
107+
echo "Harness check complete."

0 commit comments

Comments
 (0)