# Contributing [English](CONTRIBUTING.md) | [Simplified Chinese](CONTRIBUTING.zh-CN.md) Tick is intentionally small. Contributions should make the time-step primitive clearer, safer, more portable, or easier to study without quietly turning it into a goal manager or autonomous-agent framework. ## Good contribution routes - Reproduce a protocol defect with a provider-free test. - Improve fail-closed behavior around terminal, disposal, or recovery state. - Add a Harness adapter while preserving the same canonical semantics. - Improve installation, observation, audit hygiene, or experimental design. - Report a real observation with enough detail to reproduce it. Large changes should explain the goal function and why the proposed mechanism serves it better than an extension outside the core plugin. ## Development setup Use Node.js 24. The unit suite has no third-party runtime dependencies. ```bash node --test node scripts/protocol-demo.mjs --check node scripts/release-gate.mjs npm pack --dry-run ``` To run the real DSH command-registry gate without a provider call: ```bash DSH_INSTALL_ROOT=/path/to/dsh npm run test:dsh-registry ``` ## Pull requests Please include: 1. the observable problem; 2. the intended contract; 3. tests that fail before and pass after the change; 4. provider and network use, if any; 5. changes to evidence or claim boundaries; 6. English and Simplified Chinese public-surface updates when user-facing text changes. Do not add silent fallback, unbounded continuation, ordinary-conversation auto-start, hidden prompt injection, or active-turn steering. ## Observation reports Use the Tick observation issue form. Separate source-level, provider-free, real-Harness, real-provider, and independently reproduced evidence. A model's self-description is useful qualitative data but not proof of hidden thought. Review every trace before sharing it. Remove credentials, private prompts, workspace paths, personal information, and unrelated provider output.