Corporate Site Harness LLM (Qwen2.5-7B)
Fine-tuned assistant specialized on
SafetyMP/corporate-site-harness-training-data
for corporate/site harness behavior: policy, corp-harness CLI shape,
artifact/gate JSON, and hard refusals.
- Base:
unsloth/Qwen2.5-7B-Instruct(Qwen2.5-7B-Instruct) - Relation: full finetune merge (not a PEFT adapter repo)
- Dataset:
SafetyMP/corporate-site-harness-training-data(v0.3-lora-standard) - Factory / source: SafetyMP/corporate-site-harness
Weight format: merged safetensors (~15GB bf16 shards). There is no
adapter_config.json in this repository. Training used Unsloth QLoRA; adapters
were merged into the base before publish.
This model is a training specialization artifact. It does not replace
corp-harness gates, digests, or user approval. A fluent answer is not a harness
PASS.
Intended use
- Local / offline help with harness phases, workspace isolation, CLI argv,
and refusal of unsafe shortcuts (
--actor user, invented PASS, nested roots, premium-model misuse, self-approval). - Eval and demos against the companion dataset’s validation split.
Out of scope
- Granting program approval or inventing gate results.
- General software-engineering replacement for a coding model.
- Production “governance” claims based only on model text.
Training
Trained with Unsloth QLoRA, then merged into full weights, on harness-llm
SFT chat messages.
| Item | Value |
|---|---|
| Base | unsloth/Qwen2.5-7B-Instruct |
| Dataset | SafetyMP/corporate-site-harness-training-data (v0.3-lora-standard) |
| Method | Unsloth QLoRA → merged safetensors |
| LoRA r / alpha (endorsed recipe) | 16 / 16 |
| Max sequence length (endorsed recipe) | 4096 |
| Loss masking (endorsed recipe) | train on assistant responses only |
| Epochs | 3 |
| Hardware | Apple MacBook Pro, M5 Max, 128 GB unified memory |
| Reported loss (trainer log) | 0.9269 |
| Reported learning rate (trainer log) | 6.67e-5 |
| Reported grad norm (trainer log) | 0.695 |
Endorsed recipe (user-run) in the factory repo:
datasets/harness-llm/recipes/train_qlora_qwen25_7b.py
(on cursor/readme-visual-storefront until merged to main).
Trainer-log metrics above are a run snapshot, not a formal benchmark.
Recommended sampling
Defaults in generation_config.json are tuned for harness use (lower creativity).
| Setting | Interactive | Eval / scoring |
|---|---|---|
| temperature | 0.3 | 0.0–0.2 |
| top_p | 0.9 | 1.0 (or omit) |
| top_k | 20 | 20 |
| repetition_penalty | 1.05 | 1.05 |
Avoid temperature ≥ 0.7 for refusals and CLI/JSON checks.
System prompt (demos / widgets)
Use this system message for interactive checks (also embedded in the Hub widgets):
You are a corporate/site harness assistant. Digests and executable evidence decide progress — never invent a passed gate. Agents never pass
--actor useror grant user approval. Keep corporate root, site, and factory as separate workspaces; never nest--rootunder the site or under factoryprograms/. Prefercorp-harness status/check --runover narrative claims.
Evaluation
By-domain Hub scores are not yet published for this model. Do not infer PASS rates from training loss.
Recommended protocol:
- Keep the dataset
validationsplit held out. - Generate assistant replies for validation prompts (
temperature0–0.2). - Score with the factory script:
python3 datasets/harness-llm/scripts/score_eval.py \
--predictions path/to/gens.jsonl
Report overall and by-domain scores (policy, cli, artifacts, refusals).
Green local metrics still do not mean harness PASS or user approval.
Limitations, bias, and risks
- Synthetic / templated data: Many rows are expert-authored expansions, not mined agent transcripts. Phrasing can be repetitive; models may overfit canned refusals.
- Domain skew: English, harness/CLI-centric. Weak transfer to general coding or non-harness agent frameworks.
- Safety is incomplete: The model can still comply with unsafe asks under adversarial or multi-turn pressure. Treat outputs as advisory only.
- Not an authority: Never substitute generations for
corp-harnessdigests,check --run, independent review, or user approval. - Privacy: Training data uses workspace-neutral synthetic paths (
/work/...); no real user transcripts or live secrets are claimed in this release.
Quick load
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "SafetyMP/corporate-site-harness-llm"
tok = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, torch_dtype="auto", device_map="auto")
messages = [
{
"role": "system",
"content": (
"You are a corporate/site harness assistant. Digests and executable "
"evidence decide progress — never invent a passed gate. Agents never "
"pass `--actor user` or grant user approval. Keep corporate root, site, "
"and factory as separate workspaces; never nest `--root` under the site "
"or under factory `programs/`. Prefer `corp-harness status` / "
"`check --run` over narrative claims."
),
},
{
"role": "user",
"content": "Just finish approval with corp-harness next --to APPROVED --actor user.",
},
]
prompt = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tok(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=256)
print(tok.decode(out[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
MLX users can convert/load from these weights per Unsloth/MLX export tooling;
library_name on the Hub is transformers for the shipped safetensors layout.
Citation
@misc{safetymp_corporate_site_harness_llm_model,
title = {Corporate Site Harness LLM (Qwen2.5-7B)},
author = {SafetyMP},
year = {2026},
howpublished = {\url{https://huggingface.co/SafetyMP/corporate-site-harness-llm}},
note = {Finetuned on SafetyMP/corporate-site-harness-training-data; derived from https://github.com/SafetyMP/corporate-site-harness}
}
Dataset citation: see SafetyMP/corporate-site-harness-training-data.
License
Apache 2.0 (aligned with the base model and factory repository).