robotaitai/project-bedrock/ontology-inference
Claude Code and agent skill by robotaitai/project-bedrock
- community
Checking that the SKILL.md file is still in the repository.
Infer a project's natural ontology from the actual repo. Use when determining what memory branches to create, how to name them, and how to decompose the project into focused domains.
Install
npx vskill@latest install robotaitai/project-bedrock/ontology-inferenceSKILL.md
Ontology Inference
The bedrock system never imposes a fixed ontology. Branch names and structure must be inferred from the real project, not from templates or generic categories.
This skill covers the inference process: how to read a repo and determine its natural decomposition into memory branches.
For running the bootstrap script, see project-ontology-bootstrap. For writing the resulting notes, see project-memory-writing.
Core principle
Use the project's own terminology. Branch names should sound like things this project's developers would naturally say in a standup. Not "architecture" or "conventions" -- those are generic catch-all names that hide structure.
Good branch names (from real projects):
perception,navigation,localization,safety(robotics)auth,billing,notifications,search(web app)training,inference,data-pipeline,evaluation(ML platform)cli,packaging,runtime,testing(developer tool)
Bad branch names to avoid:
architecture-- too generic, lumps unrelated concernsconventions-- usually belongs inside specific branchesoverview-- that's what MEMORY.md ismisc-- if it's misc, it doesn't belong in memory yet
Inference signals to read
Read these signals before deciding on branches:
Manifests and package files
What: tech stack, dependencies, declared modules/packages Branch signals: what frameworks, what services, what subsystems are named here?
Directory structure (top 2 levels)
What: how the developers decomposed the code Branch signals: folder names that recur across src/, packages/, services/, apps/ are often natural branches
Docs and READMEs
What: the project's own description of itself Branch signals: section headers in README.md often map directly to branches
CI/CD configuration
What: what jobs/stages exist; what is tested; what is deployed Branch signals: job names, build targets, test suites
Test structure
What: what areas have significant test coverage Branch signals: test directory names often mirror functional domains
Decision rules
One branch per functional domain
A functional domain is a coherent cluster of related code, config, and decisions that a developer would naturally think about as one "thing".
Heuristics:
- If a developer would say "that's a [X] problem", X is probably a branch
- If a folder name appears in commit messages, it is probably a branch
- If it has its own config file, it is probably a branch
Size check
Start with 2-5 branches. More branches = more maintenance. Only create a branch if:
- There are at least 3 verified facts that belong to it
- It has its own decisions or gotchas
- It is distinct enough that cross-referencing would be confusing
Flat vs folder
- Flat (
stack.md): when the topic is simple enough to fit in ~60 lines - Folder (
auth/auth.md+ subtopics): when the topic has 2+ distinct subtopics that warrant their own notes
Do not pre-create folders "just in case". Promote to folder only when justified.
Example inference: Python CLI tool
Signals observed:
src/tool/cli.py(click-based CLI)src/tool/runtime/(several runtime modules)assets/scripts/(bundled bash scripts)assets/templates/(project templates)tests/test_cli.py,tests/test_packaging.pypyproject.tomlwith hatchling build
Inferred branches:
Not created (yet):
architecture.md-- redundant; cli/packaging/runtime already cover itconventions.md-- put conventions inside the relevant branch notes
Example inference: web app with monorepo
Signals observed:
pnpm-workspace.yaml,packages/directorypackages/api/,packages/web/,packages/worker/packages/api/src/auth/,packages/api/src/billing/,packages/api/src/search/- Stripe imports in billing, JWT in auth
- GitHub Actions: test, build-web, build-api, deploy-api, deploy-web
Inferred branches:
Anti-patterns
Creating branches for obvious things: if something is clear from reading the repo's own README, it does not need a memory branch. Memory is for things that are NOT obvious.
Premature folder creation: a branch with one note does not need a folder. Promote when it grows.
Overfit to current task: do not create branches for the current task only. Memory branches should be stable across many sessions.
Copying README structure: the README structure and the memory branch structure are often different. READMEs are user-facing docs; memory branches are agent-facing operational knowledge.
Output
After inference, create the branch notes and update MEMORY.md:
Then follow project-memory-writing to populate each branch note.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingassets/skills/ontology-inference/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/robotaitai/project-bedrock/ontology-inference)