human-analyzer
HomeTrang chủ GuidesHướng dẫn Quick startBắt đầu
Clone · install venv · run deterministic pipeline · invoke your first skillClone · dựng venv · chạy pipeline tất định · gọi skill đầu tiên

Quick startBắt đầu nhanh

Linux · Python ≥3.9 · git · Claude Code

Five steps from a fresh clone to a skill invocation — all deterministic, no API key needed, no external dependencies. Everything lives under .claude/; the project is self-contained. Without a corpus (docs/profiles/characters.yaml) the suite degrades cleanly — corpus-dependent tests skip while imports, compile, and the synthetic pipeline still pass.Năm bước từ clone mới đến gọi skill — hoàn toàn tất định, không cần API key, không phụ thuộc ngoài. Tất cả nằm dưới .claude/; dự án tự đóng gói. Không có corpus (docs/profiles/characters.yaml) thì bộ kiểm thử xuống cấp êm — test phụ thuộc corpus bị bỏ qua, còn import, compile, và pipeline giả lập vẫn pass.

Step 1 · shellshell

Clone the repoClone repo

The public toolkit ships with no character corpus — docs/profiles/, docs/materials/, and assets/ are absent by design. Bring your own subjects by creating docs/profiles/characters.yaml; the tooling resolves them dynamically via paths.py. This is also where you'd clone the private repo if you have access.Toolkit công khai không kèm corpus nhân vật — docs/profiles/, docs/materials/, và assets/ vắng mặt theo thiết kế. Mang nhân vật của bạn bằng cách tạo docs/profiles/characters.yaml; công cụ phân giải động qua paths.py. Đây cũng là nơi bạn clone repo riêng nếu có quyền truy cập.

git clone https://github.com/your-org/human-analyzer.git && cd human-analyzer
Step 2 · shellshell

Provision the project venvDựng venv nội bộ

One command. install.sh creates a project-local virtualenv under .claude/skills/.venv/ and installs three packages — pyyaml, jsonschema, pytest. No global pip is touched. The venv path is canonical: every script in every skill uses .claude/skills/.venv/bin/python3, never the system interpreter. Full install docs: Install.Một lệnh. install.sh tạo virtualenv nội bộ dưới .claude/skills/.venv/ và cài ba gói — pyyaml, jsonschema, pytest. Không đụng pip toàn cục. Đường dẫn venv là chuẩn: mọi script trong mọi skill dùng .claude/skills/.venv/bin/python3, không dùng trình thông dịch hệ thống. Tài liệu cài đầy đủ: Cài đặt.

bash .claude/scripts/install.sh

The rule is absolute: all skill scripts are invoked as .claude/skills/.venv/bin/python3 .claude/skills/{fw}-{skill}/scripts/{script}.py. Never python3 bare — the system interpreter won't have the installed packages.Quy tắc tuyệt đối: mọi script skill được gọi là .claude/skills/.venv/bin/python3 .claude/skills/{fw}-{skill}/scripts/{script}.py. Không bao giờ dùng python3 trần — trình thông dịch hệ thống sẽ thiếu gói cài.

Step 3 · shell — deterministic suiteshell — bộ test tất định

Run the deterministic test suiteChạy bộ kiểm thử tất định

The -m 'not gemini' marker skips the 34 live-LLM tests that need a GEMINI_API_KEY — all deterministic tests run. Without a roster you see ~665 pass, ~170 skip (corpus-dependent); with a roster the skip count drops. No API key, no external calls. real outputTham số -m 'not gemini' bỏ qua 34 test LLM thật cần GEMINI_API_KEY — mọi test tất định vẫn chạy. Không có roster thì ~665 đạt, ~170 bỏ qua (phụ thuộc corpus); có roster thì số bỏ qua giảm. Không cần API key, không gọi mạng. đầu ra thật

.claude/skills/.venv/bin/python3 -m pytest tests/ -q -m 'not gemini'
pytest tests/ -q -m 'not gemini'
$ pytest tests/ -q -m 'not gemini'
1100 passed, 34 deselected, 2 warnings in 55.77s

→ deterministic suite green · 0 network calls · corpus-dependent tests skip cleanly

Additional gates (all deterministic, no key needed):Cổng bổ sung (tất định, không cần key):

.claude/skills/.venv/bin/python3 -m pytest tests/ -m bug_class
.claude/skills/.venv/bin/python3 tests/golden/run_evals.py
Step 4 · shell — 7-framework e2eshell — e2e 7 framework

Run the full e2e pipeline (19 steps)Chạy pipeline e2e đầy đủ (19 bước)

run-full-pipeline.py exercises the deterministic leg of all 7 frameworks against e2e/synthetic-project/ — a fully synthetic 2-character corpus with no real PII. 19 steps covering PSY · GRO · MAT · CRE · EVL + the platform_lib verdict-cache and preferences CLIs. Every step is a real script run, not a mock. Add --write-log to refresh the run log. real outputrun-full-pipeline.py chạy nhánh tất định của cả 7 framework trên e2e/synthetic-project/ — corpus giả lập 2 nhân vật hoàn toàn, không có PII thật. 19 bước bao phủ PSY · GRO · MAT · CRE · EVL + platform_lib verdict-cache và preferences CLI. Mỗi bước là chạy script thật, không phải mock. Thêm --write-log để cập nhật run log. đầu ra thật

.claude/skills/.venv/bin/python3 e2e/run-full-pipeline.py
python3 e2e/run-full-pipeline.py
[FINDINGS] PSY · health-check · completeness
[OK      ] PSY · crossref · timeline (dim 1)
[OK      ] PSY · crossref · bidirectional refs
[OK      ] PSY · crossref · extract events
[OK      ] PSY · timeline-sync
[FINDINGS] GRO · validate growth
[OK      ] GRO · competency gather
[OK      ] MAT · indexer · coverage gaps
[OK      ] MAT · indexer · stale materials
[OK      ] MAT · loader · inventory
[OK      ] MAT · loader · dup detection
[FINDINGS] CRE · humanize · scan ai-tells
[OK      ] CRE · privacy-guard · scan assets
[OK      ] CRE · privacy-guard · confidential names
[OK      ] EVL · validate · all rubrics
[OK      ] EVL · validate · scorecard invariants
[OK      ] LIB · verdict_cache · crisis is never-cached
[OK      ] LIB · verdict_cache · store+hit a verdict
[OK      ] LIB · preferences · read knobs

→ 19/19 steps OK · 7 frameworks · synthetic fixture · exit 0

What the 19 steps cover19 bước bao phủ gì

LegNhánhStepsBước
PSYhealth-check · crossref · timeline-synchealth-check · crossref · timeline-sync
GROvalidate growth · competency gatherkiểm tra phát triển · thu thập năng lực
MATindexer (coverage gaps · stale) · loader (inventory · dup)indexer (khoảng trống · cũ) · loader (kho · trùng)
CREhumanize (ai-tell scan) · privacy-guard (asset scan)humanize (quét ai-tell) · privacy-guard (quét asset)
EVLvalidate (all rubrics · scorecard invariants)kiểm tra (mọi rubric · bất biến scorecard)
LIBverdict_cache (crisis=never-cached · store→hit) · preferencesverdict_cache (khủng hoảng=không cache · lưu→hit) · preferences

Degrade-clean guaranteeĐảm bảo xuống cấp êm

No characters.yaml? The e2e runner uses its own synthetic fixture — it never reads your corpus. Corpus-dependent unit tests skip. All imports, compiles, and script executions still pass. The toolkit is structurally sound before you add a single real subject.Không có characters.yaml? Runner e2e dùng fixture giả lập của chính nó — không đọc corpus của bạn. Test unit phụ thuộc corpus bị bỏ qua. Tất cả import, compile, và thực thi script vẫn pass. Toolkit vững chắc về cấu trúc trước khi bạn thêm một nhân vật thật.

imports passimport pass scripts compilescript compile e2e 19/19e2e 19/19
Step 5 · Claude Code — invoke a skillClaude Code — gọi skill

Invoke your first skillGọi skill đầu tiên

All 68 skills are invoked by name as {fw}:{skill} inside Claude Code — the skill orchestrates its own scripts and LLM reasoning. You never call scripts directly when working through Claude Code. A good first skill without a corpus is mat:loader (needs a source file to ingest) or psy:health-check (needs a character slug + profile).Tất cả 68 skill được gọi theo tên {fw}:{skill} trong Claude Code — skill tự điều phối script và suy luận LLM. Bạn không bao giờ gọi script thủ công khi làm qua Claude Code. Skill đầu tốt để thử không cần corpus là mat:loader (cần file nguồn để thu nhận) hoặc psy:health-check (cần slug nhân vật + hồ sơ).

mat:loader

Ingest, classify, CRAAP-score, and frontmatter-inject a source document into docs/materials/. Stage 1–2 of the MAT pipeline. Emits MAT.integrated when the integration gate passes — triggering PSY.refresh on the next step.Thu nhận, phân loại, chấm CRAAP, và chèn frontmatter cho tài liệu nguồn vào docs/materials/. Giai đoạn 1–2 của pipeline MAT. Phát MAT.integrated khi cổng tích hợp thông qua — kích hoạt PSY.refresh ở bước kế tiếp.

psy:health-check

Profile completeness scoring — 25 files × quality dimensions = a 0–100 score with per-file gap flags. Good diagnostics after the first psy:wave build. Also the entry point for COM framework health monitoring.Chấm điểm độ đầy đủ hồ sơ — 25 file × chiều chất lượng = điểm 0–100 kèm cờ khoảng trống từng file. Chẩn đoán tốt sau lần build psy:wave đầu tiên. Cũng là điểm vào giám sát sức khỏe framework COM.

In Claude Code:Trong Claude Code: mat:loader  ·  psy:health-check  ·  orc:bootstrap --quick

Or invoke a script directly (for testing outside Claude Code):Hoặc gọi script trực tiếp (để kiểm thử ngoài Claude Code):

.claude/skills/.venv/bin/python3 .claude/skills/psy-health-check/scripts/score-profile-completeness.py --character <your-slug>

Verify schemas (optional but recommended)Xác minh schema (tùy chọn nhưng khuyến nghị)

Validates 119 files — rubrics, scorecards, and references — against their JSON schemas. Run it after adding a rubric or scorecard to catch shape errors early.Kiểm tra 119 file — rubric, scorecard, và tài liệu tham khảo — theo schema JSON. Chạy sau khi thêm rubric hoặc scorecard để phát hiện lỗi hình dạng sớm.

.claude/skills/.venv/bin/python3 .claude/scripts/validate-all-against-schemas.py
🔒
Fully self-contained under .claude/ — skills, subagents, hooks, rules, schemas, the shared platform_lib, and the venv all live there. Nothing installs into the system Python. Nothing calls the network in the deterministic leg. The toolkit ships no character corpus; the e2e synthetic fixture contains no real PII. AGPL-3.0 licensed — network/SaaS use of a modified version must release full source.Hoàn toàn tự đóng gói dưới .claude/ — skill, subagent, hook, rule, schema, platform_lib chung, và venv đều ở đó. Không cài vào Python hệ thống. Không gọi mạng trong nhánh tất định. Toolkit ship không corpus nhân vật; fixture giả lập e2e không có PII thật. Giấy phép AGPL-3.0 — dùng mạng/SaaS bản sửa đổi phải công bố mã nguồn đầy đủ.
68
framework skillsskill framework
7
frameworksframework
19
e2e synthetic stepsbước e2e giả lập
0
network calls (deterministic leg)lần gọi mạng (nhánh tất định)

FAQHỏi đáp

Do I need a character corpus to run anything?Cần corpus nhân vật để chạy không?
No. The e2e runner uses e2e/synthetic-project/ — a fully synthetic fixture. Unit tests that depend on a real roster skip gracefully. You only need a corpus to run character-specific skills like psy:health-check --character <slug>.Không. Runner e2e dùng e2e/synthetic-project/ — fixture hoàn toàn giả lập. Test unit phụ thuộc roster thật bị bỏ qua một cách khéo léo. Bạn chỉ cần corpus để chạy skill cụ thể cho nhân vật như psy:health-check --character <slug>.
Why must I use .claude/skills/.venv/bin/python3 instead of python3?Vì sao phải dùng .claude/skills/.venv/bin/python3 thay vì python3?
The project-local venv is the only place where pyyaml, jsonschema, and pytest are installed. Using the system interpreter will raise ModuleNotFoundError on the first import. The venv rule is enforced across every skill — it's not optional.Venv nội bộ là nơi duy nhất có cài pyyaml, jsonschema, và pytest. Dùng trình thông dịch hệ thống sẽ báo ModuleNotFoundError ở lần import đầu tiên. Quy tắc venv được áp dụng trên mọi skill — không có ngoại lệ.
34 tests are skipping — is that a problem?34 test bị bỏ qua — có vấn đề không?
No — those 34 are the live-LLM tests marked gemini. They need GEMINI_API_KEY and are expected to skip without one. Set a key (or a .env file) to run them. The deterministic suite is the ground truth for correctness.Không — 34 cái đó là test LLM thật được đánh dấu gemini. Cần GEMINI_API_KEY và được thiết kế để bỏ qua khi thiếu key. Đặt key (hoặc file .env) để chạy chúng. Bộ test tất định là cơ sở đánh giá tính đúng đắn.
Can I invoke skills without Claude Code?Có thể gọi skill mà không dùng Claude Code không?
The deterministic scripts run standalone: .claude/skills/.venv/bin/python3 .claude/skills/{fw}-{skill}/scripts/{script}.py [args]. But skills also contain LLM reasoning steps — those only run when invoked through Claude Code where the LLM orchestrates the full skill contract defined in SKILL.md.Script tất định chạy độc lập: .claude/skills/.venv/bin/python3 .claude/skills/{fw}-{skill}/scripts/{script}.py [args]. Nhưng skill còn có bước suy luận LLM — những bước đó chỉ chạy khi gọi qua Claude Code, nơi LLM điều phối hợp đồng skill đầy đủ định nghĩa trong SKILL.md.
Does anything call the network during the deterministic suite?Có gì gọi mạng trong bộ test tất định không?
No. Zero network calls in the deterministic leg. The e2e pipeline runs entirely in a synthetic fixture directory. Even this showcase makes no external requests. The only network path is the Gemini-gated LLM tests which are explicitly excluded by -m 'not gemini'.Không. Không có lần gọi mạng nào trong nhánh tất định. Pipeline e2e chạy hoàn toàn trong thư mục fixture giả lập. Ngay cả showcase này cũng không gọi mạng. Đường dẫn mạng duy nhất là test LLM qua Gemini, được loại trừ rõ ràng bằng -m 'not gemini'.