← Work Back
API
Tokens

Run Work Back from your own code

Both metered lanes are available over HTTP and each returns one JSON object. The division of labour: the page buckets every milestone by weeks before doors-open, works each track back from its terminal milestone, checks every gate, holds every commitment to a latest-safe date and every checkpoint to a date, a condition, an action and an owner - all free, in workkit.js. The run writes the memo or the sheet; the page then holds the reply to its own plan (workreply.js).

Base URL and the response shape

Every endpoint lives under https://api.skillsafe.ai/v1/app-api, and every response has one shape:

{ "ok": true,  "data":  { ... } }
{ "ok": false, "error": { "code": "...", "message": "..." } }

The token is minted for this app (the guest call takes {"slug":"work-back"}), so no slug header is needed afterwards. Send it as Authorization: Bearer …. The run body is the input object, sent bare.

StatusCodeMeaning
400validation_errorThe body is not a JSON object, or a required key (task, event, plan, facts) is missing.
401unauthorizedNo token, or a stale one. Mint a guest token or sign in again.
402insufficient_creditsThe balance is under min_credits. Price with /estimate first.
403forbiddenA guest token tried to run: both lanes are metered and need a personal sign-in.
404not_foundUnknown job id.
429rate_limitedBack off and retry.
5xxserver_errorTransient. Retry with the same Idempotency-Key so a retry never double-bills.

The task field comes first

Two lanes - plan (the work-back plan memo) and sheet (the checkpoint sheet for the track owners; needs at least one checkpoint). A missing or unknown task is answered as plan. Both lanes send the same four fields.

The input

FieldRequiredWhat
taskyesplan or sheet. If it is missing or neither, do plan and set "task": "plan".
eventyesthe event, its doors-open date, the as-of date, the team, the commitments in play and the external deadlines.
planyesevery track with its owner, terminal milestone and milestones, the irreversible commitments, the gates as entered and the checkpoints as entered, each with the page's status.
factsyesthe page's mode, granularity, buffers, replanning menu, implied gates, levers when behind, the four plan gates, the signals to record and every finding tagged [fix], [check] or [info].
retry_notenooptional; if present, your previous reply was unusable - follow it.

The rules the model applies

House rules

The replies

plan

  1. summary - one sentence, at most 35 words: the mode, the granularity, and the first thing to settle.
  2. anchor - doors (the page's doors-open date), mode (fresh or replan, the page's mode), note (one sentence: the external deadlines that pull tracks earlier, or that none were entered).
  3. granularity - pick (gated, milestone or critical, the page's pick), note (one sentence; name any deleted rung and why).
  4. tracks - one object per track in the page's order: track (exactly), owner (the page's owner; several names joined with ", "; "none" when the page has none), terminal (the page's terminal milestone exactly), behind (the page's late count as a number), next (one short sentence: the late milestone to recover, or the earliest open milestone with its bucket, or that the track is done).
  5. gates - one object per entered gate in the page's order: prerequisite and blocked (as the page lists them), status (the page's status word exactly, without its reason), note (one short sentence: the page's reason, or what the gate protects).
  6. missing - the implied gates the page reports as not on the gate list, each written "prerequisite => blocked"; [] when none.
  7. commitments - one object per commitment in the page's order: commitment (exactly), latest (the page's latest-safe date, or null when missing), owner (the page's owner, or "none"), note (one short sentence: plan to the latest-safe date, or what to fix).
  8. buffers - ladder and padding (the page's statuses exactly), note (one sentence; keep delayed commitment and the ladder as two different tools).
  9. replanning - cadence (the page's status for the cadence variance review exactly), note (one sentence).
  10. levers - on a replan, the page's levers in spending order, one short string each; [] on a fresh plan.
  11. measurement - one object per plan gate in the page's order: gate (its short name, such as "Gate coverage"), pass (true or false, as the page says).
  12. signals - 2 or 3 short strings, the page's signals, each with what it would change at the next checkpoint (your design).
  13. caveats - at most 4 short strings: every [fix] finding first, then the most important [check] findings. [] when there are none of either.
{
  "task": "plan",
  "summary": "one sentence",
  "anchor": { "doors": "YYYY-MM-DD", "mode": "fresh", "note": "one sentence" },
  "granularity": { "pick": "gated", "note": "one sentence" },
  "tracks": [ { "track": "Program", "owner": "a name", "terminal": "Program announced", "behind": 0, "next": "one short sentence" } ],
  "gates": [ { "prerequisite": "a milestone", "blocked": "a milestone", "status": "ok", "note": "one short sentence" } ],
  "missing": [ "a milestone => a milestone" ],
  "commitments": [ { "commitment": "Catering order", "latest": "YYYY-MM-DD", "owner": "a name", "note": "one short sentence" } ],
  "buffers": { "ladder": "promoted", "padding": "none", "note": "one sentence" },
  "replanning": { "cadence": "deleted", "note": "one sentence" },
  "levers": [],
  "measurement": [ { "gate": "Gate coverage", "pass": true } ],
  "signals": [ "what to record and what it changes" ],
  "caveats": [ "a caveat" ]
}

The page holds it to its own plan: every track in order with its owner, terminal milestone and late count, every gate status, the count of missing gates, every latest-safe date, the granularity, ladder, padding and cadence statuses, the levers and the four plan gates; no date or number may appear that the input does not hold.

sheet

  1. title - a short title naming the event.
  2. checkpoints - one object per entered checkpoint in the page's order: date (the page's date exactly), condition (one measurable check - the page's, lightly edited; when the page flags it as missing or not measurable, propose one and end it with "(your design)"), action (exactly what fires on failure - the page's, lightly edited; when the page flags it as missing, not a pre-written action, or moving an announced date, replace it with a scope or tier action and end it with "(your design)"), owner (the page's owner, or "to be named"), anchor (the page's anchor milestone, or "").
  3. added - 0 to 2 extra checkpoints, only where a fix-level finding, a missing gate or an at-risk gate has no checkpoint watching it, each on a milestone date from the plan that carries no checkpoint (an announcement, early-bird close, one month out): date (that milestone's date exactly), condition, action (ending "(your design)"), owner (that track's owner from the input, or "to be named"). [] when none is needed.
  4. replan - one or two sentences: what happens when a checkpoint fires the replan - the page's levers in order when it lists them, otherwise latest-safe slack, then a tier downgrade, then gate-level cuts; an announced date never moves.
  5. message - a few sentences to the track owners introducing the sheet and asking them to keep the shared tracker current; no new dates.
  6. note - one sentence, at most 30 words, for the organizers: what to settle before the sheet goes out.
{
  "task": "sheet",
  "title": "Checkpoint sheet - an event",
  "checkpoints": [ { "date": "YYYY-MM-DD", "condition": "one check", "action": "what fires", "owner": "a name", "anchor": "a milestone" } ],
  "added": [],
  "replan": "one or two sentences",
  "message": "a few sentences",
  "note": "one sentence"
}

The page requires every checkpoint in order with its date and owner, a labelled replacement for every action or condition the page flags, no move of an announced date, at most two added checkpoints and each on a milestone date, and a replan procedure and a message.

Worked examples - every lane, every sample

These are the page's three free samples (fictional events, sponsors and people; every date is illustrative). Each input is exactly what the page sends; each reply is the saved reply the sample replays, shipped as the validating model wrote it; the last line is the page's own check. Every sample has both lanes.

Riverbend DevDays (an annual community conference) - plan

Dependency-gated milestone plan; a fresh plan; 0 of 7 tracks behind; 4 checkpoints; 0 of 4 plan gates pass.

Input:

{
 "task": "plan",
 "event": "Event: Riverbend DevDays 2027; doors-open 2027-06-10 (locked); recurring edition; one edition of a compounding annual event\nAs of: 2026-11-02, S-31 (31 weeks before doors-open)\nTeam: community-run; 6 organizers; paid staff no; standing team check-in no\nCommitments in play: more than one venue no; a contract with a penalty clause no; budget depends on revenue not yet booked yes; Good/Better/Best tiers costed yes; date announced no\nExternal deadlines: Venue holds the date until 2026-11-30 (S-27) [Venue & logistics]; Anchor sponsors close their budgets 2027-01-31 (S-18) [Sponsors]",
 "plan": "Tracks, each worked backward from its terminal milestone (S-N = weeks before doors-open):\nVenue & logistics | owner: Priya | terminal: Final walkthrough done S-1 | behind: 0\n  S-1 2027-06-01 - Final walkthrough done - open\n  S-2 2027-05-27 - Catering order placed - open\n  S-3 2027-05-20 - Badges printed - open - padded 10 days (external lead time)\n  S-4 2027-05-10 - Build-up plan written - open\n  S-28 2026-11-20 - Venue contract signed - open\nProgram | owner: Tomasz | terminal: Program announced S-10 | behind: 0\n  S-10 2027-04-01 - Program announced - open\n  S-11 2027-03-20 - Speakers confirmed - open\n  S-16 2027-02-15 - CFP closes - open\n  S-25 2026-12-15 - CFP opens - open - padded 14 days\n  S-27 2026-12-01 - CFP designed - open\nSponsors | owner: Amara | terminal: Agreements signed S-10 | behind: 0\n  S-10 2027-03-31 - Agreements signed - open\n  S-21 2027-01-10 - Outreach begins - open\n  S-26 2026-12-10 - Prospectus assembled - open\nMarketing | owner: Jun | terminal: Final push live S-2 | behind: 0\n  S-2 2027-05-27 - Final push live - open\n  S-9 2027-04-02 - Program-driven push live - open\n  S-20 2027-01-15 - Date announced - open\n  S-27 2026-12-01 - Channels ready - open\nTicketing | owner: Lea | terminal: Final headcount frozen S-2 | behind: 0\n  S-2 2027-05-25 - Final headcount frozen - open\n  S-12 2027-03-15 - Early-bird closed - open\n  S-20 2027-01-20 - Sales open - open\n  S-22 2027-01-05 - Payment infrastructure live - open\nBudget | owner: Amara | terminal: Good/Better/Best tiers costed S-27 | behind: 0\n  S-27 2026-12-01 - Good/Better/Best tiers costed - open\n  S-29 2026-11-15 - Draft budget approved - done\nTeam & volunteers | owner: Priya, Jun | terminal: Volunteer briefing held S-0 | behind: 0\n  S-0 2027-06-08 - Volunteer briefing held - open\n  S-3 2027-05-15 - Day-of volunteers recruited - open\nIrreversible commitments:\nVenue deposit | track Venue & logistics | earliest 2026-11-20 | latest-safe 2027-03-31 | planned 2026-11-20 | owner Priya | page status: early\nCatering order | track Venue & logistics | earliest 2027-04-01 | latest-safe 2027-05-27 | planned 2027-05-27 | owner Priya | page status: held\nT-shirt print run | track Marketing | earliest 2027-03-01 | latest-safe 2027-05-01 | planned - | owner Jun | page status: held\nLivestream contractor | track Program | earliest 2027-01-15 | latest-safe MISSING | planned - | owner Tomasz | page status: fix | issues: no latest-safe date\nGates as entered (prerequisite => blocked):\n1. Payment infrastructure live => Date announced | page status: ok\n2. Venue contract signed => Date announced | page status: ok\n3. Draft budget approved => Prospectus assembled | page status: ok\n4. Program announced => Program-driven push live | page status: ok\n5. CFP closes => Speakers confirmed | page status: same track | reason: both sides sit on Program - that is the track's own chain, not a cross-track gate\nCheckpoints as entered:\n1. 2027-01-31 (S-18) | condition: Anchor-sponsor revenue below the Better-tier threshold | action: Downgrade Best to Better and cut the evening social | owner: Amara | page status: complete | anchored on: Anchor sponsors close their budgets\n2. 2027-03-15 (S-12) | condition: Early-bird sales below expectation at close | action: Escalate the community outreach push and hold catering at Good-tier quantities | owner: Jun | page status: complete | anchored on: Early-bird closed\n3. 2027-04-15 (S-8) | condition: Ticket sales | action: Review ticket sales | owner: MISSING | page status: incomplete | issues: \"Ticket sales\" is not a measurable condition; \"Review ticket sales\" is not a pre-written action; no owner\n4. 2027-05-13 (S-4) | condition: Any gate into the final month still unmet | action: Fire the replan procedure | owner: Priya | page status: complete | anchored on: Build-up plan written",
 "facts": "Mode: fresh plan; tracks behind: 0 of 7; gates at risk: 0\nGranularity: pick gated - Dependency-gated milestone plan; rungs: Dependency-gated milestone plan default; Milestone-only plan available; Task-level critical path available\nBuffers: delayed commitment default; scope-tier ladder promoted; milestone padding misused\nReplanning: pre-written checkpoints default; cadence variance review deleted; event-driven replan kept as the floor\nImplied sequencing gates: Payment infrastructure live => Date announced (sourced, on the gate list); Venue contract signed => Date announced (sourced, on the gate list); Draft budget approved => Prospectus assembled (standard sequencing, on the gate list); Program announced => Program-driven push live (standard sequencing, on the gate list); Final headcount frozen => Catering order placed (standard sequencing, NOT on the gate list)\nPlan gates (0 of 4): Gate coverage FAILS; Commitment coverage FAILS; Checkpoint completeness FAILS; Ownership FAILS\nSignals to record: Buffer consumed per track at each checkpoint (self-set); Tracks behind plan: 0 of 7 today (self-set); Gates at risk: 0 today (self-set)\nFindings (17):\n[info] annual (anchor): An edition of a compounding annual event: a moved date or a visibly cut program costs more trust here than for a one-off.\n[check] shared (ownership): More than one owner: Team & volunteers (Priya, Jun) - name exactly one accountable owner per track.\n[info] terminal_early (tracks): Program ends at S-10 (Program announced) - give each track a terminal milestone at or near doors-open.\n[info] terminal_early (tracks): Sponsors ends at S-10 (Agreements signed) - give each track a terminal milestone at or near doors-open.\n[info] terminal_early (tracks): Budget ends at S-27 (Good/Better/Best tiers costed) - give each track a terminal milestone at or near doors-open.\n[check] gate_same (gates): Gate \"CFP closes => Speakers confirmed\": both sides sit on Program - that is the track's own chain, not a cross-track gate.\n[check] implicit (gates): An implicit dependency: Final headcount frozen => Catering order placed (Final headcount => catering and swag orders, standard sequencing) is not on the gate list.\n[check] commit_early (commitments): \"Venue deposit\" is planned for 2026-11-20 but stays safe until 2027-03-31 - committing at the earliest moment quietly spends the reversibility. Plan to the latest-safe date.\n[fix] commit_fix (commitments): Commitment \"Livestream contractor\": no latest-safe date.\n[check] quiet (tracks): Venue & logistics has nothing between S-28 (Venue contract signed) and S-4 (Build-up plan written) - 24 weeks unwatched; the drift that sinks an annual event lives in the quiet middle, not the final sprint.\n[check] quiet (tracks): Sponsors has nothing between S-21 (Outreach begins) and S-10 (Agreements signed) - 11 weeks unwatched; the drift that sinks an annual event lives in the quiet middle, not the final sprint.\n[check] quiet (tracks): Marketing has nothing between S-20 (Date announced) and S-9 (Program-driven push live) - 11 weeks unwatched; the drift that sinks an annual event lives in the quiet middle, not the final sprint.\n[info] tracker (granularity): Whatever the rung, publish the plan in the simplest shared tracker the whole team will actually keep updated.\n[check] padding (buffers): Padding on milestones the team controls: CFP opens (14 days) - everyone plans to the padded date and the slack vanishes unspent. Keep padding for visas, printing, shipping and venue paperwork.\n[info] cad_deleted (replanning): The cadence variance review is deleted: no standing meeting and volunteer hours - a weekly pass nobody runs becomes a recurring invite the team declines.\n[fix] cp_fix (checkpoints): Checkpoint 3 (2027-04-15): \"Ticket sales\" is not a measurable condition; \"Review ticket sales\" is not a pre-written action; no owner - a checkpoint without one is a status meeting; write what fires on failure.\n[check] measure (measurement): Plan gates: 0 of 4 pass - failing: gate coverage, commitment coverage, checkpoint completeness, ownership (a self-set bar)."
}

Reply:

{
 "task": "plan",
 "summary": "This is a fresh plan using the dependency-gated milestone plan, with signing the venue contract before the 2026-11-30 hold expires the first thing to settle.",
 "anchor": {
  "doors": "2027-06-10",
  "mode": "fresh",
  "note": "External deadlines pull tracks earlier: the venue hold expires 2026-11-30 (S-27) for Venue & logistics, and anchor sponsors close their budgets 2027-01-31 (S-18) for Sponsors."
 },
 "granularity": {
  "pick": "gated",
  "note": "No rung is deleted here: with 6 organizers and no paid staff, the team stays on the default dependency-gated milestone plan, leaving the milestone-only and task-level critical path rungs available but unused."
 },
 "tracks": [
  {
   "track": "Venue & logistics",
   "owner": "Priya",
   "terminal": "Final walkthrough done",
   "behind": 0,
   "next": "The earliest open milestone is Venue contract signed, due S-28 (2026-11-20)."
  },
  {
   "track": "Program",
   "owner": "Tomasz",
   "terminal": "Program announced",
   "behind": 0,
   "next": "The earliest open milestone is CFP designed, due S-27 (2026-12-01)."
  },
  {
   "track": "Sponsors",
   "owner": "Amara",
   "terminal": "Agreements signed",
   "behind": 0,
   "next": "The earliest open milestone is Prospectus assembled, due S-26 (2026-12-10)."
  },
  {
   "track": "Marketing",
   "owner": "Jun",
   "terminal": "Final push live",
   "behind": 0,
   "next": "The earliest open milestone is Channels ready, due S-27 (2026-12-01)."
  },
  {
   "track": "Ticketing",
   "owner": "Lea",
   "terminal": "Final headcount frozen",
   "behind": 0,
   "next": "The earliest open milestone is Payment infrastructure live, due S-22 (2027-01-05)."
  },
  {
   "track": "Budget",
   "owner": "Amara",
   "terminal": "Good/Better/Best tiers costed",
   "behind": 0,
   "next": "The earliest open milestone is Good/Better/Best tiers costed, due S-27 (2026-12-01)."
  },
  {
   "track": "Team & volunteers",
   "owner": "Priya, Jun",
   "terminal": "Volunteer briefing held",
   "behind": 0,
   "next": "The earliest open milestone is Day-of volunteers recruited, due S-3 (2027-05-15)."
  }
 ],
 "gates": [
  {
   "prerequisite": "Payment infrastructure live",
   "blocked": "Date announced",
   "status": "ok",
   "note": "This gate holds the date announcement until payment infrastructure is live."
  },
  {
   "prerequisite": "Venue contract signed",
   "blocked": "Date announced",
   "status": "ok",
   "note": "This gate holds the date announcement until the venue contract is signed."
  },
  {
   "prerequisite": "Draft budget approved",
   "blocked": "Prospectus assembled",
   "status": "ok",
   "note": "This gate holds the sponsor prospectus until the draft budget is approved."
  },
  {
   "prerequisite": "Program announced",
   "blocked": "Program-driven push live",
   "status": "ok",
   "note": "This gate holds the program-driven marketing push until the program is announced."
  },
  {
   "prerequisite": "CFP closes",
   "blocked": "Speakers confirmed",
   "status": "same track",
   "note": "Both sides sit on Program, so this is the track's own chain, not a cross-track gate."
  }
 ],
 "missing": [
  "Final headcount frozen => Catering order placed"
 ],
 "commitments": [
  {
   "commitment": "Venue deposit",
   "latest": "2027-03-31",
   "owner": "Priya",
   "note": "Venue deposit is planned for 2026-11-20 but stays safe until 2027-03-31; plan to the latest-safe date instead."
  },
  {
   "commitment": "Catering order",
   "latest": "2027-05-27",
   "owner": "Priya",
   "note": "Catering order is held open, planned to its latest-safe date of 2027-05-27."
  },
  {
   "commitment": "T-shirt print run",
   "latest": "2027-05-01",
   "owner": "Jun",
   "note": "T-shirt print run is held open, to be planned no later than its latest-safe date of 2027-05-01."
  },
  {
   "commitment": "Livestream contractor",
   "latest": null,
   "owner": "Tomasz",
   "note": "Livestream contractor has no latest-safe date; set one so it can be held open rather than committed early."
  }
 ],
 "buffers": {
  "ladder": "promoted",
  "padding": "misused",
  "note": "Delayed commitment and the scope-tier ladder stay separate tools: the ladder is promoted because the budget depends on revenue not yet booked, while delayed commitment is the default for every irreversible spend regardless of tier status."
 },
 "replanning": {
  "cadence": "deleted",
  "note": "The cadence variance review is deleted because the team has no standing check-in and runs on volunteer hours, leaving the event-driven replan as the floor."
 },
 "levers": [],
 "measurement": [
  {
   "gate": "Gate coverage",
   "pass": false
  },
  {
   "gate": "Commitment coverage",
   "pass": false
  },
  {
   "gate": "Checkpoint completeness",
   "pass": false
  },
  {
   "gate": "Ownership",
   "pass": false
  }
 ],
 "signals": [
  "Buffer consumed per track at each checkpoint: rising consumption on a track would pull its next milestone review forward.",
  "Tracks behind plan, currently 0 of 7: a track going behind would add it to the next checkpoint's agenda.",
  "Gates at risk, currently 0: any gate turning at risk would trigger an immediate review of what it blocks."
 ],
 "caveats": [
  "Livestream contractor has no latest-safe date set.",
  "Checkpoint 3 (2027-04-15) has no measurable condition, no pre-written action and no owner.",
  "Team & volunteers lists more than one owner, Priya and Jun; name exactly one accountable owner per track.",
  "Final headcount frozen => Catering order placed is an implied gate not on the gate list."
 ]
}

The page's check: kept - nothing to flag

Riverbend DevDays (an annual community conference) - sheet

Dependency-gated milestone plan; a fresh plan; 0 of 7 tracks behind; 4 checkpoints; 0 of 4 plan gates pass.

Input:

{
 "task": "sheet",
 "event": "Event: Riverbend DevDays 2027; doors-open 2027-06-10 (locked); recurring edition; one edition of a compounding annual event\nAs of: 2026-11-02, S-31 (31 weeks before doors-open)\nTeam: community-run; 6 organizers; paid staff no; standing team check-in no\nCommitments in play: more than one venue no; a contract with a penalty clause no; budget depends on revenue not yet booked yes; Good/Better/Best tiers costed yes; date announced no\nExternal deadlines: Venue holds the date until 2026-11-30 (S-27) [Venue & logistics]; Anchor sponsors close their budgets 2027-01-31 (S-18) [Sponsors]",
 "plan": "Tracks, each worked backward from its terminal milestone (S-N = weeks before doors-open):\nVenue & logistics | owner: Priya | terminal: Final walkthrough done S-1 | behind: 0\n  S-1 2027-06-01 - Final walkthrough done - open\n  S-2 2027-05-27 - Catering order placed - open\n  S-3 2027-05-20 - Badges printed - open - padded 10 days (external lead time)\n  S-4 2027-05-10 - Build-up plan written - open\n  S-28 2026-11-20 - Venue contract signed - open\nProgram | owner: Tomasz | terminal: Program announced S-10 | behind: 0\n  S-10 2027-04-01 - Program announced - open\n  S-11 2027-03-20 - Speakers confirmed - open\n  S-16 2027-02-15 - CFP closes - open\n  S-25 2026-12-15 - CFP opens - open - padded 14 days\n  S-27 2026-12-01 - CFP designed - open\nSponsors | owner: Amara | terminal: Agreements signed S-10 | behind: 0\n  S-10 2027-03-31 - Agreements signed - open\n  S-21 2027-01-10 - Outreach begins - open\n  S-26 2026-12-10 - Prospectus assembled - open\nMarketing | owner: Jun | terminal: Final push live S-2 | behind: 0\n  S-2 2027-05-27 - Final push live - open\n  S-9 2027-04-02 - Program-driven push live - open\n  S-20 2027-01-15 - Date announced - open\n  S-27 2026-12-01 - Channels ready - open\nTicketing | owner: Lea | terminal: Final headcount frozen S-2 | behind: 0\n  S-2 2027-05-25 - Final headcount frozen - open\n  S-12 2027-03-15 - Early-bird closed - open\n  S-20 2027-01-20 - Sales open - open\n  S-22 2027-01-05 - Payment infrastructure live - open\nBudget | owner: Amara | terminal: Good/Better/Best tiers costed S-27 | behind: 0\n  S-27 2026-12-01 - Good/Better/Best tiers costed - open\n  S-29 2026-11-15 - Draft budget approved - done\nTeam & volunteers | owner: Priya, Jun | terminal: Volunteer briefing held S-0 | behind: 0\n  S-0 2027-06-08 - Volunteer briefing held - open\n  S-3 2027-05-15 - Day-of volunteers recruited - open\nIrreversible commitments:\nVenue deposit | track Venue & logistics | earliest 2026-11-20 | latest-safe 2027-03-31 | planned 2026-11-20 | owner Priya | page status: early\nCatering order | track Venue & logistics | earliest 2027-04-01 | latest-safe 2027-05-27 | planned 2027-05-27 | owner Priya | page status: held\nT-shirt print run | track Marketing | earliest 2027-03-01 | latest-safe 2027-05-01 | planned - | owner Jun | page status: held\nLivestream contractor | track Program | earliest 2027-01-15 | latest-safe MISSING | planned - | owner Tomasz | page status: fix | issues: no latest-safe date\nGates as entered (prerequisite => blocked):\n1. Payment infrastructure live => Date announced | page status: ok\n2. Venue contract signed => Date announced | page status: ok\n3. Draft budget approved => Prospectus assembled | page status: ok\n4. Program announced => Program-driven push live | page status: ok\n5. CFP closes => Speakers confirmed | page status: same track | reason: both sides sit on Program - that is the track's own chain, not a cross-track gate\nCheckpoints as entered:\n1. 2027-01-31 (S-18) | condition: Anchor-sponsor revenue below the Better-tier threshold | action: Downgrade Best to Better and cut the evening social | owner: Amara | page status: complete | anchored on: Anchor sponsors close their budgets\n2. 2027-03-15 (S-12) | condition: Early-bird sales below expectation at close | action: Escalate the community outreach push and hold catering at Good-tier quantities | owner: Jun | page status: complete | anchored on: Early-bird closed\n3. 2027-04-15 (S-8) | condition: Ticket sales | action: Review ticket sales | owner: MISSING | page status: incomplete | issues: \"Ticket sales\" is not a measurable condition; \"Review ticket sales\" is not a pre-written action; no owner\n4. 2027-05-13 (S-4) | condition: Any gate into the final month still unmet | action: Fire the replan procedure | owner: Priya | page status: complete | anchored on: Build-up plan written",
 "facts": "Mode: fresh plan; tracks behind: 0 of 7; gates at risk: 0\nGranularity: pick gated - Dependency-gated milestone plan; rungs: Dependency-gated milestone plan default; Milestone-only plan available; Task-level critical path available\nBuffers: delayed commitment default; scope-tier ladder promoted; milestone padding misused\nReplanning: pre-written checkpoints default; cadence variance review deleted; event-driven replan kept as the floor\nImplied sequencing gates: Payment infrastructure live => Date announced (sourced, on the gate list); Venue contract signed => Date announced (sourced, on the gate list); Draft budget approved => Prospectus assembled (standard sequencing, on the gate list); Program announced => Program-driven push live (standard sequencing, on the gate list); Final headcount frozen => Catering order placed (standard sequencing, NOT on the gate list)\nPlan gates (0 of 4): Gate coverage FAILS; Commitment coverage FAILS; Checkpoint completeness FAILS; Ownership FAILS\nSignals to record: Buffer consumed per track at each checkpoint (self-set); Tracks behind plan: 0 of 7 today (self-set); Gates at risk: 0 today (self-set)\nFindings (17):\n[info] annual (anchor): An edition of a compounding annual event: a moved date or a visibly cut program costs more trust here than for a one-off.\n[check] shared (ownership): More than one owner: Team & volunteers (Priya, Jun) - name exactly one accountable owner per track.\n[info] terminal_early (tracks): Program ends at S-10 (Program announced) - give each track a terminal milestone at or near doors-open.\n[info] terminal_early (tracks): Sponsors ends at S-10 (Agreements signed) - give each track a terminal milestone at or near doors-open.\n[info] terminal_early (tracks): Budget ends at S-27 (Good/Better/Best tiers costed) - give each track a terminal milestone at or near doors-open.\n[check] gate_same (gates): Gate \"CFP closes => Speakers confirmed\": both sides sit on Program - that is the track's own chain, not a cross-track gate.\n[check] implicit (gates): An implicit dependency: Final headcount frozen => Catering order placed (Final headcount => catering and swag orders, standard sequencing) is not on the gate list.\n[check] commit_early (commitments): \"Venue deposit\" is planned for 2026-11-20 but stays safe until 2027-03-31 - committing at the earliest moment quietly spends the reversibility. Plan to the latest-safe date.\n[fix] commit_fix (commitments): Commitment \"Livestream contractor\": no latest-safe date.\n[check] quiet (tracks): Venue & logistics has nothing between S-28 (Venue contract signed) and S-4 (Build-up plan written) - 24 weeks unwatched; the drift that sinks an annual event lives in the quiet middle, not the final sprint.\n[check] quiet (tracks): Sponsors has nothing between S-21 (Outreach begins) and S-10 (Agreements signed) - 11 weeks unwatched; the drift that sinks an annual event lives in the quiet middle, not the final sprint.\n[check] quiet (tracks): Marketing has nothing between S-20 (Date announced) and S-9 (Program-driven push live) - 11 weeks unwatched; the drift that sinks an annual event lives in the quiet middle, not the final sprint.\n[info] tracker (granularity): Whatever the rung, publish the plan in the simplest shared tracker the whole team will actually keep updated.\n[check] padding (buffers): Padding on milestones the team controls: CFP opens (14 days) - everyone plans to the padded date and the slack vanishes unspent. Keep padding for visas, printing, shipping and venue paperwork.\n[info] cad_deleted (replanning): The cadence variance review is deleted: no standing meeting and volunteer hours - a weekly pass nobody runs becomes a recurring invite the team declines.\n[fix] cp_fix (checkpoints): Checkpoint 3 (2027-04-15): \"Ticket sales\" is not a measurable condition; \"Review ticket sales\" is not a pre-written action; no owner - a checkpoint without one is a status meeting; write what fires on failure.\n[check] measure (measurement): Plan gates: 0 of 4 pass - failing: gate coverage, commitment coverage, checkpoint completeness, ownership (a self-set bar)."
}

Reply:

{
 "task": "sheet",
 "title": "Checkpoint sheet - Riverbend DevDays 2027",
 "checkpoints": [
  {
   "date": "2027-01-31",
   "condition": "Anchor-sponsor revenue is below the Better-tier threshold at this checkpoint",
   "action": "Downgrade Best to Better and cut the evening social",
   "owner": "Amara",
   "anchor": "Anchor sponsors close their budgets"
  },
  {
   "date": "2027-03-15",
   "condition": "Early-bird ticket sales are below expectation at close",
   "action": "Escalate the community outreach push and hold catering at Good-tier quantities",
   "owner": "Jun",
   "anchor": "Early-bird closed"
  },
  {
   "date": "2027-04-15",
   "condition": "Tickets sold by this date are below the Good-tier headcount target (your design)",
   "action": "Downgrade to the Good tier and freeze spending above Good-tier levels (your design)",
   "owner": "to be named",
   "anchor": ""
  },
  {
   "date": "2027-05-13",
   "condition": "Any gate into the final month is still unmet",
   "action": "Fire the replan procedure",
   "owner": "Priya",
   "anchor": "Build-up plan written"
  }
 ],
 "added": [
  {
   "date": "2027-03-20",
   "condition": "The livestream contractor still has no latest-safe commitment date",
   "action": "Set the livestream contractor's latest-safe date now, or drop the livestream and record audio only (your design)",
   "owner": "Tomasz"
  },
  {
   "date": "2027-05-25",
   "condition": "Final headcount has not frozen before the catering order is placed",
   "action": "Hold the catering order until headcount is frozen, or lock it at the last confirmed Good-tier count (your design)",
   "owner": "Lea"
  }
 ],
 "replan": "When a checkpoint here fires the replan, the team draws on any unspent latest-safe slack first, then downgrades a scope tier, then cuts at the gate level; once the date is announced it will hold and only scope will move.",
 "message": "Here is the checkpoint sheet for Riverbend DevDays 2027, covering what each track owner should watch between now and doors-open. Run your section on the dates below, and when a condition is met take the paired action without waiting for a meeting. Please keep the shared tracker current so the whole team can see where things stand.",
 "note": "Before sending this out, name an owner and rewrite checkpoint 3 as a measurable condition with a pre-written action, and set a latest-safe date for the livestream contractor."
}

The page's check: kept - nothing to flag

Northgate Student Hack (a first edition, two organizers) - plan

Milestone-only plan; a fresh plan; 0 of 5 tracks behind; 2 checkpoints; 2 of 4 plan gates pass.

Input:

{
 "task": "plan",
 "event": "Event: Northgate Student Hack; doors-open 2027-03-05 (locked); first edition; a one-off\nAs of: 2026-11-02, S-17 (17 weeks before doors-open)\nTeam: community-run; 2 organizers; paid staff no; standing team check-in no\nCommitments in play: more than one venue no; a contract with a penalty clause no; budget depends on revenue not yet booked yes; Good/Better/Best tiers costed no; date announced no\nExternal deadlines: University room booking window closes 2026-11-25 (S-14) [Venue & logistics]",
 "plan": "Tracks, each worked backward from its terminal milestone (S-N = weeks before doors-open):\nVenue & logistics | owner: Mara | terminal: Floor plan agreed S-3 | behind: 0\n  S-3 2027-02-10 - Floor plan agreed - open\n  S-15 2026-11-15 - Room booked with the university - open\nSponsors | owner: Mara | terminal: Agreements signed S-6 | behind: 0\n  S-6 2027-01-20 - Agreements signed - open\n  S-15 2026-11-20 - Prospectus assembled - open\nRegistration | owner: Dev | terminal: Final headcount frozen S-1 | behind: 0\n  S-1 2027-02-20 - Final headcount frozen - open\n  S-12 2026-12-10 - Payment account live - open\n  S-13 2026-12-01 - Registration form live - open\nChallenges & judges | owner: Dev | terminal: Set up the challenge repo S-1 | behind: 0\n  S-1 2027-02-25 - Set up the challenge repo - open\n  S-4 2027-01-30 - Judges confirmed - open\nMarketing | owner: NONE | terminal: Final push live S-2 | behind: 0\n  S-2 2027-02-15 - Final push live - open\n  S-13 2026-12-01 - Date announced - open\nIrreversible commitments:\nPizza order | track Venue & logistics | earliest 2027-02-20 | latest-safe 2027-02-26 | planned 2027-02-26 | owner Mara | page status: held\nSwag order | track Sponsors | earliest 2027-01-10 | latest-safe 2027-02-01 | planned 2027-02-01 | owner Mara | page status: held\nGates as entered (prerequisite => blocked):\n1. Payment account live => Date announced | page status: dates violate | reason: Payment account live (2026-12-10) is dated after Date announced (2026-12-01)\n2. Room booked with the university => Date announced | page status: ok\nCheckpoints as entered:\n1. 2027-01-20 (S-6) | condition: Sponsor agreements below the swag budget | action: Drop the swag order and keep stickers only | owner: Mara | page status: complete | anchored on: Agreements signed\n2. 2027-02-20 (S-1) | condition: Registrations below the room's capacity | action: Escalate outreach to two more campus clubs | owner: Dev | page status: complete | anchored on: Final headcount frozen",
 "facts": "Mode: fresh plan; tracks behind: 0 of 5; gates at risk: 0\nGranularity: pick milestone - Milestone-only plan; rungs: Dependency-gated milestone plan available; Milestone-only plan promoted; Task-level critical path deleted\nBuffers: delayed commitment default; scope-tier ladder promoted; milestone padding none\nReplanning: pre-written checkpoints default; cadence variance review deleted; event-driven replan kept as the floor\nImplied sequencing gates: Payment account live => Date announced (sourced, BROKEN by the dates)\nPlan gates (2 of 4): Gate coverage FAILS; Commitment coverage passes; Checkpoint completeness passes; Ownership FAILS\nSignals to record: Buffer consumed per track at each checkpoint (self-set); Tracks behind plan: 0 of 5 today (self-set); Gates at risk: 0 today (self-set)\nFindings (13):\n[info] first (anchor): A first edition: take the format's runway lengths and launch gates from the first-edition playbook, then lay these mechanics on that runway - never borrow another format's runway.\n[check] phrasing (tracks): Written as instructions, not finished states: Set up the challenge repo - \"The CFP form is live\" is true or false at a glance; \"set up the CFP form\" is not.\n[fix] unowned (ownership): No owner: Marketing - an ownerless track slips with nobody noticing until a gate fails.\n[info] custom_track (tracks): Outside the seven-track taxonomy: Challenges & judges - fine if the event needs it; merge it into a standard track if not.\n[info] terminal_early (tracks): Sponsors ends at S-6 (Agreements signed) - give each track a terminal milestone at or near doors-open.\n[fix] gate_dates_violate (gates): Gate \"Payment account live => Date announced\" Payment account live (2026-12-10) is dated after Date announced (2026-12-01).\n[info] cp_deleted (granularity): The task-level critical path is deleted, not demoted: one or two volunteer organizers cannot keep a weekly re-baseline alive, and a stale task plan is worse than a coarse live one.\n[info] mo_promoted (granularity): A milestone-only plan fits: one or two organizers and few irreversible commitments - every dependency fits in one head.\n[info] tracker (granularity): Whatever the rung, publish the plan in the simplest shared tracker the whole team will actually keep updated.\n[fix] no_tiers (buffers): The budget depends on revenue not yet booked: cost Good, Better and Best versions of the event before a ticket sells, so a soft sales signal downgrades the event instead of cancelling it.\n[info] cad_deleted (replanning): The cadence variance review is deleted: no standing meeting and volunteer hours - a weekly pass nobody runs becomes a recurring invite the team declines.\n[fix] no_downgrade (checkpoints): The scope-tier ladder needs dated downgrade checkpoints driven by revenue actually received - none of the checkpoints downgrades a tier.\n[check] measure (measurement): Plan gates: 2 of 4 pass - failing: gate coverage, ownership (a self-set bar)."
}

Reply:

{
 "task": "plan",
 "summary": "This is a fresh milestone-only plan for a first edition, and the first thing to settle is the date conflict where payment account live on 2026-12-10 falls after date announced on 2026-12-01.",
 "anchor": {
  "doors": "2027-03-05",
  "mode": "fresh",
  "note": "One external deadline pulls Venue & logistics earlier: the university room booking window closes 2026-11-25 (S-14)."
 },
 "granularity": {
  "pick": "milestone",
  "note": "The task-level critical path rung is deleted because the two volunteer organizers cannot keep a weekly re-baseline alive."
 },
 "tracks": [
  {
   "track": "Venue & logistics",
   "owner": "Mara",
   "terminal": "Floor plan agreed",
   "behind": 0,
   "next": "The earliest open milestone is Room booked with the university, due S-15 (2026-11-15)."
  },
  {
   "track": "Sponsors",
   "owner": "Mara",
   "terminal": "Agreements signed",
   "behind": 0,
   "next": "The earliest open milestone is Prospectus assembled, due S-15 (2026-11-20)."
  },
  {
   "track": "Registration",
   "owner": "Dev",
   "terminal": "Final headcount frozen",
   "behind": 0,
   "next": "The earliest open milestone is Registration form live, due S-13 (2026-12-01)."
  },
  {
   "track": "Challenges & judges",
   "owner": "Dev",
   "terminal": "Set up the challenge repo",
   "behind": 0,
   "next": "The earliest open milestone is Judges confirmed, due S-4 (2027-01-30)."
  },
  {
   "track": "Marketing",
   "owner": "none",
   "terminal": "Final push live",
   "behind": 0,
   "next": "The earliest open milestone is Date announced, due S-13 (2026-12-01)."
  }
 ],
 "gates": [
  {
   "prerequisite": "Payment account live",
   "blocked": "Date announced",
   "status": "dates violate",
   "note": "Payment account live (2026-12-10) is dated after Date announced (2026-12-01)."
  },
  {
   "prerequisite": "Room booked with the university",
   "blocked": "Date announced",
   "status": "ok",
   "note": "This gate holds the date announcement until the room is booked with the university."
  }
 ],
 "missing": [],
 "commitments": [
  {
   "commitment": "Pizza order",
   "latest": "2027-02-26",
   "owner": "Mara",
   "note": "Pizza order is held open and planned to its latest-safe date of 2027-02-26."
  },
  {
   "commitment": "Swag order",
   "latest": "2027-02-01",
   "owner": "Mara",
   "note": "Swag order is held open and planned to its latest-safe date of 2027-02-01."
  }
 ],
 "buffers": {
  "ladder": "promoted",
  "padding": "none",
  "note": "Delayed commitment and the scope-tier ladder remain separate tools: both commitments here are held open to their latest-safe dates, while the ladder is promoted separately because the budget depends on revenue not yet booked."
 },
 "replanning": {
  "cadence": "deleted",
  "note": "The cadence variance review is deleted because the two organizers have no standing check-in, leaving the event-driven replan as the floor."
 },
 "levers": [],
 "measurement": [
  {
   "gate": "Gate coverage",
   "pass": false
  },
  {
   "gate": "Commitment coverage",
   "pass": true
  },
  {
   "gate": "Checkpoint completeness",
   "pass": true
  },
  {
   "gate": "Ownership",
   "pass": false
  }
 ],
 "signals": [
  "Buffer consumed per track at each checkpoint: a track burning through its slack would move its next review earlier.",
  "Tracks behind plan, currently 0 of 5: any track slipping behind would add it to the next checkpoint's agenda.",
  "Gates at risk, currently 0: a gate turning at risk would trigger an immediate review of what it blocks."
 ],
 "caveats": [
  "Marketing has no owner.",
  "The gate Payment account live => Date announced has its dates out of order: 2026-12-10 after 2026-12-01.",
  "The budget depends on revenue not yet booked, but no Good, Better and Best tiers have been costed.",
  "No checkpoint downgrades a scope tier, though the ladder needs dated downgrade checkpoints driven by revenue received."
 ]
}

The page's check: kept - nothing to flag

Northgate Student Hack (a first edition, two organizers) - sheet

Milestone-only plan; a fresh plan; 0 of 5 tracks behind; 2 checkpoints; 2 of 4 plan gates pass.

Input:

{
 "task": "sheet",
 "event": "Event: Northgate Student Hack; doors-open 2027-03-05 (locked); first edition; a one-off\nAs of: 2026-11-02, S-17 (17 weeks before doors-open)\nTeam: community-run; 2 organizers; paid staff no; standing team check-in no\nCommitments in play: more than one venue no; a contract with a penalty clause no; budget depends on revenue not yet booked yes; Good/Better/Best tiers costed no; date announced no\nExternal deadlines: University room booking window closes 2026-11-25 (S-14) [Venue & logistics]",
 "plan": "Tracks, each worked backward from its terminal milestone (S-N = weeks before doors-open):\nVenue & logistics | owner: Mara | terminal: Floor plan agreed S-3 | behind: 0\n  S-3 2027-02-10 - Floor plan agreed - open\n  S-15 2026-11-15 - Room booked with the university - open\nSponsors | owner: Mara | terminal: Agreements signed S-6 | behind: 0\n  S-6 2027-01-20 - Agreements signed - open\n  S-15 2026-11-20 - Prospectus assembled - open\nRegistration | owner: Dev | terminal: Final headcount frozen S-1 | behind: 0\n  S-1 2027-02-20 - Final headcount frozen - open\n  S-12 2026-12-10 - Payment account live - open\n  S-13 2026-12-01 - Registration form live - open\nChallenges & judges | owner: Dev | terminal: Set up the challenge repo S-1 | behind: 0\n  S-1 2027-02-25 - Set up the challenge repo - open\n  S-4 2027-01-30 - Judges confirmed - open\nMarketing | owner: NONE | terminal: Final push live S-2 | behind: 0\n  S-2 2027-02-15 - Final push live - open\n  S-13 2026-12-01 - Date announced - open\nIrreversible commitments:\nPizza order | track Venue & logistics | earliest 2027-02-20 | latest-safe 2027-02-26 | planned 2027-02-26 | owner Mara | page status: held\nSwag order | track Sponsors | earliest 2027-01-10 | latest-safe 2027-02-01 | planned 2027-02-01 | owner Mara | page status: held\nGates as entered (prerequisite => blocked):\n1. Payment account live => Date announced | page status: dates violate | reason: Payment account live (2026-12-10) is dated after Date announced (2026-12-01)\n2. Room booked with the university => Date announced | page status: ok\nCheckpoints as entered:\n1. 2027-01-20 (S-6) | condition: Sponsor agreements below the swag budget | action: Drop the swag order and keep stickers only | owner: Mara | page status: complete | anchored on: Agreements signed\n2. 2027-02-20 (S-1) | condition: Registrations below the room's capacity | action: Escalate outreach to two more campus clubs | owner: Dev | page status: complete | anchored on: Final headcount frozen",
 "facts": "Mode: fresh plan; tracks behind: 0 of 5; gates at risk: 0\nGranularity: pick milestone - Milestone-only plan; rungs: Dependency-gated milestone plan available; Milestone-only plan promoted; Task-level critical path deleted\nBuffers: delayed commitment default; scope-tier ladder promoted; milestone padding none\nReplanning: pre-written checkpoints default; cadence variance review deleted; event-driven replan kept as the floor\nImplied sequencing gates: Payment account live => Date announced (sourced, BROKEN by the dates)\nPlan gates (2 of 4): Gate coverage FAILS; Commitment coverage passes; Checkpoint completeness passes; Ownership FAILS\nSignals to record: Buffer consumed per track at each checkpoint (self-set); Tracks behind plan: 0 of 5 today (self-set); Gates at risk: 0 today (self-set)\nFindings (13):\n[info] first (anchor): A first edition: take the format's runway lengths and launch gates from the first-edition playbook, then lay these mechanics on that runway - never borrow another format's runway.\n[check] phrasing (tracks): Written as instructions, not finished states: Set up the challenge repo - \"The CFP form is live\" is true or false at a glance; \"set up the CFP form\" is not.\n[fix] unowned (ownership): No owner: Marketing - an ownerless track slips with nobody noticing until a gate fails.\n[info] custom_track (tracks): Outside the seven-track taxonomy: Challenges & judges - fine if the event needs it; merge it into a standard track if not.\n[info] terminal_early (tracks): Sponsors ends at S-6 (Agreements signed) - give each track a terminal milestone at or near doors-open.\n[fix] gate_dates_violate (gates): Gate \"Payment account live => Date announced\" Payment account live (2026-12-10) is dated after Date announced (2026-12-01).\n[info] cp_deleted (granularity): The task-level critical path is deleted, not demoted: one or two volunteer organizers cannot keep a weekly re-baseline alive, and a stale task plan is worse than a coarse live one.\n[info] mo_promoted (granularity): A milestone-only plan fits: one or two organizers and few irreversible commitments - every dependency fits in one head.\n[info] tracker (granularity): Whatever the rung, publish the plan in the simplest shared tracker the whole team will actually keep updated.\n[fix] no_tiers (buffers): The budget depends on revenue not yet booked: cost Good, Better and Best versions of the event before a ticket sells, so a soft sales signal downgrades the event instead of cancelling it.\n[info] cad_deleted (replanning): The cadence variance review is deleted: no standing meeting and volunteer hours - a weekly pass nobody runs becomes a recurring invite the team declines.\n[fix] no_downgrade (checkpoints): The scope-tier ladder needs dated downgrade checkpoints driven by revenue actually received - none of the checkpoints downgrades a tier.\n[check] measure (measurement): Plan gates: 2 of 4 pass - failing: gate coverage, ownership (a self-set bar)."
}

Reply:

{
 "task": "sheet",
 "title": "Checkpoint sheet - Northgate Student Hack",
 "checkpoints": [
  {
   "date": "2027-01-20",
   "condition": "Sponsor agreements come in below the swag budget",
   "action": "Drop the swag order and keep stickers only",
   "owner": "Mara",
   "anchor": "Agreements signed"
  },
  {
   "date": "2027-02-20",
   "condition": "Registrations are below the room's capacity",
   "action": "Escalate outreach to two more campus clubs",
   "owner": "Dev",
   "anchor": "Final headcount frozen"
  }
 ],
 "added": [
  {
   "date": "2026-12-01",
   "condition": "Payment account live is not yet confirmed when the date is announced",
   "action": "Hold announcing the date until payment account live is confirmed (your design)",
   "owner": "to be named"
  },
  {
   "date": "2027-02-15",
   "condition": "Marketing still has no named owner by this date",
   "action": "Name an owner for Marketing now, or fold its remaining tasks into Registration or Sponsors (your design)",
   "owner": "to be named"
  }
 ],
 "replan": "When a checkpoint here fires the replan, the team first spends any unspent latest-safe slack, then takes a tier downgrade, then cuts scope at the gate level. The date for Northgate Student Hack has not been announced yet, so moving it stays an option until it is, after which it holds and only scope moves.",
 "message": "Here is the checkpoint sheet for Northgate Student Hack, covering what to watch between now and doors-open. Run your track against the dates and conditions below, and take the paired action as soon as a condition is met, without waiting for a meeting. Please keep the shared tracker current so both of you can see where things stand.",
 "note": "Before sending this out, name an owner for Marketing, fix the Payment account live versus Date announced date conflict, and cost the Good, Better and Best tiers."
}

The page's check: kept - nothing to flag

Cloudline Summit (company-run, behind plan) - plan

Task-level critical path; a mid-flight replan; 2 of 7 tracks behind; 3 checkpoints; 3 of 4 plan gates pass.

Input:

{
 "task": "plan",
 "event": "Event: Cloudline Summit 2027; doors-open 2027-05-20 (locked); recurring edition; one edition of a compounding annual event\nAs of: 2027-02-15, S-13 (13 weeks before doors-open)\nTeam: company-run; 4 organizers; paid staff yes; standing team check-in yes\nCommitments in play: more than one venue yes; a contract with a penalty clause yes; budget depends on revenue not yet booked yes; Good/Better/Best tiers costed yes; date announced yes\nExternal deadlines: Workshop venue penalty clause starts 2027-03-31 (S-7) [Venue & logistics]; Sponsors' fiscal year closes 2027-03-31 (S-7) [Sponsors]",
 "plan": "Tracks, each worked backward from its terminal milestone (S-N = weeks before doors-open):\nVenue & logistics | owner: Hana | terminal: Final walkthrough done S-1 | behind: 0\n  S-1 2027-05-10 - Final walkthrough done - open\n  S-2 2027-05-01 - Signage printed - open - padded 10 days (external lead time)\n  S-7 2027-04-01 - Build-up plan written - open\n  S-22 2026-12-15 - Workshop venue contract signed - done\n  S-33 2026-09-30 - Main hall contract signed - done\nProgram | owner: Oskar | terminal: Program announced S-10 | behind: 1\n  S-10 2027-03-05 - Program announced - open\n  S-12 2027-02-20 - Speakers confirmed - open\n  S-14 2027-02-05 - Selection done - LATE\n  S-17 2027-01-15 - CFP closes - done\nSponsors | owner: Rui | terminal: Booth layout shared S-5 | behind: 1\n  S-5 2027-04-15 - Booth layout shared - open\n  S-15 2027-02-01 - Agreements signed - LATE\n  S-31 2026-10-15 - Prospectus assembled - done\nMarketing | owner: Sade | terminal: Final push live S-2 | behind: 0\n  S-2 2027-05-06 - Final push live - open\n  S-10 2027-03-06 - Program-driven push live - open\n  S-28 2026-11-01 - Date announced - done\nTicketing | owner: Hana | terminal: Final headcount frozen S-2 | behind: 0\n  S-2 2027-05-06 - Final headcount frozen - open\n  S-11 2027-03-01 - Early-bird closed - open\n  S-30 2026-10-20 - Payment infrastructure live - done\nBudget | owner: Rui | terminal: Revenue checkpoint passed S-9 | behind: 0\n  S-9 2027-03-15 - Revenue checkpoint passed - open\nTeam & volunteers | owner: Oskar | terminal: Volunteer briefing held S-0 | behind: 0\n  S-0 2027-05-18 - Volunteer briefing held - open\nIrreversible commitments:\nCatering order | track Venue & logistics | earliest 2027-04-01 | latest-safe 2027-05-06 | planned 2027-05-06 | owner Hana | page status: held\nWorkshop venue deposit | track Venue & logistics | earliest 2026-12-15 | latest-safe 2027-01-31 | planned 2026-12-15 | owner Hana | page status: done\nSwag print run | track Marketing | earliest 2027-03-01 | latest-safe 2027-04-10 | planned 2027-04-10 | owner Sade | page status: held\nProduction crew booking | track Program | earliest 2027-01-10 | latest-safe 2027-03-01 | planned 2027-03-01 | owner Oskar | page status: held\nGates as entered (prerequisite => blocked):\n1. Payment infrastructure live => Date announced | page status: ok\n2. Main hall contract signed => Date announced | page status: ok\n3. Program announced => Program-driven push live | page status: ok\n4. Agreements signed => Build-up plan written | page status: at risk | reason: Agreements signed is late, so Build-up plan written (2027-04-01) is at risk\n5. Agreements signed => Revenue checkpoint passed | page status: at risk | reason: Agreements signed is late, so Revenue checkpoint passed (2027-03-15) is at risk\nCheckpoints as entered:\n1. 2027-03-01 (S-11) | condition: Early-bird sales below plan at close | action: Escalate the paid campaign and hold catering at Better-tier quantities | owner: Sade | page status: complete | anchored on: Early-bird closed\n2. 2027-03-15 (S-9) | condition: Sponsor revenue below the Best-tier threshold | action: Downgrade Best to Better and drop the second workshop day | owner: Rui | page status: complete | anchored on: Revenue checkpoint passed\n3. 2027-04-01 (S-7) | condition: Program still not announced | action: Postpone the date by two weeks | owner: Oskar | page status: incomplete | issues: its action moves an announced date | anchored on: Build-up plan written",
 "facts": "Mode: mid-flight replan; tracks behind: 2 of 7; gates at risk: 2\nGranularity: pick critical - Task-level critical path; rungs: Dependency-gated milestone plan available; Milestone-only plan available; Task-level critical path promoted\nBuffers: delayed commitment default; scope-tier ladder promoted; milestone padding external lead times only\nReplanning: pre-written checkpoints default; cadence variance review promoted; event-driven replan kept as the floor\nImplied sequencing gates: Payment infrastructure live => Date announced (sourced, on the gate list); Main hall contract signed => Date announced (sourced, on the gate list); Program announced => Program-driven push live (standard sequencing, on the gate list)\nLevers in spending order: 1. Unspent latest-safe slack: Catering order (safe until 2027-05-06); Swag print run (safe until 2027-04-10); Production crew booking (safe until 2027-03-01) 2. A scope-tier downgrade, one tier at a checkpoint 3. Scope cuts at the gate level: start with Agreements signed (Sponsors) - it blocks 2 downstream milestones through the gates 4. Moving the date: deleted - the date is announced; the date holds and scope moves\nPlan gates (3 of 4): Gate coverage passes; Commitment coverage passes; Checkpoint completeness FAILS; Ownership passes\nSignals to record: Buffer consumed per track at each checkpoint (self-set); Tracks behind plan: 2 of 7 today (self-set); Gates at risk: 2 today (self-set)\nFindings (11):\n[info] annual (anchor): An edition of a compounding annual event: a moved date or a visibly cut program costs more trust here than for a one-off.\n[info] terminal_early (tracks): Program ends at S-10 (Program announced) - give each track a terminal milestone at or near doors-open.\n[info] terminal_early (tracks): Budget ends at S-9 (Revenue checkpoint passed) - give each track a terminal milestone at or near doors-open.\n[fix] late (replan): 2 milestones past due and not done: Selection done (Program, 2027-02-05); Agreements signed (Sponsors, 2027-02-01).\n[info] cp_promoted (granularity): The task-level critical path is promoted - paid staff, more than one venue, a contract with a penalty clause make an uncaught slip dearer than the weekly upkeep: an owner per task and a weekly re-baseline.\n[info] tracker (granularity): Whatever the rung, publish the plan in the simplest shared tracker the whole team will actually keep updated.\n[info] padding_ok (buffers): Padding sits only on external lead times (Signage printed) - the one place it belongs.\n[info] cad_promoted (replanning): The cadence variance review is promoted - the team already meets, so the per-track actual-versus-plan pass costs little.\n[fix] cp_fix (checkpoints): Checkpoint 3 (2027-04-01): its action moves an announced date.\n[check] replan (replan): A mid-flight replan: spend the levers in order - Unspent latest-safe slack: Catering order (safe until 2027-05-06); Swag print run (safe until 2027-04-10); Production crew booking (safe until 2027-03-01); then A scope-tier downgrade, one tier at a checkpoint; then Scope cuts at the gate level: start with Agreements signed (Sponsors) - it blocks 2 downstream milestones through the gates; then Moving the date: deleted - the date is announced; the date holds and scope moves. Rewrite the remaining checkpoints against the new plan, and say which lever was spent and what it bought.\n[check] measure (measurement): Plan gates: 3 of 4 pass - failing: checkpoint completeness (a self-set bar)."
}

Reply:

{
 "task": "plan",
 "summary": "This is a mid-flight replan using the task-level critical path, and the first thing to settle is rewriting checkpoint 3, whose current action would postpone the announced date.",
 "anchor": {
  "doors": "2027-05-20",
  "mode": "replan",
  "note": "External deadlines pull tracks earlier: the workshop venue penalty clause starts 2027-03-31 (S-7) for Venue & logistics, and the sponsors' fiscal year closes the same day, 2027-03-31 (S-7), for Sponsors."
 },
 "granularity": {
  "pick": "critical",
  "note": "No rung is deleted here: paid staff, more than one venue and a contract with a penalty clause promote the task-level critical path, while the dependency-gated and milestone-only rungs stay available but unused."
 },
 "tracks": [
  {
   "track": "Venue & logistics",
   "owner": "Hana",
   "terminal": "Final walkthrough done",
   "behind": 0,
   "next": "The earliest open milestone is Build-up plan written, due S-7 (2027-04-01)."
  },
  {
   "track": "Program",
   "owner": "Oskar",
   "terminal": "Program announced",
   "behind": 1,
   "next": "The late milestone to recover is Selection done, due S-14 (2027-02-05)."
  },
  {
   "track": "Sponsors",
   "owner": "Rui",
   "terminal": "Booth layout shared",
   "behind": 1,
   "next": "The late milestone to recover is Agreements signed, due S-15 (2027-02-01)."
  },
  {
   "track": "Marketing",
   "owner": "Sade",
   "terminal": "Final push live",
   "behind": 0,
   "next": "The earliest open milestone is Program-driven push live, due S-10 (2027-03-06)."
  },
  {
   "track": "Ticketing",
   "owner": "Hana",
   "terminal": "Final headcount frozen",
   "behind": 0,
   "next": "The earliest open milestone is Early-bird closed, due S-11 (2027-03-01)."
  },
  {
   "track": "Budget",
   "owner": "Rui",
   "terminal": "Revenue checkpoint passed",
   "behind": 0,
   "next": "The earliest open milestone is Revenue checkpoint passed, due S-9 (2027-03-15)."
  },
  {
   "track": "Team & volunteers",
   "owner": "Oskar",
   "terminal": "Volunteer briefing held",
   "behind": 0,
   "next": "The earliest open milestone is Volunteer briefing held, due S-0 (2027-05-18)."
  }
 ],
 "gates": [
  {
   "prerequisite": "Payment infrastructure live",
   "blocked": "Date announced",
   "status": "ok",
   "note": "This gate holds the date announcement until payment infrastructure is live."
  },
  {
   "prerequisite": "Main hall contract signed",
   "blocked": "Date announced",
   "status": "ok",
   "note": "This gate holds the date announcement until the main hall contract is signed."
  },
  {
   "prerequisite": "Program announced",
   "blocked": "Program-driven push live",
   "status": "ok",
   "note": "This gate holds the program-driven marketing push until the program is announced."
  },
  {
   "prerequisite": "Agreements signed",
   "blocked": "Build-up plan written",
   "status": "at risk",
   "note": "Agreements signed is late, so Build-up plan written, due 2027-04-01, is at risk."
  },
  {
   "prerequisite": "Agreements signed",
   "blocked": "Revenue checkpoint passed",
   "status": "at risk",
   "note": "Agreements signed is late, so Revenue checkpoint passed, due 2027-03-15, is at risk."
  }
 ],
 "missing": [],
 "commitments": [
  {
   "commitment": "Catering order",
   "latest": "2027-05-06",
   "owner": "Hana",
   "note": "Catering order is held open and planned to its latest-safe date of 2027-05-06."
  },
  {
   "commitment": "Workshop venue deposit",
   "latest": "2027-01-31",
   "owner": "Hana",
   "note": "Workshop venue deposit is done, committed on 2026-12-15 ahead of its latest-safe date of 2027-01-31."
  },
  {
   "commitment": "Swag print run",
   "latest": "2027-04-10",
   "owner": "Sade",
   "note": "Swag print run is held open and planned to its latest-safe date of 2027-04-10."
  },
  {
   "commitment": "Production crew booking",
   "latest": "2027-03-01",
   "owner": "Oskar",
   "note": "Production crew booking is held open and planned to its latest-safe date of 2027-03-01."
  }
 ],
 "buffers": {
  "ladder": "promoted",
  "padding": "external lead times only",
  "note": "Delayed commitment and the scope-tier ladder remain separate tools: holding commitments open to their latest-safe dates is not the same lever as the promoted scope-tier ladder, which downgrades by revenue received."
 },
 "replanning": {
  "cadence": "promoted",
  "note": "The cadence variance review is promoted because the team already holds a standing check-in, making the per-track actual-versus-plan pass low-cost."
 },
 "levers": [
  "Unspent latest-safe slack: Catering order (safe until 2027-05-06), Swag print run (safe until 2027-04-10), Production crew booking (safe until 2027-03-01).",
  "A scope-tier downgrade, one tier at a checkpoint.",
  "Scope cuts at the gate level, starting with Agreements signed (Sponsors), which blocks 2 downstream milestones through the gates.",
  "Moving the date: deleted, since the date is announced and the date holds while scope moves."
 ],
 "measurement": [
  {
   "gate": "Gate coverage",
   "pass": true
  },
  {
   "gate": "Commitment coverage",
   "pass": true
  },
  {
   "gate": "Checkpoint completeness",
   "pass": false
  },
  {
   "gate": "Ownership",
   "pass": true
  }
 ],
 "signals": [
  "Buffer consumed per track at each checkpoint: a track burning its slack faster than planned would pull its next review forward.",
  "Tracks behind plan, currently 2 of 7: a third track slipping behind would trigger spending the next lever in order.",
  "Gates at risk, currently 2: a third gate turning at risk would add it to the next checkpoint's agenda."
 ],
 "caveats": [
  "2 milestones are past due and not done: Selection done (Program, 2027-02-05) and Agreements signed (Sponsors, 2027-02-01).",
  "Checkpoint 3 (2027-04-01) has an action that moves the announced date.",
  "On this mid-flight replan, spend the levers in order and rewrite the remaining checkpoints, saying which lever was spent and what it bought.",
  "Plan gates: 3 of 4 pass, with checkpoint completeness failing."
 ]
}

The page's check: kept - nothing to flag

Cloudline Summit (company-run, behind plan) - sheet

Task-level critical path; a mid-flight replan; 2 of 7 tracks behind; 3 checkpoints; 3 of 4 plan gates pass.

Input:

{
 "task": "sheet",
 "event": "Event: Cloudline Summit 2027; doors-open 2027-05-20 (locked); recurring edition; one edition of a compounding annual event\nAs of: 2027-02-15, S-13 (13 weeks before doors-open)\nTeam: company-run; 4 organizers; paid staff yes; standing team check-in yes\nCommitments in play: more than one venue yes; a contract with a penalty clause yes; budget depends on revenue not yet booked yes; Good/Better/Best tiers costed yes; date announced yes\nExternal deadlines: Workshop venue penalty clause starts 2027-03-31 (S-7) [Venue & logistics]; Sponsors' fiscal year closes 2027-03-31 (S-7) [Sponsors]",
 "plan": "Tracks, each worked backward from its terminal milestone (S-N = weeks before doors-open):\nVenue & logistics | owner: Hana | terminal: Final walkthrough done S-1 | behind: 0\n  S-1 2027-05-10 - Final walkthrough done - open\n  S-2 2027-05-01 - Signage printed - open - padded 10 days (external lead time)\n  S-7 2027-04-01 - Build-up plan written - open\n  S-22 2026-12-15 - Workshop venue contract signed - done\n  S-33 2026-09-30 - Main hall contract signed - done\nProgram | owner: Oskar | terminal: Program announced S-10 | behind: 1\n  S-10 2027-03-05 - Program announced - open\n  S-12 2027-02-20 - Speakers confirmed - open\n  S-14 2027-02-05 - Selection done - LATE\n  S-17 2027-01-15 - CFP closes - done\nSponsors | owner: Rui | terminal: Booth layout shared S-5 | behind: 1\n  S-5 2027-04-15 - Booth layout shared - open\n  S-15 2027-02-01 - Agreements signed - LATE\n  S-31 2026-10-15 - Prospectus assembled - done\nMarketing | owner: Sade | terminal: Final push live S-2 | behind: 0\n  S-2 2027-05-06 - Final push live - open\n  S-10 2027-03-06 - Program-driven push live - open\n  S-28 2026-11-01 - Date announced - done\nTicketing | owner: Hana | terminal: Final headcount frozen S-2 | behind: 0\n  S-2 2027-05-06 - Final headcount frozen - open\n  S-11 2027-03-01 - Early-bird closed - open\n  S-30 2026-10-20 - Payment infrastructure live - done\nBudget | owner: Rui | terminal: Revenue checkpoint passed S-9 | behind: 0\n  S-9 2027-03-15 - Revenue checkpoint passed - open\nTeam & volunteers | owner: Oskar | terminal: Volunteer briefing held S-0 | behind: 0\n  S-0 2027-05-18 - Volunteer briefing held - open\nIrreversible commitments:\nCatering order | track Venue & logistics | earliest 2027-04-01 | latest-safe 2027-05-06 | planned 2027-05-06 | owner Hana | page status: held\nWorkshop venue deposit | track Venue & logistics | earliest 2026-12-15 | latest-safe 2027-01-31 | planned 2026-12-15 | owner Hana | page status: done\nSwag print run | track Marketing | earliest 2027-03-01 | latest-safe 2027-04-10 | planned 2027-04-10 | owner Sade | page status: held\nProduction crew booking | track Program | earliest 2027-01-10 | latest-safe 2027-03-01 | planned 2027-03-01 | owner Oskar | page status: held\nGates as entered (prerequisite => blocked):\n1. Payment infrastructure live => Date announced | page status: ok\n2. Main hall contract signed => Date announced | page status: ok\n3. Program announced => Program-driven push live | page status: ok\n4. Agreements signed => Build-up plan written | page status: at risk | reason: Agreements signed is late, so Build-up plan written (2027-04-01) is at risk\n5. Agreements signed => Revenue checkpoint passed | page status: at risk | reason: Agreements signed is late, so Revenue checkpoint passed (2027-03-15) is at risk\nCheckpoints as entered:\n1. 2027-03-01 (S-11) | condition: Early-bird sales below plan at close | action: Escalate the paid campaign and hold catering at Better-tier quantities | owner: Sade | page status: complete | anchored on: Early-bird closed\n2. 2027-03-15 (S-9) | condition: Sponsor revenue below the Best-tier threshold | action: Downgrade Best to Better and drop the second workshop day | owner: Rui | page status: complete | anchored on: Revenue checkpoint passed\n3. 2027-04-01 (S-7) | condition: Program still not announced | action: Postpone the date by two weeks | owner: Oskar | page status: incomplete | issues: its action moves an announced date | anchored on: Build-up plan written",
 "facts": "Mode: mid-flight replan; tracks behind: 2 of 7; gates at risk: 2\nGranularity: pick critical - Task-level critical path; rungs: Dependency-gated milestone plan available; Milestone-only plan available; Task-level critical path promoted\nBuffers: delayed commitment default; scope-tier ladder promoted; milestone padding external lead times only\nReplanning: pre-written checkpoints default; cadence variance review promoted; event-driven replan kept as the floor\nImplied sequencing gates: Payment infrastructure live => Date announced (sourced, on the gate list); Main hall contract signed => Date announced (sourced, on the gate list); Program announced => Program-driven push live (standard sequencing, on the gate list)\nLevers in spending order: 1. Unspent latest-safe slack: Catering order (safe until 2027-05-06); Swag print run (safe until 2027-04-10); Production crew booking (safe until 2027-03-01) 2. A scope-tier downgrade, one tier at a checkpoint 3. Scope cuts at the gate level: start with Agreements signed (Sponsors) - it blocks 2 downstream milestones through the gates 4. Moving the date: deleted - the date is announced; the date holds and scope moves\nPlan gates (3 of 4): Gate coverage passes; Commitment coverage passes; Checkpoint completeness FAILS; Ownership passes\nSignals to record: Buffer consumed per track at each checkpoint (self-set); Tracks behind plan: 2 of 7 today (self-set); Gates at risk: 2 today (self-set)\nFindings (11):\n[info] annual (anchor): An edition of a compounding annual event: a moved date or a visibly cut program costs more trust here than for a one-off.\n[info] terminal_early (tracks): Program ends at S-10 (Program announced) - give each track a terminal milestone at or near doors-open.\n[info] terminal_early (tracks): Budget ends at S-9 (Revenue checkpoint passed) - give each track a terminal milestone at or near doors-open.\n[fix] late (replan): 2 milestones past due and not done: Selection done (Program, 2027-02-05); Agreements signed (Sponsors, 2027-02-01).\n[info] cp_promoted (granularity): The task-level critical path is promoted - paid staff, more than one venue, a contract with a penalty clause make an uncaught slip dearer than the weekly upkeep: an owner per task and a weekly re-baseline.\n[info] tracker (granularity): Whatever the rung, publish the plan in the simplest shared tracker the whole team will actually keep updated.\n[info] padding_ok (buffers): Padding sits only on external lead times (Signage printed) - the one place it belongs.\n[info] cad_promoted (replanning): The cadence variance review is promoted - the team already meets, so the per-track actual-versus-plan pass costs little.\n[fix] cp_fix (checkpoints): Checkpoint 3 (2027-04-01): its action moves an announced date.\n[check] replan (replan): A mid-flight replan: spend the levers in order - Unspent latest-safe slack: Catering order (safe until 2027-05-06); Swag print run (safe until 2027-04-10); Production crew booking (safe until 2027-03-01); then A scope-tier downgrade, one tier at a checkpoint; then Scope cuts at the gate level: start with Agreements signed (Sponsors) - it blocks 2 downstream milestones through the gates; then Moving the date: deleted - the date is announced; the date holds and scope moves. Rewrite the remaining checkpoints against the new plan, and say which lever was spent and what it bought.\n[check] measure (measurement): Plan gates: 3 of 4 pass - failing: checkpoint completeness (a self-set bar)."
}

Reply:

{
 "task": "sheet",
 "title": "Checkpoint sheet - Cloudline Summit 2027",
 "checkpoints": [
  {
   "date": "2027-03-01",
   "condition": "Early-bird sales come in below plan at close",
   "action": "Escalate the paid campaign and hold catering at Better-tier quantities",
   "owner": "Sade",
   "anchor": "Early-bird closed"
  },
  {
   "date": "2027-03-15",
   "condition": "Sponsor revenue is below the Best-tier threshold",
   "action": "Downgrade Best to Better and drop the second workshop day",
   "owner": "Rui",
   "anchor": "Revenue checkpoint passed"
  },
  {
   "date": "2027-04-01",
   "condition": "Program is still not announced by this date",
   "action": "Announce the program with whichever speakers are confirmed by this date and backfill any remaining slots after doors-open, rather than moving the date (your design)",
   "owner": "Oskar",
   "anchor": "Build-up plan written"
  }
 ],
 "added": [],
 "replan": "When a checkpoint here fires the replan, the team first spends any unspent latest-safe slack still open on the catering order, the swag print run and the production crew booking, then takes a one-tier scope downgrade, then cuts scope at the gate level starting with Agreements signed, since it blocks 2 downstream milestones through the gates. The date is already announced, so it holds and only scope moves.",
 "message": "Here is the updated checkpoint sheet for Cloudline Summit 2027 after the replan. Run your track against the dates and conditions below, and take the paired action as soon as a condition is met, without waiting for the team check-in. Please keep the shared tracker current so everyone can see exactly where the plan stands.",
 "note": "Before sending this out, settle recovery owners and dates for the 2 late milestones, Selection done and Agreements signed, since both now put downstream gates at risk."
}

The page's check: kept - nothing to flag

The plan CSV for the first sample

track,owner,bucket,date,milestone,status,pad_days
Venue & logistics,Priya,S-1,2027-06-01,Final walkthrough done,open,
Venue & logistics,Priya,S-2,2027-05-27,Catering order placed,open,
Venue & logistics,Priya,S-3,2027-05-20,Badges printed,open,10
Venue & logistics,Priya,S-4,2027-05-10,Build-up plan written,open,
Venue & logistics,Priya,S-28,2026-11-20,Venue contract signed,open,
Program,Tomasz,S-10,2027-04-01,Program announced,open,
Program,Tomasz,S-11,2027-03-20,Speakers confirmed,open,
Program,Tomasz,S-16,2027-02-15,CFP closes,open,
Program,Tomasz,S-25,2026-12-15,CFP opens,open,14
Program,Tomasz,S-27,2026-12-01,CFP designed,open,
Sponsors,Amara,S-10,2027-03-31,Agreements signed,open,
Sponsors,Amara,S-21,2027-01-10,Outreach begins,open,
Sponsors,Amara,S-26,2026-12-10,Prospectus assembled,open,
Marketing,Jun,S-2,2027-05-27,Final push live,open,
Marketing,Jun,S-9,2027-04-02,Program-driven push live,open,
Marketing,Jun,S-20,2027-01-15,Date announced,open,
Marketing,Jun,S-27,2026-12-01,Channels ready,open,
Ticketing,Lea,S-2,2027-05-25,Final headcount frozen,open,
Ticketing,Lea,S-12,2027-03-15,Early-bird closed,open,
Ticketing,Lea,S-20,2027-01-20,Sales open,open,
Ticketing,Lea,S-22,2027-01-05,Payment infrastructure live,open,
Budget,Amara,S-27,2026-12-01,Good/Better/Best tiers costed,open,
Budget,Amara,S-29,2026-11-15,Draft budget approved,done,
Team & volunteers,Priya / Jun,S-0,2027-06-08,Volunteer briefing held,open,
Team & volunteers,Priya / Jun,S-3,2027-05-15,Day-of volunteers recruited,open,

Build the input yourself

Load the engine in node (global.window = global; require("./workkit.js"); require("./workreply.js")), then:

const K = WorkKit, R = WorkReply;
const f = K.form({ name: "My Conf", doors: "2027-06-10", asOf: "2026-11-02", organizers: "6", revenue: "yes",
  owners: fs.readFileSync("owners.csv", "utf8"), milestones: fs.readFileSync("milestones.csv", "utf8"),
  commitments: fs.readFileSync("commitments.csv", "utf8"), gates: "Payment infrastructure live => Date announced",
  checkpoints: fs.readFileSync("checkpoints.csv", "utf8") });
// f.tracks (name, owners, terminal, late, ms), f.gates (pre, post, status), f.implied, f.coms (latest, status)
// f.gran, f.buffer, f.cadence, f.cps (status, anchor), f.mode, f.levers, f.measure, f.findings
K.planCSV(f)                                   // track, owner, bucket, date, milestone, status, pad_days
const b = K.buildInput(f, "plan");             // or "sheet"
const wire = K.toWire(b.input);                // POST this to /estimate and /run
// then: const reply = R.normalize(R.parseReply(job.output.output), "plan");
// R.check(reply, b)                           // {status: kept or flagged, notes}

Get a token for the steps below from /tokens.html.

Step 1 — a tiny client helper

One function that sends JSON and unwraps the response. Paste a personal token from /tokens.html, or leave it empty and mint a guest token in step 2.

BASE="https://api.skillsafe.ai/v1/app-api"
TOKEN="paste-your-token-here"   # from https://work-back.skillsafe.ai/tokens.html
api() { # api METHOD PATH [JSON-BODY]
  curl -s -X "$1" "$BASE$2" -H "Content-Type: application/json" \
    ${TOKEN:+-H "Authorization: Bearer $TOKEN"} ${3:+--data "$3"}
}

Step 2 — a token

A guest token is enough for /me and /estimate. A run is metered, so it needs a personal token: sign in on /tokens.html and copy it from there.

# a guest token (enough for /me and /estimate); a run needs your personal token from /tokens.html
TOKEN=$(curl -s -X POST "$BASE/guest" -H "Content-Type: application/json" -d '{"slug":"work-back"}' | jq -r '.data.token')

Step 3 — GET /me

Who the token is (subject_type: user or guest) and the credit balance.

api GET /me | jq '.data | {subject_type, credits}' 

Step 4 — POST /estimate

Free. The body is the run input itself, the bare object (never wrapped in {"input": ...}). hold_credits is a reservation, not the price; min_credits is what the balance must cover; model_alias reads gpt-terra.

# input.json: the run input object - {"task": "plan", "event": "Event: ...; doors-open 2027-06-10 (locked); ...", "plan": "Tracks, each worked backward from its terminal milestone ...", "facts": "Mode: fresh plan; ..."}
# - see the input table
api POST /estimate "$(cat input.json)" | jq '.data | {hold_credits, min_credits, model, model_alias, markup_bps, warnings}' 

Step 5 — POST /run, then poll the job

Send an Idempotency-Key built from the lane and the input: a retry with the same key never bills twice. The page uses work-back:<task>:<inputHash>:a<attempt> - the lane is part of the key - and its one automatic reformat retry is a new attempt number, named in the page as one extra run. A plan carries summary, anchor, granularity, tracks, gates, missing, commitments, buffers, replanning, levers, measurement, signals and caveats; a sheet carries title, checkpoints, added, replan, message and note. The code below prints the headline parts of either (list items are plain strings).

KEY="work-back:plan:$(shasum -a 256 input.json | cut -c1-16):a1"
JOB=$(curl -s -X POST "$BASE/run" -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: $KEY" --data @input.json | jq -r '.data.job_id')
while :; do
  J=$(api GET "/jobs/$JOB"); S=$(echo "$J" | jq -r '.data.status')
  case "$S" in succeeded|failed|cancelled) break;; esac; sleep 2
done
echo "$J" | jq -r '.data.output.output' > reply.json   # one JSON object, the reply contract
echo "$J" | jq '.data | {charged_credits, truncated}'
jq -r '.summary // .format, .note // .replan, ((.signals // .caveats)[] | "\(.signal // .caveat): \(.text // .text)")' reply.json
jq -r '.message // .note // empty' reply.json   # the message to the track owners (sheet)

Step 6 — POST /run-stream

The same run as Server-Sent Events, with the same input.json. Browsers receive progress ticks rather than text deltas; the final done event carries the reply.

# Server-Sent Events: tick/delta events while the job runs, then a final event with the job
curl -N -s -X POST "$BASE/run-stream" -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: work-back:plan:$(shasum -a 256 input.json | cut -c1-16):a1" --data @input.json