taskchef 7.15.3 → 7.15.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codex-plugin/plugin.json +2 -2
- package/README.md +27 -14
- package/docs/spec.md +19 -0
- package/docs/workflows.md +11 -1
- package/package.json +1 -1
- package/skills/taskchef-bootstrap/SKILL.md +51 -24
- package/skills/taskchef-executor/SKILL.md +27 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "taskchef",
|
|
3
|
-
"version": "7.15.
|
|
3
|
+
"version": "7.15.5",
|
|
4
4
|
"description": "Dispatch work from a data-only workspace to visible Codex project tasks.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Favo Yang",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
],
|
|
30
30
|
"websiteURL": "https://github.com/favoyang/taskchef",
|
|
31
31
|
"defaultPrompt": [
|
|
32
|
-
"$taskchef-bootstrap Set up TaskChef
|
|
32
|
+
"$taskchef-bootstrap Set up TaskChef and index my Codex projects.",
|
|
33
33
|
"$taskchef-delegate Dispatch this request to the right project.",
|
|
34
34
|
"$taskchef-executor Execute this delegated TaskChef assignment.",
|
|
35
35
|
"$taskchef-copilot Explain TaskChef outcomes and recommend the next action."
|
package/README.md
CHANGED
|
@@ -36,7 +36,7 @@ puts the `taskchef` CLI on `PATH`. TaskChef installs no hooks, schedules,
|
|
|
36
36
|
daemons, login items, system services, or background identity search and needs
|
|
37
37
|
no elevated permissions.
|
|
38
38
|
|
|
39
|
-
## Bootstrap and
|
|
39
|
+
## Bootstrap and index projects
|
|
40
40
|
|
|
41
41
|
Ask the bootstrap skill to create the per-user dispatcher:
|
|
42
42
|
|
|
@@ -48,25 +48,33 @@ The canonical workspace is `~/.agents/taskchef`. TaskChef owns only:
|
|
|
48
48
|
|
|
49
49
|
```text
|
|
50
50
|
AGENTS.md managed dispatcher instructions plus user additions
|
|
51
|
-
taskchef.json schema-2
|
|
51
|
+
taskchef.json schema-2 Codex project index and delegation metadata
|
|
52
52
|
tasks.jsonl one task snapshot per line (schema 9; schema 4-8 migration supported)
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
Index or inspect Codex projects conversationally:
|
|
56
56
|
|
|
57
57
|
```text
|
|
58
|
-
$taskchef-bootstrap List my
|
|
59
|
-
$taskchef-bootstrap
|
|
58
|
+
$taskchef-bootstrap List my indexed Codex projects.
|
|
59
|
+
$taskchef-bootstrap Index /workspace/payments as payments. It owns authorization, capture, refunds, and retries.
|
|
60
|
+
$taskchef-bootstrap Reindex after the Codex projects I added today.
|
|
60
61
|
```
|
|
61
62
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
TaskChef indexes existing Codex projects for delegation. The index stores
|
|
64
|
+
canonical paths and routing metadata; it never indexes repository contents or
|
|
65
|
+
creates another kind of project. For a folder already saved as a local Codex
|
|
66
|
+
project, the bootstrap skill requires an exact canonical-path match before
|
|
67
|
+
writing and verifying its TaskChef index entry. For a new folder, or an existing
|
|
68
|
+
folder not yet saved by Codex, it creates the directory only when explicitly
|
|
69
|
+
requested, opens the canonical path with the validated Codex Desktop CLI's
|
|
70
|
+
`codex app <path>` mechanism, re-lists native projects, and requires the same
|
|
71
|
+
exact match before indexing it. An open request without a verified native
|
|
72
|
+
project is reported as partial setup, not delegation-ready.
|
|
73
|
+
|
|
74
|
+
Reindexing catches TaskChef up with newly saved Codex projects by comparing
|
|
75
|
+
exact canonical paths and indexing missing requested projects. It preserves
|
|
76
|
+
existing curated entries and does not silently remove projects or overwrite
|
|
77
|
+
metadata.
|
|
70
78
|
|
|
71
79
|
Codex CLI resolution follows the same contract as
|
|
72
80
|
`workspace init --register-codex`: an explicit `--codex-cli` path wins, then
|
|
@@ -84,12 +92,17 @@ taskchef project add /workspace/payments --name payments \
|
|
|
84
92
|
taskchef project list
|
|
85
93
|
```
|
|
86
94
|
|
|
95
|
+
The CLI command writes TaskChef metadata only; it does not query Codex. Before
|
|
96
|
+
using it directly, verify that `/workspace/payments` exactly matches the
|
|
97
|
+
canonical path of an existing local Codex project. The bootstrap skill performs
|
|
98
|
+
that native-project check for you.
|
|
99
|
+
|
|
87
100
|
A project may advertise several GitHub repositories with repeated
|
|
88
101
|
`--github-repo`. Explicit values replace automatic origin detection and form
|
|
89
102
|
the complete advertised list, so include the origin when it should remain
|
|
90
103
|
routable. A managed `*-workspace` should advertise every relevant child or
|
|
91
104
|
subrepository canonical GitHub URL, plus the workspace repository itself when
|
|
92
|
-
applicable, so issue and pull-request links select the correct
|
|
105
|
+
applicable, so issue and pull-request links select the correct Codex project.
|
|
93
106
|
TaskChef accepts Git roots and ordinary local folders on the same execution
|
|
94
107
|
host. Unsupported configuration schemas are rejected and are never rewritten
|
|
95
108
|
automatically.
|
package/docs/spec.md
CHANGED
|
@@ -143,6 +143,25 @@ the final link, preserving the delegate skill's immediate-return contract.
|
|
|
143
143
|
TaskChef MUST atomically close it as `interrupted` before appending the new
|
|
144
144
|
working turn; the executor MUST NOT report semantic `failed` for recovery.
|
|
145
145
|
|
|
146
|
+
Normal executor completion MUST stop after the terminal callback and return
|
|
147
|
+
normally. It MUST NOT archive, hand off, close, navigate away from, or otherwise
|
|
148
|
+
terminate the Codex task merely because work completed. Archive is authorized
|
|
149
|
+
only by an explicit request in the current assignment or follow-up for that
|
|
150
|
+
exact Codex task; `finish`, `complete`, `done`, `ship`, and ordinary cleanup do
|
|
151
|
+
not imply authorization.
|
|
152
|
+
|
|
153
|
+
For an explicitly authorized archive, the executor MUST finish and verify the
|
|
154
|
+
work, read its exact task identity, submit the current turn's terminal
|
|
155
|
+
`report_state`, verify TaskChef accepted that state, and only then invoke the
|
|
156
|
+
native archive operation as the final state-changing action. It MUST require
|
|
157
|
+
native confirmation before claiming archive succeeded. The same callback-first
|
|
158
|
+
ordering applies to any separately authorized action that can make the executor
|
|
159
|
+
unavailable before reporting, including handoff or terminating or restarting
|
|
160
|
+
the process that owns the TaskChef MCP transport; this rule does not itself
|
|
161
|
+
authorize those actions. A terminal reporting failure MUST prevent the later
|
|
162
|
+
action and leave the executor accessible. Failure of a later action MUST NOT
|
|
163
|
+
change or reopen the already accepted semantic terminal state.
|
|
164
|
+
|
|
146
165
|
Request and result summaries are the durable source for dashboard related-link
|
|
147
166
|
projection; TaskChef does not scan full Codex transcripts. When known, an
|
|
148
167
|
executor MUST preserve the selected repository as a canonical GitHub repository
|
package/docs/workflows.md
CHANGED
|
@@ -12,7 +12,7 @@ research.
|
|
|
12
12
|
| --- | --- |
|
|
13
13
|
| `skills/taskchef-delegate/SKILL.md` | Split, route, record-before-create, create, return. |
|
|
14
14
|
| `skills/taskchef-executor/SKILL.md` | Own, self-link, execute, and report every executor turn. |
|
|
15
|
-
| `skills/taskchef-bootstrap/SKILL.md` | Initialize
|
|
15
|
+
| `skills/taskchef-bootstrap/SKILL.md` | Initialize the workspace and maintain the Codex project index. |
|
|
16
16
|
| `skills/taskchef-copilot/SKILL.md` | Explain normalized cached briefs and coordinate safe next actions. |
|
|
17
17
|
| `src/mcp.js` | Dashboard ensure, four primary lifecycle tools, one deprecated alias, shutdown ownership, and MCP annotations. |
|
|
18
18
|
| `src/delegation.js` | UUID marker, concise executor-skill invocation shape, and creation-failure handling. |
|
|
@@ -163,6 +163,16 @@ sequenceDiagram
|
|
|
163
163
|
A native approval prompt is not a semantic result. `needs_input` is reserved
|
|
164
164
|
for a user decision or fact required to proceed.
|
|
165
165
|
|
|
166
|
+
Ordinary completion returns after the terminal callback; it does not archive,
|
|
167
|
+
hand off, close, navigate away from, or otherwise terminate the native Codex
|
|
168
|
+
task. An archive requires an explicit request in the current assignment or
|
|
169
|
+
follow-up for that exact task. `finish`, `complete`, `done`, `ship`, and cleanup
|
|
170
|
+
alone do not authorize it. Any explicitly requested action that could make the
|
|
171
|
+
executor unavailable must follow, never precede, an accepted terminal callback.
|
|
172
|
+
If reporting fails, the later action is forbidden and the executor remains
|
|
173
|
+
accessible. If the later action fails, its error does not reopen or replace the
|
|
174
|
+
accepted semantic state.
|
|
175
|
+
|
|
166
176
|
## Follow-up turns
|
|
167
177
|
|
|
168
178
|
Turn refs are freshness tokens for semantic callbacks. The workspace rejects a
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: taskchef-bootstrap
|
|
3
|
-
description: "Initialize, diagnose, or refresh TaskChef dispatcher workspaces, project
|
|
3
|
+
description: "Initialize, diagnose, or refresh TaskChef dispatcher workspaces, the Codex project index, task history, and managed AGENTS.md instructions. Use when creating a TaskChef workspace, indexing or reindexing Codex projects, importing, listing, or removing indexed projects, running TaskChef doctor, or repairing dispatcher setup. Do not dispatch user work or report on executor threads."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# TaskChef Bootstrap
|
|
@@ -50,12 +50,17 @@ all deterministic workspace operations.
|
|
|
50
50
|
End without dispatching unless the user
|
|
51
51
|
separately requested work.
|
|
52
52
|
|
|
53
|
-
##
|
|
53
|
+
## Index Codex projects
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
TaskChef's project index is the local list of Codex projects available for
|
|
56
|
+
delegation. It stores canonical paths and routing metadata such as curated
|
|
57
|
+
names, descriptions, Git status, and GitHub repositories. It does not index
|
|
58
|
+
repository contents or create a second kind of project.
|
|
59
|
+
|
|
60
|
+
Index only Codex projects local to the TaskChef workspace's execution host.
|
|
61
|
+
Remote connection projects are outside the v1 contract. Never index the
|
|
62
|
+
TaskChef dispatcher workspace or a directory containing it; the dispatcher is
|
|
63
|
+
the inbox, while indexed Codex projects own delegated work.
|
|
59
64
|
|
|
60
65
|
### Existing Codex project
|
|
61
66
|
|
|
@@ -63,16 +68,18 @@ the dispatcher is the inbox, while routing projects own delegated work.
|
|
|
63
68
|
with `realpath` and require an exact canonical-path match in that list. A
|
|
64
69
|
similar name, a parent or child directory, and a remote connection project
|
|
65
70
|
are not matches.
|
|
66
|
-
2.
|
|
67
|
-
--description <curated-description> --json
|
|
68
|
-
|
|
71
|
+
2. Index the exact path with the existing `project add <canonical-path> --name
|
|
72
|
+
<curated-name> --description <curated-description> --json` CLI workflow.
|
|
73
|
+
Despite the command's historical `add` name, this writes one TaskChef index
|
|
74
|
+
entry for an existing Codex project. The CLI detects Git status, the exact
|
|
75
|
+
Git root, and a canonical GitHub `origin` when no repository option is
|
|
69
76
|
supplied. Repeated `--github-repo <canonical-url>` arguments replace that
|
|
70
77
|
detection and form the complete advertised repository list, so repeat the
|
|
71
78
|
origin explicitly when it should remain routable. Use `--no-github` when the
|
|
72
79
|
user intentionally wants an empty list.
|
|
73
|
-
3. Run `project list --json` and require one
|
|
74
|
-
|
|
75
|
-
is ready for delegation.
|
|
80
|
+
3. Run `project list --json` and require one indexed entry with the exact
|
|
81
|
+
canonical path and intended routing metadata. Only then report that the
|
|
82
|
+
Codex project is ready for delegation through TaskChef.
|
|
76
83
|
|
|
77
84
|
### New or not-yet-saved Codex folder
|
|
78
85
|
|
|
@@ -93,30 +100,50 @@ the dispatcher is the inbox, while routing projects own delegated work.
|
|
|
93
100
|
3. Re-list native local Codex projects and require an exact canonical-path
|
|
94
101
|
match. Opening is a request, not proof that Codex saved the project. If the
|
|
95
102
|
exact match is absent, report that the folder was opened or registration was
|
|
96
|
-
requested but Codex registration remains unverified; do not
|
|
103
|
+
requested but Codex registration remains unverified; do not index it in
|
|
97
104
|
TaskChef or call it delegation-ready.
|
|
98
|
-
4. After Codex verification,
|
|
99
|
-
Run `project list --json` and verify the exact
|
|
105
|
+
4. After Codex verification, index the project as in the existing-project path.
|
|
106
|
+
Run `project list --json` and verify the exact TaskChef index entry. Report
|
|
100
107
|
delegation readiness only after both the native Codex match and TaskChef
|
|
101
|
-
|
|
108
|
+
indexing are verified.
|
|
102
109
|
|
|
103
|
-
For a managed `*-workspace`
|
|
110
|
+
For a managed `*-workspace` Codex project, advertise every relevant child or
|
|
104
111
|
subrepository with repeated `--github-repo <canonical-github-url>` arguments,
|
|
105
112
|
including the workspace repository itself when it can own issue or pull-request
|
|
106
113
|
links. These explicit values are the complete list; automatic origin detection
|
|
107
114
|
does not supplement them. This lets TaskChef route each canonical GitHub URL to
|
|
108
115
|
the correct workspace rather than guessing from the folder name.
|
|
109
116
|
|
|
110
|
-
|
|
117
|
+
### Reindex after Codex changes
|
|
118
|
+
|
|
119
|
+
When the user asks TaskChef to reindex or catch up after saving more projects in
|
|
120
|
+
Codex, list native local Codex projects once and run `project list --json` once
|
|
121
|
+
before mutation. Compare exact canonical paths, then index each requested
|
|
122
|
+
eligible Codex project that is missing from TaskChef by following the
|
|
123
|
+
appropriate path above, sharing the batch verification instead of relisting
|
|
124
|
+
after each write. After all additions, run `project list --json` once more and
|
|
125
|
+
verify every intended canonical path and its routing metadata before reporting
|
|
126
|
+
the index as current.
|
|
127
|
+
|
|
128
|
+
Do not call `project add` for a path already in the TaskChef index; it rejects
|
|
129
|
+
duplicate paths and must not be presented as a metadata refresh. Preserve
|
|
130
|
+
existing curated entries, and do not remove entries merely because they are
|
|
131
|
+
absent from the current Codex list. Refreshing or removing an existing entry
|
|
132
|
+
requires an explicit user request and the project-management workflows below.
|
|
133
|
+
|
|
134
|
+
## Manage the project index
|
|
111
135
|
|
|
112
136
|
1. Bulk import with `project import <file|-> --json`. Input is a JSON array of
|
|
113
137
|
objects containing `path` plus optional `name`, `description`, and
|
|
114
|
-
`githubRepos`, which is always a JSON array of GitHub repository URLs.
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
138
|
+
`githubRepos`, which is always a JSON array of GitHub repository URLs. Before
|
|
139
|
+
importing, list native local Codex projects once, canonicalize every input
|
|
140
|
+
path, and require an exact local-project match for every entry. Reject or
|
|
141
|
+
report every unmatched path instead of indexing it. Import merges by
|
|
142
|
+
canonical path, preserves an existing name or description when omitted, and
|
|
143
|
+
unions existing and imported repository lists without duplicates. Use
|
|
144
|
+
`--replace` only when the user explicitly requests replacement. Run
|
|
145
|
+
`project list --json` afterward and verify every imported entry.
|
|
146
|
+
2. Inspect indexed projects with `project list --json`. Remove by name with
|
|
120
147
|
`project remove`. Existing task entries keep their project snapshots.
|
|
121
148
|
|
|
122
149
|
Example managed-workspace import entry:
|
|
@@ -80,6 +80,33 @@ and unnecessary personal data. Identical lifecycle retries are safe; never
|
|
|
80
80
|
replace a same-`turnRef` report with different content or let an older turn
|
|
81
81
|
overwrite newer state.
|
|
82
82
|
|
|
83
|
+
### Keep terminal reporting ahead of executor-ending actions
|
|
84
|
+
|
|
85
|
+
Normal completion ends with the semantic terminal `report_state` callback and
|
|
86
|
+
then returns normally. Never archive, hand off, close, navigate away from, or
|
|
87
|
+
otherwise terminate the Codex task merely because the work or turn completed.
|
|
88
|
+
An archive is authorized only when the current assignment or follow-up
|
|
89
|
+
explicitly requests archiving this exact Codex task. Words such as `finish`,
|
|
90
|
+
`complete`, `done`, `ship`, and ordinary cleanup do not authorize archive.
|
|
91
|
+
|
|
92
|
+
When archive is explicitly authorized, finish and verify the requested work,
|
|
93
|
+
read the exact task identity required by this protocol, submit the terminal
|
|
94
|
+
`report_state` callback for the current `turnRef`, and verify that TaskChef
|
|
95
|
+
accepted the terminal state. Only then call the native Codex archive operation.
|
|
96
|
+
Archive must be the final state-changing action, and native confirmation is
|
|
97
|
+
required before claiming it succeeded.
|
|
98
|
+
|
|
99
|
+
Apply the same terminal-callback-first rule when the user explicitly requests
|
|
100
|
+
another action that can make this executor unavailable before it reports, such
|
|
101
|
+
as handing off the task or terminating or restarting the process that owns the
|
|
102
|
+
TaskChef MCP transport. This ordering rule does not authorize any such action.
|
|
103
|
+
If terminal reporting fails, do not archive or perform the requested
|
|
104
|
+
executor-ending action; leave the executor accessible and report the lifecycle
|
|
105
|
+
failure visibly. If terminal reporting succeeds but the later action fails,
|
|
106
|
+
preserve the accepted `completed`, `failed`, or `needs_input` state, report only
|
|
107
|
+
the later action's failure, and do not reopen the lifecycle or report `working`
|
|
108
|
+
again.
|
|
109
|
+
|
|
83
110
|
### Preserve repository and delivery links
|
|
84
111
|
|
|
85
112
|
Treat lifecycle summaries as the durable TaskChef timeline; the dashboard does
|