Provider selection phase removed; Anthropic driver→model_id is now
hardcoded in the script and non-Anthropic profiles supply provider.env
(MODEL_ID, ANTHROPIC_BASE_URL, ANTHROPIC_API_KEY_FILE).
Test suite baseline changes 58 → 41 assertions: the 17 dropped
assertions covered the removed provider-yaml selection phase, not
retained behaviour.
Includes refactor-derived memory: decisions (provider architecture,
driver enforcement via --model), bash gotchas (read -rp under set -e,
never eval user config), process lessons.
MiniMax changed from category_remains[text_generation] with count fields
to model_remains[general] with remaining_percent fields. Now tries v2
first (100 - remaining_percent), falls back to v1 count-based calculation.
Probes Anthropic OAuth and MiniMax subscription usage and displays
percentage consumed for 5-hour and 7-day windows with colour-coded output.
Ported probe logic from agent-runtimes/scripts/ralph_code.
Add a warning when ANTHROPIC_BASE_URL would be set but the active profile's
.credentials.json would override ANTHROPIC_API_KEY with subscription OAuth,
routing requests to Anthropic instead of the intended provider.
Fixes the MiniMax routing issue: use --profile minimax (~/.claude-minimax/,
no stored credentials) for non-Anthropic providers.
Update presets example to use profile: minimax for quick-minimax preset.
63 tests passing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Introduces provider files (`data/claude-profile/providers/*.yaml`) that
bundle model ID, API base URL, API key source, and extra env vars. Phase 2.5
(provider selection) added between mode selection and launch, with a default
derived from the mode's driver field so existing Anthropic usage is unchanged.
Ships 5 providers: anthropic-haiku/sonnet/opus/opus-1m and minimax-sonnet.
MiniMax token decrypted from agent-runtimes SOPS env, stored at
~/.claude-secrets/minimax-auth-token. Adding new providers = one YAML file,
no script changes.
58 dryrun tests passing (up from 37).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Polls /api/v1/repos/<owner>/<repo>/releases and matches each tag_name
against a shell-style glob (e.g. v1.2.3.*). Default 600s timeout, 5s
interval, both overridable. Exits 0 with the matched tag on stdout,
1 on timeout, 2 on usage error, 3 on terminal API error (401/403/404).
Intended to run in the background of a Claude Code session while CI
produces the release.
Includes spec and 42-assertion test using a PATH-shadowed mock curl.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Computes MAJOR.MINOR.PATCH.BUILD from NEW_MAJOR/NEW_MINOR/NEW_PATCH
whole-line tokens in commit messages since the last release tag.
Non-main branches get a BRANCH-SHORTSHA suffix and never release.
Maintains VERSION.md, writes $GITHUB_OUTPUT, and optionally creates
a Gitea release via API.
Includes spec, 67-assertion test, usage guide (docs/semver-ci.md),
and a drop-in Gitea Actions workflow template.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- context: claude-profile-modes updated to reflect current state (statusline
and session-start auto-select done; next step is real launch test)
- FUTURE.md: remove two completed items (status-line, CLAUDE.md picker)
- README: add missing scripts (check-skills, gen-secret, mp3-to-mp4,
split-wezterm, sync-repos) to scripts table
- session log 2026-04-12.003747.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- claude-profile: phase 1-3 picker (profile, mode, launch) with preset support,
dryrun, WezTerm theming, and --append-system-prompt mode body injection
- 5 mode files (chat/quick/deep/hybrid/orch) with YAML frontmatter + prose body;
new escalates_to field drives statusline →Opus arrow for deep and hybrid
- statusline.sh reads CLAUDE_CONFIG_DIR/active-mode.env to show
[Sonnet→Opus] deep · topic format when launched via claude-profile
- Root CLAUDE.md session-start: auto-selects project from cwd or CLAUDE_PROJECT
in active-mode.env, skipping the interactive picker when context is clear
- Spec, tests (37 assertions, 9 test files, all passing), context docs, and
preset example included
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Uses ffmpeg to generate an H.264/AAC video from an MP3 file with a
centred title overlay. Supports optional background image (title at
bottom) or solid colour (title centred). Includes spec, dryrun support,
and 10 tests.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds gotchas-wezterm and updates gotchas-bash from recent reflections.
Prunes old reflected log. Updates MEMORY.md index.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove ^, +, ~, :, @ from the allowed charset. The ^ character breaks
SQLAlchemy DATABASE_URL parsing, + becomes space in URL query strings,
: and @ are URL delimiters. The remaining charset (A-Za-z0-9._-) is
safe in URLs, database connection strings, YAML, JSON, and shell
without any encoding.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Outputs cryptographically random strings using only characters safe
for unquoted use in bash, YAML, and JSON: [A-Za-z0-9._+\-:@^~]
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Splits the current pane into evenly-sized grid using wezterm cli
split-pane. Supports optional command per pane, dryrun mode, and
auto-detects native or Flatpak WezTerm CLI.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
claude-profile now:
- Syncs all repos (git pull --ff-only) before starting a session
- Emits WezTerm user-var escape sequences to trigger profile themes
- Resets terminal theme on session exit via trap
New script sync-repos pulls latest for all git repos under ~/dev/claude
with --dryrun support and color status output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Memory files for decisions, bash gotchas, and process lessons.
Updated MEMORY.md index and README.md with new scripts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Utility for switching between Claude Code skill profiles by
managing the ~/.claude/skills symlink target.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Scans all projects for session logs not yet processed by /reflect-logs,
using .reflection-state.json to track reflected status.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Converts markdown files to DOCX with optional reference doc styling.
Supports front matter stripping and custom output paths.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Compares installed skill symlinks against the source directory,
reporting missing, stale, and orphan entries.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Checks for common issues that silently break skills — non-ASCII
frontmatter, $VAR in paths, uncovered binaries in allowed-tools, etc.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Scans a directory tree for git repos and produces a concise report
showing uncommitted changes (with +/- character counts) and
ahead/behind status per remote. Supports --dryrun to preview
discovered repos without running checks.
Includes OpenSpec, implementation, and 26-assertion test suite.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Spec-driven utility script collection with dryrun support and
automated testing. Includes project docs, test runner, and
directory structure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>