Skip to main content

harness-executor

Execute development tasks autonomously with self-validation. Auto-bootstraps harness via harness-creator if missing. Use when the user asks to implement features, fix bugs, refactor code, execute plans, or make any code change in an existing or new codebase.

ソース情報

リポジトリ
higress-group/himarket
ソースの最終更新活動
2026年4月10日 03:59
検出された SKILL.md の言語
英語
スター
1,299
フォーク
181

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
31 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
harness-executor
description
Execute development tasks autonomously with self-validation. Auto-bootstraps harness via harness-creator if missing. Use when the user asks to implement features, fix bugs, refactor code, execute plans, or make any code change in an existing or new codebase.
# Harness Executor Execute development tasks autonomously: setup → plan → execute → validate → verify → record → present. > **Core Philosophy**: "The Agent Harness is the Operating System. The LLM is just the CPU." Verify your changes mechanically through automated checks, not hope. > **Architecture Principle**: **Coordinator manages state, Subagent executes code.** The coordinator spawns subagents for code changes and verification. The subagent never calls task_state.py. ## Script Execution This skill bundles helper scripts in its `scripts/` subdirectory. Before running any script, determine this skill's installation directory from the path of this SKILL.md file, and set: ```bash SKILL_DIR="<directory containing this SKILL.md>" ``` Then call scripts as: `python3 "$SKILL_DIR/scripts/xxx.py"`. All bash examples below assume `SKILL_DIR` has been set this way. --- ## Execution Flow Every task follows the same seven steps. **No exceptions, no shortcuts.** ``` COORDINATOR ═══════════════════════════════════════════ 1. SETUP bootstrap → check interrupted → query memory → load context 2. PLAN scope the work → init state → (multi-phase: plan file + user approval) 3. EXECUTE spawn executor subagent → make code changes → checkpoint 4. VALIDATE static validation (build, lint, test) 5. VERIFY spawn verifier subagent → functional verification (MANDATORY) 6. RECORD task_state.py complete → episodic memory → AutoHarness 7. PRESENT results summary to user ═══════════════════════════════════════════ ``` > ⚠️ **CRITICAL**: Steps 4 and 5 are BOTH mandatory for ALL tasks. Static validation proves code compiles. Functional verification proves code *works*. Never skip Step 5. --- ## Step 1: Setup ### 1.1 Bootstrap Harness ```bash test -f AGENTS.md && echo "HARNESS_EXISTS=true" || echo "HARNESS_EXISTS=false" ``` If `HARNESS_EXISTS=false`: invoke `Skill(skill="harness-creator")` first. ### 1.2 Check Interrupted Tasks ```bash python3 "$SKILL_DIR/scripts/task_state.py" list ``` If an `in_progress` task matches the current request → Resume Protocol (see below). ### 1.3 Query Memory ```bash if [ -d "harness/memory" ]; then python3 "$SKILL_DIR/scripts/memory_query.py" search "<relevant-keyword>" --json 2>/dev/null || echo '{"results": []}' else echo "No memory store yet — skipping" fi ``` ### 1.4 Load Context Read: `AGENTS.md`, `docs/ARCHITECTURE.md`, `docs/DEVELOPMENT.md`. Extract: build command, test command, lint command, validation script path. --- ## Step 2: Plan **All tasks**: Identify files to modify/create, decide the approach, initialize task state. **Multi-phase tasks** (touching 3+ files or requiring sequential changes): Write a plan file, get user approval. ### Initialize Task State (all tasks) ```bash TASK_ID=$(python3 "$SKILL_DIR/scripts/task_state.py" init "<task-name>" \ --phases <N> \ --description "<description>" \ --plan-path "docs/exec-plans/active/YYYY-MM-DD-<slug>.md") # optional for single-phase echo "Task ID: $TASK_ID" ``` ### Multi-Phase Plan File ```bash mkdir -p docs/exec-plans/active ``` Write to `docs/exec-plans/active/YYYY-MM-DD-<task-slug>.md`: ```markdown # [Task Name] **Created**: YYYY-MM-DD ## Goal One sentence describing what success looks like. ## Scope - **Files to modify**: [list] - **Files to create**: [list] ## Phases ### Phase 1: [Name] - [ ] Step 1.1: [action] - **Validates with**: `[command]` ### Phase 2: [Name] - [ ] Step 2.1: [action] - **Validates with**: `[command]` ``` ### Multi-Phase User Approval Use `AskUserQuestion` with options: **Approve** / **Approve with changes** / **Reject**. --- ## Step 3: Execute Spawn an executor subagent to make code changes. **The coordinator never writes code directly.** ### Executor Subagent Prompt ``` Agent( description="Execute: [task-name]", prompt=""" You are a code executor. Your ONLY job is to make code changes. ## Task [task description] ## Project Root [absolute path] ## Files to Modify/Create [explicit list] ## Validation Command After making changes, run: ``` [project-specific command, e.g., go build ./... && make lint-arch] ``` ## Prior Lessons [paste lessons from memory_query, or "none"] ## Output Format Return this JSON block at the end of your response: ```json { "status": "success | failed | blocked", "summary": "one paragraph describing what you did", "files_changed": ["file1.go", "file2.go"], "files_created": ["new_file.go"], "validation_result": "pass | fail", "validation_output": "relevant output if failed", "lessons": ["any insights worth remembering"], "blockers": ["if blocked, describe what's stopping you"] } ``` ## Rules - Focus ONLY on making code changes - Do NOT manage task state or checkpoints — the coordinator handles that - If validation fails, fix and retry (max 3 attempts) - If blocked, return with status "blocked" """ ) ``` ### Checkpoint (after successful executor return) ```bash python3 "$SKILL_DIR/scripts/task_state.py" checkpoint \ --task-id "$TASK_ID" \ --phase <N> \ --summary "<phase summary from subagent>" \ --files-changed <file1> <file2> \ --decisions '["key decisions from subagent lessons"]' ``` ### Failure Handling | Subagent Status | Action | |---|---| | `success` | Continue to Step 4 | | `failed` | Retry with additional context (max 2 retries) | | `blocked` | Escalate to user | --- ## Step 4: Validate (Static) Run static validation to ensure code compiles and passes lints/tests. ```bash if [ -f "scripts/validate.py" ]; then python3 scripts/validate.py . else # Use commands from docs/DEVELOPMENT.md <build-command> && <lint-command> && <test-command> fi ``` If static validation fails: 1. Analyze error output 2. Return to Step 3 with fix instructions (spawn executor again) 3. Max 2 retries, then escalate to user --- ## Step 5: Verify (Functional) — MANDATORY > ⚠️ **This step is MANDATORY for ALL tasks.** Do NOT skip to Step 6 without completing verification. Static checks only prove code compiles. Functional verification proves code *works* — by starting the actual application, making real HTTP requests, and verifying observable behavior. ### 5.1 Design Verification Scenarios Based on what changed, design 1-3 task-specific scenarios (see `references/scenario-design-guide.md`): | Change Type | Scenarios to Design | |---|---| | New endpoint | Create success, validation error, persistence check | | Modified endpoint | New behavior works, old behavior unchanged | | New validation | Valid input accepted, invalid input rejected | | Permission change | Authorized user succeeds, unauthorized user rejected | | Bug fix | The specific bug is fixed | ### 5.2 Spawn Verifier Subagent ``` Agent( description="Functional Verifier: [task-name]", prompt=""" You are a Functional Verifier agent. Read the verifier guide at: $SKILL_DIR/agents/verifier.md ## Task Context - Project root: [absolute path] - Task description: [what was implemented] - Files changed/created: [list] ## Environment Context (from environment.json if exists) - Startup: [command], Readiness: [check config] - Services: [databases, caches], Env Vars: [required vars] ## Scenarios to Verify [your designed scenarios as JSON array] ## Your Responsibilities 1. Start the application server 2. Execute ALL scenarios 3. For each: verify behavior AND side effects with real HTTP requests 4. Stop the server cleanly 5. Save results to: harness/trace/verification-report.json ## Output Requirements Your verification-report.json MUST include: - server.started: true (prove you started the app) - At least one scenario with request/response evidence """ ) ``` ### 5.3 Handle Verifier Result | Result | Action | |---|---| | `pass` | Continue to Step 6 | | `partial` | Fix failing scenarios related to task, log unrelated as warnings | | `fail` | Return to Step 3 with fix instructions, max 2 retries, then escalate | ### 5.4 If Verification Cannot Run If the application cannot be started (no server, library project, missing infrastructure), write a skip report: ```bash mkdir -p harness/trace cat > harness/trace/verification-report.json << 'EOF' { "overall_status": "skip", "skip_reason": "[explain why: e.g., 'Library project with no runnable server', 'Missing required database']", "server": {"started": false}, "task_specific_scenarios": [], "summary": {"task_specific_total": 0, "task_specific_passed": 0, "pass_rate": 0} } EOF ``` --- ## Step 6: Record & Complete ### Complete Task ```bash python3 "$SKILL_DIR/scripts/task_state.py" complete \ --task-id "$TASK_ID" \ --summary "Completed: <overall summary>" \ --files-changed file1 file2 \ --files-created new_file \ --validation '{"build": "pass", "lint": "pass", "test": "pass"}' \ --lessons '["lesson1", "lesson2"]' ``` > ⚠ **Completion Gate**: `complete` checks for `harness/trace/verification-report.json`. It **rejects** if: > - File is missing (Step 5 was skipped) > - Report lacks `server.started` or HTTP evidence (unless `overall_status: "skip"`) **Move plan file** (if exists): ```bash mkdir -p docs/exec-plans/completed mv "docs/exec-plans/active/<plan-file>.md" "docs/exec-plans/completed/" 2>/dev/null || true ``` ### AutoHarness Check ```bash TASK_COUNT=$(python3 "$SKILL_DIR/scripts/task_state.py" list --json 2>/dev/null | \ python3 -c "import sys,json; d=json.load(sys.stdin); print(len([t for t in d if t.get('status')=='completed']))" 2>/dev/null || echo 0) if [ "$TASK_COUNT" -ge 3 ]; then python3 "$SKILL_DIR/scripts/harness_critic.py" --since 7d 2>/dev/null || true fi ``` --- ## Step 7: Present Results ``` ## Task Complete ### Changes Made - Modified `path/to/file` — [what changed] - Created `path/to/new-file` — [purpose] ### Validation Results - Build: PASS | Lint: PASS | Test: PASS ### Verification Results - Server started: YES - Scenarios: [N] designed, [N] passed - Evidence: [summary of what was verified] ### Lessons Recorded - [aggregated lessons] ### Next Steps 1. Create PR 2. Commit to current branch ``` --- ## Resume Protocol When Step 1.2 finds an interrupted task: ```bash python3 "$SKILL_DIR/scripts/task_state.py" show --task-id <TASK_ID> --json ``` Resume from the last successful checkpoint: - Read `harness/tasks/<task-id>/state/context.json` - Pass context to subagent for the next phase - Continue the execution loop --- ## Reference Files | File | When to Read | Contents | |---|---|---| | `agents/verifier.md` | Step 5.2: spawn Functional Verifier | Verifier subagent instructions, bootstrap protocol, output format | | `references/scenario-design-guide.md` | Step 5.1: designing scenarios | Scenario design patterns and examples | | `references/functional-verification-guide.md` | Understanding the verification flow | Static validation → Functional Verifier architecture | | `references/environment-schema.md` | Reading environment.json | environment.json contract: startup, services, env_vars | | `references/validation-guide.md` | Step 4: static validation | Validation order, error recovery | | `references/state-management.md` | Task state operations | task.json/context.json/checkpoint schemas | --- ## Guardrails These are hard constraints. Violating them causes task completion to fail. | Guardrail | Enforced By | Consequence | |---|---|---| | Must spawn verifier subagent | `complete` command | Rejects without verification-report.json | | Must have HTTP evidence | `complete` command | Rejects if report lacks request/response |
GitHubで見る
この SKILL.md は非常に大きいため、SkillsMP では最初のセクションだけを表示しています。 GitHubで見る