@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.
- package/.claude-plugin/plugin.json +29 -0
- package/README.md +107 -0
- package/bin/postinstall.js +13 -0
- package/bin/setup.js +148 -0
- package/package.json +28 -0
- package/servers/konductro-api.js +894 -0
- package/skills/decompose/SKILL.md +97 -0
- package/skills/find-prototype/SKILL.md +57 -0
- package/skills/profile-repository/SKILL.md +52 -0
- package/skills/prototype/SKILL.md +92 -0
- package/skills/start-ticket/SKILL.md +56 -0
- package/skills/technical-analysis/SKILL.md +83 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: decompose
|
|
3
|
+
description: Decompose a Konductro story into technical tasks. Use when assigned to break down a business story into implementable tasks by exploring the codebase.
|
|
4
|
+
allowed-tools: Read, Grep, Glob, Bash, mcp__konductro__list_decomposition_tasks, mcp__konductro__get_decomposition_context, mcp__konductro__submit_decomposition_task, mcp__konductro__complete_decomposition
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Konductro Story Decomposition
|
|
8
|
+
|
|
9
|
+
You are decomposing a business-level story into technical tasks for the Konductro delivery platform. Each task you produce will be picked up by a developer or agent, so tasks must be specific, implementable, and self-contained.
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
### Step 1: Load Your Assignments
|
|
14
|
+
|
|
15
|
+
Call `list_decomposition_tasks` to see which stories are assigned to you for decomposition. Present the list to the user and ask which story to work on.
|
|
16
|
+
|
|
17
|
+
### Step 2: Load Context
|
|
18
|
+
|
|
19
|
+
Call `get_decomposition_context` with the story ID. This loads:
|
|
20
|
+
- The story details (title, description, acceptance criteria, complexity)
|
|
21
|
+
- Approved requirements and architecture documents
|
|
22
|
+
- Repository information with profiles
|
|
23
|
+
- Existing tasks (if any were already created)
|
|
24
|
+
- Sibling stories for cross-story context
|
|
25
|
+
|
|
26
|
+
Share a summary with the user and confirm you're ready to begin.
|
|
27
|
+
|
|
28
|
+
### Step 3: Explore the Codebase
|
|
29
|
+
|
|
30
|
+
The user has the target repository/repositories cloned locally. Use Glob, Grep, and Read to understand:
|
|
31
|
+
|
|
32
|
+
- **Where the change lands** — which modules, services, or components are affected
|
|
33
|
+
- **Existing patterns** — how similar features are already built (routes, services, components)
|
|
34
|
+
- **Data model** — relevant database tables, entities, relationships
|
|
35
|
+
- **API surface** — existing endpoints, request/response shapes
|
|
36
|
+
- **Test patterns** — how tests are structured for this area of the codebase
|
|
37
|
+
- **Dependencies** — what the affected code depends on and what depends on it
|
|
38
|
+
|
|
39
|
+
Focus your exploration on what's relevant to the story. Don't scan the entire codebase.
|
|
40
|
+
|
|
41
|
+
### Step 4: Plan the Decomposition
|
|
42
|
+
|
|
43
|
+
Based on the story requirements and your codebase understanding, plan the tasks. Consider:
|
|
44
|
+
|
|
45
|
+
- **Execution order** — what needs to be built first (e.g., schema before API before UI)
|
|
46
|
+
- **Task boundaries** — each task should be a single PR, touching one concern
|
|
47
|
+
- **Repository assignment** — which repo does each task belong to
|
|
48
|
+
- **Task type** — `api_node`, `api_java`, `ui_component`, `android`, `ios`, `infra`
|
|
49
|
+
- **Dependencies between tasks** — task 2 may depend on task 1's API
|
|
50
|
+
|
|
51
|
+
Present your proposed decomposition to the user before submitting.
|
|
52
|
+
|
|
53
|
+
### Step 5: Define Each Task (Developer Brief)
|
|
54
|
+
|
|
55
|
+
For each task, produce the full developer brief — this is the complete implementation guide that a developer or agent will use. Include ALL of these fields:
|
|
56
|
+
|
|
57
|
+
1. **title** — short, action-oriented (e.g., "Add sprint.projectId column and migration")
|
|
58
|
+
2. **description** — technical description of what to build and how, referencing specific files, patterns, and APIs
|
|
59
|
+
3. **repositoryId** — from the context (the repo this task targets)
|
|
60
|
+
4. **type** — `api_node`, `api_java`, `ui_component`, `android`, `ios`, `infra`
|
|
61
|
+
5. **acceptanceCriteria** — specific, testable criteria for this task
|
|
62
|
+
6. **architecturalNotes** — implementation hints, patterns to follow, gotchas
|
|
63
|
+
7. **componentPath** — primary file or directory being changed
|
|
64
|
+
8. **order** — execution order (0-based, tasks with same order can be parallel)
|
|
65
|
+
9. **filesToCreate** — list of new files that need to be created
|
|
66
|
+
10. **filesToModify** — list of `{ path, change }` objects describing what to modify in existing files
|
|
67
|
+
11. **implementationSteps** — ordered step-by-step implementation guide
|
|
68
|
+
12. **outOfScope** — what is explicitly NOT included in this task
|
|
69
|
+
|
|
70
|
+
### Step 6: Submit Tasks One by One
|
|
71
|
+
|
|
72
|
+
After the user approves the decomposition, submit each task individually by calling `submit_decomposition_task` once per task. This keeps payloads small and generates the developer brief for each task as it's created.
|
|
73
|
+
|
|
74
|
+
After ALL tasks are submitted, call `complete_decomposition` with:
|
|
75
|
+
- The story ID
|
|
76
|
+
- A conversation summary capturing key decisions and rationale
|
|
77
|
+
|
|
78
|
+
Confirm success and let the user know the tasks are available in Konductro.
|
|
79
|
+
|
|
80
|
+
## Task Decomposition Guidelines
|
|
81
|
+
|
|
82
|
+
- **Right-size tasks** — each task should be completable in a single focused session. Not too large (multi-day), not too small (trivial rename).
|
|
83
|
+
- **Self-contained** — a task should make sense on its own. Include enough context in the description that someone unfamiliar with the discussion can implement it.
|
|
84
|
+
- **Backend before frontend** — schema/migration tasks first, then API, then UI.
|
|
85
|
+
- **One repo per task** — don't create cross-repo tasks.
|
|
86
|
+
- **Reference specific code** — mention file paths, function names, existing patterns to follow.
|
|
87
|
+
- **Include test expectations** — note what tests should be added or updated.
|
|
88
|
+
- **Complete developer brief** — every task must include filesToCreate, filesToModify, implementationSteps, and outOfScope. This is the brief the developer/agent will work from.
|
|
89
|
+
|
|
90
|
+
## Important Rules
|
|
91
|
+
|
|
92
|
+
- Always start by loading tasks from Konductro — don't skip this step
|
|
93
|
+
- Explore the ACTUAL codebase — don't assume or hallucinate file contents
|
|
94
|
+
- Ask the user questions about business logic, edge cases, or priorities
|
|
95
|
+
- Present the full task list for user review before submitting
|
|
96
|
+
- Submit tasks ONE AT A TIME using `submit_decomposition_task`, then call `complete_decomposition`
|
|
97
|
+
- The conversation summary should explain WHY you decomposed it this way
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: find-prototype
|
|
3
|
+
description: Find and download UX prototypes for the current project. Use when a developer wants to reference the approved prototype while building features.
|
|
4
|
+
allowed-tools: Bash, Write, mcp__konductro__find_project_prototypes
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Find Project Prototype
|
|
8
|
+
|
|
9
|
+
You are helping a developer find and download the UX prototype for their current project so they can reference it while building features.
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
### Step 1: Get the git remote URL
|
|
14
|
+
|
|
15
|
+
Run `git remote get-url origin` to get the repository's remote URL.
|
|
16
|
+
|
|
17
|
+
### Step 2: Find prototypes
|
|
18
|
+
|
|
19
|
+
Call `find_project_prototypes` with the git remote URL. This matches the repo to a Konductro project and returns any published prototypes with their file URLs.
|
|
20
|
+
|
|
21
|
+
If no prototypes are found, let the user know and stop.
|
|
22
|
+
|
|
23
|
+
### Step 3: Present the results
|
|
24
|
+
|
|
25
|
+
Show the user what was found:
|
|
26
|
+
- Engagement name and version
|
|
27
|
+
- List of pages with their URLs
|
|
28
|
+
|
|
29
|
+
Ask if they want to download the files locally.
|
|
30
|
+
|
|
31
|
+
### Step 4: Download
|
|
32
|
+
|
|
33
|
+
If the user wants to download, create a `.konductro/prototype/` directory and download each file using `curl`:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
mkdir -p .konductro/prototype
|
|
37
|
+
curl -o .konductro/prototype/index.html "<url>"
|
|
38
|
+
curl -o .konductro/prototype/dashboard.html "<url>"
|
|
39
|
+
# etc.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Use `.konductro/prototype/` (not `./prototype/`) to avoid clashing with the prototype build skill's output directory.
|
|
43
|
+
|
|
44
|
+
### Step 5: Confirm
|
|
45
|
+
|
|
46
|
+
Let the user know the files are downloaded and they can open them in their browser:
|
|
47
|
+
```
|
|
48
|
+
open .konductro/prototype/index.html
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Rules
|
|
52
|
+
|
|
53
|
+
- Always detect the git remote automatically — don't ask the user for it
|
|
54
|
+
- Use `.konductro/prototype/` as the download directory
|
|
55
|
+
- The files are public S3 URLs — no credentials needed
|
|
56
|
+
- If multiple prototypes exist, let the user pick which one to download
|
|
57
|
+
- Don't modify the prototype files — they're reference material
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: profile-repository
|
|
3
|
+
description: Scan the current repository and submit its profile to Konductro. Use when you want to analyse and register a codebase's tech stack, dependencies, APIs, and architecture.
|
|
4
|
+
allowed-tools: Read, Grep, Glob, Bash, mcp__konductro__profile_repository
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Konductro Repository Profiling
|
|
8
|
+
|
|
9
|
+
You are profiling a codebase to submit its technical profile to the Konductro delivery platform. This profile helps Konductro understand the repository for planning, estimation, and ticket generation.
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
### Step 1: Identify the Repository
|
|
14
|
+
|
|
15
|
+
Run `git remote get-url origin` to get the repository URL. This will be used to match the repo in Konductro.
|
|
16
|
+
|
|
17
|
+
### Step 2: Scan the Codebase
|
|
18
|
+
|
|
19
|
+
Explore the repository to build a comprehensive profile:
|
|
20
|
+
|
|
21
|
+
- **Project structure** — folder layout, monorepo or single project
|
|
22
|
+
- **Tech stack** — check package.json, pom.xml, build.gradle, requirements.txt, go.mod, etc.
|
|
23
|
+
- **Framework** — Angular, React, Spring Boot, Express, Fastify, Django, etc.
|
|
24
|
+
- **API endpoints** — scan routes, controllers, handlers
|
|
25
|
+
- **Dependencies** — key libraries with versions
|
|
26
|
+
- **Database** — schemas, migrations, ORM config
|
|
27
|
+
- **Build tools** — webpack, vite, gradle, maven, docker
|
|
28
|
+
- **Test framework** — jest, mocha, junit, pytest, etc.
|
|
29
|
+
|
|
30
|
+
### Step 3: Determine Role and Domain
|
|
31
|
+
|
|
32
|
+
Based on the codebase, determine:
|
|
33
|
+
- **Role**: Is this an application, library, service, or infrastructure repo?
|
|
34
|
+
- **Domain**: What business domain does it own? (e.g., payments, auth, booking, notifications)
|
|
35
|
+
|
|
36
|
+
### Step 4: Submit the Profile
|
|
37
|
+
|
|
38
|
+
Call `profile_repository` with:
|
|
39
|
+
- The git remote URL
|
|
40
|
+
- Role and domain
|
|
41
|
+
- API endpoints found
|
|
42
|
+
- Key dependencies
|
|
43
|
+
- Any events produced or consumed (message queues, webhooks, etc.)
|
|
44
|
+
|
|
45
|
+
Present a summary to the user before submitting and ask for confirmation.
|
|
46
|
+
|
|
47
|
+
## Important Rules
|
|
48
|
+
|
|
49
|
+
- Scan the ACTUAL codebase — don't guess
|
|
50
|
+
- Focus on the key dependencies and APIs, not every single package
|
|
51
|
+
- Be specific about versions where possible
|
|
52
|
+
- If you can't determine the domain, ask the user
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prototype
|
|
3
|
+
description: Build a UX prototype for a Konductro engagement. Loads design system and approved documents, generates multi-page HTML locally, publishes to S3, and submits back to Konductro.
|
|
4
|
+
allowed-tools: Read, Grep, Glob, Bash, Write, mcp__konductro__list_prototype_tasks, mcp__konductro__get_prototype_context, mcp__konductro__start_prototype_work, mcp__konductro__request_upload_credentials, mcp__konductro__submit_prototype
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Konductro Prototype Build
|
|
8
|
+
|
|
9
|
+
You are building a multi-page HTML prototype for a UX engagement on the Konductro platform. The prototype uses the project's design system (tokens and components) and implements the screens defined in the approved feature matrix.
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
### Step 1: Load Your Assignments
|
|
14
|
+
|
|
15
|
+
Call `list_prototype_tasks` to see which prototype tasks are assigned to you. Present the list to the user and ask which one to work on.
|
|
16
|
+
|
|
17
|
+
### Step 2: Load Context
|
|
18
|
+
|
|
19
|
+
Call `get_prototype_context` with the job ID. This loads:
|
|
20
|
+
- The UX engagement details (name, description)
|
|
21
|
+
- The design system (tokens: colours, typography, spacing; components: buttons, cards, forms, etc.)
|
|
22
|
+
- Approved documents from earlier UX steps (hypotheses, personas, feature matrix)
|
|
23
|
+
- The preview HTML from the Design Studio step (locked visual direction)
|
|
24
|
+
- S3 configuration for publishing
|
|
25
|
+
|
|
26
|
+
Review all the context carefully. The design system tokens and components define exactly how the prototype should look. The feature matrix defines what screens to build. The preview HTML shows the visual direction that was already approved.
|
|
27
|
+
|
|
28
|
+
### Step 3: Start Work
|
|
29
|
+
|
|
30
|
+
Call `start_prototype_work` with the job ID to mark the task as in progress.
|
|
31
|
+
|
|
32
|
+
### Step 4: Build the Prototype
|
|
33
|
+
|
|
34
|
+
Create a `./prototype/` directory in the current working directory. Build multi-page HTML files:
|
|
35
|
+
|
|
36
|
+
**Structure:**
|
|
37
|
+
- `index.html` — landing/home page (entry point)
|
|
38
|
+
- Additional pages as defined by the feature matrix (e.g., `dashboard.html`, `settings.html`, `profile.html`)
|
|
39
|
+
|
|
40
|
+
**Design rules:**
|
|
41
|
+
- Use **Tailwind CSS via CDN** (`<script src="https://cdn.tailwindcss.com"></script>`)
|
|
42
|
+
- Use **Google Fonts** if the design system specifies typography
|
|
43
|
+
- Apply design system tokens directly: colours as Tailwind config overrides, spacing, border radius, shadows
|
|
44
|
+
- Build components exactly as defined in the design system: buttons, cards, forms, navigation, modals, tables, badges, alerts
|
|
45
|
+
- Every page must include consistent navigation linking to all other pages
|
|
46
|
+
- Pages must be fully self-contained HTML files — no external JS frameworks
|
|
47
|
+
- Make the prototype feel real: use realistic placeholder content, not lorem ipsum
|
|
48
|
+
- Responsive design — should work on desktop and tablet widths at minimum
|
|
49
|
+
|
|
50
|
+
**Quality bar:**
|
|
51
|
+
- The prototype should look like a real application, not a wireframe
|
|
52
|
+
- Use the approved preview HTML as the visual reference — match its aesthetic
|
|
53
|
+
- Interactive elements should have hover/focus states
|
|
54
|
+
- Forms should have proper labels and structure (they don't need to submit)
|
|
55
|
+
|
|
56
|
+
### Step 5: Review with User
|
|
57
|
+
|
|
58
|
+
Let the user know the prototype is ready for review. They can open the HTML files in their browser directly from the `./prototype/` directory. Iterate based on feedback — update files as needed.
|
|
59
|
+
|
|
60
|
+
### Step 6: Publish to S3
|
|
61
|
+
|
|
62
|
+
When the user is happy with the prototype:
|
|
63
|
+
|
|
64
|
+
1. Call `request_upload_credentials` with the job ID to get temporary S3 credentials
|
|
65
|
+
2. Upload each HTML file from `./prototype/` to S3 using the credentials:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
export AWS_ACCESS_KEY_ID=<from credentials>
|
|
69
|
+
export AWS_SECRET_ACCESS_KEY=<from credentials>
|
|
70
|
+
export AWS_SESSION_TOKEN=<from credentials>
|
|
71
|
+
aws s3 cp ./prototype/ s3://<bucket>/<prefix>/ --recursive --content-type "text/html" --region <region>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
If `aws` CLI is not available, the upload will fail. In that case, inform the user they need the AWS CLI installed, or offer to try using curl with presigned URLs as a fallback.
|
|
75
|
+
|
|
76
|
+
### Step 7: Submit to Konductro
|
|
77
|
+
|
|
78
|
+
After uploading, call `submit_prototype` with:
|
|
79
|
+
- The job ID
|
|
80
|
+
- A `pages` array listing each uploaded file with its filename and title
|
|
81
|
+
|
|
82
|
+
This marks the task as complete and notifies the SDM.
|
|
83
|
+
|
|
84
|
+
## Important Rules
|
|
85
|
+
|
|
86
|
+
- Always start by loading tasks from Konductro — don't skip this step
|
|
87
|
+
- Use the design system tokens and components faithfully — don't invent your own styles
|
|
88
|
+
- The preview HTML from Design Studio is the approved visual direction — match it
|
|
89
|
+
- Build ALL pages defined in the feature matrix, not just a subset
|
|
90
|
+
- Ask the user for feedback before publishing — prototypes are communication tools
|
|
91
|
+
- The `./prototype/` directory stays local after publish for reference
|
|
92
|
+
- Credentials expire in 15 minutes — request fresh ones if upload takes longer
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: start-ticket
|
|
3
|
+
description: Pick up an assigned ticket and start work — creates branch, pushes ticket spec, updates status. Use when a developer wants to begin working on a ticket.
|
|
4
|
+
allowed-tools: Read, Grep, Glob, Bash, mcp__konductro__list_my_tickets, mcp__konductro__get_ticket_context, mcp__konductro__start_work
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Start Ticket
|
|
8
|
+
|
|
9
|
+
You are helping a developer pick up and start work on a Konductro ticket.
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
### Step 1: List Assigned Tickets
|
|
14
|
+
|
|
15
|
+
Call `list_my_tickets` to show what's available. Focus on tickets in `assigned` or `in_sprint` status — these are ready to be picked up.
|
|
16
|
+
|
|
17
|
+
If the developer already knows which ticket they want, skip to Step 2.
|
|
18
|
+
|
|
19
|
+
### Step 2: Load Ticket Context
|
|
20
|
+
|
|
21
|
+
Call `get_ticket_context` with the chosen ticket ID. Present a summary:
|
|
22
|
+
- Title and description
|
|
23
|
+
- Acceptance criteria
|
|
24
|
+
- Target repository and default base branch
|
|
25
|
+
- Any dependencies or architectural notes
|
|
26
|
+
|
|
27
|
+
### Step 3: Confirm Branch Details
|
|
28
|
+
|
|
29
|
+
Ask the developer:
|
|
30
|
+
- **Branch from:** Show the repo's default base branch (from the context). Ask if they want to branch from somewhere else.
|
|
31
|
+
- **Branch name:** Show the default (`feature/{TICKET-KEY}`). Ask if they want to override it.
|
|
32
|
+
|
|
33
|
+
Most of the time the defaults are fine — don't over-prompt. A simple "I'll create `feature/MRB-15` from `dev` — good?" is enough.
|
|
34
|
+
|
|
35
|
+
### Step 4: Start Work
|
|
36
|
+
|
|
37
|
+
Call `start_work` with the ticket ID and branch details. This will:
|
|
38
|
+
1. Create the branch in ADO
|
|
39
|
+
2. Push the ticket spec file to `.tickets/{KEY}.md`
|
|
40
|
+
3. Set the ticket status to `in_progress`
|
|
41
|
+
|
|
42
|
+
### Step 5: Checkout Locally
|
|
43
|
+
|
|
44
|
+
After success, tell the developer to run:
|
|
45
|
+
```
|
|
46
|
+
git fetch && git checkout {branchName}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Then offer to help them get started — explore the codebase, review the acceptance criteria against existing code, etc.
|
|
50
|
+
|
|
51
|
+
## Rules
|
|
52
|
+
|
|
53
|
+
- Only show tickets that are assigned to the user and ready to start
|
|
54
|
+
- Always confirm the branch-from before calling start_work
|
|
55
|
+
- If start_work fails (e.g. branch already exists, ADO error), show the error clearly
|
|
56
|
+
- Don't skip the branch confirmation step — branching from the wrong base is hard to fix
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: technical-analysis
|
|
3
|
+
description: Perform a technical analysis for a Konductro project phase. Use when the user wants to analyse a codebase for technical planning — examining patterns, dependencies, risks, and recommending an approach.
|
|
4
|
+
allowed-tools: Read, Grep, Glob, mcp__konductro__list_tech_analysis_tasks, mcp__konductro__get_task_context, mcp__konductro__submit_tech_analysis
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Konductro Technical Analysis
|
|
8
|
+
|
|
9
|
+
You are performing a technical analysis of a codebase for the Konductro delivery platform. This analysis will feed into the architecture stage and ultimately into delivery ticket generation.
|
|
10
|
+
|
|
11
|
+
## Workflow
|
|
12
|
+
|
|
13
|
+
### Step 1: Load Your Tasks
|
|
14
|
+
|
|
15
|
+
Start by calling `list_tech_analysis_tasks` to see what's assigned to you. Present the list to the user and ask which task they want to work on.
|
|
16
|
+
|
|
17
|
+
### Step 2: Load Context
|
|
18
|
+
|
|
19
|
+
Once the user picks a task, call `get_task_context` with the phase ID. This loads:
|
|
20
|
+
- The approved requirements document (what needs to be built)
|
|
21
|
+
- Project and client context
|
|
22
|
+
- Repository information
|
|
23
|
+
|
|
24
|
+
Share a summary of the requirements with the user and confirm you're ready to begin.
|
|
25
|
+
|
|
26
|
+
### Step 3: Explore the Codebase
|
|
27
|
+
|
|
28
|
+
Now analyse the local codebase. The user has the repository/repositories cloned in their current working directory. Use Glob, Grep, and Read to explore:
|
|
29
|
+
|
|
30
|
+
- **Project structure** — folder layout, module organisation
|
|
31
|
+
- **Tech stack** — frameworks, versions, build tools (check package.json, pom.xml, build.gradle, etc.)
|
|
32
|
+
- **Architecture patterns** — how the app is structured (MVC, layered, microservices, etc.)
|
|
33
|
+
- **Existing APIs** — routes, controllers, endpoints
|
|
34
|
+
- **Data models** — database schemas, entities, types
|
|
35
|
+
- **Dependencies** — external libraries, their versions, what they're used for
|
|
36
|
+
- **Testing** — test framework, coverage, test patterns
|
|
37
|
+
- **Configuration** — environment handling, feature flags, deployment config
|
|
38
|
+
- **Integration points** — external services, message queues, APIs consumed
|
|
39
|
+
|
|
40
|
+
Discuss your findings with the user as you go. Ask clarifying questions about design decisions, business context, or areas of concern.
|
|
41
|
+
|
|
42
|
+
### Step 4: Impact Analysis
|
|
43
|
+
|
|
44
|
+
Based on the requirements and your codebase exploration, assess:
|
|
45
|
+
|
|
46
|
+
- **What needs to change** — which files, modules, or services need modification
|
|
47
|
+
- **What needs to be created** — new components, services, APIs
|
|
48
|
+
- **Risks and constraints** — technical debt, tight coupling, performance concerns
|
|
49
|
+
- **Dependencies between changes** — what order should things be built in
|
|
50
|
+
- **Recommended approach** — how to implement the requirements given the current codebase
|
|
51
|
+
|
|
52
|
+
### Step 5: Produce the Document
|
|
53
|
+
|
|
54
|
+
When the user is satisfied with the analysis, produce a structured technical analysis document. The document must include:
|
|
55
|
+
|
|
56
|
+
1. **Codebase Overview** — what exists today (structure, stack, patterns)
|
|
57
|
+
2. **Technical Stack** — frameworks, versions, build tools, deployment
|
|
58
|
+
3. **Architecture Patterns** — how the app is structured, key design decisions
|
|
59
|
+
4. **Existing APIs & Services** — current endpoints and integrations
|
|
60
|
+
5. **Data Model** — current schema, entities, relationships
|
|
61
|
+
6. **Impact Analysis** — what needs to change for the requirements
|
|
62
|
+
7. **Risks & Constraints** — technical debt, performance concerns, coupling issues
|
|
63
|
+
8. **Recommended Approach** — how to implement, including sequencing
|
|
64
|
+
9. **Dependencies** — external libraries, services, and inter-module dependencies
|
|
65
|
+
10. **Testing Strategy** — how to test the changes given current test infrastructure
|
|
66
|
+
|
|
67
|
+
### Step 6: Submit
|
|
68
|
+
|
|
69
|
+
Ask the user to review the document. When they approve, call `submit_tech_analysis` with:
|
|
70
|
+
- The phase ID from the task
|
|
71
|
+
- The complete document
|
|
72
|
+
- A conversation summary covering: key findings, decisions made, areas of concern discussed
|
|
73
|
+
|
|
74
|
+
After submission, confirm success and let the user know the document is available in Konductro for review and approval.
|
|
75
|
+
|
|
76
|
+
## Important Rules
|
|
77
|
+
|
|
78
|
+
- Always start by loading tasks from Konductro — don't skip this step
|
|
79
|
+
- Explore the ACTUAL codebase — don't assume or hallucinate file contents
|
|
80
|
+
- Be thorough but focused — analyse what's relevant to the requirements
|
|
81
|
+
- Ask the user questions — they know the codebase context you don't
|
|
82
|
+
- Produce a complete, standalone document that an architect can use without additional context
|
|
83
|
+
- The conversation summary should capture the "why" behind decisions, not just the findings
|