Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ This repo IS `jbaruch/coding-policy`. The rule files below are the source-of-tru
@../rules/skill-authoring.md
@../rules/script-delegation.md
@../rules/script-as-black-box.md
@../rules/plugin-evals.md
@../rules/author-model-declaration.md
@../rules/stateful-artifacts.md
@../rules/agent-worktree-isolation.md
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/skill-review/review-skills.sh
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ identify_skills() {
# Immediate subdir basenames, sorted. `sed 's|.*/||'` instead of GNU
# `find -printf '%f'` keeps discovery portable (BSD find on macOS has no
# -printf) so this path is testable off the CI runner. Skill dir names
# are kebab-case with no newlines (rules/plugin-evals.md Naming).
# are kebab-case with no newlines.
find "$SKILLS_DIR" -mindepth 1 -maxdepth 1 -type d | sed 's|.*/||' | sort
return 0
fi
Expand Down
3 changes: 0 additions & 3 deletions .tessl-plugin/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
"private": false,
"skills": [
"skills/release",
"skills/eval-authoring",
"skills/eval-curation",
"skills/install-reviewer",
"skills/adopt-fork-pr",
"skills/migrate-to-plugin"
Expand All @@ -28,7 +26,6 @@
"rules/skill-authoring.md",
"rules/script-delegation.md",
"rules/script-as-black-box.md",
"rules/plugin-evals.md",
"rules/author-model-declaration.md",
"rules/stateful-artifacts.md",
"rules/agent-worktree-isolation.md",
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

### Rules

- **Evals removed from policy and plugin** — deleted `rules/plugin-evals.md`, the `context-artifacts` Mandatory Evals section, the `eval-authoring` / `eval-curation` skills, and the `evals/` scenario suite, reconciling every cross-reference (23→22 rules). The tessl publish pipeline runs evals unconditionally inside `tesslio/patch-version-publish`, which fails and blocks the registry when the org is out of credits — a trigger #188's credit-outage tolerance cannot reach. Full inventory and motivation: PR #191.
- **`context-artifacts`: Credit-Outage Review Carve-Out** — a tessl out-of-credits (403) billing outage can now satisfy the Mandatory Review gate under an opt-in, fail-safe skip: only the credit-phrase-plus-403 signature skips the affected skill (flagged in the run summary and the `unreviewed-skills` output), every other review failure still hard-fails, and the gate self-heals when credits return. Mirrors the `ci-safety` Publish-Pipeline carve-out shape. Distinct from the forbidden review-step bypass — that dodges a verdict, this tolerates an outage that produced none. Motivation: issue #188.
- **`error-handling`: new Shell Error Handling section** — the rule was entirely silent on shell (no `set -euo pipefail`, no suppression ban), so consumers installing the plugin inherited none of the discipline the repo itself practises in all 18 of its non-test scripts. Encodes: mandatory `set -euo pipefail`; no `|| true` / `|| :` / bare `2>/dev/null`; explicit `if`/`case` on exit codes for commands that can legitimately fail; the distinction between an expected non-result and a tool failure (`grep` exits 1 on no-match, 2 on error — `|| true` collapses both); that silencing a *diagnostic* while explicitly handling the *failure* is not suppression; and that "fail visibly" permits a stderr warning rather than requiring exit non-zero. Full motivation: PR #184.

Expand Down
9 changes: 2 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,15 @@

[![tessl](https://img.shields.io/endpoint?url=https%3A%2F%2Fapi.tessl.io%2Fv1%2Fbadges%2Fjbaruch%2Fcoding-policy)](https://tessl.io/registry/jbaruch/coding-policy)

Coding policy plugin for Baruch's AI agents. Language-agnostic code quality rules plus Tessl-specific plugin authoring standards — covering commits, testing, error handling, skill structure, script delegation, and eval quality.
Coding policy plugin for Baruch's AI agents. Language-agnostic code quality rules plus Tessl-specific plugin authoring standards — covering commits, testing, error handling, skill structure, and script delegation.

## What's New

- 23 rules — 16 always-on, 7 conditional (scoped via `applyTo:` to the files where the rule's prescriptions actually fire). Breakdown: 10 covering code quality, 8 covering plugin authoring, 1 covering author-model declaration, 1 covering concurrency, 1 covering review discipline, 1 covering reviewer-feedback reading, 1 covering external-repo action scope
- 22 rules — 16 always-on, 6 conditional (scoped via `applyTo:` to the files where the rule's prescriptions actually fire). Breakdown: 10 covering code quality, 7 covering plugin authoring, 1 covering author-model declaration, 1 covering concurrency, 1 covering review discipline, 1 covering reviewer-feedback reading, 1 covering external-repo action scope
- `release` skill — structured PR + merge workflow with Copilot review and paired-reviewer cross-family enforcement
- `eval-authoring` skill — generate, review, and curate eval scenarios with score-driven iteration
- `install-reviewer` skill — scaffold the paired gh-aw PR review workflows (OpenAI + Anthropic) into a consumer repo
- `adopt-fork-pr` skill — bring a fork PR's branch into the base repo as a same-repo PR the fork-guarded reviewer can run on
- 0.3.0 added `install-reviewer` upgrade mode (`--override`) — refreshes scaffolded reviewer files in place instead of requiring a manual `git rm`-and-rerun
- 0.2.0 lifted with-context attainment from 93 to 98 (3× avg, lift +17 → +22) by tuning skill prose against eval log analysis
- Language-agnostic: works with any stack, no Python/JS assumptions

See [CHANGELOG.md](CHANGELOG.md) for full version history.
Expand Down Expand Up @@ -43,7 +41,6 @@ tessl install jbaruch/coding-policy
| Authoring | [skill-authoring](rules/skill-authoring.md) | SKILL.md structure, step numbering, typed calls, plugin.json reference |
| Authoring | [script-delegation](rules/script-delegation.md) | Deterministic → script, reasoning → LLM, the regex trap |
| Authoring | [script-as-black-box](rules/script-as-black-box.md) | Skills reference the script's contract (inputs/outputs/exit codes), not its internal logic — thresholds and predicates live in the script |
| Authoring | [plugin-evals](rules/plugin-evals.md) | Lift-gated, capped scenarios; no bleeding/leaking; persistent |
| Authoring | [stateful-artifacts](rules/stateful-artifacts.md) | Cross-invocation state: schema, owner skill, schema_version, hints-not-authority, migration |
| Review | [author-model-declaration](rules/author-model-declaration.md) | PRs declare author model; paired reviewers pick the cross-family one |
| Review | [reviewer-feedback-reading](rules/reviewer-feedback-reading.md) | A review's state classifies merge-gating, not whether its body must be read; read every reviewer's body before declaring merge-ready, COMMENTED-with-zero-inline included |
Expand All @@ -56,8 +53,6 @@ tessl install jbaruch/coding-policy
| Skill | Description |
|-------|-------------|
| [release](skills/release/SKILL.md) | PR creation, Copilot review, merge + cleanup workflow |
| [eval-authoring](skills/eval-authoring/SKILL.md) | Generate, review, iterate on eval scenarios with score-driven feedback |
| [eval-curation](skills/eval-curation/SKILL.md) | Prune an existing eval suite — run, compute per-scenario lift, diagnose weak scenarios, retire / fix / rewrite, verify the curated suite still pulls weight |
| [install-reviewer](skills/install-reviewer/SKILL.md) | Scaffold the paired gh-aw PR review workflows (OpenAI + Anthropic) into a consumer repo — reviews every PR against the latest published `jbaruch/coding-policy` with cross-family enforcement. Documents the reviewer CI secrets in a merged `.env.example`. Supports `--override` for in-place upgrades. |
| [adopt-fork-pr](skills/adopt-fork-pr/SKILL.md) | Classify a PR by number. Same-repo PRs pass through to the reviewer; fork PRs (skipped by the reviewer's fork-guard) get adopted into the base repo as a same-repo PR, preserving the contributor's commits. |
| [migrate-to-plugin](skills/migrate-to-plugin/SKILL.md) | Migrate a legacy `tile.json` plugin to the `.tessl-plugin/plugin.json` form: runs `tessl plugin migrate`, renames `.tileignore`, removes the obsolete `tile.json`, re-lints, then reconciles residual "tile" wording to "plugin" while preserving contract surfaces. |
Expand Down
41 changes: 0 additions & 41 deletions evals/adopt-fork-pr-adopts-fork-branch/criteria.json

This file was deleted.

13 changes: 0 additions & 13 deletions evals/adopt-fork-pr-adopts-fork-branch/task.md

This file was deleted.

31 changes: 0 additions & 31 deletions evals/adopt-fork-pr-same-repo-passthrough/criteria.json

This file was deleted.

13 changes: 0 additions & 13 deletions evals/adopt-fork-pr-same-repo-passthrough/task.md

This file was deleted.

61 changes: 0 additions & 61 deletions evals/ci-and-review-status-polling/criteria.json

This file was deleted.

Loading
Loading