Skip to content

ci: add plugin manifest linting#3

Open
internet-dot wants to merge 28 commits into
alleneubank:mainfrom
internet-dot:ci/codex-plugin-scanner
Open

ci: add plugin manifest linting#3
internet-dot wants to merge 28 commits into
alleneubank:mainfrom
internet-dot:ci/codex-plugin-scanner

Conversation

@internet-dot

@internet-dot internet-dot commented Apr 4, 2026

Copy link
Copy Markdown

╭─ ⚕ 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.

  • Uses the existing git-commit.md convention for commit messages
  • Validates metadata against patterns in skills/

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.

  • Uses the existing git-commit.md convention for commit messages
  • Validates metadata against patterns in skills/

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.

adeubank and others added 28 commits March 12, 2026 09:53
- 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.
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.

3 participants