contrib-consolidate
Internal phase — consolidate a contributor's L1 atoms into an L3 persona (11 dimensions). Invoked by contrib-profile / `/contrib build`.
Orchestrator for Contributor Intelligence. Trigger when the user pastes a GitHub profile/repo URL or handle and asks to profile, analyze, learn from, or study an engineer (EN/VI — "phân tích người này", "học từ người này"). Runs add→ingest→build→playbook end-to-end via the
$ npx -y skills add baodq97/tencentdb-agent-memory --skill contrib-profile --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/contrib-profileContext preview
The summary Claude sees to decide when to auto-load this skill.
Orchestrator for Contributor Intelligence. Trigger when the user pastes a GitHub profile/repo URL or handle and asks to profile, analyze, learn from, or study an engineer (EN/VI — "phân tích người này", "học từ người này"). Runs add→ingest→build→playbook end-to-end via the
name: contrib-profile description: Orchestrator for Contributor Intelligence. Trigger when the user pastes a GitHub profile/repo URL or handle and asks to profile, analyze, learn from, or study an engineer (EN/VI — "phân tích người này", "học từ người này"). Runs add→ingest→build→playbook end-to-end via the per-phase contrib skills.
The friendly front door to the `/contrib` feature. The user shouldn't have to know the subcommand sequence — they give you a target and an intent, and you either run the whole pipeline for them or walk them through it.
Accept any of these and normalise to `<github_user>` + `<owner/repo>`:
If you only have a **user** (no repo), the profile needs a repo to scope ingest. Find their most relevant repo instead of guessing:
gh api "users/<user>/repos?sort=pushed&per_page=20" --jq 'sort_by(-.stargazers_count) | .[] | select(.fork|not) | "\(.full_name)\t★\(.stargazers_count)"' | head
Pick the top owned repo where they actually **author code** — by stars/activity. Skip forks, and skip non-code repos that rank high on stars but carry no engineering signal (awesome-lists, dotfiles, docs/blog repos). If it's genuinely ambiguous (several comparable code repos, or they're mainly a reviewer), show the short list and ask which one rather than guessing.
gh auth status
If `gh` is missing or unauthenticated, stop and tell the user to run `gh auth login`. Nothing downstream works without it.
run the whole pipeline yourself, reporting progress between phases.
the steps below as a checklist and run only what they ask for, one at a time.
Execute in order. Each phase has a dedicated skill — invoke it, don't reinvent it.
1. **Declare** (idempotent — skip if already a subject):
tmem contrib add <user> <owner/repo>
2. **Ingest** — invoke the **contrib-ingest** skill, which fetches raw activity (`tmem contrib raw <id>`) and writes 11-dimension atoms. Mention it can take a minute or two for an active engineer (per-PR calls). 3. **Consolidate** — invoke the **contrib-consolidate** skill to turn the atoms into the L3 persona. 4. **Synthesize** — invoke the **contrib-synthesize** skill to produce the learnable playbook (and exemplar quotes).
Then present, in this order:
After the first profile, surface the high-value follow-ups so the user knows the feature's range — pick what fits their intent, don't dump all of them:
existing self-persona (`tmem persona`); no need to ingest the user from GitHub.
to see what top engineers share (needs ≥2 built personas).
synthesis quality (and their `references/` rubrics). Don't duplicate their logic.
self-memory feature is never touched.
Four-layer long-term memory (L0 Conversation → L1 Atom → L2 Scene → L3 Persona) for Claude Code, inspired by Tencent/TencentDB-Agent-Memory. Fully local — no external Gateway, no paid API, no Python.
Repo: baodq97/tencentdb-agent-memory
Internal phase — consolidate a contributor's L1 atoms into an L3 persona (11 dimensions). Invoked by contrib-profile / `/contrib build`.
Internal phase — extract L1 contributor atoms from a GitHub subject's raw activity. Invoked by contrib-profile / `/contrib ingest`.
Internal phase — synthesize learnable playbooks, cross-engineer common capabilities, and you-vs-role-model comparisons from built personas. Invoked by…
Consolidate L1 memory atoms into L2 scene blocks and L3 persona. Invoked by the memory-consolidator agent, or manually via /memory-consolidate.
Extract L1 memory atoms from Claude Code conversation history. Run manually via /memory-seed.
Open the memory visualiser in the browser — a health check on the memory store: is it working, what is wrong, and what to run to fix it. Run manually via…