Imported from yanun0323/Whallm (
AGENTS.md). Install upstream withnpx skills add yanun0323/Whallm. Copyright stays with the author.
Project instructions
Use the ubiquitous language in CONTEXT.md.
App packaging behaviors
Treat build local and release new version as workflow requests.
build local
When the user requests build local:
- Run the applicable tests.
- Run
make packageto createdist/Whallm.appanddist/Whallm-macOS-arm64.zip. - Verify the App with
codesign --verify --deep --strict. - Extract the ZIP to a temporary directory. Verify the extracted App again.
- Start the packaged App in an isolated check that denies access to the project
.builddirectory. Confirm that the App stays open and does not trap duringL10ninitialization. - Confirm that the packaged App loads the English, Simplified Chinese, and
Traditional Chinese localization files from
Contents/Resourcesbefore it accessesBundle.module.
The packaged App must not require an absolute path from the build machine. Keep local packaging on the local machine. Do not create a tag, notarize an artifact, or upload an artifact.
build local is complete only when the App and the extracted ZIP pass all
checks.
release new version
When the user requests release new version:
- Complete
build localfirst. - If the user does not give a version, read the latest stable
vX.Y.ZGit tag and incrementZby one. - Confirm that the release changes, tests, and applicable files in
docs/are current. - Require
CODE_SIGN_IDENTITY,NOTARY_PROFILE, authenticatedgh, and the Sparkle signing tools. On this Mac, useNOTARY_PROFILE=deepseek_ssd(verified 2026-09-07). Check it withxcrun notarytool history --keychain-profile deepseek_ssdbefore asking the user for a profile name; credentials remain in Keychain. - Before
gh release create, require the release script to verify the final signed and notarized App, its ZIP, its localization files, and App startup without access to the project.builddirectory. Stop the release if a check fails. - Run
make release VERSION=X.Y.Z. - After publication, download the GitHub Release ZIP to a temporary directory. Verify its signature, notarization ticket, localization files, and isolated startup again.
- Confirm that the GitHub Release contains the ZIP and
appcast.xml. Report the tag, release URL, and SHA-256 of both files.
release new version is complete only when the downloaded release artifacts
pass all checks.
docs/
docs/ is the source of truth for the current project.
Start with docs/README.md.
Keep docs/ consistent with the current code, tests, installed model contract,
and reproducible measurements.
Update the applicable document when an API, default value, data path, limit, or
measured result changes.
Use docs/benchmarks/ for machine-readable benchmark artifacts.
Record the commit, environment, workload, configuration, cache state, and output
token hash for each formal performance result.
Separate current validation, historical measurements, external facts, and research hypotheses. Do not write an estimate or an external benchmark as a project result.
research/
research/ contains active investigation, experiment plans, source audits, and
unconfirmed technical directions.
Research files are not the source of truth for current runtime behavior.
Use primary sources for external technical claims.
State assumptions, test conditions, stop criteria, and evidence limits.
When the project adopts a research conclusion, update the applicable file in
docs/.
research/archive/ contains superseded plans and historical research.
Keep archived files for traceability.
Add a warning when a file no longer describes the current runtime.
Do not use an archived value as a current default or current performance result.
