vassiliylakhonin.github.io
Personal portfolio site of Vassiliy Lakhonin β I build evidence-discipline tooling for strategic-risk AI agents (Agenda Intelligence: an open-source skill portfolio plus deployed A2A workers and a public CIS counterparty EDD browser demo), grounded in donor compliance, audit readiness, and cross-border program delivery.
This repository is two things at once:
- The live site at https://vassiliylakhonin.github.io/ β human profile, recruiter snapshot, case studies, and a public browser demo of the CIS counterparty EDD worker.
- A reference implementation of an AI-readable professional profile architecture: human pages plus machine-readable JSON endpoints, agent discovery (
llms.txt, agent-card.json), recruiter routing, and an MCP server.
It is not a fork-and-go starter template β the content is personal. Other people are welcome to study the architecture and adapt it for their own profile.
Why this architecture
Recent research on AI self-preferencing in algorithmic hiring suggests that LLM evaluators can favor resume text that resembles their own outputs, even when candidate quality is controlled. This repo treats that as a design constraint: publish multiple verified surfaces so humans, ATS systems, and recruiter agents can compare claims, evidence, role fit, and contact details instead of relying on one polished resume style.
See AGENTS.md for the canonical rules any AI agent (Claude Code, Codex, recruiter LLMs) should follow when reading or editing this repo.
Portfolio context
This site is the distribution surface for two workflow products awaiting external validation and a separately maintained four-repository strategic-risk stack.
Workflow products:
- Corridor Bankability Analyst (private preview, repository not yet public) β drafts evidence-structured corridor deliverables from bounded source packs for a named human to verify and sign: bankability screens, tariff and cost diagnostics, market-barrier analyses, country readiness notes, position papers, and market-entry readiness notes, exported to DOCX or print-ready PDF. Documents, not scores β no readiness verdict or go/no-go. Buyer, price, and paid continuation remain hypotheses until a real external case is completed. Public worked sample on two primary records: Aktau Port bankability screen.
- GrantFlow β produces human-reviewable grant proposal and evidence artifacts: a bid/no-bid record, a file-level draft assessment with a prioritized reviewer queue, a donor-aware first draft, an evidence-gap list, and
.docx / .xlsx / ZIP exports. Two delivery paths β an operated pilot, or MCP / HTTP interfaces for teams embedding the workflow. Being tested case by case; the API and hosted demo are not demand evidence.
Strategic-risk stack:
- Agenda Intelligence MD β deterministic evidence-packet linter for claim-backed AI output. The first-run workflow checks source references, declared quotes, lexical support, and unmatched numbers before human review; v1.4.0 (2026-07-22) exposes it to MCP clients as
check_evidence_packet, with create_brief and append_evidence for contract-aware assembly. Older HTTP / A2A and vertical-worker surfaces remain available for compatibility; they are not the primary product narrative.
- Global Think Tank Analyst β horizontal strategic-risk reasoning skill (method: Policy Risk Memo Architect).
- Central Asia + Caspian Hybrid Intelligence Skill β vertical regional / corridor-risk specialist for Central Asia and the Caspian.
- Gulf + Middle East Hybrid Intelligence Skill β vertical specialist for Iran sanctions, GCC banking / sovereign wealth, energy markets and maritime chokepoint risk.
The three reasoning repos now use the same handoff into Agenda Intelligence MD: memo β externally checkable claims + declared source IDs + supplied source text + optional verbatim quotes β deterministic packet check β human review. Each repo ships a synthetic packet, a local validator, and a CI check. Historical analyze / MCP evals remain compatibility evidence rather than proof of the current linter.
What's in here
- Human-friendly profile site (GitHub Pages + Jekyll):
index.md, for-recruiters.md, profile.md, role snapshots in role-*.md, case studies in case-study-*.md.
- Structured profile endpoints:
resume.json, skills.json, capabilities.json, availability.json, verification.json, recruiter.json, engage.json, evidence.json.
- Agent discovery:
agent-card.json, agent-discovery.md, llms.txt (short routing index) and llms-full.txt (complete inventory).
- Client setup page:
connect.md β MCP install commands per client, the A2A call pattern, and what each surface may claim.
- Self-preference-aware recruiter routing:
candidate-match.json, agent-match.md, for-recruiters.md.
- MCP server for recruiter / agent queries:
mcp/server.py (runnable locally) plus a remote deployment live on Cloudflare Workers at https://vassiliy-lakhonin-mcp.vassiliy-lakhonin.workers.dev/mcp (streamable HTTP) β see mcp-status.json. Both implementations expose 16 tools, 19 attachable resources, and 5 prompts (screen_for_role, check_claim, route_my_problem, brief_before_call, draft_outreach). Worker source: mcp/cloudflare-worker/.
- Observability artifacts:
freshness.json, provenance.json, readiness.json, evals.json, authority.json. Values are self-reported snapshots, not validated benchmarks.
- Analytics measurement plan:
docs/analytics-measurement-plan.md.
- CI: link check, schema audit, observability snapshot refresh.
Live entry points
Architecture
flowchart LR
A[Markdown and JSON profile source] --> B[GitHub Pages site]
A --> C[Machine-readable endpoints]
C --> D[AI search and retrieval]
C --> E[MCP Server]
E --> F[Recruiter and agent clients]
A --> G[CI audits and observability]
Repository map
.
βββ AGENTS.md
βββ index.md
βββ for-recruiters.md
βββ profile.md
βββ resume.json
βββ capabilities.json
βββ evidence.json
βββ availability.json
βββ skills.json
βββ verification.json
βββ agent-card.json
βββ agent-discovery.md
βββ llms.txt
βββ mcp/
β βββ server.py
β βββ cloudflare-worker/
β βββ README.md
β βββ requirements.txt
βββ scripts/
βββ .github/workflows/
Adapting the architecture for your own profile
If you want to reuse the pattern (not the content):
- Read
AGENTS.md and docs/AI_HIRING_READINESS.md to understand the model.
- Copy the file structure (JSON endpoints + agent-card + llms.txt + role snapshots + MCP server) and replace every personal claim with your own evidence-backed content.
- Keep the honesty rules: do not publish scores or "readiness" numbers without a methodology that traces back to a script in
scripts/.
- Run the local checks before publishing.
Local checks
python3 scripts/geo_quick_audit.py
python3 scripts/schema_audit.py
python3 scripts/build_readiness_report.py
python3 scripts/build_freshness_report.py
python3 scripts/build_evals_report.py
python3 scripts/build_provenance_report.py
Optional CIS EDD source-freshness snapshot:
python3 scripts/sanctions_source_snapshot.py
Optional CIS EDD static sanctions-name index for the browser-side preview:
python3 scripts/sanctions_name_index.py
The name index supports public-list string matching only. It is not identity
verification, ownership resolution, a 50% rule determination, or legal /
compliance advice.
Serve site locally
Run MCP locally
python3 -m pip install -r mcp/requirements.txt
python3 mcp/server.py --http
Trust and governance
License
MIT β applies to the code and architecture. Personal content (CV, case studies, claims about Vassiliy Lakhonin) is not licensed for reuse.