Overview
HoxCore is a foundational, Git-inspired project registry and initialization system designed to manage any kind of human endeavor, not only software projects. Its core purpose is to provide a single, authoritative source of truth for projects and related activities, expressed through immutable, version-controlled metadata and declarative automation.
π‘ Key Philosophy
HoxCore treats project management like Git treats source code: with immutability, version control, and a clear separation between data and operations. Every change is tracked, every entity has a unique identity, and the entire system is designed to be both human-readable and machine-intelligible.
What Makes HoxCore Different?
- Universal Scope: Not limited to softwareβmanage academic research, business initiatives, creative projects, and more
- Declarative First: No executable scripts, only pure YAML definitions
- Git-Native: Built on Git's proven model of immutability and version control
- LLM-Ready: Designed for AI integration from the ground up
- Integration-Focused: Connects with existing tools rather than replacing them
Entity Types
HoxCore manages four fundamental entity types, each representing a different kind of human endeavor:
Program
An abstract container grouping related initiatives
Characteristics:
- Strategic or thematic grouping
- Contains multiple projects, missions, or actions
- Long-term or ongoing
- Portfolio-level management
Examples:
- Digital Transformation Initiative
- Research Program in AI Ethics
- Product Line Development
Project
An object-like effort with concrete outputs
Characteristics:
- Defined scope and deliverables
- Clear completion criteria
- Tangible outputs or artifacts
- Time-bound with start and end dates
Examples:
- Building a CLI Tool
- Writing a Research Paper
- Developing a Mobile App
Mission
An event-like or execution-oriented effort with clear culmination
Characteristics:
- Event-driven or campaign-like
- Specific goal or milestone
- Culminates in a specific outcome
- Often time-critical
Examples:
- Product Launch Campaign
- Conference Organization
- Field Research Expedition
Action
An ongoing or recurring activity without a defined end
Characteristics:
- Continuous or recurring
- No defined completion date
- Process or operational focus
- Maintenance or support activities
Examples:
- Weekly Team Meetings
- System Maintenance
- Community Management
π‘ Unified Definition
All entity types share a single unified YAML definition. They differ only by metadata fields such as type, category, and relationships. This design keeps the system simple while remaining flexible.
Registry Model
The registry is the heart of HoxCoreβa dedicated Git repository containing only metadata (YAML files).
Registry Structure
my-registry/
βββ .git/ # Git repository
βββ config.yml # Registry configuration
βββ programs/ # Program definitions
β βββ prog_abc123.yml
β βββ prog_def456.yml
βββ projects/ # Project definitions
β βββ proj_ghi789.yml
β βββ proj_jkl012.yml
βββ missions/ # Mission definitions
β βββ miss_mno345.yml
βββ actions/ # Action definitions
β βββ act_pqr678.yml
βββ templates/ # Custom templates
β βββ my-template/
βββ .hxc/ # Internal HoxCore data
βββ index.db # Entity index
Key Characteristics
- Git-Based: Every registry is a Git repository, providing version control, history, and collaboration
- Metadata Only: Contains only YAML definitions, no executable code or large binary files
- Indexed: Fast querying through an internal index database
- Scalable: Designed to handle thousands of entities efficiently
- Portable: Can be cloned, forked, and shared like any Git repository
Registry Configuration
The config.yml file defines registry-wide settings:
registry:
name: my-registry
version: 0.1.0
created: 2024-01-01T00:00:00Z
description: "My project registry"
settings:
default_category: general
auto_commit: true
index_on_change: true
uid_prefix: custom
integrations:
github:
enabled: true
default_org: myorg
azure_devops:
enabled: false
β οΈ Registry Integrity
The registry should contain only metadata. Large files, binaries, or executable code should be stored in external repositories and referenced via URLs or paths in the entity definitions.
Entity Definition
Every entity in HoxCore is defined by a YAML file with a standardized structure:
Complete Entity Schema
# --- Basic Metadata ---
type: project # One of: program, project, mission, action
id: P-001 # Optional: user-defined ID
uid: proj_abc123def456 # Auto-generated by HoxCore
title: "Example Project" # Human-readable title
description: > # Optional: purpose or summary
This project builds an AI-integrated CLI for managing
modular registries.
# --- Status & Lifecycle ---
status: active # Options: active, completed, on-hold, canceled
start_date: 2024-01-01 # Optional
due_date: 2024-04-01 # Optional
completion_date: null # Optional
duration_estimate: 90d # e.g., 90d, 3w, 6m
# --- Classification & Hierarchy ---
category: software.dev/cli-tool.default
tags: [cli, ai, registry, tools]
parent: prog_xyz789 # Optional parent UID
children: [] # Optional list of child UIDs
related: [] # Optional list of related UIDs
# --- Git & Version Control Integrations ---
repositories:
- name: github
url: https://github.com/user/repo
- name: overleaf
url: https://www.overleaf.com/project/123abc
- name: local-repo
path: ./repos/example
# --- Storage Integrations ---
storage:
- name: gdrive
provider: google-drive
url: https://drive.google.com/drive/folders/example
- name: notion
provider: notion
url: https://notion.so/workspace/docs
# --- Database Integrations ---
databases:
- name: local-sqlite
type: sqlite
path: ./data/example.db
- name: remote-postgres
type: postgres
url: postgres://user:pass@host:5432/dbname
# --- Project Management Tools ---
tools:
- name: azure-devops
provider: azure
url: https://dev.azure.com/org/project
- name: github-projects
provider: github
url: https://github.com/user/repo/projects/1
# --- LLM Models & Knowledge Bases ---
models:
- id: assistant
provider: openwebui
url: http://openwebui.local/?models=assistant
knowledge_bases:
- id: kb-registry-specs
url: http://openwebui.local/workspace/knowledge/5f0f9cc7...
# --- Template for Scaffolding ---
template: software.dev/cli-tool.default
Field Descriptions
| Field | Type | Required | Description |
|---|---|---|---|
type |
string | Yes | Entity type: program, project, mission, or action |
uid |
string | Auto | Immutable system-generated unique identifier |
id |
string | No | Optional human-defined identifier (editable) |
title |
string | Yes | Human-readable title |
description |
string | No | Detailed description for humans and LLMs |
status |
enum | Yes | Current status: active, completed, on-hold, canceled |
category |
string | No | Hierarchical category with optional template variant |
tags |
array | No | Searchable keywords for subjective meaning |
parent |
string | No | UID of parent entity |
children |
array | No | List of child entity UIDs |
related |
array | No | List of related entity UIDs |
Identification System
HoxCore uses a dual identification system to balance machine efficiency with human usability:
UID (Unique Identifier)
System-Generated, Immutable
Every entity receives a unique, immutable UID upon creation:
- Format:
type_randomstring(e.g.,proj_abc123def456) - Immutable: Cannot be changed after creation
- Unique: Guaranteed to be unique across the registry
- Machine-Friendly: Optimized for programmatic access
uid: proj_abc123def456 # Auto-generated, never changes
ID (Human-Defined Identifier)
Optional, Editable
Users can optionally assign a human-readable ID:
- Format: Any string (e.g.,
P-001,PROJ-CLI-TOOL) - Editable: Can be changed at any time
- Optional: Not required for entity creation
- Human-Friendly: Easier to remember and communicate
id: P-001 # Optional, can be changed
Why Two Identifiers?
| Aspect | UID | ID |
|---|---|---|
| Purpose | System integrity | Human convenience |
| Mutability | Immutable | Editable |
| Uniqueness | Guaranteed | Best effort |
| Use Case | References, relationships | Communication, documentation |
π‘ Best Practice
Use UIDs for all programmatic references and relationships. Use IDs for human communication and documentation. Both can be used interchangeably in CLI commands.
Classification & Categories
HoxCore uses a flexible classification system based on categories and tags:
Categories
Categories provide hierarchical, semantic classification:
# Basic category
category: software.dev/cli-tool
# Category with template variant
category: software.dev/cli-tool.python-advanced
# Academic category
category: academic/research-paper.ieee
# Business category
category: business/initiative.strategic
Category Structure
Format: domain.subdomain/type.variant
- Domain: Top-level classification (e.g.,
software,academic,business) - Subdomain: More specific classification (e.g.,
dev,research,operations) - Type: Specific entity type (e.g.,
cli-tool,research-paper) - Variant: Optional template or style variant (e.g.,
python-advanced,ieee)
Tags
Tags provide flexible, subjective classification:
tags: [cli, ai, python, tools, automation]
Tags vs Categories
| Aspect | Categories | Tags |
|---|---|---|
| Structure | Hierarchical | Flat |
| Purpose | Semantic classification | Subjective meaning |
| Quantity | One per entity | Multiple per entity |
| Template Link | Can reference template | No template link |
π‘ KISS Principle
Categories are semantic labels only. Subjective meaning is expressed via tags, following the Keep It Simple, Stupid (KISS) principle. This keeps the system flexible and easy to understand.
Relationships
Entities can be related to each other through three types of relationships:
Parent-Child Relationships
Hierarchical relationships representing containment or ownership:
# Parent entity (Program)
type: program
uid: prog_abc123
title: "Digital Transformation"
children:
- proj_def456
- proj_ghi789
# Child entity (Project)
type: project
uid: proj_def456
title: "Build CLI Tool"
parent: prog_abc123
Characteristics:
- One parent per entity (optional)
- Multiple children per entity
- Bidirectional references (parent knows children, children know parent)
- Typically: Programs contain Projects, Projects contain Missions/Actions
Related Entities
Non-hierarchical relationships representing dependencies or associations:
type: project
uid: proj_abc123
title: "Frontend Development"
related:
- proj_def456 # Backend API project
- proj_ghi789 # Design system project
Characteristics:
- Multiple related entities per entity
- Non-hierarchical (peers)
- Can be unidirectional or bidirectional
- Represents dependencies, collaborations, or associations
Relationship Visualization
Program: Digital Transformation (prog_abc123)
βββ Project: Build CLI Tool (proj_def456)
β βββ Mission: Launch v1.0 (miss_jkl012)
β βββ Action: Weekly Standup (act_mno345)
βββ Project: API Development (proj_ghi789)
βββ Related to: proj_def456 (Frontend)
β οΈ Referential Integrity
Always use UIDs for relationships, not IDs. UIDs are immutable and guarantee referential integrity. HoxCore validates relationships and warns about broken references.
Lifecycle Management
Entities progress through a defined lifecycle with status tracking and date management:
Status Values
active
Entity is currently being worked on
completed
Entity has been successfully finished
on-hold
Entity is temporarily paused
canceled
Entity has been discontinued
Date Fields
start_date: 2024-01-01 # When work began
due_date: 2024-04-01 # Expected completion
completion_date: 2024-03-28 # Actual completion
duration_estimate: 90d # Estimated duration
Duration Format
Duration estimates support multiple formats:
90d- 90 days3w- 3 weeks6m- 6 months1y- 1 year
Lifecycle Transitions
βββββββββββ
β Created β
ββββββ¬βββββ
β
v
ββββββββββ ββββββββββββ
β active βββββ>β on-hold β
βββββ¬βββββ ββββββ¬ββββββ
β β
β<βββββββββββββββ
β
v
βββββββββββββ
β completed β
βββββββββββββ
β
v
ββββββββββββ
β canceled β
ββββββββββββ
π‘ Automatic Tracking
HoxCore automatically tracks creation and modification timestamps. When status changes to completed, the completion_date is automatically set if not provided.
Git Integration
Every HoxCore registry is a Git repository, providing powerful version control capabilities:
Automatic Git Operations
- Initialization:
hxc initcreates a Git repository - Commits: Entity changes can be auto-committed (configurable)
- History: Full audit trail of all changes
- Branching: Experiment with changes in branches
Git Workflow
# Initialize registry (creates Git repo)
hxc init my-registry
# Create entity (auto-commits if enabled)
hxc create project --title "New Project"
# View Git history
cd my-registry
git log
# Create branch for experiments
git checkout -b experiment
# Make changes
hxc update P-001 --status completed
# Merge back to main
git checkout main
git merge experiment
Benefits of Git Integration
| Feature | Benefit |
|---|---|
| Version History | Track all changes over time |
| Branching | Experiment without affecting main registry |
| Collaboration | Multiple users can work together |
| Backup | Push to remote repositories for safety |
| Auditability | Complete record of who changed what and when |
β οΈ Git Best Practices
While HoxCore can auto-commit changes, consider disabling this for production registries and using manual commits with meaningful messages. This provides better control and clearer history.
Templates
Templates in HoxCore are purely declarative and secureβno executable code, only YAML definitions:
Template Purpose
- Define folder and file scaffolding
- Specify file copying and text injection
- Configure Git repository initialization
- Set up project structure consistently
Template Structure
# template.yml
name: cli-tool-python
description: "Python CLI tool template"
category: software.dev/cli-tool
scaffolding:
directories:
- src/
- tests/
- docs/
files:
- path: README.md
content: |
# {{title}}
{{description}}
- path: src/main.py
source: templates/cli-tool-python/main.py.template
- path: pyproject.toml
source: templates/cli-tool-python/pyproject.toml.template
git:
initialize: true
initial_commit: true
gitignore:
- __pycache__/
- *.pyc
- .venv/
Template Variables
Templates support variable substitution using {{variable}} syntax:
{{title}}- Entity title{{description}}- Entity description{{uid}}- Entity UID{{id}}- Entity ID (if set){{category}}- Entity category
Security Model
β Safe by Design
Templates are interpreted by HoxCore itself, not executed as scripts. This ensures:
- No arbitrary code execution
- Predictable behavior
- Easy to audit and understand
- Safe to share and distribute
For more details, see the Templates documentation.
Integrations
HoxCore integrates with external tools rather than replacing them:
Integration Categories
Version Control
- GitHub
- Azure DevOps
- Gitea
- Overleaf
Project Management
- GitHub Projects
- Azure DevOps Boards
- OpenProject
- Trello
Storage
- Local paths
- Google Drive
- Notion
- Knowledge bases
Databases
- SQLite
- PostgreSQL
- MySQL
- MongoDB
Integration Definition
# In entity definition
repositories:
- name: github
url: https://github.com/user/repo
storage:
- name: gdrive
provider: google-drive
url: https://drive.google.com/drive/folders/example
tools:
- name: azure-devops
provider: azure
url: https://dev.azure.com/org/project
databases:
- name: local-sqlite
type: sqlite
path: ./data/example.db
For detailed integration guides, see the Integrations documentation.
AI Integration
HoxCore is designed to be LLM-native from the ground up:
LLM Model References
Projects can reference one or multiple LLM models:
models:
- id: assistant
provider: openwebui
url: http://openwebui.local/?models=assistant
- id: code-helper
provider: ollama
model: codellama
- id: gpt4
provider: openai
model: gpt-4-turbo
Knowledge Base Integration
Link knowledge bases for context-aware AI assistance:
knowledge_bases:
- id: kb-registry-specs
url: http://openwebui.local/workspace/knowledge/5f0f9cc7...
- id: kb-project-docs
path: ./docs/knowledge-base/
AI Capabilities
- Registry Indexing: The entire registry can be indexed as an LLM-accessible knowledge base
- Global Assistant: AI can reason over all projects, relationships, and metadata
- Context-Aware Help: AI understands project context and provides relevant assistance
- Natural Language Queries: Query the registry using natural language
π‘ Human + Machine Understanding
HoxCore's YAML-based definitions are designed to be understood by both humans and LLMs. This enables powerful AI-assisted project management while maintaining human readability.
For more details, see the AI Features documentation.
Design Principles
HoxCore is built on a foundation of clear, consistent design principles:
π Git-like
Immutable IDs, history, minimal magic
- UIDs are immutable and unique
- Every change is tracked in Git history
- No hidden behavior or magic
- Predictable and transparent operations
π Declarative
No scripts, no hidden behavior
- Pure YAML definitions
- No executable code in templates
- What you see is what you get
- Easy to audit and understand
π Universal
Applicable beyond software development
- Manage any kind of human endeavor
- Flexible entity types
- Domain-agnostic design
- Adaptable to any workflow
π§© Composable
Integrates instead of duplicating tools
- Works with existing tools
- References external systems
- Doesn't replace, enhances
- Modular and extensible
π Scalable
Thousands of entities, fast queries
- Efficient indexing
- Fast search and queries
- Handles large registries
- Performance-focused design
π€ LLM-native
Human + machine understanding
- AI-readable metadata
- LLM model integration
- Knowledge base support
- Natural language queries
β The HoxCore Philosophy
In short, HoxCore is a universal, declarative, version-controlled project brain, designed to be both human-friendly and AI-intelligible. It provides a single source of truth for all your projects, missions, and actions, with the power of Git and the intelligence of modern AI.
Next Steps
Now that you understand the core concepts, explore specific features: