Kampff
Human analysis from published text traces — worldview, alliance fit, temporal drift, distance (engage/neutral/caution/avoid). Community-member pipeline: collect posts/comments/likes honesty triad → bundle.json → spectrograph L1–L5 + default MBTI (fun) + CIA/KGB-style public tradecraft persona report. Triggers: /kampff, kampff, 사람 분석, 인물 분석, person analysis, community member, distance scoring, MBTI, CIA/KGB profile, mail/meeting/chat/sns/github, thread actors, 댓글 네트워크, 조직성, /kampff thread. Analyze reads bundle only; collect is a separate lawful step. No stalking.From its SKILL.md
npx -y skills add YangKangSung/kampff-skills --skill kampffAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
8.7 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it
Kampff
Turn text someone already published into a distance decision — with optional community collect.
| Layer | Responsibility |
|---|---|
| Collect | Lawful public/session surfaces → raw + bundle.json |
| Analyze | Read bundle.json only — no invented scrape mid-analysis |
| Report | Matrix + L1–L5; community default adds MBTI + tradecraft persona |
Data root: env KAMPFF_DATA (default ./kampff-data).
Spelling: skill name kampff. Repo may be named kampff-skills.
Typo recognition
| Typed | Treat as |
|---|---|
kapsmff / kaffsm / kampsm / kamff / kampf / kampoff | kampff |
| 사람 분석 / 인물 분석 | this skill |
Philosophy (generic)
- Goal language: distance + engage cost, not therapy or persuasion playbook.
- Viewer is in the pool — same protocol for self-dossier.
- Ego/flex/stress patterns →
caution/avoidwithout moralizing the operator. - Refuse: stalking, covert surveillance, illegal collection, “destroy coworker” weaponization.
Community member pipeline (general feature)
Full steps: references/community-member-pipeline.md
Report shape: references/report-template.md
/kampff member {platform} {id|nick|url}
/kampff connect # SNS: facebook · x · instagram · linkedin · reddit
/kampff connect {platform}
/kampff analyze {path}/bundle.json
/kampff thread {post_url} ← comment actors · intent · network · coordination
/kampff today
| Step | Do |
|---|---|
| 0 Connect (SNS) | kampff-collect connect setup --platform … · references/sns-connection-setup.md |
| 1 Scope | target ≠ viewer; platform; optional trigger thread |
| 2 Collect | lawful surfaces; agent-owned browser profile if login needed |
| 3 Honesty | posts / comments / likes triad → honesty file |
| 4 Bundle | {KAMPFF_DATA}/inbox/{date}/bundle.json |
| 5 Analyze | L1–L5 always |
| 6 Lenses | MBTI + CIA/KGB tradecraft ON by default for community |
| 7 Report | HTML default: {KAMPFF_DATA}/out/{date}-report.html · md twin optional |
| 8 Handoff | open cross-check prompts; do not invent the operator’s gut read |
Default lenses
| Context | MBTI | CIA/KGB persona |
|---|---|---|
| Community member | ON | ON |
| Workplace mail/meeting batch | off unless asked | off unless asked |
| Operator: skip lenses | off | off |
Demo samples (public repo only — synthetic):
| File | Role |
|---|---|
docs/sample-community-report.html | Front-door visual (graphs, force layout) |
docs/sample-community-report.md | Full community dossier template filled with fiction |
docs/sample-output.md | Short workplace matrix |
Never replace samples with real third-party profiling. Real runs write under $KAMPFF_DATA outside the git root.
Thread actor analysis (one post)
Analyze all commenters on a single post: intent signals, malice-risk heuristics, @reply graph, coordination-looking patterns.
| Spec | references/thread-actor-analysis.md |
| Runner | scripts/thread_actor_analyze.py |
| Trigger | /kampff thread {url} |
| Default out | {KAMPFF_DATA}/out/{date}-thread-{board}_{sn}-actors.html |
Not a guilty verdict — signals + graph. Feeds hot actors into later member collect.
Collection honesty (mandatory for community)
Always report:
| surface | site/profile claimed | collected | full? |
|---|---|---|---|
| posts | … | … | Y/N |
| comments | … | … | Y/N |
| likes/reactions | … | … | Y/N |
Rules: answer completeness from artifacts, not intent. Tab labels in HTML ≠ collected. Platform caps (e.g. “recent only” APIs) → mark full? = NO (platform cap).
Details: references/collection-honesty.md.
Smoke path
| Rank | Source | Why |
|---|---|---|
| 1 | Public GitHub (gh) | often already auth’d |
| 2 | RSS / public feeds | no auth |
| 3 | sample-input | dry-run |
| later | X / Reddit / Facebook / Instagram / LinkedIn | connect setup + tokens/export |
Self-dossier smoke: viewer_id: me = same person as collector login.
Usage
/kampff collect --targets {path}/targets.json # if collector wired
/kampff analyze {path}/bundle.json
/kampff today
/kampff person {id} --bundle {path}
bundle.json (minimal)
{
"context": "workplace|community|mixed",
"viewer_id": "me",
"batch_date": "YYYY-MM-DD",
"analysis_lenses": ["personal", "mbti", "cia_sat"],
"people": [
{
"id": "me",
"texts": [
{
"content": "...",
"timestamp": "ISO8601",
"source": "community_post"
}
]
}
],
"meta": { "language": "en", "timezone": "UTC" }
}
viewer_id must appear in people[]. Every text needs timestamp + source.
Sources: mail · meeting · chat · messenger · community_post · community_comment · community_like · sns_post · sns_comment
spectrograph (order)
- L1 Psych — Big Five lean, conflict style; quote evidence
- L2 Worldview — axes + distance to viewer
- L3 Behavioral — patterns + stability; never “innately evil”
- L4 Alliance — trust / reciprocity / go-together
- L5 Ephemeris — time buckets, drift
- L6 HR — only if requested
- L7 OSINT — only if requested; lawful only
MBTI — references/lenses-mbti.md (default community ON)
CIA/KGB-style tradecraft — references/lenses-cia-sat.md (public analytic hygiene only)
Distance scale
| Tag | Meaning |
|---|---|
engage | Worth time / needed interaction |
neutral | Low signal or transactional |
caution | Ego/flex/stress patterns; limit surface |
avoid | Chronic stress cost; cut preferred |
Hard rules
- Not medical diagnosis or legal judgment
- Inference → quote or
low-confidence - Viewer gets same scrutiny
- No scrape inside analyze; collect is separate and lawful
- MBTI never sole
avoid; tradecraft never illegal ops - Public skill repo: only synthetic samples; never commit real member dossiers, private purpose notes, or host-only paths
- Prefer English for shared sample reports; operator language OK for private chat
HTML report (default deliverable)
Community analyze always ends with HTML (not optional). Markdown is a twin/source, not the primary handoff.
- Write
{KAMPFF_DATA}/out/{date}-{id}-analysis.jsonperreferences/report-analysis.schema.md(ordocs/report-analysis.schema.md) - Render:
python scripts/render_kampff_report.py -a {KAMPFF_DATA}/out/{date}-{id}-analysis.json -b {KAMPFF_DATA}/inbox/{date}/bundle.json -o {KAMPFF_DATA}/out/{date}-{id}-report.html - Must open/hand operator the HTML path
- Graphs (offline SVG): drivers radar · MBTI radar · Big Five · confidence gauge · honesty triad · ACH · source donut · alliance · L5 timeline · distance map · fit snapshot
- Skin source of truth: renderer +
docs/sample-community-report.html(regenerate fromdocs/sample-analysis.json) - UX: sticky TOC · hero distance · TL;DR · print CSS · no CDN
- Optional twin md; debate section when thread comments exist
- Public demos: synthetic names only
Support files
references/community-member-pipeline.mdreferences/thread-actor-analysis.md— seed + cohort + directed graph + temporalreferences/human-like-collect.md— anti-bot pacing (mandatory for clien)references/report-template.mdreferences/collection-honesty.mdreferences/community-public-collect.mdreferences/platform-login-harvest.mdreferences/lenses-mbti.mdreferences/lenses-cia-sat.mdreferences/github-smoke.md- Repo demos:
docs/sample-community-report.{md,html}·docs/sample-output.md scripts/thread_actor_cohort.py— directed network + optional slow cohort expandscripts/human_browse.py— jitter delays, cache, bot-wall stop, resume
License
MIT (see repo LICENSE). Keep third-party NOTICE when vendoring collectors.
What ships with it: 12 files
59.6 KB alongside SKILL.md, 1 of them executable
references/
- collection-honesty.md1.4 KB
- community-member-pipeline.md2.5 KB
- community-public-collect.md1.3 KB
- github-smoke.md573 B
- human-like-collect.md2.4 KB
- lenses-cia-sat.md1.5 KB
- lenses-mbti.md1.2 KB
- platform-login-harvest.md2.2 KB
- report-template.md2.3 KB
- sns-connection-setup.md5.6 KB
- thread-actor-analysis.md4.8 KB
scripts/
- render_kampff_report.pyruns33.9 KB