@guanlin4924/devflow-pi 0.1.59 → 0.1.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/plugins/devflow-core/extensions/devflow-core.ts +1 -1
- package/plugins/devflow-core/skills/wireframe-render/SKILL.md +1 -1
- package/plugins/devflow-core/skills/workflow-orchestrator/scripts/wireframe_validate.py +1 -1
- package/plugins/devflow-core/skills/workflow-orchestrator/templates/feature-development.yaml +7 -2
- package/src/constants.ts +1 -1
package/package.json
CHANGED
|
@@ -2471,7 +2471,7 @@ export default function devflowCore(pi: ExtensionAPI) {
|
|
|
2471
2471
|
String(revision),
|
|
2472
2472
|
...(checkpoint ? ["--confirm-checkpoint", "--runtime-confirmed"] : ["--complete-step", stepId!]),
|
|
2473
2473
|
]);
|
|
2474
|
-
if (!result.ok) {
|
|
2474
|
+
if (!result.ok || !controlPlaneSucceeded(result)) {
|
|
2475
2475
|
setControlState(ctx, { intent: "workflow-execute", phase: "blocked", label: "推进校验失败" });
|
|
2476
2476
|
ctx.ui.notify(`未推进:${result.stderr || result.stdout}\n请补齐上述校验缺项后重新审批;重复批准不会绕过门禁。可请求重新执行当前步骤以修复产物。`, "error");
|
|
2477
2477
|
return { handled: true };
|
|
@@ -5,4 +5,4 @@ description: Render validated canonical wireframe JSON into deterministic Markdo
|
|
|
5
5
|
|
|
6
6
|
# Wireframe Render
|
|
7
7
|
|
|
8
|
-
Call the workflow-orchestrator wireframe_render.py script only with the current Core-built canonical JSON. Generate preview Markdown, flow SVG, page SVGs
|
|
8
|
+
Call the workflow-orchestrator wireframe_render.py script only with the current Core-built canonical JSON and the validation metadata. Generate preview Markdown, flow SVG, page SVGs under `wireframes/screens/<screen-id>/<platform>/default.svg`, and the optional static gallery under the wireframe output directory. The `wireframes/screens` directory is a required render output and is covered by the execution contract. The `canonical.meta.json` file is created later by the Core approval path and is not an input to this step. Never read proposal YAML as a substitute, mutate canonical JSON, write approval, or modify workflow state.
|
|
@@ -192,7 +192,7 @@ def validate_inline(element: dict[str, Any], index: int, errors: list[dict[str,
|
|
|
192
192
|
ids: set[str] = set()
|
|
193
193
|
for j, col in enumerate(columns):
|
|
194
194
|
if not isinstance(col, dict):
|
|
195
|
-
issue(errors, "WIREFRAME_INVALID_FIELD_VALUE", f"{path}.columns[{j}]", "column must be an object")
|
|
195
|
+
issue(errors, "WIREFRAME_INVALID_FIELD_VALUE", f"{path}.columns[{j}]", "column must be an object with id and label")
|
|
196
196
|
continue
|
|
197
197
|
unknown_keys(col, {"id", "label"}, f"{path}.columns[{j}]", errors)
|
|
198
198
|
require_id(col.get("id"), "WIREFRAME_ELEMENT_ID_MISSING", f"{path}.columns[{j}].id", errors, ids)
|
package/plugins/devflow-core/skills/workflow-orchestrator/templates/feature-development.yaml
CHANGED
|
@@ -233,6 +233,7 @@ checkpoints:
|
|
|
233
233
|
- ".planning/features/{feature}/canonical.meta.json"
|
|
234
234
|
- ".planning/features/{feature}/wireframes/preview.md"
|
|
235
235
|
- ".planning/features/{feature}/wireframes/flow.svg"
|
|
236
|
+
- ".planning/features/{feature}/wireframes/screens"
|
|
236
237
|
required_meta_output: ".planning/features/{feature}/canonical.meta.json"
|
|
237
238
|
required_meta_fields:
|
|
238
239
|
- prototype_fingerprint
|
|
@@ -568,7 +569,7 @@ steps:
|
|
|
568
569
|
- wireframe-validate
|
|
569
570
|
inputs:
|
|
570
571
|
- ".planning/features/{feature}/canonical.json"
|
|
571
|
-
- ".planning/features/{feature}/
|
|
572
|
+
- ".planning/features/{feature}/wireframe-validation.meta.json"
|
|
572
573
|
outputs:
|
|
573
574
|
- path: ".planning/features/{feature}/wireframes/preview.md"
|
|
574
575
|
type: wireframe-preview
|
|
@@ -576,6 +577,9 @@ steps:
|
|
|
576
577
|
- path: ".planning/features/{feature}/wireframes/flow.svg"
|
|
577
578
|
type: wireframe-flow
|
|
578
579
|
required: true
|
|
580
|
+
- path: ".planning/features/{feature}/wireframes/screens"
|
|
581
|
+
type: wireframe-page-svgs
|
|
582
|
+
required: true
|
|
579
583
|
|
|
580
584
|
- id: wireframe-review
|
|
581
585
|
order: 14
|
|
@@ -586,10 +590,11 @@ steps:
|
|
|
586
590
|
- wireframe-render
|
|
587
591
|
inputs:
|
|
588
592
|
- ".planning/features/{feature}/canonical.json"
|
|
589
|
-
- ".planning/features/{feature}/
|
|
593
|
+
- ".planning/features/{feature}/wireframe-validation.meta.json"
|
|
590
594
|
- ".planning/features/{feature}/questions.yaml"
|
|
591
595
|
- ".planning/features/{feature}/wireframes/preview.md"
|
|
592
596
|
- ".planning/features/{feature}/wireframes/flow.svg"
|
|
597
|
+
- ".planning/features/{feature}/wireframes/screens"
|
|
593
598
|
outputs:
|
|
594
599
|
- path: ".planning/features/{feature}/approval.json"
|
|
595
600
|
type: wireframe-approval
|
package/src/constants.ts
CHANGED