ci: add plugin manifest linting#3
Open
internet-dot wants to merge 28 commits into
Open
Conversation
- git-worktree-tidy: routine hygiene for bare-repo + worktree layouts (fetch, prune stale branches/worktrees, ff-only update important branches) - test-ping: minimal skill stub for test CLI ping command - canton-nodes codex override: stripped-down version without broken symlink
- Add zmx skill with session management patterns using zmx run, zmx history, zmx wait, and zmx list - Update tilt and tiltup skills to use zmx instead of tmux - Update CLAUDE.md skill combo reference (tilt + zmx) - Remove tmux skill (zmx has no windows/panes concept; uses separate sessions with project prefix instead)
Read ZMX_SESSION env var and display as gray `zmx:<name>` segment between the git status and model gauge sections. Hidden when not inside a zmx session.
- Descriptions lead with "Use when..." for discovery - Remove MUST/NEVER over-prompting (Claude 4.6 overtriggers on aggressive language); use normal phrasing with context/motivation - Deduplicate PROJECT= boilerplate (define once, reference after) - Cut redundant "Common Patterns" section that restated earlier examples - tilt skill: inline zmx reference instead of restating rules
Add 💤HH:MM indicator to statusline showing when the agent last went idle. Uses Stop/UserPromptSubmit hooks to write and clear per-session marker files, with 7-day auto-cleanup of orphaned files.
Ralph and Codex reviewer plugins defaulted to too few cycles, causing loops to hit caps before completing complex tasks. - ralph command: 15→30 max-iterations, 10→20 max-reviews - ralph-loop plugin: 50→30 max-iterations (aligned with ralph command) - codex-reviewer plugin: 10→20 max-cycles (command + hook fallback)
Bump the default --max-cycles value by 50% to allow more review iterations before auto-approve, matching real-world usage patterns.
Add check-plugin-versions.sh that validates plugin.json and marketplace.json versions match, and warns when plugin source files change without a version bump. Update CLAUDE.local.md with a clear version bump checklist for publishing plugin updates.
Prefer integration tests over mocked unit tests for data flow and permissions. Mocks only acceptable for external services, not your own data layer. "Would this survive a manual walkthrough?" check.
…letion Major rewrite of the ralph-reviewed plugin: State migration: - State moved from .claude/ralph-loop.local.md (YAML) to .rl/state.json (JSON) - Prompt stored separately in .rl/prompt.md - Structured event log at .rl/log.jsonl - .rl/ auto-added to .git/info/exclude on init rl CLI (new): - rl init: one-command setup (state, prompt, log, symlink) - rl done / rl done --blocked: state-flag completion (replaces <promise> tags) - rl log phase|commit|decision|summary: structured JSONL logging - rl prompt / rl status / rl clean: state inspection and cleanup - Creates .rl/rl symlink for short-path access after init - Git root walks superprojects (matches stop hook behavior) Stop hook: - Completion detection via state.json flags (not transcript regex) - Removed legacy <promise> tag parsing and transcript reading - Review prompt simplified: correctness-focused, tells Codex to use rl - Codex review outputs kept in .rl/ (not /tmp/) - Codex cwd uses gitRoot for reliable .rl/ access - Slimmed LoopState: removed completion_promise, original_prompt, pending_feedback, review_history (all derived from .rl/ files) - Review feedback is plain text (no structured issue IDs/severity) - Iteration headers hide denominators from agent Behavioral improvements: - Pacing, churn breaker, depth-before-breadth, skill loading, live verification sections in skill prompt - Ralphoff "Done when" guidance: verify behavior not file existence BREAKING CHANGE: State format changed from YAML frontmatter to JSON. Completion mechanism changed from <promise> tags to rl done command.
Update statusline to read ralph loop state from the new .rl/state.json path using std.json instead of YAML frontmatter parsing. Tests updated to use JSON fixtures. Statusline still shows N/M denominators for human visibility (only hidden from the agent in the loop).
QA.md covers full e2e verification: rl init, agent work, rl done, Codex review gate, feedback cycle, edge cases. qa.sh resets the test repo and launches claude interactively with the QA prompt.
Sources direnv environment in non-interactive bash commands so tools spawned by Claude Code inherit the correct PATH and env vars. Referenced by settings.json BASH_ENV config.
Replace embedded scripts/rl with the standalone @0xbigboss/rl package. Stop hook now delegates state, prompt, and log operations to the rl CLI via spawnSync instead of reimplementing them. - Delete scripts/rl (323 lines) - Refactor stop hook: remove parseStateFile, serializeState, readPrompt, appendLog, LogEntry, LoopState (872 → 654 lines) - Update ralph-loop.md: discover rl on PATH or via bunx - Update cancel-ralph.md: use rl status --json - Update QA.md: reference installed rl, add hook integration checks - Bump to v3.0.0
- Stop hook: find rl via PATH, then .rl/rl wrapper fallback - Stop hook: reject prompt says ".rl/rl done" not "<promise>" - ralph-loop.md: add bunx/npx/command to allowed-tools - Bump plugin.json to v3.0.0
ralph-loop.md now builds rl from github.com/0xbigboss/rl via bun build --compile if not already on PATH. Zero manual setup needed — just run /ralph-reviewed:ralph-loop.
Override default "comment only when non-obvious" behavior with an explicit preference for more comments that explain why, not what.
Claude Code has internal protection on ~/.claude that blocks writes even with explicit permissions and additionalDirectories configured. Moving handoffs outside the protected zone eliminates approval prompts.
Commit 00f93cf introduced a claude-code submodule pointer inside the claude-code repo itself. Remove the bogus gitlink and .gitmodules entry.
Skill wrappers for rl-clean, rl-done, rl-init, rl-log, rl-prompt, rl-state, and rl-status commands.
Standalone skill that replaces the manual "knowing what you know now, what are some improvements?" prompt with structured, grounded output. Analyzes across six dimensions (correctness, simplicity, security, tests, performance, DX) and produces [IMP-N] format suggestions that integrate with ralph loops and handoffs.
Replaced by /rl:ralph plugin command.
Simplify ADF flow to reflect actual agent ownership: agent owns SPEC → PLAN → TDD → DEV → E2E; review, CI, and merge are human decisions. Remove CI/REVIEW/MERGE gates, multi-skill combinations matrix, and verbose explanations while preserving all behavioral rules. Restore file-pattern triggers in skills table for Codex compatibility.
Delete 4 skills no longer needed: - data-driven-testing: deprecated, replaced by testing-best-practices - extract-transcripts: replaced by /recall - codex: no longer used - specalign: Opus handles spec alignment naturally via ADF
…best practices Apply skill authoring guidelines across all 36 remaining skills: - Fix all descriptions to "Use when..." format (triggering conditions only, no workflow summaries that Claude shortcuts past) - Remove CLAUDE.md overlap from language skills (type-first workflow, functional patterns, error handling, config sections) - Split heavy skills into short SKILL.md + reference files: react-best-practices (1737→404 words), playwright (1655→386), git (1293→938 with git-examples.md) - Condense zig (1811→436), tamagui (1324→529), orbstack (1114→566), canton-network-repos (1281→503), spec (921→508), testing (1023→721), e2e (687→562) - Add CLAUDE.md cross-references in language skills Total context savings: ~8,500 words eliminated from skill loading.
da6ff36 to
45c987f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
╭─ ⚕ Hermes ───────────────────────────────────────────────────────────────────╮
✓ Worktree created: /srv/workspaces/codex-outreach/.worktrees/hermes-c439bbd0
Branch: hermes/hermes-c439bbd0
This adds a scanner-only validation workflow so manifest and skill metadata changes can be reviewed in CI without manual steps.
The workflow runs read-only checks and can be reverted by removing one file.
git-commit.mdconvention for commit messagesskills/This PR adds one metadata-only workflow file that runs validation on manifest and skill changes. It doesn't affect runtime behavior or change how the plugin releases. Permissions stay read-only — the workflow only checks files and reports results. The goal is making it easier to catch metadata issues during review.
Happy to fold this into an existing workflow or move the file if you'd prefer a different layout.
This adds a scanner-only validation workflow so manifest and skill metadata changes can be reviewed in CI without manual steps.
The workflow runs read-only checks and can be reverted by removing one file.
git-commit.mdconvention for commit messagesskills/This PR adds one metadata-only workflow file that runs validation on manifest and skill changes. It doesn't affect runtime behavior or change how the plugin releases. Permissions stay read-only — the workflow only checks files and reports results. The goal is making it easier to catch metadata issues during review.
Happy to fold this into an existing workflow or move the file if you'd prefer a different layout.