myte 0.0.7 → 0.0.9
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/README.md +145 -8
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -10,23 +10,44 @@ Use one of these flows:
|
|
|
10
10
|
- `npm install myte`
|
|
11
11
|
- then run `npx myte config --json`
|
|
12
12
|
- then run `npx myte bootstrap`
|
|
13
|
+
- then run `npx myte run-qaqc --mission-ids M001 --wait --sync`
|
|
13
14
|
- then run `npx myte sync-qaqc`
|
|
15
|
+
- then run `npx myte feedback-sync`
|
|
16
|
+
- then run `npx myte suggestions sync`
|
|
17
|
+
- then run `npx myte suggestions create`
|
|
18
|
+
- then run `npx myte suggestions revise`
|
|
19
|
+
- then run `npx myte suggestions review`
|
|
14
20
|
- then run `npx myte query "What changed in logging?" --with-diff`
|
|
15
21
|
- then run `npx myte update-team "Backend deploy completed; QAQC rerun queued."`
|
|
22
|
+
- then run `npx myte update-owner --subject "QAQC progress" --body-file ./updates/owner.md`
|
|
16
23
|
- then run `npx myte update-client --subject "Weekly client update" --body-file ./updates/week-12.md`
|
|
17
24
|
- or `npm exec myte -- query "What changed in logging?" --with-diff`
|
|
18
25
|
- Global install:
|
|
19
26
|
- `npm i -g myte`
|
|
20
27
|
- then run `myte bootstrap`
|
|
28
|
+
- then run `myte run-qaqc --mission-ids M001 --wait --sync`
|
|
21
29
|
- then run `myte sync-qaqc`
|
|
30
|
+
- then run `myte feedback-sync`
|
|
31
|
+
- then run `myte suggestions sync`
|
|
32
|
+
- then run `myte suggestions create`
|
|
33
|
+
- then run `myte suggestions revise`
|
|
34
|
+
- then run `myte suggestions review`
|
|
22
35
|
- then run `myte query "What changed in logging?" --with-diff`
|
|
23
36
|
- then run `myte update-team "Backend deploy completed; QAQC rerun queued."`
|
|
37
|
+
- then run `myte update-owner --subject "QAQC progress" --body-file ./updates/owner.md`
|
|
24
38
|
- then run `myte update-client --subject "Weekly client update" --body-file ./updates/week-12.md`
|
|
25
39
|
- No install:
|
|
26
40
|
- `npx myte@latest bootstrap`
|
|
41
|
+
- `npx myte@latest run-qaqc --mission-ids M001 --wait --sync`
|
|
27
42
|
- `npx myte@latest sync-qaqc`
|
|
43
|
+
- `npx myte@latest feedback-sync`
|
|
44
|
+
- `npx myte@latest suggestions sync`
|
|
45
|
+
- `npx myte@latest suggestions create`
|
|
46
|
+
- `npx myte@latest suggestions revise`
|
|
47
|
+
- `npx myte@latest suggestions review`
|
|
28
48
|
- `npx myte@latest query "What changed in logging?" --with-diff`
|
|
29
49
|
- `npx myte@latest update-team "Backend deploy completed; QAQC rerun queued."`
|
|
50
|
+
- `npx myte@latest update-owner --subject "QAQC progress" --body-file ./updates/owner.md`
|
|
30
51
|
- `npx myte@latest update-client --subject "Weekly client update" --body-file ./updates/week-12.md`
|
|
31
52
|
|
|
32
53
|
`npm install myte` by itself does not put `myte` on your shell PATH. Use `npx myte` or `npm exec myte -- ...` unless you installed globally.
|
|
@@ -75,7 +96,9 @@ What it does:
|
|
|
75
96
|
- validates the current wrapper workspace against the configured repo names
|
|
76
97
|
- writes local files under `MyteCommandCenter/data`
|
|
77
98
|
- writes a normalized public Command Center schema, not raw backend mission/proposal documents
|
|
99
|
+
- mission cards now include richer execution context like `complexity`, `estimated_hours`, `due_date`, `subtasks`, `technical_requirements`, `resources_needed`, `labels`, and normalized `test_cases`
|
|
78
100
|
- excludes internal fields like `_id`, `org_id`, `project_id`, `created_by`, `assigned_to`, and raw `qa_qc_results`
|
|
101
|
+
- if the workspace still has old Command Center artifacts, rerunning current commands prunes legacy outputs like `bootstrap-manifest.json`, `data/qaqc/`, and `data/feedback/` automatically as the new files are written
|
|
79
102
|
|
|
80
103
|
Files written:
|
|
81
104
|
- `MyteCommandCenter/data/project.yml`
|
|
@@ -83,13 +106,33 @@ Files written:
|
|
|
83
106
|
- `MyteCommandCenter/data/epics/*.yml`
|
|
84
107
|
- `MyteCommandCenter/data/stories/*.yml`
|
|
85
108
|
- `MyteCommandCenter/data/missions/*.yml`
|
|
86
|
-
- `MyteCommandCenter/data/bootstrap-manifest.json`
|
|
87
109
|
|
|
88
110
|
Useful forms:
|
|
89
111
|
- `npx myte bootstrap --json`
|
|
90
112
|
- `npx myte bootstrap --dry-run --json`
|
|
91
113
|
- `npx myte bootstrap --output-dir ./MyteCommandCenter`
|
|
92
114
|
|
|
115
|
+
## Queue mission QAQC and refresh local QAQC context
|
|
116
|
+
|
|
117
|
+
Run this from any workspace with a valid project key:
|
|
118
|
+
|
|
119
|
+
- `npx myte run-qaqc --mission-ids M001,M002 --wait --sync`
|
|
120
|
+
- or `npm exec myte -- run-qaqc --mission-ids M001,M002 --wait --sync`
|
|
121
|
+
- or `myte run-qaqc --mission-ids M001,M002 --wait --sync`
|
|
122
|
+
|
|
123
|
+
What it does:
|
|
124
|
+
- queues QAQC for up to 10 explicit mission ids through the project-key API surface
|
|
125
|
+
- returns a `batch_id` immediately
|
|
126
|
+
- uses `--wait` to poll the batch until it reaches a terminal state
|
|
127
|
+
- uses `--sync` to refresh `MyteCommandCenter/data/qaqc.yml` after a completed batch
|
|
128
|
+
- runs through the dedicated `project_api_qaqc` queue inside the existing Celery service, with a global budget of `20` dispatch starts/minute and `20` live jobs
|
|
129
|
+
- a saturated `run-qaqc --wait` batch can take roughly `5-10` minutes before sync has final data to pull
|
|
130
|
+
|
|
131
|
+
Useful forms:
|
|
132
|
+
- `npx myte run-qaqc --mission-ids M001`
|
|
133
|
+
- `npx myte run-qaqc --mission-ids M001,M002 --wait`
|
|
134
|
+
- `npx myte run-qaqc --mission-ids M001,M002 --wait --sync --json`
|
|
135
|
+
|
|
93
136
|
## Sync active mission QAQC context
|
|
94
137
|
|
|
95
138
|
Run this from the wrapper root that contains the project's repo folders:
|
|
@@ -101,23 +144,85 @@ Run this from the wrapper root that contains the project's repo folders:
|
|
|
101
144
|
What it does:
|
|
102
145
|
- fetches a project-scoped QAQC sync snapshot from the API using your project key
|
|
103
146
|
- works even if `bootstrap` has not been run yet
|
|
104
|
-
- creates `MyteCommandCenter/data/qaqc` automatically if it does not exist
|
|
147
|
+
- creates `MyteCommandCenter/data/qaqc.yml` automatically if it does not exist
|
|
105
148
|
- syncs only active `Todo` and `In Progress` missions
|
|
106
149
|
- writes a public QAQC summary per mission, not raw `qa_qc_results` or raw batch docs
|
|
107
|
-
-
|
|
150
|
+
- keeps active mission QAQC state in one deterministic file that grows and shrinks with the current working set
|
|
151
|
+
- fully rewrites `MyteCommandCenter/data/qaqc.yml` on every sync and does not delete `MyteCommandCenter/data/missions/*.yml`
|
|
108
152
|
|
|
109
153
|
Files written:
|
|
110
154
|
- `MyteCommandCenter/data/project.yml`
|
|
111
|
-
- `MyteCommandCenter/data/
|
|
112
|
-
- `MyteCommandCenter/data/qaqc/active-missions/<mission_id>.yml`
|
|
113
|
-
- `MyteCommandCenter/data/qaqc/manifest.json`
|
|
114
|
-
- `MyteCommandCenter/data/qaqc/latest-batch.json`
|
|
155
|
+
- `MyteCommandCenter/data/qaqc.yml`
|
|
115
156
|
|
|
116
157
|
Useful forms:
|
|
117
158
|
- `npx myte sync-qaqc --json`
|
|
118
159
|
- `npx myte sync-qaqc --dry-run --json`
|
|
119
160
|
- `npx myte sync-qaqc --output-dir ./MyteCommandCenter`
|
|
120
161
|
|
|
162
|
+
## Sync open feedback and PRD context
|
|
163
|
+
|
|
164
|
+
Run this from the wrapper root that contains the project's repo folders:
|
|
165
|
+
|
|
166
|
+
- `npx myte feedback-sync`
|
|
167
|
+
- or `npm exec myte -- feedback-sync`
|
|
168
|
+
- or `myte feedback-sync`
|
|
169
|
+
|
|
170
|
+
What it does:
|
|
171
|
+
- fetches a project-scoped feedback snapshot from the API using your project key
|
|
172
|
+
- defaults to open `Pending` feedback
|
|
173
|
+
- writes one deterministic feedback snapshot under `MyteCommandCenter/data/feedback.yml`
|
|
174
|
+
- includes readable PRD markdown inline when available
|
|
175
|
+
- fully replaces the aggregated feedback sync file so stale feedback does not accumulate locally
|
|
176
|
+
- does not delete `MyteCommandCenter/data/missions/*.yml`
|
|
177
|
+
|
|
178
|
+
Files written:
|
|
179
|
+
- `MyteCommandCenter/data/project.yml`
|
|
180
|
+
- `MyteCommandCenter/data/feedback.yml`
|
|
181
|
+
|
|
182
|
+
Useful forms:
|
|
183
|
+
- `npx myte feedback-sync --json`
|
|
184
|
+
- `npx myte feedback-sync --dry-run --json`
|
|
185
|
+
- `npx myte feedback-sync --status Pending --source User`
|
|
186
|
+
|
|
187
|
+
## Sync and iterate on mission suggestions
|
|
188
|
+
|
|
189
|
+
- `npx myte suggestions sync`
|
|
190
|
+
- or `npm exec myte -- suggestions sync`
|
|
191
|
+
- or `myte suggestions sync`
|
|
192
|
+
|
|
193
|
+
What it does:
|
|
194
|
+
- fetches the project suggestion workflow snapshot with the project API key
|
|
195
|
+
- writes one deterministic workflow file at `MyteCommandCenter/data/mission-ops.yml`
|
|
196
|
+
- keeps active first-come-first-serve queue state in `queue`
|
|
197
|
+
- keeps full lineage for active and terminal items in `threads[]`
|
|
198
|
+
- `suggestions sync` should be the first step before ideating locally so new submissions start from the latest aggregated thread state
|
|
199
|
+
- preserves top-level `workspace.<actor_scope>` blocks and per-thread `workspace.<actor_scope>` drafts across sync so coding agents can keep local drafts in one file
|
|
200
|
+
- synced `threads[]` include aggregate diffs, conflict summaries, and archived decision lineage so local agents do not need to reconstruct review state
|
|
201
|
+
|
|
202
|
+
Create/revise/review:
|
|
203
|
+
- `npx myte suggestions create --file ./changes/create.yml`
|
|
204
|
+
- `npx myte suggestions revise --file ./changes/revise.yml`
|
|
205
|
+
- `npx myte suggestions review --file ./changes/review.yml`
|
|
206
|
+
|
|
207
|
+
Local single-file mode:
|
|
208
|
+
- `suggestions create` can read local `workspace.<actor_scope>.draft_submissions[]` from `mission-ops.yml`
|
|
209
|
+
- `suggestions revise` can read local per-thread `workspace.<actor_scope>` draft blocks when `draft_status` is `submit`, `ready`, or `pending_submit`
|
|
210
|
+
- `suggestions review` is owner-only and can read local per-thread owner review blocks using `review_action`, `review_note`, `final_change_set`, and `review_revision`
|
|
211
|
+
- `suggestions review` requires an explicit `review_action` of `request_changes`, `approve`, or `reject`
|
|
212
|
+
- there is no persisted save-draft review action
|
|
213
|
+
- suggestion notifications deep-link into the project Reviews workspace for the affected thread
|
|
214
|
+
- create/revise/review resync `mission-ops.yml` by default unless `--no-sync` is passed
|
|
215
|
+
- create/revise/review auto-send idempotency and client-session metadata so retries stay deterministic without manual headers
|
|
216
|
+
- `--print-context` prints the JSON payload that would be submitted for create/revise/review
|
|
217
|
+
- after successful review approvals, the CLI rewrites the affected `MyteCommandCenter/data/missions/*.yml` cards automatically
|
|
218
|
+
|
|
219
|
+
Useful forms:
|
|
220
|
+
- `npx myte suggestions sync --json`
|
|
221
|
+
- `npx myte suggestions create --file ./changes/create.yml --json`
|
|
222
|
+
- `npx myte suggestions create`
|
|
223
|
+
- `npx myte suggestions revise`
|
|
224
|
+
- `npx myte suggestions review`
|
|
225
|
+
|
|
121
226
|
## Query with deterministic diff context
|
|
122
227
|
|
|
123
228
|
Example:
|
|
@@ -150,7 +255,9 @@ Examples:
|
|
|
150
255
|
|
|
151
256
|
- File path:
|
|
152
257
|
- `npx myte create-prd ./drafts/auth-prd.md`
|
|
258
|
+
- `npx myte create-prd ./drafts/auth-prd.md ./drafts/billing-prd.md`
|
|
153
259
|
- or `npm exec myte -- create-prd ./drafts/auth-prd.md`
|
|
260
|
+
- or `npm exec myte -- create-prd ./drafts/auth-prd.md ./drafts/billing-prd.md`
|
|
154
261
|
- or `npx myte@latest create-prd ./drafts/auth-prd.md`
|
|
155
262
|
- From stdin on macOS/Linux:
|
|
156
263
|
- `cat ./drafts/auth-prd.md | npx myte create-prd --stdin`
|
|
@@ -184,14 +291,17 @@ Raw markdown also works:
|
|
|
184
291
|
|
|
185
292
|
Deterministic field mapping:
|
|
186
293
|
- Required: a valid project API key, the PRD markdown body, and a title.
|
|
294
|
+
- One command can upload one file or many files. Single uploads hit `/project-assistant/create-prd`; multi-file uploads automatically use the batch upload path.
|
|
187
295
|
- `title` maps to the feedback title.
|
|
188
296
|
- `description` maps to the feedback description/card summary. Legacy `feedback_text` is still accepted for older payloads.
|
|
189
|
-
- The
|
|
297
|
+
- The context blob that becomes the stored PRD document is the full `prd_markdown`, or the markdown body after the `myte-kanban` metadata block when using `ticket_markdown`.
|
|
298
|
+
- That PRD markdown blob is stored verbatim as PRD content.
|
|
190
299
|
- The backend uses that stored PRD markdown/text to generate the downloadable PRD DOCX.
|
|
191
300
|
- Additional structured fields should go in the `myte-kanban` JSON block. Supported keys include `priority`, `status`, `tags`, `assigned_user_email`, `assigned_user_id`, `due_date`, `repo_name`, `repo_id`, `preview_url`, and `source`.
|
|
192
301
|
|
|
193
302
|
To inspect the exact payload before sending it:
|
|
194
303
|
- `npx myte create-prd ./drafts/auth-prd.md --print-context`
|
|
304
|
+
- `npx myte create-prd ./drafts/auth-prd.md ./drafts/billing-prd.md --print-context`
|
|
195
305
|
- `npx myte create-prd ./drafts/auth-prd.md --description "Short card summary" --print-context`
|
|
196
306
|
|
|
197
307
|
## Team updates
|
|
@@ -214,6 +324,27 @@ Useful forms:
|
|
|
214
324
|
- `npx myte update-team "Backend deploy completed." --print-context`
|
|
215
325
|
- `npx myte update-team "Backend deploy completed." --json`
|
|
216
326
|
|
|
327
|
+
## Owner updates
|
|
328
|
+
|
|
329
|
+
Use `update-owner` to send a direct project-owner email through the project-key Project Assistant surface.
|
|
330
|
+
|
|
331
|
+
Examples:
|
|
332
|
+
|
|
333
|
+
- `npx myte update-owner --subject "QAQC progress" --body-file ./updates/owner.md`
|
|
334
|
+
- `npx myte update-owner --subject "Board cleanup needed" --body-markdown "## Status\n- Phase 2 review pending"`
|
|
335
|
+
- `Get-Content -Raw .\updates\owner.md | npx myte update-owner --stdin --subject "Owner update"`
|
|
336
|
+
|
|
337
|
+
What it sends:
|
|
338
|
+
|
|
339
|
+
- `POST /api/project-assistant/update-owner`
|
|
340
|
+
- payload: `{ "subject": "...", "body_markdown": "..." }`
|
|
341
|
+
|
|
342
|
+
Notes:
|
|
343
|
+
|
|
344
|
+
- the owner recipient is resolved from the authenticated project
|
|
345
|
+
- the CLI cannot set an arbitrary recipient address
|
|
346
|
+
- the backend sends the email through Myte SMTP and stores a durable send record
|
|
347
|
+
|
|
217
348
|
## Client update drafts
|
|
218
349
|
|
|
219
350
|
Use `update-client` to draft a branded client update email for owner review.
|
|
@@ -242,8 +373,14 @@ Notes:
|
|
|
242
373
|
- `npm install myte`
|
|
243
374
|
- `npx myte bootstrap`
|
|
244
375
|
- `npx myte sync-qaqc`
|
|
376
|
+
- `npx myte feedback-sync`
|
|
377
|
+
- `npx myte suggestions sync`
|
|
378
|
+
- `npx myte suggestions create --file ./changes/create.yml`
|
|
379
|
+
- `npx myte suggestions revise`
|
|
380
|
+
- `npx myte suggestions review`
|
|
245
381
|
- `npx myte config --json`
|
|
246
382
|
- `npx myte query "Summarize the current branch changes" --with-diff`
|
|
247
383
|
- `npx myte create-prd ./drafts/auth-prd.md`
|
|
248
384
|
- `npx myte update-team "Backend deploy completed; QAQC rerun queued."`
|
|
385
|
+
- `npx myte update-owner --subject "QAQC progress" --body-file ./updates/owner.md`
|
|
249
386
|
- `npx myte update-client --subject "Weekly client update" --body-file ./updates/week-12.md`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myte",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.9",
|
|
4
4
|
"description": "Myte developer CLI (Project Assistant + deterministic diffs).",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"license": "MIT",
|
|
@@ -16,6 +16,6 @@
|
|
|
16
16
|
"node": ">=18"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@mytegroupinc/myte-core": "0.0.
|
|
19
|
+
"@mytegroupinc/myte-core": "0.0.9"
|
|
20
20
|
}
|
|
21
21
|
}
|