Sync Boatstack from Intelligence Flow Labs @ 5f4dda1585d8 - #84
Closed
operator-stack-publisher[bot] wants to merge 1 commit into
Closed
Sync Boatstack from Intelligence Flow Labs @ 5f4dda1585d8#84operator-stack-publisher[bot] wants to merge 1 commit into
operator-stack-publisher[bot] wants to merge 1 commit into
Conversation
Contributor
|
Closing: superseded stale sync. Intermediate snapshot from the old workflow; conflicts with main after the labkit control-plane migration (#83) and upstream has advanced past this commit. A fresh engine-driven sync for the current tip replaces it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this sync releases
Boatstack helps repositories that cannot yet produce evidence
When a feature needs visual evidence but the repository has no command to produce
it, Boatstack now guides you to set one up instead of silently leaving a gap. A
new
provision-capabilityoperation detects the repository's frontend stack(framework, package manager, and whether Playwright, Cypress, or Storybook are
present) and returns a context-aware guide: the framework-agnostic contract the
in-repository capture harness must satisfy, plus stack-tailored steps to build
it. Boatstack ships the contract and the guide, never the harness itself.
capability-registerthen records the repository-owned command in one step,keeping the canonical
.boatstack-project.jsonsource and every generated filein sync (or round-tripping the generated configuration alone when there is no
source). Once registered, provisioning reports the capability as available and
capture-evidencecan run.Planning is aware of this too: when a visual scenario is relevant but no capture
command resolves, auto-plan surfaces a material provisioning decision with tiered
paths — provision now as its own delivery slice, bundle the harness into the
feature slice, or record the gap and defer. It remains a surfaced choice;
Boatstack never imposes a frontend framework.
Boatstack can now capture PR visual evidence for you
A new
capture-evidenceoperation turns a repository's declared visual scenariosinto trusted PR evidence without manual screenshotting. It resolves the
repository-owned capability command, reads the scenarios recorded in the feature
plan, and runs each one as a supervised, fingerprinted operation — retrying a
flaky capture within a bounded budget and reusing a successful capture on the
same commit instead of re-running it.
Each screenshot the harness produces is conformance-checked before it is
ingested: the manifest is stamped to the current head commit and product diff, so
pr-contexttrusts it as PASS only while it still matches the change underreview. A harness that reports success but produces a non-conformant artifact
fails closed — capture never records evidence it cannot stand behind.
Boatstack ships the capture contract, not the harness. The repository owns a
visual(orscreenshot/e2e) command that renders one PNG per scenario, andBoatstack invokes it through a stable environment-variable contract
(
BOATSTACK_CAPTURE_SCENARIO_ID,_ENTRY,_STATE,_VIEWPORT,_OUTPUT).Evidence capabilities are now a shared, extensible substrate
Boatstack's PR evidence detection is no longer hard-wired to a single evidence
type. A generic evidence-capability registry now backs the "can this repository
produce the evidence?" cut, and visual evidence is its first tenant. Nothing
changes in how visual evidence behaves today — the same repository commands,
statuses, and fingerprints — but the shared spine means future evidence types
(and the upcoming capture and provisioning flows) plug in through one registry
instead of a bespoke path each time.
Publishing toolkit moved to a standalone package
The
labkittoolkit that projects Boatstack into this repository moved from asubmodule of the monorepo's Python package to a standalone top-level
labkit/project, invoked as
python -m labkit. This only changes where the publishingtooling lives and how the sync workflow installs it; the projected files are
byte-for-byte identical (asserted by the golden reproduction test), with no
effect on Boatstack's runtime, CLI, skill, or public contract.
Projection provenance
Generated from
operatorstack/intelligence-flow@5f4dda1585d8032019dd0ed2c3b8ea264abfcf4d.Review provenance, tests, examples, and context-cost changes before merging.