Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
6,000+ web scrapers for your AI agent, start free logo6,000+ web scrapers for your AI agent, start free

Apify gives your agent live web data: 6,000+ prebuilt scrapers and actors, MCP-ready. Sign up free with $5 in usage credits.

Try Apify free
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 48,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here
henkaten-council logo

henkaten-council

henkaten-council

OtherClaude Codeby ats-kinoshita-iso

Summary

Henkaten Council plugin for Claude Code — governance layer that orchestrates change-point detection, autonomous decision audit, and continuous improvement across trine-eval sprints.

Install to Claude Code

/plugin install henkaten-council@henkaten-council

Run in Claude Code. Add the marketplace first with /plugin marketplace add ats-kinoshita-iso/henka-council if you haven't already.

README.md

henkaten-council

A Claude Code plugin that adds a continuous-improvement governance layer on top of any project managed by the trine-eval harness. The council detects change points (henkaten), audits autonomous decisions, manages a dynamic autonomy floor, and enforces the andon protocol across sprints.

> A note on the name. henka (変化) means "change"; henkaten (変化点) is > the specific Toyota Production System term for a "change point" — the concept > this plugin is built around. The repo got the shorter henka-council for URL > brevity, but the plugin identifier, the skill namespace > (/henkaten-council:...), and every in-code reference use the full > henkaten-council. The contraction is deliberate and documented in > docs/phase-0-proposal.md. Internally the > plugin also distinguishes henkaten (変化点 — passive, emerged) from > henkoten (変更点 — active, deliberately initiated) on every change-point > record, but uses "henkaten" as the umbrella name.

---

What it Does

The henkaten-council plugin wires a council of specialized agents into the Claude Code skill system. Each sprint, the council:

1. Detects change points using 4M axis classification (Man/Machine/Method/Material) 2. Audits every correction with evidence citations and reversibility flags 3. Manages a dynamic autonomy floor that drops on consecutive sprint failures or repeated andon stops from multiple distinct originators 4. Delegates sprint evaluation to the trine-eval harness via

/trine-eval:harness-sprint 5. Records all governance activity to append-only JSONL logs under .council/

---

Prerequisites

  • Claude Code ≥ 0.3.0
  • trine-eval ≥ 0.3.0 installed and initialized in your target project

(run /trine-eval:harness-kickoff first if the .harness/ directory does not yet exist)

  • Git ≥ 2.30

---

Install

Option A — Marketplace (Recommended)

This repository ships its own single-plugin marketplace manifest (.claude-plugin/marketplace.json). In Claude Code, add the repo as a marketplace, then install the plugin from it:

/plugin marketplace add ats-kinoshita-iso/henka-council
/plugin install henkaten-council@henkaten-council

Claude Code will fetch the plugin, auto-discover the skills and agents under skills/ and agents/, auto-register the hooks declared in

hooks/hooks.json, and load CLAUDE.md automatically for all future sessions in the project.

Option B — Direct Path Install

Clone this repository and add it as a local marketplace:

git clone https://github.com/ats-kinoshita-iso/henka-council.git
/plugin marketplace add ./henka-council
/plugin install henkaten-council@henkaten-council

After installation, verify the plugin is active:

/plugin list

You should see henkaten-council in the output with status active.

---

Hook Installation and Self-Check

The council's enforcement hooks must be registered with Claude Code's hook system before the council can prevent append-only log overwrites or enforce the reversibility policy. The hooks live in hooks/ (Bash, for Linux/macOS) and hooks/win/ (PowerShell, for Windows).

> As of v0.1.2: hooks auto-register from hooks/hooks.json when the > plugin is installed via the marketplace flow (Option A above). The kickoff > skill's Step 1d.0 detects this case and the manual snippet below is then > only a fallback — needed for direct-path installs on Claude Code builds > that don't read plugin-level hooks.json, or for pure-PowerShell Windows > hosts without bash.

When you run /henkaten-council:council-kickoff for the first time, the skill performs a hook installation self-check and refuses to proceed past Step 1d if neither auto-registration nor manual registration covers all four required hooks.

The full registration snippet is in skills/council-kickoff/SKILL.md under Step 1d.1 (Linux/macOS) and Step 1d.2 (Windows). The short version:

Add this hooks block to your target project's .claude/settings.local.json:

"hooks": {
  "PreToolUse": [
    { "matcher": "Write|Edit",
      "hooks": [{ "type": "command",
                  "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/enforce-append-only.sh" }] },
    { "matcher": "Bash",
      "hooks": [{ "type": "command",
                  "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/enforce-reversibility.sh" }] }
  ],
  "PostToolUse": [
    { "matcher": "*",
      "hooks": [{ "type": "command",
                  "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/log-tool-call.sh" }] }
  ],
  "Stop": [
    { "hooks": [{ "type": "command",
                  "command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/session-stopped-marker.sh" }] }
  ]
}

On Windows targets, substitute pwsh -NoLogo -NoProfile -File ${CLAUDE_PLUGIN_ROOT}/hooks/win/<name>.ps1 for each bash ${CLAUDE_PLUGIN_ROOT}/hooks/<name>.sh. The PowerShell hooks ship functional parity with the bash siblings (v2.1 amendment A7).

${CLAUDE_PLUGIN_ROOT} is resolved by Claude Code at hook-fire time to the plugin's installed directory. If your Claude Code build does not resolve that variable yet, substitute the absolute path to where the plugin is installed (e.g. /home/<user>/.claude/plugins/cache/henkaten-council/<version>/).

Do not skip the hook self-check. Running the council without the append-only hook means JSONL logs can be silently overwritten, which breaks the governance audit chain.

Permissions for running council-kickoff against a target project

The kickoff skill writes into the target project's .council/ directory and may merge a governance block into the target's .harness/config.json. Depending on your Claude Code permission tier, you may need to add Bash permissions for the target project's path (e.g.

Bash(mkdir -p /path/to/target/.council/**)) before the orchestrator can create the baseline. The council-kickoff skill will surface this requirement if it hits a denial.

---

Quickstart

Step 1 — Initialize the trine-eval harness (if not already done)

/trine-eval:harness-kickoff

This creates .harness/spec.md, .harness/features.json, and

.harness/sprints.json in your project.

Step 2 — Bootstrap the council governance baseline

/henkaten-council:council-kickoff

This creates the complete .council/ directory structure:

.council/
  config.json
  council-manifest.json
  henka-register.jsonl
  decision-log.jsonl
  audit-log.jsonl
  standard-work.json
  state/
    effective-autonomy.json
  proposed/
  proposed/archive/
  course-corrections/
  retrospectives/
  sessions/

The kickoff skill also:

  • Writes a governance signal to .harness/config.json
  • Verifies that all required hooks are installed (hook self-check)
  • Surfaces the one-time git merge opt-in setup note (see below)

Step 3 — Run the council autorun loop (Sprint 4+)

Once the council baseline is in place, run:

/henkaten-council:council-autorun

to start the sprint review loop (available from Sprint 4 onward).

---

Git Merge Opt-In

By default, git merge is in the deny tier in .claude/settings.json. This means the Orchestrator cannot propose or execute merges without explicit user override. If you want the Orchestrator to propose merges when a sprint PASSes, move git merge * from the deny array to the ask array in

.claude/settings.json. The council-kickoff skill will remind you of this one-time setup step.

---

Dependency: trine-eval

The henkaten-council plugin depends on trine-eval as its harness. The governance signal written to .harness/config.json by the kickoff skill tells trine-eval that the council is active. Sprint evaluation is always delegated to

/trine-eval:harness-sprint — the council does not implement its own evaluation engine.

---

License

MIT - see LICENSE.

Related plugins

Browse all →