Verify gochickpeas engine/gql changes

VerifiedCaution

End-to-end parity gate against real LDBC data plus a public-API sample drive for gochickpeas engine/gql changes.

Sby Skills Guide Bot
TestingAdvanced
7/22/2026
Claude CodeCursorCodex
#parity-testing#golden-plans#graph-query-engine#go#benchmarking

Recommended for

Automated summary

Verifies gochickpeas engine/gql changes end-to-end using a real-LDBC-data parity gate plus a hands-on drive of the public API.

Strengths

  • Parity gate over the full parse → plan → exec pipeline with pinned row hashes on SF1/FinBench SF10 exports (~26M rels)
  • The plan-shape golden catches planner-quality regressions that row parity cannot see
  • The -cached-parity option exercises the auto-parameterized PlanCache path and exposes literal-vs-cached-plan divergence
  • Provides a concrete shared-box lock protocol and an ABBA methodology for noisy timing comparisons

Limitations

  • Assumes specific local paths (LDBC exports, repo root) and taskman tooling tied to this environment
  • The full gate loads ~26M rels, takes several minutes, and needs an exclusive machine lock
  • Its guidance on measurement noise and alloc counts is machine-specific rather than general
When to use it

Use it before committing a nontrivial engine or gql change, especially one touching the planner or recognizer.

When not to use it

Avoid it for documentation-only or trivial changes, or when the LDBC data and machine lock are unavailable.

Security analysis

Caution
Quality score84/100

The skill is a developer verification runbook. It issues ordinary Go build/test/benchmark and lock-manager commands against a local repository and dataset, with no destructive, exfiltrating, or obfuscated actions and no instruction to bypass safety. It is classified caution only because it drives local shell/compilation tooling (including running repo code) for legitimate purposes.

Findings
  • •Runs local shell operations (`go run ./cmd/gqlbench`, `go build ./...`, `go test ./...`, `taskman lock run`) that compile and execute code from the target repo — powerful tooling but legitimate for verification.
  • •Depends on the agent having bash/terminal access; no `allowed-tools` are declared, so the skill itself does not constrain which tools the agent may use.
  • •Contains developer-specific absolute paths (`/Users/efreeman/gochickpeas`, `~/rustychickpeas-ldbc/...`), which is not a security issue but assumes a specific machine layout.
  • •Heavy invocation loads ~26M relations and runs multi-core builds/tests; resource contention is acknowledged and gated via the shared-box lock, not a risk to the host.
  • •No exfiltration, no curl|sh, no `rm -rf`, no base64/obfuscated payloads, no safety-disabling instructions.
How this analysis is made

Examples

Verify a planner change
I changed the planner's VarExpand pushdown logic in gochickpeas. Run the full verification: parity gate with -cached-parity and -plans-golden, and tell me whether the plan-shape golden drifted.
Drive the public API
Set up a scratchpad module with a replace directive to /Users/efreeman/gochickpeas, build a small graph with chickpeas.NewBuilder, then run a few gql.Run queries and check gql.Explain output for the [mono ...] pushdown marker.
A/B a hot path safely
Compare allocations before and after my recognizer change using gqlbench profiles, and if we need timing run the whole ABBA comparison inside one taskman lock run local-cpu session with -max-load 2.

name: verify description: Verify gochickpeas engine/gql changes end-to-end -- parity gate against real LDBC data plus a public-API sample drive.

Verifying gochickpeas changes

The surface is the library's public API. Two handles, use both for nontrivial engine/gql changes:

1. Parity gate (real data, full pipeline)

go run ./cmd/gqlbench -manifest ~/rustychickpeas-ldbc/viz/data/gql_variants.tsv \
  -verify-only -cached-parity \
  -plans-golden cmd/gqlbench/testdata/plans_golden.txt

Expect 89/89 MATCH, 0 DIFF, 0 SKIP, plus plan-shape golden: 89 queries unchanged. This drives parse -> plan -> exec over SF1/FinBench SF10 exports with pinned row hashes. Loads ~26M rels; takes a few minutes. Never emit (-verify-only) from a dirty tree -- the append-only bench-out protocol stamps engineCommit.

  • -cached-parity also checks the auto-parameterized PlanCache path against the same reference hashes (catches literal-vs-cached-plan divergence).

  • -plans-golden guards plan QUALITY, which row parity cannot see: a planner change that stays correct still moves the plan, and drift here fails the run. For an INTENTIONAL planner change, review the drift, then regenerate the golden with -plans-golden-capture and commit it in the same change. Do a planner change WITHOUT this and a regression that stays row-correct lands invisibly.

  • Run heavy invocations under the shared-box lock -- and not just the gate: full builds, full test runs, fuzz runs, and benchmarks are exactly the multi-core work that lands on top of an ldbc sweep mid-measurement.

    taskman lock run -ttl 20m -wait 30m -reason "<what>" local-cpu -- go build ./...
    taskman lock run -ttl 20m -wait 30m -reason "<what>" local-cpu -- go test ./...
    

    Incremental builds, go vet, and editor-driven builds are fine unlocked. A non-zero exit from lock run means another session holds the box: wait or do unrelated work -- never run the job anyway.

2. Sample drive through the public export

Scratchpad module with a replace directive resolves the local repo:

module verifydrive
require github.com/freeeve/gochickpeas v0.0.0
replace github.com/freeeve/gochickpeas => /Users/efreeman/gochickpeas

Build a small graph with chickpeas.NewBuilder (AddNode/SetProp/AddRel/ SetRelPropAt, then Finalize("name")), run queries with gql.Run, and inspect plans with gql.Explain (e.g. grep the [mono ...] marker on VarExpand lines to see whether a pushdown fired). Probe near-miss phrasings and malformed input; errors should be clean plan/bind errors.

Gotchas:

  • Timing on this machine is very noisy; alloc counts (gqlbench profiles output) are the most trustworthy A/B signal. For timing A/Bs, run the whole comparison inside ONE taskman lock run local-cpu session in ABBA order (new-old-old-new): interleaving alone does not cancel a load trend, only ABBA does. A run whose TIMING is the product must also pass -max-load 2 and must not publish on a non-zero exit.
  • gqlbench must run from the repo root (HeadStamp shells to git); point -out/-plans-out/-profiles-out at the scratchpad.
  • 45s of go test ./gql -fuzz FuzzQuery -fuzztime 45s is cheap insurance after recognizer/planner changes.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/verify-gochickpeas-engine-gql-changes-mrwak9i9/download' --output '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md.part' && mv '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md.part' '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md' && test -s '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/verify' && cp -R '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9' '.claude/skills/verify'

Cursor
test -f '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md' && test -s '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/verify' && cp -R '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9' '.cursor/skills/verify'

Codex
test -f '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md' && test -s '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/verify' && cp -R '.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9' '.agents/skills/verify'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9'

openskills read 'verify-gochickpeas-engine-gql-changes-mrwak9i9'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/verify-gochickpeas-engine-gql-changes-mrwak9i9/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills