[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71KXXFDBB2QDVCPNQMMM4QS":3,"skill-same:01M71KXXFDBB2QDVCPNQMMM4QS":70},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":52,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":6,"updatedAt":55,"install":56,"resources":69},"01M71KXXFDBB2QDVCPNQMMM4QS","agentic-jujutsu",null,"Self-learning version control for AI agents with ReasoningBank intelligence and multi-agent coordination. Wraps the separate `agentic-jujutsu` npm package.","monoes\u002Fmonomind","monoes","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F276744696?v=4","01M71KWF37AJ2NJBP3KWBVSDGT","01M71KWF4CSF8ADH0M6HA09VD2",23,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentic-jujutsu\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"jujutsu","agentic","agentic jujutsu","npm","control","multi","with","version","package","learning","for","multi-agent","ReasoningBank Intelligence","intelligence","self","ai agents","coordination","npm package","agent coordination","2026-11-10 10:56:23",false,"---\nname: agentic-jujutsu\ndescription: |\n  Self-learning version control for AI agents with ReasoningBank intelligence and multi-agent coordination. Wraps the separate `agentic-jujutsu` npm package.\n---\n\n# Agentic Jujutsu - AI Agent Version Control\n\n> 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\n- Self-learning AI that improves from experience\n- Pattern recognition and intelligent suggestions\n- Multi-agent coordination without blocking\n\n> **Note:** this skill wraps the separate `agentic-jujutsu` npm package. Performance and feature claims should be verified against that package's own documentation before relying on them.\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. Cryptographic Integrity (v2.3.0+)\n\nFast integrity verification with SHA3-512 hashing:\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\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### Operation Log 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### Cryptographic 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> The following figures are **vendor-published for the `agentic-jujutsu` npm package and not independently verified by monomind**. Treat as marketing claims until you benchmark against your own workload.\n\n| Metric | Git | Agentic Jujutsu (vendor-claimed) |\n|--------|-----|-----------------|\n| Concurrent commits | 15 ops\u002Fs | 350 ops\u002Fs (claimed ~23x) |\n| Context switching | 500-1000ms | 50-100ms (claimed ~10x) |\n| Conflict resolution | 30-40% auto | 87% auto (claimed ~2.5x) |\n| Lock waiting | 50 min\u002Fday | 0 min (claimed) |\n| SHA3-512 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\u002Fmonoes\u002Fmonomind\n- **Full README**: See package README.md\n- **Validation Guide**: docs\u002FVALIDATION_FIXES_v2.3.1.md\n\n## Version History\n\n- **v2.3.2** - Documentation updates\n- **v2.3.1** - Validation fixes for ReasoningBank\n- **v2.3.0** - Cryptographic security (SHA3-512) 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> 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\n- Self-learning AI that improves from experience\n- Pattern recognition and intelligent suggestions\n- Multi-agent coordination without blocking\n\n> **Note:** this skill wraps the separate `agentic-jujutsu` npm package. Performance and feature claims should be verified against that package's own documentation before relying on them.\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. Cryptographic Integrity (v2.3.0+)\n\nFast integrity verification with SHA3-512 hashing:\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\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### Operation Log 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### Cryptographic 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> The following figures are **vendor-published for the `agentic-jujutsu` npm package and not independently verified by monomind**. Treat as marketing claims until you benchmark against your own workload.\n\n| Metric | Git | Agentic Jujutsu (vendor-claimed) |\n|--------|-----|-----------------|\n| Concurrent commits | 15 ops\u002Fs | 350 ops\u002Fs (claimed ~23x) |\n| Context switching | 500-1000ms | 50-100ms (claimed ~10x) |\n| Conflict resolution | 30-40% auto | 87% auto (claimed ~2.5x) |\n| Lock waiting | 50 min\u002Fday | 0 min (claimed) |\n| SHA3-512 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\u002Fmonoes\u002Fmonomind\n- **Full README**: See package README.md\n- **Validation Guide**: docs\u002FVALIDATION_FIXES_v2.3.1.md\n\n## Version History\n\n- **v2.3.2** - Documentation updates\n- **v2.3.1** - Validation fixes for ReasoningBank\n- **v2.3.0** - Cryptographic security (SHA3-512) 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,"description":7},"main","f7cd4595d0f8959822163e14f9787117765c931a",".claude\u002Fskills\u002Fagentic-jujutsu",2,"https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind","https:\u002F\u002Fmonoes.github.io\u002Fmonomind\u002F","https:\u002F\u002Fgithub.com\u002Fmonoes","https:\u002F\u002Fmonoes.me","2026-11-10 01:53:48",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add monoes\u002Fmonomind --skill agentic-jujutsu",{"tool":62,"command":63},"bunx","bunx skills add monoes\u002Fmonomind --skill agentic-jujutsu",{"tool":65,"command":66},"pnpm","pnpm dlx skills add monoes\u002Fmonomind --skill agentic-jujutsu","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fagentic-jujutsu\u002FSKILL.md",true,[],[71,99,134,161,183,208],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":98},"01M71PB3SHWKMNJM6MD65VX8D6","zk-steward","Org role guidance for a ZK steward: engineer zero-knowledge proof systems with circuit design, SNARK vs STARK choice and security review. This is zero-knowledge cryptography, not Zettelkasten note-taking.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fzk-steward\u002FSKILL.md",[],[78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],"zk","zk steward","steward","zero-knowledge","engineer","choice","design","knowledge","impact","query","snark","review","monomind","security review","stark","zettelkasten","cryptography","security","org","blockchain","2026-11-10 13:02:02",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":103,"licenseFileUrl":104,"sourceHtmlUrl":105,"categories":106,"keywords":115,"publishedAt":98},"01M71PB18SDG28WBKPKJNB814K","writing-plans","Use when you have a spec or requirements for a multi-step coding task and must write an implementation plan before touching code. Produces bite-sized TDD tasks with exact file paths, code and commands for an engineer with zero context.","MIT","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwriting-plans\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwriting-plans\u002FSKILL.md",[107,110],{"categoryNo":108,"categoryName":109,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":111,"categoryName":112,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[116,117,118,82,119,120,121,122,87,123,124,125,126,127,128,129,130,131,132,133],"writing","writing plans","plans","superpowers","implementation plan","when","you","code","tasks","plan","product","write","commands","paths","suggest","coding","context","ZeRO",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":138,"sourceHtmlUrl":139,"categories":140,"keywords":144,"publishedAt":98},"01M71PAXFM488X9ARXK0T04TF5","write-spec","Write a feature spec or PRD from a problem statement or feature idea. Use when turning a vague idea or user request into a structured document, scoping a feature with goals and non-goals, defining success metrics and acceptance criteria, or breaking a big ask into a phased spec.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-spec\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-spec\u002FSKILL.md",[141],{"categoryNo":142,"categoryName":143,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000031","产品经理",[127,145,146,147,148,85,149,121,150,151,152,126,153,154,155,156,157,158,159,160],"write spec","spec","user request","problem","acceptance","ask","vague","work","request","scoping","idea","metrics","feature","problem statement","use","document",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":165,"sourceHtmlUrl":166,"categories":167,"keywords":171,"publishedAt":98},"01M71PASSZY800C0RPEARBS918","write-query","Write optimized SQL for your dialect with best practices. Use when translating a natural-language data need into SQL, building a multi-CTE query with joins and aggregations, optimizing a query against a large partitioned table, or getting dialect-specific syntax for Snowflake, BigQuery, Postgres, etc.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-query\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fwrite-query\u002FSKILL.md",[168],{"categoryNo":169,"categoryName":170,"taxonomyType":113,"taxonomyTypeDesc":114},"01JBSEEDCAT000000000000033","数据分析师",[87,127,172,173,33,174,85,159,121,175,176,29,28,152,177,178,179,180,181,182],"write query","postgres","snowflake","best practices","natural-language","github","sql","https","syntax","plugins","data",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":193,"publishedAt":98},"01M71PAPTX0T3PF6ETFVR96SJJ","workflow-automation","Org role guidance for workflow automation: build and maintain CI\u002FCD definitions in GitHub Actions or equivalent: triggers, jobs, matrices, caching. Covers path filters, dependency caching, parallel jobs, timeouts and fail-fast ordering.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fworkflow-automation\u002FSKILL.md",[189,192],{"categoryNo":190,"categoryName":191,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[194,195,196,197,33,198,199,200,201,86,202,203,204,87,90,177,205,206,207,179],"Workflow Automation","automation","workflow","parallel","actions","ci","triggers","github actions","maintain","filters","caching","build","dependency","devops",{"skillNo":209,"name":210,"nameZh":6,"description":211,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":212,"categories":213,"keywords":215,"publishedAt":98},"01M71PAM19Z1XTV9NPCFSE2MY8","workflow-architect","Org role guidance for a workflow architect: map full workflow trees for systems, user journeys and agents, covering every branch and failure. Covers discovering workflows from code, handoff contracts, timeouts, recovery paths and observable state.","https:\u002F\u002Fgithub.com\u002Fmonoes\u002Fmonomind\u002Fblob\u002Fmain\u002Fpackages\u002F@monomind\u002Fcli\u002Forg-skills\u002Fworkflow-architect\u002FSKILL.md",[214],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[196,216,217,218,219,220,221,33,222,223,123,224,225,226,90,177,227,228,179,229],"workflow architect","architect","trees","user journeys","branch","planning","map","workflows","architecture","state","leadership","recovery","operations","systems"]