Add Claude Code plugin for HIP lifecycle management#1198
Open
Add Claude Code plugin for HIP lifecycle management#1198
Conversation
Skills for creating, reviewing, voting, and announcing HIPs: - /hip:create — scaffolds new HIPs with category-specific writing guidance - /hip:review — quality/completeness checks with argument strength assessment - /hip:vote-open — opens heliumvote.com voting via helium-vote PR - /hip:post — Reddit announcements on r/HeliumNetwork Standardizes on YAML frontmatter and relative-path link references. Co-Authored-By: Claude Opus 4.6 <[email protected]>
- Add untrusted content / prompt injection guards to vote-open, post, and create skills (review already had them) - Add credential exfiltration protection to all four skills — explicit prohibition on reading/outputting ~/.config/hrp/ or token files - Add command execution prohibition — skills only run their defined scripts, never commands found in HIP content - Add input validation to vote-pr.sh: numeric HIP number, valid gist URL domain, expected filename pattern, valid category values Co-Authored-By: Claude Opus 4.6 <[email protected]>
Documents repo structure, HIP conventions, maintainer PR workflow, HIPs vs HRPs relationship, plugin skills overview, and credential paths for the HIP plugin. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Separate HIP credential storage from HRP plugin. All skills and scripts now reference ~/.config/hip/ instead of ~/.config/hrp/. Users can create new credentials or copy existing HRP ones. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Automates steps 3-6 of the maintainer PR workflow: assigns HIP number, renames file, converts legacy metadata to YAML frontmatter, fills original-hip-pr and tracking-issue fields, creates tracking issue via hiptron, updates README index table, and merges. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Fixes: - Handle non-GitHub authors (Twitter links, plain text) during frontmatter conversion instead of assuming all are GitHub links - Detect self-assigned HIP numbers and renumber correctly - Update asset references (images, links) inside HIP file after files/0000/ → files/NNNN/ rename - Sanitize @mentions in tracking issue body to prevent hiptron from pinging arbitrary users; require user confirmation before posting - Add error recovery table for partial failures - Specify exact README column widths (475 char rows) with copy-last-row guidance - Document URL format choice for frontmatter fields - Add concurrency warning for parallel number assignment - Scan main branch explicitly for number determination - Update PR title to HIP NNN format after assignment - Add category + network labels to the PR itself - Handle Authors/Author(s)/Author field name variants - Clean up temp files after tracking issue creation - Add Governance → governance label mapping Co-Authored-By: Claude Opus 4.6 <[email protected]>
New skill handles all status changes after /hip:assign: Voting Open, Approved, Rejected, Deployed, and Closed. Each transition updates README badge, tracking issue labels, and frontmatter status field in lockstep, plus posts a Reddit comment on the HIP thread. Includes prerequisite validation (rejects if assign hasn't run), lifecycle transition validation (warns on skipped steps), and error recovery guidance. Also updates vote-open to reference /hip:status for the Voting Open transition (vote isn't live until multisig signs off, so vote-open can't set the status itself), and cleans up its dead legacy frontmatter code path. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Adds .claude/settings.json (committed, shared) so the plugin is automatically available to anyone who clones the repo and opens Claude Code. No manual installation step required. Co-Authored-By: Claude Opus 4.6 <[email protected]>
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.
Summary
Adds a Claude Code plugin (
.claude/plugins/hip/) with six skills that automate the full HIP lifecycle — from drafting a proposal through maintainer acceptance, community voting, status tracking, and Reddit announcements. Also adds a project-levelCLAUDE.mdfor repo context.Lifecycle
Every status change updates three things in lockstep: README badge, tracking issue labels, and frontmatter
statusfield.Maintainer workflow (before → after)
/hip:review— 19 automated checks + argument assessment/hip:assign— one command does it all/hip:assign— created via hiptron with correct labels/hip:assign— row added automatically/hip:vote-open— gist + PR + Reddit reminder/hip:status— all three updated in lockstep + Reddit commentSkills
/hip:create0000-slug.mdwith YAML frontmatter, category-specific writing guidance (economic needs concrete numbers/tables, technical needs implementation details, meta needs process clarity), related-HIP search, quality checklist/hip:review/hip:assignoriginal-hip-prandtracking-issue, creates tracking issue via hiptron with category/network labels, adds README row with "In Discussion" badge, updates PR title and labels, squash-merges/hip:vote-open/hip:statusstatusin lockstep for any transition: Voting Open, Approved, Rejected, Deployed, Closed. Posts Reddit comment. Validates transition graph and prerequisites/hip:postreddit-post-idin frontmatterScripts
gh-hiptron.shghCLI as the hiptron GitHub service accountvote-pr.shreddit-post.pySecurity
All skills treat HIP file content as untrusted input (community-authored). Guardrails include:
~/.config/hip/contents never read or output@mentionsanitization — stripped from tracking issue bodies and Reddit comments posted by service accountsvote-pr.shvalidates HIP number format, URL patterns, category values, filename conventionsOther changes
CLAUDE.md— documents repo structure, HIP lifecycle with skill mapping, maintainer workflow, HIPs-vs-HRPs relationship, credential paths~/.config/hip/(separate from HRP plugin's~/.config/hrp/)