11# JakeShea Humanize RLCR
22
33A personal, Codex-only fork of Humanize for bounded plan implementation with
4- independent review loops.
4+ independent review loops. Version 2 selectively adopts Humanize2's layered
5+ run/cycle, resumability, focused-flow, and traceability patterns while keeping a
6+ smaller fail-closed Codex plugin boundary.
57
68This repository is not the official PolyArch Humanize distribution. Its Codex
79identities are deliberately namespaced to avoid collisions with any future
@@ -10,6 +12,8 @@ official plugin:
1012- Plugin: ` jakeshea-humanize-rlcr `
1113- Marketplace: ` jakeshea-humanize `
1214- Skill: ` $jakeshea-humanize-rlcr:humanize-rlcr `
15+ - Planning skill: ` $jakeshea-humanize-rlcr:humanize-plan `
16+ - Review-only skill: ` $jakeshea-humanize-rlcr:humanize-review `
1317
1418## What RLCR does
1519
@@ -24,7 +28,20 @@ the same committed artifact:
2428
2529Both lanes must accept the same immutable artifact digest. Blocking findings
2630become a continuation prompt; Codex corrects them, commits, and stops again.
27- The loop is bounded by review rounds, calls, failures, timeouts, and wall time.
31+ The loop is bounded by review rounds, calls, failures, timeouts, wall time, and
32+ measured Codex token usage.
33+
34+ RLCR v2 additionally provides:
35+
36+ - optional ` rlcr.plan.v1 ` contracts whose required criteria are checked by the
37+ controller;
38+ - named deterministic evidence bound to the exact candidate commit;
39+ - independent per-lane caching, so a valid lane is not rerun when its peer
40+ fails transiently;
41+ - typed failures, safe live-review cancellation, explicit session adoption,
42+ and one-way v1 history migration;
43+ - recoverable hash-chained events, run history, Markdown/JSON reports, and
44+ Chrome/Perfetto traces.
2845
2946## Requirements
3047
@@ -33,18 +50,62 @@ The loop is bounded by review rounds, calls, failures, timeouts, and wall time.
3350- Git.
3451- Python 3.10 or newer. Windows hooks use the standard ` py -3 ` launcher.
3552
36- ## Install this checkout
53+ ## Install or upgrade the plugin
54+
55+ The plugin is published by this repository's ` jakeshea-humanize ` marketplace.
56+ The current release has version prefix ` 0.2.0+codex. ` ; the suffix is a cache
57+ stamp that changes whenever the local plugin is rebuilt.
58+
59+ ### First install from a local checkout
60+
61+ Register the repository marketplace once, then install the plugin:
3762
3863``` bash
3964codex plugin marketplace add /absolute/path/to/humanize
4065codex plugin add jakeshea-humanize-rlcr@jakeshea-humanize
4166```
4267
43- Open a new Codex conversation, run ` /hooks ` , inspect and trust the bundled
44- hook, then invoke:
68+ Verify that Codex reports it as installed and enabled:
69+
70+ ``` bash
71+ codex plugin list --json
72+ ```
73+
74+ ### First install directly from GitHub
75+
76+ ``` bash
77+ codex plugin marketplace add JakeFlasher/humanize --ref for-codex-plugin-only
78+ codex plugin add jakeshea-humanize-rlcr@jakeshea-humanize
79+ ```
80+
81+ ### Upgrade an existing installation
82+
83+ Finish or cancel an active RLCR run before upgrading because an in-flight run
84+ intentionally refuses changed controller semantics. For a local checkout, pull
85+ or edit the source and reinstall its cache-stamped snapshot:
86+
87+ ``` bash
88+ git pull --ff-only
89+ codex plugin add jakeshea-humanize-rlcr@jakeshea-humanize
90+ codex plugin list --json
91+ ```
92+
93+ Do not add the marketplace again if ` codex plugin marketplace list ` already
94+ shows ` jakeshea-humanize ` . For a Git-backed marketplace, refresh it first:
95+
96+ ``` bash
97+ codex plugin marketplace upgrade jakeshea-humanize
98+ codex plugin add jakeshea-humanize-rlcr@jakeshea-humanize
99+ ```
100+
101+ After either installation or upgrade, open a ** new Codex conversation** so the
102+ new skills and hook snapshot are loaded. Run ` /hooks ` , inspect and trust the
103+ bundled Stop hook, then invoke one of the explicit skills:
45104
46105``` text
47106$jakeshea-humanize-rlcr:humanize-rlcr implement path/to/plan.md
107+ $jakeshea-humanize-rlcr:humanize-plan create a plan and contract for this change
108+ $jakeshea-humanize-rlcr:humanize-review review this committed change against path/to/plan.md
48109```
49110
50111For installation from another machine, update, removal, and troubleshooting,
@@ -57,11 +118,11 @@ see [Install for Codex](docs/install-for-codex.md).
57118plugins/jakeshea-humanize-rlcr/
58119├── .codex-plugin/plugin.json Plugin identity and UI metadata
59120├── hooks/hooks.json Native synchronous Stop hook
60- ├── controller/ State machine, review runner, storage
121+ ├── controller/ Layered state, policy, evidence, review, reporting
61122├── prompts/ Independent reviewer lane prompts
62- ├── schemas/review-v1.json Structured reviewer output contract
123+ ├── schemas/ Review and plan- contract schemas
63124├── scripts/rlcr.py Direct controller entrypoint
64- └── skills/humanize-rlcr/ Explicit Codex skill and wrapper
125+ └── skills/ Plan, review-only, and full-loop skills
65126tests/test-codex-native-rlcr.py Protocol, concurrency, and safety tests
66127```
67128
@@ -76,6 +137,9 @@ ${JAKESHEA_HUMANIZE_RLCR_STATE_HOME:-${XDG_STATE_HOME:-~/.local/state}/jakeshea-
76137
77138``` bash
78139python3 tests/test-codex-native-rlcr.py
140+ ruff check .
141+ ruff format --check .
142+ pyright
79143python3 -m json.tool .agents/plugins/marketplace.json > /dev/null
80144```
81145
@@ -96,18 +160,28 @@ codex plugin add jakeshea-humanize-rlcr@jakeshea-humanize
96160 neutralized before trusted Git reads.
97161- Plan, schema, prompt, manifest, and cumulative patch snapshots are integrity
98162 checked before and after review.
163+ - Start commit ancestry is enforced, and plan contract, run configuration,
164+ evidence manifest, and cumulative patch all contribute to artifact identity.
165+ - Evidence commands run as explicit argv without a shell, at a clean commit;
166+ failed, stale, missing, or tampered records cannot authorize review.
167+ - Live cancellation uses attempt-scoped process registrations and
168+ PID-reuse-resistant kernel identities before signaling a process group.
99169- Hooks are guardrails, not a complete isolation boundary. The two reviewers
100170 use independent contexts but the same model family; deterministic tests and
101171 human judgment remain necessary.
102172- Strict mode currently blocks repositories containing Git submodules.
103173
104- See [ Architecture] ( docs/architecture.md ) for the state machine and trust model.
174+ See [ Architecture] ( docs/architecture.md ) for the state machine and trust model,
175+ [ the Humanize2 adoption ADR] ( docs/adr/0001-humanize2-pattern-adoption.md ) for
176+ the merge decision, [ research foundations] ( docs/research-foundations.md ) for
177+ the paper-to-control mapping, and [ the v2 migration guide] ( docs/migration-v2.md )
178+ for upgrades.
105179
106180## Provenance and license
107181
108182This personal fork descends from PolyArch Humanize, which itself credits the
109- GAAC project. The prior Claude Code implementation was removed from this branch
110- after the Codex-native plugin became self-contained; it remains recoverable in
111- Git history. See [ NOTICE] ( NOTICE.md ) .
183+ GAAC project. Humanize2 was studied at a pinned Apache-2.0 revision, but no
184+ Humanize2 source was copied or linked into this MIT plugin. See
185+ [ NOTICE] ( NOTICE.md ) .
112186
113187Licensed under the [ MIT License] ( LICENSE ) .
0 commit comments