ID turns a person into portable AI context with explicit freshness, trust, provenance, and privacy rules.
It is not another assistant. It is the profile and contract layer that can travel across tools.
- canonical owner-managed profile files
- compact derived
soul.mdfor fast agent bootstrap - portable interop artifacts (
context.compact,interop.v1,mcp) - validation, freshness, and publish-safety checks
- integration points for
SET,agentsgen, and other repo workflows
Install:
brew install markoblogo/tap/id-protocolBootstrap:
idctl init --owner-id <owner-id>
idctl refresh-soul --owner-id <owner-id>
make validate
make compactYou end up with:
profile.minimal.mdas the first owner checkpointsoul.mdas the short reviewed handoff layercontext.compact.jsonas the portable compact artifact
Source of truth:
profiles/<owner>/profile.minimal.mdprofiles/<owner>/profile.core.mdprofiles/<owner>/profile.extended.mdprofiles/<owner>/CHANGELOG.md
Derived layers:
profiles/<owner>/soul.mdprofiles/<owner>/context.compact.jsonprofiles/<owner>/interop.v1.jsonprofiles/<owner>/mcp.context.resource.json
- system prompts are fragile and usually copied by hand
- chat-native memory is product-siloed and hard to audit
- repo instructions help per repo, not across tools or roles
IDkeeps user context explicit, versioned, reviewable, and portable
soul.md exists because the full profile stack is often too heavy for the first pass. It gives agents a short bootstrap surface without replacing the canonical profile files.
IDowns portable human contextagentsgenowns repo-scoped agent contextSETcan orchestrate both layers
Practical rule:
- use
IDfor the human - use
agentsgenfor the repository - use
SETwhen you want orchestration around both
Lite:docs/LITE.mdShare:docs/SHARE.mdBench:docs/BENCH.mdSoul:docs/SOUL.mdIntegrations:docs/INTEGRATIONS.mdReleases:docs/RELEASES.md- full docs index:
docs/README.md
Runs analyzed: 4
| Metric | Value | Meaning |
|---|---|---|
| onboarding latency | 1.15 | Less is better |
| clarification turns | 0.85 | Less hand-offs |
| task success | 0.6 | Higher is better |
| alignment index | 18.3 | Higher is better |
Profile freshness score (owner markoblogo): 0.0
Key artifacts:
- profiles/markoblogo/profile.core.md: score=0.0 age=74 ttl=14
- profiles/markoblogo/profile.extended.md: score=0.0 age=73 ttl=30
idctl init --owner-id <owner-id>
idctl refresh-soul --owner-id <owner-id>
idctl validate
idctl export-compact --owner-id <owner-id>
idctl export-interop --owner-id <owner-id>
idctl export-mcp --owner-id <owner-id>Today ID functions as:
- a protocol/spec reference
- a validated tooling reference
- a compact onboarding path
- an installable CLI package on PyPI/Homebrew
Latest release: v0.3.0 adds the derived soul.md layer and refresh flow.
