Repository Analysis

eyaltoledano/claude-task-master

An AI-powered task-management system you can drop into Cursor, Lovable, Windsurf, Roo, and others.

1.6 Likely human-written View on GitHub
1.6
Adjusted Score
1.6
Raw Score
100%
Time Factor
2026-04-28
Last Push
27,290
Stars
JavaScript
Language
282,873
Lines of Code
1118
Files
241
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 25MEDIUM 30LOW 186

Pattern Findings

241 matches across 11 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers141 hits · 142 pts
SeverityFileLineSnippet
LOWcontext/mcp-js-sdk-docs.txt4315export function clientRegistrationHandler({
LOWcontext/mcp-js-sdk-docs.txt10212function promptArgumentsFromSchema(
LOWmcp-server/src/custom-sdk/schema-converter.js11export function convertSchemaToInstructions(schema, objectName = 'result') {
LOWmcp-server/src/custom-sdk/schema-converter.js56function generateExampleFromSchema(schema) {
LOWmcp-server/src/tools/update-subtask.js22export function registerUpdateSubtaskTool(server) {
LOWmcp-server/src/tools/clear-subtasks.js16export function registerClearSubtasksTool(server) {
LOWmcp-server/src/tools/remove-dependency.js16export function registerRemoveDependencyTool(server) {
LOWmcp-server/src/tools/add-dependency.js16export function registerAddDependencyTool(server) {
LOWmcp-server/src/tools/set-task-status.js27export function registerSetTaskStatusTool(server) {
LOWmcp-server/src/tools/initialize-project.js10export function registerInitializeProjectTool(server) {
LOWmcp-server/src/tools/response-language.js9export function registerResponseLanguageTool(server) {
LOWmcp-server/src/tools/complexity-report.js21export function registerComplexityReportTool(server) {
LOWmcp-server/src/tools/get-operation-status.js10export function registerGetOperationStatusTool(server, asyncManager) {
LOWmcp-server/src/tools/validate-dependencies.js16export function registerValidateDependenciesTool(server) {
LOWmcp-server/src/tools/analyze.js24export function registerAnalyzeProjectComplexityTool(server) {
LOWmcp-server/src/tools/utils.js175function getProjectRootFromSession(session, log) {
LOWmcp-server/src/tools/utils.js662function getRawProjectRootFromSession(session, log) {
LOWmcp-server/src/tools/utils.js686function withNormalizedProjectRoot(executeFn) {
LOWmcp-server/src/tools/remove-subtask.js20export function registerRemoveSubtaskTool(server) {
LOWmcp-server/src/tools/fix-dependencies.js16export function registerFixDependenciesTool(server) {
LOW…er/src/core/direct-functions/create-tag-from-branch.js32export async function createTagFromBranchDirect(args, log, context = {}) {
LOW…ver/src/core/direct-functions/validate-dependencies.js21export async function validateDependenciesDirect(args, log) {
LOW…r/src/core/direct-functions/analyze-task-complexity.js31export async function analyzeTaskComplexityDirect(args, log, context = {}) {
LOWmcp-server/src/core/utils/path-utils.js139export function resolveComplexityReportPath(args, log = silentLogger) {
LOWmcp-server/src/core/utils/path-utils.js235export function resolveComplexityReportOutputPath(
LOWtests/unit/init.test.js133 function mockCreateProjectStructure(projectName) {
LOWtests/unit/init.test.js199 function mockSetupMCPConfiguration(targetDir, projectName) {
LOWtests/unit/profiles/claude-integration.test.js52 function mockCreateClaudeStructure() {
LOWtests/unit/profiles/vscode-integration.test.js76 function mockCreateVSCodeStructure() {
LOWtests/unit/profiles/gemini-integration.test.js51 function mockCreateGeminiStructure() {
LOWtests/unit/profiles/windsurf-integration.test.js51 function mockCreateWindsurfStructure() {
LOWtests/unit/profiles/opencode-integration.test.js40 function mockCreateOpenCodeStructure() {
LOWtests/unit/profiles/cursor-integration.test.js86 function mockCreateCursorStructure() {
LOWtests/manual/prompts/prompt-test.js1826async function generateAndSaveHTMLReport() {
LOWscripts/test-claude-errors.js38function createErrorSimulationScript(errorType, failureCount = 2) {
LOWscripts/modules/ui.js76async function displayCurrentTagIndicator(tag, options = {}) {
LOWscripts/modules/ui.js405function formatDependenciesWithStatus(
LOWscripts/modules/ui.js2036function generateComplexityAnalysisPrompt(tasksData) {
LOWscripts/modules/ui.js2192function displayModelConfiguration(configData, allAvailableModels = []) {
LOWscripts/modules/ui.js2376async function displayMultipleTasksSummary(
LOWscripts/modules/ui.js2877export function displayCrossTagDependencyError(
LOWscripts/modules/ui.js2984export function displayInvalidTagCombinationError(
LOWscripts/modules/ui.js3007export function displayDependencyValidationHints(context = 'general') {
LOWscripts/modules/dependency-manager.js534function removeDuplicateDependencies(tasksData) {
LOWscripts/modules/dependency-manager.js559function cleanupSubtaskDependencies(tasksData) {
LOWscripts/modules/dependency-manager.js599async function validateDependenciesCommand(tasksPath, options = {}) {
LOWscripts/modules/dependency-manager.js1113function ensureAtLeastOneIndependentSubtask(tasksData) {
LOWscripts/modules/dependency-manager.js1163function validateAndFixDependencies(
LOWscripts/modules/dependency-manager.js1163function validateAndFixDependencies(
LOWscripts/modules/dependency-manager.js1279function findAllDependenciesRecursively(sourceTasks, allTasks, options = {}) {
LOWscripts/modules/dependency-manager.js1376function findTaskCrossTagConflicts(task, targetTag, allTasks) {
LOWscripts/modules/config-manager.js81export function setSuppressConfigWarnings(suppress) {
LOWscripts/modules/config-manager.js89export function isConfigWarningSuppressed() {
LOWscripts/modules/config-manager.js327function validateProviderModelCombination(providerName, modelId) {
LOWscripts/modules/config-manager.js345export function getSupportedModelsForProvider(providerName) {
LOWscripts/modules/config-manager.js359function validateClaudeCodeSettings(settings) {
LOWscripts/modules/config-manager.js487function getCodexCliSettingsForCommand(
LOWscripts/modules/config-manager.js497function getClaudeCodeSettingsForCommand(
LOWscripts/modules/config-manager.js513function getGrokCliSettingsForCommand(
LOWscripts/modules/config-manager.js567function isCodebaseAnalysisEnabled(session = null, projectRoot = null) {
81 more matches not shown…
Magic Placeholder Names13 hits · 88 pts
SeverityFileLineSnippet
HIGHCHANGELOG.md1864 export GROK_CLI_API_KEY="your-api-key-here"
HIGHcontext/mcp-protocol-repo.txt3089 "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
HIGHtests/unit/profiles/gemini-integration.test.js67 YOUR_ANTHROPIC_API_KEY: 'your-api-key-here',
HIGHtests/unit/profiles/gemini-integration.test.js68 YOUR_PERPLEXITY_API_KEY: 'your-api-key-here',
HIGHtests/unit/profiles/gemini-integration.test.js69 YOUR_OPENAI_API_KEY: 'your-api-key-here',
HIGHtests/unit/profiles/gemini-integration.test.js70 YOUR_GOOGLE_API_KEY: 'your-api-key-here',
HIGHtests/unit/profiles/gemini-integration.test.js71 YOUR_MISTRAL_API_KEY: 'your-api-key-here',
HIGHtests/unit/profiles/gemini-integration.test.js72 YOUR_AZURE_OPENAI_API_KEY: 'your-api-key-here',
HIGHtests/unit/profiles/gemini-integration.test.js74 YOUR_OPENROUTER_API_KEY: 'your-api-key-here',
HIGHtests/unit/profiles/gemini-integration.test.js75 YOUR_XAI_API_KEY: 'your-api-key-here',
HIGHtests/unit/profiles/gemini-integration.test.js76 YOUR_OLLAMA_API_KEY: 'your-api-key-here',
HIGHpackages/ai-sdk-provider-grok-cli/README.md34 export GROK_CLI_API_KEY="your-api-key"
HIGHpackages/ai-sdk-provider-grok-cli/README.md105 apiKey: 'your-api-key', // Optional if set via env/CLI
Synthetic Comment Markers12 hits · 72 pts
SeverityFileLineSnippet
HIGHCHANGELOG.md1932 Tasks and subtasks generated by Claude Code are now informed by actual codebase analysis, resulting in more accurate a
HIGHCHANGELOG.md1985 Tasks and subtasks generated by Claude Code are now informed by actual codebase analysis, resulting in more accurate a
HIGHCHANGELOG.md2135 - Tasks and subtasks generated by Claude Code are now informed by actual codebase analysis, resulting in more accurate
HIGHCHANGELOG.md2233 - Tasks and subtasks generated by Claude Code are now informed by actual codebase analysis, resulting in more accurate
HIGHscripts/modules/task-manager/update-task-by-id.js509 // Fix AI-generated subtask IDs that might be strings or use parent ID as prefix
HIGHscripts/modules/task-manager/update-task-by-id.js512 id: currentSubtaskId, // Override AI-generated ID with correct sequential ID
HIGHscripts/modules/task-manager/list-tasks.js510 // Increase priority column width as requested
HIGHscripts/modules/task-manager/list-tasks.js513 // Make dependencies column smaller as requested (-20%)
HIGH…ntegration/ai-operations/metadata-preservation.test.ts206 description: 'First step generated by AI',
HIGH…ntegration/ai-operations/metadata-preservation.test.ts218 description: 'Second step generated by AI',
HIGH…ntegration/ai-operations/metadata-preservation.test.ts378 // AI-generated fields
HIGH.github/workflows/claude-docs-updater.yml110 *This PR was automatically generated by Claude Code GitHub Action*
AI Slop Vocabulary17 hits · 40 pts
SeverityFileLineSnippet
MEDIUM…ipts/modules/task-manager/update-subtask-by-id.test.js120// Import mocked utils to leverage mocks later
LOWtests/e2e/run_e2e.sh37 # For now, just pass it along in case --analyze-log needs it later
MEDIUM…/tm-profiles/src/slash-commands/commands/team/goham.ts237# Final comprehensive checks
MEDIUM…/tm-profiles/src/slash-commands/commands/team/goham.ts254# Create comprehensive PR description
MEDIUMpackages/tm-core/src/utils/time.utils.ts16 // Use date-fns for robust formatting with proper edge case handling
MEDIUMapps/cli/src/utils/auto-update/restart.ts21 stdio: 'inherit', // Inherit stdin/stdout/stderr so it looks seamless
MEDIUMsrc/prompts/analyze-complexity.json48 "user": "{{#if hasCodebaseAnalysis}}## IMPORTANT: Codebase Analysis Required\n\nYou have access to powerful codebase
MEDIUMsrc/prompts/add-task.json64 "system": "You are a helpful assistant that creates well-structured tasks for a software development project. Generat
MEDIUMsrc/prompts/add-task.json65 "user": "{{#if hasCodebaseAnalysis}}## IMPORTANT: Codebase Analysis Required\n\nYou have access to powerful codebase
MEDIUMsrc/prompts/add-task.json65 "user": "{{#if hasCodebaseAnalysis}}## IMPORTANT: Codebase Analysis Required\n\nYou have access to powerful codebase
MEDIUMsrc/prompts/research.json49 "system": "You are an expert AI research assistant helping with a software development project. You have access to pr
MEDIUMsrc/prompts/parse-prd.json59 "system": "You are an AI assistant specialized in analyzing Product Requirements Documents (PRDs) and generating a st
MEDIUMsrc/prompts/parse-prd.json60 "user": "{{#if hasCodebaseAnalysis}}## IMPORTANT: Codebase Analysis Required\n\nYou have access to powerful codebase
MEDIUMsrc/prompts/update-task.json62 "system": "You are an AI assistant helping to update a software development task based on new context.{{#if useResear
MEDIUMsrc/prompts/update-task.json63 "user": "{{#if hasCodebaseAnalysis}}## IMPORTANT: Codebase Analysis Required\n\nYou have access to powerful codebase
MEDIUMsrc/prompts/update-subtask.json63 "system": "You are an AI assistant helping to update a subtask. You will be provided with the subtask's existing deta
MEDIUMsrc/prompts/update-subtask.json64 "user": "{{#if hasCodebaseAnalysis}}## IMPORTANT: Codebase Analysis Required\n\nYou have access to powerful codebase
Verbosity Indicators19 hits · 36 pts
SeverityFileLineSnippet
LOW…/tm-profiles/src/slash-commands/commands/team/goham.ts23## Step 1: Verify Connection & Authentication
LOW…/tm-profiles/src/slash-commands/commands/team/goham.ts35## Step 2: List Available Tasks
LOW…/tm-profiles/src/slash-commands/commands/team/goham.ts44## Step 3: Initialize Git Branch for Brief
LOW…/tm-profiles/src/slash-commands/commands/team/goham.ts60## Step 4: Task Loop (Repeat for Each Task)
LOW…/tm-profiles/src/slash-commands/commands/team/goham.ts219## Step 5: Complete All Tasks
LOW…/tm-profiles/src/slash-commands/commands/team/goham.ts223## Step 6: Final Verification & PR Creation
LOW…/tm-profiles/src/slash-commands/commands/team/goham.ts288## Step 7: Cleanup
LOW…/integration/auth/auth-token-refresh-singleton.test.ts239 // Step 1: AuthManager creates its singleton
LOW…/integration/auth/auth-token-refresh-singleton.test.ts243 // Step 2: StorageFactory creates API storage
LOW…/integration/auth/auth-token-refresh-singleton.test.ts247 // Step 3: Get the singleton client directly
LOW…core/src/modules/tasks/services/task-loader.service.ts75 // Step 1: Load task
LOW…core/src/modules/tasks/services/task-loader.service.ts87 // Step 2: Validate task status
LOW…core/src/modules/tasks/services/task-loader.service.ts93 // Step 3: Check for subtasks
LOW…core/src/modules/tasks/services/task-loader.service.ts99 // Step 4: Validate subtask structure
LOW…core/src/modules/tasks/services/task-loader.service.ts105 // Step 5: Analyze dependencies
LOW…ges/tm-core/src/modules/auth/services/oauth-service.ts154 // Step 1: Generate keypair for E2E encryption
LOW…ges/tm-core/src/modules/auth/services/oauth-service.ts158 // Step 2: Start the flow on the backend with our public key
LOW…ges/tm-core/src/modules/auth/services/oauth-service.ts178 // Step 3: Open browser with verification URL
LOW…ges/tm-core/src/modules/auth/services/oauth-service.ts196 // Step 4: Poll for completion
Self-Referential Comments8 hits · 24 pts
SeverityFileLineSnippet
MEDIUMtests/e2e/run_e2e.sh188# Create the log directory if it doesn't exist
MEDIUMtests/e2e/run_fallback_verification.sh35 # Define a placeholder if not found, so the script doesn't break immediately,
MEDIUMscripts/create-worktree.sh3# Create a git worktree for parallel Claude Code development
MEDIUMscripts/create-worktree.sh48 # Create a local branch from the remote and attach worktree
MEDIUMpackages/tm-bridge/src/add-tag-bridge.ts75 header: '# Create a Brief in Hamster Studio',
MEDIUM…/tm-profiles/src/slash-commands/commands/team/goham.ts51# Create a single branch for the entire brief (e.g., hamster-brief-YYYY-MM-DD or brief-specific name)
MEDIUM…src/slash-commands/commands/solo/install-taskmaster.ts80 # Create a test PRD
MEDIUM.github/workflows/forward-port.yml135 # Create the PR
Decorative Section Separators5 hits · 15 pts
SeverityFileLineSnippet
MEDIUMtests/e2e/run_e2e.sh66# ==========================================
MEDIUMtests/e2e/run_e2e.sh105# ==========================================
MEDIUMtests/e2e/run_e2e.sh211# ==========================================
MEDIUMtests/e2e/run_e2e.sh249# ==========================================
MEDIUMtests/e2e/run_e2e.sh326 # ========================================
Redundant / Tautological Comments9 hits · 13 pts
SeverityFileLineSnippet
LOWtests/e2e/run_e2e.sh114 # Check if a log file path was provided as the second argument
LOWtests/e2e/run_e2e.sh293 # Check if source .env file exists
LOWtests/e2e/run_e2e.sh300 # Check if sample PRD exists
LOWtests/e2e/run_fallback_verification.sh90 if [[ -n "${total_fallback_cost+x}" && "$total_fallback_cost" != "0.0" ]]; then # Check if var is set and not initia
LOWscripts/create-worktree.sh37# Check if worktree already exists
LOW…src/slash-commands/commands/solo/install-taskmaster.ts24 # Check if task-master command exists
LOW.github/workflows/release.yml114 # Check if we're in pre-release mode with the "rc" tag
LOW.github/workflows/log-issue-events.yml112 # Check if issue was closed automatically (by checking if closed_by is a bot)
LOW.github/workflows/log-issue-events.yml118 # Check if closed as duplicate by state_reason
Excessive Try-Catch Wrapping8 hits · 10 pts
SeverityFileLineSnippet
LOWcontext/mcp-protocol-repo.txt2100 except Exception as error:
LOWcontext/mcp-protocol-repo.txt2399 except Exception as exc:
LOWcontext/mcp-protocol-repo.txt2465 except Exception as exc:
LOWcontext/mcp-protocol-repo.txt2474 except Exception as exc:
LOWcontext/mcp-protocol-repo.txt2481 except Exception as exc:
LOWcontext/mcp-protocol-repo.txt3475 except Exception as e:
LOWcontext/mcp-protocol-repo.txt4401 except Exception:
MEDIUMcontext/mcp-protocol-repo.txt2460def message_handler():
Over-Commented Block8 hits · 8 pts
SeverityFileLineSnippet
LOWcontext/fastmcp-docs.txt3321 // path: "/path/to/image.png",
LOWtests/e2e/run_fallback_verification.sh1#!/bin/bash
LOWdocs/configuration.md201ANTHROPIC_API_KEY=sk-ant-api03-your-key-here
LOWscripts/modules/ai-services-unified.js641 messages.push({
LOWpackages/tm-core/POC-STATUS.md101### Current CLI Structure
LOW…/integration/auth/auth-token-refresh-singleton.test.ts101 const config = createApiStorageConfig();
LOW…s/tm-core/src/common/utils/project-root-finder.test.ts241 // IMPORTANT: For .env loading (e.g., TM_BASE_DOMAIN for auth),
LOWsrc/ai-providers/anthropic.js61// TODO: Implement streamAnthropicObject if needed and supported well by the SDK for Anthropic.
Fake / Example Data1 hit · 1 pts
SeverityFileLineSnippet
LOW…/tests/integration/workflow/autopilot-workflow.test.ts93 execSync('git config user.email "test@test.com"', {