14 Commits
Author SHA1 Message Date
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
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 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
ryaneggzandClaude Opus 4.7 d14bc330eb task: cloudflared/SSH/host-overlay doc cleanup (keep postgres)
Apply PR #284's doc updates selectively — cloudflared, SSH overlays,
host-bind overlays, SANDBOX_PASSWORD, and openssh-server references
removed everywhere. Postgres mentions preserved; postgres compose
overlay restored.

Doc edits:
- AGENTS.md / CLAUDE.md (symlink): drop /cloudflared-tunnel skill row,
  rewrite "Exposing apps" to mention generic tunnels/proxies.
- README.md, docs/installation.md: drop SANDBOX_PASSWORD, cloudflared,
  openssh-server, host-overlay references.
- docs/quickstart.md: keep postgres link, drop cloudflare link, mention
  postgres overlay is opt-in.
- docs/integrations/github.md: drop SSH-overlay section.
- docs/integrations/cloudflare.md: deleted.
- docs/agents/{deepagents,opencode}.md: drop host-overlay sections.
- context/rules/git.md: drop "Advanced opt-ins" SSH section.
- Makefile: drop _check-jq / _check-config gates; jq invocation is now
  defensive (only runs when jq + config.json both present).
- apps/docs/src/pages/index.tsx: keep postgres in "composable substrate"
  copy, drop cloudflare tunnels / Caddy gateway mentions.
- .claude/skills/{agent-browser,harness-audit,strategic-proposal}/SKILL.md
  and .claude/agents/command-builder.md: drop cloudflared references
  (strategic-proposal infra row keeps PostgreSQL 16).
- CHANGELOG.md [Unreleased] § Removed: new entry for #283 listing the
  10 deleted overlays + companion infrastructure; note postgres was
  kept.

Infra:
- Restored .devcontainer/docker-compose.postgres.yml.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 02:36:15 +00:00
OpenHarness BotandClaude Opus 4.7 5036a93273 task: drop stale onboarding/lifecycle/connecting/architecture/operations docs
Removes nine documentation pages whose content no longer matches the
harness (`docs/onboarding.md`, `docs/sandbox-lifecycle.md`,
`docs/connecting.md`, `docs/operations/{provision,destroy,repair}.md`,
`docs/architecture/{overview,container-runtime,crons-and-heartbeats}.md`)
plus the now-orphaned `context/rules/repo-layout-source.md` rule that
pinned the architecture page as the canonical repo-tree source. The
docs site is left with `intro`, `quickstart`, `installation`, and the
`guide` / `agents` / `integrations` sections as the smaller accurate
foundation; per-directory `README.md` files plus the brief
`## Project Structure` block in `AGENTS.md` cover layout.

Closes #279

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 19:30:53 -06:00
OpenHarness Bot 8a12562b05 task: apply 5-critic council review to recursive-delegation rule
Second-round council (5 critics × distinct lenses: faithfulness,
codebase-fit, practical-usability, safety, editor) surfaced findings
the original 3-critic pass missed. Applying.

HIGH-severity fixes:
  - Faithfulness disclaimer: RAO is an RL training paper; its
    quantitative gains (depth-12 generalization, 2.5x wall-clock,
    context-overflow handling) require a trained policy this harness
    does not have. The rule now opens with this disclaimer and
    explicitly notes Max depth / Step budget are prompt-level
    conventions, not runtime caps.
  - launch_subagent vs Agent tool: paper's async REPL primitive runs
    asyncio coroutines with shared state. Harness Agent tool is
    stateless and synchronous. Rule now distinguishes them in
    § Multi-Level Delegation Protocol.
  - Enforcement gate added: .claude/skills/delegate/SKILL.md Step 5
    gains sub-step a.1 — before spawning a worker authorized to
    recurse, confirm Max depth / Max children per level / Step budget
    are ALL present. Missing → flat execution only.
  - .claude/protected-paths.txt: new rule registered as load-bearing
    (now cross-referenced from advisor-model.md and delegate SKILL).

MEDIUM-severity fixes:
  - Branching-factor cap added: Max children per level: 5 (hard cap)
    alongside Max depth, closing the depth-4 * parallel-spawn fanout
    risk.
  - Internal duplication cut: dropped "Recursion as Context
    Expansion" section (already covered by When-to-Use triggers
    + Recursing-for-reasoning anti-pattern); dropped tautological
    Step 4 in protocol; dropped duplicated "no raw content in Goal"
    rule; dropped Orchestrator Boundary second paragraph;
    dropped See Also entry for repo-layout-source.md (no referent
    in this file).
  - Ambiguous "Step 5" cross-ref tightened to
    "§ 5 Execute waves sub-step (a)".
  - "context capacity" trigger reframed to "child's briefing would
    exceed one sub-agent's effective context window" — concrete
    enough to act on.
  - New anti-pattern: "Synthesis pass-through" — mid-tree node
    forwards children's outputs verbatim, adds zero value.
  - New anti-pattern: "Sideways scope escalation" — child rewriting
    a sibling's briefing to lift depth/scope.

Net file size: 121 -> 114 lines. New content (disclaimers,
branching cap, new anti-patterns) more than offset by cuts of
duplicated and tautological text. CHANGELOG entry updated to
reflect the disclaimers and the new enforcement gate.

Closes #269 (continuing).
2026-05-10 23:34:15 -06:00
OpenHarness Bot c8aec0bf55 task: encode RAO recursive-delegation principles into rules + delegate skill
Adds context/rules/recursive-delegation.md — a new project rule encoding
the inference-time design principles from Recursive Agent Optimization
(arXiv 2605.06639, Gandhi et al., May 2026) that are genuinely novel
relative to existing harness conventions:

  - bounding compute (Max depth, Step budget fields in briefings)
  - context-as-parameter via an optional Context block
  - structured-return schemas declared in Acceptance criteria
  - multi-level (recursive) delegation protocol
  - recursion-as-context-expansion framing
  - orchestrator-vs-sandbox boundary (orchestrator-side trees default
    to Max depth: 1; multi-level reserved for rule/docs/skill work,
    not in-sandbox application code)

Cross-references existing rules instead of duplicating them. Principles
already covered elsewhere (fresh context per child, parallel-when-
independent, quality-over-quantity, don't-delegate-trivial) intentionally
omitted — see PR body for the council's overlap audit.

Patches:
  - context/rules/advisor-model.md: new "Multi-level (recursive)" row in
    Pipeline Variants table pointing at the new rule.
  - .claude/skills/delegate/SKILL.md: distinct-scope rule + authorization
    gate so workers stay flat unless Max depth / Step budget fields are
    present in their task description.

CHANGELOG: entry under [Unreleased] / Added, per context/rules/git.md.

Closes #269
2026-05-10 23:14:14 -06:00
OpenHarness BotandClaude Opus 4.7 aa6fd0026e feat: adopt openclaw memory concept (#259)
Two-tier markdown memory adapted from https://docs.openclaw.ai/concepts/memory:
long-term `memory/MEMORY.md` + daily logs at `memory/YYYY-MM-DD/log.md`.
Formalize the Memory Improvement Protocol as a canonical rule, fix path
drift across skills (workspace/memory/ -> memory/, file form -> subdir
form), and wire the read side via the AGENTS.md/CLAUDE.md session-start list.

New:
- context/rules/memory.md - canonical Memory Improvement Protocol (lifted
  + generalized from delegate/SKILL.md so any skill can reference it)
- memory/README.md - directory README per context/rules/directory-readme.md
- memory/MEMORY.md - long-term lessons stub (append-only)
- memory/x-campaign.md - relocated from memory/2026-05-04/ via git mv
  (it's a tracked persistent note, not a daily log)

Edits:
- AGENTS.md - session-start list extended with MEMORY.md, today's log,
  and pointer to the new rule
- .gitignore - ignore memory/[0-9]*/ daily logs; top-level memory files
  remain tracked
- docs/architecture/container-runtime.md - memory/ entry in the canonical
  Repo Layout tree
- .claude/skills/{delegate,harness-audit,skill-lint,strategic-proposal}
  /SKILL.md - replace inlined Memory Protocol with cross-ref to the new
  canonical rule; fix workspace/memory/ -> memory/; fix
  memory/YYYY-MM-DD.md (file form) -> memory/YYYY-MM-DD/log.md (subdir
  form) to match what the heartbeat cron and 5 existing daily dirs
  already use
- CHANGELOG.md - Unreleased entry

Plan: .claude/plans/study-https-docs-openclaw-ai-concepts-m-cozy-babbage.md

Closes #259

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 19:57:30 -06:00
OpenHarness BotandClaude Opus 4.7 0bc1c0b2e3 feat: relocate rules to context/rules/ as canonical, tool-agnostic source
git mv .claude/rules context/rules. Re-symlink .claude/rules → ../context/rules
so Claude Code's auto-loader keeps working unchanged. Remove .codex/rules and
.pi/rules symlinks — neither CLI has a rules-loading feature, so they were
inert decoration. Add context/README.md and context/rules/README.md per
directory-readme.md. Update canonical layout tree at
docs/architecture/container-runtime.md and high-visibility teaching references
(AGENTS.md, CLAUDE.md, .claude/agents/rule-builder.md). ~50 other scattered
references kept as-is — the .claude/rules symlink resolves them.

Closes #257

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 19:15:52 -06:00
OpenHarness BotandClaude Opus 4.7 a6077bdf2c task: /ci-status path-filter awareness + IDENTITY lesson
Replaces the NO-RUN guidance in /ci-status with a concrete enumeration
of this repo's path-filtered workflows so future infrastructure-only
PRs (devcontainer/scripts/install/) get accurate "no CI on push, that's
expected" reporting instead of being told to check a non-existent
ci.yml.

Closes #253

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 15:59:09 -06:00
OpenHarness BotandClaude Opus 4.7 f27e3aadf1 task: directory README pattern + rule
Add tracked README to apps/, crons/, scripts/, tasks/, .worktrees/
documenting each directory's intent, subfolders, and lifecycle.
Codify the pattern as .claude/rules/directory-readme.md so future
directories follow it.

.gitignore now exempts only .worktrees/README.md (replacing the
unused .gitkeep exemption); .claude/rules/git.md § Worktrees
points to the new README and documents the
.worktrees/project/<project-name>/<repo>/ slot for independent
project clones (own .git, not harness branches);
docs/architecture/container-runtime.md moves .worktrees/ into
the canonical tree.

context/IDENTITY.md gains three lessons from this session:
README-over-.gitkeep for tracked-empty dirs, "treat X same as Y"
interpretation discipline, and semantic-subfolder enumeration in
directory READMEs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 15:22:07 -06:00
ryaneggz 5082aa309f Store this, I borked the subharnesses on cleaning out old linux users 2026-05-05 16:06:28 -06:00
OpenHarness BotandClaude Opus 4.7 c69ac3b9d0 feat: Active items watchlist + crons/cron.log liveness
- crons/heartbeat.md: add step 2.5 (read ## Active items, validate via
  permitted checks), extend Reporting block with WATCHING/RESOLVED
  surfacing and a mandatory closing-step liveness append, append new
  ## Active items section with format, entry/exit policy, and an
  enumerated permitted-checks list (gh pr view, gh issue view, gh run
  list, gh release list, date-based reminders).
- crons/cleanup-tasks.md: add step 4 (mandatory liveness append).
- .gitignore: generalize crons/cron-runtime.log -> crons/*.log so the
  new crons/cron.log is also covered.
- context/USER.md: add 3-sentence "Tracking deferred follow-ups"
  section after Authorization patterns; pointer-only, no example
  tables (round-3 critic D guidance on register match).
- CHANGELOG.md entry under [Unreleased] § Added.

Per plan v5 at .claude/plans/polished-spinning-dijkstra.md. Cron is
read-only on the watchlist; sessions add and remove lines. Closes #224.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 00:06:11 -06:00
OpenHarness BotandClaude Opus 4.7 b57baff14c feat: add context/ orchestrator identity layer
Implements the gist v0.6 spec's session-loaded identity layer
(https://gist.github.com/ryaneggz/8f6811efa144ac94d3cdc383846134d8
§"context/"), adapted for single-user harness scope. The v0.7
convergence (PR #212, US-013) correctly removed workspace identity
files (pack territory) but never created the canonical orchestrator
context/ folder.

Four files at repo root:

- context/SOUL.md (voice and disposition, ~30 lines)
- context/IDENTITY.md (operating principles + append-only lessons
  learned, ~60 lines)
- context/TOOLS.md (environment inventory, ~40 lines)
- context/USER.md (working-relationship patterns, living document,
  ~45 lines)

Plus:
- AGENTS.md gains a "Session start" section instructing the
  orchestrator to read context/*.md at session start
- .claude/protected-paths.txt extended with the four context/ entries
  so future cleanup passes don't delete them

The IDENTITY.md lessons-learned section captures the meta-principles
this session produced — revealed preference > stated preference,
critic-gate before destructive actions, short feedback loops over
speculative infrastructure — that would otherwise vanish when the
conversation ends.

USER.md is the most session-bridging file: encodes communication
style, decision style, authorization patterns, and cleanup
expectations inferred from this session's interaction. Marked as a
living document that the agent proposes updates to after sessions
that produce new patterns.

Closes #220.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 21:28:11 -06:00