release: prepare Flatbread 1.0 - #236
Conversation
|
This pull request is part of a Mergify stack:
|
Move all public packages to 1.0.0, align package metadata, and add the release license.\n\nLead the public docs with Effort Graph agent memory while keeping static relational content and GraphQL read paths clear. Add concise release notes and record the positioning decision in the Effort Graph.\n\nTest plan: pnpm verify; package tarball and clean-install smoke tests. Change-Id: I3b53d7e244cc251ce9968b3578fabeabcc96298f Co-authored-by: Cursor <cursoragent@cursor.com>
2e82c87 to
fda484c
Compare
Revision history
|
There was a problem hiding this comment.
Stale comment
Review verdict
BLOCK — Multiple consensus BLOCKER findings:
@flatbread/proofREADME anddocs/positioning.mddocument a non-existent Proof agent-memory /flatbread proof *surface while the shipped package and CLI are the DAG runner and Effort Graph (flatbread effort,.flatbread-efforts/). Rule: any BLOCKER → BLOCK.Blocking findings (priority order)
packages/proof/README.md— Rewritten as Effort Graph–style memory (proofContent(),.flatbread-proof/,flatbread proof *,skills/proof/).@flatbread/proofis a DAG task runner (proof/proof-supervisor);proofContent()andpackages/proof/skills/do not exist.package.jsondescription still correctly says “Bounded DAG task runner.”docs/positioning.md:17-41— Lead use case names Proof,.flatbread-proof/, andflatbread proof write|list|…. Shipped memory product is Effort Graph withflatbread effort *and.flatbread-efforts/(seepackages/flatbread/README.mdand CLI tests).- Missing Proof skill install tree — README points at
packages/proof/skills/proof,release.json,setup.md, and.agents/skills/proof/; none exist. Rootskills:synconly covers effort-graph.What looks fine
- Coordinated
1.0.0bumps +engines.node: ">=20.19"across packages.@flatbread/coremoved to runtimedependenciesin config/effort-graph (not blocking).- LICENSE via
pnpm packpath is fine; no chase forfiles:["LICENSE"].- Coverage plan: n/a (no
packages/*/srcin this release/docs/deps diff).Minimal fix before 1.0
- Restore
@flatbread/proofREADME to DAG-runner docs (entrypoint,--dag, canvas, supervisor).- Rewrite
docs/positioning.mdlead use case to Effort Graph; linkpackages/effort-graph/README.md; useflatbread effort */.flatbread-efforts/.- Align
CHANGELOG.md“Docs” bullet with the fixed positioning text.Perspectives
release-discipline·docs-and-positioning·dx-and-examples·dependency-runtime-surface→ judgeModels: grok-4.5 (high) / composer-2.5. Not dependency-only (docs + release metadata + package.json).
Sent by Cursor Automation: Flatbread PR Review
| The [Proof](../packages/proof/README.md) is a Flatbread content | ||
| model for what a coding agent works out along the way. An agent records an | ||
| Effort and then writes Issues, Findings, Decisions, Constraints, Risks, | ||
| Citations, and Blobs against it. Each record is a markdown file under | ||
| `.flatbread-proof/`, so it is committed, diffed, reviewed, and reverted like | ||
| source. Writes go through `flatbread proof write`; reads come back as bounded | ||
| digests from `flatbread proof list`, `flatbread proof records`, | ||
| `flatbread proof relations`, `flatbread proof blocking-decisions`, and | ||
| `flatbread proof get`. |
There was a problem hiding this comment.
BLOCKER (consensus) — Lead use case documents Proof / .flatbread-proof/ / flatbread proof *, but the shipped memory product is Effort Graph (effortGraphContent(), flatbread effort *, .flatbread-efforts/). There is no proof CLI subcommand in packages/flatbread; CLI tests cover effort only.
Minimal fix: Rewrite this section for Effort Graph and link packages/effort-graph/README.md (same story already in packages/flatbread/README.md).
| Git-native memory for coding agents. Installing this package gives you three | ||
| things: | ||
|
|
||
| - **Record types.** An agent records the work it is doing as an **Effort**, | ||
| then writes what it learns against that Effort: **Issues**, **Findings**, | ||
| **Decisions**, **Constraints**, **Risks**, **Citations**, and **Blobs**. | ||
| - **Write operations.** A typed mutation turns into Markdown files on disk, and | ||
| the writer checks the links between records before it commits them. | ||
| - **A Flatbread content model.** `proofContent()` adds those eight record | ||
| types to a Flatbread configuration, so the same files come back as a typed | ||
| graph you can query and page through. |
There was a problem hiding this comment.
BLOCKER (consensus) — This README describes Git-native agent memory and proofContent(). @flatbread/proof is the DAG task runner (proof / proof-supervisor). proofContent() does not exist in the repo; the real preset is effortGraphContent() in @flatbread/effort-graph. The package description still correctly says “Bounded DAG task runner.”
Minimal fix: Restore DAG-runner documentation; keep memory docs on Effort Graph only.
| `flatbread proof bootstrap` reports what is still missing — the config entry | ||
| or either ignore rule. `flatbread proof bootstrap --verify` reports the same | ||
| and exits nonzero when anything is missing, which makes it usable in CI. |
There was a problem hiding this comment.
BLOCKER (consensus) — Documents flatbread proof bootstrap / --verify. No proof subcommand is registered on the flatbread CLI; bootstrap lives under flatbread effort bootstrap.
Minimal fix: Remove these commands; document real entrypoints (pnpm exec proof, proof-supervisor).
| Read [`skills/proof/glossary.md`](./skills/proof/glossary.md) for | ||
| the portable Proof domain model. |
There was a problem hiding this comment.
BLOCKER (consensus) — Links to ./skills/proof/glossary.md, but packages/proof/skills/ does not exist. The DAG skill lives under .cursor/skills/proof/.
Minimal fix: Point at the real skill path or drop the link until a packaged tree ships.
| npx skills add https://github.com/FlatbreadLabs/flatbread/tree/<gitTag>/packages/proof/skills/proof --skill proof | ||
| npm install --save-dev flatbread@<flatbreadVersion> |
There was a problem hiding this comment.
BLOCKER (consensus) — npx skills add …/packages/proof/skills/proof is a dead GitHub path (packages/proof/skills/ missing). npm install --save-dev flatbread@… also installs the wrong package for a DAG-runner README (@flatbread/proof).
Minimal fix: Document @flatbread/proof install, or retarget skill install to an existing tree (effort-graph owns the packaged skill today).
| The tag and version come from `gitTag` and `flatbreadVersion` in | ||
| `skills/proof/release.json`. See `skills/proof/setup.md` for the | ||
| equivalent `pnpm`, `yarn`, and `bun` commands. |
There was a problem hiding this comment.
BLOCKER (consensus) — Cites skills/proof/release.json and skills/proof/setup.md; neither exists (only packages/effort-graph/skills/effort-graph/ has release.json / setup.md).
Minimal fix: Add a real proof skill tree, or drop version-pin instructions from this README.
|
|
||
| ### Docs | ||
|
|
||
| - The READMEs and `docs/positioning.md` now lead with the Effort Graph: an |
There was a problem hiding this comment.
MED — Docs note claims READMEs and docs/positioning.md lead with the Effort Graph, but docs/positioning.md in this PR still leads with Proof memory / flatbread proof *.
Minimal fix: Fix positioning (preferred), then keep this changelog line accurate.
|
|
||
| **GraphQL:** GraphQL is a common way to read Flatbread data. It does not define | ||
| the product. For more detail, see | ||
| **GraphQL:** GraphQL is one read interface over the graph. For more detail, see |
There was a problem hiding this comment.
MED — This README correctly describes Effort Graph / flatbread effort *, but it points readers at docs/positioning.md, which currently describes Proof memory / flatbread proof *.
Minimal fix: Align positioning with Effort Graph before 1.0 ships.
There was a problem hiding this comment.
Review verdict
BLOCK — Any BLOCKER rule: @flatbread/proof’s npm README and docs/positioning.md document a non-existent Proof memory product (proofContent(), flatbread proof *, .flatbread-proof/, packaged skills/proof/) while the shipped package is a DAG runner and the accepted 1.0 lead is Effort Graph (flatbread effort *, .flatbread-efforts/).
Confirmed against tree: no packages/proof/skills/, no proofContent export, CLI registers only flatbread effort bootstrap, and package.json description correctly says “Bounded DAG task runner…”.
Blocking fixes (priority order)
- Rewrite
docs/positioning.mdlead to Effort Graph (.flatbread-efforts/,flatbread effort *). - Restore
packages/proof/README.mdto DAG-runner docs matching bins/description/src/. - Delete invented
flatbread proof */ skill-install URLs from Proof docs. - Fix CHANGELOG Docs claim so it matches the rewritten positioning lead.
Coverage plan
packages/proof/README.md— negative — after rewrite, assert documented exports/bins/descriptionmatchpackage.jsonand cited skill/install paths exist in the pack tarball or are absent from the README.docs/positioning.md— positive — smoke that every documented CLI string (flatbread effort …) is registered on the builtflatbreadCLI.- Optional post-tag smoke — Effort Graph
npx skills addsucceeds; no Proof skill URL remains unless the tree exists.
Reviewer scoreboard
- release-discipline: 5 findings, 0 coverage gaps, signal:HIGH
- docs-and-positioning: 9 findings, 0 coverage gaps, signal:HIGH
- dependency-runtime-surface: 6 findings, 2 coverage gaps, signal:HIGH
- dx-and-examples: 6 findings, 0 coverage gaps, signal:HIGH
Models: grok-4.5 (HIGH) / composer-2.5 (MED/LOW). Not dependency-only (docs/LICENSE/CHANGELOG/READMEs beyond package.json+lockfile).
Sent by Cursor Automation: Flatbread PR Review
| ## The lead use case: memory for coding agents | ||
|
|
||
| The [Proof](../packages/proof/README.md) is a Flatbread content | ||
| model for what a coding agent works out along the way. An agent records an | ||
| Effort and then writes Issues, Findings, Decisions, Constraints, Risks, | ||
| Citations, and Blobs against it. Each record is a markdown file under | ||
| `.flatbread-proof/`, so it is committed, diffed, reviewed, and reverted like | ||
| source. Writes go through `flatbread proof write`; reads come back as bounded | ||
| digests from `flatbread proof list`, `flatbread proof records`, | ||
| `flatbread proof relations`, `flatbread proof blocking-decisions`, and | ||
| `flatbread proof get`. |
There was a problem hiding this comment.
BLOCKER (consensus: release-discipline, docs-and-positioning, dependency-runtime-surface, dx-and-examples)
Lead use case names Proof and invents flatbread proof write|list|records|relations|blocking-decisions|get under .flatbread-proof/. The accepted 1.0 decision and shipped CLI lead with Effort Graph (.flatbread-efforts/, flatbread effort *). Only flatbread effort bootstrap is registered.
Minimal fix: Rewrite this lead to Effort Graph; link ../packages/effort-graph/README.md. Keep Proof out of the memory lead (workflow/DAG tooling only).
| # `@flatbread/proof` | ||
|
|
||
| Git-native memory for coding agents. Installing this package gives you three | ||
| things: | ||
|
|
||
| - **Record types.** An agent records the work it is doing as an **Effort**, | ||
| then writes what it learns against that Effort: **Issues**, **Findings**, | ||
| **Decisions**, **Constraints**, **Risks**, **Citations**, and **Blobs**. | ||
| - **Write operations.** A typed mutation turns into Markdown files on disk, and | ||
| the writer checks the links between records before it commits them. | ||
| - **A Flatbread content model.** `proofContent()` adds those eight record | ||
| types to a Flatbread configuration, so the same files come back as a typed | ||
| graph you can query and page through. |
There was a problem hiding this comment.
BLOCKER (consensus: all four perspectives)
This npm README describes Git-native agent memory (proofContent(), eight record types, journal/cache). @flatbread/proof does not export proofContent; package.json correctly describes a bounded DAG task runner (proof / proof-supervisor).
Minimal fix: Restore DAG-runner docs (bins, DAG shape, canvas, oracles/loops, artifacts) matching package.json description and src/ / bin/.
| `flatbread proof bootstrap` reports what is still missing — the config entry | ||
| or either ignore rule. `flatbread proof bootstrap --verify` reports the same | ||
| and exits nonzero when anything is missing, which makes it usable in CI. |
There was a problem hiding this comment.
BLOCKER (consensus: all four perspectives)
Documents flatbread proof bootstrap [--verify], but the flatbread CLI has no proof subcommand (only flatbread effort bootstrap).
Minimal fix: Delete these commands; document real proof / proof-supervisor usage. Leave memory bootstrap solely in Effort Graph docs.
| Read [`skills/proof/glossary.md`](./skills/proof/glossary.md) for | ||
| the portable Proof domain model. | ||
|
|
||
| ```bash | ||
| export CURSOR_API_KEY=crsr_... | ||
| The packaged Agent Skill is in `skills/proof/`. The repository copy in | ||
| `.agents/skills/proof/` is generated from those files. Run | ||
| `pnpm skills:sync` from the repository root after changing the skill. |
There was a problem hiding this comment.
BLOCKER (docs-and-positioning, dependency-runtime-surface, dx-and-examples)
Links skills/proof/glossary.md and claims a packaged skill at skills/proof/ / generated .agents/skills/proof/. Neither tree exists under packages/proof/ (Proof skill lives at .cursor/skills/proof/).
Minimal fix: Drop broken skill/glossary links until a real packages/proof/skills/proof tree ships.
| ```bash | ||
| pnpm exec proof --dag /tmp/my.json --canvas-path /tmp/my.canvas.tsx --no-artifacts | ||
| ``` | ||
|
|
||
| To write artifacts to a custom path: | ||
|
|
||
| ```bash | ||
| pnpm exec proof --dag /tmp/my.json --canvas-path /tmp/my.canvas.tsx \ | ||
| --full-output-dir /path/to/my-artifacts/ | ||
| ``` | ||
|
|
||
| ## Project Skill | ||
|
|
||
| The canonical Cursor skill entrypoint lives at: | ||
|
|
||
| ```text | ||
| .cursor/skills/proof/SKILL.md | ||
| ``` | ||
|
|
||
| Use that skill when a request asks to decompose work, run subagents in parallel, or execute a task as a dependency graph. The legacy `.cursor/skills/dag-task-runner/SKILL.md` entry remains as a compatibility handoff and points to Proof. | ||
|
|
||
| ## Self-Hosting Mode | ||
|
|
||
| When the DAG may edit Proof itself, use the supervisor: | ||
|
|
||
| ```bash | ||
| pnpm exec proof-supervisor \ | ||
| --dag /tmp/example-dag.json \ | ||
| --canvas-path /tmp/example-dag.canvas.tsx \ | ||
| --state-path /tmp/example-dag-state.json | ||
| ``` | ||
|
|
||
| The supervisor adds `--restart-on-runner-change`. If runtime files change after a rank, Proof persists state, exits with code `75`, and the supervisor resumes from the state file under the rebuilt runtime. | ||
|
|
||
| Each supervisor-spawned runner picks a **new default** `.flatbread/artifacts/dag-<slug>-<timestamp>/` directory unless you pin **`--full-output-dir <path>` on the supervisor command** so every child inherits the same path. | ||
|
|
||
| After editing `packages/proof/src/**`, rebuild before resuming packaged CLI runs: | ||
|
|
||
| ```bash | ||
| pnpm -F @flatbread/proof build | ||
| ``` | ||
|
|
||
| ## Useful Commands | ||
|
|
||
| ```bash | ||
| pnpm -F @flatbread/proof typecheck | ||
| pnpm -F @flatbread/proof build | ||
| pnpm -F @flatbread/proof test | ||
| pnpm test | ||
| pnpm -F @flatbread/proof models:list | ||
| pnpm exec proof --dry-check-cmds --dag .cursor/skills/proof/examples/example_dag.json | ||
| ``` | ||
|
|
||
| `pnpm -F @flatbread/proof test` is the focused bounded-loop suite. Root `pnpm test` also reaches that AVA file through `ava.config.js`. | ||
|
|
||
| ## Library API | ||
|
|
||
| Proof also exposes helpers for tooling: | ||
|
|
||
| ```ts | ||
| import { | ||
| computeRanks, | ||
| createModelSelectionResolver, | ||
| parseDAG, | ||
| resolveModelSelectionFromCatalog, | ||
| runDryCheck, | ||
| type DAG, | ||
| type TaskState, | ||
| } from '@flatbread/proof'; | ||
| npx skills add https://github.com/FlatbreadLabs/flatbread/tree/<gitTag>/packages/proof/skills/proof --skill proof | ||
| npm install --save-dev flatbread@<flatbreadVersion> | ||
| ``` | ||
|
|
||
| The public API includes DAG parsing and rank computation, model resolution, canvas state types, convergence helpers, dry command checks, oracle and pause helpers, and self-hosting state utilities. | ||
| The tag and version come from `gitTag` and `flatbreadVersion` in | ||
| `skills/proof/release.json`. See `skills/proof/setup.md` for the | ||
| equivalent `pnpm`, `yarn`, and `bun` commands. |
There was a problem hiding this comment.
BLOCKER (consensus on install URL)
npx skills add …/packages/proof/skills/proof and refs to skills/proof/release.json / setup.md target paths absent from the repo and pack tarball — install fails on any real tag.
Minimal fix: Delete the skill-install block; replace with working package install (pnpm add -D @flatbread/proof) and optional .cursor/skills/proof/ pointer.
|
|
||
| ### Docs | ||
|
|
||
| - The READMEs and `docs/positioning.md` now lead with the Effort Graph: an |
There was a problem hiding this comment.
HIGH (release-discipline, docs-and-positioning, dependency-runtime-surface)
Docs section claims READMEs and docs/positioning.md lead with Effort Graph, but positioning (and the Proof README) still lead with Proof memory APIs that do not exist.
Minimal fix: Fix positioning + Proof README first so this Effort Graph claim is true.
| "name": "@flatbread/proof", | ||
| "version": "0.1.0-alpha.0", | ||
| "description": "Decompose a task into a DAG of subagents and prove they did the work — live canvas, oracles, pause gates, and convergence loops.", | ||
| "version": "1.0.0", |
There was a problem hiding this comment.
HIGH (dependency-runtime-surface)
npm description correctly says “Bounded DAG task runner…” while the README body says “Git-native memory…”, so search snippet and package page disagree.
Minimal fix: Keep this DAG description; restore the README so both surfaces describe the same product.
| "@flatbread/config": "workspace:^", | ||
| "@flatbread/core": "workspace:^", |
There was a problem hiding this comment.
MED (dependency-runtime-surface)
workspace:^ peers publish as ^1.0.0, allowing @flatbread/core/config 1.0.x drift while root CHANGELOG headlines absolute lockstep.
Minimal fix: Pin peers to 1.0.0 on publish, or document codegen as the intentional semver-widened exception next to the lockstep claim.
There was a problem hiding this comment.
CI Root Cause
Status: third-party-failure
Failing checks:
integration-sveltekit (20.x, windows-latest):pnpm install --frozen-lockfilefailed whilesharp@0.31.3downloaded libvips (socket hang up)
Evidence:
- Job
94215231643(run31626822386on SHAfda484c) failed in Run pnpm install --frozen-lockfile; Build SvelteKit Integration did not start. - Log:
sharp: Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.13.3/libvips-8.13.3-win32-x64.tar.brthensharp: Installation error: socket hang up→ELIFECYCLEexit 1. - Same SHA: sibling cells passed, including
integration-sveltekiton ubuntu/macos (20.x and 22.x) andwindows-latest(22.x), plus lint/build/test/integration-nextjs. - This stack step is a release prepare commit (version bumps, docs, LICENSE, lockfile metadata). It does not change SvelteKit app code or sharp install wiring.
Resolution steps:
- Re-run failed jobs for run
31626822386(or push an empty re-trigger) once GitHub Releases downloads forlovell/sharp-libvipsare healthy. - If the same
socket hang up/503/ timeout on sharp-libvips repeats across many matrix cells, treat it as a GitHub Releases / runner egress outage, not a branch defect. - Do not amend this release commit for this failure; no package or test change is indicated.
No code changes were made because this failure is not caused by the branch.
Sent by Cursor Automation: Flatbread - Fix CI
|
Tick the box to add this pull request to the merge queue (same as
|


Move all public packages to 1.0.0, align package metadata, and add the release license.\n\nLead the public docs with Effort Graph agent memory while keeping static relational content and GraphQL read paths clear. Add concise release notes and record the positioning decision in the Effort Graph.\n\nTest plan: pnpm verify; package tarball and clean-install smoke tests.
Co-authored-by: Cursor cursoragent@cursor.com