Skip to content

feat(readiness): bridge knowledge index to agent-eval#1

Merged
drewstone merged 3 commits into
mainfrom
feat/builder-feedback-fixes
May 3, 2026
Merged

feat(readiness): bridge knowledge index to agent-eval#1
drewstone merged 3 commits into
mainfrom
feat/builder-feedback-fixes

Conversation

@drewstone

Copy link
Copy Markdown
Contributor

Summary

  • Add eval-readiness bridge from agent-knowledge search/index results to agent-eval knowledge readiness contracts
  • Export the bridge and document how consumers build KnowledgeBundle/readiness reports
  • Bump package to 1.1.0 and depend on agent-eval ^0.20.0

Verification

  • pnpm test
  • pnpm typecheck
  • pnpm build

Published: @tangle-network/agent-knowledge@1.1.0

drewstone added 3 commits May 3, 2026 11:17
initKnowledgeBase writes knowledge/index.md and knowledge/log.md as
human-navigation scaffolds, but loadKnowledgePages was returning them as
content pages. That inflated index.pages.length, polluted search hits,
and forced downstream consumers to delete or special-case them post-init.

Centralize the scaffold predicate as isScaffoldPath / SCAFFOLD_PAGE_BASENAMES
in store.ts and filter scaffolds at page-load time. lint, validate, and viz
already skipped these paths via local predicates; this makes the rule
authoritative and applies it at the source. Subdirectory scaffolds
(<dir>/index.md, <dir>/log.md) are treated the same way.

Add a regression test pinning post-init pageCount = 0 and confirming
search results never surface scaffold paths.
Raw RRF scores from searchKnowledge are mathematically meaningful for
ordering but read as "no relevance" to humans (typical absolute values
~0.016). Downstream consumers compared them to natural [0, 1] thresholds
and got false negatives.

Add two new fields to KnowledgeSearchResult, non-breaking:
- `rrfScore` — alias of `score`, the raw reciprocal-rank-fusion value.
- `normalizedScore` — `score / topScore` for the result set, so the top
  hit is always 1 and lower-ranked hits scale linearly into [0, 1].

`score` keeps its existing meaning (raw RRF) for backward compatibility.
The normalization is explicitly within-set, not a cross-query absolute
confidence — documented in the type, README, and a test that pins
score === rrfScore, top.normalizedScore === 1, and the linear relationship.
@drewstone drewstone merged commit 177dada into main May 3, 2026
@drewstone drewstone deleted the feat/builder-feedback-fixes branch May 8, 2026 23:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant