Skip to main content
Glama

pm.critical_path

Read-onlyIdempotent

Calculate a critical path method (CPM) schedule from task dependencies and return early/late starts and finishes, slack, total duration, and zero-slack critical tasks.

Instructions

작업 의존 관계로 주공정법(CPM) 일정을 계산해 각 작업의 ES, EF, LS, LF, 여유(slack)와 총 기간, 여유가 0인 주공정 작업 목록을 돌려준다. tasks는 {id, duration(Decimal 문자열, 0 이상, 단위 통일), predecessors(선행 id 목록)}의 리스트이며 결과는 위상 정렬 순서다. 반올림하지 않는다. 순환 의존이나 없는 선행 id는 오류이고, 작업 간 지연(lag)과 시작 제약은 지원하지 않는다.

Input Schema

NameRequiredDescriptionDefault
tasksYes

Output Schema

NameRequiredDescriptionDefault
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
traceYes계산 근거(tool, formula, inputs, steps, output)
task_detailsYes
critical_pathYes
total_durationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, closed-world, so the description correctly spends its words elsewhere: no rounding, results returned in topological order, and precise error conditions for cycles and missing predecessor ids. It does not discuss determinism guarantees beyond the sort order or behavior with duplicate ids, but the added context is genuinely useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose and outputs, then the input shape, then edge cases. Each sentence contributes information not available elsewhere; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one parameter, an output schema present, and annotations covering the safety profile, the remaining burden is input shape and failure modes — both supplied. Nothing an agent needs in order to call this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the schema declares only an untyped array of objects, so the description carries the full burden — and does: it defines the task record as {id, duration (Decimal string, ≥0, consistent units), predecessors (list of predecessor ids)}. Constraints on value format and units are exactly what the schema omits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (작업 의존 관계로 주공정법(CPM) 일정을 계산) and enumerates exactly what is returned: ES, EF, LS, LF, slack, total duration, and the zero-slack critical task list. An agent can immediately distinguish this from siblings like pm.pert, pm.evm, and pm.monte_carlo_schedule without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly bounds the tool's applicability: no lag between tasks, no start constraints, cycles or unknown predecessor ids are errors. That tells the agent when not to use it. It stops short of naming alternatives (e.g., pm.pert for three-point estimates, pm.monte_carlo_schedule for probabilistic durations), leaving that routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools