-
Notifications
You must be signed in to change notification settings - Fork 11
Add Ruler integration and tag autocomplete search #156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
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
## Ruler Integration (Proposals #2, #4, #5) ### Native Ruler Format Support - Add to-ruler.ts and from-ruler.ts converters - Support plain markdown format for .ruler/ directory - Add ruler.schema.json for validation - Update Format type to include 'ruler' - Create comprehensive test suites ### Verified Ruler Collections - ruler-typescript: TypeScript, testing, code quality - ruler-react: React, hooks, performance, a11y - ruler-python: PEP 8, pytest, type hints - ruler-nodejs: Express, REST APIs, security ### Registry as Discovery Layer - Add Ruler to webapp format filter dropdown - Update FORMAT_ENUM in search routes - Enable prpm.dev/search?format=ruler filtering ### Documentation - RULER_INTEGRATION.md: Complete user guide - RULER_INTEGRATION_IMPLEMENTATION.md: Technical details - 4 collection examples with detailed README ## Tag Autocomplete Search ### API Endpoint - Add /api/v1/search/tags/autocomplete endpoint - Prefix-based search with LIKE query - Returns suggestions with package counts - Cached for 5 minutes ### UI Component - Real-time tag autocomplete dropdown - Keyboard navigation (arrows, enter, escape) - Selected tags display with remove buttons - Package count shown for each suggestion - 200ms debounce for API calls ### Integration - Add getTagSuggestions() to API client - Update SearchClient with tag autocomplete state - Maintain existing popular tags functionality - Clear tag input on selection 🤖 Generated with [Claude Code](https://claude.com/claude-code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
## Kiro Agent Support ### Converters - Add to-kiro-agent.ts: Convert canonical to Kiro agent JSON - Add from-kiro-agent.ts: Parse Kiro agent JSON to canonical - Add kiro-agent.schema.json: Validation schema - Update validation.ts: Add kiro:agent subtype mapping - Export converters in index.ts ### CLI Updates - Update filesystem.ts: Add .kiro/agents/ directory for agent subtype - Update convert.ts: - Import toKiroAgent and fromKiroAgent - Handle agent subtype in destination path - Auto-detect agent format vs steering file - Use toKiroAgent when subtype is agent ### Agent Configuration Support Kiro agents are JSON files with: - name, description, prompt - tools, toolsSettings, allowedTools - mcpServers: MCP server configurations - resources: Project documentation - hooks: Lifecycle commands - model: AI model specification ### File Locations - .kiro/agents/*.json: Custom agent configurations - .kiro/steering/*.md: Steering files (rules) - .kiro/hooks/*.kiro.hook: Hook configurations ### Documentation & Examples #### Claude Skill: Kiro Agent Creator - Expert skill for creating Kiro agents - Complete configuration reference - Design patterns and best practices - Tool configuration guidelines - Lifecycle hooks examples - Security and restrictions - Integration with PRPM #### Cursor Rule: Kiro Agent Development - Quick reference for agent structure - Common patterns (backend, frontend, test writer, etc.) - Tool configuration examples - MCP server integration - Best practices checklist - Troubleshooting guide ### Usage Install Kiro agent: ```bash prpm install @user/agent --as kiro --subtype agent # Creates: .kiro/agents/<name>.json ``` Convert to Kiro agent: ```bash prpm convert --to kiro --subtype agent package.md ``` Import existing agent: ```bash prpm import .kiro/agents/my-agent.json --format kiro --subtype agent ``` 🤖 Generated with [Claude Code](https://claude.com/claude-code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
- Add to-kiro-agent.test.ts: 7 tests for toKiroAgent converter - Add from-kiro-agent.test.ts: 10 tests for fromKiroAgent parser - Export KiroAgentConfig type from converters index - Test coverage includes: - Basic conversion canonical → Kiro agent JSON - Tool extraction and configuration - MCP server handling - Hooks and lifecycle commands - Prompt parsing and structuring - Error handling for invalid JSON - Quality scoring and warnings All types properly exported for external use. 🤖 Generated with [Claude Code](https://claude.com/claude-code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
- Add comprehensive Kiro Agents format specification (kiro-agents.md) - JSON configuration structure with MCP servers, tools, and hooks - Multiple real-world examples and use cases - Complete conversion notes and migration tips - Add comprehensive Ruler format specification (ruler.md) - Plain markdown format without frontmatter - Examples covering React, TypeScript, API, and testing guidelines - PRPM integration and tool compatibility details - Add Format Matrix to converters README - Overview table with all 8 formats and their subtypes - Direct links to official provider documentation - High-level descriptions for quick reference - Fix workspace dependencies configuration - Use workspace:* for private packages (registry, webapp) - Use version refs for published packages (cli, converters, registry-client) 🤖 Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
Merged changes while preserving the ruler format added in bold-canyon branch. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
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
This PR adds two major features:
🎯 Ruler Integration
Overview
Positions PRPM as essential infrastructure for Ruler users by adding native format support, verified collections, and discovery capabilities.
Strategic Position: "Ruler is to PRPM what yarn is to npm"
.ruler/management and distributionFeatures Implemented
1. Native Ruler Format Support (Proposal #2) ✅
to-ruler.tsandfrom-ruler.tsruler.schema.jsonfor validationprpm install @user/package --as ruler2. Verified Ruler Collections (Proposal #4) ✅
Created 4 production-ready collections in
docs/examples/:Each includes required + optional packages with detailed README.
3. Registry as Discovery Layer (Proposal #5) ✅
FORMAT_ENUMin search routesprpm.dev/search?format=rulerFiles Changed (Ruler)
New Files (11):
to-ruler.ts,from-ruler.ts)Modified Files (5):
packages/types/src/package.ts)packages/converters/src/validation.ts)packages/converters/src/index.ts)packages/webapp/src/app/(app)/search/SearchClient.tsx)packages/registry/src/routes/search.ts)Documentation
docs/RULER_INTEGRATION.md: Complete user guide (installation, publishing, collections, FAQ)docs/RULER_INTEGRATION_IMPLEMENTATION.md: Technical implementation details🔍 Tag Autocomplete Search
Overview
Users can now search for tags with real-time autocomplete suggestions showing package counts.
Features
API Endpoint
GET /api/v1/search/tags/autocomplete?q={prefix}UI Component
User Flow
Files Changed (Tag Autocomplete)
Modified Files (3):
/tags/autocompleteendpointgetTagSuggestions()function🧪 Testing
Automated Tests
to-ruler.test.ts: Conversion, metadata, quality scoringfrom-ruler.test.ts: Parsing, metadata extraction, sectionsManual Testing Needed
--as ruler.ruler/*.mdfile createdformat=rulerfilter📈 Impact
For Ruler Users
For PRPM Users
For Both Communities
🚀 Next Steps (Future)
Short Term
--as rulerflag.ruler/directory.ruler/*.mdfilesMedium Term
@prpm/ruler-*packagesLong Term
📝 Breaking Changes
None. All changes are additive.
🔗 Related Issues
📸 Screenshots
Tag Autocomplete
Ruler Format Filter
Selected Tags
✅ Checklist