Skip to content

chore: add superharness scaffold, AGENTS.md, SOUL.md; ignore .serena/#4

Open
celstnblacc wants to merge 12 commits into
masterfrom
chore/add-scaffold-files-gitignore
Open

chore: add superharness scaffold, AGENTS.md, SOUL.md; ignore .serena/#4
celstnblacc wants to merge 12 commits into
masterfrom
chore/add-scaffold-files-gitignore

Conversation

@celstnblacc

Copy link
Copy Markdown
Collaborator

Summary

  • Add .superharness/ protocol scaffold (contract, ledger, decisions)
  • Add AGENTS.md and SOUL.md project identity files
  • .gitignore: add .serena/ and excalidraw.log

Test plan

  • Pre-commit hooks pass

🤖 Generated with Claude Code

celstnblacc and others added 11 commits April 2, 2026 14:16
When RTK is invoked via Claude Code's PreToolUse hook, the hook keeps
its stdin pipe open for the duration of the session. rg/grep subprocesses
inherit this open pipe and block waiting for EOF — they never terminate.

On macOS with multiple concurrent grep calls this causes memory to
accumulate unboundedly, eventually triggering a kernel panic
(observed: ~514GB RAM+swap consumed, single process at ~198GB).

Fix: redirect subprocess stdin to /dev/null so children are decoupled
from the hook pipe and terminate normally after completing their search.

Fixes rtk-ai#897

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… to worktree root (rtk-ai#892)

fix rtk-ai#886 — permission bypass: RTK was ignoring Claude Code's permissions.allow
list and defaulting to Allow for any command not explicitly denied. Now loads
the allow list from settings.json alongside deny/ask rules. When an allow list
is present, commands not matching any allow pattern return Ask instead of Allow,
matching Claude Code's documented whitelist-by-default behaviour. Fully
backward-compatible: no allow list configured → existing Allow behaviour unchanged.

fix rtk-ai#892 — worktree RTK.md path: rtk init --codex in local (non-global) mode was
writing AGENTS.md and RTK.md as bare relative paths (PathBuf::from("RTK.md")),
anchored to the CWD at init time. When Codex runs from a git worktree the files
are not present and sed errors out. Fix: resolve paths via git rev-parse
--show-toplevel (worktree-aware) so files are always placed at the worktree root.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
P0 — resolved_command() now sets stdin to Stdio::null() by default.
This fixes the rtk-ai#897 stdin leak across ALL 128+ subprocess call sites,
not just grep_cmd.rs. Commands needing stdin can override explicitly.

P1 — Removed telemetry entirely. Deleted telemetry.rs (339 lines),
removed ureq/hostname/getrandom deps, cleaned dead code in config.rs,
tracking.rs, init.rs. Local tracking (rtk gain) is preserved.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace eval with bash -c in benchmark.sh (SHELL-001 CRITICAL x 3)
- Add changelog entry for fork security patches (v0.34.2-security.1)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…telemetry default

C-1: replace sh -c exec with shell_words::split + Command::new(bin).args(rest) in runner.rs
C-2: propagate child exit codes via exit_code_from_output/exit_code_from_status throughout
H-1: compile summary.rs regexes once at startup via lazy_static!
H-2: fix divide-by-zero panic in cc_economics savings_blended calculation
H-3: replace infallible stash subcommand unwrap with Some(sub @ (...)) pattern
M-1: TelemetryConfig::default() now sets enabled: false (no opt-in required)
M-2: CWD fallback in resolved_command uses "." instead of empty path
M-3: remove grouped.get().unwrap() panic path in report.rs with let-else
L-2: migrate all status.code().unwrap_or(1) to exit_code_from_status across git/main

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…-04-01)

0 critical, 0 high after review. Remaining medium findings are pre-existing
upstream patterns in scripts/ and CI. SHELL-002 false positive on jq variable
syntax ($updated inside single-quoted jq filter strings) documented and disabled.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SHELL-006: quote >> "\$GITHUB_OUTPUT" in release.yml (8 occurrences) and cd.yml (1).
.shipguard.yml: exclude hook test harnesses and install.sh (SHELL-005 false
positives on ANSI color vars and pre-constructed JSON test fixtures).

Result: 0 findings across all severities.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@celstnblacc
celstnblacc force-pushed the chore/add-scaffold-files-gitignore branch from 7cb50a5 to f1dc1a3 Compare April 2, 2026 12:36
Adds `rtk doctor` — five-check health report for the rtk installation:
  1. hook       — installed and up to date vs missing/outdated
  2. tracking_db — DB accessible and writable
  3. path       — `rtk` resolves on PATH
  4. config     — config file valid (missing = pass, using defaults)
  5. failure_rate — 7-day parse failure rate from tracking DB (warn ≥20%)

Both text and `--json` output modes. JSON schema consumable by
token-diet for automated health gating. Exits 1 on any Fail.

Also adds `get_failure_rate_7d()` to Tracker for the failure_rate check.

Chores: .superharness/.gitignore (suppress .dashboard_auth_token +
runtime files), GEMINI.md, propagate Strict Installation Decoupling
rule to AGENTS.md and CLAUDE.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants