General-purpose coding policy for Baruch's AI agents
90
91%
Does it follow best practices?
Impact
90%
1.30xAverage score across 18 eval scenarios
Advisory
Suggest reviewing before use
.tessl-plugin/plugin.json manifest with name, version, and description — full schema in rules/skill-authoring.mdREADME.md is the project's README.md — same file. Extend the existing README with rules table, skills table, and installation instructions[](https://tessl.io/registry/<workspace>/<plugin>)skills/<name>/SKILL.md, rules live in rules/<name>.mdrules/, skills/<name>/, evals/ — evals/ is omitted in plugins claiming the closed-loop carve-out in rules/plugin-evals.md.tesslignore to exclude build artifacts and CI files from the published plugintessl plugin lint before every publishCHANGELOG.md and similar repo files show as orphaned in tessl plugin lint — lint only tracks manifest-declared pathssee rules/foo.md), don't duplicate content across rules — if you want to state the same point in two rules, one states it and the other references it# Commit Conventions for commit-conventions.md)applyTo: — see rules/rule-frontmatter.mdrules/context-writing-style.mdtessl skill review --threshold 85 before publishgit diff --name-only <prev-sha>..HEAD -- 'skills/'. Reference: .github/actions/skill-review/action.yml (consumers uses: jbaruch/coding-policy/.github/actions/skill-review@<ref>)workflow_dispatch, initial push, all-zeros sentinel SHA); hard-fail when the base is set but unreachablerules/skill-authoring.md), flat step numbering, typed Skill() calls, silence-rule compliance, channel-appropriate formatting--threshold 85 to make a failing skill pass. Bypassing CI by other means (local publish, [skip ci], disabling the review step) is forbidden under rules/ci-safety.mdtessl skill review --optimize <skill> locally. Back up SKILL.md and any reference files before invoking--optimize is a diagnostic signal, not a patch. The reviewer's judge strips load-bearing context. Diff against the backup, keep the genuinely-improving moves (tighter triggers, less prose, better Skill() typing), reject over-aggressive cuts, then re-run the review and iterate--optimize output verbatim is forbidden even when the score improved. The optimizer surfaces what kinds of issues exist (actionability, progressive disclosure, redundancy); apply the signal with judgment, curate manuallyrules/plugin-evals.mdrules/plugin-evals.mdeval-authoring skill — invoke it to generate and curate scenariosWhen you add, remove, or rename a rule or skill, update all of these:
.tessl-plugin/plugin.json — add/remove the rule path in rules or the skill path in skillsgit diff); for bespoke workflows, confirm the path glob covers the added skill or excludes the removed oneREADME.md — update the rules table and/or skills tableCHANGELOG.md — add an entry describing the changeAfter modifying rules, audit for cross-rule alignment:
rules/script-delegation.md.tessl-plugin/plugin.json entriesAfter editing a rule, audit the repo itself against the new rule text and fix any drift in the same PR:
.env.example files, SKILL.md step headings, secret names, etc.) and update them to satisfy the new wording.tessl-plugin
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
scenario-11
scenario-12
scenario-13
scenario-14
scenario-15
scenario-16
scenario-17
scenario-18
rules
skills
adopt-fork-pr
eval-curation
install-reviewer