Portable human-AI context protocol reference tooling
Project description
ID Protocol
ID is a protocol and reference repository for portable human-AI interaction context.
Main idea:
- any AI should quickly understand how to work with a specific person;
- context has depth levels: short, extended, full;
- using context implies responsibility to keep it updated.
What this gives in practice:
- faster onboarding for a new tool or agent;
- less prompt boilerplate repeated by hand;
- explicit privacy, freshness, and loss boundaries;
- measurable with-vs-without-ID comparisons instead of ideology-only claims.
Current repo status:
- versioned protocol surface under
spec/ - policy-aware portable artifacts (
interop,compact,mcp) - benchmark and public proof layer
- structured observed-behavior evidence
- lightweight onboarding bootstrap flow
- installable lightweight CLI surface (
idctl)
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.
Short explainer:
docs/WHY_ID.md
Golden workflow examples:
docs/EXAMPLES.md
Proof page:
docs/PROOF.md
Release/install path:
docs/RELEASES.md- tagged GitHub release flow with
sdist/wheelartifacts - PyPI publish workflow prepared for trusted publishing once package naming is finalized
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 adjacent orchestration/execution layerIDprovides the context/protocol layer that can feed orchestration workflows- practical boundary:
IDanswers "what context should follow the human across tools?"SETanswers "how should agentic or tool workflows be executed/orchestrated?"
Practical Summary
If you need:
- protocol and portable context: start with
ID - repo-scoped agent instruction generation: use
AGENTS.md Generator
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.2.1.tar.gz.
File metadata
- Download URL: id_protocol-0.2.1.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ea1f78fef34909554620b6309247225bd865d4407e71c6f9b9c1fce66eeb5e3
|
|
| MD5 |
624c11ba3ccbc306872335fba499ad9c
|
|
| BLAKE2b-256 |
c43c16d7f72cb4fc98218216ec5b018e19ab866e876e052878e800ac2f4cac4d
|
Provenance
The following attestation bundles were made for id_protocol-0.2.1.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.2.1.tar.gz -
Subject digest:
5ea1f78fef34909554620b6309247225bd865d4407e71c6f9b9c1fce66eeb5e3 - Sigstore transparency entry: 1207251792
- Sigstore integration time:
-
Permalink:
markoblogo/ID@4969b910ed4f0667d7f962f263f8276395573f88 -
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@4969b910ed4f0667d7f962f263f8276395573f88 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file id_protocol-0.2.1-py3-none-any.whl.
File metadata
- Download URL: id_protocol-0.2.1-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c33e58cfc0d5cfa87e74d164008882e90b132d8ec284c407b98153040b6d11fe
|
|
| MD5 |
a9b102752cdaaf4aea475d9bc2692873
|
|
| BLAKE2b-256 |
3ffcd60a39981185918eec0c821acd1289359ed823ff0607239599fcdbb9322e
|
Provenance
The following attestation bundles were made for id_protocol-0.2.1-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.2.1-py3-none-any.whl -
Subject digest:
c33e58cfc0d5cfa87e74d164008882e90b132d8ec284c407b98153040b6d11fe - Sigstore transparency entry: 1207251851
- Sigstore integration time:
-
Permalink:
markoblogo/ID@4969b910ed4f0667d7f962f263f8276395573f88 -
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@4969b910ed4f0667d7f962f263f8276395573f88 -
Trigger Event:
workflow_dispatch
-
Statement type: