{"id":51977556,"url":"https://github.com/ferdinandobons/knowledge-transfer","last_synced_at":"2026-07-30T08:00:55.954Z","repository":{"id":368428902,"uuid":"1264677417","full_name":"ferdinandobons/knowledge-transfer","owner":"ferdinandobons","description":"AI-powered project handover for Claude Code and Codex: onboarding docs plus privacy-filtered AI memories, verified against current code before import.","archived":false,"fork":false,"pushed_at":"2026-06-30T13:27:08.000Z","size":279,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-30T15:22:29.694Z","etag":null,"topics":["agent-memory","agent-skills","ai-agents","ai-memory","anthropic","claude","claude-code","codex","developer-experience","documentation","handover","knowledge-transfer","memory-transfer","offboarding","onboarding","openai","project-handover"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ferdinandobons.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-10T04:59:39.000Z","updated_at":"2026-06-30T13:27:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ferdinandobons/knowledge-transfer","commit_stats":null,"previous_names":["ferdinandobons/knowledge-transfer"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ferdinandobons/knowledge-transfer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdinandobons%2Fknowledge-transfer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdinandobons%2Fknowledge-transfer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdinandobons%2Fknowledge-transfer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdinandobons%2Fknowledge-transfer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ferdinandobons","download_url":"https://codeload.github.com/ferdinandobons/knowledge-transfer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ferdinandobons%2Fknowledge-transfer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36067204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-memory","agent-skills","ai-agents","ai-memory","anthropic","claude","claude-code","codex","developer-experience","documentation","handover","knowledge-transfer","memory-transfer","offboarding","onboarding","openai","project-handover"],"created_at":"2026-07-30T08:00:55.295Z","updated_at":"2026-07-30T08:00:55.941Z","avatar_url":"https://github.com/ferdinandobons.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# knowledge-transfer\n\n**Project handover for Claude Code and Codex.**\n\nExport a guide and privacy-filtered AI memories as a zip; dry-run import, then keep only verified memories.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-3B82F6.svg)](LICENSE)\n[![Works with](https://img.shields.io/badge/works%20with-Claude%20Code%20%2B%20Codex-D97757.svg)](https://claude.com/claude-code)\n[![Status: beta](https://img.shields.io/badge/status-beta-F59E0B.svg)](#project-status)\n\n\u003c/div\u003e\n\n---\n\n![knowledge-transfer flow](assets/knowledge-transfer-flow.png)\n\n## Why This Exists\n\nWhen a developer leaves a project, two kinds of knowledge leave with them:\n\n| Knowledge | What usually happens |\n|---|---|\n| Human context | The next person gets scattered docs, stale notes, or a rushed call. |\n| AI context | The assistant starts from zero, even if another assistant learned the project over months of sessions. |\n\n`knowledge-transfer` packages both into `handover.zip`: a short human onboarding\ndocument plus portable AI memories that are filtered on export and verified on\nimport.\n\n## How It Works\n\n| Phase | Who runs it | What happens |\n|---|---|---|\n| `export` | The colleague leaving | Analyzes the project, reads project-scoped memories, filters private content, writes `handover/` and `handover.zip`. |\n| `import` | The colleague joining | Shows the onboarding doc, dry-runs candidate memories, verifies each claim against the current code, then installs only approved project knowledge. |\n\nRun without arguments, the skill detects the phase:\n\n- `handover/manifest.json` or `handover.zip` exists -\u003e import\n- no `handover/` package -\u003e export\n\n## Install\n\n### Claude Code\n\nFrom inside Claude Code:\n\n```text\n/plugin marketplace add ferdinandobons/knowledge-transfer\n/plugin install knowledge-transfer@knowledge-transfer\n/reload-plugins\n```\n\nPlugin-installed skills are namespaced:\n\n```text\n/knowledge-transfer:knowledge-transfer export\n/knowledge-transfer:knowledge-transfer import\n/knowledge-transfer:knowledge-transfer import --dry-run\n```\n\n### Codex\n\nFrom your terminal:\n\n```bash\ncodex plugin marketplace add ferdinandobons/knowledge-transfer --ref main\ncodex plugin add knowledge-transfer@knowledge-transfer\n```\n\nStart a new Codex thread, then invoke the plugin:\n\n```text\n@knowledge-transfer export\n@knowledge-transfer import\n@knowledge-transfer import --dry-run\n```\n\n### Raw Skill\n\nAgents that only read raw `SKILL.md` folders can use this repo's `SKILL.md` plus\n`references/` in a clean skill directory. Prefer the plugin install above for\nClaude Code and Codex.\n\n## Quick Start\n\nLeaving a project:\n\n```text\n/knowledge-transfer:knowledge-transfer export\n```\n\nIn Codex:\n\n```text\n@knowledge-transfer export\n```\n\nReview the proposed package, including the exclusion report, then send\n`handover.zip` to the next colleague.\n\nJoining a project:\n\nPlace `handover.zip` in the project root, then run:\n\n```text\n/knowledge-transfer:knowledge-transfer import\n```\n\nIn Codex:\n\n```text\n@knowledge-transfer import\n```\n\nRead the onboarding doc first. Import then shows a dry-run plan with candidate\nmemories, checked evidence, proposed actions, and reasons. Confirm the plan to\nwrite accepted memories through the current agent's memory mechanism; stale\nmemories are fixed when obvious or rejected with a receipt.\n\n## What Gets Created\n\n```text\nhandover.zip              # transfer this file\nhandover/                 # local staging folder used to build the zip\n  ONBOARDING.md     # 600-1000 words, non-technical project map\n  memories/         # neutral, portable project memories\n  omissions.json    # safe counts/categories for omitted private memories\n  manifest.json     # export date, commit SHA, exported/excluded counts\n```\n\n| File | Purpose |\n|---|---|\n| `ONBOARDING.md` | A first-read project map: what it is, main pieces, key flows, where to start, gotchas. |\n| `memories/*.md` | Project facts, conventions, decisions, fragile flows, and commands worth preserving, with source hashes and verifiable claims. |\n| `omissions.json` | Privacy-safe omission counts/categories, so the next developer knows gaps exist without seeing private content. |\n| `manifest.json` | Package version, export commit, language, and privacy-filter accounting. |\n| `handover.zip` | The transfer artifact to pass to the next person. It contains the full `handover/` folder. |\n\nImport also creates local audit files next to the extracted package:\n\n```text\nhandover/\n  import-plan.json      # dry-run plan before memory writes\n  import-report.json    # final import counts\n  import-receipts/      # one receipt per installed/rejected/blocked memory\n```\n\n## Guarantees\n\n| Guarantee | How the skill enforces it |\n|---|---|\n| No personal memory export | `type: user` memories are never written to the package. |\n| Neutral project voice | Exported memories are rewritten without names, emails, usernames, or personal framing. |\n| Transferable handoff | The output is a zip archive containing plain Markdown/JSON. |\n| Dry-run before writes | Import shows candidate memories, evidence, action, and reason before writing. |\n| Verified import | Every claim, cited file, path, or identifier is checked against the current repo before installation. |\n| Import receipts | Every accepted, rewritten, rejected, or blocked memory gets a local receipt. |\n| No blind overwrite | Existing memories are not overwritten silently on import. |\n\n## What Are AI Memories?\n\nAI memories are durable notes an assistant builds while working with a developer\nacross many sessions. They are not a chat transcript. They are compressed project\nknowledge that stays useful later: architecture decisions, local conventions,\nfragile flows, commands that actually work, files to avoid touching casually, and\nthe reasons behind choices that may never have reached the README.\n\nOver time, those memories become part of the project's working context. Some are\ncaptured deliberately; others emerge indirectly from repeated fixes, reviews, and\ndebugging sessions. Losing them and starting from zero means losing the context a\ncolleague built while doing the work, including the project understanding their AI\nlearned alongside them.\n\n## Why Not Just Ask The AI?\n\nYou can clone an unknown repo and ask an AI to explain it. The answer starts from\nwhatever is visible in the code today.\n\n`knowledge-transfer` flips the order: the outgoing context is packaged first,\nprivacy-filtered, transferred, then verified before the next assistant learns it.\nThe newcomer gets a short human map and an AI that already knows the project's\nimportant constraints.\n\n## Project Status\n\n**Beta.** The skill is prompt-driven and validated with the manual checklist in\n[TESTING.md](TESTING.md). The package format is versioned through\n`manifest.version`, so future import behavior can stay backward compatible.\n\nClaude Code marketplace metadata lives in `.claude-plugin/` and points to the\nself-contained plugin in `plugins/knowledge-transfer/`. That plugin directory\nalso contains the Codex marketplace package, with real files rather than\nsymlinks so installed plugin caches are self-contained.\n\n## License\n\n[MIT](LICENSE) (c) 2026 Ferdinando Bonsegna\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferdinandobons%2Fknowledge-transfer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fferdinandobons%2Fknowledge-transfer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fferdinandobons%2Fknowledge-transfer/lists"}