User feedback (2026-05-24): /ship-spec must end with `gh pr ready
<N>`; don't leave PRs in draft. Overrides the skill's documented
"v1 stops at draft" stance. Recorded in both the harness MEMORY.md
and the auto-memory feedback store so future sessions apply the
preference without re-correction.
Follow-up (deferred): update .claude/skills/ship-spec/SKILL.md
Stage 9 to call `gh pr ready <N>` as the final step.
Refs #350.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Memory Improvement Protocol § c (Improve), session-closing pass.
14 candidates scanned; 4 filtered as already-captured; 7 filtered
as not durable / already in rules; 3 survived to MEMORY.md
(none graduated to IDENTITY.md — no cross-session generalization
established yet from a single run).
Promoted:
- /ship-spec Stage 4 HALT-on-HIGH semantics are looser in practice
than the spec implies — in-place AC mitigation with a Synthesis
audit trail in critique.md is equivalent when fixes are
mechanical (no PROTECTED-PATH / boundary-crossing signals).
- /ship-spec Stage 7 template path drift: the referenced template
at tasks/openharness-v07-convergence/prompt.md is now at
tasks/archive/... ; skill prose hasn't caught up.
- memory/YYYY-MM-DD/log.md gitignore vs context/rules/memory.md
docstring mismatch: rule says "log.md tracked inside"; .gitignore:42
rule memory/[0-9]*/ excludes the entire directory contents in
practice. Daily logs are local-only working state.
Refs #350. /reflect log entry appended to memory/2026-05-24/log.md
(local-only per the gitignore behavior recorded in lesson 3).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Memory Improvement Protocol per context/rules/memory.md.
Promotes one durable lesson from the /delegate run that landed
the Karpathy wiki integration: when /delegate spawns parallel
sub-agents touching a shared append-style file (CHANGELOG.md,
AGENTS.md skills table), scope each sub-agent to disjoint files
and let the orchestrator integrate the shared-file edits at
commit time. Avoids concurrent-commit clobber and silent stale-
view compose (same mechanism behind the 2026-05-19 worktree
lesson). Pattern is "fan out implementation, fan in integration."
Also promotes the pre-existing 2026-05-23 .claude/plans/ gitignore
lesson which was unstaged since PR #347; this commit lands it on
this PR's merge to development.
Daily log entries for pm-agent / ship-spec / delegate runs were
appended to memory/2026-05-24/log.md but the directory is
gitignored by the existing memory/[0-9]*/ rule, so the daily log
lives only on the local filesystem (per the established
convention; only MEMORY.md is the long-term tracked store).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
All US-001..US-005 passes: true; progress.txt has Codebase Patterns
+ per-story entries + STATUS: COMPLETE sentinel. /delegate execution
of tasks/karpathy-llm-wiki/prd.json is finished.
Refs #350. PR #351 ready for human review (transition to ready via
gh pr ready 351 + /ci-status).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wave 4 (final) of /delegate execution.
Appends 3 rows to the AGENTS.md skills table — flat append, no
new category header. CLAUDE.md symlink integrity verified intact
before and after (inode 3408085 unchanged).
CHANGELOG entry: one ### Changed line for the registration action
itself (per US-005 AC); per-skill ### Added entries already shipped
in US-001/2/3/4 commits.
Refs #350. Closes#350 once merged. All 5 stories from the prd.json
are now landed; next step is gh pr ready 351 + /ci-status.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wave 2 of /delegate execution; both skills land together.
/wiki-ingest (.claude/skills/wiki-ingest/SKILL.md, 295 lines):
- Argument interface: <url|path> [--slug <override>] | --from-draft
<slug> [--allow-stale]; argument-hint set
- URL ingest WebFetches and writes wiki/raw/<yyyy-mm-dd>-<slug>.md;
path ingest mirrors a copy; both mkdir -p wiki/raw/ first
- --from-draft globs memory/*/wiki-drafts/<slug>.md, sorts by ISO
date in parent dir name (not mtime), excludes .skip files, errors
STALE if > 7d unless --allow-stale
- Slug derivation, body-merge, and frontmatter schema all defer to
context/rules/wiki.md (§§ 3, 7, 2 respectively)
- Daily log entry per Memory Improvement Protocol
- Orchestrator-only writes (sub-agents draft to memory/<today>/
wiki-drafts/<slug>.md and orchestrator promotes via --from-draft)
/wiki-query (.claude/skills/wiki-query/SKILL.md, 299 lines):
- Argument interface: <topic>; multi-word OR semantics
- Frontmatter-only grep using context/rules/wiki.md § 6 canonical
awk extraction; matches title/slug/tags only (NOT body)
- Empty result prints No wiki entries matched <topic> and exits 0
- Sub-cap: <3 reads all; >=3 reads top 3 by updated: descending;
cap hardcoded in v1
- Reads individual files directly (does not route via README index)
- Daily log entry per Memory Improvement Protocol
Refs #350. Wave 2 of /delegate execution. Wave 3 (US-004 /wiki-lint)
is the next dependency-unblocked story.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Establishes the Karpathy LLM Wiki foundation: top-level wiki/ +
wiki/raw/ directories with README anchors, .gitignore exemption
for the snapshot README, and the complete 7-section schema rule
at context/rules/wiki.md (boundary table, entry schema, slug
derivation, cross-link convention, confidence lifecycle, canonical
frontmatter extraction command, body-merge strategy for updates).
The schema rule auto-loads via context/rules/*.md and is the
canonical reference for US-002 (/wiki-ingest), US-003 (/wiki-query),
and US-004 (/wiki-lint). All three skills MUST use the locked
extraction command from § 6 to avoid silent divergence.
Refs #350. Wave 1 of /delegate execution.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Four-file contract (per SPEC v0.7 §tasks/) + critique:
- prd.md: 5 user stories (US-001 through US-005), 12 FRs,
8 non-goals; HIGH critic findings folded into ACs.
- prd.json: schemaVersion 1, branchName feat/350-karpathy-llm-wiki,
5 stories with wave-encoded priorities and dependency notes.
- prompt.md: Ralph iteration instructions adapted from the
archived convergence template; wave-ordering and symlink-
discipline notes specific to this task.
- progress.txt: empty header.
- critique.md: 2-critic adversarial review (implementer +
user lens) with 7 HIGH / 12 MED / 6 LOW findings; all
HIGH findings mitigated in prd.md ACs (recorded in the
Synthesis section). 0 protected-path violations.
Tracks #350 (implementation). Builds on plan PR #347
(.claude/plans/karpathy-llm-wiki.md on branch
feat/346-karpathy-llm-wiki). Parent tracking issue #346.
PRD generated by /prd; reviewed by 2 critics (implementer +
user lens, with the advisor-model 3-step variant — critique
findings folded back into PRD as AC tightenings); converted
by /ralph.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add `client-` prefix to sandbox-processes.md naming table for
external-surface clients bridging an in-sandbox agent.
- Tighten the `agent-` example off interactive CLIs; document that
claude/codex/opencode are foreground tools, not tmux sessions.
- entrypoint.sh: restore client-slack on container start when
SLACK_APP_TOKEN + SLACK_BOT_TOKEN are present and `pi` is installed.
- Propagate rename through wizard code, READMEs, and docs.
- Fold in half-finished harness-pi rename from #302.
Closes#344
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Strip top-level argument-hint frontmatter (portability), repin skills.lock
to merged master (commit f95011fe, checksum 02dd6324), and add the
previously-missing LICENSE for folder parity with upstream.
Closes#339
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Strip top-level argument-hint frontmatter (forbidden by skills-ref@0.1.5
portability policy; --dry-run documented in body). Harness copy now
byte-identical to the upstream contribution. Fix skills.lock checksum to
the registry folder-algorithm value (9be176e0); note references upstream
PR mifunedev/skills#5, commit backfilled on merge.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Surface scripts/install.sh local-run detection as three equal-weight install
paths (upstream / fork-and-clone / clone-and-own) in README, installation.md,
and quickstart.md. No script changes — the installer already handled both
self-hosting flows; docs were the only gap.
Closes#331
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add interview and render-html to .mifune/skills.lock now that
mifunedev/skills PR #3 has merged; all 15 skills are upstream-tracked
- Sync render-html/SKILL.md from master (portable path, no hard-coded
/home/sandbox/harness prefix); restore argument-hint locally
- Add LICENSE files for interview and render-html (Mifune Dev copyright)
- Update all 15 skill checksums and commit SHA in skills.lock
- Update .mifune/README.md and CHANGELOG.md to reflect full coverage
config.example.json was the tracked seed for the gitignored config.json,
but the base ships zero compose overlays and every reader (Makefile,
install.sh, banner.sh) tolerates a missing config.json via jq fallbacks.
Remove the file and its now-dead seeding block in install.sh.
Closes#323
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Picks 2–4 task-specific questions via AskUserQuestion, echoes a
2–3 sentence scope brief, then proceeds. Skips trivial tasks with
an announcement. Serves as the in-tree reference pattern for
AskUserQuestion-based elicitation in future skills.
Tracks #316.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Closes#314.
Adds an on-request skill that takes an artifact (file or in-context
material) plus a one-line intent and produces a single self-contained
HTML file optimized for the moment a human reads it once to make a
decision. Writes to memory/<UTC-date>/<slug>.html (gitignored via the
existing memory/[0-9]*/ rule).
Encodes Thariq's HTML-over-Markdown thesis as a three-condition gate:
synthesis artifact + would-be-unreadable-as-Markdown + no downstream
pipeline consumer. Refuses to render source/pipeline input (PRDs,
briefings, rules, skills, commit messages, log.md itself). No
templates — each invocation produces bespoke HTML, picking widgets
per artifact (severity table, dependency SVG, collapsible evidence).
- .claude/skills/render-html/SKILL.md (new)
- AGENTS.md — Skills table row
- memory/README.md — recognized co-resident of log.md
- CHANGELOG.md — Unreleased entry
Two coupled changes:
1. .claude/skills/release/SKILL.md (Step 3 → 4):
Capture PREV_BRANCH before the promotion commit and push it back
to origin BEFORE cutting release/$VERSION. Without this, the
promotion commit lived only on release/* (and reached main via
the release-branch merge), but development never received it,
so the next round of work re-carried already-released entries
under [Unreleased] and the next /release double-promoted them.
2. CHANGELOG.md:
Repair the existing drift caused by (1). Three prior releases
(2026.5.14, 2026.5.15, 2026.5.16) had their promoted versioned
sections on main but not on development. Reset CHANGELOG.md to
main's versioned history, then re-seed [Unreleased] with only
genuinely post-2026.5.16 entries: #309 fork-friendly-install,
the /worktrees skill, and this fix itself.
Closes#297.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat: scaffold fork-friendly-install task
Four-file contract per SPEC v0.7 §tasks/:
- prd.md: 7 user stories with post-critic-mitigation AC
- prd.json: schemaVersion 1, branchName feat/308-fork-friendly-install
- prompt.md: Ralph iteration instructions
- progress.txt: empty header
- critique.md: 2-critic review (implementer + user lens),
all 6 H-severity findings mitigated; 1 M-severity ICP.md
drift flagged as separate orchestrator hygiene
Source: 5-seat AI council unanimous Option E (Hybrid B+A) +
Critic concur-with-amendments. Parameterizes the clone source
via OH_GITHUB_REPO so a forked Open Harness installs the
forker's code, not upstream's; keeps oh.mifune.dev canonical
upstream URL unchanged.
Tracks #308. PRD generated by /prd; reviewed by 2 critics
(implementer + user lens); converted by /ralph.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat: US-005 — README adds a "For forks / self-host" block
Inserts a ### 📦 For forks / self-host subsection into README.md after
the closing paragraph of ## 📦 Install and before ## 🚀 Use it. Includes
blockquote visual-hierarchy guard, matching <your-org>/<your-fork>
placeholders in both curl URL path and OH_GITHUB_REPO env var, branch
substitution note, mutable-HEAD trust caveat, and .devcontainer/ footnote
with concrete patch guidance. Upstream line 17 is byte-identical.
* feat: US-001 — OH_GITHUB_REPO env var parameterizes the clone
- Adds OH_GITHUB_REPO="${OH_GITHUB_REPO:-ryaneggz/open-harness}" immediately after REPO_DIR is set (line 180) and before the migration block (line 182)
- Validates with bash [[ =~ ]] regex (^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$); dies with clear message on mismatch
- Emits warn "Cloning from fork: $OH_GITHUB_REPO" when non-default value supplied
- Replaces both hardcoded clone URLs (with and without --branch) with https://github.com/${OH_GITHUB_REPO}.git in lockstep
- bash -n passes; shellcheck: baseline 11, post-edit 11 (no new warnings)
* task: US-001 — update progress.txt with commit SHA dbf8623
* feat: US-002 — OH_GITHUB_REF aliases OH_INSTALL_REF
Adds OH_GITHUB_REF alias resolution block after the fork-warn block,
before the population/migration classification. When both
OH_GITHUB_REF and OH_INSTALL_REF are set to differing non-empty
values, a warn fires before the alias resolution overrides
OH_INSTALL_REF. The fresh-clone branch-guard now keys on the
resolved $OH_GITHUB_REF, so either var triggers --branch clone form.
Back-compat preserved: OH_INSTALL_REF=v1.2.3 with OH_GITHUB_REF
unset still results in --branch v1.2.3 (alias resolves to v1.2.3).
No deprecation warning emitted in this release.
bash -n: PASS. shellcheck: 11 warnings (no regression vs baseline).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat: US-003 — pull path validates remote against OH_GITHUB_REPO
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: US-004 — help text documents OH_GITHUB_REPO and OH_GITHUB_REF
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: US-007 — CHANGELOG records OH_GITHUB_REPO/REF additions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>