From 5b0d8fda2be54d90c12cde497ca1269dd12e522b Mon Sep 17 00:00:00 2001 From: "operator-stack-publisher[bot]" Date: Mon, 20 Jul 2026 01:58:58 +0000 Subject: [PATCH] Sync Boatstack from Intelligence Flow Labs @ 7faf0ffbc012 --- CONTRIBUTING.md | 2 +- README.md | 29 ++++++++++--------- UPSTREAM.json | 17 ++++++----- assets/boatstack-journey.svg | 10 ++++++- assets/boatstack-portability.svg | 17 +++++++++-- docs/evidence-engineered-coding.md | 2 +- docs/public-claims.json | 24 +++++++-------- labs/diagram-json/plan.lock.json | 2 +- ...26-07-20-portability-diagram-dark-theme.md | 3 ++ 9 files changed, 65 insertions(+), 41 deletions(-) create mode 100644 release-notes/2026-07-20-portability-diagram-dark-theme.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ce3adfd..a42e70c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ # Contributing -Boatstack is a generated content distribution. Propose changes to workflow semantics, templates, evidence rules, or generated presentation in [Intelligence Flow](https://github.com/operatorstack/intelligence-flow/tree/004b6c1288661bbbfdcfe96c068f35e48f4c8bb3/labs/12-product-engineering-loop). +Boatstack is a generated content distribution. Propose changes to workflow semantics, templates, evidence rules, or generated presentation in [Intelligence Flow](https://github.com/operatorstack/intelligence-flow/tree/7faf0ffbc012b9830eb7c23c8b845ebba4be6da1/labs/12-product-engineering-loop). The Boatstack repository receives product/runtime changes through a generated pull request. Review the PR's `UPSTREAM.json`, tests, adapter diff, and context-size change; do not hand-edit generated output on `main`. `.github/workflows` is the exception: it is Boatstack's executable control plane, excluded from scheduled projection and changed only through a separate manually reviewed Boatstack PR. diff --git a/README.md b/README.md index f066d83..9a4bc3a 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ ## A delivery harness for AI coding agents -Boatstack connects the work from an idea to a reviewed PR. Keep using Cursor, Codex, or Claude Code, with the models and specialist skills that fit the work. Boatstack keeps the plan, decisions, gaps, tests, review findings, and project context connected along the way. +Boatstack connects the work from an idea to a reviewed PR. Keep using Cursor, Codex, Claude Code, or Gemini CLI, with the models and specialist skills that fit the work. Boatstack keeps the plan, decisions, gaps, tests, review findings, and project context connected along the way. The agent remains free to build. Before it says the work is done, Boatstack asks for the approval, tests, review, and recorded evidence appropriate to the change. @@ -22,17 +22,17 @@ The agent remains free to build. Before it says the work is done, Boatstack asks | You change | Boatstack keeps | |---|---| -| Cursor, Codex, or Claude Code | The same path from planning through PR preparation | +| Cursor, Codex, Claude Code, or Gemini CLI | The same path from planning through PR preparation | | Lower-cost, general, or frontier model | The same approval, testing, and review requirements | | React guidance, gstack, Spec Kit, or another skill | Human approval and evidence remain authoritative | | Session, worktree, or feature | Durable decisions, gaps, evidence, and code state in the repository | ## Install with your coding agent -Copy this into Cursor, Codex, or Claude Code while the repository is open: +Copy this into Cursor, Codex, Claude Code, or Gemini CLI while the repository is open: ```text -Install Boatstack in this repository from https://github.com/operatorstack/boatstack. Detect whether you are running in Cursor, Codex, or Claude Code; create or use a chore/install-boatstack branch; run the official installer for this operating system; default to core unless I request gstack or Spec Kit; keep all portable host adapters; run Boatstack doctor; show me the generated files and installation diff; and prepare the installation PR without merging it or starting product work. +Install Boatstack in this repository from https://github.com/operatorstack/boatstack. Detect whether you are running in Cursor, Codex, Claude Code, or Gemini CLI; create or use a chore/install-boatstack branch; run the official installer for this operating system; default to core unless I request gstack or Spec Kit; keep all portable host adapters; run Boatstack doctor; show me the generated files and installation diff; and prepare the installation PR without merging it or starting product work. ``` Install Boatstack in its own infrastructure PR and merge it before starting a feature. Install once per Git clone; linked worktrees reuse the verified runtime and restore their ignored local helper automatically. @@ -46,15 +46,16 @@ Install Boatstack in its own infrastructure PR and merge it before starting a fe |---|---| | Claude Code | `/auto-plan` | | Cursor | `/auto-plan` | +| Gemini CLI | `/auto-plan` | | Codex | `$boatstack auto-plan` | That is all you need to learn up front. Boatstack shows one next action at a time through approval, building, tests, review, and PR preparation. -When you return after an interruption, run `/boatstack-next` in Claude Code or Cursor, or `$boatstack next` in Codex. Boatstack reports the repository-verified stage and one next action without changing state. It distinguishes a feature that has not started from one that is complete. +When you return after an interruption, run `/boatstack-next` in Claude Code, Cursor, or Gemini CLI, or `$boatstack next` in Codex. Boatstack reports the repository-verified stage and one next action without changing state. It distinguishes a feature that has not started from one that is complete. -`$boatstack run` in Codex or `/boatstack-run` in Claude Code and Cursor starts from one saved plan and continues through publication, pausing for approvals and product decisions. It checks branch freshness before delivery; it never merges or deploys. +`$boatstack run` in Codex or `/boatstack-run` in Claude Code, Cursor, and Gemini CLI starts from one saved plan and continues through publication, pausing for approvals and product decisions. It checks branch freshness before delivery; it never merges or deploys. -In Claude Code and Cursor, that guidance moves through `/plan-gate` → `/build` → `/test-gate` → `/review-gate` → `/ship-gate`. In Codex, use the same operation names after `$boatstack`. +In Claude Code, Cursor, and Gemini CLI, that guidance moves through `/plan-gate` → `/build` → `/test-gate` → `/review-gate` → `/ship-gate`. In Codex, use the same operation names after `$boatstack`. > The diagram shows what Boatstack guides—not a checklist you need to memorize. @@ -66,7 +67,7 @@ In Claude Code and Cursor, that guidance moves through `/plan-gate` → `/build` After Build, describe changes normally. Boatstack records them, preserves valid work, and resumes at the earliest boundary. -Invoke `/repair` in Claude Code or Cursor, or `$boatstack repair` in Codex. It needs an active delivery and the exact change; earlier work routes to planning or Build. +Invoke `/repair` in Claude Code, Cursor, or Gemini CLI, or `$boatstack repair` in Codex. It needs an active delivery and the exact change; earlier work routes to planning or Build. ```text “This is wrong” → record → repair → test → review @@ -107,7 +108,7 @@ Enabled repositories require a categorized `CHANGELOG.md` → `Unreleased` entry | Part | Its job | |---|---| -| **Coding agent** — Cursor, Codex, or Claude Code | Executes the work in your repository | +| **Coding agent** — Cursor, Codex, Claude Code, or Gemini CLI | Executes the work in your repository | | **Model** — lower-cost, general, or frontier | Reasons, writes, and evaluates within the agent | | **Skill** — React guidance, gstack, Spec Kit, or another specialty | Adds expertise for a particular kind of work | | **Boatstack** | Carries the delivery path, saved context, and proof of completion across them | @@ -124,7 +125,7 @@ This does not mean every model performs equally. [See the evidence and paired ev ## Why these steps? -They come from coding failures observed in benchmark and product-repository work—not guesses. Every safeguard links what happened, what Boatstack now does, and whether that behavior has actually been tested. +They derive from coding failures observed in benchmark and product work—not guesses. Each link explains what happened, what Boatstack does, and whether that behavior has actually been tested. | What happened | What Boatstack does | Current evidence | |---|---|---| @@ -139,7 +140,7 @@ They come from coding failures observed in benchmark and product-repository work ## A small example -A request said, “Add a password reset button,” but the product used passwordless sign-in and had no reset route. Boatstack surfaced the conflict instead of building the button literally. The human chose dual authentication; later, review caught an unsafe recovery-session assumption and returned the change for repair before PR preparation. +A request asked to “Add a password reset button,” but the product used passwordless sign-in. Boatstack flagged the conflict. The developer chose dual authentication; later, review caught an unsafe recovery assumption and prompted a repair. [Follow the sanitized walkthrough](docs/account-recovery-walkthrough.md) or [ship your first feature](docs/getting-started.md). @@ -170,14 +171,14 @@ The installer previews generated paths, verifies the platform helper, offers opt ## Find what you need -**Start:** [Getting started](docs/getting-started.md) · [Generated files](docs/generated-files.md) · [Troubleshooting](docs/troubleshooting.md) +**Start:** [Getting started](docs/getting-started.md) · [Files](docs/generated-files.md) · [Troubleshooting](docs/troubleshooting.md) **Inspect:** [Why these steps](docs/why-these-steps.md) · [Validation and evidence](docs/validation-and-evidence.md) · [Safety](docs/safety.md) -**Go deeper:** [Evidence-engineered coding](docs/evidence-engineered-coding.md) · [Research and design](docs/research-and-design.md) · [Contributing](CONTRIBUTING.md) +**Go deeper:** [Coding](docs/evidence-engineered-coding.md) · [Design](docs/research-and-design.md) · [Contributing](CONTRIBUTING.md) ## Project status -Boatstack is an open-source research prototype. Its workflow and enforcement behavior are tested, but the current record does not prove improved product-delivery success. A paired feature-building benchmark—same model, task, and budget with and without Boatstack—is the next evaluation. +Boatstack is an open-source research prototype. Its workflow and enforcement behavior are tested, but the current record does not prove improved delivery success. A paired feature benchmark—same model, task, and budget—is the next evaluation. Exact Intelligence Flow provenance and generated file hashes are recorded in [`UPSTREAM.json`](UPSTREAM.json). diff --git a/UPSTREAM.json b/UPSTREAM.json index 22baec7..87f6d62 100644 --- a/UPSTREAM.json +++ b/UPSTREAM.json @@ -12,11 +12,11 @@ }, "files": { ".gitignore": "a7079e923a776f14f1bb3a6aa0a11a133a8e1dfb35af020f327623357b7e3957", - "CONTRIBUTING.md": "c26f3f4606810e5db041f21dc48ebcc3020ba5959103cddd7a001af266a9f470", - "README.md": "a840004db57a129ecd361bb0421adfe02065d86751736dd91953c8a8b178e5ef", - "assets/boatstack-journey.svg": "c1f7fe2741f5e9ca66bb3fe9b103e6364ba5acbca8b7a8054768ffd85cf325ea", + "CONTRIBUTING.md": "daad309d104bf02268f3cf89fe0820309ad5f00b470c3c74bf54d199ba72de1e", + "README.md": "590821a4cf3c4b196d3cfb39c972ccbebef7d4d558df817c1f1e88b4fd7ceb07", + "assets/boatstack-journey.svg": "9f016fbfd2881675551a44dafa282cbc7510a7091131005be490c2dbe5e4e051", "assets/boatstack-mark.svg": "ec96165583b15cfd446c27049d49217973f3e9b1defa5771cc08eec0c9542ce4", - "assets/boatstack-portability.svg": "ce648f5581d16586d25824d3a8132ef1b3d88b73329179173120129d4f74fd24", + "assets/boatstack-portability.svg": "a621b8f4da5159bbfdfd858013ff3fefc3937d7f6e140612a2c82e84283865f9", "boatstack/SKILL.md": "a63f88eb039c06f34ba018444871b7a0b17c43bdb3ab62f0122732f50345bd6d", "boatstack/agents/gemini.yaml": "cbf43b387399e456fa6178f86d83e6e35567e6142ff800f8de6ffca306fa963e", "boatstack/agents/openai.yaml": "68a30a60859556c5a26e16d184594ca243a6043d99c8cf7d66b5dd6d50a93cd1", @@ -81,10 +81,10 @@ "docs/account-recovery-walkthrough.md": "676034974594a7d1a559b24dbed31d7ccc429eb81404b203ca07bbdaa19ec3d3", "docs/benchmark-corpus-audit.md": "f2d206fe8579a514f9da82b2c96c19b343ac004be67617e1bd34f0f8e0e5e6c6", "docs/benchmark-submission-audit.md": "9518abdd17690729c6423f87cab20418ed47b0915b5faa44b9ef975e9e9c3b79", - "docs/evidence-engineered-coding.md": "3f63fc8c92a8f2069368cfbf8f7ac69a0202b05300b2c9ffaa56b70b8154a214", + "docs/evidence-engineered-coding.md": "91c25a6ee6d0553bb2420f2d4c79223e84f3e40b6923378fe227437d4d1e7345", "docs/generated-files.md": "136422baf0c7fc2bd5100cfe0ebdb3d9d0705dfd7e7d54bf745dd1037e63492c", "docs/getting-started.md": "eacc814fdffdfa3c7d8052b7cd99a79c04da5c75d88d8b44f3fb68d9afec0316", - "docs/public-claims.json": "44c60c3460165176cfe866d5a695ee7172c92e3192e46e69824d693d549f5d1d", + "docs/public-claims.json": "c79f56cdf2ecf18e5d38e2492b5846fa169ce768842689a870f5252042ebc0f1", "docs/public-surface.md": "713f7a050b5f339cf948299103ef3800417dccfecf2cc1a4166397ea6f978907", "docs/research-and-design.md": "d65c66e323037bda5d45aacef5d48afa6bf93da55901378891d235aca3a5684f", "docs/safety.md": "7b9b5c515d36e683767ec8d3d9d6d119ac93650b2f629d351deadd4c600ed6a6", @@ -98,7 +98,7 @@ "labs/diagram-json/compiled/evidence.md": "1ba1c989ade070a8ef9a508fbd788d100d7292f2dbacbb2bce895468019f619d", "labs/diagram-json/compiled/tasks.json": "88f60851abf79d851e9fccc754ff3040034ae595306bc87d64784c19eb403e71", "labs/diagram-json/compiled/test-matrix.json": "424657ff505768e50fa113801fd8363364a18269d5297480907a993d44063a39", - "labs/diagram-json/plan.lock.json": "a3d49021f016d3bee5c8410f954bf328af2f53ee7288462404d03d2d00f2af10", + "labs/diagram-json/plan.lock.json": "55f1f675530f83307fab542423fc021248abae1601bb1da88aa9814696a0a63c", "labs/diagram-json/plan.md": "3cc4f533b8d69386deff16b3a594a3ba09d4c0c3db636cccd8c4380084ce6a51", "labs/diagram-json/questions.md": "74733b015002c8a6777c558e7e997fa48c94850b9bd39054fe9366c97ecf728d", "labs/diagram-json/request.md": "0808fc41c36779c404f4a3a121167da6e76cac56df526e70f9ed6d3e0d4c02ed", @@ -131,12 +131,13 @@ "release-notes/2026-07-19-optional-repository-changelog.md": "7ae6bed436c269335ac5055e04438489451bef00836fecb3e5fcb06a18501853", "release-notes/2026-07-19-valid-skill-frontmatter.md": "a0a002f7891474d7d1eea49e3234cae5ddbd941158726b83555dc48474181a92", "release-notes/2026-07-20-gemini-cli-integration.md": "d829b4fafb3a02dd766e018558b20bf1bc948dd5e337911d6a7c8b54c83c9942", + "release-notes/2026-07-20-portability-diagram-dark-theme.md": "b06bebec1361b21ef6deb8c8f43168d189803a32588aeb803ea4b441525a77e2", "release-notes/2026-07-20-speak-software-standards.md": "a8890ed7eb38868bdf3035572d71785ca89abd3ffc3a314a5dc5315150afe397" }, "generator": "operatorstack/intelligence-flow:boatstack-distribution", "schema_version": 1, "source": { - "commit": "004b6c1288661bbbfdcfe96c068f35e48f4c8bb3", + "commit": "7faf0ffbc012b9830eb7c23c8b845ebba4be6da1", "path": "labs/12-product-engineering-loop", "repository": "operatorstack/intelligence-flow" } diff --git a/assets/boatstack-journey.svg b/assets/boatstack-journey.svg index 92a43a9..c216e17 100644 --- a/assets/boatstack-journey.svg +++ b/assets/boatstack-journey.svg @@ -4,7 +4,15 @@ diff --git a/assets/boatstack-portability.svg b/assets/boatstack-portability.svg index 0542c8e..3c987a9 100644 --- a/assets/boatstack-portability.svg +++ b/assets/boatstack-portability.svg @@ -1,10 +1,21 @@ Your product development flow stays with the repository - Cursor, Codex, Claude Code, different model tiers, and specialist skills feed one repository-owned Boatstack flow. The flow retains plans, decisions, gaps, evidence, and review findings, producing a reviewed pull request and useful context for the next feature. + Cursor, Codex, Claude Code, Gemini CLI, different model tiers, and specialist skills feed one repository-owned Boatstack flow. The flow retains plans, decisions, gaps, evidence, and review findings, producing a reviewed pull request and useful context for the next feature. @@ -16,7 +27,7 @@ CODING AGENT - Cursor · Codex · Claude Code + Cursor · Codex · Claude · Gemini diff --git a/docs/evidence-engineered-coding.md b/docs/evidence-engineered-coding.md index cfc596f..e074b57 100644 --- a/docs/evidence-engineered-coding.md +++ b/docs/evidence-engineered-coding.md @@ -146,6 +146,6 @@ Delivery and system improvement also remain separate. A failed task may suggest ## What is evidence-backed -The current moves were derived from the Intelligence Flow benchmark corpus and product-repository studies. The generated source commit is [`004b6c1288661bbbfdcfe96c068f35e48f4c8bb3`](https://github.com/operatorstack/intelligence-flow/tree/004b6c1288661bbbfdcfe96c068f35e48f4c8bb3/labs/12-product-engineering-loop). +The current moves were derived from the Intelligence Flow benchmark corpus and product-repository studies. The generated source commit is [`7faf0ffbc012b9830eb7c23c8b845ebba4be6da1`](https://github.com/operatorstack/intelligence-flow/tree/7faf0ffbc012b9830eb7c23c8b845ebba4be6da1/labs/12-product-engineering-loop). The evidence supports specific failure mechanisms and guardrails. It does not establish that Boatstack is optimal, that control-theory notation proves software quality, or that one workflow dominates every team. Those are evaluation questions, so the distribution preserves measurements, provenance, gaps, and negative results. diff --git a/docs/public-claims.json b/docs/public-claims.json index cd08cc8..7971e12 100644 --- a/docs/public-claims.json +++ b/docs/public-claims.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "source_commit": "004b6c1288661bbbfdcfe96c068f35e48f4c8bb3", + "source_commit": "7faf0ffbc012b9830eb7c23c8b845ebba4be6da1", "statuses": ["verified", "observed", "still_being_evaluated"], "claims": [ { @@ -12,7 +12,7 @@ "readable_evidence": "why-these-steps.md#portable-workflow-and-state", "implementation": ["../boatstack/export.go", "../boatstack/references/artifacts.md", "../boatstack/references/workflow.md"], "verification": ["../boatstack/export_test.go"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" }, { "id": "human-decisions", @@ -23,7 +23,7 @@ "readable_evidence": "why-these-steps.md#human-decisions", "implementation": ["../boatstack/references/workflow.md", "../boatstack/plan.go"], "verification": ["../boatstack/plan_test.go", "../boatstack/planning_test.go"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" }, { "id": "validation-provenance", @@ -34,7 +34,7 @@ "readable_evidence": "why-these-steps.md#validation-provenance", "implementation": ["validation-and-evidence.md", "../boatstack/plan.go"], "verification": ["../boatstack/plan_test.go"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" }, { "id": "irreversible-operations", @@ -46,7 +46,7 @@ "readable_evidence": "why-these-steps.md#irreversible-operations", "implementation": ["safety.md", "../boatstack/safety.go", "../boatstack/hooks.go"], "verification": ["../boatstack/safety_test.go", "../boatstack/hooks_test.go"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" }, { "id": "reviewer-ready-pr", @@ -57,7 +57,7 @@ "readable_evidence": "why-these-steps.md#reviewer-ready-pr", "implementation": ["../boatstack/pr.go", "getting-started.md"], "verification": ["../boatstack/pr_test.go"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" }, { "id": "phase-scoped-delivery", @@ -68,7 +68,7 @@ "readable_evidence": "why-these-steps.md#phase-scoped-delivery", "implementation": ["../boatstack/delivery.go", "../boatstack/safety.go", "../boatstack/hooks.go", "../boatstack/references/workflow.md"], "verification": ["../boatstack/delivery_test.go", "../boatstack/pr_test.go"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" }, { "id": "model-neutral-contract", @@ -79,7 +79,7 @@ "readable_evidence": "why-these-steps.md#model-choice-and-budget", "implementation": ["research-and-design.md", "../boatstack/references/workflow.md"], "verification": ["../boatstack/export_test.go", "../boatstack/planning_test.go"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" }, { "id": "cross-model-failures", @@ -90,7 +90,7 @@ "readable_evidence": "why-these-steps.md#model-choice-and-budget", "implementation": ["research-and-design.md"], "verification": ["benchmark-corpus-audit.md", "benchmark-submission-audit.md"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" }, { "id": "lower-cost-outcomes", @@ -101,7 +101,7 @@ "readable_evidence": "why-these-steps.md#model-choice-and-budget", "implementation": ["research-and-design.md"], "verification": ["benchmark-corpus-audit.md", "benchmark-submission-audit.md"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" }, { "id": "git-worktree-activation", @@ -112,7 +112,7 @@ "readable_evidence": "why-these-steps.md#git-worktree-activation", "implementation": ["../boatstack/runtime_cache.go", "../boatstack/hooks.go"], "verification": ["../boatstack/runtime_cache_test.go", "../boatstack/hooks_test.go"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" }, { "id": "visible-updates", @@ -123,7 +123,7 @@ "readable_evidence": "why-these-steps.md#visible-updates", "implementation": ["../boatstack/update.go", "../boatstack/init.go"], "verification": ["../boatstack/update_test.go", "../boatstack/init_test.go", "../boatstack/export_test.go"], - "last_verified_version": "source:004b6c1288661bbbfdcfe96c068f35e48f4c8bb3" + "last_verified_version": "source:7faf0ffbc012b9830eb7c23c8b845ebba4be6da1" } ] } diff --git a/labs/diagram-json/plan.lock.json b/labs/diagram-json/plan.lock.json index 1b6cddc..ff1219e 100644 --- a/labs/diagram-json/plan.lock.json +++ b/labs/diagram-json/plan.lock.json @@ -6,7 +6,7 @@ "plan_path": "labs/diagram-json/plan.md", "plan_sha256": "3cc4f533b8d69386deff16b3a594a3ba09d4c0c3db636cccd8c4380084ce6a51", "schema_version": 1, - "source_commit": "004b6c1288661bbbfdcfe96c068f35e48f4c8bb3", + "source_commit": "7faf0ffbc012b9830eb7c23c8b845ebba4be6da1", "source_plan_path": "labs/diagram-json/source-plan.md", "source_plan_sha256": "e10593ddaa7522ab80cc991d0a09399257139799e37f737794cd49d68a39985b", "spec_path": "labs/diagram-json/spec.md", diff --git a/release-notes/2026-07-20-portability-diagram-dark-theme.md b/release-notes/2026-07-20-portability-diagram-dark-theme.md new file mode 100644 index 0000000..41456de --- /dev/null +++ b/release-notes/2026-07-20-portability-diagram-dark-theme.md @@ -0,0 +1,3 @@ +### Apply developer dark theme to the Boatstack portability diagram + +The primary Boatstack portability diagram (`boatstack-portability.svg`) has been updated to support a developer-centric dark theme matching the JetBrains and SF Mono design aesthetics. When prefers-color-scheme is dark, the diagram renders deep-slate cards, clean lines, and a neon-blue flow path, while maintaining perfect high-contrast backward compatibility under default light modes.