From dca3e042f255501276d9aacbba2cf8bd4ba64ff6 Mon Sep 17 00:00:00 2001 From: Iisyourdad Date: Thu, 11 Jun 2026 09:44:52 -0500 Subject: [PATCH] Cleanup --- README.md | 10 ++++---- prompt.md => ai_prompts/prompt.md | 14 +++++------ prompt2.md => ai_prompts/prompt2.md | 6 ++--- build/agent_audit.md | 2 +- build/build_report.md | 2 +- core/locks.js | 2 +- ARCHITECTURE.md => docs/ARCHITECTURE.md | 0 CHANGELOG.md => docs/CHANGELOG.md | 0 CODE_OF_CONDUCT.md => docs/CODE_OF_CONDUCT.md | 0 CONTRIBUTING.md => docs/CONTRIBUTING.md | 0 GETTING_STARTED.md => docs/GETTING_STARTED.md | 0 SECURITY.md => docs/SECURITY.md | 0 .../guide-sample-reset-password/guide.json | 4 ++-- .../steps/step-sample-01-open-users/step.json | 6 ++--- .../step-sample-02-enable-policy/step.json | 6 ++--- .../step.json | 2 +- .../step.json | 6 ++--- ...reset-a-password-in-admin-portal-rich.html | 2 +- .../reset-a-password-in-admin-portal.html | 2 +- ...set-a-password-in-admin-portal-bundle.json | 2 +- .../reset-a-password-in-admin-portal.json | 22 +++++++++--------- examples/sample-guide.sfgz | Bin 88428 -> 88423 bytes examples/sample-manifest.json | 2 +- scripts/build-release.sh | 2 +- scripts/package-linux.sh | 8 ++----- tests/checks/test_repo_structure.sh | 6 +++-- 26 files changed, 53 insertions(+), 53 deletions(-) rename prompt.md => ai_prompts/prompt.md (99%) rename prompt2.md => ai_prompts/prompt2.md (97%) rename ARCHITECTURE.md => docs/ARCHITECTURE.md (100%) rename CHANGELOG.md => docs/CHANGELOG.md (100%) rename CODE_OF_CONDUCT.md => docs/CODE_OF_CONDUCT.md (100%) rename CONTRIBUTING.md => docs/CONTRIBUTING.md (100%) rename GETTING_STARTED.md => docs/GETTING_STARTED.md (100%) rename SECURITY.md => docs/SECURITY.md (100%) diff --git a/README.md b/README.md index 851e35a..5012921 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ using only Node built-ins. ## Getting Started -For a shorter walkthrough, see [GETTING_STARTED.md](GETTING_STARTED.md). +For a shorter walkthrough, see [docs/GETTING_STARTED.md](docs/GETTING_STARTED.md). Requirements: Node.js 20+ and npm (Electron is the only dependency). @@ -121,17 +121,19 @@ this machine and which packaging tools were unavailable. The shipping app makes **zero network calls**. There is no telemetry, no update check, no license validation, no cloud sync, no account system, and no remote AI. Exports embed no remote fonts or CDN references. See -[SECURITY.md](SECURITY.md) for the threat model. +[docs/SECURITY.md](docs/SECURITY.md) for the threat model. ## Contributing -See [CONTRIBUTING.md](CONTRIBUTING.md) for the full contribution flow, +See [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) for the full contribution flow, including the issue-number requirement for every pull request and the clean-room rules. ## Repository Layout -See [ARCHITECTURE.md](ARCHITECTURE.md) to see the repo layout. +Project docs live in `docs/`, and prompt handoffs live in `ai_prompts/`. + +See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) for the repo layout. ## License diff --git a/prompt.md b/ai_prompts/prompt.md similarity index 99% rename from prompt.md rename to ai_prompts/prompt.md index bc088b1..a3a5705 100644 --- a/prompt.md +++ b/ai_prompts/prompt.md @@ -614,10 +614,10 @@ Project structure to create: /README.md /LICENSE -/CONTRIBUTING.md -/CODE_OF_CONDUCT.md -/SECURITY.md -/ARCHITECTURE.md +/docs/CONTRIBUTING.md +/docs/CODE_OF_CONDUCT.md +/docs/SECURITY.md +/docs/ARCHITECTURE.md /.editorconfig /.gitattributes /.gitignore @@ -1059,8 +1059,8 @@ Your repository should include these contributor rules from day one: - require snapshot fixtures for output changes - require changelog entries for user-visible behavior changes - use a **Developer Certificate of Origin** sign-off rather than a heavy CLA unless you already expect enterprise legal review -- include `SECURITY.md` for offline-import and archive-handling issues -- include `ARCHITECTURE.md` so future contributors do not break exporter consistency +- include `docs/SECURITY.md` for offline-import and archive-handling issues +- include `docs/ARCHITECTURE.md` so future contributors do not break exporter consistency ## Open questions and limitations @@ -1072,4 +1072,4 @@ Official messaging around **Linux support** is also inconsistent: the homepage f I did not find a documented public **plugin SDK** in the reviewed official materials, only built-in integrations, templates, and customization surfaces. That is why I recommend omitting a plugin system in the clone’s first version. citeturn1view0turn13view0turn38view2 -Finally, official docs clearly describe local storage and cloud encryption controls, but they do **not** clearly document local at-rest encryption for the desktop guide store. If you want encrypted local archives, that would be an improvement rather than a strict compatibility requirement. citeturn36view0 \ No newline at end of file +Finally, official docs clearly describe local storage and cloud encryption controls, but they do **not** clearly document local at-rest encryption for the desktop guide store. If you want encrypted local archives, that would be an improvement rather than a strict compatibility requirement. citeturn36view0 diff --git a/prompt2.md b/ai_prompts/prompt2.md similarity index 97% rename from prompt2.md rename to ai_prompts/prompt2.md index 4b00b10..e5be1c8 100644 --- a/prompt2.md +++ b/ai_prompts/prompt2.md @@ -1,7 +1,7 @@ # prompt2.md — Finish StepForge (handoff checklist) You are finishing a nearly-complete offline desktop app called **StepForge** -(an Electron + vanilla-JS clone of Folge, see `prompt.md` for the full spec). +(an Electron + vanilla-JS clone of Folge, see `./prompt.md` for the full spec). Work through the unchecked boxes below **in order**, committing after each section. Keep every change consistent with the existing code style. @@ -131,7 +131,7 @@ half-done): capture-service fixes and editor additions listed in sections (`node scripts/make-sample-guide.js`), commit changes. ### 8. Docs + final commit -- [x] Update CHANGELOG.md (### Added: capture menu, block editors, +- [x] Update `../docs/CHANGELOG.md` (### Added: capture menu, block editors, focused-view controls, shortcuts, backups dialog, template management, apply-style-across; ### Fixed: window-capture fallback, app hides itself during capture). @@ -139,7 +139,7 @@ half-done): capture-service fixes and editor additions listed in sections - [x] Update THIS file: tick every box you completed. - [x] Final commit. -## Testing philosophy (from prompt.md — do not violate) +## Testing philosophy (from ./prompt.md — do not violate) Tests must exercise real workflows and assert on actual output (parse the file that was produced, check the pixels/bytes/structure), NOT grep for diff --git a/build/agent_audit.md b/build/agent_audit.md index 757e0f5..22f9dd9 100644 --- a/build/agent_audit.md +++ b/build/agent_audit.md @@ -1,7 +1,7 @@ # Environment Audit Audit performed 2026-06-10 before stack selection, as required by the build -specification in `prompt.md`. +specification in `ai_prompts/prompt.md`. ## Host diff --git a/build/build_report.md b/build/build_report.md index 0778d91..a6e9a4d 100644 --- a/build/build_report.md +++ b/build/build_report.md @@ -31,7 +31,7 @@ AppImage require the tools listed above and are skipped on this host. ## Offline guarantee - The shipped app opens no sockets: no telemetry, update checks, license - checks, cloud sync, or remote AI. See SECURITY.md. + checks, cloud sync, or remote AI. See docs/SECURITY.md. - All exporters (PNG/GIF/PDF/DOCX/PPTX/ZIP) are implemented in-repo with Node built-ins; Electron is the only third-party dependency (dev-time fetch recorded in build/agent_audit.md). diff --git a/core/locks.js b/core/locks.js index 4e9e8ce..5c94330 100644 --- a/core/locks.js +++ b/core/locks.js @@ -8,7 +8,7 @@ const { nowIso, readJsonIfExists } = require('./util'); /** * Advisory sidecar lock files for shared .sfgz guides on network folders. * For `guide.sfgz` the lock is `guide.lock-sfgz` next to it. This is a - * coordination mechanism, not a security boundary (see SECURITY.md). + * coordination mechanism, not a security boundary (see docs/SECURITY.md). */ const STALE_AFTER_MS = 1000 * 60 * 60 * 8; // 8h: treat crashed holders as stale diff --git a/ARCHITECTURE.md b/docs/ARCHITECTURE.md similarity index 100% rename from ARCHITECTURE.md rename to docs/ARCHITECTURE.md diff --git a/CHANGELOG.md b/docs/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to docs/CHANGELOG.md diff --git a/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md similarity index 100% rename from CODE_OF_CONDUCT.md rename to docs/CODE_OF_CONDUCT.md diff --git a/CONTRIBUTING.md b/docs/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to docs/CONTRIBUTING.md diff --git a/GETTING_STARTED.md b/docs/GETTING_STARTED.md similarity index 100% rename from GETTING_STARTED.md rename to docs/GETTING_STARTED.md diff --git a/SECURITY.md b/docs/SECURITY.md similarity index 100% rename from SECURITY.md rename to docs/SECURITY.md diff --git a/examples/sample-data/library/guides/guide-sample-reset-password/guide.json b/examples/sample-data/library/guides/guide-sample-reset-password/guide.json index 3aed13c..ae38be0 100644 --- a/examples/sample-data/library/guides/guide-sample-reset-password/guide.json +++ b/examples/sample-data/library/guides/guide-sample-reset-password/guide.json @@ -13,8 +13,8 @@ "hideSkippedStepsInExports": true }, "themeOverride": "system", - "createdAt": "2026-06-11T02:40:34Z", - "updatedAt": "2026-06-11T02:40:34Z", + "createdAt": "2026-06-11T14:16:39Z", + "updatedAt": "2026-06-11T14:16:39Z", "stepsOrder": [ "step-sample-01-open-users", "step-sample-02-enable-policy", diff --git a/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-01-open-users/step.json b/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-01-open-users/step.json index c19dc7d..bd2fcc8 100644 --- a/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-01-open-users/step.json +++ b/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-01-open-users/step.json @@ -25,7 +25,7 @@ "extraImages": [], "annotations": [ { - "id": "ann-c74bec0b-6cf4-47ba-b228-73c623637138", + "id": "ann-80c0a4c6-8b7a-4ba9-8d38-35be0f890ccb", "type": "rect", "x": 0.275, "y": 0.18, @@ -41,7 +41,7 @@ } }, { - "id": "ann-2491a459-e852-4c08-bb55-edf78a47a6e9", + "id": "ann-403e9d28-8b61-43e8-8a8c-74e35bf8b0ff", "type": "number", "x": 0.3, "y": 0.08, @@ -60,7 +60,7 @@ ], "textBlocks": [ { - "id": "tb-42639c40-003c-44d7-9cd4-09b4b09ca41f", + "id": "tb-9f433853-ccc5-450a-98ed-5dcbde7463ac", "position": "after-description", "level": "info", "title": "Tip", diff --git a/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-02-enable-policy/step.json b/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-02-enable-policy/step.json index 29a78b5..960aa27 100644 --- a/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-02-enable-policy/step.json +++ b/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-02-enable-policy/step.json @@ -25,7 +25,7 @@ "extraImages": [], "annotations": [ { - "id": "ann-f6b0cfdd-a867-4811-ad9c-7b31ae7a0476", + "id": "ann-d2a29aa5-f083-45b6-8018-bd1e66a878fd", "type": "arrow", "x": 0.47, "y": 0.24, @@ -41,7 +41,7 @@ } }, { - "id": "ann-3d007177-1e5b-4ed0-8f26-43cd82c7f37d", + "id": "ann-d4d4807d-87f4-4b9b-9aac-fe106edafa56", "type": "tooltip", "x": 0.53, "y": 0.13, @@ -58,7 +58,7 @@ } }, { - "id": "ann-751baf23-eab9-44fc-a811-5c9558de8b38", + "id": "ann-a34d3ef1-f227-43ac-a59e-a433dfb7f8d5", "type": "number", "x": 0.31, "y": 0.08, diff --git a/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-02a-permission-prompt/step.json b/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-02a-permission-prompt/step.json index 0b327a3..f71c3c6 100644 --- a/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-02a-permission-prompt/step.json +++ b/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-02a-permission-prompt/step.json @@ -19,7 +19,7 @@ "annotations": [], "textBlocks": [ { - "id": "tb-13a6f26d-fdc1-4aaf-a271-284ed8d9574f", + "id": "tb-5ef09593-6f95-475d-b0c6-6144d855bed7", "position": "after-description", "level": "warn", "title": "Access", diff --git a/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-03-review-confirmation/step.json b/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-03-review-confirmation/step.json index b8c8053..02daa37 100644 --- a/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-03-review-confirmation/step.json +++ b/examples/sample-data/library/guides/guide-sample-reset-password/steps/step-sample-03-review-confirmation/step.json @@ -25,7 +25,7 @@ "extraImages": [], "annotations": [ { - "id": "ann-88b33206-1bea-463f-a47d-f2e081311b44", + "id": "ann-cab1dba5-f903-47c3-a4ec-efff6f70cc3f", "type": "blur", "x": 0.49, "y": 0.32, @@ -42,7 +42,7 @@ "radius": 12 }, { - "id": "ann-3a833f5a-5be3-44d1-bb61-2546cab82a6b", + "id": "ann-f6e54195-1e03-4455-83cf-8ecfafde5993", "type": "highlight", "x": 0.47, "y": 0.24, @@ -58,7 +58,7 @@ } }, { - "id": "ann-c25a8e0c-b849-4978-881a-c54c3c0ff866", + "id": "ann-0c74b069-aad1-4d83-bf96-f902009905d6", "type": "number", "x": 0.31, "y": 0.08, diff --git a/examples/sample-exports/html-rich/reset-a-password-in-admin-portal-rich.html b/examples/sample-exports/html-rich/reset-a-password-in-admin-portal-rich.html index 97d0b2f..a768c8c 100644 --- a/examples/sample-exports/html-rich/reset-a-password-in-admin-portal-rich.html +++ b/examples/sample-exports/html-rich/reset-a-password-in-admin-portal-rich.html @@ -95,7 +95,7 @@ Step 3
FieldValue
TitleAdmin Portal
OwnerSupport
- +