804 Commits
Author SHA1 Message Date
ryaneggz 01b137d8f8 task: promote CHANGELOG for 2026.5.24 2026-05-24 01:58:19 +00:00
Ryan Eggleston ce6f9ff493 Merge pull request #345 from ryaneggz/task/344-rename-client-slack
FROM task/344-rename-client-slack TO development
2026-05-23 19:49:19 -06:00
Ryan Eggleston 548ab5a28c Merge pull request #351 from ryaneggz/feat/350-karpathy-llm-wiki
FROM feat/350-karpathy-llm-wiki TO development
2026-05-23 19:47:05 -06:00
ryaneggzandClaude Opus 4.7 833d9900bf task: record /ship-spec PR-ready preference
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>
2026-05-24 01:42:03 +00:00
ryaneggzandClaude Opus 4.7 f786b0358f task: /reflect — promote 3 lessons from Karpathy wiki session
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>
2026-05-24 01:36:00 +00:00
ryaneggzandClaude Opus 4.7 14b6bee451 task: record /delegate shared-file integration pattern in MEMORY.md
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>
2026-05-24 01:27:50 +00:00
ryaneggzandClaude Opus 4.7 ba7e925994 task: mark all 5 stories complete in prd.json + progress.txt
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>
2026-05-24 01:25:14 +00:00
ryaneggzandClaude Opus 4.7 dc64711017 task: US-005 — register /wiki-ingest, /wiki-query, /wiki-lint in AGENTS.md
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>
2026-05-24 01:23:03 +00:00
ryaneggzandClaude Opus 4.7 1e6ab78b81 feat: US-004 — /wiki-lint skill (health checks + atomic README regen)
Wave 3 of /delegate execution.

/wiki-lint (.claude/skills/wiki-lint/SKILL.md, 525 lines):
- Argument interface: [--dry-run]; argument-hint set
- Default regenerates wiki/README.md atomically (tmp file +
  validate non-empty + grep for exact header + atomic rename;
  on failure exits non-zero and leaves original intact)
- --dry-run prints proposed changes without writing
- Five distinct check types (NEVER conflated):
  1. Stale-90d (updated > 90 days)
  2. Deprecated (confidence: deprecated) — REPORTS only, never SETS
  3. Orphan (zero inbound [[slug]] refs, two-pass)
  4. Broken outbound link (separate from orphans)
  5. Contradiction detection (stub — descoped to follow-up)
- Uses the canonical frontmatter extraction command from
  context/rules/wiki.md § 6, byte-identical to /wiki-query (US-003)
- Daily log entry per Memory Improvement Protocol

Refs #350. Wave 4 (US-005 — AGENTS.md registration) is the final
dependency-unblocked story.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 01:21:23 +00:00
ryaneggzandClaude Opus 4.7 92c879749d feat: US-002 + US-003 — /wiki-ingest + /wiki-query skills
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>
2026-05-24 01:16:19 +00:00
ryaneggzandClaude Opus 4.7 e7b410e164 feat: US-001 — scaffold wiki/ + context/rules/wiki.md schema rule
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>
2026-05-24 01:09:30 +00:00
ryaneggzandClaude Opus 4.7 18f0daa2a3 feat: scaffold karpathy-llm-wiki task
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>
2026-05-24 01:03:01 +00:00
ryaneggzandClaude Opus 4.7 b17242590c task: rename agent-pi → client-slack tmux session + restore on restart
- 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>
2026-05-23 20:39:51 +00:00
ryaneggz a75200d272 fix: install pi under sandbox-owned prefix 2026-05-23 20:13:35 +00:00
Ryan Eggleston 8cc45b1e9e Merge pull request #338 from ryaneggz/skill/337-reflect-self-improvement
FROM skill/337-reflect-self-improvement TO development
2026-05-22 00:32:14 -06:00
ryaneggz 8b2b9bd685 Merge remote-tracking branch 'origin/development' into skill/337-reflect-self-improvement
# Conflicts:
#	.mifune/skills.lock
#	AGENTS.md
#	CHANGELOG.md
2026-05-22 06:31:53 +00:00
Ryan Eggleston fc297b91ea Merge pull request #340 from ryaneggz/task/339-context-audit-resync
FROM task/339-context-audit-resync TO development
2026-05-22 00:29:57 -06:00
ryaneggzandClaude Opus 4.7 c83e1a00d7 task: re-sync context-audit to portable upstream (mifunedev/skills#6)
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>
2026-05-22 06:27:14 +00:00
ryaneggzandClaude Opus 4.7 7bc2e1c66d task: backfill reflect lock pin to mifunedev/skills master
PR #5 merged. Pin reflect to commit d35ad8d, registry_version 2026.5.22;
checksum unchanged (already the registry value).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 06:25:32 +00:00
Ryan Eggleston 50f90821b7 Merge pull request #336 from ryaneggz/skill/335-caveman-compression
FROM skill/335-caveman-compression TO development
2026-05-22 00:21:43 -06:00
ryaneggzandClaude Opus 4.7 93bd09629d task: record session lessons via /reflect dogfood
Three MEMORY.md lessons promoted (qualify-filtered, user-approved):
untrusted curl|bash → fetch/inspect/implement-native; CLAUDE.md symlink →
edit AGENTS.md; skills.lock provenance for non-registry skills.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 06:19:52 +00:00
ryaneggzandClaude Opus 4.7 3d2eef7c2f skill: make /reflect portable + pin to mifunedev/skills PR #5
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>
2026-05-22 06:19:52 +00:00
ryaneggzandClaude Opus 4.7 aaf55426dc skill: add /reflect self-improvement skill
Deliberate whole-session memory pass operationalizing the Memory
Improvement Protocol (context/rules/memory.md). Scans current conversation
for durable patterns, applies qualify filter, classifies by tier, proposes
MEMORY.md/IDENTITY.md additions for confirmation before writing; always
appends a log entry. Manual trigger, current-session scope,
propose-then-confirm. Authored via skill-builder agent for
github:mifunedev/skills (lock entry pending upstream contribution).

Closes #337

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 06:00:17 +00:00
ryaneggzandClaude Opus 4.7 68e4d6673e skill: scope /caveman-compress to memory + scratch only
Eval found no safe high-benefit target in-repo: docs/published prose
intentional, archives ignored by default, auto-loaded context belongs to
/context-audit. Add explicit scope check — refuse docs/**, archives,
context/**, .claude/** ; allow memory/** + untracked scratch + explicit
override. Refresh skills.lock checksum.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 05:44:31 +00:00
ryaneggzandClaude Opus 4.7 f65add41bf skill: add /caveman token-compression skill + subcommands
Vendored adaptation of JuliusBrussee/caveman (MIT). Adds /caveman output
mode (lite/full/ultra/wenyan) plus /caveman-commit, /caveman-review,
/caveman-compress, /caveman-stats. Preserves code, API names, error
strings, security warnings, and irreversible-action confirmations
verbatim. Authored to harness skill conventions; upstream curl|bash
installer intentionally not run. Pinned in skills.lock as manual entries.

Closes #335

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 05:32:50 +00:00
Ryan Eggleston 849191dff1 Merge pull request #334 from ryaneggz/skill/333-context-audit
FROM skill/333-context-audit TO development
2026-05-21 22:43:38 -06:00
ryaneggzandClaude Sonnet 4.6 e603bea546 task: add context-audit to skills.lock (mifunedev/skills PR #4)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 04:39:18 +00:00
ryaneggzandClaude Sonnet 4.6 5fc7a63dd4 skill: add /context-audit with Tier-1 scorecard and Tier-2 ablation harness
Closes #333

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 04:33:28 +00:00
Ryan Eggleston d3d5fd1bd3 Merge pull request #332 from ryaneggz/task/331-self-hosting-dx-docs
FROM task/331-self-hosting-dx-docs TO development
2026-05-21 22:25:24 -06:00
ryaneggzandClaude Sonnet 4.6 84777e5ee6 task: improve self-hosting DX for fork-and-clone and clone-and-own
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>
2026-05-22 04:23:05 +00:00
Ryan Eggleston 4f0ca99de7 Merge pull request #330 from ryaneggz/task/329-sync-skills-lock-c559c100
FROM task/329-sync-skills-lock-c559c100 TO development
2026-05-21 22:01:09 -06:00
ryaneggz 3c99ac89f8 task: sync all 15 skills to mifunedev/skills commit c559c100
- 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
2026-05-22 04:00:10 +00:00
Ryan Eggleston 91a1b57926 Merge pull request #328 from ryaneggz/task/327-migrate-skills-mifunedev
FROM task/327-migrate-skills-mifunedev TO development
2026-05-21 21:53:10 -06:00
ryaneggz 081852cb3b fix: correct skill LICENSE copyright to Mifune Dev (mifune.dev)
Syncs with mifunedev/skills PR #3 which fixed the same files upstream.
Also notes interview/render-html upstream contribution in .mifune/README.md.
2026-05-22 03:51:38 +00:00
ryaneggzandClaude Sonnet 4.6 996906c4c2 task: migrate 13 skills to originate from mifunedev/skills
Syncs .claude/skills/ for 13 skills against github.com/mifunedev/skills
commit b2cca806 (registry 2026.5.17). Adds .mifune/skills.lock to pin
commit SHA and per-skill checksums for provenance tracking.

- 13 LICENSE files added (MIT, from remote)
- release/SKILL.md: upstream fix — PREV_BRANCH capture moved to step 4
- .mifune/skills.lock: new, tracks 13 skills with commit + checksum
- .mifune/README.md: directory anchor + update workflow instructions
- interview and render-html remain local-only (not in registry)

Closes #327

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 03:24:20 +00:00
ryaneggz 5a58544d17 Add branch to status line 2026-05-21 02:33:40 +00:00
Ryan Eggleston 28eaa0912c Merge pull request #324 from ryaneggz/task/323-remove-config-example
FROM task/323-remove-config-example TO development
2026-05-20 19:41:26 -06:00
ryaneggzandClaude Opus 4.7 ddbf2d504a task: remove dead config.example.json seed template
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>
2026-05-21 01:38:42 +00:00
ryaneggz e85fbf2e4a Update settings, and adds few memories 2026-05-21 01:17:06 +00:00
Ryan Eggleston de01308879 Merge pull request #317 from ryaneggz/skill/316-interview-skill
FROM skill/316-interview-skill TO development
2026-05-18 20:11:46 -06:00
ryaneggzandClaude Opus 4.7 f122a939fb skill: add /interview adaptive pre-work clarifier
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>
2026-05-19 02:09:14 +00:00
Ryan Eggleston e8cc2c0509 Merge pull request #315 from ryaneggz/skill/314-render-html
FROM skill/314-render-html TO development
2026-05-18 18:02:36 -06:00
ryaneggz f2b1774695 skill: add /render-html for bespoke HTML synthesis artifacts
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
2026-05-18 23:54:43 +00:00
ryaneggz 8940068610 task: promote CHANGELOG for 2026.5.18 2026-05-18 01:09:03 +00:00
Ryan Eggleston a48c51835a Merge pull request #311 from ryaneggz/development
FROM development TO main
2026-05-17 19:07:48 -06:00
ryaneggz ca7d9106b1 Merge remote-tracking branch 'origin/main' into development
# Conflicts:
#	CHANGELOG.md
2026-05-18 01:07:31 +00:00
Ryan Eggleston 1e207dead7 Merge pull request #310 from ryaneggz/fix/297-release-changelog-sync
FROM fix/297-release-changelog-sync TO development
2026-05-17 19:06:23 -06:00
ryaneggzandClaude Opus 4.7 befbd94a0b fix: keep release CHANGELOG promotion synced to source branch (#297)
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>
2026-05-18 01:05:35 +00:00
Ryan EgglestonandClaude Opus 4.7 2a54508627 FROM feat/308-fork-friendly-install TO development (#309)
* 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>
2026-05-17 14:18:33 -06:00
ryaneggz 9d84b1fab3 Add worktrees skill 2026-05-17 01:55:56 +00:00