lightsout work-order
Create a work order, and change and show its record of the plans it holds, the mode they implement in, and its request to ship.
When to reach for it
Reach for it whenever work is started, gains a plan or changes shape. `new` is the one command that writes a work order’s name — give it `--ticket <ref>` and the engine reads that ticket’s title from the tracker and summarises it, or `--title <words>` and the words are taken as handed; the name is written once and never again. `add-plan` starts the next plan and prints its address; `mode` moves a ticket between one plan supplying the implementation and several implementing in numeric order; `request-ship` is how a human declares a multiple-plan ticket finished, and `exclude-plan` takes a plan out of that work for good; `retitle-plan` changes only what a plan is called; `show` reads the record, and `sync` settles a record that moved on two machines at once.
How to run it
lightsout work-order newlightsout work-order add-planlightsout work-order modelightsout work-order request-shiplightsout work-order exclude-planlightsout work-order retitle-planlightsout work-order showlightsout work-order sync| flag | meaning | left out |
|---|---|---|
| --ticket <ref> | The tracker ticket this work is for. The engine reads that ticket's title and summarises it into the work order's name — nobody hands it one. | Nothing is read from a tracker; give --title instead to name the work yourself. |
| --title <words> | The words to name this work when no tracker names it — taken exactly as typed, and slugged into the label and the branch. | Nothing is named from words; give --ticket instead to take the name from a tracker ticket. |
| --name <work-order-name> | The ticket to act on, named by its branch — which is also its folder under .lightsout/work-orders/, never one plan's address. | required |
| --slug <slug> | The new plan's fixed slug: lowercase letter-and-digit words joined by single hyphens, at most 40 characters. | required |
| --title <title> | The plan's first display title, which stays changeable. | The slug is used as the title. |
| --name <work-order-name> | The ticket to act on, named by its branch — which is also its folder under .lightsout/work-orders/, never one plan's address. | required |
| --set single-plan|multiple-plan | How this ticket organises its plans: single-plan means plan 001 alone supplies the implementation, multiple-plan means its plans implement in numeric order on one branch. | required |
| --approve | Carry out a switch to single-plan mode, excluding every later plan. | The switch is previewed and nothing is changed. |
| --name <work-order-name> | The ticket to act on, named by its branch — which is also its folder under .lightsout/work-orders/, never one plan's address. | required |
| --plans <id,id> | Every plan the request approves, as full ids or bare numbers — it must name each plan the ticket still includes. | Nothing is requested; give --withdraw instead to take a pending request back. |
| --withdraw | Take a pending ship request back, leaving the ticket open. | Nothing is withdrawn; give --plans instead to record a request. |
| --name <work-order-name> | The ticket to act on, named by its branch — which is also its folder under .lightsout/work-orders/, never one plan's address. | required |
| --plan <id> | The plan to exclude, as its full id or its number on its own. | required |
| --reason <text> | Why this plan is out of the ticket's work — the record's only account of the decision. | required |
| --implementation-removed | Declare this plan's implementation taken off the branch, which the repository's own gates then verify on that branch's checkout. | The exclusion records no removal, and the plan's implementation stays where it is. |
| --name <work-order-name> | The ticket to act on, named by its branch — which is also its folder under .lightsout/work-orders/, never one plan's address. | required |
| --plan <id> | The plan to retitle, as its full id or its number on its own. | required |
| --title <title> | The plan's new display title. Its id, its folder and any pending ship request are untouched. | required |
| --name <work-order-name> | The ticket to act on, named by its branch — which is also its folder under .lightsout/work-orders/, never one plan's address. | required |
| --name <work-order-name> | The ticket to act on, named by its branch — which is also its folder under .lightsout/work-orders/, never one plan's address. | required |
| --keep local|published | Which copy wins when this machine and the ticket have both changed the record. | The ordinary sync: the ticket’s copy is taken when only it moved, and this machine’s is sent when only it did. |
| --cwd <path> | Any checkout of the repository; the record is found in its primary checkout. | The process working directory. |