@konductro/claude-plugin 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "konductro",
3
+ "description": "Konductro platform integration — perform technical analysis, submit findings, and manage delivery tasks",
4
+ "version": "1.0.0",
5
+ "userConfig": {
6
+ "konductro_url": {
7
+ "title": "Konductro URL",
8
+ "description": "Konductro platform URL (e.g., https://platform.konductro.com or http://localhost:3000)",
9
+ "type": "string",
10
+ "sensitive": false
11
+ },
12
+ "cli_token": {
13
+ "title": "CLI Token",
14
+ "description": "Personal CLI token from Konductro Settings → CLI Access",
15
+ "type": "string",
16
+ "sensitive": true
17
+ }
18
+ },
19
+ "mcpServers": {
20
+ "konductro": {
21
+ "command": "node",
22
+ "args": ["${CLAUDE_PLUGIN_ROOT}/servers/konductro-api.js"],
23
+ "env": {
24
+ "KONDUCTRO_URL": "${user_config.konductro_url}",
25
+ "KONDUCTRO_CLI_TOKEN": "${user_config.cli_token}"
26
+ }
27
+ }
28
+ }
29
+ }
package/README.md ADDED
@@ -0,0 +1,107 @@
1
+ # @konductro/claude-plugin
2
+
3
+ Claude Code plugin for the Konductro platform. Enables technical analysis, story decomposition, ticket management, prototype delivery, and ticket-to-PR workflows directly from Claude Code.
4
+
5
+ ## Prerequisites
6
+
7
+ - **Node.js** 18+
8
+ - **Konductro CLI token** (generated in Konductro → Settings → CLI Access)
9
+
10
+ ## Install
11
+
12
+ ### 1. Install the plugin globally
13
+
14
+ ```bash
15
+ npm install -g @konductro/claude-plugin
16
+ ```
17
+
18
+ ### 2. Configure for Claude Code
19
+
20
+ ```bash
21
+ konductro-claude-setup --url https://platform.konductro.com --token YOUR_CLI_TOKEN
22
+ ```
23
+
24
+ Get your CLI token from **Konductro → Settings → CLI Access**.
25
+
26
+ ## Skills
27
+
28
+ Skills are guided, multi-step workflows invoked with a slash command:
29
+
30
+ | Skill | Description |
31
+ |---|---|
32
+ | `/technical-analysis` | Perform a full codebase analysis for a Konductro project phase |
33
+ | `/decompose` | Decompose a story into technical tasks by exploring the codebase |
34
+ | `/prototype` | Build a UX prototype: load design system, generate HTML, publish to S3, submit |
35
+ | `/find-prototype` | Find and download the approved UX prototype for the current project |
36
+ | `/profile-repository` | Scan the current repo and submit its profile to Konductro |
37
+ | `/start-ticket` | Pick up an assigned ticket — creates branch, pushes ticket spec, sets status |
38
+
39
+ ## Tools
40
+
41
+ Tools are called automatically by Claude based on natural language. You don't invoke them directly — just ask.
42
+
43
+ ### Tickets and delivery
44
+
45
+ | Tool | What it does |
46
+ |---|---|
47
+ | `list_my_tickets` | List all tickets assigned to you with status, project, sprint info |
48
+ | `get_ticket_context` | Load full context for a ticket — AC, architectural notes, parent story, repo |
49
+ | `start_work` | Start work on a ticket — creates branch via ADO, pushes spec file, sets in_progress |
50
+ | `create_pr` | Create a pull request for a ticket — auto-assigns reviewer, moves ticket to pr_open |
51
+
52
+ ### Technical analysis
53
+
54
+ | Tool | What it does |
55
+ |---|---|
56
+ | `list_tech_analysis_tasks` | List your pending technical analysis assignments |
57
+ | `get_task_context` | Load requirements and project context for a tech analysis task |
58
+ | `submit_tech_analysis` | Submit your analysis document back to Konductro |
59
+
60
+ ### Story decomposition
61
+
62
+ | Tool | What it does |
63
+ |---|---|
64
+ | `list_decomposition_tasks` | List your pending story decomposition assignments |
65
+ | `get_decomposition_context` | Load story details, requirements, and repo context for decomposition |
66
+ | `submit_decomposition_task` | Submit a single decomposed task |
67
+ | `complete_decomposition` | Mark decomposition as complete after all tasks submitted |
68
+
69
+ ### Prototype delivery
70
+
71
+ | Tool | What it does |
72
+ |---|---|
73
+ | `find_project_prototypes` | Find published prototypes for a project by matching the git remote URL |
74
+ | `list_prototype_tasks` | List your pending prototype build assignments |
75
+ | `get_prototype_context` | Load engagement details, design system, approved docs, and S3 config |
76
+ | `start_prototype_work` | Mark a prototype task as in progress |
77
+ | `request_upload_credentials` | Get temporary S3 credentials to upload prototype files |
78
+ | `submit_prototype` | Submit the published prototype back to Konductro |
79
+
80
+ ### Repository profiling
81
+
82
+ | Tool | What it does |
83
+ |---|---|
84
+ | `profile_repository` | Submit a repository profile (tech stack, APIs, dependencies) |
85
+
86
+ ### Examples
87
+
88
+ ```
89
+ "What tickets are assigned to me?" → list_my_tickets
90
+ "Show me the context for MRB-15" → get_ticket_context
91
+ "I want to start work on MRB-15" → /start-ticket (guided flow)
92
+ "Run a technical analysis" → /technical-analysis (guided flow)
93
+ "Build the prototype for this engagement" → /prototype (guided flow)
94
+ "Open a PR for MRB-15" → create_pr
95
+ ```
96
+
97
+ ## Update
98
+
99
+ ```bash
100
+ npm update -g @konductro/claude-plugin
101
+ ```
102
+
103
+ To update your CLI token:
104
+
105
+ ```bash
106
+ konductro-claude-setup --url https://platform.konductro.com --token NEW_TOKEN
107
+ ```
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+
3
+ console.log('');
4
+ console.log('╔══════════════════════════════════════════════════════╗');
5
+ console.log('║ Konductro Claude Plugin installed ║');
6
+ console.log('║ ║');
7
+ console.log('║ Run setup to configure: ║');
8
+ console.log('║ konductro-claude-setup --url <URL> --token <TOKEN> ║');
9
+ console.log('║ ║');
10
+ console.log('║ Get your CLI token from: ║');
11
+ console.log('║ Konductro → Settings → CLI Access ║');
12
+ console.log('╚══════════════════════════════════════════════════════╝');
13
+ console.log('');
package/bin/setup.js ADDED
@@ -0,0 +1,148 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Konductro Claude Plugin Setup
5
+ *
6
+ * Configures Claude Code to use the Konductro MCP server.
7
+ * Usage: konductro-claude-setup --url <konductro-url> --token <cli-token>
8
+ */
9
+
10
+ import { readFileSync, writeFileSync, mkdirSync, existsSync, readdirSync, copyFileSync } from 'fs';
11
+ import { join } from 'path';
12
+ import { homedir } from 'os';
13
+ import { fileURLToPath } from 'url';
14
+ import { dirname } from 'path';
15
+
16
+ const __filename = fileURLToPath(import.meta.url);
17
+ const __dirname = dirname(__filename);
18
+
19
+ function parseArgs(args) {
20
+ const parsed = {};
21
+ for (let i = 0; i < args.length; i++) {
22
+ if (args[i] === '--url' && args[i + 1]) {
23
+ parsed.url = args[i + 1].replace(/\/$/, '');
24
+ i++;
25
+ } else if (args[i] === '--token' && args[i + 1]) {
26
+ parsed.token = args[i + 1];
27
+ i++;
28
+ } else if (args[i] === '--help' || args[i] === '-h') {
29
+ parsed.help = true;
30
+ }
31
+ }
32
+ return parsed;
33
+ }
34
+
35
+ function printHelp() {
36
+ console.log(`
37
+ Konductro Claude Plugin Setup
38
+
39
+ Usage:
40
+ konductro-claude-setup --url <konductro-url> --token <cli-token>
41
+
42
+ Options:
43
+ --url Konductro platform URL (e.g., https://platform.konductro.com)
44
+ --token Your personal CLI token from Konductro Settings → CLI Access
45
+ --help Show this help message
46
+
47
+ Example:
48
+ konductro-claude-setup --url https://platform.konductro.com --token sk-konductro-abc123
49
+ `);
50
+ }
51
+
52
+ function main() {
53
+ const args = parseArgs(process.argv.slice(2));
54
+
55
+ if (args.help) {
56
+ printHelp();
57
+ process.exit(0);
58
+ }
59
+
60
+ if (!args.url || !args.token) {
61
+ console.error('Error: Both --url and --token are required.\n');
62
+ printHelp();
63
+ process.exit(1);
64
+ }
65
+
66
+ // Find the MCP server path (installed globally or locally)
67
+ const serverPath = join(__dirname, '..', 'servers', 'konductro-api.js');
68
+ if (!existsSync(serverPath)) {
69
+ console.error('Error: MCP server not found at', serverPath);
70
+ process.exit(1);
71
+ }
72
+
73
+ // Claude Code reads user-scoped MCP config from ~/.claude.json
74
+ const mcpConfigPath = join(homedir(), '.claude.json');
75
+
76
+ // Load existing config or create new
77
+ let config = {};
78
+ if (existsSync(mcpConfigPath)) {
79
+ try {
80
+ config = JSON.parse(readFileSync(mcpConfigPath, 'utf8'));
81
+ } catch {
82
+ console.warn('Warning: Could not parse existing .claude.json, will add MCP config.');
83
+ config = {};
84
+ }
85
+ }
86
+
87
+ if (!config.mcpServers) config.mcpServers = {};
88
+
89
+ // Add/update Konductro server
90
+ config.mcpServers.konductro = {
91
+ command: 'node',
92
+ args: [serverPath],
93
+ env: {
94
+ KONDUCTRO_URL: args.url,
95
+ KONDUCTRO_CLI_TOKEN: args.token,
96
+ },
97
+ };
98
+
99
+ // Write config
100
+ writeFileSync(mcpConfigPath, JSON.stringify(config, null, 2) + '\n');
101
+
102
+ // Copy skills to ~/.claude/commands/ so they appear as /slash-commands
103
+ const commandsDir = join(homedir(), '.claude', 'commands');
104
+ if (!existsSync(commandsDir)) {
105
+ mkdirSync(commandsDir, { recursive: true });
106
+ }
107
+
108
+ const skillsDir = join(__dirname, '..', 'skills');
109
+ if (existsSync(skillsDir)) {
110
+ // Copy each skill's .md file as a command
111
+ const skillFolders = readdirSync(skillsDir);
112
+ for (const folder of skillFolders) {
113
+ const skillPath = join(skillsDir, folder, 'SKILL.md');
114
+ if (existsSync(skillPath)) {
115
+ const destPath = join(commandsDir, `${folder}.md`);
116
+ copyFileSync(skillPath, destPath);
117
+ }
118
+ }
119
+ }
120
+
121
+ console.log('');
122
+ console.log('✓ Konductro plugin configured for Claude Code');
123
+ console.log('');
124
+ console.log(' MCP server: ' + serverPath);
125
+ console.log(' Commands: ' + commandsDir);
126
+ console.log(' Konductro: ' + args.url);
127
+ console.log(' Config: ' + mcpConfigPath);
128
+ console.log('');
129
+ console.log('Skills (slash commands):');
130
+ console.log(' /technical-analysis — perform codebase analysis');
131
+ console.log(' /decompose — decompose a story into tasks');
132
+ console.log(' /prototype — build a UX prototype');
133
+ console.log(' /profile-repository — scan and submit repo profile');
134
+ console.log(' /start-ticket — pick up a ticket and start work');
135
+ console.log('');
136
+ console.log('MCP tools (available in conversation):');
137
+ console.log(' list_tech_analysis_tasks — see analysis assignments');
138
+ console.log(' list_decomposition_tasks — see decomposition assignments');
139
+ console.log(' list_prototype_tasks — see prototype assignments');
140
+ console.log(' list_my_tickets — see assigned tickets');
141
+ console.log(' get_ticket_context — load full ticket context');
142
+ console.log(' profile_repository — scan and register repo');
143
+ console.log('');
144
+ console.log('To update your token later, run this command again.');
145
+ console.log('');
146
+ }
147
+
148
+ main();
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@konductro/claude-plugin",
3
+ "version": "2.0.0",
4
+ "description": "Claude Code plugin for the Konductro platform — technical analysis and delivery tasks",
5
+ "license": "UNLICENSED",
6
+ "type": "module",
7
+ "engines": {
8
+ "node": ">=18.0.0"
9
+ },
10
+ "bin": {
11
+ "konductro-claude-setup": "./bin/setup.js"
12
+ },
13
+ "files": [
14
+ "bin/",
15
+ "servers/",
16
+ "skills/",
17
+ ".claude-plugin/"
18
+ ],
19
+ "scripts": {
20
+ "postinstall": "node bin/postinstall.js"
21
+ },
22
+ "dependencies": {
23
+ "@modelcontextprotocol/sdk": "^1.0.0"
24
+ },
25
+ "publishConfig": {
26
+ "access": "public"
27
+ }
28
+ }