← ClaudeAtlas

harness-authoringlisted

Decide where an instruction belongs and write it there, then sync and lint. Use when asked to add, change or remove a rule, skill, instruction, hook, setting or CLAUDE.md line, to "remember" something that should persist beyond this session, or when a correction should apply to future sessions.
JakeSelby/model-citizen · ★ 21 · Code & Development · score 74
Install: claude install-skill JakeSelby/model-citizen
# Harness authoring Every instruction has exactly one right home. This skill finds it, writes there, and keeps the harness checkout as the source of truth for everything generic. ## Find the checkout and the caller ```bash python3 - <<'EOF' import json, pathlib m = json.load(open(pathlib.Path.home() / ".local/state/agent-harness/manifest.json")) print(m["repo"]) EOF git -C "$(…)" remote -v ``` If the manifest is missing, locate or install the harness before editing managed content. Do not create a second authority in a runtime configuration directory. If `origin` is a fork and `upstream` is the harness, you are a **fork user**. Otherwise, if `origin` is `<owner>/model-citizen`, or `<owner>/agent-harness` from before the rename, and you are that owner, you are the **maintainer**. ## The ladder — first match wins 1. **Must run at a lifecycle point regardless of the model's judgment** (a check before every commit, a validator after every write) → a shared policy under `policy/hooks/`, dispatched by `lib/harness_core/lifecycle.py`; native registrations belong in runtime adapters. 2. **Changes tool or editor configuration, not behaviour** → an owned native setting in the relevant adapter or editor projection, reconciled by the installer. Do not add a second primitive to represent a runtime setting. 3. **True of this user only, a secret, or about one project** → never the harness repo. A personal preference goes in user configuration or a custom stance root docume