Portable human-AI context protocol reference tooling
Project description
ID Protocol
ID turns a person into a portable AI context that travels between tools with explicit freshness, trust, and privacy rules.
Positioning:
IDis not another assistant. It is the protocol layer that keeps context explicit, portable, and auditable.- It complements
SET,agentsmd, and other orchestrators by making context, contracts, and hooks first-class.
Start in 5–10 minutes
Install with Homebrew:
brew install markoblogo/tap/id-protocol
idctl init --owner-id <owner-id>- fill
profiles/<owner>/profile.minimal.md idctl refresh-soul --owner-id <owner-id>make validatemake compact
Result:
- immediate AI-ready portable context
- one concrete checkpoint (
profile.minimal.md) - generated artifact (
context.compact.json) - compact agent-facing layer (
soul.md)
Quick path
Litepath: minimal setup, get started fast →docs/LITE.mdSharepath: multi-tool portability →docs/SHARE.mdBenchpath: evidence and claims →docs/BENCH.mdSoulpath: derived compact working self-model →docs/SOUL.md
Comparative note
Copilot,Cursor, andContinuegenerate local prompt memories.IDgives a stable externalized profile and contract that those tools can consume.
Live Public Metrics
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
Orchestration status
ID now has a real execution role inside the wider ABVX toolchain:
SETcan orchestrate repo-localIDhooks in compatible repositories- current CI-safe hooks are
pre_taskandweekly_review IDstays the context/protocol layer, whileSETstays the orchestration layeragentsgenremains the repo-docs/runtime companion, not a replacement for portable human context
Practical consequence:
- if a repo is
ID-compatible,SETcan validate or refresh human-context boundaries before and after the main repo workflow - if a repo only needs repo-scoped agent docs,
agentsgenis enough on its own soul.mdis the short reviewed handoff layer when the full profile stack is too heavy for the first pass
Why this beats ad-hoc prompts or chat memory in some workflows:
system promptsare fragile and usually copied by hand across tools;- chat-native memory is siloed inside one product and hard to audit;
- project instructions help per repo, but not across roles like writing, research, or multi-tool orchestration;
IDmakes preferences, constraints, freshness, privacy, and portability explicit and versioned.soul.mdcompresses that profile into a faster bootstrap surface without replacing the canonical source files.
Evidence surface:
docs/PROOF.md(claim pack and caveats)benchmarks/runs/public-metrics.md(live utility summary)docs/MEASUREMENT.mdanddocs/EVALUATOR_PROTOCOL.md(method)docs/EVIDENCE_POLICY.md(evidence rules)
Ecosystem map:
docs/ECOSYSTEM.mddocs/INTEGRATIONS.md- docs entrypoint index:
docs/README.md
Release/install:
docs/RELEASES.md
Choose One Path
1. ID Lite
Use this if you want the smallest practical entrypoint.
You get:
- a starter profile
- a handshake
- a privacy policy starter
- a compact portable artifact
Start here:
docs/LITE.md
2. ID Share
Use this if you want to move context safely between tools or people.
You get:
- validated interop/compact/MCP artifacts
- explicit privacy policy
- documented loss boundaries
Start here:
docs/SHARE.md
3. ID Bench
Use this if you want proof that ID actually helps.
You get:
- benchmark runs
- with-vs-without-ID comparisons
- public metrics
- proof summaries with caveats
Start here:
docs/BENCH.md
End-to-End Scenarios
1. New Coding Agent
Input:
profiles/<owner>/profile.core.mdprofiles/<owner>/profile.extended.md- repo context for the actual task
Flow:
- run pre-task hook or hand the agent the core profile + handshake.
- agent summarizes understanding, constraints, and uncertainty.
- agent executes coding work under explicit style and safety rules.
- after the session, changelog and profile updates are recorded if needed.
Output:
- faster alignment on review style, verbosity, safety, and tooling assumptions
- fewer corrective turns than repeating the same guidance manually in each repo
2. Literary Editor
Input:
- core profile for tone, critique style, and hard constraints
- extended profile for taste, recurrent misalignments, and known-good phrasing
- draft text under review
Flow:
- editor model reads the profile-backed handshake.
- critique is generated in the preferred format and tone.
- mismatch notes are captured if the editor over-corrects voice or pacing.
Output:
- more stable editorial voice across sessions and tools
- lower risk of generic “AI rewrite” drift
3. Market Analyst
Input:
- core profile with communication preferences and risk constraints
- extended profile with domain heuristics and decision rules
- source material for the market question
Flow:
- analyst model uses the profile to choose structure, brevity, and evidence style.
- benchmarkable outputs can be compared across tools on the same task set.
- results are scored for style fit, constraint adherence, and usefulness.
Output:
- comparable outputs across models instead of one-off subjective impressions
- easier onboarding for a new model without rebuilding context from scratch
4. Cross-Tool Handoff
Input:
- markdown source profile
- generated
profiles/<owner>/interop.v1.json - redaction policy when sharing externally
Flow:
- export markdown source into interop artifact.
- validate the artifact against schema and repo rules.
- hand the redacted or full package to another tool, wrapper, or automation path.
Output:
- portable context with explicit loss boundaries
- less dependence on one chat product's internal memory model
Repository Structure
.
├── benchmarks/
│ ├── tasks/
│ └── runs/
├── data/
│ ├── raw/
│ ├── normalized/
│ └── processed/
├── docs/
│ ├── PROTOCOL.md
│ ├── OPERATIONS.md
│ ├── INGEST_SOURCES.md
│ ├── PRIVACY.md
│ ├── VALIDATION.md
│ ├── INTEGRATIONS.md
│ ├── BENCHMARK.md
│ ├── INTEROP_V1.md
│ ├── HARDENING.md
│ └── ROADMAP.md
├── integrations/
│ ├── agentsmd/
│ ├── lab/
│ └── set/
├── lab/
│ └── experiments/
├── profiles/
├── schemas/
├── scripts/
├── templates/
└── README.md
Phase Status
- Phase 0 (bootstrap): done
- Phase 1 (ingest + extractor MVP): done
- Phase 2 (privacy/redaction): done
- Phase 3 (validation automation): done
- Phase 4 (integrations): done
- Phase 5 (benchmark + interop): done
- Phase 6 (hardening): done
- Phase 7 (expansion): done
Current Maturity
Today this repository functions as:
- a protocol/spec reference
- a validated tooling reference
- a benchmark/evidence reference
- a lightweight onboarding entrypoint
- an installable lightweight CLI surface
It is no longer only an internal profile format or documentation experiment.
Ecosystem Status
ID and lab.abvx
- repo: markoblogo/lab.abvx
- landing: lab.abvx.xyz
- current relationship:
lab.abvxis the broader experiment/catalog surfaceIDsits in that ecosystem as a protocol/reference implementation for portable human-AI contextlab.abvx.xyzshould be treated as an adjacent discovery or catalog surface, not the canonical protocol source of truth
ID and AGENTS.md Generator
- repo: markoblogo/AGENTS.md_generator
- landing: agentsmd.abvx.xyz
- current relationship:
AGENTS.md Generatoris companion tooling for generating and maintaining agent-facing repo instructionsIDis the person/tool interaction protocol layer- they complement each other:
IDdefines portable human-AI contextAGENTS.md Generatorhelps produce repo-scoped agent guidance
agentsmd.abvx.xyzis the landing/product surface for that adjacent toolchain, not theIDprotocol home
ID and SET
- repo: markoblogo/SET
- current relationship:
SETis the orchestration/execution layerIDis now a real repo-local hook and protocol companion inside that orchestration path- practical boundary:
IDanswers "what context should follow the human across tools?"SETanswers "how should repo workflows execute those tools and hooks?"
ID and DecisionMap
- repo: markoblogo/decision-map
- current relationship:
DecisionMapis a standalone decision/strategy protocol + prompt toolkitIDcan be used as an optional portable context layer for long-running decision work- no hard dependency:
DecisionMapremains usable with any LLM withoutID
Practical Summary
If you need:
- protocol and portable context: start with
ID - repo-scoped agent instruction generation: use
AGENTS.md Generator - orchestration and workflow execution: use
SET
Specification And Releases
- protocol/spec surface:
spec/ - versioning and conformance:
docs/VERSIONING.md,spec/CONFORMANCE.md - releases and install:
docs/RELEASES.md - broader experiment catalog / ecosystem discovery: use
lab.abvx - orchestration/execution workflows: use
SET
Specification
- current protocol docs live under
docs/ - versioned standard surface lives under
spec/ - current version index:
spec/v0.2/README.md - conformance model:
spec/CONFORMANCE.md - change history:
spec/CHANGELOG.md - proposal process:
spec/RFC/README.md - versioning semantics:
docs/VERSIONING.md - compatibility matrix:
docs/COMPATIBILITY.md - observed behavior notes:
docs/OBSERVED_BEHAVIOR.md - observed behavior evidence:
evidence/observed-behavior/*.json - evidence maintenance policy:
docs/EVIDENCE_POLICY.md - compact target mapping:
docs/CONTEXT_JSON_MAPPING.md
Start Small
Recommended onboarding path:
- bootstrap a starter set with
python3 scripts/bootstrap_owner.py --owner-id <owner-id> - or
make bootstrap-owner OWNER=<owner-id> - start with
templates/profile.minimal.md - then promote stable guidance into
profiles/<owner>/profile.core.md - add
profile.extended.mdonly after repeated workflows and misalignments are clear
Guide:
docs/MINIMAL_PROFILE.mddocs/QUICKSTART.md
Ingest + Extract
- put exports to
data/raw/<source>/ - normalize into
data/normalized/<source>/ - run:
python3 scripts/extract_profile.py --owner-id <owner-id>
Privacy + Safe-Share
- policy:
docs/PRIVACY.md - machine-readable policy:
docs/PRIVACY_POLICY_V1.md - threat model:
docs/THREAT_MODEL.md - validate policy:
python3 scripts/validate_privacy_policy.py --owner-id <owner-id> - run:
python3 scripts/redact_for_sharing.py - review:
data/processed/redaction-report.json
Validation + Changelog Automation
- validate:
python3 scripts/validate_profile.py --owner-id <owner-id> - publish guard:
python3 scripts/check_publish_guard.py --all-tracked - post-session entry:
python3 scripts/session_update.py --owner-id <owner-id> --session-context "..." --sections-used "..." --changes-made "..."
Integrations Hooks
- pre-task:
scripts/run_integration_hook.sh pre_task --owner-id <owner-id> --target agentsmd
- post-task:
scripts/run_integration_hook.sh post_task --owner-id <owner-id> --session-context "..." --sections-used "..." --changes-made "..."
- weekly review:
scripts/run_integration_hook.sh weekly_review --owner-id <owner-id>
Benchmark + Interop
- benchmark guide:
docs/BENCHMARK.md - evaluator protocol:
docs/EVALUATOR_PROTOCOL.md - public utility positioning:
docs/WHY_ID.md - golden examples:
docs/EXAMPLES.md - proof summary:
docs/PROOF.md - run aggregation:
python3 scripts/benchmark_report.py --run-id <run-id> - trend report across runs:
python3 scripts/benchmark_trend_report.py - public metrics report:
python3 scripts/benchmark_public_report.py - initialize benchmark run:
python3 scripts/benchmark_init_run.py --run-id <run-id> --tool <tool> --owner-id <owner-id> --profile-version <version> - validate benchmark run:
python3 scripts/benchmark_validate_run.py --run-id <run-id> - interop v1 guide:
docs/INTEROP_V1.md - compatibility guide:
docs/COMPATIBILITY.md - compact export contract:
docs/CONTEXT_JSON_MAPPING.md - public metrics guide:
docs/MEASUREMENT.md - threat model:
docs/THREAT_MODEL.md - compact exporter:
python3 scripts/export_context_compact.py --owner-id <owner-id> - compact validator:
python3 scripts/validate_context_compact.py --owner-id <owner-id> - compact import draft:
python3 scripts/import_context_compact.py --owner-id <owner-id> - export interop json:
python3 scripts/export_interop_v1.py --owner-id <owner-id> - interop artifact policy:
profiles/<owner>/interop.v1.jsonis versioned and must be regenerated after profile changes - validate interop json:
python3 scripts/validate_interop_v1.py --owner-id <owner-id> - MCP import draft:
python3 scripts/import_mcp_resource.py --owner-id <owner-id> - shortcut commands:
make validatemake bootstrap-owner OWNER=<owner-id>make interopmake compactmake mcpmake privacy-policymake observed-behaviormake metricsmake trend
Hardening
- hardening guide:
docs/HARDENING.md - CI workflow:
.github/workflows/ci.yml - baseline example:
benchmarks/runs/baseline-2026-03-31-codex/
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file id_protocol-0.3.0.tar.gz.
File metadata
- Download URL: id_protocol-0.3.0.tar.gz
- Upload date:
- Size: 28.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9162104bb5476356cd1426e96f5da93c2cb2a760532c73691aa09081c44c474
|
|
| MD5 |
4290b097e50f8597bc32bc7a3c94fed9
|
|
| BLAKE2b-256 |
3763760e5b697a09f860407696eaae7bafd9e5b4cddc5ec90760000bcd93cc5f
|
Provenance
The following attestation bundles were made for id_protocol-0.3.0.tar.gz:
Publisher:
pypi-publish.yml on markoblogo/ID
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
id_protocol-0.3.0.tar.gz -
Subject digest:
f9162104bb5476356cd1426e96f5da93c2cb2a760532c73691aa09081c44c474 - Sigstore transparency entry: 1809420840
- Sigstore integration time:
-
Permalink:
markoblogo/ID@a024740d4ebdfc039e8cdb3df4ed13e51ff12b86 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/markoblogo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@a024740d4ebdfc039e8cdb3df4ed13e51ff12b86 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file id_protocol-0.3.0-py3-none-any.whl.
File metadata
- Download URL: id_protocol-0.3.0-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78e81756842fcc5a5a2976d9cf8b00df66549fae6e066f46a41cb9384ecfe1c4
|
|
| MD5 |
e774c937db5c05b9e9a3fc9e6093e02a
|
|
| BLAKE2b-256 |
01b02c9522c63b37e631383085273fad4902994e5e24fc006ad7a201e7c2c5bd
|
Provenance
The following attestation bundles were made for id_protocol-0.3.0-py3-none-any.whl:
Publisher:
pypi-publish.yml on markoblogo/ID
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
id_protocol-0.3.0-py3-none-any.whl -
Subject digest:
78e81756842fcc5a5a2976d9cf8b00df66549fae6e066f46a41cb9384ecfe1c4 - Sigstore transparency entry: 1809420847
- Sigstore integration time:
-
Permalink:
markoblogo/ID@a024740d4ebdfc039e8cdb3df4ed13e51ff12b86 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/markoblogo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yml@a024740d4ebdfc039e8cdb3df4ed13e51ff12b86 -
Trigger Event:
workflow_dispatch
-
Statement type: