docs: Plan 10 — bootstrap cold-start seed - #31
Conversation
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 9 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
WalkthroughPlan 10 defines staged work to seed a non-empty bootstrap trust graph, add verified initial attestations, automate development startup, and support metric-gated manual de-emphasis reporting. ChangesBootstrap cold-start trust graph
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 8
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/superpowers/plans/2026-08-11-plan-10-bootstrap-cold-start.md`:
- Around line 41-42: Add blank lines immediately after the Markdown headings `PR
A`, `PR B`, `PR C`, `Out of scope`, `Verification`, and `Acceptance` in the plan
document, preserving the existing section content and ordering.
- Around line 33-35: Update the curated seed content and de-emphasis plan
sections to require seeded attestations to contain an actual signature over the
RFC 8785 JCS payload and pass the normal signature verifier, not merely set
sig_verified or verified_key_id. Add immutable seeded/bootstrap provenance, and
ensure organic-contribution calculations exclude those attestations even after
registry removal.
- Line 32: Extend the integration-test plan for the bootstrap graph loader to
update a seeded issuer’s bootstrap_issuers.current_weight, reload the graph, and
assert GraphRoot.weight reflects the changed value while issuers.trust_weight
remains 1.0. Apply this verification to the corresponding root-weight and
seeding sections, preserving the existing no-roots-table design.
- Line 35: The plan’s readiness tests must cover every trigger condition, not
just issuer count. Define “independent” verified issuers, then add boundary
fixtures with controlled timestamps and weights that validate the three-issuer
minimum, 80% organic contribution, continuous 30-day window, and serving-tenant
policy thresholds; include a counterfactual removal case that fails when any
principal’s score drops below its threshold.
- Line 35: Update computeCounterfactualRemovalReport and the PATCH de-emphasis
approval flow to accept and evaluate the requested target weight rather than
always forcing the candidate root to weight 0. Bind the resulting approval to
both that target weight and the graph version, and reject stale or mismatched
reports; add coverage for partial and full removal targets.
- Around line 30-32: Update the bootstrap seed plan to preserve mutable registry
state across reruns: use insert-only behavior for current_weight,
de_emphasized_at, de_emphasis_reason, approved_by, and explicit removal state,
and prevent the fixed manifest from reinstating PATCH-removed issuers. Ensure
registry updates and the derived is_bootstrap flag occur atomically per issuer,
and add a PATCH → seed → reload test covering the preserved state and graph
behavior.
- Around line 30-33: Define deterministic identifiers and conflict keys for
every seeded principal, issuer, principal key, and attestation in the bootstrap
seed plan, including the rows described in the seed transaction and
curated-content sections. Update the idempotent upserts to use those stable
identities and add the required unique constraints so reruns cannot create
duplicate records. Extend seed verification to assert exact IDs and field values
for each seeded row, rather than only checking counts.
- Around line 69-74: Add the missing repository verification gates to the plan’s
Verification section: confirm a clean workspace, verify the work is on the
feat/bootstrap-cold-start branch, run the CodeRabbit CLI pre-commit gate, run
gitleaks detect --source ., and obtain `@coderabbitai` review before merge. Keep
the existing application and test checks unchanged.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 17fdd4e2-0ac7-4f5b-9ecc-478bdd9a0cbc
📒 Files selected for processing (1)
docs/superpowers/plans/2026-08-11-plan-10-bootstrap-cold-start.md
|
|
||
| 1. **Seed idempotency:** the seed is a re-runnable migration-style script (`npm run seed:bootstrap`) keyed on principal `id`. Re-running must not duplicate issuers, keys, or attestations. Use `INSERT ... ON CONFLICT DO NOTHING` / `DO UPDATE SET` and skip already-seeded rows via `issuers.is_bootstrap`. Seed writes happen inside a single transaction per issuer so a partial seed never leaves a half-created root. | ||
| 2. **`is_bootstrap` derivation:** `issuers.is_bootstrap` is set `TRUE` exactly for `principal_id` present in `bootstrap_issuers` (design §5.1: "derived from bootstrap_issuers by the seeder"). The seeder runs the derivation after upserting the registry; staff removal from the registry (PATCH) clears the flag. No other code path sets it. | ||
| 3. **Root weight source of truth:** the graph loader already uses `bootstrap_issuers.current_weight` as root weight. The seeder therefore writes `current_weight` directly (default `1.0`); there is **no separate `roots` table**. `issuers.trust_weight` is never touched by de-emphasis — it stays `1.0` for bootstrap issuers (the orthogonal issuer-quality knob, design §6.1). A constraint/test asserts `current_weight` is read as root weight. |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | 🏗️ Heavy lift
Verify PATCH write-through to loaded root weights.
The planned test checks only the initial seeded load. Add an integration test that changes current_weight, reloads the graph, observes the new GraphRoot.weight, and confirms that issuers.trust_weight remains 1.0.
Also applies to: 42-45, 70-73
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@docs/superpowers/plans/2026-08-11-plan-10-bootstrap-cold-start.md` at line
32, Extend the integration-test plan for the bootstrap graph loader to update a
seeded issuer’s bootstrap_issuers.current_weight, reload the graph, and assert
GraphRoot.weight reflects the changed value while issuers.trust_weight remains
1.0. Apply this verification to the corresponding root-weight and seeding
sections, preserving the existing no-roots-table design.
- deterministic IDs/conflict keys for all seeded rows; idempotent upserts - preserve mutable registry state across reruns (insert-only manifest, no reinstatement of PATCH-removed issuers) - derive is_bootstrap excluding removed-from-registry issuers - seed attestations as real signed JWS over RFC 8785 JCS payload passing the normal verifier; immutable bootstrap-origin provenance; exclude from organic contribution even after removal - target-weight-aware counterfactual report bound to graph version; reject stale reports - readiness gate covers all trigger conditions (3-issuer minimum, 80%, 30-day window, thresholds) with boundary fixtures - add repo gates to Verification
|
@coderabbitai review |
|
@coderabbitai review
Docs-only: Plan 10 (bootstrap registry + cold-start seed) plan doc for design §13 step 14. No code changes.
seed-bootstrapscript +is_bootstrapderivation + root-weight wiringscripts/dev-up.shMaps to productization design §13 step 14 / §16 success criteria. Next session pointer in
HANDOVER.mdtargets this step.Summary by CodeRabbit