forgehub. A small, independent toolbox

Prerequisite Path

How to find critical tasks with Prerequisite Path

Enter labeled tasks with whole-minute durations, check the tasks that must finish before each one, then choose Analyze. Prerequisite Path shows the dependency duration lower bound, earliest and latest offsets, and every zero-slack task. Use the built-in example to understand the results, then analyze your own work and save the text report before leaving the tab.

Open Prerequisite Path

Trace the four-task opening example

Choose Load example, then Analyze. Loading replaces the current worksheet and clears its results; it does not calculate automatically. The example contains A, Preparation, for 30 minutes; B, Setup, for 20; C, Briefing, for 10; and D, Opening, for 15. B and C each require A, while D requires both B and C.

Preparation occupies minutes 0 to 30. Setup can then run from 30 to 50 while Briefing runs from 30 to 40. Opening waits for both, so it occupies 50 to 65. The project lower bound is 65 minutes, even though adding every duration gives 75. The difference comes from allowing Setup and Briefing to overlap.

Translate your work into prerequisite checkboxes

When ready to replace the sample, choose Reset all. This discards the worksheet and starts with one blank task. Enter its label and Minutes value, then use + Add task for the remaining work. The limits are 1 to 30 tasks, labels of 1 to 80 characters and durations of 1 to 10,000 whole minutes. Use 15 rather than 15.5 or a duration with a unit suffix.

Under Prerequisites for a task, check the IDs of tasks that must finish first. To reproduce the example, check A under B and C, then check B and C under D. Leaving prerequisites unchecked makes that task eligible to start at zero. Up to 100 links are supported. IDs stay stable within the tab, so deleting a task does not renumber the others.

Read offsets and slack together

Choose Analyze after completing the worksheet. In the timing table, ES and EF mean earliest start and finish; LS and LF mean latest start and finish without extending the calculated whole-project duration. These are minute offsets from a hypothetical start at zero, not clock times. The earliest-start timeline prints each task's exact interval.

In the example, C has ES 30, EF 40, LS 40 and LF 50, giving 10 minutes of total slack. Briefing could start at minute 40 and still finish before Opening begins at 50. A, B and D have zero slack and appear as Critical. Red bars reinforce that status; the text and table let you read it without relying on color.

All terminal tasks share the same calculated project finish, including disconnected work. A separate five-minute task added to this 65-minute example would have ES 0 and LS 60, giving 60 minutes of slack. Positive slack means room relative to the modeled finish; it does not mean the task can be omitted.

Check what the calculated finish assumes

The 65-minute result assumes enough capacity to perform Setup and Briefing simultaneously and that the fixed durations are accurate. If one person must do both, the app does not resolve that staffing conflict. It has no people, calendars, dates or resource assignments. Treat the result as a dependency lower bound when discussing a practical plan.

Every dependency is finish-to-start with zero lag: the successor may begin as soon as its prerequisites finish. The app identifies every zero-slack task and highlights tight links between critical tasks, meaning the predecessor's earliest finish equals the successor's earliest start. It does not enumerate lists of critical paths.

Repair the worksheet and analyze again

If analysis reports an invalid duration or another input error, correct the entry and choose Analyze again. Inputs are preserved after validation fails. A cycle means the checked prerequisites form a loop: for example, making A depend on D in the sample prevents the work from getting started. The error reports a concrete cycle; remove an incorrect link from that loop.

A referenced task cannot be deleted until you remove the prerequisite links pointing to it. Follow the task's reference message to find those dependents. Editing labels, durations or links, adding tasks, or removing tasks clears the previous analysis and disables export. Reanalyze after the final correction so the report describes the current worksheet.

Keep the complete timing record

After a successful analysis, choose Download .txt to save prerequisite-path.txt. The report includes task inputs, timing offsets, slack, critical status, dependency links and assumptions. It uses the same complete text shown under Complete selectable plain-text report. If browser settings prevent saving, open that disclosure and select the report text manually.

Save before resetting, reloading or leaving the session. Inputs and results live only in tab memory; there are no saved projects, imports or history. A downloaded report is a record you manage separately, not a project file the app can reopen. Calculation needs no account, upload or permission prompt.

AI-assisted ForgeHub editorial. App capabilities were checked against its implementation; this guide is not an independent review.

Frequently asked questions

Can two parallel branches both be critical?

Yes. If both branches have zero total slack, both are critical. For example, changing Briefing in the sample from 10 to 20 minutes makes B and C finish at minute 50, so both control the start of D. The lower bound remains 65 minutes.

Does Load example preserve my current tasks?

No. It replaces the worksheet with Preparation, Setup, Briefing and Opening, and clears the current result. Save a needed report first, then choose Analyze after loading the sample.

Why is Download .txt disabled after an edit?

Edits clear the previous result and report to prevent exporting stale timing. Complete or correct your inputs, then choose Analyze again to enable export.

Can I enter dates or reopen a saved report?

No. Prerequisite Path analyzes whole-minute durations from a hypothetical zero and has no calendars or imports. The text download preserves a readable record, but reloading the app discards the editable worksheet.