.claude/skills/tech-lead/SKILL.md
This skill should be used when the user asks to "implement a Jira ticket", "start working on EPMCDME ticket", "analyze task", "begin implementation", "implement new task", "implement feature", "act as tech lead", "plan implementation", "how should I implement", or wants structured technical leadership for implementing features. Acts as a technical lead to guide implementation from requirements (Jira ticket or user description) through complexity assessment, architectural analysis, branch creation, and pattern-driven coding.
npx skillsauth add codemie-ai/codemie-code tech-leadInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill acts as a technical lead to guide implementation of features and tasks with a structured approach. It bridges the gap between requirements and code by:
The skill ensures structured, informed development that follows project patterns and architectural guidelines.
Use this skill when:
Step 1: Determine Requirement Source
Check if user provided:
Step 1a: If Jira Ticket Provided
Use the brianna skill to fetch ONLY description and summary fields:
Use Skill tool with skill="brianna" and args containing:
- Action: get ticket details
- Ticket ID: [provided by user]
- Fields: description, summary ONLY
Do NOT request other fields like status, assignee, or custom fields unless explicitly needed for complexity assessment.
Step 1b: If Task Description Provided
If user provides a task description without a Jira ticket:
Example:
## Task Requirements
**Goal**: [What needs to be implemented]
**Acceptance Criteria**:
- [Criterion 1]
- [Criterion 2]
- [Criterion 3]
**Context**: [Any additional context or constraints]
Step 2: Branch Naming Decision
Determine appropriate branch name:
If Jira ticket exists:
EPMCDME-XXXXX (exact ticket ID)If no Jira ticket:
feature/descriptive-name or task/descriptive-namefeature/add-user-logging, task/improve-error-handlingStep 3: Explore Codebase and Guides
After obtaining ticket details, perform targeted exploration:
Check Relevant Guides First (MANDATORY)
.codemie/guides/Search Codebase
Understand Architecture
Exploration Guidelines:
Step 4: Clarifying Questions (Selective)
Ask clarifying questions ONLY when:
Do NOT ask about:
Use AskUserQuestion tool with focused, specific questions that unblock implementation decisions.
Step 5: Analyze and Report Complexity
Provide a structured complexity assessment in this format:
## Implementation Analysis: [TICKET-ID]
### Complexity Rating: [Simple | Medium | Complex]
### Reasoning:
- **[Point 1]**: [Explanation of complexity factor]
- **[Point 2]**: [Explanation of complexity factor]
- **[Point 3]**: [Explanation of complexity factor]
- **[Point 4]**: [Explanation of complexity factor - optional]
### Clarity Assessment:
[Clear | Partially Clear | Unclear] - [Brief explanation]
### Affected Components:
- **[Component 1]**: [File path or module] - [Nature of change]
- **[Component 2]**: [File path or module] - [Nature of change]
- **[Component 3]**: [File path or module] - [Nature of change]
Complexity Criteria:
Simple:
Medium:
Complex:
Step 6: Provide Implementation Recommendation
Based on complexity assessment, provide one of these recommendations:
For Simple/Medium Complexity:
### Recommendation
This feature is [Simple/Medium] complexity and can be implemented directly.
**Suggested Approach:**
1. Create feature branch: `[branch-name]`
2. [Step-by-step implementation guidance]
3. [Key patterns to follow]
4. [Testing approach]
Upon user confirmation, create the feature branch and begin implementation.
For Complex Complexity:
### Recommendation
This feature is Complex and would benefit from architectural planning.
**Suggested Next Steps:**
1. Use solution-architect skill to create detailed specification
2. Address architectural decisions: [list key decisions]
3. Define interfaces and contracts
4. Create implementation plan with milestones
Alternatively, proceed with implementation if user accepts the complexity. Ask user to choose approach.
Step 7: Branch Protection Check and Implementation
If user agrees to proceed with implementation:
CRITICAL: NEVER implement on main/master. Always check branch first.
7a. Check Current Branch (MANDATORY FIRST STEP):
git branch --show-current
7b. If on main or master branch — STOP immediately:
Do NOT write any code. Display this message:
⚠️ **Branch Protection**: You are currently on the `main` branch.
Implementation cannot start on `main`. I will create a feature branch first.
Creating branch: `[determined-branch-name]`...
Then create the feature branch immediately before touching any files.
7c. If already on a feature branch — proceed normally.
7d. Create Feature Branch (if on main/master or no branch exists):
# Create and switch to feature branch
# For Jira tickets:
git checkout -b EPMCDME-XXXXX
# For non-Jira tasks (use determined branch name):
git checkout -b feature/branch-name
7e. Verify Branch:
# Confirm on correct branch (must NOT be main or master)
git branch --show-current
7f. Begin Implementation:
Branch Naming:
For Jira tickets:
EPMCDME-XXXXX (exactly as ticket ID)feature/ or fix/For non-Jira tasks:
feature/descriptive-name or task/descriptive-namefeature/add-logging, task/refactor-authImplementation Guidelines:
✅ Always check guides before searching codebase ✅ Accept both Jira tickets and task descriptions ✅ Fetch only required Jira fields (description, summary) when applicable ✅ Provide evidence-based complexity assessment ✅ Create feature branch BEFORE any changes ✅ Follow established patterns from guides ✅ Ask specific, blocking questions only ✅ Provide clear, actionable recommendations ✅ Adapt branch naming to context (Jira vs non-Jira)
❌ Don't skip guide consultation
❌ Don't ask generic clarifying questions
❌ Don't start coding without branch creation
❌ Don't write ANY code while on main or master branch
❌ Don't make architectural decisions for complex features without user input
❌ Don't fetch unnecessary Jira fields (when using Jira)
❌ Don't guess at complexity—analyze systematically
❌ Don't assume every task has a Jira ticket
User: "Implement EPMCDME-10500"
Tech Lead:
1. Identifies Jira ticket format
2. Fetches ticket via brianna (description + summary)
3. Reads .codemie/guides/api/rest-api-patterns.md
4. Searches for similar endpoints with Grep
5. Assesses: Simple (1 endpoint, standard CRUD, existing pattern)
6. Recommends: Direct implementation
7. Creates branch: EPMCDME-10500
8. Implements following REST API patterns
User: "Add logging to the authentication endpoint"
Tech Lead:
1. Identifies task description (no Jira ticket)
2. Documents requirements in structured format
3. Asks user for branch name preference
4. Reads .codemie/guides/development/logging-patterns.md
5. Searches for auth endpoint with Grep
6. Assesses: Simple (1 file, standard pattern, clear requirements)
7. Recommends: Direct implementation
8. Creates branch: feature/add-auth-logging
9. Implements following logging patterns
User: "Start work on EPMCDME-10600"
Tech Lead:
1. Fetches ticket via brianna
2. Reads guides: agents/langchain-agent-patterns.md, integration/llm-providers.md
3. Searches codebase for similar agents
4. Asks: "Should the new agent use streaming or batch mode?"
5. Assesses: Medium (new agent + tool, 5 files, clear patterns)
6. Recommends: Direct implementation with guidance
7. Creates branch: EPMCDME-10600
8. Implements agent following LangChain patterns
User: "Implement EPMCDME-10700"
Tech Lead:
1. Fetches ticket via brianna
2. Reads multiple guides (architecture, workflows, integrations)
3. Identifies: 12+ files affected, new external service integration
4. Asks: "Which cloud provider should be used?" "What's the data retention policy?"
5. Assesses: Complex (multi-layer, new integration, security concerns)
6. Recommends: Use solution-architect skill first
7. If user insists: Creates branch and starts with high-level plan
Unable to fetch Jira ticket [ID]. Please verify:
- Ticket ID format is correct (EPMCDME-XXXXX)
- Ticket exists in Jira
- You have access to view this ticket
When git branch --show-current returns main or master:
⚠️ **Branch Protection**: You are currently on the `main` branch.
Implementation cannot start on `main`. Creating feature branch `[branch-name]` now...
Then immediately run git checkout -b [branch-name] before any file edits.
Branch [EPMCDME-XXXXX] already exists.
Options:
1. Switch to existing branch: `git checkout EPMCDME-XXXXX`
2. Delete and recreate: `git branch -D EPMCDME-XXXXX && git checkout -b EPMCDME-XXXXX`
3. Use different branch name (not recommended)
Which option do you prefer?
Warning: Unable to locate relevant guides for this task.
Proceeding with codebase exploration only. This may result in patterns inconsistent with project standards.
Continue? Consider updating guide paths if this persists.
A successful tech-lead session results in:
For detailed patterns referenced during analysis:
references/complexity-assessment-guide.md - Detailed complexity criteria and examplesreferences/branch-workflow.md - Git branching best practices for Jira ticketsThis skill coordinates with:
.codemie/guides/: Consults all relevant guides based on task typetools
CodeMie Analytics expert — use this skill whenever the user asks about CodeMie usage data, AI adoption metrics, user leaderboards, CLI insights, spending, LiteLLM costs, token usage, or wants to build a dashboard/report from CodeMie or LiteLLM APIs. Also triggers for: "who uses CodeMie most", "show me AI analytics", "get spending data", "generate a report", "leaderboard", "cost analysis", "LiteLLM customer info", "enrich CSV with costs", "top performers", "AI champions", "tier distribution", or any custom analytics query against the platform. Always use this skill when CodeMie analytics, reporting, or cost data is involved.
tools
Work with Microsoft 365 services via the Graph API — emails, calendar events, SharePoint sites (read and write), Teams chats and channel messages, OneDrive files, OneNote notebooks, contacts, and org chart. Use this skill whenever the user asks about their emails, inbox, unread messages, meetings, calendar, Teams messages or chats, channel messages, SharePoint documents, OneDrive files, OneNote notes or notebooks, colleagues, manager, direct reports, or any personal/organizational Microsoft data. Invoke proactively any time the user mentions Outlook, Teams, SharePoint, OneDrive, OneNote, or wants to interact with their Microsoft 365 account. The skill uses a local Node.js CLI (msgraph.js) that handles authentication, token caching, and all API calls.
tools
Manage CodeMie platform assets (assistants, workflows, datasources, integrations, skills, users, assistant-categories) directly from CLI using CodeMie SDK. Use when user says "create assistant", "list workflows", "update datasource", "delete assistant", "show my assistants", "get workflow details", "manage integrations", "create integration", "list integrations", "list llm models", "list embedding models", "list skills", "get skill", "create skill", "update skill", "delete skill", "publish skill", "import skill", "export skill", "attach skill", "list assistant categories", "get assistant category", "create assistant category", "delete assistant category", "who am i", "current user", "my profile", "user info", or any request to manage CodeMie platform resources. NOTE: For analytics requests (usage analytics, summaries, spending, users activity, leaderboards, etc.) use the codemie-analytics skill instead.
development
Build static HTML pages, reports, dashboards, and mockups that match the CodeMie UI design system. Use this skill whenever the user asks to create an HTML report, dashboard, analytics page, status page, data visualization page, or any static HTML document that should look like the CodeMie/EPAM AI/Run product. Also use it when the user says "make it look like CodeMie", "use the style guide", "dark-themed report", "CodeMie styles", or references the style-guide directory. Trigger for any HTML output task in a project that includes the style-guide folder. IMPORTANT: This skill MUST be used for ALL HTML generation requests — whenever a user asks for an HTML report, HTML analysis output, HTML dashboard, HTML visualization, or any HTML document. Claude must always use this skill to generate HTML in CodeMie styles to ensure consistent, professional, branded output across all HTML artifacts.