@massa-ai/claude-plugin 1.60.1 → 1.62.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.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +2 -4
- package/agent-profiles/{home/massa-ai-builder.md → balanced/builder.md} +4 -4
- package/agent-profiles/balanced/code-explorer.md +103 -0
- package/agent-profiles/balanced/code-reviewer.md +135 -0
- package/agent-profiles/balanced/designer.md +85 -0
- package/agent-profiles/balanced/judge.md +148 -0
- package/agent-profiles/balanced/product-manager.md +109 -0
- package/agent-profiles/balanced/test-engineer.md +101 -0
- package/agent-profiles/cheap/{massa-ai-builder.md → builder.md} +4 -4
- package/agent-profiles/cheap/code-explorer.md +103 -0
- package/agent-profiles/cheap/code-reviewer.md +135 -0
- package/agent-profiles/cheap/designer.md +85 -0
- package/agent-profiles/cheap/judge.md +148 -0
- package/agent-profiles/cheap/product-manager.md +109 -0
- package/agent-profiles/cheap/test-engineer.md +101 -0
- package/agent-profiles/heavy/{massa-ai-builder.md → builder.md} +4 -4
- package/agent-profiles/heavy/code-explorer.md +103 -0
- package/agent-profiles/heavy/code-reviewer.md +135 -0
- package/agent-profiles/heavy/designer.md +85 -0
- package/agent-profiles/heavy/judge.md +148 -0
- package/agent-profiles/heavy/product-manager.md +109 -0
- package/agent-profiles/heavy/test-engineer.md +101 -0
- package/{agents/massa-ai-builder.md → agent-profiles/home/builder.md} +4 -4
- package/agent-profiles/home/code-explorer.md +103 -0
- package/agent-profiles/home/code-reviewer.md +135 -0
- package/agent-profiles/home/designer.md +85 -0
- package/agent-profiles/home/judge.md +148 -0
- package/agent-profiles/home/product-manager.md +109 -0
- package/agent-profiles/home/test-engineer.md +101 -0
- package/agent-profiles/work/{massa-ai-builder.md → builder.md} +4 -4
- package/agent-profiles/work/code-explorer.md +103 -0
- package/agent-profiles/work/code-reviewer.md +135 -0
- package/agent-profiles/work/designer.md +85 -0
- package/agent-profiles/work/judge.md +148 -0
- package/agent-profiles/work/product-manager.md +109 -0
- package/agent-profiles/work/test-engineer.md +101 -0
- package/{agent-profiles/balanced/massa-ai-builder.md → agents/builder.md} +4 -4
- package/agents/code-explorer.md +103 -0
- package/agents/code-reviewer.md +135 -0
- package/agents/designer.md +85 -0
- package/agents/judge.md +148 -0
- package/agents/product-manager.md +109 -0
- package/agents/test-engineer.md +101 -0
- package/commands/{adr.md → create-adr.md} +3 -3
- package/commands/{to-prd.md → create-prd.md} +3 -3
- package/commands/{rfc.md → create-rfc.md} +3 -3
- package/commands/{tdd.md → create-tdd.md} +3 -3
- package/commands/{ticket.md → create-ticket.md} +3 -3
- package/commands/{discovery.md → product-discovery.md} +3 -3
- package/hooks/massa-ai-hook.ts +4 -4
- package/install.sh +116 -38
- package/package.json +1 -1
- package/skills/agents/builder/SKILL.md +3 -5
- package/skills/agents/code-explorer/SKILL.md +104 -0
- package/skills/agents/code-reviewer/SKILL.md +136 -0
- package/skills/agents/designer/SKILL.md +34 -18
- package/skills/agents/judge/SKILL.md +101 -51
- package/skills/agents/product-manager/SKILL.md +110 -0
- package/skills/agents/test-engineer/SKILL.md +57 -23
- package/skills/bootstrap/SKILL.md +4 -5
- package/skills/massa-ai/SKILL.md +26 -29
- package/skills/massa-ai/references/agent-orchestration.md +69 -66
- package/skills/massa-ai/references/audit-report-io.md +8 -87
- package/skills/massa-ai/references/code-reuse-scan.md +1 -1
- package/skills/massa-ai/references/{adr-authoring.md → create-adr.md} +3 -3
- package/skills/massa-ai/references/{rfc → create-rfc}/discovery-and-sizing.md +1 -1
- package/skills/massa-ai/references/{tdd → create-tdd}/calibrated-examples.md +3 -3
- package/skills/massa-ai/references/{tdd → create-tdd}/discovery-and-sizing.md +1 -1
- package/skills/massa-ai/references/{tdd → create-tdd}/quality-and-lifecycle.md +1 -1
- package/skills/massa-ai/references/{ticket → create-ticket}/intake-and-sources.md +1 -1
- package/skills/massa-ai/references/figma-pre-analysis.md +1 -1
- package/skills/massa-ai/references/furps/analyst-role.md +3 -3
- package/skills/massa-ai/references/furps/checklist.md +2 -2
- package/skills/massa-ai/references/furps/intake.md +7 -7
- package/skills/massa-ai/references/hook-enforcement.md +4 -8
- package/skills/massa-ai/references/implementation-delivery.md +2 -2
- package/skills/massa-ai/references/knowledge-verification-chain.md +0 -1
- package/skills/massa-ai/references/mobile-context.md +2 -5
- package/skills/massa-ai/references/pr-task-fix.md +1 -1
- package/skills/massa-ai/references/spec-driven/sub-agents.md +5 -5
- package/skills/massa-ai/references/spec-driven/validate.md +1 -1
- package/skills/massa-ai/references/subagent-design.md +6 -9
- package/skills/massa-ai/references/synapse-policy.md +2 -2
- package/skills/massa-ai/references/verification-ladder.md +2 -2
- package/skills/massa-ai/scripts/validate_audit_report.ts +3 -8
- package/skills/massa-ai/workflows/architecture/architecture-audit.md +4 -5
- package/skills/massa-ai/workflows/architecture/architecture-fix.md +5 -6
- package/skills/massa-ai/workflows/bugs/bugs-audit.md +2 -3
- package/skills/massa-ai/workflows/bugs/bugs-fix.md +4 -5
- package/skills/massa-ai/workflows/code-quality/code-quality-audit.md +2 -3
- package/skills/massa-ai/workflows/code-quality/code-quality-fix.md +4 -5
- package/skills/massa-ai/workflows/commit.md +3 -3
- package/skills/massa-ai/workflows/{adr.md → create-adr.md} +10 -10
- package/skills/massa-ai/workflows/{to-prd.md → create-prd.md} +4 -4
- package/skills/massa-ai/workflows/{rfc.md → create-rfc.md} +6 -6
- package/skills/massa-ai/workflows/{tdd.md → create-tdd.md} +11 -11
- package/skills/massa-ai/workflows/{ticket.md → create-ticket.md} +5 -5
- package/skills/massa-ai/workflows/debug.md +4 -5
- package/skills/massa-ai/workflows/design.md +2 -2
- package/skills/massa-ai/workflows/exploration.md +2 -2
- package/skills/massa-ai/workflows/feature.md +5 -6
- package/skills/massa-ai/workflows/implementation/implementation-audit.md +22 -3
- package/skills/massa-ai/workflows/implementation/implementation-fix.md +6 -7
- package/skills/massa-ai/workflows/judge-with-debate.md +14 -14
- package/skills/massa-ai/workflows/mobile-figma/mobile-figma-audit.md +2 -2
- package/skills/massa-ai/workflows/mobile-figma/mobile-figma-fix.md +10 -11
- package/skills/massa-ai/workflows/pr-review.md +31 -13
- package/skills/massa-ai/workflows/{discovery.md → product-discovery.md} +12 -12
- package/skills/massa-ai/workflows/refactor.md +4 -5
- package/skills/massa-ai/workflows/refinement/furps-refinement.md +7 -7
- package/skills/massa-ai/workflows/requirements/requirements-audit.md +2 -2
- package/skills/massa-ai/workflows/requirements/requirements-fix.md +5 -6
- package/skills/massa-ai/workflows/security/security-audit.md +2 -3
- package/skills/massa-ai/workflows/security/security-fix.md +3 -4
- package/skills/massa-ai/workflows/spec-driven.md +9 -10
- package/skills/massa-ai/workflows/tests/tests-audit.md +2 -2
- package/skills/massa-ai/workflows/tests/tests-fix.md +16 -6
- package/skills/massa-ai/workflows/the-fool.md +7 -7
- package/agent-profiles/balanced/massa-ai-architecture-specialist.md +0 -63
- package/agent-profiles/balanced/massa-ai-audit-specialist.md +0 -80
- package/agent-profiles/balanced/massa-ai-context-curator.md +0 -65
- package/agent-profiles/balanced/massa-ai-designer.md +0 -67
- package/agent-profiles/balanced/massa-ai-documentation-agent.md +0 -62
- package/agent-profiles/balanced/massa-ai-furps-analyst.md +0 -69
- package/agent-profiles/balanced/massa-ai-investigator.md +0 -66
- package/agent-profiles/balanced/massa-ai-judge.md +0 -96
- package/agent-profiles/balanced/massa-ai-meta-judge.md +0 -84
- package/agent-profiles/balanced/massa-ai-mobile-specialist.md +0 -80
- package/agent-profiles/balanced/massa-ai-navigator.md +0 -73
- package/agent-profiles/balanced/massa-ai-plan-critic.md +0 -88
- package/agent-profiles/balanced/massa-ai-planner.md +0 -63
- package/agent-profiles/balanced/massa-ai-requirements-analyst.md +0 -62
- package/agent-profiles/balanced/massa-ai-reviewer.md +0 -64
- package/agent-profiles/balanced/massa-ai-test-engineer.md +0 -64
- package/agent-profiles/balanced/massa-ai-verification-agent.md +0 -63
- package/agent-profiles/cheap/massa-ai-architecture-specialist.md +0 -63
- package/agent-profiles/cheap/massa-ai-audit-specialist.md +0 -80
- package/agent-profiles/cheap/massa-ai-context-curator.md +0 -65
- package/agent-profiles/cheap/massa-ai-designer.md +0 -67
- package/agent-profiles/cheap/massa-ai-documentation-agent.md +0 -62
- package/agent-profiles/cheap/massa-ai-furps-analyst.md +0 -69
- package/agent-profiles/cheap/massa-ai-investigator.md +0 -66
- package/agent-profiles/cheap/massa-ai-judge.md +0 -96
- package/agent-profiles/cheap/massa-ai-meta-judge.md +0 -84
- package/agent-profiles/cheap/massa-ai-mobile-specialist.md +0 -80
- package/agent-profiles/cheap/massa-ai-navigator.md +0 -73
- package/agent-profiles/cheap/massa-ai-plan-critic.md +0 -88
- package/agent-profiles/cheap/massa-ai-planner.md +0 -63
- package/agent-profiles/cheap/massa-ai-requirements-analyst.md +0 -62
- package/agent-profiles/cheap/massa-ai-reviewer.md +0 -64
- package/agent-profiles/cheap/massa-ai-test-engineer.md +0 -64
- package/agent-profiles/cheap/massa-ai-verification-agent.md +0 -63
- package/agent-profiles/heavy/massa-ai-architecture-specialist.md +0 -63
- package/agent-profiles/heavy/massa-ai-audit-specialist.md +0 -80
- package/agent-profiles/heavy/massa-ai-context-curator.md +0 -65
- package/agent-profiles/heavy/massa-ai-designer.md +0 -67
- package/agent-profiles/heavy/massa-ai-documentation-agent.md +0 -62
- package/agent-profiles/heavy/massa-ai-furps-analyst.md +0 -69
- package/agent-profiles/heavy/massa-ai-investigator.md +0 -66
- package/agent-profiles/heavy/massa-ai-judge.md +0 -96
- package/agent-profiles/heavy/massa-ai-meta-judge.md +0 -84
- package/agent-profiles/heavy/massa-ai-mobile-specialist.md +0 -80
- package/agent-profiles/heavy/massa-ai-navigator.md +0 -73
- package/agent-profiles/heavy/massa-ai-plan-critic.md +0 -88
- package/agent-profiles/heavy/massa-ai-planner.md +0 -63
- package/agent-profiles/heavy/massa-ai-requirements-analyst.md +0 -62
- package/agent-profiles/heavy/massa-ai-reviewer.md +0 -64
- package/agent-profiles/heavy/massa-ai-test-engineer.md +0 -64
- package/agent-profiles/heavy/massa-ai-verification-agent.md +0 -63
- package/agent-profiles/home/massa-ai-architecture-specialist.md +0 -63
- package/agent-profiles/home/massa-ai-audit-specialist.md +0 -80
- package/agent-profiles/home/massa-ai-context-curator.md +0 -65
- package/agent-profiles/home/massa-ai-designer.md +0 -67
- package/agent-profiles/home/massa-ai-documentation-agent.md +0 -62
- package/agent-profiles/home/massa-ai-furps-analyst.md +0 -69
- package/agent-profiles/home/massa-ai-investigator.md +0 -66
- package/agent-profiles/home/massa-ai-judge.md +0 -96
- package/agent-profiles/home/massa-ai-meta-judge.md +0 -84
- package/agent-profiles/home/massa-ai-mobile-specialist.md +0 -80
- package/agent-profiles/home/massa-ai-navigator.md +0 -73
- package/agent-profiles/home/massa-ai-plan-critic.md +0 -88
- package/agent-profiles/home/massa-ai-planner.md +0 -63
- package/agent-profiles/home/massa-ai-requirements-analyst.md +0 -62
- package/agent-profiles/home/massa-ai-reviewer.md +0 -64
- package/agent-profiles/home/massa-ai-test-engineer.md +0 -64
- package/agent-profiles/home/massa-ai-verification-agent.md +0 -63
- package/agent-profiles/work/massa-ai-architecture-specialist.md +0 -63
- package/agent-profiles/work/massa-ai-audit-specialist.md +0 -80
- package/agent-profiles/work/massa-ai-context-curator.md +0 -65
- package/agent-profiles/work/massa-ai-designer.md +0 -67
- package/agent-profiles/work/massa-ai-documentation-agent.md +0 -62
- package/agent-profiles/work/massa-ai-furps-analyst.md +0 -69
- package/agent-profiles/work/massa-ai-investigator.md +0 -66
- package/agent-profiles/work/massa-ai-judge.md +0 -96
- package/agent-profiles/work/massa-ai-meta-judge.md +0 -84
- package/agent-profiles/work/massa-ai-mobile-specialist.md +0 -80
- package/agent-profiles/work/massa-ai-navigator.md +0 -73
- package/agent-profiles/work/massa-ai-plan-critic.md +0 -88
- package/agent-profiles/work/massa-ai-planner.md +0 -63
- package/agent-profiles/work/massa-ai-requirements-analyst.md +0 -62
- package/agent-profiles/work/massa-ai-reviewer.md +0 -64
- package/agent-profiles/work/massa-ai-test-engineer.md +0 -64
- package/agent-profiles/work/massa-ai-verification-agent.md +0 -63
- package/agents/massa-ai-architecture-specialist.md +0 -63
- package/agents/massa-ai-audit-specialist.md +0 -80
- package/agents/massa-ai-context-curator.md +0 -65
- package/agents/massa-ai-designer.md +0 -67
- package/agents/massa-ai-documentation-agent.md +0 -62
- package/agents/massa-ai-furps-analyst.md +0 -69
- package/agents/massa-ai-investigator.md +0 -66
- package/agents/massa-ai-judge.md +0 -96
- package/agents/massa-ai-meta-judge.md +0 -84
- package/agents/massa-ai-mobile-specialist.md +0 -80
- package/agents/massa-ai-navigator.md +0 -73
- package/agents/massa-ai-plan-critic.md +0 -88
- package/agents/massa-ai-planner.md +0 -63
- package/agents/massa-ai-requirements-analyst.md +0 -62
- package/agents/massa-ai-reviewer.md +0 -64
- package/agents/massa-ai-test-engineer.md +0 -64
- package/agents/massa-ai-verification-agent.md +0 -63
- package/commands/general.md +0 -14
- package/commands/maestro-audit.md +0 -14
- package/commands/maestro-fix.md +0 -14
- package/commands/maestro.md +0 -14
- package/skills/agents/architecture-specialist/SKILL.md +0 -67
- package/skills/agents/audit-specialist/SKILL.md +0 -84
- package/skills/agents/context-curator/SKILL.md +0 -69
- package/skills/agents/documentation-agent/SKILL.md +0 -67
- package/skills/agents/furps-analyst/SKILL.md +0 -72
- package/skills/agents/investigator/SKILL.md +0 -70
- package/skills/agents/meta-judge/SKILL.md +0 -87
- package/skills/agents/mobile-specialist/SKILL.md +0 -84
- package/skills/agents/navigator/SKILL.md +0 -77
- package/skills/agents/plan-critic/SKILL.md +0 -91
- package/skills/agents/planner/SKILL.md +0 -67
- package/skills/agents/requirements-analyst/SKILL.md +0 -66
- package/skills/agents/reviewer/SKILL.md +0 -68
- package/skills/agents/verification-agent/SKILL.md +0 -67
- package/skills/massa-ai/personas/README.md +0 -35
- package/skills/massa-ai/personas/ai-native-nodejs-cli-architect.md +0 -47
- package/skills/massa-ai/personas/catalog.json +0 -7
- package/skills/massa-ai/personas/context-skill-harness-engineer-architect.md +0 -47
- package/skills/massa-ai/personas/product-manager.md +0 -65
- package/skills/massa-ai/personas/senior-mobile-engineer.md +0 -46
- package/skills/massa-ai/personas/senior-mobile-qa-automation-engineer.md +0 -51
- package/skills/massa-ai/personas/signals/ai-native-nodejs-cli-architect.json +0 -20
- package/skills/massa-ai/personas/signals/context-skill-harness-engineer-architect.json +0 -20
- package/skills/massa-ai/personas/signals/product-manager.json +0 -21
- package/skills/massa-ai/personas/signals/senior-mobile-engineer.json +0 -18
- package/skills/massa-ai/personas/signals/senior-mobile-qa-automation-engineer.json +0 -18
- package/skills/massa-ai/references/maestro/artifacts-reports.md +0 -69
- package/skills/massa-ai/references/maestro/cli-device.md +0 -65
- package/skills/massa-ai/references/maestro/cloud.md +0 -69
- package/skills/massa-ai/references/maestro/config-env-output.md +0 -76
- package/skills/massa-ai/references/maestro/fact-ledger.md +0 -73
- package/skills/massa-ai/references/maestro/js-scripting.md +0 -70
- package/skills/massa-ai/references/maestro/mcp.md +0 -59
- package/skills/massa-ai/references/maestro/patterns.md +0 -102
- package/skills/massa-ai/references/maestro/selectors.md +0 -91
- package/skills/massa-ai/references/maestro/workspace-execution.md +0 -81
- package/skills/massa-ai/references/maestro/yaml-commands.md +0 -203
- package/skills/massa-ai/references/maestro.md +0 -31
- package/skills/massa-ai/workflows/general.md +0 -88
- package/skills/massa-ai/workflows/maestro/maestro-audit.md +0 -64
- package/skills/massa-ai/workflows/maestro/maestro-fix.md +0 -111
- package/skills/massa-ai/workflows/maestro/maestro.md +0 -80
- package/skills/persona-router/SKILL.md +0 -52
- package/skills/persona-router/references/routing-details.md +0 -98
- /package/skills/massa-ai/references/{rfc → create-rfc}/ATTRIBUTION.md +0 -0
- /package/skills/massa-ai/references/{rfc → create-rfc}/document-contract.md +0 -0
- /package/skills/massa-ai/references/{rfc → create-rfc}/quality-and-lifecycle.md +0 -0
- /package/skills/massa-ai/references/{tdd → create-tdd}/document-contract.md +0 -0
- /package/skills/massa-ai/references/{ticket → create-ticket}/atlassian-fix.md +0 -0
- /package/skills/massa-ai/references/{ticket → create-ticket}/templates-and-quality.md +0 -0
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# Maestro Workflow Patterns
|
|
2
|
-
|
|
3
|
-
Use for stable suite design, setup/teardown strategy, validation assets, and workflow output contracts.
|
|
4
|
-
|
|
5
|
-
## Stable Flow Design
|
|
6
|
-
|
|
7
|
-
- Keep flows readable, short, and scoped to one user journey or smoke path.
|
|
8
|
-
- Reuse subflows for login, onboarding, permissions, setup, teardown, and navigation.
|
|
9
|
-
- Prefer deep links, API fixtures, or app state reset over long UI-only setup when the repo already supports them.
|
|
10
|
-
- Prefer stable selectors and observable states over fixed waits, coordinates, images, and copy that changes often.
|
|
11
|
-
- Keep setup and teardown explicit, idempotent, and isolated.
|
|
12
|
-
- Preserve existing flows, subflows, fixtures, snapshots, baselines, and CI report consumers unless the scoped task explicitly changes them.
|
|
13
|
-
|
|
14
|
-
## Suite Segmentation
|
|
15
|
-
|
|
16
|
-
Common suite intents:
|
|
17
|
-
|
|
18
|
-
- smoke
|
|
19
|
-
- critical path
|
|
20
|
-
- release-blocking
|
|
21
|
-
- nightly
|
|
22
|
-
- platform-specific
|
|
23
|
-
- quarantined
|
|
24
|
-
- device-farm-only
|
|
25
|
-
- Cloud-only
|
|
26
|
-
|
|
27
|
-
Use tags and config rather than duplicate flow logic when possible.
|
|
28
|
-
|
|
29
|
-
## Setup And Cleanup
|
|
30
|
-
|
|
31
|
-
Use the smallest deterministic setup:
|
|
32
|
-
|
|
33
|
-
1. reset app state (`clearState`, launch options, fixture cleanup)
|
|
34
|
-
2. set permissions and locale/timezone assumptions
|
|
35
|
-
3. create test data through repo-approved fixture/API helpers
|
|
36
|
-
4. navigate by deep link or reusable subflow
|
|
37
|
-
5. verify initial state before exercising the journey
|
|
38
|
-
6. clean up in `onFlowComplete` or explicit teardown
|
|
39
|
-
|
|
40
|
-
If cleanup cannot be guaranteed, isolate test data and record residual risk.
|
|
41
|
-
|
|
42
|
-
## Output Contracts
|
|
43
|
-
|
|
44
|
-
`maestro` closure summary must include:
|
|
45
|
-
|
|
46
|
-
- scenario source
|
|
47
|
-
- changed flows/subflows/fixtures/setup/teardown
|
|
48
|
-
- setup/teardown strategy
|
|
49
|
-
- command
|
|
50
|
-
- exit status
|
|
51
|
-
- JUnit report path
|
|
52
|
-
- artifact directory
|
|
53
|
-
- device/platform/app build
|
|
54
|
-
- skipped reason
|
|
55
|
-
- validation assets protected
|
|
56
|
-
- residual risk
|
|
57
|
-
|
|
58
|
-
`maestro-audit` report must include:
|
|
59
|
-
|
|
60
|
-
- flow inventory
|
|
61
|
-
- scenario source matrix
|
|
62
|
-
- Maestro run matrix
|
|
63
|
-
- artifact evidence
|
|
64
|
-
- `MST-*` findings or explicit no-finding evidence
|
|
65
|
-
- execution handoff
|
|
66
|
-
|
|
67
|
-
`maestro-fix` closure matrix must include:
|
|
68
|
-
|
|
69
|
-
- selected `MST-*` IDs
|
|
70
|
-
- status: `fixed`, `blocked`, `deferred`, or `skipped`
|
|
71
|
-
- changed files
|
|
72
|
-
- command/artifact evidence
|
|
73
|
-
- skipped reason or `none`
|
|
74
|
-
- JUnit/artifact paths — cite the **on-disk** JUnit report path and artifact directory the run actually produced, never a remembered or expected path
|
|
75
|
-
- validation assets protected
|
|
76
|
-
- residual risk
|
|
77
|
-
|
|
78
|
-
## Discrimination Sensor (Flow Mutation)
|
|
79
|
-
|
|
80
|
-
The Maestro instantiation of `references/discrimination-sensor.md`: mutate a **scratch copy** of the flow under the claim being verified — perturb a selector (point it at a wrong element) or an assertion (invert or change its expected value) — and confirm the run fails. A run that still passes with a perturbed selector/assertion is not discriminating for that behavior.
|
|
81
|
-
|
|
82
|
-
Deviation from the generic tier table, stated on purpose: device-backed runs are expensive, so the sensor is a **single lightweight mutation only** — the ≥5-mutation P0 tier does not apply to Maestro flows. Record killed/survived and restore the scratch per the shared reference's isolation rules.
|
|
83
|
-
|
|
84
|
-
## Routing Boundaries
|
|
85
|
-
|
|
86
|
-
- Product bugs, missing test IDs, app architecture changes, backend data setup changes, or unclear requirements route to parent workflows.
|
|
87
|
-
- `maestro-fix` may edit only Maestro flows, subflows, fixtures, setup/teardown, test data, or directly scoped Maestro CI/report wiring from a saved `MST-*` finding.
|
|
88
|
-
- Passing Maestro flows do not prove full requirements coverage. Pair run evidence with scenario-source coverage when making all-clear claims.
|
|
89
|
-
|
|
90
|
-
## Skipped Checks
|
|
91
|
-
|
|
92
|
-
Allowed skipped/blocker reasons include:
|
|
93
|
-
|
|
94
|
-
- Maestro CLI unavailable or cannot start
|
|
95
|
-
- app binary/build unavailable
|
|
96
|
-
- device/emulator/simulator unavailable
|
|
97
|
-
- credentials/signing/backend unavailable
|
|
98
|
-
- Cloud auth/plan unavailable
|
|
99
|
-
- target report is stale or invalid
|
|
100
|
-
- official docs or live help do not support requested flag/command
|
|
101
|
-
|
|
102
|
-
Always state the strongest evidence still collected, such as static YAML validation, path inspection, config scan, or report artifact inspection.
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
# Maestro Selectors Reference
|
|
2
|
-
|
|
3
|
-
Use when choosing or auditing selectors. Official selector index: https://docs.maestro.dev/reference/selectors.md.
|
|
4
|
-
|
|
5
|
-
## Source Basis
|
|
6
|
-
|
|
7
|
-
Maestro targets UI through the accessibility tree for mobile and through rendered browser UI for web. Stable selectors are a reliability contract, not a cosmetic choice.
|
|
8
|
-
|
|
9
|
-
## Core Selectors
|
|
10
|
-
|
|
11
|
-
| Selector | Use | Notes |
|
|
12
|
-
|---|---|---|
|
|
13
|
-
| `text` | Visible text or accessibility label | Regex by default; brittle under localization/copy churn. |
|
|
14
|
-
| `id` | Android resource ID or iOS accessibility identifier | Preferred for dynamic content, icons, and localized apps. |
|
|
15
|
-
| `index` | Specific occurrence among duplicates | 0-based; pair with stable selector to avoid list drift. |
|
|
16
|
-
| `point` | Relative or absolute coordinates | Last resort when no accessibility target exists. |
|
|
17
|
-
| `css` | Web-only DOM selector | Does not use the same regex behavior as text/id. |
|
|
18
|
-
|
|
19
|
-
```yaml
|
|
20
|
-
- tapOn:
|
|
21
|
-
id: login_button
|
|
22
|
-
- assertVisible:
|
|
23
|
-
text: ".*Welcome.*"
|
|
24
|
-
- tapOn:
|
|
25
|
-
id: buy_button
|
|
26
|
-
index: 2
|
|
27
|
-
- tapOn:
|
|
28
|
-
point: "50%,50%"
|
|
29
|
-
- assertVisible:
|
|
30
|
-
css: "#main-header"
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Relational Selectors
|
|
34
|
-
|
|
35
|
-
Relational selectors identify elements by screen position or accessibility hierarchy:
|
|
36
|
-
|
|
37
|
-
- `above`, `below`, `leftOf`, `rightOf`
|
|
38
|
-
- `containsChild`, `childOf`, `containsDescendants`
|
|
39
|
-
|
|
40
|
-
```yaml
|
|
41
|
-
- tapOn:
|
|
42
|
-
text: Delete
|
|
43
|
-
childOf:
|
|
44
|
-
id: basket_container
|
|
45
|
-
|
|
46
|
-
- assertVisible:
|
|
47
|
-
id: list_item
|
|
48
|
-
containsDescendants:
|
|
49
|
-
- text: Wireless Headphones
|
|
50
|
-
- text: "$99.99"
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Position selectors use screen bounds; combine them with `id`, `text`, or state filters when possible.
|
|
54
|
-
|
|
55
|
-
## Trait, State, And Dimension Filters
|
|
56
|
-
|
|
57
|
-
Use trait, state, and dimension selectors only when they make an already stable selector more precise:
|
|
58
|
-
|
|
59
|
-
- Traits: physical characteristics such as shape or long text when official docs support them for the command.
|
|
60
|
-
- State: `enabled`, `checked`, `focused`, `selected`.
|
|
61
|
-
- Dimensions: width/height matchers with tolerance when official docs support them.
|
|
62
|
-
|
|
63
|
-
```yaml
|
|
64
|
-
- tapOn:
|
|
65
|
-
id: terms_checkbox
|
|
66
|
-
checked: false
|
|
67
|
-
|
|
68
|
-
- assertVisible:
|
|
69
|
-
id: submit_button
|
|
70
|
-
enabled: true
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
## Platform Caveats
|
|
74
|
-
|
|
75
|
-
- Android Views: `id` maps to resource ID; text may include visible text or content descriptions.
|
|
76
|
-
- Android Compose: configure semantics so test tags become resource IDs when ID selectors are required.
|
|
77
|
-
- iOS UIKit/SwiftUI: `text` maps to accessibility label; `id` maps to accessibility identifier.
|
|
78
|
-
- Flutter: prefer visible text, Semantics labels, or Semantics identifiers; internal Flutter keys are not enough.
|
|
79
|
-
- Web: `css` is web-only; official docs mark web automation as beta and Chromium-based.
|
|
80
|
-
|
|
81
|
-
## Selector Policy
|
|
82
|
-
|
|
83
|
-
Prefer this order for new or fixed flows:
|
|
84
|
-
|
|
85
|
-
1. Existing repo convention and stable test IDs/accessibility identifiers.
|
|
86
|
-
2. Accessible visible labels that are low churn and localized deliberately.
|
|
87
|
-
3. Relational selectors anchored to stable IDs/text.
|
|
88
|
-
4. State/dimension filters to reduce ambiguity.
|
|
89
|
-
5. Coordinates, images, screenshots, or index-only selectors only when no stronger target exists.
|
|
90
|
-
|
|
91
|
-
If a needed stable selector is missing from production app code, stop and route app changes through `feature`, `debug`, or a parent implementation workflow. Do not modify production code inside `maestro-fix`.
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
# Maestro Workspace And Execution Reference
|
|
2
|
-
|
|
3
|
-
Use when discovering Maestro roots, config files, tags, execution order, suite isolation, and CI invocation.
|
|
4
|
-
|
|
5
|
-
## Discovery
|
|
6
|
-
|
|
7
|
-
Search current source for:
|
|
8
|
-
|
|
9
|
-
- `.maestro/`, `maestro/`, `e2e/`, `flows/`
|
|
10
|
-
- `*.yaml`, `*.yml`
|
|
11
|
-
- `config.yaml`
|
|
12
|
-
- CI or scripts that invoke `maestro`
|
|
13
|
-
- Existing report/artifact paths
|
|
14
|
-
|
|
15
|
-
Prefer the existing repository root, naming, tags, setup, teardown, fixtures, and artifact directories. If no Maestro workspace exists, ask for the target test root before creating one. If multiple roots exist, ask which root owns the app, platform, or suite.
|
|
16
|
-
|
|
17
|
-
## `config.yaml`
|
|
18
|
-
|
|
19
|
-
Official workspace configuration is structured around global workspace settings, execution/filtering, platform settings, and Cloud-only settings.
|
|
20
|
-
|
|
21
|
-
Key fields:
|
|
22
|
-
|
|
23
|
-
- `flows`: glob patterns for suite discovery; `*` covers root-level YAML, `**` covers recursive patterns.
|
|
24
|
-
- `testOutputDir`: default artifact directory override for screenshots, logs, and metadata.
|
|
25
|
-
- `includeTags` and `excludeTags`: global tag filters.
|
|
26
|
-
- `executionOrder.continueOnFailure`: whether ordered execution stops after a failure.
|
|
27
|
-
- `executionOrder.flowsOrder`: ordered flow names or filenames.
|
|
28
|
-
- `platform.ios.snapshotKeyHonorModalViews`
|
|
29
|
-
- `platform.ios.disableAnimations` and `platform.android.disableAnimations`: Cloud-only animation settings.
|
|
30
|
-
- `baselineBranch` and `notifications`: Cloud-only configuration.
|
|
31
|
-
|
|
32
|
-
Report generation is not configured in `config.yaml`; use CLI `--format` and `--output`.
|
|
33
|
-
|
|
34
|
-
## Tags
|
|
35
|
-
|
|
36
|
-
Tags live in individual Flow headers and can also be configured globally in `config.yaml`.
|
|
37
|
-
|
|
38
|
-
```yaml
|
|
39
|
-
appId: com.example.app
|
|
40
|
-
tags:
|
|
41
|
-
- smoke
|
|
42
|
-
- checkout
|
|
43
|
-
---
|
|
44
|
-
- launchApp
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
CLI `--include-tags` and `--exclude-tags` override global config filters. Multiple tags inside one include/exclude flag use OR logic. Combining include and exclude applies inclusion first, then exclusion.
|
|
48
|
-
|
|
49
|
-
## Execution Order And Isolation
|
|
50
|
-
|
|
51
|
-
Default execution order is non-deterministic so flows stay isolated. Use `executionOrder` only for goal-driven flows that truly need sequencing.
|
|
52
|
-
|
|
53
|
-
Even ordered flows should be able to run on a reset device. Prefer `runFlow` hooks/subflows for setup rather than relying on previous flow side effects.
|
|
54
|
-
|
|
55
|
-
```yaml
|
|
56
|
-
executionOrder:
|
|
57
|
-
continueOnFailure: false
|
|
58
|
-
flowsOrder:
|
|
59
|
-
- signup_flow
|
|
60
|
-
- verify_email_flow
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Local And CI Execution
|
|
64
|
-
|
|
65
|
-
Use repository wrappers when present. Otherwise prefer:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
maestro test --format junit --output build/maestro/report.xml --test-output-dir build/maestro/artifacts .maestro
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
Add `--debug-output build/maestro/debug` when `maestro.log` or JavaScript logs matter. Add `--no-ansi` only when supported by current live help or repo convention.
|
|
72
|
-
|
|
73
|
-
For local sharding, capture connected devices first. `--shards`, `--shard-all`, and `--shard-split` are local CLI options; do not claim exact device-count failure behavior without official docs, live run evidence, or repo convention.
|
|
74
|
-
|
|
75
|
-
## Workspace Risks To Audit
|
|
76
|
-
|
|
77
|
-
- Config discovery misses nested flows because `flows` lacks recursive patterns.
|
|
78
|
-
- Tags configured in both Flow headers and CLI/config produce unexpected selection.
|
|
79
|
-
- Ordered flows depend on prior side effects instead of explicit setup.
|
|
80
|
-
- CI reports are stored in current directory because `--output` is omitted.
|
|
81
|
-
- `testOutputDir`, `--test-output-dir`, and `--debug-output` are treated as the same location when they are not.
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
# Maestro YAML Commands Reference
|
|
2
|
-
|
|
3
|
-
Use when authoring or auditing Maestro flow commands. Official command inventory lives at https://docs.maestro.dev/reference/commands-available.md.
|
|
4
|
-
|
|
5
|
-
## Flow Header
|
|
6
|
-
|
|
7
|
-
Flow headers can define target identity and metadata before `---`:
|
|
8
|
-
|
|
9
|
-
```yaml
|
|
10
|
-
appId: com.example.app
|
|
11
|
-
name: Login Smoke
|
|
12
|
-
tags:
|
|
13
|
-
- smoke
|
|
14
|
-
env:
|
|
15
|
-
USER_KIND: standard
|
|
16
|
-
onFlowStart:
|
|
17
|
-
- runFlow: setup.yaml
|
|
18
|
-
onFlowComplete:
|
|
19
|
-
- runFlow: cleanup.yaml
|
|
20
|
-
properties:
|
|
21
|
-
testCaseId: TC-LOGIN-001
|
|
22
|
-
---
|
|
23
|
-
- launchApp
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
For web flows, use `url` instead of `appId`.
|
|
27
|
-
|
|
28
|
-
## Command Inventory
|
|
29
|
-
|
|
30
|
-
Official command categories:
|
|
31
|
-
|
|
32
|
-
- App/device state: `launchApp`, `stopApp`, `killApp`, `clearState`, `clearKeychain`, `setPermissions`, `setAirplaneMode`, `toggleAirplaneMode`, `setOrientation`, `setLocation`, `travel`, `addMedia`.
|
|
33
|
-
- Interactions: `tapOn`, `doubleTapOn`, `longPressOn`, `swipe`, `scroll`, `scrollUntilVisible`, `pressKey`, `back`, `openLink`, `hideKeyboard`.
|
|
34
|
-
- Input/clipboard: `inputText`, `eraseText`, `copyTextFrom`, `setClipboard`, `pasteText`.
|
|
35
|
-
- Flow control: `runFlow`, `runScript`, `evalScript`, `repeat`, `retry`, `extendedWaitUntil`, `waitForAnimationToEnd`, `assertTrue`.
|
|
36
|
-
- Assertions and media: `assertVisible`, `assertNotVisible`, `assertScreenshot`, `takeScreenshot`, `startRecording`, `stopRecording`.
|
|
37
|
-
- AI commands: `assertWithAI`, `assertNoDefectsWithAI`, `extractTextWithAI`.
|
|
38
|
-
|
|
39
|
-
## App Lifecycle Examples
|
|
40
|
-
|
|
41
|
-
```yaml
|
|
42
|
-
- launchApp:
|
|
43
|
-
appId: com.example.app
|
|
44
|
-
clearState: true
|
|
45
|
-
clearKeychain: true
|
|
46
|
-
stopApp: true
|
|
47
|
-
permissions:
|
|
48
|
-
camera: allow
|
|
49
|
-
location: allow
|
|
50
|
-
|
|
51
|
-
- stopApp: com.example.app
|
|
52
|
-
- killApp: com.example.app
|
|
53
|
-
- clearState: com.example.app
|
|
54
|
-
- clearKeychain
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Interaction Examples
|
|
58
|
-
|
|
59
|
-
```yaml
|
|
60
|
-
- tapOn:
|
|
61
|
-
id: submit_button
|
|
62
|
-
retryTapIfNoChange: true
|
|
63
|
-
|
|
64
|
-
- tapOn:
|
|
65
|
-
text: Add to cart
|
|
66
|
-
rightOf: Product A
|
|
67
|
-
index: 0
|
|
68
|
-
|
|
69
|
-
- tapOn:
|
|
70
|
-
point: "50%,50%"
|
|
71
|
-
|
|
72
|
-
- tapOn:
|
|
73
|
-
id: increment_counter
|
|
74
|
-
repeat: 3
|
|
75
|
-
delay: 200
|
|
76
|
-
|
|
77
|
-
- doubleTapOn:
|
|
78
|
-
id: hero_image
|
|
79
|
-
|
|
80
|
-
- longPressOn:
|
|
81
|
-
text: Delete
|
|
82
|
-
|
|
83
|
-
- swipe:
|
|
84
|
-
direction: LEFT
|
|
85
|
-
duration: 400
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Use point/coordinate targeting only as a last resort when the element is not available in the accessibility tree.
|
|
89
|
-
|
|
90
|
-
## Assertions And Waits
|
|
91
|
-
|
|
92
|
-
```yaml
|
|
93
|
-
- assertVisible:
|
|
94
|
-
id: login_success_banner
|
|
95
|
-
enabled: true
|
|
96
|
-
timeout: 10000
|
|
97
|
-
|
|
98
|
-
- assertNotVisible:
|
|
99
|
-
text: Loading
|
|
100
|
-
|
|
101
|
-
- extendedWaitUntil:
|
|
102
|
-
visible:
|
|
103
|
-
id: payment_confirmation
|
|
104
|
-
timeout: 15000
|
|
105
|
-
|
|
106
|
-
- waitForAnimationToEnd:
|
|
107
|
-
timeout: 5000
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
Prefer observable state waits over fixed sleeps.
|
|
111
|
-
|
|
112
|
-
## Input And Clipboard
|
|
113
|
-
|
|
114
|
-
```yaml
|
|
115
|
-
- inputText: "jane.doe@example.com"
|
|
116
|
-
- eraseText: 50
|
|
117
|
-
- copyTextFrom:
|
|
118
|
-
id: verification_code
|
|
119
|
-
- setClipboard: "123456"
|
|
120
|
-
- pasteText
|
|
121
|
-
- hideKeyboard
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## Flow Control
|
|
125
|
-
|
|
126
|
-
```yaml
|
|
127
|
-
- runFlow:
|
|
128
|
-
file: login.yaml
|
|
129
|
-
env:
|
|
130
|
-
USER_KIND: admin
|
|
131
|
-
when:
|
|
132
|
-
visible: Login
|
|
133
|
-
|
|
134
|
-
- runScript:
|
|
135
|
-
file: setupUser.js
|
|
136
|
-
env:
|
|
137
|
-
role: admin
|
|
138
|
-
|
|
139
|
-
- repeat:
|
|
140
|
-
times: 3
|
|
141
|
-
commands:
|
|
142
|
-
- tapOn: Add item
|
|
143
|
-
|
|
144
|
-
- retry:
|
|
145
|
-
maxRetries: 2
|
|
146
|
-
commands:
|
|
147
|
-
- tapOn: Retry
|
|
148
|
-
- assertVisible: Success
|
|
149
|
-
|
|
150
|
-
- assertTrue:
|
|
151
|
-
condition: ${output.total > 0}
|
|
152
|
-
label: total computed
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
Conditions commonly use visibility, absence, platform, or JavaScript expressions. Re-check command-specific docs before using uncommon fields.
|
|
156
|
-
|
|
157
|
-
## Screenshots And Recording
|
|
158
|
-
|
|
159
|
-
```yaml
|
|
160
|
-
- takeScreenshot: checkout/confirmation
|
|
161
|
-
- assertScreenshot:
|
|
162
|
-
path: checkout/confirmation
|
|
163
|
-
thresholdPercentage: 1
|
|
164
|
-
- startRecording: checkout-run
|
|
165
|
-
- stopRecording
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
When visual artifacts matter, record the artifact directory and whether screenshots/videos came from `--test-output-dir`, `--debug-output`, or `maestro record --local`.
|
|
169
|
-
|
|
170
|
-
## Device/System Commands
|
|
171
|
-
|
|
172
|
-
```yaml
|
|
173
|
-
- setLocation:
|
|
174
|
-
latitude: 37.7749
|
|
175
|
-
longitude: -122.4194
|
|
176
|
-
- setPermissions:
|
|
177
|
-
camera: allow
|
|
178
|
-
location: deny
|
|
179
|
-
- setAirplaneMode: true
|
|
180
|
-
- toggleAirplaneMode
|
|
181
|
-
- setOrientation: LANDSCAPE
|
|
182
|
-
- pressKey: Home
|
|
183
|
-
- back
|
|
184
|
-
- openLink: myapp://checkout
|
|
185
|
-
- addMedia:
|
|
186
|
-
- ./fixtures/photo.png
|
|
187
|
-
- travel:
|
|
188
|
-
days: 1
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
Verify platform support for each command before treating it as portable.
|
|
192
|
-
|
|
193
|
-
## AI Commands
|
|
194
|
-
|
|
195
|
-
AI test analysis and AI assertions are experimental and routed through Maestro Cloud infrastructure. Current official docs say users no longer provide their own AI model/key variables; authentication is through `maestro login` or `MAESTRO_CLOUD_API_KEY`.
|
|
196
|
-
|
|
197
|
-
```yaml
|
|
198
|
-
- assertWithAI: "Verify the success message is in Spanish"
|
|
199
|
-
- assertNoDefectsWithAI
|
|
200
|
-
- extractTextWithAI: "Extract the order number"
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
Do not add obsolete BYO AI env guidance. If AI is unavailable, mark the check blocked or skipped rather than replacing it with model self-evaluation.
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
# Maestro Reference Index
|
|
2
|
-
|
|
3
|
-
Use this small index from `workflows/maestro/maestro.md`, `workflows/maestro/maestro-audit.md`, and `workflows/maestro/maestro-fix.md` to select the minimum focused Maestro reference for the current step. Not the full Maestro source of truth.
|
|
4
|
-
|
|
5
|
-
## Source Policy
|
|
6
|
-
|
|
7
|
-
Load `references/maestro/fact-ledger.md` before making any normative Maestro claim. Every Maestro claim must be tagged as `official-doc`, `live-help`, `repo-convention`, or `excluded/unverified`.
|
|
8
|
-
|
|
9
|
-
Use a user-supplied coverage checklist, when the user provides one, only as a coverage checklist. If a checklist item is not supported by official Maestro docs, live CLI help, or repository convention, quarantine it as `excluded/unverified`.
|
|
10
|
-
|
|
11
|
-
Official source anchors:
|
|
12
|
-
|
|
13
|
-
- CLI commands/options: https://docs.maestro.dev/maestro-cli/maestro-cli-commands-and-options.md
|
|
14
|
-
- Commands available: https://docs.maestro.dev/reference/commands-available.md
|
|
15
|
-
- Selectors: https://docs.maestro.dev/reference/selectors.md
|
|
16
|
-
- Workspace configuration: https://docs.maestro.dev/reference/workspace-configuration.md
|
|
17
|
-
- Test reports/artifacts: https://docs.maestro.dev/maestro-flows/workspace-management/test-reports-and-artifacts.md
|
|
18
|
-
- Cloud build requirements: https://docs.maestro.dev/maestro-cloud/build-your-app-for-the-cloud.md
|
|
19
|
-
- Cloud limits: https://docs.maestro.dev/maestro-cloud/limits.md
|
|
20
|
-
- Maestro MCP: https://docs.maestro.dev/get-started/maestro-mcp.md
|
|
21
|
-
|
|
22
|
-
## Minimum Step Selection
|
|
23
|
-
|
|
24
|
-
- Flow implementation: load `fact-ledger.md`, `cli-device.md`, then only the focused files for the flow surface being edited: commonly `yaml-commands.md`, `selectors.md`, `workspace-execution.md`, `config-env-output.md`, `js-scripting.md`, and `patterns.md`.
|
|
25
|
-
- Audit: load `fact-ledger.md`, `cli-device.md`, `workspace-execution.md`, `artifacts-reports.md`, `patterns.md`, and `references/audit-report-io.md`.
|
|
26
|
-
- Fix: load `fact-ledger.md`, `cli-device.md`, `artifacts-reports.md`, `patterns.md`, and whichever focused file owns the saved `MST-*` finding.
|
|
27
|
-
- Cloud or MCP work: load `cloud.md` or `mcp.md` only when the requested flow, audit, fix, or CI wiring actually touches that surface.
|
|
28
|
-
|
|
29
|
-
## Closure Reminder
|
|
30
|
-
|
|
31
|
-
All Maestro workflow closures must report scenario source, changed flows, setup/teardown, command, exit status, JUnit path, artifact directory, device/platform, skipped reason, validation assets, and residual risk.
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: general
|
|
3
|
-
description: "Final fallback workflow for coding, planning, review, or implementation work when no specialized massa-ai workflow is a better match."
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
version: "1.3.0"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
### General Coding Workflow
|
|
10
|
-
|
|
11
|
-
Use for coding, planning-before-coding, review, or implementation work when no specialized massa-ai workflow is a better match. Final fallback, not a replacement for explicit or specialized workflows.
|
|
12
|
-
|
|
13
|
-
Load `references/project-context.md` (intake sweep) before the first substantive read.
|
|
14
|
-
|
|
15
|
-
Before the first repository mutation, load `references/implementation-delivery.md` (delivery chain: worktree, atomic commits, PR, CI watch, merge gate) and `references/code-annotation.md` (doc blocks, rationale, test coverage). After two consecutive failed fixes on one symptom, stop editing and load `references/root-cause-scripts.md`.
|
|
16
|
-
|
|
17
|
-
**Isolation Gate — before the first file edit:** execute `references/implementation-delivery.md` Stage 0–1 now (fetch base, create the worktree + branch, work inside it) and record the worktree path + branch — or one of Stage 1's two legal skip reasons, verbatim — before any repository mutation.
|
|
18
|
-
|
|
19
|
-
1. Resolve or reuse `projectId` and a stable `workflowSessionId`: `general-[entity]`.
|
|
20
|
-
**Reuse Scan — before writing new implementation code:** run the mandatory reuse scan per `references/code-reuse-scan.md` (separate read-only subagents; the reuse map's use/extend/new decisions are consumed before new code is planned or written) — or record its inline-fallback reason, verbatim.
|
|
21
|
-
|
|
22
|
-
2. Run General fallback preflight before source work: name the specialized workflow considered, the exact rejected reason, and why fallback does not change verification, mutation behavior, or memory scope. Ask the user only when the rejected workflow would change those behaviors. One delivery authorization obtained here covers the fallback change's commits, push, and PR creation; force-push, deploy, or merge are separately gated (`references/implementation-delivery.md` Stage 3).
|
|
23
|
-
3. Recall relevant durable context with `recall`. Treat recalled memory as a lead until current source confirms it. Confirm against current source before relying on it only when the change touches the enumerated risk-domain set: public API, data loss, auth/PII, migrations, or cross-service contracts. Otherwise trust recalled memory and cite it with a one-line source note. When recall returns no hit and the repository is otherwise unmapped on Standard+ fallback work, run the Minimum Bar sweep from `references/brownfield-mapping.md` first, writing only `CONCERNS.md` and `TESTING.md` into `.specs/project/onboarding/` before continuing.
|
|
24
|
-
4. Create a Synapse session when planned related `search` calls >=2, following `references/synapse-policy.md`.
|
|
25
|
-
5. Load confirmed project lessons through `references/lessons.md` when `.specs/lessons.json` exists:
|
|
26
|
-
`bun skills/massa-ai/scripts/lessons.ts --root . list --status confirmed`
|
|
27
|
-
Retrieve only the context required for the goal:
|
|
28
|
-
- begin with focused local inspection or the shared summary-search sequence
|
|
29
|
-
- deepen into enriched search, symbols, or exact files only when needed
|
|
30
|
-
- prefer `read_file` over native Read when symbol metadata + imports are useful (retrieval order per `references/mcp-tools.md`); use `symbol_snippet` for raw code snippets by file + line range
|
|
31
|
-
- prefer current repository truth over stale or conflicting memories
|
|
32
|
-
6. Execute the requested work using existing repository conventions. Load `references/naming-standards.md` before introducing or renaming identifiers, screens, components, attributes, or implementation-facing names (English-conversion rule applies). Tie verification depth to the Verification Ladder tier table in `references/verification-ladder.md`, sizing the change with `bun skills/massa-ai/scripts/size_change.ts`: Quick runs static + file-integrity checks; Standard adds a named verification recipe and behavioral checks; Spec-driven escalates to `workflows/spec-driven.md`. Do not invent new thresholds; load specialized references only when the task needs their exact contracts.
|
|
33
|
-
- For analysis that benefits from running code (derived values, data inspection, bulk transforms), call `execute` with `language` and `code` or `batch_execute` with `commands`[] instead of loading raw data into context. Respect the local-dev-only trust model (no untrusted-client exposure).
|
|
34
|
-
- When the chosen approach leans on an external library's or API's exact behavior, resolve it through the 5-step chain in `references/knowledge-verification-chain.md` (codebase, project docs, Context7, web, flag-uncertain) before committing to that approach — the trigger is the dependence itself, not the task's Quick/Standard/Spec-driven tier.
|
|
35
|
-
7. Use `compress` only when accumulated source or conversation context is reducing execution quality; preserve decisions, constraints, current state, and next steps rather than raw history.
|
|
36
|
-
8. Before completion, if verification found a reusable signal, record it via `references/lessons.md`. Score potential memories using `references/decision-engine.md` when that guidance is not already loaded:
|
|
37
|
-
`bun skills/massa-ai/scripts/lessons.ts --root . add --feature "<slug>" --signal "<signal>" --source "<ref>" --text "<one terse lesson>"`
|
|
38
|
-
- remember verified decisions, reusable discoveries, recurring blockers, accepted constraints, and completed outcomes that will save future work
|
|
39
|
-
- if a recalled memory is stale or needs correction, call `memory_update` with `id` and the new `content` (re-embeds automatically); if a memory is obsolete, call `memory_delete` with `id` (hard-delete, severs graph edges)
|
|
40
|
-
- for usage insights (search/cache patterns, recent activity), call `analytics` with `type` and `projectId`
|
|
41
|
-
- skip transient details, raw logs, copied source, unverified hypotheses, and facts already captured in current non-stale memory
|
|
42
|
-
|
|
43
|
-
**Screen work — before writing or judging any user-facing screen:** when this task creates or modifies a screen, the `massa-ai-designer` dispatch below is mandatory rather than discretionary, carved out of ordinary delegation gating by the Screen Implementation Exception in `references/agent-orchestration.md`. It does not fire when the task touches no screen surface.
|
|
44
|
-
|
|
45
|
-
> **Dispatch: `massa-ai-designer`** (role: `designer`) — charter `skills/agents/designer/SKILL.md`
|
|
46
|
-
> - scope: the screens, views, components, layouts, styles, and design tokens in this task's UI surface — never the whole repository
|
|
47
|
-
> - permissions: write, scoped to UI-layer files only with a disjoint write set
|
|
48
|
-
> - output: per-element conformance table (element, expected, actual, verdict, severity) plus the UI files written; a missing or unreachable design source is listed as a skipped sensor, never a silent pass
|
|
49
|
-
|
|
50
|
-
> **Dispatch: `massa-ai-reviewer`** (role: `reviewer`) — charter `skills/agents/reviewer/SKILL.md`
|
|
51
|
-
> - trigger: implementation complete, before the verification gate — never optional
|
|
52
|
-
> - scope: the change's diff surface and its task/AC context
|
|
53
|
-
> - permissions: read-only
|
|
54
|
-
> - inputs: diff, acceptance context, recalled code-quality conventions
|
|
55
|
-
> - sensors: bugs, regressions, missing edge cases, smells introduced by the diff
|
|
56
|
-
> - output: ranked findings, blocking vs advisory; blocking findings become fix items before verification runs
|
|
57
|
-
> - firewall: summarized findings only, never raw diff dumps
|
|
58
|
-
> - memory: suggest-only; main agent persists
|
|
59
|
-
|
|
60
|
-
> **Dispatch: `massa-ai-verification-agent`** (role: `verification-agent`) — charter `skills/agents/verification-agent/SKILL.md`
|
|
61
|
-
> - trigger: fallback work reaching Standard+ on the Verification Ladder, or any Quick-sized change inside the risk-domain set named in step 3 (public API, data loss, auth/PII, migrations, cross-service) — the Independent Verification Mandate in `references/verification-ladder.md` applies at that gate even when file/LOC counts stay Quick
|
|
62
|
-
> - scope: the fallback change's diff surface plus the acceptance evidence gathered while executing step 6
|
|
63
|
-
> - inputs: diff, the General fallback preflight rationale, reviewer findings, recalled conventions
|
|
64
|
-
> - sensors: independent outcome-vs-request re-check; discrimination sensor per `references/discrimination-sensor.md`, mutating the fallback change's own logic in scratch state
|
|
65
|
-
> - output: PASS/FAIL verdict with per-check evidence recorded in `.specs/quick/NNN-slug/SUMMARY.md`
|
|
66
|
-
> - firewall: summarized findings only, never raw diff dumps
|
|
67
|
-
> - memory: suggest-only; main agent persists general-workflow verification outcomes
|
|
68
|
-
> - fallback: if the subagent is unavailable, run a standalone fresh-eyes re-check of the change against its acceptance evidence and record the skipped-delegation reason
|
|
69
|
-
|
|
70
|
-
9. At Standard+ size, persist `.specs/quick/NNN-slug/TASK.md` and `SUMMARY.md` using the templates in `references/artifact-persistence.md`, then run `bun skills/massa-ai/scripts/check_specs_delivered.ts <slug> --kind quick` before the Evidence Gate — a non-zero exit blocks completion. If no code-execution tool is available, run the same checks by reading the artifact (graceful degradation preserved).
|
|
71
|
-
10. Complete the Evidence Gate from `references/evidence-gate.md` and report verification, changed artifacts, memory outcome, and residual risk.
|
|
72
|
-
|
|
73
|
-
## Failure Handling
|
|
74
|
-
|
|
75
|
-
On any tool/index/MCP failure, follow `references/graceful-degradation.md` (also `SKILL.md` Graceful Degradation).
|
|
76
|
-
|
|
77
|
-
- `.specs/` directory missing or not writable: block quick-artifact and onboarding-doc writes per `references/artifact-persistence.md`'s unwritable-→-block rule; do not fall back to memory or chat.
|
|
78
|
-
- Verifier fix→re-verify loop reaches the cap in `references/verification-ladder.md`'s Bounded Fix→Re-verify Loop: stop with `Blocked`, preserve the evidence collected, and ask the user for direction.
|
|
79
|
-
|
|
80
|
-
## Output Contract
|
|
81
|
-
|
|
82
|
-
- Goal and selected fallback workflow
|
|
83
|
-
- General fallback preflight: considered workflow, rejected reason, and fallback validity
|
|
84
|
-
- Relevant recalled context or explicit cold-start status
|
|
85
|
-
- Work completed and source evidence
|
|
86
|
-
- Verification performed and skipped checks
|
|
87
|
-
- Memory written or intentionally skipped, with reason
|
|
88
|
-
- Residual risk
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: maestro-audit
|
|
3
|
-
description: "Findings-only audit of existing Maestro mobile E2E flows, fixtures, setup/teardown, reports, selector stability, flake risk, and scenario coverage; does not edit code."
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
version: "1.1.0"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
### Maestro Audit
|
|
10
|
-
|
|
11
|
-
Findings-only audit of existing Maestro mobile E2E flows, fixtures, setup/teardown, reports, artifacts, CI invocation, selector stability, flake risk, and scenario coverage.
|
|
12
|
-
|
|
13
|
-
Load `references/project-context.md` (intake sweep) before the first substantive read.
|
|
14
|
-
|
|
15
|
-
Do not edit code or flows in this workflow. Not for new flow implementation — route to `workflows/maestro/maestro.md`. Do not fix findings directly; invoke `workflows/maestro/maestro-fix.md` as a bounded child workflow only after a saved audit report or audit handoff exists.
|
|
16
|
-
|
|
17
|
-
1. Resolve/reuse `workflowSessionId`: `maestro-audit-[entity]`.
|
|
18
|
-
2. Load shared references:
|
|
19
|
-
- `references/maestro.md` as the index before choosing focused Maestro references.
|
|
20
|
-
- `references/maestro/fact-ledger.md` before making any Maestro claim; tag facts as `official-doc`, `live-help`, `repo-convention`, or `excluded/unverified`.
|
|
21
|
-
- `references/maestro/cli-device.md` before CLI checks, device/platform readiness, local sharding, or executable runs.
|
|
22
|
-
- `references/maestro/workspace-execution.md` before discovering flows, tags, config, CI commands, execution order, or suite isolation.
|
|
23
|
-
- `references/maestro/artifacts-reports.md` before report/artifact/debug-output, screenshot, video, recording, or AI report claims.
|
|
24
|
-
- `references/maestro/selectors.md` before selector stability findings.
|
|
25
|
-
- `references/maestro/config-env-output.md` before env/config/report-output findings.
|
|
26
|
-
- `references/maestro/cloud.md` only when Cloud execution, Cloud devices, auth/plan, or Cloud artifact evidence is in scope.
|
|
27
|
-
- `references/maestro/mcp.md` only when Maestro MCP or Viewer evidence is in scope.
|
|
28
|
-
- `references/maestro/patterns.md` before flake, setup/teardown, coverage, and execution-handoff judgments.
|
|
29
|
-
- `references/audit-report-io.md` before producing the report.
|
|
30
|
-
- `references/mobile-context.md` for platform scope, parity, and device/emulator assumptions.
|
|
31
|
-
- `references/audit-scope.md` for scope packet, budgets, skipped depth checks, and freshness.
|
|
32
|
-
- `references/context-firewall.md` before large logs, screenshots, videos, JUnit XML, generated artifacts, or broad search output.
|
|
33
|
-
- `references/synapse-policy.md` when repeated massa-ai searches are expected.
|
|
34
|
-
- `references/agent-orchestration.md` only for large scopes, explicit parallel/subagent requests, or independent verification of high-impact findings.
|
|
35
|
-
3. Run the mandatory Maestro CLI transcript gate from `references/maestro/cli-device.md` and `references/maestro/fact-ledger.md`: `command -v maestro`, `maestro --version` or `maestro --help`, and relevant subcommand help with command, exit code, stdout, and stderr. If missing or failing, block executable audit runs and produce only a blocked static-readiness report when source inspection is still useful.
|
|
36
|
-
4. Establish the audit target:
|
|
37
|
-
- Explicit Maestro root, suite, flow file, tag, app/module, platform, branch comparison, commit range, modified files, or whole Maestro workspace.
|
|
38
|
-
- For omitted target, discover all developed Maestro flows and ask before whole-workspace audit if multiple roots exist.
|
|
39
|
-
5. Resolve expected behavior sources in scenario input order: Jira/Confluence via Atlassian MCP, attached/local file, prompt text, then explored/inferred repository behavior. If no requirements source exists, run `workflows/exploration.md` before comparing behavior and label inferred expectations as inference.
|
|
40
|
-
6. Discover all in-scope Maestro flows, subflows, fixtures, setup/teardown, config, tags, CI commands, report paths, and artifact paths.
|
|
41
|
-
7. Run every existing in-scope Maestro flow when the CLI, app build, device/emulator, credentials, and backend dependencies are available. Use deterministic output:
|
|
42
|
-
- `maestro test --format junit --output <report.xml> --test-output-dir <artifact-dir> <flow-or-directory>`.
|
|
43
|
-
- Capture command, exit code, JUnit report, artifact directory, platform/device, app build/flavor, environment, and skipped-check reason.
|
|
44
|
-
8. Compare current flows and run results against supplied or discovered expected behavior:
|
|
45
|
-
- Scenario coverage and acceptance criteria.
|
|
46
|
-
- Setup/teardown completeness, data isolation, feature flags, permissions, locale/timezone, cleanup, and app state reset.
|
|
47
|
-
- Selector/test-ID stability, synchronization, fixed sleeps, coordinates, screenshot/image coupling, brittle text, and flow ordering.
|
|
48
|
-
- CI report/artifact retention, runtime cost, device assumptions, retry/quarantine behavior, and flake diagnostics.
|
|
49
|
-
9. Produce findings first, ordered by severity. IDs: `MST-<N>`.
|
|
50
|
-
- Each finding must include severity, confidence, flow/subflow/file location, scenario source, concrete evidence, impacted journey, flake or coverage risk, simplest sufficient fix, and Verification Suggestion.
|
|
51
|
-
- If no findings are found, say that clearly and list flows, scenarios, commands/artifacts, and skipped checks.
|
|
52
|
-
- Include the Verification/Test Fidelity Checklist from `references/audit-report-io.md`; tie every `MST-*` finding or no-finding claim to deterministic sensors, commands/artifacts, validation assets, skipped-check reasons, and runtime artifacts. Model judgment alone cannot satisfy verification/testing all-clear.
|
|
53
|
-
10. Save or propose `audits/maestro/<YYYY-MM-DD maestro-audit.md>` using the report contract in `references/audit-report-io.md`. The enriched report must preserve flow inventory, run matrix, scenario coverage, JUnit report path, artifact directory, device/emulator readiness, validation assets, and execution handoff.
|
|
54
|
-
11. Invoke `workflows/maestro/maestro-fix.md` only as a bounded child workflow for failed executable `MST-*` findings when requested or when the parent audit explicitly includes auto-fix handoff. The child may edit only Maestro flows, subflows, fixtures, setup/teardown, and test data.
|
|
55
|
-
12. Persist only durable Maestro conventions, flake classes, selector/test-ID policy, device matrix constraints, or reusable verification recipes after Importance Calibration. Use `workflow:maestro-audit` and required memory tags.
|
|
56
|
-
13. Complete the Evidence Gate from `references/evidence-gate.md`.
|
|
57
|
-
|
|
58
|
-
## Examples
|
|
59
|
-
|
|
60
|
-
User asks: "Run a Maestro audit for the checkout suite."
|
|
61
|
-
|
|
62
|
-
1. Scope to the checkout Maestro root or tag, run CLI/device preflight, and discover expected behavior.
|
|
63
|
-
2. Execute in-scope flows with JUnit report and artifact output when dependencies are available.
|
|
64
|
-
3. Save `audits/maestro/<YYYY-MM-DD maestro-audit.md>` with `MST-*` findings and execution handoff.
|