docs: consolidate the product & technical gap baseline - #1040
docs: consolidate the product & technical gap baseline#1040seonghobae wants to merge 10 commits into
Conversation
New docs/product-technical-gap-baseline.md — the single tracker for the distance between pg-erd-cloud today and a defensible first commercial release. - Names the active commercial-readiness blocker: org CI incident ContextualWisdomLab/.github#1531 (0 pg-erd-cloud main merges since 2026-08-20; 10 merge-ready loop PRs stacked and waiting). - One section per open gap/epic issue #946-#953: Feature spec (summary) | Current state | Gap | This loop's increment PRs | Remaining increments | Status. - Maps the loop's shipped increments to their issues: #1031/#1032/#1033/#1035 (#947), #1036 (#951), #1037 (#946), #1038 (#948), #1039 (#950); #1024/#1025 as release-hygiene prerequisites for #953. - Cross-repo / ecosystem table (keyverse, contextual-orchestrator, wardnet, central .github; TEPP/fast-mlsirm noted as not consumed) + a status legend. Supersedes and extends the draft in PR #942 (blocked by the incident); the two reconcile when either merges. #949 / #952 / #953 sections are lighter this pass (GitHub API was rate-limited during the read) and will be filled in next. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SeQS8tSee5QVeyGpJ9SaY
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughiter28 기준으로 기술 격차 기준 문서를 갱신했습니다. 적체 PR 수를 16개로 수정하고, Changes기술 격차 기준
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to This PR only consolidates documentation and updates the changelog; no actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (2 skipped: 2 unsupported.) ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| ## Commercial-readiness bar | ||
|
|
||
| A buyer must be able to verify, from product-owned evidence, that: (1) schema | ||
| quality claims are backed by catalog or measured evidence, not heuristics; | ||
| (2) the deployment's isolation boundary is described accurately and enforced; | ||
| (3) large-schema behaviour has a published capacity envelope; (4) credential | ||
| lifecycle is auditable; (5) forward-engineering apply is governed with | ||
| rollback; (6) every release carries exact-head, migration, operability, and | ||
| supply-chain evidence. |
- #949: replace the placeholder with the issue's seven-part bounded decomposition (plan authority, sandbox runtime, live preflight provider, approval/authorization, apply worker, convergence/recovery, ops/evidence) and the mandatory safety invariants. - #952: replace the placeholder with the three governed vertical workflows (reference-document attachment, grounded reversing spec, naruon projection) and the product boundary. Reconcile the contextual- orchestrator wording with the existing configuration-only /chat/completions integration in docs/llm-orchestrator-integration.md (CodeRabbit finding) — remaining work is governance (credential boundary, tenant context, discovery/routing/fallback delegation), not a missing transport. - #953: replace the placeholder with the release-integration scope (PR-queue shaping, dependency backlog with per-item decisions, required release evidence) and list #1040/#1024/#1025 as its increments. - #951: add #1041 (baseline harness) to the increment PRs; update the remaining increments. - Fix the stacked-PR count/list mismatch (Devin + CodeRabbit finding): 11 increment PRs + this document, with #942 called out separately. - Add a References (APA 7th) section (Devin "research grounding absent" finding): AERA/APA/NCME 2014, Codd 1971, NIST SP 800-218, SLSA v1.2, PostgreSQL 18 DDL. Docs-only; tests/test_docstrings.py green. Still blocked from merge by ContextualWisdomLab/.github#1531. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SeQS8tSee5QVeyGpJ9SaY
|
Pushed
Also filled the #949 and #953 sections from their issue bodies (they were placeholders), and added #1041 to the #951 increment list. Docs-only; |
| - **PR-queue shaping.** Capture the exact protected-`main` SHA, ruleset, | ||
| required checks, and every open PR's exact head. Classify each PR: | ||
| unique in-scope change / stack dependency / superseded-duplicate / | ||
| contaminated aggregate needing reconstruction / experiment-or-post-GA / | ||
| blocked by the org control-plane incident. Close duplicates with a link | ||
| to the canonical issue; never transfer stale-head review evidence. | ||
| Rebase bounded stacks in dependency order without force-pushing over | ||
| concurrent agent work. Refresh **this document** after each integration | ||
| wave. A release-cut branch/tag comes only from protected `main`. |
- #951 section: add #1045 (repeat-run percentile aggregation via app/perf/baseline_stats.py -- aggregate_baseline runs run_baseline N times over the same seed and reduces wall_seconds/peak_bytes to min/max/mean/p50/p95/p99 with stdlib statistics.quantiles, no threshold). Drop the percentile item from "Remaining increments". - Blocker section: 12 stacked increment PRs + this document; merge-wave order now #1036 -> #1041 -> #1045. - Maintenance note + "Last consolidated" date bumped to iter18 / 2026-09-02. Docs-only; tests/test_docstrings.py green. Still blocked from merge by ContextualWisdomLab/.github#1531. (PR #1040 post-cb762cd7 bot review not re-read this tick -- GitHub REST secondary rate limit on shared user 8172694; will check next tick.) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SeQS8tSee5QVeyGpJ9SaY
- MD018: no prose line now starts with a bare #<number>; the merge-wave order moved into a fenced text block (CodeRabbit). - Reference links: added the AERA/APA/NCME 2014 publisher page, the ISO/TS 25237:2017 catalogue link, and switched the normalization anchor to Codd (1970) CACM with a DOI (Devin "research grounding" / CodeRabbit "links or PDFs"). - "Last consolidated" set to 2026-09-01 UTC so it is not a future date relative to CI/reviewers (CodeRabbit). - #953 section: state explicitly that this document classifies only the loop's own increments and that the full ~60-open-PR classification table is a not-yet-done #953 deliverable, deferred until the merge wave drains the stack (Devin "queue classification remains partial"). - Skipped the 13:09-13:12 findings (PR-count mismatch, orchestrator wording) -- already fixed in cb762cd. Docs-only; tests/test_docstrings.py green. Still blocked from merge by ContextualWisdomLab/.github#1531. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SeQS8tSee5QVeyGpJ9SaY
|
Pushed
Docs-only. Still blocked from merge by |
…list - #947 section: #1048 bullet -- assess_transitive_dependencies, the 3NF layer. Catalog-only non_key_reference_cluster is a structural precondition (inferred); a caller-declared FD raises transitive_dependency_via_declared_fd (declared) paired with a candidate_3nf_split proposal (proposed); FDs are never inferred from names. "Remaining increments" now scopes the open work to row-level FD discovery from table data (a profiling service). - Blocker section: 13 stacked increment PRs; merge-wave #947 chain line is now #1031 -> #1032 -> #1033 -> #1035 -> #1048. - Maintenance note + "Last consolidated" -> iter20. MD018-clean. Docs-only; tests/test_docstrings.py green. No new PR #1040 bot review since 45dce59 (org review queue stuck). Still blocked from merge by ContextualWisdomLab/.github#1531. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SeQS8tSee5QVeyGpJ9SaY
- #948 section: #1050 bullet -- app/lineage/prov_projection.py to_prov_document, the pure W3C PROV-JSON projection of build_lineage_graph (entity per snapshot id incl. dangling parents, wasDerivedFrom per typed edge with pg:derivationKind, no new dependency). "Remaining increments" -> the PROV activity layer replaces the "PROV-JSON-LD projection" item. - #950 section: #1049 bullet -- app/deploy/tenant_authority_check.py check_tenant_authority, the concrete check behind all_authority_objects_tenant_scoped. "Remaining increments" now folds the check into the Settings startup self-check and the repository-layer test. - Blocker section: 15 stacked increment PRs; fenced merge-wave block adds #1038 -> #1050 and #1039 -> #1049. - Maintenance note + "Last consolidated" -> iter22. MD018-clean. Docs-only; tests/test_docstrings.py green. No new PR #1040 bot review since 2c30484 (org review queue stuck; .github queue 1057). Still blocked from merge by ContextualWisdomLab/.github#1531. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SeQS8tSee5QVeyGpJ9SaY
- #951 section: #1056 bullet -- app/perf/baseline_report.py build_baseline_report, a versioned buyer-facing envelope around aggregate_baseline (report_version / generated_at / schema_fingerprint / summary with names+counts only / verbatim statistics). Mirrors the #1032 normalization-report envelope. "Remaining increments" trimmed. - #946 section: backfill the #1051 bullet (the pure APP_SECRET dual-read/single-write rotation core -- dual_read_decrypt + plan_key_rotation, needs_key_recovery for undecryptable rows) which was shipped at iter22 but not recorded here. "Remaining increments" now separates the pure core (done) from the DB migration job (needs a PG fixture). - Blocker section: 16 stacked increment PRs; fenced merge-wave block adds #1045 -> #1056 and #1037 -> #1051. - Maintenance note + "Last consolidated" -> iter28 / 2026-09-02 UTC. MD018-clean. Docs-only; tests/test_docstrings.py green. .github queue ~1417 (still rising). Still blocked from merge by ContextualWisdomLab/.github#1531. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SeQS8tSee5QVeyGpJ9SaY
Gate still frozen (main@8dc74692; .github#1531 queue ~1822, rising). iter32 gap-baseline consolidation: record PR #1057 (pure build_release_manifest assembler, new app/release/ package) as the #953 release-evidence increment. Stacked-PR count 16 -> 17; merge-wave block gains a #1057 (#953) line before #1040; #953 "Remaining increments" trimmed to SBOM / signed provenance / operability baseline / migration rehearsal / per-dependency decision table / open-PR classification-of-record. CHANGELOG [Docs] bullet count 16 -> 17. MD018-clean. Docs-only. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SeQS8tSee5QVeyGpJ9SaY
Gate still frozen (main@8dc74692; .github#1531 queue oscillating ~1700-1900, no drainage). iter36 gap-baseline consolidation: record PR #1060 (pure sign_waiver / verify_waiver_signature HMAC-SHA256 tamper-evidence pair) in the #947 "This loop's increment PRs" list. Stacked-PR count 17 -> 18; #947 merge-wave chain extended to #1048 -> #1060; #947 "Remaining increments" reworded (signing core landed, persistence remains). CHANGELOG [Docs] bullet count 17 -> 18. MD018-clean. Docs-only. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SeQS8tSee5QVeyGpJ9SaY
| - **#1060** — `app/spec/waiver_record.py` (`sign_waiver` / | ||
| `verify_waiver_signature`): a pure, IO-free HMAC-SHA256 tamper-evidence | ||
| pair for assessment waivers. The canonical JSON folds the | ||
| signer / signed-at / key-id metadata in, so altering the metadata | ||
| invalidates the signature exactly as altering the waiver body does; | ||
| verification is constant-time. The caller supplies the secret key and it | ||
| is never stored, logged, or echoed into the record. Cites NIST FIPS | ||
| 198-1 and RFC 8785. |
There was a problem hiding this comment.
🔍 External capability claims need verification
PR #1060 is absent from this checkout, so its canonicalization, constant-time verification, and secret-handling claims need verification against that PR.
Was this helpful? React with 👍 or 👎 to provide feedback.
Gate still frozen (main@8dc74692; .github#1531 queue ~2100 and climbing every tick). iter40 gap-baseline consolidation: record PR #1063 (pure lockfile -> CycloneDX 1.6 parser) in the #953 "This loop's increment PRs" list. Stacked-PR count 18 -> 19; #953 merge-wave chain extended to #1057 -> #1063; #953 "Remaining increments" reworded (SBOM generator landed, SBOM signing + manifest linkage + SLSA provenance remain). CHANGELOG [Docs] bullet count 18 -> 19. MD018-clean. Docs-only. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013SeQS8tSee5QVeyGpJ9SaY
New
docs/product-technical-gap-baseline.mdtracking gap issues #946–#953 againstmain@8dc74692, theContextualWisdomLab/.github#1531commercial-readiness blocker (0 pg-erd-cloud merges since 2026-08-20; centralopencode-reviewfail-closed under CI-queue saturation), and this loop's stacked merge-ready PRs mapped to their issues:Supersedes/extends the blocked draft in PR #942 (which first introduces this file); reconcile whichever merges first. Docs-only —
pytest -q tests/test_docstrings.pygreen. Blocked from merge by.github#1531.🤖 Generated with Claude Code
Summary by CodeRabbit