Install
openclaw skills install @fooying/zaohuaCreate, repair, merge, evolve, audition, and validate original AI Soul packages as six local runtime Markdown files under the SOUL-6 standard. Use when a user asks to forge or build an AI Soul, improve an existing AI personality or companion package, combine multiple AI Souls, repair low SOUL-6 dimensions, create a new local version, run synthetic auditions, or inspect/package an AISOUL folder or ZIP. Do not use for real-person or public-figure distillation, cloning, or impersonation.
openclaw skills install @fooying/zaohuaForge original, persistent AI Souls entirely in the user's local environment. Produce six runtime files, a generated package README, provenance, a deterministic SOUL-6 report, synthetic auditions, and a portable ZIP without contacting AISoulHub or any remote API.
inspired provenance.<user-workspace>/aisouls/<slug> when the user does not choose an output.references/create-workflow.md.references/repair-merge-evolve.md.references/safety-provenance.md.references/auditions.md.references/package-contract.md.references/soul-6.md.Do not load every reference when the task only needs validation or packaging.
Choose exactly one primary mode:
| Mode | Use when |
|---|---|
create | The user has an original brief and wants a new Soul |
guided | The user wants help discovering identity, relationship, voice, and behavior |
repair | An existing package has missing files, findings, or weak SOUL-6 dimensions |
merge | The user wants to combine two to five existing AI Soul packages |
evolve | The user wants a new version while preserving immutable canon |
validate | The user only wants local checks, auditions, a diff, or packaging |
If the request names a real person as the target identity, stop and apply the real-person boundary. Do not silently reinterpret impersonation as creation.
Identify the user's workspace and choose an output directory outside the Skill. Keep all commands local. Run the CLI using its absolute path or run from the Skill root while passing an absolute output path.
Inspect local inputs without modifying them. For ZIP inputs, extract into a new temporary or user-approved directory and reject path traversal, executable payloads, secrets, and decompression anomalies before reading content.
Collect enough information for these six questions:
Ask at most three focused questions at a time. Offer reasonable defaults for non-critical preferences, but never invent immutable canon, authorization, professional qualifications, tools, real events, or relationship consent.
Classify every material statement as:
canon: user-confirmed and immutable without a later explicit changepreference: adjustable behavior or styleinspiration: transformed source material, not a copied identityunknown: unresolved and not safe to inventBefore writing runtime files, show a concise blueprint containing:
original, authorized, or inspiredWait for confirmation. The user may explicitly waive this checkpoint only when repairing obvious structural defects without changing semantics.
Run:
node scripts/forge.mjs init <absolute-output-directory> \
--name <name> \
--slug <slug> \
--language <zh-CN-or-en> \
--provenance <original-or-authorized-or-inspired> \
--brief <short-provenance-summary> \
--profile <optional-emotional-companion-or-tool-capable>
For authorized, also pass --authorization. Choose the output license with
the user; otherwise leave generated content as UNLICENSED.
Replace every {{FORGE:...}} marker using the approved blueprint. Preserve the
responsibility boundary of each file:
IDENTITY.md: identity, role, relationship baseline, immutable canonUSER.md: user position, address, consent, relationship and privacy limitsSOUL.md: personality, values, language, hidden traits, refusals, examplesAGENTS.md: executable response protocols, fallback, completionTOOLS.md: truthful capability, authorization, prohibited actionsMEMORY.md: durable memory, sensitive exclusions, correction, forgettingUpdate forge-report.md with decisions, conflicts, provenance, and unknowns.
README.md is generated automatically from package data and must remain
non-runtime. Do not optimize for keyword score. Write concrete behavior that
can survive the audition suite.
Run:
node scripts/forge.mjs validate <package-directory> --write
Resolve all hard-gate failures first. Then repair low dimensions using file-level
findings. The canonical target before auditions is SOUL-6 CORE with no
unresolved scaffold marker.
Follow references/auditions.md. Use a fresh context for each test case when
possible. Fill only the synthetic responses and review checks in
auditions/report.json, then run:
node scripts/forge.mjs audition-evaluate <package-directory>
node scripts/forge.mjs validate <package-directory> --write
Use independent-review only when a separate local reviewer actually evaluated
the outputs. Otherwise use self-review.
For each failed test or low dimension:
CHANGELOG.md.After two rounds, stop and report remaining failures.
Default packaging requires SOUL-6 READY:
node scripts/forge.mjs pack <package-directory>
Only use --allow-core or --allow-draft after the user explicitly requests an
unfinished artifact. Label that artifact accurately.
Do not regenerate all six files by default. Start from report findings, patch the owning files, and show a diff before replacing user-approved content.
Read references/repair-merge-evolve.md. Never concatenate files. Build a
conflict matrix, preserve the target's immutable canon, require the user to
decide identity or relationship conflicts, and transform compatible traits.
Create a new package version. Do not mutate identity, relationship, safety, or
memory boundaries merely because recent dialogue suggests a different persona.
Record each accepted semantic change in CHANGELOG.md.
Do not rewrite content unless requested. Return hard gates, six dimensions, personification score, audition status, and exact file-level findings.
Useful commands:
node scripts/forge.mjs diff <before-directory> <after-directory>
node scripts/forge.mjs audition-init <package-directory> --profile <profiles>
node scripts/forge.mjs version
Do not call the task complete unless:
manifest.json contains truthful local provenance and offline: trueREADME.md reflects the latest SOUL-6 and synthetic audition resultsIn the final response, report the package path, conformance level, score, audition status, ZIP path, provenance mode, and unresolved findings. State that local results do not represent AISoulHub.io review or endorsement.