Make sample guide generation deterministic; regenerate examples
Template tests / tests (push) Failing after 17s

Fixed guide/step ids stop examples/ from churning on every verify run.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Iisyourdad
2026-06-10 21:40:49 -05:00
parent a0a1bb5cfc
commit 6b40396053
22 changed files with 122 additions and 103 deletions
+54 -54
View File
@@ -1,98 +1,98 @@
{ {
"format": "stepforge-artifacts-manifest", "format": "stepforge-artifacts-manifest",
"version": 1, "version": 1,
"generatedAt": "2026-06-11T02:33:30.203Z", "generatedAt": "2026-06-11T02:38:15.736Z",
"packageVersion": "0.1.0", "packageVersion": "0.1.0",
"files": [ "files": [
{ {
"kind": "artifact", "kind": "artifact",
"path": "artifacts/stepforge_0.1.0_amd64.deb", "path": "artifacts/stepforge_0.1.0_amd64.deb",
"size": 103679916, "size": 103669070,
"sha256": "e568d19b18dbd5be3f2bde1c3e6b70ce79243ba697d625e0a5c1af3e2bd9733e" "sha256": "445758cd92c80c4fc2c5bec5929e62ab33dd83583da859bcba66bda9390ba077"
}, },
{ {
"kind": "artifact", "kind": "artifact",
"path": "artifacts/stepforge_0.1.0_linux-x64.tar.gz", "path": "artifacts/stepforge_0.1.0_linux-x64.tar.gz",
"size": 139347926, "size": 139348957,
"sha256": "0bd6ea1d2c42b74e0b7411427f047dc8cbcc293507172b53ce43116e5f1affac" "sha256": "beb78b999ae40faf7c65d6ccf9bba23f7955b2d7fdc4214e0e9a94e4e3faec74"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/guide.json", "path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/guide.json",
"size": 928, "size": 928,
"sha256": "1fcb87d79d7c8d187256dafdefdd065d3bb3e2fc3b76c52a6003e147213ec1ba" "sha256": "62cfedbb54089f92b8f52493255fab8b37a201cd12746dc8eff2e40be6978dda"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-0997fb48-b598-4319-8144-0ceef68a84f4/step.json", "path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-277488ad-bf0c-488d-a6a2-e54be3e41241/original.png",
"size": 784,
"sha256": "e6233ff39c5ee5e869900fe2db3208443fc126b02aca1175412bc5ab28c767ae"
},
{
"kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/original.png",
"size": 13643,
"sha256": "09e12f935511bb6fabb5637501aa7743516b96d990adfab62ccfa311a7b60606"
},
{
"kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/step.json",
"size": 1609,
"sha256": "36048ccb6e30c00d6b652a0959f794c841ba3b11ff2ba1d6d2afcc94eeed6634"
},
{
"kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/working.png",
"size": 13643,
"sha256": "09e12f935511bb6fabb5637501aa7743516b96d990adfab62ccfa311a7b60606"
},
{
"kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-62da8044-c236-4012-9fce-15785c94bfa7/step.json",
"size": 547,
"sha256": "243b7b1d9e9697dce03eb5b80254fe898835f2f7a89c287e3a6d6cd305f660b9"
},
{
"kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/original.png",
"size": 13602, "size": 13602,
"sha256": "c96eedffdc5fd2eb9b63942cc00f1c8a91d01a0c5c2316c1d12d750b9b49e3d0" "sha256": "c96eedffdc5fd2eb9b63942cc00f1c8a91d01a0c5c2316c1d12d750b9b49e3d0"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/step.json", "path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-277488ad-bf0c-488d-a6a2-e54be3e41241/step.json",
"size": 1975, "size": 1975,
"sha256": "32ee15cec46e2ce8c9fe289ab9848c461978bf3d3ff0625fbaf8c4958575e573" "sha256": "d5a7f45ef230d080cca8ecf13b20bfefc7294342eed375db2f0f7d576df6ef1b"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/working.png", "path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-277488ad-bf0c-488d-a6a2-e54be3e41241/working.png",
"size": 13602, "size": 13602,
"sha256": "c96eedffdc5fd2eb9b63942cc00f1c8a91d01a0c5c2316c1d12d750b9b49e3d0" "sha256": "c96eedffdc5fd2eb9b63942cc00f1c8a91d01a0c5c2316c1d12d750b9b49e3d0"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/original.png", "path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-2a243bf5-6b4f-406c-ba43-b66ba11aea16/step.json",
"size": 547,
"sha256": "e3b3ce474ec4234f083deac7304cb4d665f3f2ccdcf39c60a78ecc71312ee170"
},
{
"kind": "sample",
"path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-87ca03b4-fccd-46c1-97f8-6c1f7176a569/step.json",
"size": 784,
"sha256": "f6e96cefa9861a0926ae65af738138d6b0881872c92ca5a352788c6ac8c921f0"
},
{
"kind": "sample",
"path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-b4f37096-7cf4-4e10-b7a8-05b7c3f517ea/original.png",
"size": 14031, "size": 14031,
"sha256": "b5e93a0ee74e2bdbbdf0871e901726dfbdc8b45dd648c959743520f92b02e7a2" "sha256": "b5e93a0ee74e2bdbbdf0871e901726dfbdc8b45dd648c959743520f92b02e7a2"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/step.json", "path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-b4f37096-7cf4-4e10-b7a8-05b7c3f517ea/step.json",
"size": 1886, "size": 1886,
"sha256": "e707642d9fb4c2079075615836b26834cc1c053b6b2fb7eec0dc0b40029db614" "sha256": "27884ea4829c4269e25e742d2bdce3da417f6ef391f48a4fa932c06131663447"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/working.png", "path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-b4f37096-7cf4-4e10-b7a8-05b7c3f517ea/working.png",
"size": 14031, "size": 14031,
"sha256": "b5e93a0ee74e2bdbbdf0871e901726dfbdc8b45dd648c959743520f92b02e7a2" "sha256": "b5e93a0ee74e2bdbbdf0871e901726dfbdc8b45dd648c959743520f92b02e7a2"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-c0addd40-3e96-495f-b196-d49c08518dba/step.json", "path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-da491a7e-52b7-437a-baa6-c9aa520b3b3f/step.json",
"size": 521, "size": 521,
"sha256": "3d89cd70a5294a4166d60e20b0d19408a834c31415e4319839577a8b18ccbce3" "sha256": "343e0e6344b7f0724bd1eea6d38da9e97e0da24b8f86707b2eec14e99e0ef0bf"
},
{
"kind": "sample",
"path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-e3373723-c536-4bc9-b8b4-55cd9b8ba525/original.png",
"size": 13643,
"sha256": "09e12f935511bb6fabb5637501aa7743516b96d990adfab62ccfa311a7b60606"
},
{
"kind": "sample",
"path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-e3373723-c536-4bc9-b8b4-55cd9b8ba525/step.json",
"size": 1609,
"sha256": "a6932c7b03650a3b8cc1b5b46f3759855baf3495d5ee87ac6a09995a91b6629b"
},
{
"kind": "sample",
"path": "../examples/sample-data/library/guides/guide-132037ac-1dcb-4ec0-8276-58f566a35489/steps/step-e3373723-c536-4bc9-b8b4-55cd9b8ba525/working.png",
"size": 13643,
"sha256": "09e12f935511bb6fabb5637501aa7743516b96d990adfab62ccfa311a7b60606"
}, },
{ {
"kind": "sample", "kind": "sample",
@@ -110,19 +110,19 @@
"kind": "sample", "kind": "sample",
"path": "../examples/sample-exports/html-rich/reset-a-password-in-admin-portal-rich.html", "path": "../examples/sample-exports/html-rich/reset-a-password-in-admin-portal-rich.html",
"size": 149943, "size": 149943,
"sha256": "9a449f2507f6f4b43d67589cb2f4f28682d8f6fdec15cc0541b26a81624a528b" "sha256": "e3c636d463c4db277f89a5330559661b6c9db193f94de9c4ad6801a88e3a7ff4"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-exports/html-simple/reset-a-password-in-admin-portal.html", "path": "../examples/sample-exports/html-simple/reset-a-password-in-admin-portal.html",
"size": 146646, "size": 146646,
"sha256": "5cababe0b51a3590d3ceee4179760e0c2179e9ed340d85e1b65253e4275bb9d0" "sha256": "2bf28616ed9ce47527e6e6da950b495e914b25a04376fb90e40e787ad0f4819a"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-exports/image-bundle/reset-a-password-in-admin-portal-bundle.json", "path": "../examples/sample-exports/image-bundle/reset-a-password-in-admin-portal-bundle.json",
"size": 779, "size": 779,
"sha256": "24bae92a7d627ad65d9cea906f840fcfd46e44aa263ab927774daa49fef60f45" "sha256": "38bdbf55d25f1620eb824192472fcf8faa65f38f4ef340bcd98e0668a66bdefe"
}, },
{ {
"kind": "sample", "kind": "sample",
@@ -146,7 +146,7 @@
"kind": "sample", "kind": "sample",
"path": "../examples/sample-exports/json/reset-a-password-in-admin-portal.json", "path": "../examples/sample-exports/json/reset-a-password-in-admin-portal.json",
"size": 6740, "size": 6740,
"sha256": "7257af7b3df168df9656159f84e0f7b538437775dc2e716e7f87d00dd9d40efd" "sha256": "434d5d41df7983686da8057a9939a57739fa9089dd2957862ccb810963f66532"
}, },
{ {
"kind": "sample", "kind": "sample",
@@ -205,14 +205,14 @@
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-guide.sfgz", "path": "../examples/sample-guide.sfgz",
"size": 88967, "size": 88968,
"sha256": "4c36ae2ee22ca8da9fc066efaed72dc19084f8655b10162deb1528e2ebb3a0bf" "sha256": "d041d4994f8d1a2f41a1c818ea706f64bb789eb4a3b903f67f86d6305339e412"
}, },
{ {
"kind": "sample", "kind": "sample",
"path": "../examples/sample-manifest.json", "path": "../examples/sample-manifest.json",
"size": 1186, "size": 1186,
"sha256": "2cecfc8eaef1a6b87aeac4692b6a22d2c6d81b533b18b15bc87db1bc3774b007" "sha256": "c88b283799b932cb3b23e096288222eed84beaaf6bf8ce0fecdf05de89cc2c1b"
} }
] ]
} }
+1 -1
View File
@@ -1,7 +1,7 @@
# StepForge Build Report # StepForge Build Report
Version: 0.1.0 Version: 0.1.0
Generated: 2026-06-11T02:33:30.201Z Generated: 2026-06-11T02:38:15.730Z
Host: linux x64 (node v20.20.2) Host: linux x64 (node v20.20.2)
## Outputs ## Outputs
@@ -1,6 +1,6 @@
{ {
"schemaVersion": 1, "schemaVersion": 1,
"guideId": "guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f", "guideId": "guide-sample-reset-password",
"title": "Reset a password in Admin Portal", "title": "Reset a password in Admin Portal",
"descriptionHtml": "<p>Offline sample guide showing capture, annotations, rich text, and exports.</p>", "descriptionHtml": "<p>Offline sample guide showing capture, annotations, rich text, and exports.</p>",
"placeholders": { "placeholders": {
@@ -13,15 +13,15 @@
"hideSkippedStepsInExports": true "hideSkippedStepsInExports": true
}, },
"themeOverride": "system", "themeOverride": "system",
"createdAt": "2026-06-11T02:32:07Z", "createdAt": "2026-06-11T02:40:34Z",
"updatedAt": "2026-06-11T02:32:07Z", "updatedAt": "2026-06-11T02:40:34Z",
"stepsOrder": [ "stepsOrder": [
"step-592cde3d-19e2-441a-a19b-53ccd4ac132c", "step-sample-01-open-users",
"step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48", "step-sample-02-enable-policy",
"step-0997fb48-b598-4319-8144-0ceef68a84f4", "step-sample-02a-permission-prompt",
"step-8a33be62-08c7-4a5d-ab9d-9f415269d015", "step-sample-03-review-confirmation",
"step-c0addd40-3e96-495f-b196-d49c08518dba", "step-sample-04-legacy-note",
"step-62da8044-c236-4012-9fce-15785c94bfa7" "step-sample-05-deprecated-flow"
], ],
"favorite": false, "favorite": false,
"linkedSource": null, "linkedSource": null,
@@ -1,5 +1,5 @@
{ {
"stepId": "step-592cde3d-19e2-441a-a19b-53ccd4ac132c", "stepId": "step-sample-01-open-users",
"parentStepId": null, "parentStepId": null,
"kind": "image", "kind": "image",
"status": "todo", "status": "todo",
@@ -25,7 +25,7 @@
"extraImages": [], "extraImages": [],
"annotations": [ "annotations": [
{ {
"id": "ann-54403181-b784-4d9b-9285-b9504a7c2f8d", "id": "ann-c74bec0b-6cf4-47ba-b228-73c623637138",
"type": "rect", "type": "rect",
"x": 0.275, "x": 0.275,
"y": 0.18, "y": 0.18,
@@ -41,7 +41,7 @@
} }
}, },
{ {
"id": "ann-303a7cdc-4866-4667-8046-33ba7bfb8687", "id": "ann-2491a459-e852-4c08-bb55-edf78a47a6e9",
"type": "number", "type": "number",
"x": 0.3, "x": 0.3,
"y": 0.08, "y": 0.08,
@@ -60,7 +60,7 @@
], ],
"textBlocks": [ "textBlocks": [
{ {
"id": "tb-69f3f373-12e6-4ecf-b93c-36f3b770bece", "id": "tb-42639c40-003c-44d7-9cd4-09b4b09ca41f",
"position": "after-description", "position": "after-description",
"level": "info", "level": "info",
"title": "Tip", "title": "Tip",
@@ -1,5 +1,5 @@
{ {
"stepId": "step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48", "stepId": "step-sample-02-enable-policy",
"parentStepId": null, "parentStepId": null,
"kind": "image", "kind": "image",
"status": "todo", "status": "todo",
@@ -25,7 +25,7 @@
"extraImages": [], "extraImages": [],
"annotations": [ "annotations": [
{ {
"id": "ann-80ff688a-e1ca-46e7-9519-0dd38240d9c3", "id": "ann-f6b0cfdd-a867-4811-ad9c-7b31ae7a0476",
"type": "arrow", "type": "arrow",
"x": 0.47, "x": 0.47,
"y": 0.24, "y": 0.24,
@@ -41,7 +41,7 @@
} }
}, },
{ {
"id": "ann-bd413182-4146-448b-95f8-72630f55437d", "id": "ann-3d007177-1e5b-4ed0-8f26-43cd82c7f37d",
"type": "tooltip", "type": "tooltip",
"x": 0.53, "x": 0.53,
"y": 0.13, "y": 0.13,
@@ -58,7 +58,7 @@
} }
}, },
{ {
"id": "ann-537b3971-6361-4763-8424-da8980479507", "id": "ann-751baf23-eab9-44fc-a811-5c9558de8b38",
"type": "number", "type": "number",
"x": 0.31, "x": 0.31,
"y": 0.08, "y": 0.08,
@@ -1,6 +1,6 @@
{ {
"stepId": "step-0997fb48-b598-4319-8144-0ceef68a84f4", "stepId": "step-sample-02a-permission-prompt",
"parentStepId": "step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48", "parentStepId": "step-sample-02-enable-policy",
"kind": "empty", "kind": "empty",
"status": "todo", "status": "todo",
"title": "Confirm permission prompt", "title": "Confirm permission prompt",
@@ -19,7 +19,7 @@
"annotations": [], "annotations": [],
"textBlocks": [ "textBlocks": [
{ {
"id": "tb-e3aa7982-3eb4-4db1-a1af-fda7c72b46aa", "id": "tb-13a6f26d-fdc1-4aaf-a271-284ed8d9574f",
"position": "after-description", "position": "after-description",
"level": "warn", "level": "warn",
"title": "Access", "title": "Access",
@@ -1,5 +1,5 @@
{ {
"stepId": "step-8a33be62-08c7-4a5d-ab9d-9f415269d015", "stepId": "step-sample-03-review-confirmation",
"parentStepId": null, "parentStepId": null,
"kind": "image", "kind": "image",
"status": "todo", "status": "todo",
@@ -25,7 +25,7 @@
"extraImages": [], "extraImages": [],
"annotations": [ "annotations": [
{ {
"id": "ann-281ebcd6-e0e3-4304-9232-ee25353e2321", "id": "ann-88b33206-1bea-463f-a47d-f2e081311b44",
"type": "blur", "type": "blur",
"x": 0.49, "x": 0.49,
"y": 0.32, "y": 0.32,
@@ -42,7 +42,7 @@
"radius": 12 "radius": 12
}, },
{ {
"id": "ann-6224b838-a39d-4fae-9b68-6a4f2f8af60d", "id": "ann-3a833f5a-5be3-44d1-bb61-2546cab82a6b",
"type": "highlight", "type": "highlight",
"x": 0.47, "x": 0.47,
"y": 0.24, "y": 0.24,
@@ -58,7 +58,7 @@
} }
}, },
{ {
"id": "ann-6dd50b00-6f29-431b-bee0-c217032af1a4", "id": "ann-c25a8e0c-b849-4978-881a-c54c3c0ff866",
"type": "number", "type": "number",
"x": 0.31, "x": 0.31,
"y": 0.08, "y": 0.08,
@@ -1,5 +1,5 @@
{ {
"stepId": "step-c0addd40-3e96-495f-b196-d49c08518dba", "stepId": "step-sample-04-legacy-note",
"parentStepId": null, "parentStepId": null,
"kind": "empty", "kind": "empty",
"status": "todo", "status": "todo",
@@ -1,5 +1,5 @@
{ {
"stepId": "step-62da8044-c236-4012-9fce-15785c94bfa7", "stepId": "step-sample-05-deprecated-flow",
"parentStepId": null, "parentStepId": null,
"kind": "empty", "kind": "empty",
"status": "todo", "status": "todo",
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -3,7 +3,7 @@
"version": 1, "version": 1,
"guide": { "guide": {
"title": "Reset a password in Admin Portal", "title": "Reset a password in Admin Portal",
"generatedAt": "2026-06-11T02:32:07.575Z" "generatedAt": "2026-06-11T02:40:34.633Z"
}, },
"steps": [ "steps": [
{ {
@@ -1,12 +1,12 @@
{ {
"format": "stepforge-guide", "format": "stepforge-guide",
"version": 1, "version": 1,
"generatedAt": "2026-06-11T02:32:07.575Z", "generatedAt": "2026-06-11T02:40:34.633Z",
"guide": { "guide": {
"title": "Reset a password in Admin Portal", "title": "Reset a password in Admin Portal",
"descriptionHtml": "<p>Offline sample guide showing capture, annotations, rich text, and exports.</p>", "descriptionHtml": "<p>Offline sample guide showing capture, annotations, rich text, and exports.</p>",
"createdAt": "2026-06-11T02:32:07Z", "createdAt": "2026-06-11T02:40:34Z",
"updatedAt": "2026-06-11T02:32:07Z" "updatedAt": "2026-06-11T02:40:34Z"
}, },
"steps": [ "steps": [
{ {
@@ -23,7 +23,7 @@
}, },
"annotations": [ "annotations": [
{ {
"id": "ann-54403181-b784-4d9b-9285-b9504a7c2f8d", "id": "ann-c74bec0b-6cf4-47ba-b228-73c623637138",
"type": "rect", "type": "rect",
"x": 0.275, "x": 0.275,
"y": 0.18, "y": 0.18,
@@ -39,7 +39,7 @@
} }
}, },
{ {
"id": "ann-303a7cdc-4866-4667-8046-33ba7bfb8687", "id": "ann-2491a459-e852-4c08-bb55-edf78a47a6e9",
"type": "number", "type": "number",
"x": 0.3, "x": 0.3,
"y": 0.08, "y": 0.08,
@@ -82,7 +82,7 @@
}, },
"annotations": [ "annotations": [
{ {
"id": "ann-80ff688a-e1ca-46e7-9519-0dd38240d9c3", "id": "ann-f6b0cfdd-a867-4811-ad9c-7b31ae7a0476",
"type": "arrow", "type": "arrow",
"x": 0.47, "x": 0.47,
"y": 0.24, "y": 0.24,
@@ -98,7 +98,7 @@
} }
}, },
{ {
"id": "ann-bd413182-4146-448b-95f8-72630f55437d", "id": "ann-3d007177-1e5b-4ed0-8f26-43cd82c7f37d",
"type": "tooltip", "type": "tooltip",
"x": 0.53, "x": 0.53,
"y": 0.13, "y": 0.13,
@@ -115,7 +115,7 @@
} }
}, },
{ {
"id": "ann-537b3971-6361-4763-8424-da8980479507", "id": "ann-751baf23-eab9-44fc-a811-5c9558de8b38",
"type": "number", "type": "number",
"x": 0.31, "x": 0.31,
"y": 0.08, "y": 0.08,
@@ -178,7 +178,7 @@
}, },
"annotations": [ "annotations": [
{ {
"id": "ann-281ebcd6-e0e3-4304-9232-ee25353e2321", "id": "ann-88b33206-1bea-463f-a47d-f2e081311b44",
"type": "blur", "type": "blur",
"x": 0.49, "x": 0.49,
"y": 0.32, "y": 0.32,
@@ -195,7 +195,7 @@
"radius": 12 "radius": 12
}, },
{ {
"id": "ann-6224b838-a39d-4fae-9b68-6a4f2f8af60d", "id": "ann-3a833f5a-5be3-44d1-bb61-2546cab82a6b",
"type": "highlight", "type": "highlight",
"x": 0.47, "x": 0.47,
"y": 0.24, "y": 0.24,
@@ -211,7 +211,7 @@
} }
}, },
{ {
"id": "ann-6dd50b00-6f29-431b-bee0-c217032af1a4", "id": "ann-c25a8e0c-b849-4978-881a-c54c3c0ff866",
"type": "number", "type": "number",
"x": 0.31, "x": 0.31,
"y": 0.08, "y": 0.08,
Binary file not shown.
+3 -3
View File
@@ -1,8 +1,8 @@
{ {
"format": "stepforge-sample-manifest", "format": "stepforge-sample-manifest",
"version": 1, "version": 1,
"generatedAt": "2026-06-11T02:32:07.575Z", "generatedAt": "2026-06-11T02:40:34.632Z",
"guideId": "guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f", "guideId": "guide-sample-reset-password",
"title": "Reset a password in Admin Portal", "title": "Reset a password in Admin Portal",
"dataDir": "sample-data", "dataDir": "sample-data",
"note": "The sample guide is generated entirely offline from local assets.", "note": "The sample guide is generated entirely offline from local assets.",
@@ -18,6 +18,6 @@
"docx": "sample-exports/docx/reset-a-password-in-admin-portal.docx", "docx": "sample-exports/docx/reset-a-password-in-admin-portal.docx",
"pptx": "sample-exports/pptx/reset-a-password-in-admin-portal.pptx" "pptx": "sample-exports/pptx/reset-a-password-in-admin-portal.pptx"
}, },
"substepId": "step-0997fb48-b598-4319-8144-0ceef68a84f4", "substepId": "step-sample-02a-permission-prompt",
"slug": "reset-a-password-in-admin-portal" "slug": "reset-a-password-in-admin-portal"
} }
+19
View File
@@ -108,8 +108,23 @@ function makeShotThree() {
return img; return img;
} }
// Fixed ids keep the generated sample deterministic across runs so the
// committed examples/ tree does not churn every time verify.sh runs.
const SAMPLE_IDS = {
guide: 'guide-sample-reset-password',
steps: [
'step-sample-01-open-users',
'step-sample-02-enable-policy',
'step-sample-03-review-confirmation',
],
substep: 'step-sample-02a-permission-prompt',
hidden: 'step-sample-04-legacy-note',
skipped: 'step-sample-05-deprecated-flow',
};
function createGuide(store) { function createGuide(store) {
const guide = store.createGuide({ const guide = store.createGuide({
guideId: SAMPLE_IDS.guide,
title: 'Reset a password in Admin Portal', title: 'Reset a password in Admin Portal',
descriptionHtml: '<p>Offline sample guide showing capture, annotations, rich text, and exports.</p>', descriptionHtml: '<p>Offline sample guide showing capture, annotations, rich text, and exports.</p>',
placeholders: { placeholders: {
@@ -167,6 +182,7 @@ function createGuide(store) {
steps.forEach((entry, index) => { steps.forEach((entry, index) => {
const buf = encodePng(entry.image); const buf = encodePng(entry.image);
store.addStep(guide.guideId, { store.addStep(guide.guideId, {
stepId: SAMPLE_IDS.steps[index],
title: entry.title, title: entry.title,
descriptionHtml: entry.descriptionHtml, descriptionHtml: entry.descriptionHtml,
annotations: entry.annotations, annotations: entry.annotations,
@@ -178,6 +194,7 @@ function createGuide(store) {
}); });
const substep = store.addStep(guide.guideId, { const substep = store.addStep(guide.guideId, {
stepId: SAMPLE_IDS.substep,
kind: 'empty', kind: 'empty',
parentStepId: store.getGuide(guide.guideId).stepsOrder[1], parentStepId: store.getGuide(guide.guideId).stepsOrder[1],
title: 'Confirm permission prompt', title: 'Confirm permission prompt',
@@ -186,6 +203,7 @@ function createGuide(store) {
}, null, null, { position: 2 }); }, null, null, { position: 2 });
store.addStep(guide.guideId, { store.addStep(guide.guideId, {
stepId: SAMPLE_IDS.hidden,
kind: 'empty', kind: 'empty',
title: 'Legacy note', title: 'Legacy note',
hidden: true, hidden: true,
@@ -193,6 +211,7 @@ function createGuide(store) {
}, null, null, { position: 4 }); }, null, null, { position: 4 });
store.addStep(guide.guideId, { store.addStep(guide.guideId, {
stepId: SAMPLE_IDS.skipped,
kind: 'empty', kind: 'empty',
title: 'Deprecated flow', title: 'Deprecated flow',
skipped: true, skipped: true,