@mutmutco/cursor-plugin 4.3.47 → 4.3.49
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: org-guide
|
|
3
|
-
description: Read
|
|
3
|
+
description: Read org rules for project work and reporting MMI CLI, plugin, or workflow bugs.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# MMI organization guide
|
|
@@ -19,6 +19,9 @@ the [MMI help skill](../mmi-help/SKILL.md).
|
|
|
19
19
|
Do not commit AGENTS.md, CLAUDE.md, or copied plugin instructions.
|
|
20
20
|
- Claim approved work through the board, use the repository's checks, and land through MMI.
|
|
21
21
|
A request for help or a plan does not authorize a change or a production release.
|
|
22
|
+
- When an MMI tooling bug affects a developer other than `jervaise`, ask before filing a Hub report.
|
|
23
|
+
Respect a decline. Follow [Work and releases](references/work-and-releases.md#report-mmi-tooling-bugs)
|
|
24
|
+
for consent, duplicate handling, and optional released-fix Slack notifications.
|
|
22
25
|
- Read the registry for release tracks, domains, and OAuth configuration. Use MMI provisioning
|
|
23
26
|
and release workflows rather than inventing parallel deployment or credential paths.
|
|
24
27
|
|
|
@@ -27,6 +30,7 @@ the [MMI help skill](../mmi-help/SKILL.md).
|
|
|
27
30
|
| Task | Local reference |
|
|
28
31
|
| --- | --- |
|
|
29
32
|
| Install, update, reload, or diagnose tooling | [Getting started](references/getting-started.md) |
|
|
33
|
+
| Report an MMI tooling bug with developer consent | [Tooling bug reports](references/work-and-releases.md#report-mmi-tooling-bugs) |
|
|
30
34
|
| Work an issue, test, merge, or release | [Work and releases](references/work-and-releases.md) |
|
|
31
35
|
| Consume, declare, rotate, or request a secret | [Vault and keyless access](references/vault.md) |
|
|
32
36
|
| Register domains or configure Google OAuth | [Domains and OAuth](references/domains-and-oauth.md) |
|
|
@@ -10,6 +10,12 @@ The organization ruleset restricts AGENTS.md, CLAUDE.md, GEMINI.md, the .claude,
|
|
|
10
10
|
directories, and .cursor/rules at any depth in covered repositories. Designated distribution-source
|
|
11
11
|
repositories have centrally managed exceptions; a product developer must not invent a bypass.
|
|
12
12
|
Do not force-add ignored files or commit plugin caches to work around delivery problems.
|
|
13
|
+
Never disable an org ruleset (`mmi-branch-protection`, `mmi-train-floor`, `mmi-no-agent-files-org`)
|
|
14
|
+
by hand to push past it. When the owner has approved a bounded relaxation window, the restore is
|
|
15
|
+
unconditional, not a later step in the same chain: a failed push after the disable must still
|
|
16
|
+
re-enable the ruleset (shell `trap`/`finally`), and the run ends by reading the ruleset back as
|
|
17
|
+
`enforcement: active`. A one-liner of `disable && push` leaves protection off the moment the push
|
|
18
|
+
is rejected.
|
|
13
19
|
|
|
14
20
|
Do not create repository environment files to hold runtime configuration or secrets.
|
|
15
21
|
Use the declared vault and supported [keyless workflows](vault.md), including for local stages.
|
|
@@ -18,6 +18,47 @@ Open a PR through `mmi-cli devops pr create` with a closing issue link, and land
|
|
|
18
18
|
`mmi-cli devops pr land`. Verify required checks, merge, issue closure, and cleanup before calling
|
|
19
19
|
the implementation complete. A merged implementation is not a production release.
|
|
20
20
|
|
|
21
|
+
## Report MMI tooling bugs
|
|
22
|
+
|
|
23
|
+
This workflow covers bugs in MMI tooling, including its CLI, plugin, and shared workflows.
|
|
24
|
+
Product bugs stay with their product; do not automatically file them on the Hub board.
|
|
25
|
+
For every developer other than authenticated GitHub login `jervaise`, ask for consent before
|
|
26
|
+
filing a tooling bug through `mmi-cli learning report`. Do not infer identity from a display name
|
|
27
|
+
or Slack email. The owner exemption skips this consent workflow and its released-fix DMs.
|
|
28
|
+
|
|
29
|
+
Show a safe summary, affected MMI version, and minimal reproduction. Explain that approval files
|
|
30
|
+
or attaches the report to an existing Hub issue and notifies Jervaise through the MMI-Future Slack app.
|
|
31
|
+
Wait for explicit approval; a decline means no
|
|
32
|
+
report, no alternate filing command, and no repeated consent prompt for the same incident.
|
|
33
|
+
Remove secrets and private data from the title, reproduction, and logs before sending anything.
|
|
34
|
+
Write the approved report body to a UTF-8 file; never put it in command arguments.
|
|
35
|
+
|
|
36
|
+
Use `mmi-cli learning report --type bug --title "<safe summary>" --body-file <path>`.
|
|
37
|
+
Let the existing report command handle duplicates; reuse its returned issue and never add
|
|
38
|
+
`--force` to bypass matching or file another issue for the same incident. Do not claim or poll
|
|
39
|
+
the issue; the Hub team owns the fix.
|
|
40
|
+
|
|
41
|
+
On the first approved report without a saved Slack destination, ask once whether the developer
|
|
42
|
+
wants a DM when the fix is released. If they agree, ask them to confirm their Slack workspace
|
|
43
|
+
email and append `--slack-email <confirmed-email>`. This email is a notification destination,
|
|
44
|
+
not verified identity or authorization. Never guess it from GitHub profile data, use another
|
|
45
|
+
person's address, or include it in the public issue body. The Hub stores the confirmed email privately
|
|
46
|
+
until scheduled Slack lookup succeeds, then replaces it with the Slack user ID for later reports.
|
|
47
|
+
Declining notifications does not prevent filing the approved bug report.
|
|
48
|
+
|
|
49
|
+
Read the returned `notification.status`: `tracked` means the released-fix notification is
|
|
50
|
+
registered for scheduled processing, not delivered, `needs-slack-email` means no saved destination
|
|
51
|
+
was found, `unavailable` means the
|
|
52
|
+
issue was filed but notification registration failed, and `owner-excluded` means no owner DM.
|
|
53
|
+
If `needs-slack-email` follows a report where the notification question was not yet asked, ask
|
|
54
|
+
once; use the same report with the confirmed email so dedup retains its issue. Never retry an
|
|
55
|
+
ambiguous report submission. Do not claim a DM is registered when the status is unavailable,
|
|
56
|
+
and do not replay a valid report merely to repair notification failure. Unresolved Slack
|
|
57
|
+
lookup remains pending in the notification record; it must not use an old destination.
|
|
58
|
+
The MMI-Future app sends a fix DM only after the issue's closing merge is included in a stable
|
|
59
|
+
Hub release whose publication and deployment both succeeded. Closing an issue alone is not enough.
|
|
60
|
+
An uncertain Slack send is recorded for operator review and never replayed automatically.
|
|
61
|
+
|
|
21
62
|
## Choose the declared train
|
|
22
63
|
|
|
23
64
|
Read `mmi-cli oracle org project get <owner/repo> --json` and `mmi-cli status` for the resolved track.
|
package/skills/release/SKILL.md
CHANGED
|
@@ -50,7 +50,7 @@ Read the receipt at `$r`, never the exit code (exit `2` = shipped with a follow-
|
|
|
50
50
|
- `releaseVerdict.releaseStatus` + `followUpStatus` — `succeeded` + `pending` is shipped with the follow-up unresolved: neither failed nor done.
|
|
51
51
|
- `deployStatus` — `pending` is never terminal; `promoted: true` holds even when a deploy failed.
|
|
52
52
|
- `workflowRuns` — every run on the release SHA (deploy-model runs, any `push: main` deploy, the repo's own `gate`). Watch each non-success entry to conclusion: `gh run watch <run-id> --repo {owner}/{repo} --exit-status`. Name which run is red: `deploy.yml` / `publish.yml` / `tenant-deploy.yml` / `jerv-gateway` is a deploy or publish verdict; a `gate` push run is ordinary CI sharing the SHA.
|
|
53
|
-
- With `--watch` the train waits for its own alignment PR to land (true merge) and folds the ledger in the same run, so the receipt ends `succeeded` / `complete`. An external `gh run watch` never folds anything: if the receipt still shows a `pending` leg (no `--watch`,
|
|
53
|
+
- With `--watch` the train waits for its own alignment PR to land (true merge) and folds the ledger in the same run, so the receipt ends `succeeded` / `complete`. An external `gh run watch` never folds anything: if the receipt still shows a `pending` leg (no `--watch`, the alignment PR outlived the bounded wait, or a release-event `publish.yml` run on a registry-publish repo had not been correlated by the time the receipt was written — `--watch` waits for the alignment PR, not for that run, so a `publish` leg `pending` with no run URL after `--watch` is the expected direct-track shape, not a failure), fold it live before declaring the cut done or starting any new train: `mmi-cli devops release --resume --watch --json --out <fresh-receipt>`; the NEXT train's doctor otherwise refuses with `ledger-pending`.
|
|
54
54
|
- `announceNote` — `announced` (to the alerts channel for the Hub, to the project release channel for a product repo), `skipped`, or the failure note. The channel id itself is never printed.
|
|
55
55
|
- `devRollForward` / `rcAlignment` — `pushed`, or `pr-pending` with the alignment PR to land by true merge (Merge floor). An enqueued auto-merge is not evidence of the method; before reporting, read the enqueued method back — `gh pr view <n> --json autoMergeRequest --jq .autoMergeRequest.mergeMethod` — and prove it is `MERGE`. An enqueued `SQUASH` is a stop under the Merge floor, not something to wait out.
|
|
56
56
|
- `versionFold`, `rcRetirement`, `checkout` — `returned`, or the named reason you are still on `main`.
|