feat: make self-hosting the standing delivery practice (phases 6–7) - #15
Open
darko-mijic wants to merge 20 commits into
Open
feat: make self-hosting the standing delivery practice (phases 6–7)#15darko-mijic wants to merge 20 commits into
darko-mijic wants to merge 20 commits into
Conversation
…c, generalized gates probe, portable skill Close the implementation-review findings on the phase-6 usage layer. The AGENTS.md repo map and the reading skill now name all eleven recipes and the sdp-authoring skill; the gates mutation test discovers the highest primary-numbered plan with the same convention as the guard instead of pinning plan 23; the reading skill separates the Protocol-checkout invocation (three mandatory exclusions) from the adopter form and is held to the recipes check's two-form contract; and the test-file impl: anchors for the two document-realized consumer Specs are relabeled under a recorded document-realization binding clause on spec:model.anchors — vocabulary only, no node, edge, or readiness change (121 specs, 213 nodes, 416 edges, zero findings). Plan 23 gains the post-close corrections section and the origin measurement addendum record (73.1% gross / 38.0% non-cached). Claude-Session: https://claude.ai/code/session_0158eQyLnKGzNZTPYcTehw5M
… as working guidance Plan 24 revision 2 re-derives every ground-truth number by graph query and restructures the phase around what the re-measurement found: the 64-row backlog is 51 example spaces + 13 laws (all verifier-bound), so S1 becomes one kind-level ruling on example implemented-semantics plus thirteen law dispositions; the 8 drift rows all derive ready, so their disposition is refusal re-argument, never enrichment. Names PR #15 as the delivery vehicle, states the self-hosted-setup milestone once, and carries the Vitest 2->4 debt as a named non-Spec chore. Plan 23 gains a supersession note: EXECUTED history only; origin-repo S1-S4 changes were reverted locally and survive solely in libar-ai/convex-event-sourcing#181. AGENTS.md status line moves with plan 24 (records gate green). Claude-Session: https://claude.ai/code/session_0158eQyLnKGzNZTPYcTehw5M
|
Want your agent to iterate on Greptile's feedback? Try greploops. |
…, and the plan selector - Document the recipe parameterization contract: recipes 3, 4, 6, and 9 open with a subject const naming this repository's corpus; the intro and recipe 9 now say so, closing the reported portability gap without breaking the run-verbatim recipe check. - Replace the tautological colliding-global-binary skill test: the collector only ever gathered pnpm-prefixed lines, so the assertion could not fail. The check now scans every shell-fenced line and reddens on any bare sdp or npx sdp invocation. - Mirror recipe 10's row predicate in its completeness expectation: a spec whose only binding is an off-contract, not-enabled verify edge lawfully produces no row, so the broader verifiers.length > 0 predicate was a latent false alarm. - Let zero-padded primary plans enter the gate's plan selector; letter-suffixed plans stay excluded because the hyphen must follow the digits directly. Full thirteen-leg npm run check green. Claude-Session: https://claude.ai/code/session_0158eQyLnKGzNZTPYcTehw5M
…en the temporal guard - Add the sdp package script so the full CLI resolves inside the source checkout (pnpm --silent sdp --help); document it in the README beside the exact failure signature pnpm exec sdp produces here (macOS resolves Apple's unrelated /usr/bin/sdp, which demands Xcode), and retitle the pnpm exec section as adopter-repository usage where the binary really is linked. - Anchor the temporal guard's repository root to the script's own directory instead of the caller's working directory, so the sweep reaches the same files from any cwd; enumeration and reads now go through that root. - Skip a tracked file symlink whose canonical file git enumerates on its own: CLAUDE.md -> AGENTS.md was being swept twice, and a link into an excluded genre would have been un-exempted by reading through the link. Full thirteen-leg npm run check green. Claude-Session: https://claude.ai/code/session_0158eQyLnKGzNZTPYcTehw5M
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 is
Phases 6–7 make the Protocol usable as a delivery practice in both directions:
The origin checkout was not modified during phase 7. Its phase-6 working-copy changes remain reverted and survive only in
libar-ai/convex-event-sourcing#181.Phase 6 — outward usage and adoption
sdp qrecipes in the adopter package.Phase 7 — inward self-hosting practice
implementedstays direct and anchor-derived.ready ∧ kind≠example ∧ ¬implemented, with excluded-example counts and verifier-health reporting. The raw-query caveat remains explicit.defined.spec:consumers.reader, consuming three existing points with three distinct expected outcomes. The technically eligible duplicate-ID target is explicitly refused as vacuous.spec:validation.oracle-target-eligibility.019d063(implementing Design),341ead6(implementation), and7ae8087(post-green slimming) without generalizing from one case..vscode/state, closes the four-column friction ledger without repeated friction, marks plan 24 EXECUTED, and removes the explicitly authorized superseded phase-6 plan file.Closing graph
modelsedges: 2Verification
npm run checkpasses in the normal tree and independently at committed checkpoints in a detached clean worktree.f8a50bb: installed Vitest 4.1.10, replaced removedsingleForkwith forks + one worker + isolation disabled, and migrated five deprecated matcher aliases without changing assertions.de3589892d25f40fe38af3b6be638514bc1d9f263b15811853e9770c8616823217a03acf584ebebdf20051f75ed774a1deac5ba3b7f578c3d59bba9ffa7aa790Deliberate boundaries
Post-review follow-up (
454e9e9,4079825)A full review pass over the branch diff (engine changes read directly; test, spec, doc, and gate
surfaces swept independently) confirmed the kind-neutral oracle predicate is correct and
fail-closed and found four issues, all fixed:
subject
constnaming this repository's corpus. The catalog intro now states theparameterization contract explicitly, and recipe 9 names its
idline as the parameter — everybody still runs verbatim here, and an absent id returns
{ found: false }rather than failing.pnpm-prefixed lines and then asserted the pnpm prefix — true by construction. It now scans
every shell-fenced line and fails on any bare
sdp/npx sdpinvocation.verifiers.length > 0while the recipe emits rows only for example-declared or enabledbindings; the predicates now mirror each other exactly.
01-–09-) silently never entered thehighest-primary-plan selection; they now do, while letter-suffixed plans stay excluded.
A second polish pass (
4079825) closed the remaining low-severity items and a real usabilityfailure: the source checkout now has a working full-CLI entry (
pnpm --silent sdp --helpvia anew
sdppackage script) and the README documents the exactpnpm exec sdpfailure signature onmacOS (Apple's unrelated
/usr/bin/sdpdemands Xcode); the temporal guard anchors its sweep toits own directory instead of the caller's cwd, and skips tracked file symlinks whose canonical
file is independently enumerated —
CLAUDE.md → AGENTS.mdwas being swept twice on every run.Full thirteen-leg
npm run checkre-run green after the fixes.https://claude.ai/code/session_0158eQyLnKGzNZTPYcTehw5M
Greptile Summary
The PR establishes graph-first self-hosting as the standing delivery practice.
Confidence Score: 5/5
The PR appears safe to merge.
No blocking failure remains, and the recipe portability issue is resolved by explicitly documenting each repository-specific subject parameter and the required adopter substitution.
What T-Rex did
Important Files Changed
Reviews (8): Last reviewed commit: "fix(cli,temporal): give the source check..." | Re-trigger Greptile