/contrib-ingest
Internal phase — extract L1 contributor atoms from a GitHub subject's raw activity. Invoked by contrib-profile / `/contrib ingest`.
$ npx -y skills add baodq97/tencentdb-agent-memory --skill contrib-ingest --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/contrib-ingest
Context preview
The summary Claude sees to decide when to auto-load this skill.
Internal phase — extract L1 contributor atoms from a GitHub subject's raw activity. Invoked by contrib-profile / `/contrib ingest`.
SKILL.md
contrib-ingest.SKILL.mdname: contrib-ingest
description: Internal phase — extract L1 contributor atoms from a GitHub subject's raw activity. Invoked by contrib-profile / `/contrib ingest`.
user-invocable: false
Contributor Ingest
Turn one subject's raw GitHub activity into evidence-linked L1 atoms across the 11 fixed dimensions. You do all classification — no external LLM.
Workflow
1. Fetch raw events
tmem contrib raw <subject-id>
This prints `{commits, prs, reviewCommentsGiven, reviewThreadsReceived, issues}` (bots/forks/generated files already filtered):
- `commits` — the subject's commits across ALL branches (default branch + every
PR's head branch), deduped by sha.
- `prs` — PRs the subject authored (all branches, via the search API).
- `reviewCommentsGiven` — review comments the subject WROTE on others' PRs.
- `reviewThreadsReceived` — comments on the subject's own PRs (with `is_subject`
flagging their own replies vs reviewers').
If it errors with "gh not found" or auth failure, tell the user to run `gh auth login` and stop.
2. Classify into the 11 dimensions
**Before classifying, read `references/dimensions.md`** — the per-dimension rubric with good-vs-shallow atom examples, the Ousterhout lens for `solve`, and evidence-strength criteria. Classification quality depends on it; the summary below is only the map.
For each meaningful signal, write ONE atom tagged with exactly one dimension. Never invent style — every atom needs at least one evidence link (`PR#<n>` or commit sha).
**Technical Craft**
- `idea` — how they frame problems / pick work. Source: issue bodies (repro,
expected-vs-actual, root-cause vs symptom), PR "why" sections.
- `plan` — PR decomposition & scoping. Source: PR size (additions+deletions),
commits-per-PR, whether each PR is self-contained.
- `solve` — coding/refactor patterns. Read diffs through Ousterhout's lens: deep
vs shallow modules, information leakage, strategic vs tactical, errors designed out of existence.
- `craft` — review thinking in `reviewCommentsGiven`: do they cite the why,
weigh alternatives, label severity ("Nit:", "Optional:").
**Collaboration & Influence**
- `comms` — commit message quality (subject ≤50 chars, body explains why,
imperative mood) and PR description clarity.
- `mentor` — `reviewCommentsGiven` that teach/explain vs cosmetic-trivia floods.
- `conflict` — `reviewThreadsReceived`: in their own replies (`is_subject:true`)
do they update their view, push back constructively, avoid needless blocking.
**Outcomes & Ownership**
- `scope` — cross-repo/cross-area reach, size of areas touched.
- `ownership` — test-inclusion rate, concentration on components.
- `execution` — revert rate, post-merge rework, review coverage of merged work.
3. Write each atom
tmem contrib upsert-atom --json '{"record_id":"<id>:<dim>:<hash>","subject_id":"<id>","dimension":"plan","content":"Splits features by concern; median PR ~280 LOC, ~5 commits each.","evidence":["PR#1234","PR#1240"]}'- `record_id` must be stable (e.g. `<subject-id>:plan:<short-hash-of-claim>`) so
re-ingest upserts instead of duplicating.
- Keep `content` to one concrete, emulable observation.
4. Guardrails (do NOT violate)
- Tone/sentiment is descriptive only — never a score or ranking.
- No vanity claims (stars, streaks, total commits, raw LOC counts).
- Skip a dimension rather than fabricate a weak claim. If a subject has <50 PRs,
note which dimensions are "insufficient data" in the atom content.
5. Report
Tell the user how many atoms were written per dimension and any dimensions left empty for lack of evidence.
Read more
name: contrib-ingest description: Internal phase — extract L1 contributor atoms from a GitHub subject's raw activity. Invoked by contrib-profile / `/contrib ingest`. user-invocable: false
Contributor Ingest
Turn one subject's raw GitHub activity into evidence-linked L1 atoms across the 11 fixed dimensions. You do all classification — no external LLM.
Workflow
1. Fetch raw events
tmem contrib raw <subject-id>
This prints `{commits, prs, reviewCommentsGiven, reviewThreadsReceived, issues}` (bots/forks/generated files already filtered):
- `commits` — the subject's commits across ALL branches (default branch + every
PR's head branch), deduped by sha.
- `prs` — PRs the subject authored (all branches, via the search API).
- `reviewCommentsGiven` — review comments the subject WROTE on others' PRs.
- `reviewThreadsReceived` — comments on the subject's own PRs (with `is_subject`
flagging their own replies vs reviewers').
If it errors with "gh not found" or auth failure, tell the user to run `gh auth login` and stop.
2. Classify into the 11 dimensions
**Before classifying, read `references/dimensions.md`** — the per-dimension rubric with good-vs-shallow atom examples, the Ousterhout lens for `solve`, and evidence-strength criteria. Classification quality depends on it; the summary below is only the map.
For each meaningful signal, write ONE atom tagged with exactly one dimension. Never invent style — every atom needs at least one evidence link (`PR#<n>` or commit sha).
**Technical Craft**
- `idea` — how they frame problems / pick work. Source: issue bodies (repro,
expected-vs-actual, root-cause vs symptom), PR "why" sections.
- `plan` — PR decomposition & scoping. Source: PR size (additions+deletions),
commits-per-PR, whether each PR is self-contained.
- `solve` — coding/refactor patterns. Read diffs through Ousterhout's lens: deep
vs shallow modules, information leakage, strategic vs tactical, errors designed out of existence.
- `craft` — review thinking in `reviewCommentsGiven`: do they cite the why,
weigh alternatives, label severity ("Nit:", "Optional:").
**Collaboration & Influence**
- `comms` — commit message quality (subject ≤50 chars, body explains why,
imperative mood) and PR description clarity.
- `mentor` — `reviewCommentsGiven` that teach/explain vs cosmetic-trivia floods.
- `conflict` — `reviewThreadsReceived`: in their own replies (`is_subject:true`)
do they update their view, push back constructively, avoid needless blocking.
**Outcomes & Ownership**
- `scope` — cross-repo/cross-area reach, size of areas touched.
- `ownership` — test-inclusion rate, concentration on components.
- `execution` — revert rate, post-merge rework, review coverage of merged work.
3. Write each atom
tmem contrib upsert-atom --json '{"record_id":"<id>:<dim>:<hash>","subject_id":"<id>","dimension":"plan","content":"Splits features by concern; median PR ~280 LOC, ~5 commits each.","evidence":["PR#1234","PR#1240"]}'- `record_id` must be stable (e.g. `<subject-id>:plan:<short-hash-of-claim>`) so
re-ingest upserts instead of duplicating.
- Keep `content` to one concrete, emulable observation.
4. Guardrails (do NOT violate)
- Tone/sentiment is descriptive only — never a score or ranking.
- No vanity claims (stars, streaks, total commits, raw LOC counts).
- Skip a dimension rather than fabricate a weak claim. If a subject has <50 PRs,
note which dimensions are "insufficient data" in the atom content.
5. Report
Tell the user how many atoms were written per dimension and any dimensions left empty for lack of evidence.
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
Other skills on tencentdb-agent-memory.
- /contrib-consolidate
Internal phase — consolidate a contributor's L1 atoms into an L3 persona (11 dimensions). Invoked by contrib-profile / `/contrib build`.
Open skill - /contrib-profile
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
Open skill - /contrib-synthesize
Internal phase — synthesize learnable playbooks, cross-engineer common capabilities, and you-vs-role-model comparisons from built personas. Invoked by contrib-profile / `/contrib playbook|compare`.
Open skill - /memory-consolidate
Consolidate L1 memory atoms into L2 scene blocks and L3 persona. Invoked by the memory-consolidator agent, or manually via /memory-consolidate.
Open skill - /memory-seed
Extract L1 memory atoms from Claude Code conversation history. Run manually via /memory-seed.
Open skill - /memory-view
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 /memory-view.
Open skill

