[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EX3BPZXBVRKJ09HPFH2P0K":3,"skill-same:01M6EX3BPZXBVRKJ09HPFH2P0K":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M6EX3BPZXBVRKJ09HPFH2P0K","agentic-jujutsu",null,"Quantum-resistant, self-learning version control for AI agents with ReasoningBank intelligence and multi-agent coordination","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fruvnet\u002Fagentic-jujutsu\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"agentic","agentic jujutsu","ai agents","learning","coordination","ReasoningBank Intelligence","multi-agent","version","intelligence","self","quantum","control","multi","agent coordination","with","2026-11-10 10:12:30",false,"---\nname: agentic-jujutsu\nversion: 2.3.2\ndescription: Quantum-resistant, self-learning version control for AI agents with ReasoningBank intelligence and multi-agent coordination\n---\n\n# Agentic Jujutsu - AI Agent Version Control\n\n> Quantum-ready, self-learning version control designed for multiple AI agents working simultaneously without conflicts.\n\n## When to Use This Skill\n\nUse **agentic-jujutsu** when you need:\n- ✅ Multiple AI agents modifying code simultaneously\n- ✅ Lock-free version control (23x faster than Git)\n- ✅ Self-learning AI that improves from experience\n- ✅ Quantum-resistant security for future-proof protection\n- ✅ Automatic conflict resolution (87% success rate)\n- ✅ Pattern recognition and intelligent suggestions\n- ✅ Multi-agent coordination without blocking\n\n## Quick Start\n\n### Installation\n\n```bash\nnpx agentic-jujutsu\n```\n\n### Basic Usage\n\n```javascript\nconst { JjWrapper } = require('agentic-jujutsu');\n\nconst jj = new JjWrapper();\n\n\u002F\u002F Basic operations\nawait jj.status();\nawait jj.newCommit('Add feature');\nawait jj.log(10);\n\n\u002F\u002F Self-learning trajectory\nconst id = jj.startTrajectory('Implement authentication');\nawait jj.branchCreate('feature\u002Fauth');\nawait jj.newCommit('Add auth');\njj.addToTrajectory();\njj.finalizeTrajectory(0.9, 'Clean implementation');\n\n\u002F\u002F Get AI suggestions\nconst suggestion = JSON.parse(jj.getSuggestion('Add logout feature'));\nconsole.log(`Confidence: ${suggestion.confidence}`);\n```\n\n## Core Capabilities\n\n### 1. Self-Learning with ReasoningBank\n\nTrack operations, learn patterns, and get intelligent suggestions:\n\n```javascript\n\u002F\u002F Start learning trajectory\nconst trajectoryId = jj.startTrajectory('Deploy to production');\n\n\u002F\u002F Perform operations (automatically tracked)\nawait jj.execute(['git', 'push', 'origin', 'main']);\nawait jj.branchCreate('release\u002Fv1.0');\nawait jj.newCommit('Release v1.0');\n\n\u002F\u002F Record operations to trajectory\njj.addToTrajectory();\n\n\u002F\u002F Finalize with success score (0.0-1.0) and critique\njj.finalizeTrajectory(0.95, 'Deployment successful, no issues');\n\n\u002F\u002F Later: Get AI-powered suggestions for similar tasks\nconst suggestion = JSON.parse(jj.getSuggestion('Deploy to staging'));\nconsole.log('AI Recommendation:', suggestion.reasoning);\nconsole.log('Confidence:', (suggestion.confidence * 100).toFixed(1) + '%');\nconsole.log('Expected Success:', (suggestion.expectedSuccessRate * 100).toFixed(1) + '%');\n```\n\n**Validation (v2.3.1)**:\n- ✅ Tasks must be non-empty (max 10KB)\n- ✅ Success scores must be 0.0-1.0\n- ✅ Must have operations before finalizing\n- ✅ Contexts cannot be empty\n\n### 2. Pattern Discovery\n\nAutomatically identify successful operation sequences:\n\n```javascript\n\u002F\u002F Get discovered patterns\nconst patterns = JSON.parse(jj.getPatterns());\n\npatterns.forEach(pattern => {\n    console.log(`Pattern: ${pattern.name}`);\n    console.log(`  Success rate: ${(pattern.successRate * 100).toFixed(1)}%`);\n    console.log(`  Used ${pattern.observationCount} times`);\n    console.log(`  Operations: ${pattern.operationSequence.join(' → ')}`);\n    console.log(`  Confidence: ${(pattern.confidence * 100).toFixed(1)}%`);\n});\n```\n\n### 3. Learning Statistics\n\nTrack improvement over time:\n\n```javascript\nconst stats = JSON.parse(jj.getLearningStats());\n\nconsole.log('Learning Progress:');\nconsole.log(`  Total trajectories: ${stats.totalTrajectories}`);\nconsole.log(`  Patterns discovered: ${stats.totalPatterns}`);\nconsole.log(`  Average success: ${(stats.avgSuccessRate * 100).toFixed(1)}%`);\nconsole.log(`  Improvement rate: ${(stats.improvementRate * 100).toFixed(1)}%`);\nconsole.log(`  Prediction accuracy: ${(stats.predictionAccuracy * 100).toFixed(1)}%`);\n```\n\n### 4. Multi-Agent Coordination\n\nMultiple agents work concurrently without conflicts:\n\n```javascript\n\u002F\u002F Agent 1: Developer\nconst dev = new JjWrapper();\ndev.startTrajectory('Implement feature');\nawait dev.newCommit('Add feature X');\ndev.addToTrajectory();\ndev.finalizeTrajectory(0.85);\n\n\u002F\u002F Agent 2: Reviewer (learns from Agent 1)\nconst reviewer = new JjWrapper();\nconst suggestion = JSON.parse(reviewer.getSuggestion('Review feature X'));\n\nif (suggestion.confidence > 0.7) {\n    console.log('High confidence approach:', suggestion.reasoning);\n}\n\n\u002F\u002F Agent 3: Tester (benefits from both)\nconst tester = new JjWrapper();\nconst similar = JSON.parse(tester.queryTrajectories('test feature', 5));\nconsole.log(`Found ${similar.length} similar test approaches`);\n```\n\n### 5. Quantum-Resistant Security (v2.3.0+)\n\nFast integrity verification with quantum-resistant cryptography:\n\n```javascript\nconst { generateQuantumFingerprint, verifyQuantumFingerprint } = require('agentic-jujutsu');\n\n\u002F\u002F Generate SHA3-512 fingerprint (NIST FIPS 202)\nconst data = Buffer.from('commit-data');\nconst fingerprint = generateQuantumFingerprint(data);\nconsole.log('Fingerprint:', fingerprint.toString('hex'));\n\n\u002F\u002F Verify integrity (\u003C1ms)\nconst isValid = verifyQuantumFingerprint(data, fingerprint);\nconsole.log('Valid:', isValid);\n\n\u002F\u002F HQC-128 encryption for trajectories\nconst crypto = require('crypto');\nconst key = crypto.randomBytes(32).toString('base64');\njj.enableEncryption(key);\n```\n\n### 6. Operation Tracking with AgentDB\n\nAutomatic tracking of all operations:\n\n```javascript\n\u002F\u002F Operations are tracked automatically\nawait jj.status();\nawait jj.newCommit('Fix bug');\nawait jj.rebase('main');\n\n\u002F\u002F Get operation statistics\nconst stats = JSON.parse(jj.getStats());\nconsole.log(`Total operations: ${stats.total_operations}`);\nconsole.log(`Success rate: ${(stats.success_rate * 100).toFixed(1)}%`);\nconsole.log(`Avg duration: ${stats.avg_duration_ms.toFixed(2)}ms`);\n\n\u002F\u002F Query recent operations\nconst ops = jj.getOperations(10);\nops.forEach(op => {\n    console.log(`${op.operationType}: ${op.command}`);\n    console.log(`  Duration: ${op.durationMs}ms, Success: ${op.success}`);\n});\n\n\u002F\u002F Get user operations (excludes snapshots)\nconst userOps = jj.getUserOperations(20);\n```\n\n## Advanced Use Cases\n\n### Use Case 1: Adaptive Workflow Optimization\n\nLearn and improve deployment workflows:\n\n```javascript\nasync function adaptiveDeployment(jj, environment) {\n    \u002F\u002F Get AI suggestion based on past deployments\n    const suggestion = JSON.parse(jj.getSuggestion(`Deploy to ${environment}`));\n    \n    console.log(`Deploying with ${(suggestion.confidence * 100).toFixed(0)}% confidence`);\n    console.log(`Expected duration: ${suggestion.estimatedDurationMs}ms`);\n    \n    \u002F\u002F Start tracking\n    jj.startTrajectory(`Deploy to ${environment}`);\n    \n    \u002F\u002F Execute recommended operations\n    for (const op of suggestion.recommendedOperations) {\n        console.log(`Executing: ${op}`);\n        await executeOperation(op);\n    }\n    \n    jj.addToTrajectory();\n    \n    \u002F\u002F Record outcome\n    const success = await verifyDeployment();\n    jj.finalizeTrajectory(\n        success ? 0.95 : 0.5,\n        success ? 'Deployment successful' : 'Issues detected'\n    );\n}\n```\n\n### Use Case 2: Multi-Agent Code Review\n\nCoordinate review across multiple agents:\n\n```javascript\nasync function coordinatedReview(agents) {\n    const reviews = await Promise.all(agents.map(async (agent) => {\n        const jj = new JjWrapper();\n        \n        \u002F\u002F Start review trajectory\n        jj.startTrajectory(`Review by ${agent.name}`);\n        \n        \u002F\u002F Get AI suggestion for review approach\n        const suggestion = JSON.parse(jj.getSuggestion('Code review'));\n        \n        \u002F\u002F Perform review\n        const diff = await jj.diff('@', '@-');\n        const issues = await agent.analyze(diff);\n        \n        jj.addToTrajectory();\n        jj.finalizeTrajectory(\n            issues.length === 0 ? 0.9 : 0.6,\n            `Found ${issues.length} issues`\n        );\n        \n        return { agent: agent.name, issues, suggestion };\n    }));\n    \n    \u002F\u002F Aggregate learning from all agents\n    return reviews;\n}\n```\n\n### Use Case 3: Error Pattern Detection\n\nLearn from failures to prevent future issues:\n\n```javascript\nasync function smartMerge(jj, branch) {\n    \u002F\u002F Query similar merge attempts\n    const similar = JSON.parse(jj.queryTrajectories(`merge ${branch}`, 10));\n    \n    \u002F\u002F Analyze past failures\n    const failures = similar.filter(t => t.successScore \u003C 0.5);\n    \n    if (failures.length > 0) {\n        console.log('⚠️ Similar merges failed in the past:');\n        failures.forEach(f => {\n            if (f.critique) {\n                console.log(`  - ${f.critique}`);\n            }\n        });\n    }\n    \n    \u002F\u002F Get AI recommendation\n    const suggestion = JSON.parse(jj.getSuggestion(`merge ${branch}`));\n    \n    if (suggestion.confidence \u003C 0.7) {\n        console.log('⚠️ Low confidence. Recommended steps:');\n        suggestion.recommendedOperations.forEach(op => console.log(`  - ${op}`));\n    }\n    \n    \u002F\u002F Execute merge with tracking\n    jj.startTrajectory(`Merge ${branch}`);\n    try {\n        await jj.execute(['merge', branch]);\n        jj.addToTrajectory();\n        jj.finalizeTrajectory(0.9, 'Merge successful');\n    } catch (err) {\n        jj.addToTrajectory();\n        jj.finalizeTrajectory(0.3, `Merge failed: ${err.message}`);\n        throw err;\n    }\n}\n```\n\n### Use Case 4: Continuous Learning Loop\n\nImplement a self-improving agent:\n\n```javascript\nclass SelfImprovingAgent {\n    constructor() {\n        this.jj = new JjWrapper();\n    }\n    \n    async performTask(taskDescription) {\n        \u002F\u002F Get AI suggestion\n        const suggestion = JSON.parse(this.jj.getSuggestion(taskDescription));\n        \n        console.log(`Task: ${taskDescription}`);\n        console.log(`AI Confidence: ${(suggestion.confidence * 100).toFixed(1)}%`);\n        console.log(`Expected Success: ${(suggestion.expectedSuccessRate * 100).toFixed(1)}%`);\n        \n        \u002F\u002F Start trajectory\n        this.jj.startTrajectory(taskDescription);\n        \n        \u002F\u002F Execute with recommended approach\n        const startTime = Date.now();\n        let success = false;\n        \n        try {\n            for (const op of suggestion.recommendedOperations) {\n                await this.execute(op);\n            }\n            success = true;\n        } catch (err) {\n            console.error('Task failed:', err.message);\n        }\n        \n        const duration = Date.now() - startTime;\n        \n        \u002F\u002F Record learning\n        this.jj.addToTrajectory();\n        this.jj.finalizeTrajectory(\n            success ? 0.9 : 0.4,\n            success \n                ? `Completed in ${duration}ms using ${suggestion.recommendedOperations.length} operations`\n                : `Failed after ${duration}ms`\n        );\n        \n        \u002F\u002F Check improvement\n        const stats = JSON.parse(this.jj.getLearningStats());\n        console.log(`Improvement rate: ${(stats.improvementRate * 100).toFixed(1)}%`);\n        \n        return success;\n    }\n    \n    async execute(operation) {\n        \u002F\u002F Execute operation logic\n    }\n}\n\n\u002F\u002F Usage\nconst agent = new SelfImprovingAgent();\n\n\u002F\u002F Agent improves over time\nfor (let i = 1; i \u003C= 10; i++) {\n    console.log(`\\n--- Attempt ${i} ---`);\n    await agent.performTask('Deploy application');\n}\n```\n\n## API Reference\n\n### Core Methods\n\n| Method | Description | Returns |\n|--------|-------------|---------|\n| `new JjWrapper()` | Create wrapper instance | JjWrapper |\n| `status()` | Get repository status | Promise\u003CJjResult> |\n| `newCommit(msg)` | Create new commit | Promise\u003CJjResult> |\n| `log(limit)` | Show commit history | Promise\u003CJjCommit[]> |\n| `diff(from, to)` | Show differences | Promise\u003CJjDiff> |\n| `branchCreate(name, rev?)` | Create branch | Promise\u003CJjResult> |\n| `rebase(source, dest)` | Rebase commits | Promise\u003CJjResult> |\n\n### ReasoningBank Methods\n\n| Method | Description | Returns |\n|--------|-------------|---------|\n| `startTrajectory(task)` | Begin learning trajectory | string (trajectory ID) |\n| `addToTrajectory()` | Add recent operations | void |\n| `finalizeTrajectory(score, critique?)` | Complete trajectory (score: 0.0-1.0) | void |\n| `getSuggestion(task)` | Get AI recommendation | JSON: DecisionSuggestion |\n| `getLearningStats()` | Get learning metrics | JSON: LearningStats |\n| `getPatterns()` | Get discovered patterns | JSON: Pattern[] |\n| `queryTrajectories(task, limit)` | Find similar trajectories | JSON: Trajectory[] |\n| `resetLearning()` | Clear learned data | void |\n\n### AgentDB Methods\n\n| Method | Description | Returns |\n|--------|-------------|---------|\n| `getStats()` | Get operation statistics | JSON: Stats |\n| `getOperations(limit)` | Get recent operations | JjOperation[] |\n| `getUserOperations(limit)` | Get user operations only | JjOperation[] |\n| `clearLog()` | Clear operation log | void |\n\n### Quantum Security Methods (v2.3.0+)\n\n| Method | Description | Returns |\n|--------|-------------|---------|\n| `generateQuantumFingerprint(data)` | Generate SHA3-512 fingerprint | Buffer (64 bytes) |\n| `verifyQuantumFingerprint(data, fp)` | Verify fingerprint | boolean |\n| `enableEncryption(key, pubKey?)` | Enable HQC-128 encryption | void |\n| `disableEncryption()` | Disable encryption | void |\n| `isEncryptionEnabled()` | Check encryption status | boolean |\n\n## Performance Characteristics\n\n| Metric | Git | Agentic Jujutsu |\n|--------|-----|-----------------|\n| Concurrent commits | 15 ops\u002Fs | 350 ops\u002Fs (23x) |\n| Context switching | 500-1000ms | 50-100ms (10x) |\n| Conflict resolution | 30-40% auto | 87% auto (2.5x) |\n| Lock waiting | 50 min\u002Fday | 0 min (∞) |\n| Quantum fingerprints | N\u002FA | \u003C1ms |\n\n## Best Practices\n\n### 1. Trajectory Management\n\n```javascript\n\u002F\u002F ✅ Good: Meaningful task descriptions\njj.startTrajectory('Implement user authentication with JWT');\n\n\u002F\u002F ❌ Bad: Vague descriptions\njj.startTrajectory('fix stuff');\n\n\u002F\u002F ✅ Good: Honest success scores\njj.finalizeTrajectory(0.7, 'Works but needs refactoring');\n\n\u002F\u002F ❌ Bad: Always 1.0\njj.finalizeTrajectory(1.0, 'Perfect!'); \u002F\u002F Prevents learning\n```\n\n### 2. Pattern Recognition\n\n```javascript\n\u002F\u002F ✅ Good: Let patterns emerge naturally\nfor (let i = 0; i \u003C 10; i++) {\n    jj.startTrajectory('Deploy feature');\n    await deploy();\n    jj.addToTrajectory();\n    jj.finalizeTrajectory(wasSuccessful ? 0.9 : 0.5);\n}\n\n\u002F\u002F ❌ Bad: Not recording outcomes\nawait deploy(); \u002F\u002F No learning\n```\n\n### 3. Multi-Agent Coordination\n\n```javascript\n\u002F\u002F ✅ Good: Concurrent operations\nconst agents = ['agent1', 'agent2', 'agent3'];\nawait Promise.all(agents.map(async (agent) => {\n    const jj = new JjWrapper();\n    \u002F\u002F Each agent works independently\n    await jj.newCommit(`Changes by ${agent}`);\n}));\n\n\u002F\u002F ❌ Bad: Sequential with locks\nfor (const agent of agents) {\n    await agent.waitForLock(); \u002F\u002F Not needed!\n    await agent.commit();\n}\n```\n\n### 4. Error Handling\n\n```javascript\n\u002F\u002F ✅ Good: Record failures with details\ntry {\n    await jj.execute(['complex-operation']);\n    jj.finalizeTrajectory(0.9);\n} catch (err) {\n    jj.finalizeTrajectory(0.3, `Failed: ${err.message}. Root cause: ...`);\n}\n\n\u002F\u002F ❌ Bad: Silent failures\ntry {\n    await jj.execute(['operation']);\n} catch (err) {\n    \u002F\u002F No learning from failure\n}\n```\n\n## Validation Rules (v2.3.1+)\n\n### Task Description\n- ✅ Cannot be empty or whitespace-only\n- ✅ Maximum length: 10,000 bytes\n- ✅ Automatically trimmed\n\n### Success Score\n- ✅ Must be finite (not NaN or Infinity)\n- ✅ Must be between 0.0 and 1.0 (inclusive)\n\n### Operations\n- ✅ Must have at least one operation before finalizing\n\n### Context\n- ✅ Cannot be empty\n- ✅ Keys cannot be empty or whitespace-only\n- ✅ Keys max 1,000 bytes, values max 10,000 bytes\n\n## Troubleshooting\n\n### Issue: Low Confidence Suggestions\n\n```javascript\nconst suggestion = JSON.parse(jj.getSuggestion('new task'));\n\nif (suggestion.confidence \u003C 0.5) {\n    \u002F\u002F Not enough data - check learning stats\n    const stats = JSON.parse(jj.getLearningStats());\n    console.log(`Need more data. Current trajectories: ${stats.totalTrajectories}`);\n    \n    \u002F\u002F Recommend: Record 5-10 trajectories first\n}\n```\n\n### Issue: Validation Errors\n\n```javascript\ntry {\n    jj.startTrajectory(''); \u002F\u002F Empty task\n} catch (err) {\n    if (err.message.includes('Validation error')) {\n        console.log('Invalid input:', err.message);\n        \u002F\u002F Use non-empty, meaningful task description\n    }\n}\n\ntry {\n    jj.finalizeTrajectory(1.5); \u002F\u002F Score > 1.0\n} catch (err) {\n    \u002F\u002F Use score between 0.0 and 1.0\n    jj.finalizeTrajectory(Math.max(0, Math.min(1, score)));\n}\n```\n\n### Issue: No Patterns Discovered\n\n```javascript\nconst patterns = JSON.parse(jj.getPatterns());\n\nif (patterns.length === 0) {\n    \u002F\u002F Need more trajectories with >70% success\n    \u002F\u002F Record at least 3-5 successful trajectories\n}\n```\n\n## Examples\n\n### Example 1: Simple Learning Workflow\n\n```javascript\nconst { JjWrapper } = require('agentic-jujutsu');\n\nasync function learnFromWork() {\n    const jj = new JjWrapper();\n    \n    \u002F\u002F Start tracking\n    jj.startTrajectory('Add user profile feature');\n    \n    \u002F\u002F Do work\n    await jj.branchCreate('feature\u002Fuser-profile');\n    await jj.newCommit('Add user profile model');\n    await jj.newCommit('Add profile API endpoints');\n    await jj.newCommit('Add profile UI');\n    \n    \u002F\u002F Record operations\n    jj.addToTrajectory();\n    \n    \u002F\u002F Finalize with result\n    jj.finalizeTrajectory(0.85, 'Feature complete, minor styling issues remain');\n    \n    \u002F\u002F Next time, get suggestions\n    const suggestion = JSON.parse(jj.getSuggestion('Add settings page'));\n    console.log('AI suggests:', suggestion.reasoning);\n}\n```\n\n### Example 2: Multi-Agent Swarm\n\n```javascript\nasync function agentSwarm(taskList) {\n    const agents = taskList.map((task, i) => ({\n        name: `agent-${i}`,\n        jj: new JjWrapper(),\n        task\n    }));\n    \n    \u002F\u002F All agents work concurrently (no conflicts!)\n    const results = await Promise.all(agents.map(async (agent) => {\n        agent.jj.startTrajectory(agent.task);\n        \n        \u002F\u002F Get AI suggestion\n        const suggestion = JSON.parse(agent.jj.getSuggestion(agent.task));\n        \n        \u002F\u002F Execute task\n        const success = await executeTask(agent, suggestion);\n        \n        agent.jj.addToTrajectory();\n        agent.jj.finalizeTrajectory(success ? 0.9 : 0.5);\n        \n        return { agent: agent.name, success };\n    }));\n    \n    console.log('Results:', results);\n}\n```\n\n## Related Documentation\n\n- **NPM Package**: https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fagentic-jujutsu\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fruvnet\u002Fagentic-flow\u002Ftree\u002Fmain\u002Fpackages\u002Fagentic-jujutsu\n- **Full README**: See package README.md\n- **Validation Guide**: docs\u002FVALIDATION_FIXES_v2.3.1.md\n- **AgentDB Guide**: docs\u002FAGENTDB_GUIDE.md\n\n## Version History\n\n- **v2.3.2** - Documentation updates\n- **v2.3.1** - Validation fixes for ReasoningBank\n- **v2.3.0** - Quantum-resistant security with @qudag\u002Fnapi-core\n- **v2.1.0** - Self-learning AI with ReasoningBank\n- **v2.0.0** - Zero-dependency installation with embedded jj binary\n\n---\n\n**Status**: ✅ Production Ready\n**License**: MIT\n**Maintained**: Active\n","# Agentic Jujutsu - AI Agent Version Control\n\n> Quantum-ready, self-learning version control designed for multiple AI agents working simultaneously without conflicts.\n\n## When to Use This Skill\n\nUse **agentic-jujutsu** when you need:\n- ✅ Multiple AI agents modifying code simultaneously\n- ✅ Lock-free version control (23x faster than Git)\n- ✅ Self-learning AI that improves from experience\n- ✅ Quantum-resistant security for future-proof protection\n- ✅ Automatic conflict resolution (87% success rate)\n- ✅ Pattern recognition and intelligent suggestions\n- ✅ Multi-agent coordination without blocking\n\n## Quick Start\n\n### Installation\n\n```bash\nnpx agentic-jujutsu\n```\n\n### Basic Usage\n\n```javascript\nconst { JjWrapper } = require('agentic-jujutsu');\n\nconst jj = new JjWrapper();\n\n\u002F\u002F Basic operations\nawait jj.status();\nawait jj.newCommit('Add feature');\nawait jj.log(10);\n\n\u002F\u002F Self-learning trajectory\nconst id = jj.startTrajectory('Implement authentication');\nawait jj.branchCreate('feature\u002Fauth');\nawait jj.newCommit('Add auth');\njj.addToTrajectory();\njj.finalizeTrajectory(0.9, 'Clean implementation');\n\n\u002F\u002F Get AI suggestions\nconst suggestion = JSON.parse(jj.getSuggestion('Add logout feature'));\nconsole.log(`Confidence: ${suggestion.confidence}`);\n```\n\n## Core Capabilities\n\n### 1. Self-Learning with ReasoningBank\n\nTrack operations, learn patterns, and get intelligent suggestions:\n\n```javascript\n\u002F\u002F Start learning trajectory\nconst trajectoryId = jj.startTrajectory('Deploy to production');\n\n\u002F\u002F Perform operations (automatically tracked)\nawait jj.execute(['git', 'push', 'origin', 'main']);\nawait jj.branchCreate('release\u002Fv1.0');\nawait jj.newCommit('Release v1.0');\n\n\u002F\u002F Record operations to trajectory\njj.addToTrajectory();\n\n\u002F\u002F Finalize with success score (0.0-1.0) and critique\njj.finalizeTrajectory(0.95, 'Deployment successful, no issues');\n\n\u002F\u002F Later: Get AI-powered suggestions for similar tasks\nconst suggestion = JSON.parse(jj.getSuggestion('Deploy to staging'));\nconsole.log('AI Recommendation:', suggestion.reasoning);\nconsole.log('Confidence:', (suggestion.confidence * 100).toFixed(1) + '%');\nconsole.log('Expected Success:', (suggestion.expectedSuccessRate * 100).toFixed(1) + '%');\n```\n\n**Validation (v2.3.1)**:\n- ✅ Tasks must be non-empty (max 10KB)\n- ✅ Success scores must be 0.0-1.0\n- ✅ Must have operations before finalizing\n- ✅ Contexts cannot be empty\n\n### 2. Pattern Discovery\n\nAutomatically identify successful operation sequences:\n\n```javascript\n\u002F\u002F Get discovered patterns\nconst patterns = JSON.parse(jj.getPatterns());\n\npatterns.forEach(pattern => {\n    console.log(`Pattern: ${pattern.name}`);\n    console.log(`  Success rate: ${(pattern.successRate * 100).toFixed(1)}%`);\n    console.log(`  Used ${pattern.observationCount} times`);\n    console.log(`  Operations: ${pattern.operationSequence.join(' → ')}`);\n    console.log(`  Confidence: ${(pattern.confidence * 100).toFixed(1)}%`);\n});\n```\n\n### 3. Learning Statistics\n\nTrack improvement over time:\n\n```javascript\nconst stats = JSON.parse(jj.getLearningStats());\n\nconsole.log('Learning Progress:');\nconsole.log(`  Total trajectories: ${stats.totalTrajectories}`);\nconsole.log(`  Patterns discovered: ${stats.totalPatterns}`);\nconsole.log(`  Average success: ${(stats.avgSuccessRate * 100).toFixed(1)}%`);\nconsole.log(`  Improvement rate: ${(stats.improvementRate * 100).toFixed(1)}%`);\nconsole.log(`  Prediction accuracy: ${(stats.predictionAccuracy * 100).toFixed(1)}%`);\n```\n\n### 4. Multi-Agent Coordination\n\nMultiple agents work concurrently without conflicts:\n\n```javascript\n\u002F\u002F Agent 1: Developer\nconst dev = new JjWrapper();\ndev.startTrajectory('Implement feature');\nawait dev.newCommit('Add feature X');\ndev.addToTrajectory();\ndev.finalizeTrajectory(0.85);\n\n\u002F\u002F Agent 2: Reviewer (learns from Agent 1)\nconst reviewer = new JjWrapper();\nconst suggestion = JSON.parse(reviewer.getSuggestion('Review feature X'));\n\nif (suggestion.confidence > 0.7) {\n    console.log('High confidence approach:', suggestion.reasoning);\n}\n\n\u002F\u002F Agent 3: Tester (benefits from both)\nconst tester = new JjWrapper();\nconst similar = JSON.parse(tester.queryTrajectories('test feature', 5));\nconsole.log(`Found ${similar.length} similar test approaches`);\n```\n\n### 5. Quantum-Resistant Security (v2.3.0+)\n\nFast integrity verification with quantum-resistant cryptography:\n\n```javascript\nconst { generateQuantumFingerprint, verifyQuantumFingerprint } = require('agentic-jujutsu');\n\n\u002F\u002F Generate SHA3-512 fingerprint (NIST FIPS 202)\nconst data = Buffer.from('commit-data');\nconst fingerprint = generateQuantumFingerprint(data);\nconsole.log('Fingerprint:', fingerprint.toString('hex'));\n\n\u002F\u002F Verify integrity (\u003C1ms)\nconst isValid = verifyQuantumFingerprint(data, fingerprint);\nconsole.log('Valid:', isValid);\n\n\u002F\u002F HQC-128 encryption for trajectories\nconst crypto = require('crypto');\nconst key = crypto.randomBytes(32).toString('base64');\njj.enableEncryption(key);\n```\n\n### 6. Operation Tracking with AgentDB\n\nAutomatic tracking of all operations:\n\n```javascript\n\u002F\u002F Operations are tracked automatically\nawait jj.status();\nawait jj.newCommit('Fix bug');\nawait jj.rebase('main');\n\n\u002F\u002F Get operation statistics\nconst stats = JSON.parse(jj.getStats());\nconsole.log(`Total operations: ${stats.total_operations}`);\nconsole.log(`Success rate: ${(stats.success_rate * 100).toFixed(1)}%`);\nconsole.log(`Avg duration: ${stats.avg_duration_ms.toFixed(2)}ms`);\n\n\u002F\u002F Query recent operations\nconst ops = jj.getOperations(10);\nops.forEach(op => {\n    console.log(`${op.operationType}: ${op.command}`);\n    console.log(`  Duration: ${op.durationMs}ms, Success: ${op.success}`);\n});\n\n\u002F\u002F Get user operations (excludes snapshots)\nconst userOps = jj.getUserOperations(20);\n```\n\n## Advanced Use Cases\n\n### Use Case 1: Adaptive Workflow Optimization\n\nLearn and improve deployment workflows:\n\n```javascript\nasync function adaptiveDeployment(jj, environment) {\n    \u002F\u002F Get AI suggestion based on past deployments\n    const suggestion = JSON.parse(jj.getSuggestion(`Deploy to ${environment}`));\n    \n    console.log(`Deploying with ${(suggestion.confidence * 100).toFixed(0)}% confidence`);\n    console.log(`Expected duration: ${suggestion.estimatedDurationMs}ms`);\n    \n    \u002F\u002F Start tracking\n    jj.startTrajectory(`Deploy to ${environment}`);\n    \n    \u002F\u002F Execute recommended operations\n    for (const op of suggestion.recommendedOperations) {\n        console.log(`Executing: ${op}`);\n        await executeOperation(op);\n    }\n    \n    jj.addToTrajectory();\n    \n    \u002F\u002F Record outcome\n    const success = await verifyDeployment();\n    jj.finalizeTrajectory(\n        success ? 0.95 : 0.5,\n        success ? 'Deployment successful' : 'Issues detected'\n    );\n}\n```\n\n### Use Case 2: Multi-Agent Code Review\n\nCoordinate review across multiple agents:\n\n```javascript\nasync function coordinatedReview(agents) {\n    const reviews = await Promise.all(agents.map(async (agent) => {\n        const jj = new JjWrapper();\n        \n        \u002F\u002F Start review trajectory\n        jj.startTrajectory(`Review by ${agent.name}`);\n        \n        \u002F\u002F Get AI suggestion for review approach\n        const suggestion = JSON.parse(jj.getSuggestion('Code review'));\n        \n        \u002F\u002F Perform review\n        const diff = await jj.diff('@', '@-');\n        const issues = await agent.analyze(diff);\n        \n        jj.addToTrajectory();\n        jj.finalizeTrajectory(\n            issues.length === 0 ? 0.9 : 0.6,\n            `Found ${issues.length} issues`\n        );\n        \n        return { agent: agent.name, issues, suggestion };\n    }));\n    \n    \u002F\u002F Aggregate learning from all agents\n    return reviews;\n}\n```\n\n### Use Case 3: Error Pattern Detection\n\nLearn from failures to prevent future issues:\n\n```javascript\nasync function smartMerge(jj, branch) {\n    \u002F\u002F Query similar merge attempts\n    const similar = JSON.parse(jj.queryTrajectories(`merge ${branch}`, 10));\n    \n    \u002F\u002F Analyze past failures\n    const failures = similar.filter(t => t.successScore \u003C 0.5);\n    \n    if (failures.length > 0) {\n        console.log('⚠️ Similar merges failed in the past:');\n        failures.forEach(f => {\n            if (f.critique) {\n                console.log(`  - ${f.critique}`);\n            }\n        });\n    }\n    \n    \u002F\u002F Get AI recommendation\n    const suggestion = JSON.parse(jj.getSuggestion(`merge ${branch}`));\n    \n    if (suggestion.confidence \u003C 0.7) {\n        console.log('⚠️ Low confidence. Recommended steps:');\n        suggestion.recommendedOperations.forEach(op => console.log(`  - ${op}`));\n    }\n    \n    \u002F\u002F Execute merge with tracking\n    jj.startTrajectory(`Merge ${branch}`);\n    try {\n        await jj.execute(['merge', branch]);\n        jj.addToTrajectory();\n        jj.finalizeTrajectory(0.9, 'Merge successful');\n    } catch (err) {\n        jj.addToTrajectory();\n        jj.finalizeTrajectory(0.3, `Merge failed: ${err.message}`);\n        throw err;\n    }\n}\n```\n\n### Use Case 4: Continuous Learning Loop\n\nImplement a self-improving agent:\n\n```javascript\nclass SelfImprovingAgent {\n    constructor() {\n        this.jj = new JjWrapper();\n    }\n    \n    async performTask(taskDescription) {\n        \u002F\u002F Get AI suggestion\n        const suggestion = JSON.parse(this.jj.getSuggestion(taskDescription));\n        \n        console.log(`Task: ${taskDescription}`);\n        console.log(`AI Confidence: ${(suggestion.confidence * 100).toFixed(1)}%`);\n        console.log(`Expected Success: ${(suggestion.expectedSuccessRate * 100).toFixed(1)}%`);\n        \n        \u002F\u002F Start trajectory\n        this.jj.startTrajectory(taskDescription);\n        \n        \u002F\u002F Execute with recommended approach\n        const startTime = Date.now();\n        let success = false;\n        \n        try {\n            for (const op of suggestion.recommendedOperations) {\n                await this.execute(op);\n            }\n            success = true;\n        } catch (err) {\n            console.error('Task failed:', err.message);\n        }\n        \n        const duration = Date.now() - startTime;\n        \n        \u002F\u002F Record learning\n        this.jj.addToTrajectory();\n        this.jj.finalizeTrajectory(\n            success ? 0.9 : 0.4,\n            success \n                ? `Completed in ${duration}ms using ${suggestion.recommendedOperations.length} operations`\n                : `Failed after ${duration}ms`\n        );\n        \n        \u002F\u002F Check improvement\n        const stats = JSON.parse(this.jj.getLearningStats());\n        console.log(`Improvement rate: ${(stats.improvementRate * 100).toFixed(1)}%`);\n        \n        return success;\n    }\n    \n    async execute(operation) {\n        \u002F\u002F Execute operation logic\n    }\n}\n\n\u002F\u002F Usage\nconst agent = new SelfImprovingAgent();\n\n\u002F\u002F Agent improves over time\nfor (let i = 1; i \u003C= 10; i++) {\n    console.log(`\\n--- Attempt ${i} ---`);\n    await agent.performTask('Deploy application');\n}\n```\n\n## API Reference\n\n### Core Methods\n\n| Method | Description | Returns |\n|--------|-------------|---------|\n| `new JjWrapper()` | Create wrapper instance | JjWrapper |\n| `status()` | Get repository status | Promise\u003CJjResult> |\n| `newCommit(msg)` | Create new commit | Promise\u003CJjResult> |\n| `log(limit)` | Show commit history | Promise\u003CJjCommit[]> |\n| `diff(from, to)` | Show differences | Promise\u003CJjDiff> |\n| `branchCreate(name, rev?)` | Create branch | Promise\u003CJjResult> |\n| `rebase(source, dest)` | Rebase commits | Promise\u003CJjResult> |\n\n### ReasoningBank Methods\n\n| Method | Description | Returns |\n|--------|-------------|---------|\n| `startTrajectory(task)` | Begin learning trajectory | string (trajectory ID) |\n| `addToTrajectory()` | Add recent operations | void |\n| `finalizeTrajectory(score, critique?)` | Complete trajectory (score: 0.0-1.0) | void |\n| `getSuggestion(task)` | Get AI recommendation | JSON: DecisionSuggestion |\n| `getLearningStats()` | Get learning metrics | JSON: LearningStats |\n| `getPatterns()` | Get discovered patterns | JSON: Pattern[] |\n| `queryTrajectories(task, limit)` | Find similar trajectories | JSON: Trajectory[] |\n| `resetLearning()` | Clear learned data | void |\n\n### AgentDB Methods\n\n| Method | Description | Returns |\n|--------|-------------|---------|\n| `getStats()` | Get operation statistics | JSON: Stats |\n| `getOperations(limit)` | Get recent operations | JjOperation[] |\n| `getUserOperations(limit)` | Get user operations only | JjOperation[] |\n| `clearLog()` | Clear operation log | void |\n\n### Quantum Security Methods (v2.3.0+)\n\n| Method | Description | Returns |\n|--------|-------------|---------|\n| `generateQuantumFingerprint(data)` | Generate SHA3-512 fingerprint | Buffer (64 bytes) |\n| `verifyQuantumFingerprint(data, fp)` | Verify fingerprint | boolean |\n| `enableEncryption(key, pubKey?)` | Enable HQC-128 encryption | void |\n| `disableEncryption()` | Disable encryption | void |\n| `isEncryptionEnabled()` | Check encryption status | boolean |\n\n## Performance Characteristics\n\n| Metric | Git | Agentic Jujutsu |\n|--------|-----|-----------------|\n| Concurrent commits | 15 ops\u002Fs | 350 ops\u002Fs (23x) |\n| Context switching | 500-1000ms | 50-100ms (10x) |\n| Conflict resolution | 30-40% auto | 87% auto (2.5x) |\n| Lock waiting | 50 min\u002Fday | 0 min (∞) |\n| Quantum fingerprints | N\u002FA | \u003C1ms |\n\n## Best Practices\n\n### 1. Trajectory Management\n\n```javascript\n\u002F\u002F ✅ Good: Meaningful task descriptions\njj.startTrajectory('Implement user authentication with JWT');\n\n\u002F\u002F ❌ Bad: Vague descriptions\njj.startTrajectory('fix stuff');\n\n\u002F\u002F ✅ Good: Honest success scores\njj.finalizeTrajectory(0.7, 'Works but needs refactoring');\n\n\u002F\u002F ❌ Bad: Always 1.0\njj.finalizeTrajectory(1.0, 'Perfect!'); \u002F\u002F Prevents learning\n```\n\n### 2. Pattern Recognition\n\n```javascript\n\u002F\u002F ✅ Good: Let patterns emerge naturally\nfor (let i = 0; i \u003C 10; i++) {\n    jj.startTrajectory('Deploy feature');\n    await deploy();\n    jj.addToTrajectory();\n    jj.finalizeTrajectory(wasSuccessful ? 0.9 : 0.5);\n}\n\n\u002F\u002F ❌ Bad: Not recording outcomes\nawait deploy(); \u002F\u002F No learning\n```\n\n### 3. Multi-Agent Coordination\n\n```javascript\n\u002F\u002F ✅ Good: Concurrent operations\nconst agents = ['agent1', 'agent2', 'agent3'];\nawait Promise.all(agents.map(async (agent) => {\n    const jj = new JjWrapper();\n    \u002F\u002F Each agent works independently\n    await jj.newCommit(`Changes by ${agent}`);\n}));\n\n\u002F\u002F ❌ Bad: Sequential with locks\nfor (const agent of agents) {\n    await agent.waitForLock(); \u002F\u002F Not needed!\n    await agent.commit();\n}\n```\n\n### 4. Error Handling\n\n```javascript\n\u002F\u002F ✅ Good: Record failures with details\ntry {\n    await jj.execute(['complex-operation']);\n    jj.finalizeTrajectory(0.9);\n} catch (err) {\n    jj.finalizeTrajectory(0.3, `Failed: ${err.message}. Root cause: ...`);\n}\n\n\u002F\u002F ❌ Bad: Silent failures\ntry {\n    await jj.execute(['operation']);\n} catch (err) {\n    \u002F\u002F No learning from failure\n}\n```\n\n## Validation Rules (v2.3.1+)\n\n### Task Description\n- ✅ Cannot be empty or whitespace-only\n- ✅ Maximum length: 10,000 bytes\n- ✅ Automatically trimmed\n\n### Success Score\n- ✅ Must be finite (not NaN or Infinity)\n- ✅ Must be between 0.0 and 1.0 (inclusive)\n\n### Operations\n- ✅ Must have at least one operation before finalizing\n\n### Context\n- ✅ Cannot be empty\n- ✅ Keys cannot be empty or whitespace-only\n- ✅ Keys max 1,000 bytes, values max 10,000 bytes\n\n## Troubleshooting\n\n### Issue: Low Confidence Suggestions\n\n```javascript\nconst suggestion = JSON.parse(jj.getSuggestion('new task'));\n\nif (suggestion.confidence \u003C 0.5) {\n    \u002F\u002F Not enough data - check learning stats\n    const stats = JSON.parse(jj.getLearningStats());\n    console.log(`Need more data. Current trajectories: ${stats.totalTrajectories}`);\n    \n    \u002F\u002F Recommend: Record 5-10 trajectories first\n}\n```\n\n### Issue: Validation Errors\n\n```javascript\ntry {\n    jj.startTrajectory(''); \u002F\u002F Empty task\n} catch (err) {\n    if (err.message.includes('Validation error')) {\n        console.log('Invalid input:', err.message);\n        \u002F\u002F Use non-empty, meaningful task description\n    }\n}\n\ntry {\n    jj.finalizeTrajectory(1.5); \u002F\u002F Score > 1.0\n} catch (err) {\n    \u002F\u002F Use score between 0.0 and 1.0\n    jj.finalizeTrajectory(Math.max(0, Math.min(1, score)));\n}\n```\n\n### Issue: No Patterns Discovered\n\n```javascript\nconst patterns = JSON.parse(jj.getPatterns());\n\nif (patterns.length === 0) {\n    \u002F\u002F Need more trajectories with >70% success\n    \u002F\u002F Record at least 3-5 successful trajectories\n}\n```\n\n## Examples\n\n### Example 1: Simple Learning Workflow\n\n```javascript\nconst { JjWrapper } = require('agentic-jujutsu');\n\nasync function learnFromWork() {\n    const jj = new JjWrapper();\n    \n    \u002F\u002F Start tracking\n    jj.startTrajectory('Add user profile feature');\n    \n    \u002F\u002F Do work\n    await jj.branchCreate('feature\u002Fuser-profile');\n    await jj.newCommit('Add user profile model');\n    await jj.newCommit('Add profile API endpoints');\n    await jj.newCommit('Add profile UI');\n    \n    \u002F\u002F Record operations\n    jj.addToTrajectory();\n    \n    \u002F\u002F Finalize with result\n    jj.finalizeTrajectory(0.85, 'Feature complete, minor styling issues remain');\n    \n    \u002F\u002F Next time, get suggestions\n    const suggestion = JSON.parse(jj.getSuggestion('Add settings page'));\n    console.log('AI suggests:', suggestion.reasoning);\n}\n```\n\n### Example 2: Multi-Agent Swarm\n\n```javascript\nasync function agentSwarm(taskList) {\n    const agents = taskList.map((task, i) => ({\n        name: `agent-${i}`,\n        jj: new JjWrapper(),\n        task\n    }));\n    \n    \u002F\u002F All agents work concurrently (no conflicts!)\n    const results = await Promise.all(agents.map(async (agent) => {\n        agent.jj.startTrajectory(agent.task);\n        \n        \u002F\u002F Get AI suggestion\n        const suggestion = JSON.parse(agent.jj.getSuggestion(agent.task));\n        \n        \u002F\u002F Execute task\n        const success = await executeTask(agent, suggestion);\n        \n        agent.jj.addToTrajectory();\n        agent.jj.finalizeTrajectory(success ? 0.9 : 0.5);\n        \n        return { agent: agent.name, success };\n    }));\n    \n    console.log('Results:', results);\n}\n```\n\n## Related Documentation\n\n- **NPM Package**: https:\u002F\u002Fnpmjs.com\u002Fpackage\u002Fagentic-jujutsu\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fruvnet\u002Fagentic-flow\u002Ftree\u002Fmain\u002Fpackages\u002Fagentic-jujutsu\n- **Full README**: See package README.md\n- **Validation Guide**: docs\u002FVALIDATION_FIXES_v2.3.1.md\n- **AgentDB Guide**: docs\u002FAGENTDB_GUIDE.md\n\n## Version History\n\n- **v2.3.2** - Documentation updates\n- **v2.3.1** - Validation fixes for ReasoningBank\n- **v2.3.0** - Quantum-resistant security with @qudag\u002Fnapi-core\n- **v2.1.0** - Self-learning AI with ReasoningBank\n- **v2.0.0** - Zero-dependency installation with embedded jj binary\n\n---\n\n**Status**: ✅ Production Ready\n**License**: MIT\n**Maintained**: Active\n",{"name":5,"version":49,"description":7},"2.3.2","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fruvnet\u002Fagentic-jujutsu",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill agentic-jujutsu",{"tool":65,"command":66},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill agentic-jujutsu",{"tool":68,"command":69},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill agentic-jujutsu","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fruvnet\u002Fagentic-jujutsu\u002FSKILL.md",true,[73],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"skill-report.json","REFERENCE","参考文档",22054,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fruvnet\u002Fagentic-jujutsu\u002Fskill-report.json",[80,90,100,109,115,122],{"skillNo":81,"name":82,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":86,"publishedAt":44},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[85],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[87,88,89],"model","model hierarchy","model hierarchy skill",{"skillNo":91,"name":92,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":96,"publishedAt":44},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[95],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[97,98,99],"MCP","zoom","zoom mcp",{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":44},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[106,107,108,98],"sdk","zoom apps sdk","apps",{"skillNo":110,"name":111,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":44},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[111],{"skillNo":116,"name":117,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":121,"publishedAt":44},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[120],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[117],{"skillNo":123,"name":124,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":44},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[124]]