[H-5814] Adjustment CLAUDE and AGENTS for lighter context & wider compatibility
🌟 What is the purpose of this PR?
This PR standardizes on "agents" as the generic term for AI coding assistants, with tool-specific names (Claude, Cursor, Augment, Cline, Windsurf) as implementation details. Key changes:
- Renamed CLAUDE.md → AGENTS.md (with a CLAUDE.md symlink for Claude Code compatibility)
-
Introduced
.config/agents/as the canonical home for shared agent configuration, including a rule symlinking system that fans out to tool-specific locations. See.config/agents/README.mdfor contributor guidance. - Extracted domain-specific guidance into Claude Code skills, reducing AGENTS.md from 212 to 81 lines while preserving all guidance in appropriate locations (skills for reusable patterns, CLAUDE.local.md for personal preferences).
🔗 Related links
- Claude Code skills documentation: https://docs.anthropic.com/en/docs/claude-code/skills
🔍 What does this change?
Cross-Agent Rule Symlinking:
-
.config/agents/rules/*.md- Canonical location for shared rules (currently: ark-ui, mastra, panda-css, zod) -
.config/agents/symlink-rules.ts- Script that fans out symlinks to all agent-specific directories -
.config/agents/README.md- Contributor guide for the symlinking system -
package.json- Addedyarn agents:symlink-rulescommand
New Skills Created:
-
.claude/skills/exploring-rust-crates/SKILL.md- Guide for usingcargo docto understand crate APIs and structure (extracted from "Creating Code Context in Rust" section) -
.claude/skills/managing-git-workflow/SKILL.md- Combined skill covering branch naming, PR creation, and PR review procedures (extracted from "Branch Naming Convention", "Pull Request Template", and "PR Review Guide" sections)
Configuration Updates:
-
.claude/skills/skill-rules.json- Added trigger rules for both new skills with keyword and intent pattern matching
AGENTS.md (formerly CLAUDE.md):
- Renamed CLAUDE.md → AGENTS.md for broader AI agent compatibility
- Created symlink CLAUDE.md → AGENTS.md so Claude Code continues to find its config
- Removed sections migrated to skills (Creating Code Context in Rust, Branch Naming Convention, Pull Request Template, PR Review Guide)
- Removed "Critical Thinking and Feedback" section (moved to CLAUDE.local.md as personal preference)
- Retained: Repository Structure and Navigation, Common Commands
Other Changes:
-
.gitignore- Added AGENTS.local.md to ignored files alongside CLAUDE.local.md
Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
- [x] does not modify any publishable blocks or libraries, or modifications do not need publishing
📜 Does this require a change to the docs?
The changes in this PR:
- [x] are internal and do not require a docs change
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
- [x] do not affect the execution graph
⚠️ Known issues
- The custom skill-rules.json system is HASH-specific infrastructure built on Claude Code hooks, not a standard Claude Code feature. Standard skills work via YAML frontmatter descriptions alone.
🐾 Next steps
- Consider creating additional skills for other common patterns (e.g., TypeScript/React patterns, testing conventions)
- Monitor skill activation to refine trigger keywords and intent patterns
- Possibly remove the existing Cursor
mcp.jsonconfig of "file-system-mcp" (Cursor agents access the file system anyway)
🛡 What tests cover this?
- Skill validation passes:
yarn lint:skillconfirms all 6 skills have valid configuration and existing SKILL.md files - Symlink script runs without error:
yarn agents:symlink-rules
❓ How to test this?
- Checkout the branch
- Run
yarn lint:skillto validate skill configuration - Run
yarn agents:symlink-rulesto verify symlinking works (should report "Symlinked N rules to 5 agent configs") - Test skill activation by running prompts that should trigger the new skills:
- "How do I explore a rust crate?" → should suggest
exploring-rust-crates - "Create a branch for H-1234" → should suggest
managing-git-workflow - "Review PR #123" → should suggest
managing-git-workflow
- "How do I explore a rust crate?" → should suggest
- Verify CLAUDE.md symlink works:
cat CLAUDE.mdshould show AGENTS.md content
📹 Demo
N/A - configuration/documentation changes only
Summary of changes to the description
| Section | Change |
|---|---|
| Purpose | Added a paragraph about the cross-agent symlinking system, pointing to the README |
| What does this change? | New "Cross-Agent Rule Symlinking" block listing the 4 new/modified files |
| Next steps | Removed the bullet about symlinking skills to Cursor (now done); kept remaining ideas |
| What tests cover this? | Added yarn agents:symlink-rules as a validation step |
| How to test this? | Added step 3 for running the symlink script |
@TimDiekmann @indietyp I hadn't realized until I made these changes, that there's an extensive custom hook implementation that seems designed to enforce the application of skills! I'm curious to know more about this and how it's been working for you.
There's another project I know, that does some enforcement like this here https://github.com/obra/superpowers/blob/5faddc4087553bdc3c7ee98a83300e844295207e/hooks/session-start.sh#L44-L49
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 58.12%. Comparing base (56c236f) to head (25a054a).
:warning: Report is 4 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #8173 +/- ##
==========================================
- Coverage 58.12% 58.12% -0.01%
==========================================
Files 1176 1176
Lines 110784 110784
Branches 4994 4994
==========================================
- Hits 64398 64396 -2
- Misses 45634 45636 +2
Partials 752 752
| Flag | Coverage Δ | |
|---|---|---|
| local.claude-hooks | 0.00% <ø> (ø) |
|
| rust.harpc-codec | 84.70% <ø> (ø) |
|
| rust.hash-graph-authorization | 62.47% <ø> (ø) |
|
| rust.hash-graph-postgres-store | 25.61% <ø> (ø) |
|
| rust.hash-graph-temporal-versioning | 47.95% <ø> (ø) |
|
| rust.hash-graph-types | 0.00% <ø> (ø) |
|
| rust.hash-graph-validation | 83.45% <ø> (ø) |
|
| rust.hashql-hir | 89.10% <ø> (ø) |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
@lunelson When this PR is ready, let me know, and I'll edit some other in-repo documentation (e.g. .config/_examples/README.md) to reflect.
@lunelson When this PR is ready, let me know, and I'll edit some other in-repo documentation (e.g.
.config/_examples/README.md) to reflect.
Thanks @vilkinsons I've made updates, I think it should be good to go
PR Summary
Standardizes agent configuration around AGENTS.md, adds a canonical rules system symlinked across tools, introduces two new Claude skills, and updates triggers/scripts to support it.
-
Agent docs unification
- Rename/symlink:
CLAUDE.md→AGENTS.md(Claude continues via proxy) - Trimmed/generalized guidance kept in
AGENTS.md
- Rename/symlink:
-
Cross-agent rules (single source of truth)
- Add canonical rules in
.config/agents/rules/{ark-ui,mastra,panda-css,zod}.md - New README at
.config/agents/README.mddetailing workflow and quoting requirements - New symlink script:
libs/@local/repo-chores/node/scripts/symlink-agent-rules.ts - Package script:
yarn agents:symlink-rules - Symlinked targets created in:
.cursor/rules/*,.augment/rules/*,.claude/skills/*/SKILL.md,.codex/skills/*/SKILL.md,.clinerules/*,.windsurf/rules/*
- Add canonical rules in
-
Claude skills
- Add
exploring-rust-cratesandmanaging-git-workflowwith content - Update
.claude/skills/skill-rules.jsonwith trigger rules
- Add
-
Misc config
-
.config/_examples/README.md: referenceAGENTS.mdand.config/agents -
.gitignore: addAGENTS.local.mdand consolidate comments - Add
.augmentignore
-
Written by Cursor Bugbot for commit 25a054a8a6e8b408e05b3fa70d963fd05eca99b2. This will update automatically on new commits. Configure here.
Benchmark results
@rust/hash-graph-benches – Integrations
policy_resolution_large
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| resolve_policies_for_actor | user: empty, selectivity: high, policies: 2002 | $$27.0 \mathrm{ms} \pm 202 \mathrm{μs}\left({\color{lightgreen}-8.671 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: empty, selectivity: low, policies: 1 | $$3.22 \mathrm{ms} \pm 16.4 \mathrm{μs}\left({\color{gray}-0.697 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: empty, selectivity: medium, policies: 1001 | $$12.0 \mathrm{ms} \pm 68.8 \mathrm{μs}\left({\color{gray}-0.408 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: seeded, selectivity: high, policies: 3314 | $$41.5 \mathrm{ms} \pm 294 \mathrm{μs}\left({\color{gray}-0.586 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: seeded, selectivity: low, policies: 1 | $$13.7 \mathrm{ms} \pm 98.7 \mathrm{μs}\left({\color{gray}1.43 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: seeded, selectivity: medium, policies: 1526 | $$23.3 \mathrm{ms} \pm 140 \mathrm{μs}\left({\color{gray}-0.092 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: high, policies: 2078 | $$26.8 \mathrm{ms} \pm 167 \mathrm{μs}\left({\color{lightgreen}-38.849 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: low, policies: 1 | $$3.60 \mathrm{ms} \pm 16.5 \mathrm{μs}\left({\color{lightgreen}-81.814 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: medium, policies: 1033 | $$11.1 \mathrm{ms} \pm 73.1 \mathrm{μs}\left({\color{lightgreen}-63.661 \mathrm{\%}}\right) $$ | Flame Graph |
policy_resolution_medium
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| resolve_policies_for_actor | user: empty, selectivity: high, policies: 102 | $$3.59 \mathrm{ms} \pm 17.0 \mathrm{μs}\left({\color{gray}0.004 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: empty, selectivity: low, policies: 1 | $$2.78 \mathrm{ms} \pm 12.5 \mathrm{μs}\left({\color{gray}-0.458 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: empty, selectivity: medium, policies: 51 | $$3.13 \mathrm{ms} \pm 14.4 \mathrm{μs}\left({\color{gray}-0.019 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: seeded, selectivity: high, policies: 269 | $$4.93 \mathrm{ms} \pm 26.0 \mathrm{μs}\left({\color{gray}-0.629 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: seeded, selectivity: low, policies: 1 | $$3.36 \mathrm{ms} \pm 15.5 \mathrm{μs}\left({\color{gray}0.126 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: seeded, selectivity: medium, policies: 107 | $$3.90 \mathrm{ms} \pm 17.7 \mathrm{μs}\left({\color{gray}0.579 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: high, policies: 133 | $$4.23 \mathrm{ms} \pm 24.9 \mathrm{μs}\left({\color{gray}-0.293 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: low, policies: 1 | $$3.26 \mathrm{ms} \pm 15.3 \mathrm{μs}\left({\color{gray}0.508 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: medium, policies: 63 | $$3.79 \mathrm{ms} \pm 17.5 \mathrm{μs}\left({\color{gray}-1.431 \mathrm{\%}}\right) $$ | Flame Graph |
policy_resolution_none
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| resolve_policies_for_actor | user: empty, selectivity: high, policies: 2 | $$2.53 \mathrm{ms} \pm 9.58 \mathrm{μs}\left({\color{red}8.42 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: empty, selectivity: low, policies: 1 | $$2.47 \mathrm{ms} \pm 11.6 \mathrm{μs}\left({\color{red}7.44 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: empty, selectivity: medium, policies: 1 | $$2.57 \mathrm{ms} \pm 12.1 \mathrm{μs}\left({\color{red}8.07 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: high, policies: 8 | $$2.74 \mathrm{ms} \pm 11.2 \mathrm{μs}\left({\color{red}5.76 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: low, policies: 1 | $$2.65 \mathrm{ms} \pm 11.3 \mathrm{μs}\left({\color{red}6.81 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: medium, policies: 3 | $$2.83 \mathrm{ms} \pm 12.2 \mathrm{μs}\left({\color{red}5.88 \mathrm{\%}}\right) $$ | Flame Graph |
policy_resolution_small
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| resolve_policies_for_actor | user: empty, selectivity: high, policies: 52 | $$2.81 \mathrm{ms} \pm 12.4 \mathrm{μs}\left({\color{gray}1.23 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: empty, selectivity: low, policies: 1 | $$2.55 \mathrm{ms} \pm 17.2 \mathrm{μs}\left({\color{red}6.06 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: empty, selectivity: medium, policies: 25 | $$2.69 \mathrm{ms} \pm 9.84 \mathrm{μs}\left({\color{gray}4.64 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: seeded, selectivity: high, policies: 94 | $$3.17 \mathrm{ms} \pm 13.2 \mathrm{μs}\left({\color{gray}2.53 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: seeded, selectivity: low, policies: 1 | $$2.75 \mathrm{ms} \pm 11.8 \mathrm{μs}\left({\color{gray}4.50 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: seeded, selectivity: medium, policies: 26 | $$2.97 \mathrm{ms} \pm 14.4 \mathrm{μs}\left({\color{gray}3.84 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: high, policies: 66 | $$3.08 \mathrm{ms} \pm 13.5 \mathrm{μs}\left({\color{gray}3.49 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: low, policies: 1 | $$2.72 \mathrm{ms} \pm 10.6 \mathrm{μs}\left({\color{gray}4.50 \mathrm{\%}}\right) $$ | Flame Graph |
| resolve_policies_for_actor | user: system, selectivity: medium, policies: 29 | $$3.01 \mathrm{ms} \pm 18.7 \mathrm{μs}\left({\color{red}6.05 \mathrm{\%}}\right) $$ | Flame Graph |
read_scaling_complete
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| entity_by_id;one_depth | 1 entities | $$38.2 \mathrm{ms} \pm 162 \mathrm{μs}\left({\color{gray}-0.235 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;one_depth | 10 entities | $$75.6 \mathrm{ms} \pm 375 \mathrm{μs}\left({\color{gray}0.135 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;one_depth | 25 entities | $$43.1 \mathrm{ms} \pm 207 \mathrm{μs}\left({\color{gray}3.26 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;one_depth | 5 entities | $$45.1 \mathrm{ms} \pm 221 \mathrm{μs}\left({\color{gray}1.29 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;one_depth | 50 entities | $$53.1 \mathrm{ms} \pm 286 \mathrm{μs}\left({\color{gray}0.361 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;two_depth | 1 entities | $$39.6 \mathrm{ms} \pm 199 \mathrm{μs}\left({\color{gray}1.15 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;two_depth | 10 entities | $$418 \mathrm{ms} \pm 722 \mathrm{μs}\left({\color{gray}0.931 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;two_depth | 25 entities | $$92.8 \mathrm{ms} \pm 403 \mathrm{μs}\left({\color{gray}0.321 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;two_depth | 5 entities | $$84.4 \mathrm{ms} \pm 380 \mathrm{μs}\left({\color{gray}0.955 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;two_depth | 50 entities | $$278 \mathrm{ms} \pm 709 \mathrm{μs}\left({\color{gray}1.10 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;zero_depth | 1 entities | $$14.6 \mathrm{ms} \pm 59.0 \mathrm{μs}\left({\color{gray}2.28 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;zero_depth | 10 entities | $$14.7 \mathrm{ms} \pm 68.8 \mathrm{μs}\left({\color{gray}1.11 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;zero_depth | 25 entities | $$15.0 \mathrm{ms} \pm 90.5 \mathrm{μs}\left({\color{gray}2.42 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;zero_depth | 5 entities | $$14.5 \mathrm{ms} \pm 57.2 \mathrm{μs}\left({\color{gray}1.14 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id;zero_depth | 50 entities | $$17.4 \mathrm{ms} \pm 96.9 \mathrm{μs}\left({\color{gray}0.258 \mathrm{\%}}\right) $$ | Flame Graph |
read_scaling_linkless
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| entity_by_id | 1 entities | $$14.2 \mathrm{ms} \pm 61.1 \mathrm{μs}\left({\color{gray}-1.153 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | 10 entities | $$14.5 \mathrm{ms} \pm 67.7 \mathrm{μs}\left({\color{gray}1.48 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | 100 entities | $$14.5 \mathrm{ms} \pm 76.1 \mathrm{μs}\left({\color{gray}1.97 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | 1000 entities | $$14.9 \mathrm{ms} \pm 69.3 \mathrm{μs}\left({\color{gray}1.29 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | 10000 entities | $$22.0 \mathrm{ms} \pm 166 \mathrm{μs}\left({\color{gray}-0.244 \mathrm{\%}}\right) $$ | Flame Graph |
representative_read_entity
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/block/v/1 |
$$29.4 \mathrm{ms} \pm 284 \mathrm{μs}\left({\color{gray}3.68 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/book/v/1 |
$$28.7 \mathrm{ms} \pm 316 \mathrm{μs}\left({\color{gray}0.764 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/building/v/1 |
$$29.5 \mathrm{ms} \pm 314 \mathrm{μs}\left({\color{gray}4.06 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/organization/v/1 |
$$28.7 \mathrm{ms} \pm 255 \mathrm{μs}\left({\color{gray}-2.105 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/page/v/2 |
$$28.9 \mathrm{ms} \pm 284 \mathrm{μs}\left({\color{gray}0.638 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/person/v/1 |
$$29.5 \mathrm{ms} \pm 262 \mathrm{μs}\left({\color{gray}-0.090 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/playlist/v/1 |
$$29.3 \mathrm{ms} \pm 275 \mathrm{μs}\left({\color{gray}0.881 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/song/v/1 |
$$29.2 \mathrm{ms} \pm 275 \mathrm{μs}\left({\color{gray}0.758 \mathrm{\%}}\right) $$ | Flame Graph |
| entity_by_id | entity type ID: https://blockprotocol.org/@alice/types/entity-type/uk-address/v/1 |
$$29.1 \mathrm{ms} \pm 259 \mathrm{μs}\left({\color{gray}0.496 \mathrm{\%}}\right) $$ | Flame Graph |
representative_read_entity_type
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| get_entity_type_by_id | Account ID: bf5a9ef5-dc3b-43cf-a291-6210c0321eba |
$$7.91 \mathrm{ms} \pm 35.3 \mathrm{μs}\left({\color{gray}1.00 \mathrm{\%}}\right) $$ | Flame Graph |
representative_read_multiple_entities
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| entity_by_property | traversal_paths=0 | 0 | $$45.1 \mathrm{ms} \pm 272 \mathrm{μs}\left({\color{gray}0.351 \mathrm{\%}}\right) $$ |
| entity_by_property | traversal_paths=255 | 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true | $$92.4 \mathrm{ms} \pm 448 \mathrm{μs}\left({\color{gray}0.774 \mathrm{\%}}\right) $$ |
| entity_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false | $$51.0 \mathrm{ms} \pm 253 \mathrm{μs}\left({\color{gray}0.720 \mathrm{\%}}\right) $$ |
| entity_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true | $$59.3 \mathrm{ms} \pm 346 \mathrm{μs}\left({\color{gray}0.404 \mathrm{\%}}\right) $$ |
| entity_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true | $$67.0 \mathrm{ms} \pm 309 \mathrm{μs}\left({\color{gray}-0.278 \mathrm{\%}}\right) $$ |
| entity_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true | $$73.3 \mathrm{ms} \pm 400 \mathrm{μs}\left({\color{gray}-0.597 \mathrm{\%}}\right) $$ |
| link_by_source_by_property | traversal_paths=0 | 0 | $$48.8 \mathrm{ms} \pm 225 \mathrm{μs}\left({\color{gray}1.08 \mathrm{\%}}\right) $$ |
| link_by_source_by_property | traversal_paths=255 | 1,resolve_depths=inherit:1;values:255;properties:255;links:127;link_dests:126;type:true | $$75.7 \mathrm{ms} \pm 394 \mathrm{μs}\left({\color{gray}0.833 \mathrm{\%}}\right) $$ |
| link_by_source_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:0;links:0;link_dests:0;type:false | $$55.5 \mathrm{ms} \pm 356 \mathrm{μs}\left({\color{gray}0.856 \mathrm{\%}}\right) $$ |
| link_by_source_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:0;links:1;link_dests:0;type:true | $$62.8 \mathrm{ms} \pm 316 \mathrm{μs}\left({\color{gray}-0.114 \mathrm{\%}}\right) $$ |
| link_by_source_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:0;properties:2;links:1;link_dests:0;type:true | $$65.0 \mathrm{ms} \pm 381 \mathrm{μs}\left({\color{gray}0.153 \mathrm{\%}}\right) $$ |
| link_by_source_by_property | traversal_paths=2 | 1,resolve_depths=inherit:0;values:2;properties:2;links:1;link_dests:0;type:true | $$65.1 \mathrm{ms} \pm 332 \mathrm{μs}\left({\color{gray}-0.407 \mathrm{\%}}\right) $$ |
scenarios
| Function | Value | Mean | Flame graphs |
|---|---|---|---|
| full_test | query-limited | $$139 \mathrm{ms} \pm 632 \mathrm{μs}\left({\color{gray}-2.008 \mathrm{\%}}\right) $$ | Flame Graph |
| full_test | query-unlimited | $$136 \mathrm{ms} \pm 545 \mathrm{μs}\left({\color{gray}-1.116 \mathrm{\%}}\right) $$ | Flame Graph |
| linked_queries | query-limited | $$39.7 \mathrm{ms} \pm 214 \mathrm{μs}\left({\color{lightgreen}-61.782 \mathrm{\%}}\right) $$ | Flame Graph |
| linked_queries | query-unlimited | $$572 \mathrm{ms} \pm 1.21 \mathrm{ms}\left({\color{gray}2.12 \mathrm{\%}}\right) $$ | Flame Graph |