Report graphify 0.9.102 query defects upstream #1567
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1567
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Graphify 0.9.102 query code makes the cc-os 10-question set score 3 of 10. The diagnosis found four behaviors in
serve.pythat cost seed slots or matches. One is a certain defect. The others may be design choices. The owner of graphify must decide, so this ticket sorts them and reports the defects upstream.Evidence: /tmp/claude-1000/-home-jared-Documents-SecondBrain/b10276a0-3582-48b5-b0fe-f13795bdcc75/scratchpad/graphify-diagnosis-evidence.md and /tmp/claude-1000/-home-jared-Documents-SecondBrain/b10276a0-3582-48b5-b0fe-f13795bdcc75/scratchpad/vault-graph-weak-retrieval-evidence.md (copied below; do not depend on the paths).
Observed
Installed path:
~/.local/share/uv/tools/graphifyy/lib/python3.12/site-packages/graphify/. Query is token match on label, source_file path, and rationale. It is not embedding-based.serve.py:835-935_pick_seedsde-duplicates seeds by label (_seed_label_key, #1766). Two different nodes with one label count as one. In question 4 the os-adrPreToolUseclass ranked 2nd (501.18 against 501.46) and was dropped, because the os hook class has the same label "PreToolUse". Result: wrong plugin returned.serve.py:317-336,339-342). "ensures" does not match "ensure"; "labels" does match. Queryensure_labelsreturns 0 nodes, because_splits the query into tokens while the label isensure_labels.rb.serve.py:835-935).max_k=3, and selection stops below 20% of the top score. A per-term guaranteed seed is then added with no cap (3 to 7 seeds seen). In questions 2, 3, 5, 6 and 7 the expected node is in the graph and scored (rank 2, 70, 4, 44 and 6) but is never a seed. For example question 3 ranks 70 with score 10.0 against a top of 161.2.serve.py:564-587_query_path_weight). Weight 0.3 for tests, nodes with no source_file, document nodes, and files ending.md .rst .txt .yml .yaml .toml .cfg .ini .jsonor under doc/docs/example/examples, unless the question has test, doc, docs, documentation or readme. Every SKILL.md node and heading is scored x0.3. Question 7 still fails with "docs" (expected rank 6, score 130 against 305).Rewrites with bare class or label names pass 5 of 7 failed questions (Q2 to Q6): "EnsureLabels", "GlobFiles", "CopCheck", "adr PreToolUse". Q7 and Q10 do not pass. Measurement only; not a fix.
Reproduce
The output holds
plugins/os/lib/os_hooks/pre_tool_use.rband notplugins/os-adr/lib/adr/pre_tool_use.rb.Approach
Rule on each behavior: defect or design choice. Item 1 is a defect. Report each defect upstream with its evidence and the reproduction above. Record each design choice and the reason on this ticket, and do not report it as a bug. Use a workaround in cc-os only when the ruling says so.
Required work: none beyond the acceptance criteria.
Orchestrator work: file the upstream reports on the graphify tracker. Record the report links and the rulings on this ticket.
Acceptance criteria
Non-goals
Patching graphify locally. Changing cc-os configuration (see the .graphifyignore ticket).
Origin
Resolution
Done: Tested six graphify behaviors with minimal repros on 0.9.102, the latest release. Ruled one a defect and reported it upstream. Ruled four design choices. Held one as not reportable.
Evidence: Upstream issue: https://github.com/Graphify-Labs/graphify/issues/5027. Rulings: A same-label seed drop is a defect. B no stemming, C seed cap, D Markdown weight, F directed path default are design choices. E stale ast_hash rows reproduce only with a hand-edited graph.json, so the cause is unproved. Repro output confirmed: grep count 0.
Follow-ups: none: E stays recorded on #1566