github TypeScript analyzed cd5af35

ecorkran/context-forge

github

Automate and accelerate complex projects. Fast, effective, and consistently structured. MCP server, Claude Skills, CLI. JSON output available for AI agents.

maintainer
ecorkran
license
MIT
first seen
2026-06-20
last seen
2026-08-11
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 34 tools
transport stdio counts 34 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • agent_onboard
  • agent_quickstart
  • config_get
  • config_set
  • context_build
  • context_summarize
  • guide_install
  • guide_status
  • guide_update
  • introspection_documents
  • introspection_frontmatter
  • introspection_future_work
  • introspection_slice_plan
  • introspection_tasks
  • project_create
  • project_get
  • project_list
  • project_schema
  • project_structure
  • project_update
  • prompt_get
  • prompt_list
  • server_version
  • storage_backup
  • template_preview
  • workflow_check
  • workflow_future
  • workflow_next
  • workflow_status
  • worktree_get
  • worktree_init
  • worktree_list
  • worktree_rm
  • worktree_update
skills & danger signals github-tarball
code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 387

filesystem 79

  • fs ecorkran-context-forge-cd5af35/lib/vite/vite-plugin-content.ts :3 import fs from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/commands/arch.ts :2 import { readdir } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/commands/commandInstaller.ts :1 import * as fs from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/commands/config.ts :2 import { existsSync, statSync } from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/commands/init.ts :1 import * as fs from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/commands/plan.ts :2 import { readdir } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/commands/project.ts :4 import { readFile } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/commands/setup-ide.ts :1 import * as fs from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/commands/task.ts :2 import { readdir } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/commands/update.ts :3 import { existsSync } from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/commands/worktree.ts :2 import { existsSync } from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/cli/src/utils/phaseShorthand.ts :1 import * as fs from 'node:fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/cli/tests/commands/commandInstaller.test.ts :2 import * as fs from 'node:fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/cli/tests/commands/list-arch-index-targeting.test.ts :2 import { mkdtempSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/cli/tests/commands/list-derived-status.test.ts :2 import { mkdtempSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/config/ConfigManager.ts :1 import { readFile, writeFile, mkdir } from 'fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/guides/GuideDetector.ts :2 import { existsSync, readFileSync } from 'fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/guides/GuideManager.ts :3 import { mkdirSync, rmSync, existsSync } from 'fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/guides/strategies/CloneStrategy.ts :2 import { existsSync } from 'fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/guides/strategies/SubmoduleStrategy.ts :2 import { existsSync, readFileSync } from 'fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/guides/strategies/TarballStrategy.ts :2 import { existsSync, readFileSync, writeFileSync, mkdirSync, rmSync } from 'fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/ArtifactIntrospector.ts :2 import { readdir } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/ConsistencyChecker.ts :2 import { existsSync } from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/ProjectModelBuilder.ts :1 import { readdir, access } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/WorkflowNavigator.ts :2 import { existsSync } from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/parsers/documentDetector.ts :1 import { readdir, access } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/parsers/frontmatterParser.ts :1 import { readFile } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/parsers/futureWorkParser.ts :1 import { readFile } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/parsers/overviewParser.ts :1 import { readFile } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/parsers/slicePlanParser.ts :1 import { readFile } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/parsers/taskFileParser.ts :1 import { readFile } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/introspection/writers/markdownWriter.ts :1 import { readFile, writeFile } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/schema/frontmatterFileValidator.ts :2 import { readdir } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/schema/resolveFileByIndex.ts :1 import { readdirSync } from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/services/ContextEmbedder.ts :1 import { readFile } from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/services/CoreServiceFactory.ts :1 import * as fs from 'fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/services/ProjectPathService.ts :1 import * as fs from 'fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/services/StatementManager.ts :1 import * as fs from 'fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/services/SystemPromptParser.ts :1 import * as fs from 'fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/services/WorktreeService.ts :1 import { existsSync } from 'node:fs';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/storage/FileProjectStore.ts :1 import { copyFile, mkdir } from 'fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/storage/FileStorageService.ts :1 import { readFile, writeFile, copyFile, rename, unlink, mkdir } from 'fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/storage/backupService.ts :1 import { copyFile, readdir, unlink, readFile } from 'fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/core/src/storage/storagePaths.ts :2 import { existsSync, mkdirSync as fsMkdirSync, renameSync } from 'fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/config/ConfigManager.test.ts :2 import { mkdtemp, rm, writeFile, mkdir, readFile } from 'fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/guides/GuideDetector.test.ts :16 import { existsSync, readFileSync } from 'fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/guides/GuideManager.test.ts :56 import { mkdirSync, existsSync, rmSync } from 'fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/guides/strategies/CloneStrategy.test.ts :14 import { existsSync } from 'fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/guides/strategies/SubmoduleStrategy.test.ts :16 import { existsSync, readFileSync } from 'fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/guides/strategies/TarballStrategy.test.ts :34 import { existsSync, readFileSync, writeFileSync } from 'fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/introspection/ConsistencyChecker.applyFixesIntegration.test.ts :2 import { mkdtemp, mkdir, writeFile, readFile, rm } from 'node:fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/introspection/ProjectModelBuilder.test.ts :3 import { mkdtempSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/introspection/WorkflowNavigator.test.ts :3 import { mkdtempSync, mkdirSync, writeFileSync, readFileSync } from 'node:fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/introspection/documentDetector.test.ts :2 import { mkdtempSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/introspection/reviewGate.cutoffIntegration.test.ts :2 import { mkdtempSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/introspection/reviewGate.test.ts :2 import { mkdtempSync, mkdirSync, writeFileSync } from 'node:fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/introspection/writers/markdownWriter.test.ts :3 import { mkdtemp, writeFile, readFile, rm } from 'node:fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/pipeline-integration.test.ts :2 import { mkdtemp, rm, writeFile } from 'fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/schema/frontmatterFileValidator.test.ts :2 import { mkdtemp, mkdir, writeFile, rm } from 'node:fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/schema/resolveFileByIndex.test.ts :12 import { readdirSync } from 'node:fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/services/ContextEmbedder.test.ts :2 import { mkdtemp, writeFile, mkdir, rm } from 'node:fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/services/ContextProfileParser.test.ts :2 import { readFileSync } from 'node:fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/services/ProjectPathService.test.ts :2 import { mkdtemp, rm, mkdir, writeFile } from 'fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/services/StatementManager.test.ts :2 import { mkdtemp, rm, writeFile, readFile, mkdir } from 'fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/services/SystemPromptParser.test.ts :2 import { writeFile, mkdtemp, rm } from 'fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/storage/FileProjectStore.test.ts :2 import { mkdtemp, rm, writeFile } from 'fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/storage/FileStorageService.test.ts :2 import { mkdtemp, rm, readFile, writeFile } from 'fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/storage/backupService.test.ts :102 expect(fs.unlink).not.toHaveBeenCalled();
  • fs (weak) ecorkran-context-forge-cd5af35/packages/core/tests/storage/storagePaths.test.ts :2 import { mkdtemp, rm, mkdir, writeFile, readFile } from 'fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/electron/src/lib/ui-adapters/vite/vite-plugin-content.ts :3 import fs from 'node:fs/promises';
  • fs ecorkran-context-forge-cd5af35/packages/electron/src/main/ipc/projectHandlers.ts :2 import { watch, type FSWatcher } from 'node:fs'
  • fs ecorkran-context-forge-cd5af35/packages/electron/src/main/main.ts :10 import { readdir, stat } from 'node:fs/promises'
  • fs ecorkran-context-forge-cd5af35/packages/electron/src/main/services/context/PromptFileManager.ts :1 import * as fs from 'fs';
  • fs ecorkran-context-forge-cd5af35/packages/electron/src/main/services/storage/backupService.ts :1 import { copyFile, readdir, unlink, readFile } from 'fs/promises'
  • fs (weak) ecorkran-context-forge-cd5af35/packages/electron/tests/unit/main/services/project/ProjectPathService.test.ts :18 import * as fs from 'fs';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/electron/tests/unit/services/storage/backupService.test.ts :96 expect(fs.unlink).not.toHaveBeenCalled()
  • fs (weak) ecorkran-context-forge-cd5af35/packages/mcp-server/tests/helpers/integrationSetup.ts :3 import { mkdtemp, readFile, writeFile, rm } from 'fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/packages/mcp-server/tests/serverLifecycle.test.ts :3 import { mkdtemp, writeFile, rm } from 'node:fs/promises';
  • fs (weak) ecorkran-context-forge-cd5af35/scripts/frontmatter-corpus-diff.mjs :10 import { readFile, readdir, stat } from 'node:fs/promises';

shell / exec 9

  • shell ecorkran-context-forge-cd5af35/packages/cli/src/commands/init.ts :3 import { execFileSync } from 'node:child_process';
  • shell ecorkran-context-forge-cd5af35/packages/cli/src/commands/setup-ide.ts :4 import { execFileSync } from 'node:child_process';
  • shell ecorkran-context-forge-cd5af35/packages/cli/src/commands/update.ts :2 import { execSync } from 'node:child_process';
  • shell ecorkran-context-forge-cd5af35/packages/cli/src/commands/worktree.ts :4 import { execFileSync } from 'node:child_process';
  • shell ecorkran-context-forge-cd5af35/packages/core/src/guides/branchGuard.ts :2 import { execFile } from 'child_process';
  • shell ecorkran-context-forge-cd5af35/packages/core/src/guides/gitExec.ts :2 import { execFile } from 'child_process';
  • shell (weak) ecorkran-context-forge-cd5af35/packages/core/tests/guides/branchGuard.test.ts :3 // Mock child_process.execFile (used by isAncestor)
  • shell (weak) ecorkran-context-forge-cd5af35/packages/core/tests/guides/gitExec.test.ts :4 // Mock child_process.execFile
  • shell (weak) ecorkran-context-forge-cd5af35/packages/mcp-server/tests/serverLifecycle.test.ts :2 import { spawn, type ChildProcess } from 'node:child_process';

network 2

  • net ecorkran-context-forge-cd5af35/packages/cli/src/commands/update.ts :37 const response = await globalThis.fetch(
  • net ecorkran-context-forge-cd5af35/packages/core/src/guides/strategies/TarballStrategy.ts :120 const response = await fetch(url, {

tool registrations 34

  • agent_onboard ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/agentOnboardTool.ts :67
  • agent_quickstart ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/agentQuickstartTool.ts :54
  • config_get ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/configTools.ts :13
  • config_set ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/configTools.ts :58
  • context_build ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/contextTools.ts :105
  • template_preview ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/contextTools.ts :174
  • prompt_list ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/contextTools.ts :235
  • prompt_get ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/contextTools.ts :267
  • guide_status ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/guideTools.ts :41
  • guide_install ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/guideTools.ts :86
  • guide_update ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/guideTools.ts :126
  • introspection_slice_plan ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/introspectionTools.ts :92
  • introspection_tasks ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/introspectionTools.ts :132
  • introspection_frontmatter ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/introspectionTools.ts :156
  • introspection_documents ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/introspectionTools.ts :180
  • introspection_future_work ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/introspectionTools.ts :229
  • project_structure ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/introspectionTools.ts :275
  • project_list ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/projectTools.ts :42
  • project_create ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/projectTools.ts :65
  • project_get ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/projectTools.ts :125
  • project_update ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/projectTools.ts :180
  • project_schema ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/projectTools.ts :324
  • context_summarize ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/stateTools.ts :9
  • server_version ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/versionTool.ts :4
  • workflow_future ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/workflowTools.ts :57
  • workflow_status ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/workflowTools.ts :122
  • workflow_next ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/workflowTools.ts :169
  • workflow_check ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/workflowTools.ts :216
  • storage_backup ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/workflowTools.ts :308
  • worktree_list ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/worktreeTools.ts :60
  • worktree_get ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/worktreeTools.ts :100
  • worktree_init ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/worktreeTools.ts :128
  • worktree_update ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/worktreeTools.ts :187
  • worktree_rm ecorkran-context-forge-cd5af35/packages/mcp-server/src/tools/worktreeTools.ts :260

install hooks 1

  • postinstall ecorkran-context-forge-cd5af35/packages/electron/package.json :14 echo 'Skipping native deps for template'