@massa-ai/cursor-plugin 1.24.0 → 1.26.0

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.
Files changed (102) hide show
  1. package/.cursor-plugin/plugin.json +1 -1
  2. package/agent-profiles/balanced/massa-ai-architecture-specialist.md +62 -0
  3. package/agent-profiles/balanced/massa-ai-audit-specialist.md +78 -0
  4. package/agent-profiles/balanced/massa-ai-builder.md +63 -0
  5. package/agent-profiles/balanced/massa-ai-context-curator.md +64 -0
  6. package/agent-profiles/balanced/massa-ai-documentation-agent.md +61 -0
  7. package/agent-profiles/balanced/massa-ai-furps-analyst.md +68 -0
  8. package/agent-profiles/balanced/massa-ai-investigator.md +65 -0
  9. package/agent-profiles/balanced/massa-ai-judge.md +99 -0
  10. package/agent-profiles/balanced/massa-ai-meta-judge.md +86 -0
  11. package/agent-profiles/balanced/massa-ai-mobile-specialist.md +79 -0
  12. package/agent-profiles/balanced/massa-ai-navigator.md +72 -0
  13. package/agent-profiles/balanced/massa-ai-plan-critic.md +87 -0
  14. package/agent-profiles/balanced/massa-ai-planner.md +62 -0
  15. package/agent-profiles/balanced/massa-ai-requirements-analyst.md +61 -0
  16. package/agent-profiles/balanced/massa-ai-reviewer.md +63 -0
  17. package/agent-profiles/balanced/massa-ai-test-engineer.md +62 -0
  18. package/agent-profiles/balanced/massa-ai-verification-agent.md +62 -0
  19. package/agent-profiles/cheap/massa-ai-architecture-specialist.md +62 -0
  20. package/agent-profiles/cheap/massa-ai-audit-specialist.md +78 -0
  21. package/agent-profiles/cheap/massa-ai-builder.md +63 -0
  22. package/agent-profiles/cheap/massa-ai-context-curator.md +64 -0
  23. package/agent-profiles/cheap/massa-ai-documentation-agent.md +61 -0
  24. package/agent-profiles/cheap/massa-ai-furps-analyst.md +68 -0
  25. package/agent-profiles/cheap/massa-ai-investigator.md +65 -0
  26. package/agent-profiles/cheap/massa-ai-judge.md +99 -0
  27. package/agent-profiles/cheap/massa-ai-meta-judge.md +86 -0
  28. package/agent-profiles/cheap/massa-ai-mobile-specialist.md +79 -0
  29. package/agent-profiles/cheap/massa-ai-navigator.md +72 -0
  30. package/agent-profiles/cheap/massa-ai-plan-critic.md +87 -0
  31. package/agent-profiles/cheap/massa-ai-planner.md +62 -0
  32. package/agent-profiles/cheap/massa-ai-requirements-analyst.md +61 -0
  33. package/agent-profiles/cheap/massa-ai-reviewer.md +63 -0
  34. package/agent-profiles/cheap/massa-ai-test-engineer.md +62 -0
  35. package/agent-profiles/cheap/massa-ai-verification-agent.md +62 -0
  36. package/agent-profiles/heavy/massa-ai-architecture-specialist.md +62 -0
  37. package/agent-profiles/heavy/massa-ai-audit-specialist.md +78 -0
  38. package/agent-profiles/heavy/massa-ai-builder.md +63 -0
  39. package/agent-profiles/heavy/massa-ai-context-curator.md +64 -0
  40. package/agent-profiles/heavy/massa-ai-documentation-agent.md +61 -0
  41. package/agent-profiles/heavy/massa-ai-furps-analyst.md +68 -0
  42. package/agent-profiles/heavy/massa-ai-investigator.md +65 -0
  43. package/agent-profiles/heavy/massa-ai-judge.md +99 -0
  44. package/agent-profiles/heavy/massa-ai-meta-judge.md +86 -0
  45. package/agent-profiles/heavy/massa-ai-mobile-specialist.md +79 -0
  46. package/agent-profiles/heavy/massa-ai-navigator.md +72 -0
  47. package/agent-profiles/heavy/massa-ai-plan-critic.md +87 -0
  48. package/agent-profiles/heavy/massa-ai-planner.md +62 -0
  49. package/agent-profiles/heavy/massa-ai-requirements-analyst.md +61 -0
  50. package/agent-profiles/heavy/massa-ai-reviewer.md +63 -0
  51. package/agent-profiles/heavy/massa-ai-test-engineer.md +62 -0
  52. package/agent-profiles/heavy/massa-ai-verification-agent.md +62 -0
  53. package/agent-profiles/home/massa-ai-architecture-specialist.md +62 -0
  54. package/agent-profiles/home/massa-ai-audit-specialist.md +78 -0
  55. package/agent-profiles/home/massa-ai-builder.md +63 -0
  56. package/agent-profiles/home/massa-ai-context-curator.md +64 -0
  57. package/agent-profiles/home/massa-ai-documentation-agent.md +61 -0
  58. package/agent-profiles/home/massa-ai-furps-analyst.md +68 -0
  59. package/agent-profiles/home/massa-ai-investigator.md +65 -0
  60. package/agent-profiles/home/massa-ai-judge.md +99 -0
  61. package/agent-profiles/home/massa-ai-meta-judge.md +86 -0
  62. package/agent-profiles/home/massa-ai-mobile-specialist.md +79 -0
  63. package/agent-profiles/home/massa-ai-navigator.md +72 -0
  64. package/agent-profiles/home/massa-ai-plan-critic.md +87 -0
  65. package/agent-profiles/home/massa-ai-planner.md +62 -0
  66. package/agent-profiles/home/massa-ai-requirements-analyst.md +61 -0
  67. package/agent-profiles/home/massa-ai-reviewer.md +63 -0
  68. package/agent-profiles/home/massa-ai-test-engineer.md +62 -0
  69. package/agent-profiles/home/massa-ai-verification-agent.md +62 -0
  70. package/agent-profiles/work/massa-ai-architecture-specialist.md +62 -0
  71. package/agent-profiles/work/massa-ai-audit-specialist.md +78 -0
  72. package/agent-profiles/work/massa-ai-builder.md +63 -0
  73. package/agent-profiles/work/massa-ai-context-curator.md +64 -0
  74. package/agent-profiles/work/massa-ai-documentation-agent.md +61 -0
  75. package/agent-profiles/work/massa-ai-furps-analyst.md +68 -0
  76. package/agent-profiles/work/massa-ai-investigator.md +65 -0
  77. package/agent-profiles/work/massa-ai-judge.md +99 -0
  78. package/agent-profiles/work/massa-ai-meta-judge.md +86 -0
  79. package/agent-profiles/work/massa-ai-mobile-specialist.md +79 -0
  80. package/agent-profiles/work/massa-ai-navigator.md +72 -0
  81. package/agent-profiles/work/massa-ai-plan-critic.md +87 -0
  82. package/agent-profiles/work/massa-ai-planner.md +62 -0
  83. package/agent-profiles/work/massa-ai-requirements-analyst.md +61 -0
  84. package/agent-profiles/work/massa-ai-reviewer.md +63 -0
  85. package/agent-profiles/work/massa-ai-test-engineer.md +62 -0
  86. package/agent-profiles/work/massa-ai-verification-agent.md +62 -0
  87. package/install.sh +32 -7
  88. package/package.json +2 -1
  89. package/skills/massa-ai/personas/ai-native-nodejs-cli-architect.md +27 -56
  90. package/skills/massa-ai/personas/catalog.json +7 -157
  91. package/skills/massa-ai/personas/context-skill-harness-engineer-architect.md +28 -55
  92. package/skills/massa-ai/personas/product-manager.md +21 -23
  93. package/skills/massa-ai/personas/senior-mobile-engineer.md +29 -57
  94. package/skills/massa-ai/personas/senior-mobile-qa-automation-engineer.md +33 -57
  95. package/skills/massa-ai/personas/signals/ai-native-nodejs-cli-architect.json +20 -0
  96. package/skills/massa-ai/personas/signals/context-skill-harness-engineer-architect.json +20 -0
  97. package/skills/massa-ai/personas/signals/product-manager.json +21 -0
  98. package/skills/massa-ai/personas/signals/senior-mobile-engineer.json +18 -0
  99. package/skills/massa-ai/personas/signals/senior-mobile-qa-automation-engineer.json +18 -0
  100. package/skills/persona-router/SKILL.md +26 -150
  101. package/skills/persona-router/references/routing-details.md +98 -0
  102. package/skills/profile/SKILL.md +39 -0
@@ -0,0 +1,98 @@
1
+ # Persona Routing Details
2
+
3
+ Load this reference from `SKILL.md` only when one of its load conditions fires:
4
+ a failure needs reporting, ambiguity needs a user question, a mid-conversation
5
+ reroute is in doubt, or the user requests multiple personas. Routing itself
6
+ runs from `SKILL.md` alone.
7
+
8
+ ## Persona ↔ Sub-Agent Overlap
9
+
10
+ Four catalog entries deliberately overlap an agent charter. The persona is the
11
+ main agent's stance; the agent is a separately dispatched specialist. Applying
12
+ one never implies the other ran.
13
+
14
+ | Persona | Overlapping agent |
15
+ |---|---|
16
+ | `senior-mobile-engineer` | `massa-ai-mobile-specialist` |
17
+ | `senior-mobile-qa-automation-engineer` | `massa-ai-test-engineer` |
18
+ | `context-skill-harness-engineer-architect` | `massa-ai-architecture-specialist` |
19
+ | `product-manager` | `massa-ai-requirements-analyst` |
20
+
21
+ ## Multi-Persona Requests
22
+
23
+ If multiple personas are explicitly requested, the persona owning the primary
24
+ deliverable leads and at most one other becomes a review lens. Apply the
25
+ ambiguity policy if ownership remains unclear. The review lens contributes only
26
+ checks that reduce a concrete risk; never produce independent persona answers,
27
+ simulate a debate, or merge full voices.
28
+
29
+ ## Ambiguity And No-Match Behavior
30
+
31
+ When two or more candidates remain genuinely plausible:
32
+
33
+ - `ambiguity: ask` — ask one concise question listing the plausible persona
34
+ display names and `No persona`. Use an interactive user-input tool when
35
+ available; otherwise ask in plain text.
36
+ - `ambiguity: best_match` — choose the strongest current-deliverable owner,
37
+ then project-specific evidence, then recent valid memory.
38
+ - `ambiguity: no_persona` — continue without a persona.
39
+
40
+ When no catalog entry fits:
41
+
42
+ - `no_match: no_persona` — continue silently unless the user explicitly
43
+ requested routing.
44
+ - `no_match: ask` — ask about the weakly supported candidate versus
45
+ `No persona`; with no supported candidate, ask only about `No persona`
46
+ versus an explicitly named catalog choice.
47
+
48
+ Do not ask when the request confidently falls outside every cataloged persona —
49
+ that is a successful no-persona route, not ambiguity.
50
+
51
+ ## Route Lifetime Detail
52
+
53
+ With `mid_conversation: task_change`, re-evaluate only when the user explicitly
54
+ switches, the primary deliverable changes ownership, a new task begins after
55
+ completion, or the selected catalog entry becomes invalid. With
56
+ `explicit_only`, re-evaluate only on explicit request. Do not reroute because a
57
+ follow-up adds a supporting concern, asks for verification, or mentions another
58
+ persona's terminology. If a task change creates genuine ambiguity and policy
59
+ says `ask`, ask before substantive work continues. After resume or compaction,
60
+ restore any route still present in conversation context without re-announcing
61
+ it or repeating a resolved question; if unavailable, run the normal workflow
62
+ again — no separate route database exists.
63
+
64
+ ## Routing Examples
65
+
66
+ | Situation | Result |
67
+ |---|---|
68
+ | User explicitly asks for Senior Mobile QA Automation Engineer. | Apply that entry; explicit choice wins. |
69
+ | Project `AGENTS.md` pins a valid catalog id. | Pin fast path: read only that prompt; no recall, docs, signals, or classification. |
70
+ | Pin names an id absent from the catalog. | One-line invalid-pin report; continue with the normal workflow. |
71
+ | Memory recalls a successful route, current prompt asks to fix flaky Maestro CI. | Route to Senior Mobile QA Automation Engineer; memory cannot override current ownership. |
72
+ | Memory empty; docs describe a cross-platform app; prompt asks to implement offline sync. | Route to Senior Mobile Engineer from docs plus current deliverable. |
73
+ | Prompt asks for both app architecture and an automation suite, no primary outcome. | Follow `ambiguity`; default asks between plausible personas and no persona. |
74
+ | Prompt asks to draft a billing RFC. | Confident no-match; continue silently without a persona. |
75
+ | `enabled: off` and prompt names no persona. | Skip inference; continue without a persona. |
76
+ | Memory names a removed persona id. | Discard stale memory; continue to docs and classification. |
77
+ | Mobile implementation finishes; user starts a flake-reduction task. | With `task_change`, re-evaluate and announce the new route once. |
78
+
79
+ ## Failure Handling Table
80
+
81
+ - **Catalog missing or invalid:** report `Persona routing unavailable:
82
+ <reason>.` Continue without a persona.
83
+ - **Unsupported schema version:** report found and supported versions.
84
+ Continue without a persona.
85
+ - **massa-ai unavailable or empty:** continue with targeted workspace
86
+ documentation and the current prompt; skip route-memory reads and writes.
87
+ - **Workspace documentation unavailable:** route from explicit choice, pin,
88
+ and current prompt; apply the ambiguity or no-match policy.
89
+ - **Remembered persona absent from catalog:** ignore it as stale evidence;
90
+ never reconstruct it.
91
+ - **Selected prompt missing, outside the persona-library root, or malformed:**
92
+ name the catalog entry and path. Continue without a persona; never silently
93
+ substitute another persona.
94
+ - **Signals file missing during classification:** report the entry and path;
95
+ the candidate stays matchable by summary and aliases.
96
+ - **User cannot be asked interactively:** ask one concise plain-text question
97
+ when policy requires a choice; otherwise use the configured non-interactive
98
+ behavior.
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: profile
3
+ description: Switch the installed massa-ai agents to a registry model profile (e.g. "work", "cheap", "home") or report the currently active profile per host. Use when the user asks to change/switch the model profile, asks which models the agents currently use, or asks to preview a profile switch. Do NOT use for editing the model registry itself (a registry edit is a massa-ai repository change, not a runtime switch) and do NOT claim the new profile is active before the user restarts the host session.
4
+ license: MIT
5
+ metadata:
6
+ author: Luiz Massa
7
+ version: 1.0.0
8
+ ---
9
+
10
+ # Profile Switch Skill
11
+
12
+ ## Mission
13
+ Drive the one massa-ai model-profile switch engine and relay its report — never a second implementation.
14
+
15
+ ## When To Use
16
+ - The user asks to switch, change, or set the model profile (by name, e.g. "work", "cheap", "home", "balanced").
17
+ - The user asks what profile is currently active, or which profiles are shipped.
18
+ - The user asks to preview a switch without applying it.
19
+
20
+ ## How To Drive It
21
+ There is exactly one switch implementation (`@massa-ai/shared`'s switch engine); every front — this skill, the MCP tools, and both `massa-ai-config` CLIs — calls the same engine and returns the same per-host report shape. Prefer whichever front is already available in the session:
22
+
23
+ - **MCP tools** (preferred when the massa-ai MCP server is connected): call `profile_list` to report shipped profiles + per-host active profile + bundle version, and `profile_set` to switch (`{profile, host?, dryRun?}`).
24
+ - **CLI fallback**: `massa-ai-config profile list` / `massa-ai-config profile show` / `massa-ai-config profile set <name> [--host <h>] [--dry-run]`.
25
+
26
+ Default to a dry run first when the user has not explicitly asked to apply the switch immediately — `dryRun: true` (MCP) or `--dry-run` (CLI) previews the per-host plan and changes nothing.
27
+
28
+ ## Relaying The Result
29
+ Always relay the per-host outcome and the restart notice verbatim in substance, not just "done":
30
+
31
+ - Report each host as switched / skipped (with its reason) / unsupported (with its reason) / failed (with its reason). Cursor is always reported skipped — every tier resolves to inherit, so switching it is a no-op by design, not an error.
32
+ - When at least one host switched (non-dry-run), state explicitly that a session restart of that host is required before the new models take effect — hosts load agent definitions at session start; there is no live in-session switch.
33
+ - On a dry run, say so and that no files changed.
34
+ - On a fully failed request (e.g. unknown profile name), relay the named error and the list of profiles the report says are actually available — never guess a profile name.
35
+
36
+ ## Restrictions
37
+ - Never invent a profile name; only use names the engine's own report lists as shipped/available.
38
+ - Never claim a profile switch is "live" before the affected host's session restarts.
39
+ - Never edit the model-profile registry (`skills/model-profiles.json`) to satisfy a switch request — that is a build-time registry change owned by a different workflow, not a runtime switch.