Skip to content
/

my-claude-code-harness (code-yeongyu)

code-yeongyu-my-cc-harness · code-yeongyu/my-claude-code-harness · ★ 13 · last commit 2025-11-28

Personal Claude Code workflow: plan-to-execute pipeline with Haiku workers, profane attention-weight prompting for atomic task enforcement, and PostToolUse Python static analysis hooks.

Best whenExecutor agents are SUPER DUMB and need profane, forceful prompting to stay on task. Hooks should enforce code quality automatically on every tool call. Haik…
Skip ifExecutor doing multiple tasks at once, Non-English comments in code
vs seeds
bmad-method(named agent personas). Unique features not found in any seed: (1) profane attention-weight prompting in executor.md, (2…
Primitive shape 14 total
Commands 5 Skills 3 Subagents 3 Hooks 3
00

Summary

code-yeongyu/my-claude-code-harness — Summary

my-claude-code-harness is a personal Claude Code configuration by Korean developer yeongyu (GitHub: code-yeongyu), a minimal but philosophically opinionated harness for orchestrating multi-agent Claude Code workflows. It has 13 stars, no license, and was last updated 2025-11-28. The developer explicitly states: "I'm confident this setup will become deprecated and outdated in less than 3 months" — acknowledging it as a point-in-time personal setup, not a maintained product.

The harness consists of: 3 agents (orchestrator-style executor, librarian, plan-reviewer), 5 slash commands (/planner, /execute, /commit, /create-pr, /read-pr), 3 skills (git-committer, pr-context-retrieval, pr-creator), and 3 hook event types (UserPromptSubmit, PostToolUse, Stop). The PostToolUse hook runs extensive Python static analysis on every file modification: ruff lint, type checking, import-in-function detection, comment style enforcement, TypedDict detection, language guide injection, and conftest.py injection.

The workflow is: /planner → ai-todolist.md → [optional plan-reviewer loop] → /execute → orchestrator agent → executor agents (Haiku model, one-at-a-time). The executor agent prompt uses aggressive, profane language to enforce atomic task execution — the developer explicitly treats this as "attention weight engineering."

Differs from seeds: Most similar to taskmaster-ai (plan → execute pipeline) and bmad-method (multi-agent persona system), but uniquely combines aggressive attention-weight prompt engineering, comprehensive Python static analysis hooks, and explicit single-task-at-a-time enforcement via profanity. No seed uses hooks for static analysis. The profane executor prompt is the single most unusual feature in the entire batch.

01

Overview

code-yeongyu/my-claude-code-harness — Overview

Origin

Personal Claude Code configuration by yeongyu (GitHub: code-yeongyu), a Korean developer. The README opens with: "I'm confident this setup will become deprecated and outdated in less than 3 months." Published 2025-11-28.

Purpose

Provide a personal multi-agent workflow for software development tasks using Claude Code:

  1. Planning via /planner command → ai-todolist.md
  2. Execution via /execute command → orchestrator dispatches to executor agents
  3. Quality enforcement via PostToolUse hooks (Python static analysis)
  4. Git automation via skills and commands

Key Features

  • Profane executor prompt: The executor.md agent uses aggressive, profane language to enforce single-task focus — explicitly described by the developer as "attention weight engineering"
  • Comprehensive PostToolUse hooks: Python scripts checking ruff lint, types, import style, comment style, TypedDict usage, language guidelines, and conftest.py presence — triggered on every file write/edit
  • Model tier routing: Orchestrator on the default model (Sonnet), executors on Haiku (cheap, fast, focused)
  • Plan-reviewer loop: Optional second-opinion agent for plan quality before execution

Repo Facts

Developer's Philosophy (from README)

The developer treats executor agents as unreliable by design:

  • "SUPER DUMB, liars, extremely lazy"
  • "can only do ONE TASK at a time"
  • Profane language in prompts is intentional: "I'm using the power of attention weights"
  • The hook system enforces quality because the developer doesn't trust the executor to self-check
02

Architecture

code-yeongyu/my-claude-code-harness — Architecture

Repository Layout

my-claude-code-harness/
├── CLAUDE.md                       # Global instructions
├── settings.json                   # Claude Code settings (hooks, alwaysThinking, statusLine)
├── agents/
│   ├── executor.md                 # Haiku-model worker agent (aggressive single-task enforcement)
│   ├── librarian.md                # Documentation/reference lookup agent
│   └── plan-reviewer.md            # Plan quality review agent
├── commands/
│   ├── planner.md                  # /planner — generate ai-todolist.md
│   ├── execute.md                  # /execute — orchestrate execution
│   ├── commit.md                   # /commit — git commit via skill
│   ├── create-pr.md                # /create-pr — PR creation via skill
│   └── read-pr.md                  # /read-pr — PR context retrieval
├── skills/
│   ├── git-committer               # Skill: atomic git commit
│   ├── pr-context-retrieval        # Skill: fetch PR context
│   └── pr-creator                  # Skill: create GitHub PR
└── hooks/
    ├── post_tool_use.py            # Main PostToolUse hook script
    ├── stop.py                     # Stop hook script
    ├── post-tool-use/              # Additional PostToolUse hook configs
    ├── stop/                       # Additional Stop hook configs
    └── user-prompt-submit/         # UserPromptSubmit hook configs

Settings Configuration

{
  "alwaysThinkingEnabled": true,
  "statusLine": "bunx --bun ccusage statusline",
  "hooks": {
    "UserPromptSubmit": [system-reminder.py],
    "PostToolUse": [{
      "matcher": "Bash|Write|Edit|MultiEdit|Read|Task",
      "hooks": [post_tool_use.py via uv]
    }],
    "Stop": [stop.py via uv]
  }
}

Agent Architecture

Three tiers:

  1. User/planner command → ai-todolist.md
  2. Orchestrator (default model/Sonnet) → reads todolist, dispatches tasks
  3. Executor (model: haiku) → executes one atomic task, reports done

The executor is intentionally dumb and cheap (Haiku). The orchestrator is the intelligence layer. The hooks are the quality layer.

Hook Architecture

PostToolUse hooks fire on every Bash|Write|Edit|MultiEdit|Read|Task tool call. The post_tool_use.py script:

  • Runs ruff lint on modified Python files
  • Checks type annotations
  • Detects imports inside functions
  • Enforces comment style (no Chinese/Korean/Japanese — English only)
  • Detects TypedDict anti-patterns
  • Injects language guidelines
  • Injects conftest.py if missing

Skill Architecture

Three skills activated via the Skill tool:

  • git-committer: atomic commit with conventional format
  • pr-context-retrieval: fetch PR diff/comments for context
  • pr-creator: create GitHub PR with structured description
03

Skills And Commands

code-yeongyu/my-claude-code-harness — Skills & Commands

Skills (3)

git-committer

  • Purpose: Create atomic git commits in conventional format
  • Activation: Invoked by /commit command and by executor agent on task completion
  • Behavior: Stages changed files, writes conventional commit message, enforces one-commit-one-purpose rule

pr-context-retrieval

  • Purpose: Fetch GitHub PR diff, comments, and review context
  • Activation: Invoked by /read-pr command
  • Behavior: Pulls PR metadata and comments into context for the agent to reason about

pr-creator

  • Purpose: Create a GitHub PR with structured title and body
  • Activation: Invoked by /create-pr command
  • Behavior: Drafts PR description from commit history and diff, creates via gh pr create

Commands (5)

/planner

  • Purpose: Generate ai-todolist.md from a task description
  • Output: Structured markdown todolist with atomic tasks, each mapped to an executor call
  • Gating: Optional: pass the todolist to /plan-reviewer before executing

/execute

  • Purpose: Orchestrate execution of ai-todolist.md
  • Mechanism: Reads todolist, spawns executor sub-agents one task at a time
  • Key constraint: ONE task per executor call — no batching

/commit

  • Purpose: Git commit the current changes
  • Delegates to: git-committer skill

/create-pr

  • Purpose: Create a GitHub PR
  • Delegates to: pr-creator skill

/read-pr

  • Purpose: Load PR context into the conversation
  • Delegates to: pr-context-retrieval skill

Agents (3)

executor.md

  • Model: haiku (fast/cheap)
  • Constraint: ONE task at a time — enforced via aggressive/profane prompting
  • Key excerpt (paraphrased): "YOU ARE SUPER DUMB AND LAZY. DO. ONE. TASK. ONLY. [profanity]. DO NOT MOVE ON TO THE NEXT TASK."
  • Rationale: Developer states this uses attention weight mechanics to prevent context drift

librarian.md

  • Purpose: Lookup documentation, reference materials, file contents
  • Use case: When executor needs to understand an API or read a large codebase section

plan-reviewer.md

  • Purpose: Review ai-todolist.md before execution
  • Behavior: Critiques plan for completeness, atomicity, and feasibility
  • Loop: Can be called multiple times until plan quality is acceptable

alwaysThinkingEnabled

Set to true in settings.json — forces extended thinking mode on every Claude interaction. The developer believes this improves reasoning quality for orchestration tasks.

statusLine

bunx --bun ccusage statusline — shows Claude Code token usage in the terminal status line. Practical cost visibility during development.

05

Memory And Context

code-yeongyu/my-claude-code-harness — Memory & Context

Memory Model

File-based, session-scoped.

The primary memory artifact is ai-todolist.md — a file that persists across the planning and execution phases of a session. No vector store, no SQLite, no external memory system.

Context Injection Points

Three mechanisms inject context into the agent:

1. UserPromptSubmit Hook

system-reminder.py fires on every user message and injects a system reminder. This is the closest analog to "ambient memory" — project state context that the agent always has.

2. PostToolUse Hook

post_tool_use.py injects static analysis findings after every tool call. This is reactive context: "you just wrote this file; here are the lint errors."

3. /read-pr Command

Pulls PR context (diff, comments) into the conversation via the pr-context-retrieval skill. One-time explicit injection.

ai-todolist.md as Working Memory

The todolist file serves as persistent working memory for a multi-session project:

  • Written by /planner
  • Read by /execute (orchestrator)
  • Updated as tasks complete
  • Survives session restarts

This is a simple but effective mechanism: the agent's "todo state" is a human-readable markdown file.

alwaysThinkingEnabled

true in settings.json. Forces the extended thinking budget on every turn. This expands the effective context window for reasoning (thinking tokens are not counted against the output limit in the same way).

No Cross-Project Memory

  • No semantic search over prior projects
  • No memory of previous conversations beyond what's in the current session
  • No shared state between different projects

ccusage statusLine

bunx --bun ccusage statusline in the terminal status line gives the developer real-time token usage visibility. Not memory for the agent, but memory for the developer about cost.

Comparison to Seeds

Seed Memory Persistence
ccmemory Vector + SQLite Cross-session
agent-os Three-tier (working/episodic/semantic) Cross-session
taskmaster-ai tasks.json Project-level
code-yeongyu ai-todolist.md Session/project-level

The ai-todolist.md approach is the simplest possible persistent memory: a markdown file. No infrastructure required. Developer prioritizes simplicity.

09

Uniqueness

code-yeongyu/my-claude-code-harness — Uniqueness & Positioning

differs_from_seeds

Most architecturally similar to taskmaster-ai (plan → execute pipeline, sequential task dispatch) and bmad-method (named agent personas). Differs from both in three key ways: (1) explicit model-tier routing (Sonnet orchestrator → Haiku workers), (2) comprehensive PostToolUse static analysis hooks as quality enforcement, (3) aggressive/profane prompt engineering in the executor agent as an intentional "attention weight" technique. No seed uses hooks for automated static analysis. No seed uses profanity in agent prompts.

Distinctive Positioning

  1. Profane executor prompt as attention-weight engineering: The executor.md uses intentionally aggressive and profane language to enforce single-task focus. The developer explicitly theorizes this creates stronger attention patterns in the model for the critical constraint. This is the most unusual prompt engineering technique in the entire batch of 33 — likely in any Claude Code configuration corpus.

  2. PostToolUse as automated QA gate: Running ruff, type checking, import analysis, comment language enforcement, TypedDict detection, and conftest.py injection on every file write is a sophisticated quality enforcement loop. No other entry in the batch uses hooks this way. The hooks function as a continuous CI that runs inline during agent execution.

  3. Model-tier cost optimization: Routing orchestration to Sonnet and atomic execution to Haiku is an explicit cost optimization. The developer acknowledges executor agents are "dumb" (Haiku model) — this is the point. Cheap execution, expensive planning.

  4. Radical self-deprecation as design signal: Opening the README with "I'm confident this setup will become deprecated and outdated in less than 3 months" is notable epistemic honesty. Most harness authors present their work as definitive. This framing is more useful to a researcher — it signals that the author understands they're capturing a moment in a fast-moving space.

  5. ccusage statusline integration: Showing token costs in the terminal status line is a practical UX detail not seen in larger/more ambitious frameworks. The developer uses their own tool in their harness.

Observable Limitations

  • 13 stars — nearly no adoption
  • No license — cannot be forked/incorporated commercially
  • Acknowledged as ephemeral (last commit 2025-11-28)
  • No documentation beyond what's in the files
  • Sequential execution only — no parallelism
  • No persistent memory across projects
  • Profane prompts may not transfer well to team environments

Why It Matters Despite Small Scale

This harness documents a real developer's actual Claude Code workflow. The hook system is a genuine engineering contribution — a working PostToolUse static analysis pipeline that others can adapt. The profane prompt technique, while controversial, is an empirically motivated experiment. The model-tier routing is a practical cost optimization pattern applicable to any multi-agent workflow.

13 stars understates its value as a documented pattern source.

04

Workflow

code-yeongyu/my-claude-code-harness — Workflow

Primary Workflow: Plan → Review → Execute

1. User invokes /planner with task description
   → Generates ai-todolist.md

2. [Optional] User invokes /plan-reviewer
   → plan-reviewer.md agent reviews the todolist
   → May loop back to /planner with feedback
   → User approves final plan

3. User invokes /execute
   → Orchestrator reads ai-todolist.md
   → For each task in the list:
       a. Orchestrator spawns executor sub-agent (Haiku)
       b. Executor completes ONE task only
       c. Executor reports done
       d. Orchestrator verifies completion
       e. Move to next task

4. User invokes /commit
   → git-committer skill runs
   → Conventional commit created

5. User invokes /create-pr
   → pr-creator skill runs
   → GitHub PR created

Phases

Phase Command/Skill Artifact
Plan generation /planner ai-todolist.md
Plan review (opt) plan-reviewer agent Annotated todolist
Execution /execute Modified files
Commit /commit → git-committer Git commit
PR creation /create-pr → pr-creator GitHub PR

Approval Gates

  1. Plan approval: User reviews ai-todolist.md before executing (soft gate — not enforced by the system, but the workflow is designed to pause here)
  2. Commit gate: User must explicitly call /commit — no auto-commit
  3. PR gate: User must explicitly call /create-pr — no auto-PR

Quality Enforcement (Automated)

Every file write/edit triggers post_tool_use.py:

  • Ruff lint → must pass
  • Type annotations → checked
  • Import style → no imports inside functions
  • Comment language → English only
  • TypedDict usage → flagged if misused
  • Language guidelines → injected into context
  • conftest.py → created if missing in Python project

This runs automatically, not as a gate — violations are surfaced as context for the executor to fix.

Hook Execution Chain

Tool call (Write/Edit/Bash...) 
  → PostToolUse hook fires
  → post_tool_use.py runs (via uv)
  → Checks inject findings into agent context
  → Agent can self-correct before next turn

UserPromptSubmit Hook

system-reminder.py fires on every user message. Injects a system reminder into the context — likely project-state context (current branch, uncommitted changes, active todolist state).

Stop Hook

stop.py fires when the agent session ends. Likely performs cleanup or final state logging.

06

Multi Agent

code-yeongyu/my-claude-code-harness — Multi-Agent

Multi-Agent Architecture

Yes — hierarchical orchestrator/executor pattern.

User
  └── Orchestrator (default model / Sonnet)
        ├── Executor 1 (Haiku) — task A
        ├── Executor 2 (Haiku) — task B
        └── Executor 3 (Haiku) — task C

Orchestrator and executors run in Claude Code's sub-agent framework (Task tool). The orchestrator dispatches one task at a time to executor agents.

Agent Roles

Agent File Model Role
Orchestrator (main session) Sonnet (default) Reads todolist, dispatches tasks, verifies completion
Executor executor.md Haiku Executes ONE atomic task
Librarian librarian.md default Reference/documentation lookup
Plan-reviewer plan-reviewer.md default Plan critique before execution

One-at-a-Time Enforcement

The executor agent's prompt explicitly forbids doing more than one task:

  • "ONLY DO THE TASK YOU WERE GIVEN"
  • Profane language to maximize attention weight on this constraint
  • The developer's theory: strong emotional language in prompts creates stronger attention patterns in the model

The orchestrator enforces sequential execution: it does not spawn the next executor until the current one reports completion.

No Parallel Execution

All tasks execute sequentially. This is intentional:

  • Prevents race conditions on shared files
  • Simplifies error handling
  • Easier to debug when one thing happens at a time

No Shared State Between Executors

Executors do not share context. Each executor call is a fresh sub-agent with only the task description + relevant context passed from the orchestrator.

Plan-Reviewer Loop

The plan-reviewer.md can be used in a review loop before execution:

  • Orchestrator (or user) passes todolist to plan-reviewer
  • Plan-reviewer critiques
  • User can loop back to /planner
  • Not an automated loop — user drives it

Comparison to Multi-Agent Seeds

Framework Pattern Concurrency Isolation
claude-flow Hive-mind swarm Parallel Node.js process
bmad-method Role personas Sequential Prompt-level
taskmaster-ai Linear task queue Sequential Session
code-yeongyu Orchestrator + Haiku workers Sequential Claude Code sub-agent

Most similar to taskmaster-ai (sequential task dispatch) but with explicit model-tier routing (Sonnet orchestrator, Haiku workers).

07

Isolation And Security

code-yeongyu/my-claude-code-harness — Isolation & Security

Isolation Mechanism

None beyond Claude Code's native sub-agent sandboxing.

There is no custom isolation layer. Executor agents run as Claude Code sub-agents (Task tool calls), which inherit the same filesystem access as the parent session. No container, no WASM, no VM, no process jail.

What "Isolation" Exists

The only isolation is:

  1. Context isolation: Each executor sub-agent gets only the task description and relevant context — not the full conversation history. This prevents context bleed between tasks.
  2. Sequential execution: Tasks run one at a time, so there are no concurrent writes to the same files.

Security Model

Personal harness — no explicit security model. The developer is the user. No threat model for credentials, data exfiltration, or malicious tools.

Hook Security

The PostToolUse hooks run Python scripts on every tool call. These scripts:

  • Run in the local Python environment (via uv)
  • Have access to the full filesystem
  • Are trusted code written by the developer

No sandboxing of the hooks themselves. This is acceptable for a personal setup.

Credential Handling

No credential management. API keys are in the environment (standard Claude Code behavior). No vault, no injection proxy.

Settings.json Trust

settings.json with hook configurations is committed to the repo. Any security-sensitive config would need to be in .gitignore. The repo has no .env files in the committed structure.

Comparison to Batch Peers

Framework Isolation Security Scope
ironclaw WASM capability sandbox Production tool safety
stakpak-agent Docker + Warden network Network egress
agentbox-mattolson mitmproxy + iptables Credential isolation
osaurus Apple Container Linux VM Privacy + OS
code-yeongyu None (Claude Code native) Personal use only

This is appropriate: a 13-star personal harness does not need enterprise security. The developer's security model is "I trust myself."

08

Ui Cli Surface

code-yeongyu/my-claude-code-harness — UI & CLI Surface

CLI Surface

Claude Code native — no custom binary.

All interaction happens through Claude Code's standard interface. The harness adds:

  • /planner slash command
  • /execute slash command
  • /commit slash command
  • /create-pr slash command
  • /read-pr slash command

Status Line

bunx --bun ccusage statusline

Configured via settings.json's statusLine field. Shows real-time Claude Code token usage in the terminal prompt. Practical cost visibility for the developer.

No Web UI

No dashboard, no web frontend. Claude Code terminal only.

Hooks as Automated UI

The PostToolUse hook provides automated feedback after every tool call:

  • Lint errors appear as context immediately after file writes
  • The developer sees quality feedback in the conversation flow
  • Not a separate UI pane — integrated into the chat

alwaysThinkingEnabled Visibility

With alwaysThinkingEnabled: true, the Claude Code interface shows the extended thinking process. This gives the developer insight into the agent's reasoning, which functions as a form of transparency UI.

Effective Interaction Pattern

Developer types: /planner "build a REST API for user management"

Claude generates ai-todolist.md with tasks.

Developer reviews todolist in their editor.

Developer types: /execute

Claude executes tasks one at a time. After each file write,
PostToolUse hook fires and lint results appear in chat.

Developer types: /commit

Conventional commit created.

Developer types: /create-pr

GitHub PR created with structured description.

All interaction via text — no GUI required. Suitable for developers who live in the terminal.

IDE Integration

None native. Standard Claude Code IDE integrations (VS Code extension etc.) would work, but the harness doesn't add anything specific. The developer is assumed to be using terminal Claude Code.

Related frameworks

same archetype · same primary tool · same memory type

Claude-Flow / Ruflo ★ 55k

Eliminates single-agent context limits and sequential bottlenecks by orchestrating fault-tolerant swarms of specialized AI agents…

Hermes Agent (NousResearch) ★ 168k

Self-improving personal AI agent with closed learning loop, 7 terminal backends, and messaging gateway — not tied to any AI…

OpenCode ★ 165k

Terminal-first AI coding agent with multi-model routing, native desktop app, and a typed .opencode/ configuration system for…

OpenHands ★ 75k

Open-source AI software development platform (open-source Devin alternative) with Docker sandbox isolation, 77.6% SWE-bench…

DeerFlow ★ 70k

Long-horizon superagent that researches, codes, and creates by orchestrating parallel sub-agents with isolated contexts in Docker…

oh-my-openagent (omo) ★ 60k

Multi-provider AI agent orchestration for OpenCode: escape vendor lock-in by routing Sisyphus (Claude/Kimi/GLM) and Hephaestus…