b2bvic

Observer Daemon — Development skill for Claude Code

Development community

Score Claude Code and Codex responses against local writing rules and record violations.

How to install Observer Daemon

This entry records only its repository, not the path inside it, so there is no exact command to give. Open b2bvic/observer-daemon and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Observer Daemon does

Score Claude Code and Codex responses against local writing rules and record violations.

Alternatives in Development

  • Codex Claude Academic Skills — 本仓库包含三个面向学术科研人员的Skills,覆盖从文献阅读、论文写作到科学计算的完整研究工作流 3.2k ★
  • Claude Scholar — Semi-automated research assistant for academic research and software development 3k ★
  • Directional Prompting — Outcome-first plus directional language 138 ★

README

observer-daemon

You can miss repeated writing-rule violations when you review agent responses by hand. Use observer-daemon to score transcripts and record failures outside the model.

Install with Rust and Cargo:

cargo install --git https://github.com/b2bvic/observer-daemon.git --locked

Sample output from `observer-daemon --config spec.toml --validate "The file is ready."` when no rules fail:

Class: generic
Score: 100/100
No violations.

Your rules determine the score. Configure `spec.toml` before you run the command. Transcript scoring alone does not block an outbound action.

What it does

  • Watches transcript directories (watch_paths in spec.toml) with debounce, hot-reloading its spec on file change or SIGHUP.
  • Classifies each prompt into a content class before scoring: legal, career_application, content_copy, technical_build, conversational, or generic fallback. Multi-signal prompts resolve by fixed priority. A career-strategy briefing that mentions a compliance role is career material, and the test suite pins that exact case as a named regression.
  • Scores the response with the rubric for its class: a stack of deterministic validators (sycophancy, filler, crutch words, punctuation habits, lexical density, rhythm, model tells, policy-pack literals) each deducting from 100. Below passing_score, the response fails.
  • Records every validation to a JSONL ledger, and every correction to a corrections ledger. Corrections are class-scoped: a rule promoted from legal failures does not silently constrain conversational writing. Records from before class scoping remain valid as generic.

Why a daemon and not a prompt

You run the same configured writing checks outside each model's prompt. The checks record rule matches and deductions. A model upgrade does not change those rules. You must review rules and examples when your requirements change.

Worked example

Feed it a transcript directory and a