Contributing
August 29, 2026 · View on GitHub
Thank you for improving delegate-to-deepseek-harness. Keep changes focused, reproducible, and safe for a public Codex Skill repository.
Before you start
- Read
SKILL.mdandSECURITY.mdcompletely. - Check
git status --shortand preserve unrelated work. - Use this repository as the development source. Do not edit the installed Skill copy as the source of truth.
- Never commit Harness homes, credentials, settings, session logs, delegated task directories, or generated collaboration files.
- Open an issue first for changes that alter the security model, file-channel contract, supported Harness versions, or deployment-wide model behavior.
Development setup
The runtime client requires Python 3.10+ and no third-party Python packages.
git clone https://github.com/papperrollinggery/delegate-to-deepseek-harness.git
cd delegate-to-deepseek-harness
python3 scripts/dsh_harness.py --help
Run the deterministic local checks:
python3 -c 'source=open("scripts/dsh_harness.py", encoding="utf-8").read(); compile(source, "scripts/dsh_harness.py", "exec"); print("syntax-ok")'
python3 -m unittest discover -s tests -v
python3 scripts/dsh_harness.py --help
python3 scripts/dsh_harness.py --base-url http://192.0.2.10:3080 probe
The non-loopback probe must exit non-zero.
Change guidelines
Skill instructions
- Keep frontmatter limited to
nameanddescription. - Put every trigger and “when to use” signal in the description.
- Keep the body imperative, concise, and focused on operational knowledge Codex cannot safely infer.
- Preserve the no-subagent, current-Codex-task delegation loop.
- Keep
agents/openai.yamlaligned with the actual Skill and ensuredefault_promptincludes$delegate-to-deepseek-harness. - Keep
VERSION, the release tag, update-check behavior, and global installer artifacts aligned.
Python client
- Use only the Python standard library unless a dependency is essential and explicitly justified.
- Keep loopback enforcement fail-closed.
- Do not weaken redirect, proxy, secret-pattern, symlink, root-directory, same-cwd concurrency, active-session, or
minimal-preset protections. - Add a narrowly scoped regression test for behavior changes.
- Preserve model-written
RESULT.md; use assistant text only when the file is absent. - Preserve asynchronous submission: a client wait deadline must not cancel the Harness task or turn a still-running delegation into a failed result.
- Preserve auto-start boundaries: operational commands may recover the loopback service from the private state directory, but
probestays read-only, normal startup must pass--no-open, and no path may inspect or copy Harness credentials or materialize a delegated project's.envinto the service environment.
Documentation
- Keep
README.mdandREADME.zh-CN.mdaligned on capabilities, limitations, installation, and safety. - Update both use-case guides when a scenario or routing rule changes.
- Do not claim benchmark results, compatibility, media generation, isolation, or publication behavior without current evidence.
- Prefer direct links to official OpenAI, GitHub, and DeepSeek sources.
Live Harness testing
Unit tests must not require credentials or a running Harness. When a behavior change needs an end-to-end test:
- Use a disposable directory outside the repository.
- Record the deployment default model before the test.
- Create only new sessions owned by the test.
- Record session ID, RPC ID,
turn/endreason,STATUS.json.status, and relevant output contents. - Confirm that no pre-existing session was prompted, cancelled, renamed, or otherwise mutated.
- Restore the previous default model using only a session created by the test.
- Remove or securely discard test artifacts; never commit them.
For auto-start changes, begin with the endpoint offline, invoke an operational command without a separate start, record the structured service receipt, then stop and recover the same test-created session through a continuation command. Do not stop a service while any pre-existing session is running.
Do not expose credentials or copy secret-bearing logs into an issue or pull request.
Pull request checklist
- The change is limited to the stated problem.
-
git diff --checkpasses. - Syntax, unit tests, CLI help, and non-loopback rejection pass.
- Relevant English and Chinese documentation is synchronized.
- No secret, local absolute path, Harness state, session log, or generated task artifact is included.
- Live tests, if any, used only newly created sessions and document their bounded evidence.
- Compatibility and residual risk are stated honestly.
Security reports
Do not open a public issue for a suspected vulnerability. Follow the private reporting process in SECURITY.md.