rainskills 0.1.0-rc.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 (133) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +374 -0
  3. package/bin/rainskills.js +71 -0
  4. package/install.sh +1919 -0
  5. package/package.json +55 -0
  6. package/rainbond-app-assistant/SKILL.md +1319 -0
  7. package/rainbond-app-assistant/evals/01-linked-topology-missing.expected.yaml +21 -0
  8. package/rainbond-app-assistant/evals/01-linked-topology-missing.response.md +53 -0
  9. package/rainbond-app-assistant/evals/02-linked-topology-building.expected.yaml +19 -0
  10. package/rainbond-app-assistant/evals/02-linked-topology-building.response.md +53 -0
  11. package/rainbond-app-assistant/evals/03-runtime-healthy-delivery-unknown.expected.yaml +19 -0
  12. package/rainbond-app-assistant/evals/03-runtime-healthy-delivery-unknown.response.md +53 -0
  13. package/rainbond-app-assistant/evals/04-delivered-stop-without-promotion.expected.yaml +21 -0
  14. package/rainbond-app-assistant/evals/04-delivered-stop-without-promotion.response.md +58 -0
  15. package/rainbond-app-assistant/evals/05-delivered-explicit-dev-to-test.expected.yaml +21 -0
  16. package/rainbond-app-assistant/evals/05-delivered-explicit-dev-to-test.response.md +80 -0
  17. package/rainbond-app-assistant/evals/06-manual-validation-stop.expected.yaml +16 -0
  18. package/rainbond-app-assistant/evals/06-manual-validation-stop.response.md +58 -0
  19. package/rainbond-app-assistant/evals/07-cluster-capacity-blocked.expected.yaml +15 -0
  20. package/rainbond-app-assistant/evals/07-cluster-capacity-blocked.response.md +53 -0
  21. package/rainbond-app-assistant/evals/08-code-build-handoff-stop.expected.yaml +21 -0
  22. package/rainbond-app-assistant/evals/08-code-build-handoff-stop.response.md +56 -0
  23. package/rainbond-app-assistant/evals/09-source-backed-failure-no-fallback.expected.yaml +22 -0
  24. package/rainbond-app-assistant/evals/09-source-backed-failure-no-fallback.response.md +56 -0
  25. package/rainbond-app-assistant/evals/10-identity-ambiguous-stop.expected.yaml +21 -0
  26. package/rainbond-app-assistant/evals/10-identity-ambiguous-stop.response.md +45 -0
  27. package/rainbond-app-assistant/evals/11-delivered-with-proxy-and-local-binding.expected.yaml +28 -0
  28. package/rainbond-app-assistant/evals/11-delivered-with-proxy-and-local-binding.response.md +64 -0
  29. package/rainbond-app-assistant/evals/12-complex-suite-needs-descriptor-stop.expected.yaml +24 -0
  30. package/rainbond-app-assistant/evals/12-complex-suite-needs-descriptor-stop.response.md +45 -0
  31. package/rainbond-app-assistant/evals/13-explicit-git-url-locks-source.expected.yaml +28 -0
  32. package/rainbond-app-assistant/evals/13-explicit-git-url-locks-source.response.md +53 -0
  33. package/rainbond-app-assistant/evals/14-strategy-switch-cleans-residue.expected.yaml +22 -0
  34. package/rainbond-app-assistant/evals/14-strategy-switch-cleans-residue.response.md +53 -0
  35. package/rainbond-app-assistant/evals/15-turn-discipline-reuse-alias.expected.yaml +23 -0
  36. package/rainbond-app-assistant/evals/15-turn-discipline-reuse-alias.response.md +53 -0
  37. package/rainbond-app-assistant/schemas/app-assistant-result.schema.yaml +279 -0
  38. package/rainbond-app-assistant/scripts/run_app_assistant_evals.py +80 -0
  39. package/rainbond-app-assistant/scripts/validate_app_assistant_output.py +935 -0
  40. package/rainbond-app-version-assistant/SKILL.md +444 -0
  41. package/rainbond-delivery-verifier/SKILL.md +372 -0
  42. package/rainbond-delivery-verifier/evals/01-delivered-verified.expected.yaml +19 -0
  43. package/rainbond-delivery-verifier/evals/01-delivered-verified.response.md +31 -0
  44. package/rainbond-delivery-verifier/evals/02-delivered-manual-validation.expected.yaml +19 -0
  45. package/rainbond-delivery-verifier/evals/02-delivered-manual-validation.response.md +31 -0
  46. package/rainbond-delivery-verifier/evals/03-partially-delivered-building.expected.yaml +20 -0
  47. package/rainbond-delivery-verifier/evals/03-partially-delivered-building.response.md +31 -0
  48. package/rainbond-delivery-verifier/evals/04-blocked-capacity.expected.yaml +18 -0
  49. package/rainbond-delivery-verifier/evals/04-blocked-capacity.response.md +31 -0
  50. package/rainbond-delivery-verifier/evals/05-blocked-no-usable-url.expected.yaml +20 -0
  51. package/rainbond-delivery-verifier/evals/05-blocked-no-usable-url.response.md +31 -0
  52. package/rainbond-delivery-verifier/evals/06-blocked-runtime-unhealthy.expected.yaml +19 -0
  53. package/rainbond-delivery-verifier/evals/06-blocked-runtime-unhealthy.response.md +31 -0
  54. package/rainbond-delivery-verifier/schemas/delivery-verification-result.schema.yaml +84 -0
  55. package/rainbond-delivery-verifier/scripts/run_delivery_verifier_evals.py +78 -0
  56. package/rainbond-delivery-verifier/scripts/validate_delivery_verifier_output.py +728 -0
  57. package/rainbond-env-sync/SKILL.md +496 -0
  58. package/rainbond-fullstack-bootstrap/SKILL.md +262 -0
  59. package/rainbond-fullstack-bootstrap/evals/01-reuse-only.expected.yaml +27 -0
  60. package/rainbond-fullstack-bootstrap/evals/01-reuse-only.prompt.md +1 -0
  61. package/rainbond-fullstack-bootstrap/evals/01-reuse-only.response.md +43 -0
  62. package/rainbond-fullstack-bootstrap/evals/02-deferred-dependency.expected.yaml +27 -0
  63. package/rainbond-fullstack-bootstrap/evals/02-deferred-dependency.prompt.md +1 -0
  64. package/rainbond-fullstack-bootstrap/evals/02-deferred-dependency.response.md +44 -0
  65. package/rainbond-fullstack-bootstrap/evals/03-capacity-blocked.expected.yaml +26 -0
  66. package/rainbond-fullstack-bootstrap/evals/03-capacity-blocked.prompt.md +1 -0
  67. package/rainbond-fullstack-bootstrap/evals/03-capacity-blocked.response.md +43 -0
  68. package/rainbond-fullstack-bootstrap/evals/04-template-skip.expected.yaml +31 -0
  69. package/rainbond-fullstack-bootstrap/evals/04-template-skip.prompt.md +1 -0
  70. package/rainbond-fullstack-bootstrap/evals/04-template-skip.response.md +43 -0
  71. package/rainbond-fullstack-bootstrap/evals/05-source-ambiguity-stop.expected.yaml +33 -0
  72. package/rainbond-fullstack-bootstrap/evals/05-source-ambiguity-stop.prompt.md +1 -0
  73. package/rainbond-fullstack-bootstrap/evals/05-source-ambiguity-stop.response.md +43 -0
  74. package/rainbond-fullstack-bootstrap/evals/06-external-artifact-unreachable.expected.yaml +23 -0
  75. package/rainbond-fullstack-bootstrap/evals/06-external-artifact-unreachable.response.md +39 -0
  76. package/rainbond-fullstack-bootstrap/evals/07-provider-connection-contract.expected.yaml +29 -0
  77. package/rainbond-fullstack-bootstrap/evals/07-provider-connection-contract.response.md +43 -0
  78. package/rainbond-fullstack-bootstrap/evals/08-explicit-dependency-after-manual-components.expected.yaml +30 -0
  79. package/rainbond-fullstack-bootstrap/evals/08-explicit-dependency-after-manual-components.prompt.md +1 -0
  80. package/rainbond-fullstack-bootstrap/evals/08-explicit-dependency-after-manual-components.response.md +43 -0
  81. package/rainbond-fullstack-bootstrap/evals/09-inferred-provider-consumer-gate.expected.yaml +32 -0
  82. package/rainbond-fullstack-bootstrap/evals/09-inferred-provider-consumer-gate.prompt.md +1 -0
  83. package/rainbond-fullstack-bootstrap/evals/09-inferred-provider-consumer-gate.response.md +41 -0
  84. package/rainbond-fullstack-bootstrap/evals/10-compose-service-name-not-hostname.expected.yaml +34 -0
  85. package/rainbond-fullstack-bootstrap/evals/10-compose-service-name-not-hostname.prompt.md +1 -0
  86. package/rainbond-fullstack-bootstrap/evals/10-compose-service-name-not-hostname.response.md +43 -0
  87. package/rainbond-fullstack-bootstrap/evals/11-reverse-proxy-not-dropped.expected.yaml +46 -0
  88. package/rainbond-fullstack-bootstrap/evals/11-reverse-proxy-not-dropped.prompt.md +1 -0
  89. package/rainbond-fullstack-bootstrap/evals/11-reverse-proxy-not-dropped.response.md +48 -0
  90. package/rainbond-fullstack-bootstrap/evals/12-optional-services-disclose-not-deploy.expected.yaml +43 -0
  91. package/rainbond-fullstack-bootstrap/evals/12-optional-services-disclose-not-deploy.prompt.md +1 -0
  92. package/rainbond-fullstack-bootstrap/evals/12-optional-services-disclose-not-deploy.response.md +63 -0
  93. package/rainbond-fullstack-bootstrap/evals/13-env-reference-dependency-completeness.expected.yaml +47 -0
  94. package/rainbond-fullstack-bootstrap/evals/13-env-reference-dependency-completeness.prompt.md +1 -0
  95. package/rainbond-fullstack-bootstrap/evals/13-env-reference-dependency-completeness.response.md +60 -0
  96. package/rainbond-fullstack-bootstrap/modules/10-context-loading.md +157 -0
  97. package/rainbond-fullstack-bootstrap/modules/20-scope-and-boundaries.md +105 -0
  98. package/rainbond-fullstack-bootstrap/modules/30-creation-rules.md +337 -0
  99. package/rainbond-fullstack-bootstrap/modules/40-source-and-package-rules.md +245 -0
  100. package/rainbond-fullstack-bootstrap/modules/50-workflow-and-convergence.md +198 -0
  101. package/rainbond-fullstack-bootstrap/modules/60-verification-and-handoffs.md +143 -0
  102. package/rainbond-fullstack-bootstrap/modules/70-output-contract.md +152 -0
  103. package/rainbond-fullstack-bootstrap/references/manifest-v1-reference.md +150 -0
  104. package/rainbond-fullstack-bootstrap/references/quick-reference.md +101 -0
  105. package/rainbond-fullstack-bootstrap/references/source-build-parameter-guide.md +264 -0
  106. package/rainbond-fullstack-bootstrap/references/sql-init-recipe.md +83 -0
  107. package/rainbond-fullstack-bootstrap/schemas/bootstrap-result.schema.yaml +217 -0
  108. package/rainbond-fullstack-bootstrap/scripts/run_bootstrap_evals.py +74 -0
  109. package/rainbond-fullstack-bootstrap/scripts/validate_bootstrap_output.py +615 -0
  110. package/rainbond-fullstack-troubleshooter/SKILL.md +870 -0
  111. package/rainbond-fullstack-troubleshooter/evals/01-source-build-failed.expected.yaml +29 -0
  112. package/rainbond-fullstack-troubleshooter/evals/01-source-build-failed.response.md +55 -0
  113. package/rainbond-fullstack-troubleshooter/evals/02-source-build-still-running.expected.yaml +20 -0
  114. package/rainbond-fullstack-troubleshooter/evals/02-source-build-still-running.response.md +53 -0
  115. package/rainbond-fullstack-troubleshooter/evals/03-dependency-missing.expected.yaml +21 -0
  116. package/rainbond-fullstack-troubleshooter/evals/03-dependency-missing.response.md +59 -0
  117. package/rainbond-fullstack-troubleshooter/evals/04-wrong-connection-values.expected.yaml +19 -0
  118. package/rainbond-fullstack-troubleshooter/evals/04-wrong-connection-values.response.md +58 -0
  119. package/rainbond-fullstack-troubleshooter/evals/05-env-naming-incompatibility.expected.yaml +18 -0
  120. package/rainbond-fullstack-troubleshooter/evals/05-env-naming-incompatibility.response.md +59 -0
  121. package/rainbond-fullstack-troubleshooter/evals/06-frontend-access-path-issue.expected.yaml +21 -0
  122. package/rainbond-fullstack-troubleshooter/evals/06-frontend-access-path-issue.response.md +56 -0
  123. package/rainbond-fullstack-troubleshooter/evals/07-cluster-capacity-blocked.expected.yaml +20 -0
  124. package/rainbond-fullstack-troubleshooter/evals/07-cluster-capacity-blocked.response.md +57 -0
  125. package/rainbond-fullstack-troubleshooter/evals/08-code-or-build-handoff-needed.expected.yaml +21 -0
  126. package/rainbond-fullstack-troubleshooter/evals/08-code-or-build-handoff-needed.response.md +55 -0
  127. package/rainbond-fullstack-troubleshooter/evals/09-external-artifact-unreachable.expected.yaml +28 -0
  128. package/rainbond-fullstack-troubleshooter/evals/09-external-artifact-unreachable.response.md +53 -0
  129. package/rainbond-fullstack-troubleshooter/schemas/troubleshoot-result.schema.yaml +217 -0
  130. package/rainbond-fullstack-troubleshooter/scripts/run_troubleshooter_evals.py +80 -0
  131. package/rainbond-fullstack-troubleshooter/scripts/validate_troubleshoot_output.py +789 -0
  132. package/rainbond-project-init/SKILL.md +1001 -0
  133. package/rainbond-template-installer/SKILL.md +410 -0
@@ -0,0 +1,21 @@
1
+ case: linked-topology-missing
2
+ assert:
3
+ equal:
4
+ AppAssistantResult.request_intent: source_app_delivery
5
+ AppAssistantResult.execution_path.requested_kind: source
6
+ AppAssistantResult.execution_path.resolved_kind: source
7
+ AppAssistantResult.orchestration_state: linked-and-topology-missing
8
+ AppAssistantResult.runtime_state.phase: topology_missing
9
+ AppAssistantResult.delivery_state: null
10
+ AppAssistantResult.promotion_result: null
11
+ AppAssistantResult.next_action: run bootstrap
12
+ contains:
13
+ AppAssistantResult.actions_performed:
14
+ - skill: rainbond-fullstack-bootstrap
15
+ status: pending
16
+ details: Selected as the next safe step because the linked source app still has no established topology.
17
+ prose_contains:
18
+ - linked-and-topology-missing
19
+ - topology_missing
20
+ - bootstrap is required
21
+ - run bootstrap
@@ -0,0 +1,53 @@
1
+ ### Project State
2
+ The project is `linked-and-topology-missing` for the `preview` environment with team `demo-team`, region `cn`, app `orders-app`, and app_id `app-201`.
3
+
4
+ ### Actions Performed
5
+ This run resolved local binding and current project intent. `rainbond-fullstack-bootstrap` was selected as the next safe step because the linked source app still has no established topology.
6
+
7
+ ### Current Health
8
+ db status null, api/service status waiting, frontend-access status null, overall status topology_missing.
9
+
10
+ ### Blocking Issue
11
+ The linked source app has no established topology yet, so bootstrap is required before runtime or delivery evidence can exist.
12
+
13
+ ### Next Step
14
+ run bootstrap
15
+
16
+ ### Structured Output
17
+ ```yaml
18
+ AppAssistantResult:
19
+ project:
20
+ identity:
21
+ team_name: demo-team
22
+ region_name: cn
23
+ app_name: orders-app
24
+ app_id: app-201
25
+ linked: true
26
+ selected_environment: preview
27
+ environment:
28
+ name: preview
29
+ source: local_preference
30
+ env_delta_present: true
31
+ secrets_provided: true
32
+ request_intent: source_app_delivery
33
+ execution_path:
34
+ requested_kind: source
35
+ resolved_kind: source
36
+ orchestration_state: linked-and-topology-missing
37
+ runtime_state:
38
+ phase: topology_missing
39
+ db_status: null
40
+ api_status: waiting
41
+ frontend_status: null
42
+ blocker: The linked source app has no established topology yet, so bootstrap is required before runtime or delivery evidence can exist.
43
+ delivery_state: null
44
+ promotion_result: null
45
+ actions_performed:
46
+ - skill: inspection-only
47
+ status: completed
48
+ details: Resolved the linked source app identity and current project intent from local binding plus current MCP truth.
49
+ - skill: rainbond-fullstack-bootstrap
50
+ status: pending
51
+ details: Selected as the next safe step because the linked source app still has no established topology.
52
+ next_action: run bootstrap
53
+ ```
@@ -0,0 +1,19 @@
1
+ case: linked-topology-building
2
+ assert:
3
+ equal:
4
+ AppAssistantResult.request_intent: source_app_delivery
5
+ AppAssistantResult.orchestration_state: linked-and-topology-building
6
+ AppAssistantResult.runtime_state.phase: topology_building
7
+ AppAssistantResult.delivery_state: null
8
+ AppAssistantResult.promotion_result: null
9
+ AppAssistantResult.next_action: run troubleshooter
10
+ contains:
11
+ AppAssistantResult.actions_performed:
12
+ - skill: rainbond-fullstack-troubleshooter
13
+ status: pending
14
+ details: Selected because topology exists but source-backed components are still converging.
15
+ prose_contains:
16
+ - linked-and-topology-building
17
+ - topology_building
18
+ - Source-backed components are still building
19
+ - run troubleshooter
@@ -0,0 +1,53 @@
1
+ ### Project State
2
+ The project is `linked-and-topology-building` for the `preview` environment with team `demo-team`, region `cn`, app `inventory-app`, and app_id `app-202`.
3
+
4
+ ### Actions Performed
5
+ This run resolved the linked source app state and kept the source path intact. `rainbond-fullstack-troubleshooter` was selected because topology exists but source-backed components are still converging.
6
+
7
+ ### Current Health
8
+ db status running, api/service status building, frontend-access status waiting, overall status topology_building.
9
+
10
+ ### Blocking Issue
11
+ Source-backed components are still building and need bounded convergence inspection before delivery verification is safe.
12
+
13
+ ### Next Step
14
+ run troubleshooter
15
+
16
+ ### Structured Output
17
+ ```yaml
18
+ AppAssistantResult:
19
+ project:
20
+ identity:
21
+ team_name: demo-team
22
+ region_name: cn
23
+ app_name: inventory-app
24
+ app_id: app-202
25
+ linked: true
26
+ selected_environment: preview
27
+ environment:
28
+ name: preview
29
+ source: local_preference
30
+ env_delta_present: true
31
+ secrets_provided: true
32
+ request_intent: source_app_delivery
33
+ execution_path:
34
+ requested_kind: source
35
+ resolved_kind: source
36
+ orchestration_state: linked-and-topology-building
37
+ runtime_state:
38
+ phase: topology_building
39
+ db_status: running
40
+ api_status: building
41
+ frontend_status: waiting
42
+ blocker: Source-backed components are still building and need bounded convergence inspection before delivery verification is safe.
43
+ delivery_state: null
44
+ promotion_result: null
45
+ actions_performed:
46
+ - skill: inspection-only
47
+ status: completed
48
+ details: Resolved the linked source app state from current MCP truth without changing the source-backed path.
49
+ - skill: rainbond-fullstack-troubleshooter
50
+ status: pending
51
+ details: Selected because topology exists but source-backed components are still converging.
52
+ next_action: run troubleshooter
53
+ ```
@@ -0,0 +1,19 @@
1
+ case: runtime-healthy-delivery-unknown
2
+ assert:
3
+ equal:
4
+ AppAssistantResult.request_intent: source_app_delivery
5
+ AppAssistantResult.orchestration_state: linked-and-needs-delivery-verification
6
+ AppAssistantResult.runtime_state.phase: runtime_healthy
7
+ AppAssistantResult.delivery_state: null
8
+ AppAssistantResult.promotion_result: null
9
+ AppAssistantResult.next_action: run delivery verifier
10
+ contains:
11
+ AppAssistantResult.actions_performed:
12
+ - skill: rainbond-delivery-verifier
13
+ status: pending
14
+ details: Selected because runtime is healthy but delivery acceptance is still unknown.
15
+ prose_contains:
16
+ - linked-and-needs-delivery-verification
17
+ - runtime_healthy
18
+ - delivery acceptance is still unknown
19
+ - run delivery verifier
@@ -0,0 +1,53 @@
1
+ ### Project State
2
+ The project is `linked-and-needs-delivery-verification` for the `preview` environment with team `demo-team`, region `cn`, app `billing-app`, and app_id `app-203`.
3
+
4
+ ### Actions Performed
5
+ This run resolved the linked source app state and confirmed runtime convergence. `rainbond-delivery-verifier` was selected because delivery acceptance is still unknown.
6
+
7
+ ### Current Health
8
+ db status running, api/service status running, frontend-access status running, overall status runtime_healthy.
9
+
10
+ ### Blocking Issue
11
+ No Rainbond-side blocker is currently dominant inside runtime; delivery acceptance is still unknown until delivery-verifier runs.
12
+
13
+ ### Next Step
14
+ run delivery verifier
15
+
16
+ ### Structured Output
17
+ ```yaml
18
+ AppAssistantResult:
19
+ project:
20
+ identity:
21
+ team_name: demo-team
22
+ region_name: cn
23
+ app_name: billing-app
24
+ app_id: app-203
25
+ linked: true
26
+ selected_environment: preview
27
+ environment:
28
+ name: preview
29
+ source: explicit
30
+ env_delta_present: true
31
+ secrets_provided: true
32
+ request_intent: source_app_delivery
33
+ execution_path:
34
+ requested_kind: source
35
+ resolved_kind: source
36
+ orchestration_state: linked-and-needs-delivery-verification
37
+ runtime_state:
38
+ phase: runtime_healthy
39
+ db_status: running
40
+ api_status: running
41
+ frontend_status: running
42
+ blocker: null
43
+ delivery_state: null
44
+ promotion_result: null
45
+ actions_performed:
46
+ - skill: inspection-only
47
+ status: completed
48
+ details: Confirmed runtime convergence for the linked source app from current MCP truth.
49
+ - skill: rainbond-delivery-verifier
50
+ status: pending
51
+ details: Selected because runtime is healthy but delivery acceptance is still unknown.
52
+ next_action: run delivery verifier
53
+ ```
@@ -0,0 +1,21 @@
1
+ case: delivered-stop-without-promotion
2
+ assert:
3
+ equal:
4
+ AppAssistantResult.request_intent: source_app_delivery
5
+ AppAssistantResult.orchestration_state: linked-and-delivered
6
+ AppAssistantResult.runtime_state.phase: runtime_healthy
7
+ AppAssistantResult.delivery_state.status: delivered
8
+ AppAssistantResult.delivery_state.preferred_access_url: https://demo-team-cn.rainbond.me/payments-app
9
+ AppAssistantResult.delivery_state.verification_mode: verified
10
+ AppAssistantResult.promotion_result: null
11
+ AppAssistantResult.next_action: stop
12
+ contains:
13
+ AppAssistantResult.actions_performed:
14
+ - skill: rainbond-delivery-verifier
15
+ status: completed
16
+ details: Verified the source app is delivered and resolved the preferred_access_url.
17
+ prose_contains:
18
+ - linked-and-delivered
19
+ - delivery status delivered
20
+ - promotion was not requested
21
+ - stop
@@ -0,0 +1,58 @@
1
+ ### Project State
2
+ The project is `linked-and-delivered` for the `preview` environment with team `demo-team`, region `cn`, app `payments-app`, and app_id `app-204`.
3
+
4
+ ### Actions Performed
5
+ This run resolved the linked source app state and completed `rainbond-delivery-verifier`. Promotion was not requested, so the single-entry orchestration stopped at the delivered source app boundary.
6
+
7
+ ### Current Health
8
+ db status running, api/service status running, frontend-access status running, overall status runtime_healthy, delivery status delivered.
9
+
10
+ ### Blocking Issue
11
+ No blocking issue remains for the source app. delivery_state is delivered and promotion was not requested.
12
+
13
+ ### Next Step
14
+ stop
15
+
16
+ ### Structured Output
17
+ ```yaml
18
+ AppAssistantResult:
19
+ project:
20
+ identity:
21
+ team_name: demo-team
22
+ region_name: cn
23
+ app_name: payments-app
24
+ app_id: app-204
25
+ linked: true
26
+ selected_environment: preview
27
+ environment:
28
+ name: preview
29
+ source: local_preference
30
+ env_delta_present: true
31
+ secrets_provided: true
32
+ request_intent: source_app_delivery
33
+ execution_path:
34
+ requested_kind: source
35
+ resolved_kind: source
36
+ orchestration_state: linked-and-delivered
37
+ runtime_state:
38
+ phase: runtime_healthy
39
+ db_status: running
40
+ api_status: running
41
+ frontend_status: running
42
+ blocker: null
43
+ delivery_state:
44
+ status: delivered
45
+ preferred_access_url: https://demo-team-cn.rainbond.me/payments-app
46
+ verification_mode: verified
47
+ blocker: null
48
+ verifier_next_action: stop
49
+ promotion_result: null
50
+ actions_performed:
51
+ - skill: inspection-only
52
+ status: completed
53
+ details: Confirmed the linked source app identity and final delivery gate conditions.
54
+ - skill: rainbond-delivery-verifier
55
+ status: completed
56
+ details: Verified the source app is delivered and resolved the preferred_access_url.
57
+ next_action: stop
58
+ ```
@@ -0,0 +1,21 @@
1
+ case: delivered-explicit-dev-to-test
2
+ assert:
3
+ equal:
4
+ AppAssistantResult.request_intent: dev_to_test_promotion
5
+ AppAssistantResult.delivery_state.status: delivered
6
+ AppAssistantResult.delivery_state.preferred_access_url: https://demo-team-cn.rainbond.me/orders-app
7
+ AppAssistantResult.promotion_result.status: testing_app_verified
8
+ AppAssistantResult.promotion_result.snapshot.version_id: ver-20260423-01
9
+ AppAssistantResult.promotion_result.testing_app.app_name: orders-app-test
10
+ AppAssistantResult.promotion_result.testing_delivery_state.status: delivered
11
+ AppAssistantResult.next_action: stop after reporting testing app verification for orders-app-test
12
+ contains:
13
+ AppAssistantResult.actions_performed:
14
+ - skill: rainbond-app-version-assistant
15
+ status: completed
16
+ details: Created snapshot ver-20260423-01 and provisioned testing app orders-app-test because the user explicitly requested dev-to-test promotion.
17
+ prose_contains:
18
+ - linked-and-promotion-complete
19
+ - dev-to-test mainline
20
+ - orders-app-test
21
+ - promotion_result to enter
@@ -0,0 +1,80 @@
1
+ ### Project State
2
+ The project is `linked-and-promotion-complete` for the `preview` environment with team `demo-team`, region `cn`, app `orders-app`, and app_id `app-205`.
3
+
4
+ ### Actions Performed
5
+ This run resolved the linked source app state, completed `rainbond-delivery-verifier`, then entered `rainbond-app-version-assistant` because the user explicitly requested the dev-to-test mainline. A second `rainbond-delivery-verifier` run verified the created testing app.
6
+
7
+ ### Current Health
8
+ db status running, api/service status running, frontend-access status running, overall status runtime_healthy, delivery status delivered, testing app `orders-app-test` verification status delivered.
9
+
10
+ ### Blocking Issue
11
+ No blocking issue remains. The explicit dev-to-test request allowed promotion_result to enter after the source app was delivered.
12
+
13
+ ### Next Step
14
+ stop after reporting testing app verification for orders-app-test
15
+
16
+ ### Structured Output
17
+ ```yaml
18
+ AppAssistantResult:
19
+ project:
20
+ identity:
21
+ team_name: demo-team
22
+ region_name: cn
23
+ app_name: orders-app
24
+ app_id: app-205
25
+ linked: true
26
+ selected_environment: preview
27
+ environment:
28
+ name: preview
29
+ source: explicit
30
+ env_delta_present: true
31
+ secrets_provided: true
32
+ request_intent: dev_to_test_promotion
33
+ execution_path:
34
+ requested_kind: source
35
+ resolved_kind: source
36
+ orchestration_state: linked-and-promotion-complete
37
+ runtime_state:
38
+ phase: runtime_healthy
39
+ db_status: running
40
+ api_status: running
41
+ frontend_status: running
42
+ blocker: null
43
+ delivery_state:
44
+ status: delivered
45
+ preferred_access_url: https://demo-team-cn.rainbond.me/orders-app
46
+ verification_mode: verified
47
+ blocker: null
48
+ verifier_next_action: stop
49
+ promotion_result:
50
+ status: testing_app_verified
51
+ snapshot:
52
+ version_id: ver-20260423-01
53
+ version: v1.0.0-test
54
+ alias: dev-to-test-smoke
55
+ testing_app:
56
+ team_name: demo-team
57
+ region_name: cn
58
+ app_name: orders-app-test
59
+ app_id: app-test-205
60
+ testing_delivery_state:
61
+ status: delivered
62
+ preferred_access_url: https://demo-team-cn.rainbond.me/orders-app-test
63
+ verification_mode: verified
64
+ blocker: null
65
+ verifier_next_action: stop
66
+ actions_performed:
67
+ - skill: inspection-only
68
+ status: completed
69
+ details: Confirmed the linked source app identity and explicit dev-to-test intent.
70
+ - skill: rainbond-delivery-verifier
71
+ status: completed
72
+ details: Verified the source app is delivered and unlocked the promotion gate.
73
+ - skill: rainbond-app-version-assistant
74
+ status: completed
75
+ details: Created snapshot ver-20260423-01 and provisioned testing app orders-app-test because the user explicitly requested dev-to-test promotion.
76
+ - skill: rainbond-delivery-verifier
77
+ status: completed
78
+ details: Verified the created testing app orders-app-test is delivered.
79
+ next_action: stop after reporting testing app verification for orders-app-test
80
+ ```
@@ -0,0 +1,16 @@
1
+ case: manual-validation-stop
2
+ assert:
3
+ equal:
4
+ AppAssistantResult.request_intent: dev_to_test_promotion
5
+ AppAssistantResult.orchestration_state: linked-and-needs-manual-url-validation
6
+ AppAssistantResult.delivery_state.status: delivered-but-needs-manual-validation
7
+ AppAssistantResult.delivery_state.verification_mode: inferred
8
+ AppAssistantResult.delivery_state.verifier_next_action: manual_url_validation
9
+ AppAssistantResult.promotion_result: null
10
+ AppAssistantResult.next_action: stop and validate URL manually
11
+ prose_contains:
12
+ - delivered-but-needs-manual-validation
13
+ - promotion was not entered
14
+ - manual URL validation
15
+ prose_not_contains:
16
+ - rainbond-app-version-assistant
@@ -0,0 +1,58 @@
1
+ ### Project State
2
+ The project is `linked-and-needs-manual-url-validation` for the `preview` environment with team `demo-team`, region `cn`, app `manual-check-app`, and app_id `app-206`.
3
+
4
+ ### Actions Performed
5
+ This run resolved the linked source app state and completed `rainbond-delivery-verifier`. The user asked for the dev-to-test mainline, but the source app only reached manual URL validation, so promotion was not entered.
6
+
7
+ ### Current Health
8
+ db status running, api/service status running, frontend-access status running, overall status runtime_healthy, delivery status delivered-but-needs-manual-validation.
9
+
10
+ ### Blocking Issue
11
+ No Rainbond-side runtime blocker remains, but the current source app still requires manual URL validation before promotion can be considered.
12
+
13
+ ### Next Step
14
+ stop and validate URL manually
15
+
16
+ ### Structured Output
17
+ ```yaml
18
+ AppAssistantResult:
19
+ project:
20
+ identity:
21
+ team_name: demo-team
22
+ region_name: cn
23
+ app_name: manual-check-app
24
+ app_id: app-206
25
+ linked: true
26
+ selected_environment: preview
27
+ environment:
28
+ name: preview
29
+ source: explicit
30
+ env_delta_present: true
31
+ secrets_provided: true
32
+ request_intent: dev_to_test_promotion
33
+ execution_path:
34
+ requested_kind: source
35
+ resolved_kind: source
36
+ orchestration_state: linked-and-needs-manual-url-validation
37
+ runtime_state:
38
+ phase: runtime_healthy
39
+ db_status: running
40
+ api_status: running
41
+ frontend_status: running
42
+ blocker: null
43
+ delivery_state:
44
+ status: delivered-but-needs-manual-validation
45
+ preferred_access_url: https://demo-team-cn.rainbond.me/manual-check-app
46
+ verification_mode: inferred
47
+ blocker: null
48
+ verifier_next_action: manual_url_validation
49
+ promotion_result: null
50
+ actions_performed:
51
+ - skill: inspection-only
52
+ status: completed
53
+ details: Confirmed the linked source app identity and explicit dev-to-test intent.
54
+ - skill: rainbond-delivery-verifier
55
+ status: completed
56
+ details: Verified runtime convergence, but the source app still needs manual URL validation before any promotion gate can open.
57
+ next_action: stop and validate URL manually
58
+ ```
@@ -0,0 +1,15 @@
1
+ case: cluster-capacity-blocked
2
+ assert:
3
+ equal:
4
+ AppAssistantResult.orchestration_state: linked-and-cluster-capacity-blocked
5
+ AppAssistantResult.runtime_state.phase: capacity_blocked
6
+ AppAssistantResult.delivery_state: null
7
+ AppAssistantResult.promotion_result: null
8
+ AppAssistantResult.next_action: fix cluster capacity first
9
+ prose_contains:
10
+ - linked-and-cluster-capacity-blocked
11
+ - capacity_blocked
12
+ - unschedulable
13
+ - fix cluster capacity first
14
+ prose_not_contains:
15
+ - run delivery verifier
@@ -0,0 +1,53 @@
1
+ ### Project State
2
+ The project is `linked-and-cluster-capacity-blocked` for the `preview` environment with team `demo-team`, region `cn`, app `ops-dashboard`, and app_id `app-207`.
3
+
4
+ ### Actions Performed
5
+ This run resolved the linked source app state and current MCP/runtime evidence. `rainbond-fullstack-troubleshooter` was not entered because the dominant blocker is active cluster capacity shortage.
6
+
7
+ ### Current Health
8
+ db status running, api/service status running, frontend-access status capacity-blocked, overall status capacity_blocked.
9
+
10
+ ### Blocking Issue
11
+ The web component is unschedulable because cluster CPU is exhausted, so delivery verification is not a safe next action.
12
+
13
+ ### Next Step
14
+ fix cluster capacity first
15
+
16
+ ### Structured Output
17
+ ```yaml
18
+ AppAssistantResult:
19
+ project:
20
+ identity:
21
+ team_name: demo-team
22
+ region_name: cn
23
+ app_name: ops-dashboard
24
+ app_id: app-207
25
+ linked: true
26
+ selected_environment: preview
27
+ environment:
28
+ name: preview
29
+ source: local_preference
30
+ env_delta_present: true
31
+ secrets_provided: true
32
+ request_intent: source_app_delivery
33
+ execution_path:
34
+ requested_kind: source
35
+ resolved_kind: source
36
+ orchestration_state: linked-and-cluster-capacity-blocked
37
+ runtime_state:
38
+ phase: capacity_blocked
39
+ db_status: running
40
+ api_status: running
41
+ frontend_status: capacity-blocked
42
+ blocker: The web component is unschedulable because cluster CPU is exhausted, so delivery verification is not a safe next action.
43
+ delivery_state: null
44
+ promotion_result: null
45
+ actions_performed:
46
+ - skill: inspection-only
47
+ status: completed
48
+ details: Confirmed the linked source app identity and active capacity blocker from current MCP truth.
49
+ - skill: rainbond-fullstack-troubleshooter
50
+ status: skipped
51
+ details: Deferred because active cluster capacity shortage must be fixed before bounded runtime repair can continue.
52
+ next_action: fix cluster capacity first
53
+ ```
@@ -0,0 +1,21 @@
1
+ case: code-build-handoff-stop
2
+ assert:
3
+ equal:
4
+ AppAssistantResult.orchestration_state: linked-and-needs-code-build-handoff
5
+ AppAssistantResult.runtime_state.phase: code_or_build_handoff_needed
6
+ AppAssistantResult.delivery_state: null
7
+ AppAssistantResult.promotion_result: null
8
+ AppAssistantResult.next_action: handoff to code/build agent
9
+ contains:
10
+ AppAssistantResult.actions_performed:
11
+ - skill: rainbond-fullstack-troubleshooter
12
+ status: completed
13
+ details: Confirmed the frontend access-path issue belongs to source/build remediation rather than Rainbond-side repair.
14
+ prose_contains:
15
+ - linked-and-needs-code-build-handoff
16
+ - code_or_build_handoff_needed
17
+ - localhost
18
+ - handoff to code/build agent
19
+ prose_not_contains:
20
+ - go test
21
+ - git push
@@ -0,0 +1,56 @@
1
+ ### Project State
2
+ The project is `linked-and-needs-code-build-handoff` for the `preview` environment with team `demo-team`, region `cn`, app `frontend-console`, and app_id `app-208`.
3
+
4
+ ### Actions Performed
5
+ This run completed `rainbond-fullstack-troubleshooter` and confirmed the remaining issue belongs to source/build remediation. `rainbond-delivery-verifier` was skipped because the current blocker is a frontend build/access-path problem.
6
+
7
+ ### Current Health
8
+ db status running, api/service status running, frontend-access status abnormal, overall status code_or_build_handoff_needed.
9
+
10
+ ### Blocking Issue
11
+ The frontend build output still points to localhost, so the current source app requires source/build configuration changes before delivery verification can succeed.
12
+
13
+ ### Next Step
14
+ handoff to code/build agent
15
+
16
+ ### Structured Output
17
+ ```yaml
18
+ AppAssistantResult:
19
+ project:
20
+ identity:
21
+ team_name: demo-team
22
+ region_name: cn
23
+ app_name: frontend-console
24
+ app_id: app-208
25
+ linked: true
26
+ selected_environment: preview
27
+ environment:
28
+ name: preview
29
+ source: local_preference
30
+ env_delta_present: true
31
+ secrets_provided: true
32
+ request_intent: source_app_delivery
33
+ execution_path:
34
+ requested_kind: source
35
+ resolved_kind: source
36
+ orchestration_state: linked-and-needs-code-build-handoff
37
+ runtime_state:
38
+ phase: code_or_build_handoff_needed
39
+ db_status: running
40
+ api_status: running
41
+ frontend_status: abnormal
42
+ blocker: The frontend build output still points to localhost, so the current source app requires source/build configuration changes before delivery verification can succeed.
43
+ delivery_state: null
44
+ promotion_result: null
45
+ actions_performed:
46
+ - skill: inspection-only
47
+ status: completed
48
+ details: Confirmed the linked source app identity and bounded repair scope.
49
+ - skill: rainbond-fullstack-troubleshooter
50
+ status: completed
51
+ details: Confirmed the frontend access-path issue belongs to source/build remediation rather than Rainbond-side repair.
52
+ - skill: rainbond-delivery-verifier
53
+ status: skipped
54
+ details: Deferred because delivery verification is not valid before code/build remediation.
55
+ next_action: handoff to code/build agent
56
+ ```
@@ -0,0 +1,22 @@
1
+ case: source-backed-failure-no-fallback
2
+ assert:
3
+ equal:
4
+ AppAssistantResult.execution_path.requested_kind: source
5
+ AppAssistantResult.execution_path.resolved_kind: source
6
+ AppAssistantResult.orchestration_state: linked-and-source-build-failed
7
+ AppAssistantResult.runtime_state.phase: source_build_failed
8
+ AppAssistantResult.delivery_state: null
9
+ AppAssistantResult.promotion_result: null
10
+ AppAssistantResult.next_action: run troubleshooter on the same source path
11
+ contains:
12
+ AppAssistantResult.actions_performed:
13
+ - skill: rainbond-fullstack-bootstrap
14
+ status: stopped
15
+ details: Source-backed bootstrap stopped after the source build failed and did not switch to package upload, image creation, or template install.
16
+ prose_contains:
17
+ - source-backed path intact
18
+ - did not switch to package upload, image creation, or template install
19
+ - same source path
20
+ prose_not_contains:
21
+ - fallback to package
22
+ - switched to image