docs(pm2): B-0271 — PM-2 first research pass, 6 Zeta feature gaps predicted#3033
Conversation
Runs the PM-2 skill on Zeta's product surface (544 backlog rows, README, TECH-RADAR, API surface, NuGet config, proofs/). Identifies 6 gaps before consumer friction: 1. Getting-started guide missing (B-0444, new P1) 2. C# fluent operator surface: Core.CSharp covers only variance shims (B-0445, new P1) 3. Lean 4 ChainRule.lean is a stub; core identities not formally proved (B-0446, new P2) 4. NuGet metadata sparse: no Description/Tags/SourceLink/Version (B-0447, new P2) 5. Shadow CLI slices 3–5 are P0 but deferrable individually → treat as sprint unit (B-0431/0432/0433) 6. DBpedia/MDM canonical demo does not exist → B-0428 unblocked Closes B-0271. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Doc-only PR delivering the PM-2 first research pass (B-0271). Adds a research document predicting six feature gaps in Zeta's consumer-facing surface, files four new backlog rows for net-new gaps, and updates B-0271 with a completion note pointing at existing rows for the remaining two gaps.
Changes:
- Adds
docs/research/2026-05-13-pm2-zeta-feature-gap-prediction-first-pass.mddescribing six predicted gaps with product-bet structure. - Adds four new per-row backlog files: B-0444 (getting-started guide, P1), B-0445 (C# fluent operator surface, P1), B-0446 (Lean 4 proof completion, P2), B-0447 (NuGet package metadata, P2).
- Updates B-0271 with
last_updated, classification →ready-for-close, and a completion note linking to the research doc and the six gaps.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| docs/research/2026-05-13-pm2-zeta-feature-gap-prediction-first-pass.md | New research doc enumerating six predicted feature gaps. |
| docs/backlog/P1/B-0444-getting-started-guide-for-library-consumers-pm2-2026-05-13.md | New P1 row for quickstart guide + sample. |
| docs/backlog/P1/B-0445-csharp-fluent-operator-surface-pm2-2026-05-13.md | New P1 row for C# fluent operator API. |
| docs/backlog/P2/B-0446-lean4-formal-proof-completion-dbsp-core-identities-pm2-2026-05-13.md | New P2 row for Lean 4 proof completion. |
| docs/backlog/P2/B-0447-nuget-package-metadata-completeness-pm2-2026-05-13.md | New P2 row for NuGet package metadata. |
| docs/backlog/P1/B-0271-pm2-first-research-pass-2026-05-08.md | Updates B-0271 with completion note + ready-for-close classification. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b6e419d062
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
…g rows B-0271.md line 31: added blank line between "6 gaps identified:" prose and the list beneath it (markdownlint MD032). B-0447.md line 47: replaced prose `+` connector (parsed as list marker) with `and` so the SourceLink sentence reads as a single paragraph instead of triggering MD032. Co-Authored-By: Claude <noreply@anthropic.com>
B-0271 had a completion note landing in this PR but status remained open. Set status to closed to match the declared-complete state. Ran BACKLOG_WRITE_FORCE=1 bun tools/backlog/generate-index.ts to include B-0444, B-0445, B-0446, B-0447 in docs/BACKLOG.md so the new rows are visible in the canonical queue. Addresses the non-required CI check for generated-index drift. Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5dfdef24a5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ## PM-2 signal | ||
|
|
||
| Academic reviewers and enterprise adopters want to cite Zeta as a | ||
| verified DBSP implementation. `proofs/lean/ChainRule.lean` is a stub |
There was a problem hiding this comment.
Point Lean proof task at the maintained file path
This row’s signal is built on an invalid file location: proofs/lean/ChainRule.lean is described as a live stub, but the maintained proof was migrated to tools/lean4/Lean4/DbspChainRule.lean and the old path was removed (already documented in backlog history). As written, the acceptance criteria/send-you-there steps direct contributors to a nonexistent proofs/lean/ target and can cause duplicate or mis-scoped work instead of extending the active Lean project.
Useful? React with 👍 / 👎.
…→ B-0450 (#3053) * fix(backlog): resolve B-0444 ID collision — renumber getting-started → B-0450; close shipped bus-envelope row Two rows on main both claimed `id: B-0444`: 1. `docs/backlog/P1/B-0444-getting-started-guide-...md` — filed first (commit b6e419d 17:23 via PR #3033, B-0271 PM-2 gap-prediction pass) 2. `docs/backlog/P2/B-0444-bus-claim-envelope-...md` — filed 25 min later (commit bbb984d 17:48 via PR #3038, Otto-Desktop's identified follow-up gap) AND already shipped via PR #3043 Per "first-merged-wins" the getting-started row had the ID first (PR #3033 merged at 17:34, before the bus-envelope row was even committed). But: the bus-envelope row was shipped (PR #3043), so moving its ID would break the link from PR #3043 → backlog row + the ID is already referenced by B-0445 and B-0448's `composes_with`. Resolution: keep B-0444 on the shipped+referenced bus-envelope row; renumber the getting-started row to the next available ID (B-0450 — B-0449 was taken by Otto-Desktop's bg-services slice 5). Changes: - `docs/backlog/P1/B-0444-getting-started-guide-...md` → `docs/backlog/P1/B-0450-getting-started-guide-...md` (file rename via `git mv` preserves history); `id` field updated; body title updated; `renumbered_from: B-0444` + reason recorded for substrate-honest provenance. - `docs/backlog/P1/B-0271-pm2-first-research-pass-...md`: updated Gap-1 reference from B-0444 to B-0450 with renumber note. - `docs/backlog/P2/B-0444-bus-claim-envelope-...md`: status open → closed; `closed_at: 2026-05-13` + `closed_by_pr: 3043` recorded (this row's substrate work shipped already; the row was just never marked closed). - `docs/BACKLOG.md`: regenerated via `BACKLOG_WRITE_FORCE=1 bun tools/backlog/generate-index.ts` to reflect the renumber + status change. Verified post-fix: - `bun tools/bg/backlog-ready-notifier.ts --once` still reports 0 dangling-dep refs (no warning suffix). - No grep for `B-0444` in `docs/backlog/` returns the now-renumbered row's old ID; the bus-envelope row's references survive intact. Co-Authored-By: Claude <noreply@anthropic.com> * shard(tick): 2306Z — B-0444 ID collision resolved + shipped bus-envelope row closed Records: PR #3050 merged; audit of in-flight rows surfaced TWO rows both with `id: B-0444` (one shipped via PR #3043 still open; one duplicate from PM-2 gap-prediction). PR #3053 keeps B-0444 on the shipped+referenced row, renumbers the duplicate to B-0450, closes the shipped row. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
Summary
proofs/) to predict feature gaps before consumer frictiondocs/research/2026-05-13-pm2-zeta-feature-gap-prediction-first-pass.mdwith 6 gaps6 predicted gaps
Core.CSharpcovers only variance shims — operators need C# fluent APIChainRule.leanis a stub — no formal proof of DBSP identitiesTest plan
dotnet build -c Release0 warnings (no source changes — doc only)docs/research/2026-05-13-pm2-zeta-feature-gap-prediction-first-pass.md🤖 Generated with Claude Code