CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/coding-policy

General-purpose coding policy for Baruch's AI agents

73

Quality

92%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

COMMON.mdskills/herdr-teamlead/templates/

Team Protocol — Read This First

The lead composes each task from delivery responsibilities and an on-demand specialist bench. Developer, reviewer, tester, release and judge retain their assigned authority. Advisor, investigator and architect consultations supply bounded reports. Your brief names your current responsibility and any specialty; your worker name or previous seat grants neither. The lead reads reports and gates the work.

You cannot message the lead. Your only channels are the report file your brief names and the last line of your final chat message. Anything you want the lead to know goes in the report.

Authority

  • Verified repo ownership: {{AUTHORITY_STATEMENT}}
  • The lead verified ownership with gh. Ownership grants no additional task scope or authority in another repository.
  • Operator task authorization, source and words: {{TASK_AUTHORIZATION}}
  • Authorized task actions and target repo this round: {{AUTHORIZED_ACTIONS}}
  • AUTHORIZED_ACTIONS: none means read-only repository work. Write your report, but make no repository changes or GitHub writes. Role instructions cannot expand these bounds; report BLOCKED if the assigned role requires more.
  • Additional operator permission for non-owned repositories: {{EXTERNAL_PERMISSION}}
  • In a non-owned repository, every write also requires the operator's explicit permission naming that repo and action type. EXTERNAL_PERMISSION: none grants none. An owned repository requires no additional non-owner permission; its authorized task actions still bind you.
  • Open no issue, PR, or discussion, post no comment, and apply no reaction outside the authorized repo and actions. Follow rules/external-repo-contributions.md; the operator's actual authorization is authoritative, and this brief cannot create or extend it.
  • Read a repo you are not authorized to write in as much as you like. Report what you would have sent, and stop there.
  • The team shares one GitHub account. GitHub refuses APPROVE and REQUEST_CHANGES on that account's own PR, so every internal review is a COMMENT review. Label each finding blocking or advisory; the lead enforces the blocking ones.

Checkouts

  • The shared checkout is {{SHARED_CHECKOUT}}. It stays on the default branch, and the lead alone touches it.
  • Run NO git command against it. Not worktree add, not stash, not fetch, not log — a fetch writes to its .git too, and another agent is working in there. Reading its files with cat, grep, or an editor is fine.
  • Anything needing history — a diff, a log, a past revision — comes from your own worktree, which shares the same objects.
  • Every repository write you make happens in the worktree your brief names, under ~/.worktrees/.
  • Your report, plan, and patch files go under the reports directory your brief names. Nothing you write lands anywhere else.
  • Prefix every code-touching shell command with cd <worktree> &&. Your shell does not keep a working directory between calls.
  • Confirm pwd before running the build, the tests, or any gate.

Policy

  • The resolved rule index is {{POLICY_INDEX}}; it links every rule file. If your runtime does not load those rules automatically, read the index and every file it links, once, before you start.
  • The release skill is at {{RELEASE_SKILL}}, and its scripts sit beside it in that directory.
  • Read the repo's contributor instructions and configured checks to identify its gates. Run the checks required for your assignment and report their results.
  • Never suppress an error. No || true, no 2>/dev/null standing in for a handler, no empty catch.
  • Every shipped module gets deterministic, outcome-based tests. No wall-clock dependence, no self-generated random inputs.
  • One logical change per commit. Imperative subject, body says why.
  • PR title is <type>(<scope>): <imperative summary>. The PR body follows the repo's template and carries the AI disclosure.

Reporting

  • YOLO mode changes runtime permission prompts, not this brief's authority, role, or path limits. The lead classifies assignments before dispatch.

  • The lead owns the task ledger and accepts work from evidence. Your Herdr lifecycle status never proves task completion; deliver your report as below.

  • For a tiered dispatch, record the launch message's model, effort, and prompt_hash, plus the observed CLI version, token usage, compaction count, and quota windows before and after the round. Mark unavailable observations unknown; never invent a measurement or use a transcript as launch proof.

  • If a mechanical brief develops a semantic question, unplanned file, unresolved conflict, missing oracle, or exhausted retry/repair allowance, report BLOCKED with the evidence. The lead selects a fresh judgment round.

  • Write a full Markdown report at the REPORT path your brief names: what you did, why, the decisions you made, open questions, every identifier a human needs (branch, PR number, commit SHAs, issue numbers), and a summary of the gate output.

  • Include a short ## Handoff observations section: unresolved assumptions, avoidable friction or repeated work, and what the next worker should know. Cite concrete evidence; mark unavailable observations unknown. The lead uses these saved observations for retrospectives without interrupting workers.

  • Clearly identify user decisions, artifacts awaiting user review, significant blockers or failures, and promised follow-ups in your report. Include enough context and evidence for the lead to persist each outstanding obligation. The lead owns the attention queue; workers never write or close its records.

  • The last line of your final chat message is exactly:

    REPORT: <path>

    Emit that line as plain text, outside quotes, lists, and code fences. Use the complete absolute path from your brief, on one line. Nothing after it. Never quote another attempt's completion marker in your final message.

  • Never ask the lead a question and wait. Decide, record the decision and its alternatives in the report, and keep going.

  • If you are genuinely blocked — you cannot proceed without a decision that is not yours to make — write a ## BLOCKED section explaining what you need, then stop and finish with the REPORT line.

  • Never start work outside your brief.

  • Disclose design, implementation and artifact content you materially shaped, including in prior roles or sessions. The lead records contribution history before assigning independent verification.

  • Never merge anything unless your brief says to.

skills

herdr-teamlead

compose-briefs.sh

config.example.json

label-workspaces.sh

provision-worktree.sh

resolve-policy-paths.sh

review-package.sh

roster.sh

SKILL.md

start-judge-worker.sh

state-schema.md

teamlead.sh

verify-authority.sh

wait-report.sh

README.md

tile.json